| | |
| | | <div class="kb_left_top_block kb_pd10"> |
| | | <div class="content01"> |
| | | <div class="pic01" /> |
| | | <div class="number">12</div> |
| | | <div class="number">{{ purchaseLeftTopData.ThisMonthPurchaseArrivalOrderCont }}</div> |
| | | <div class="text">本月采购单数</div> |
| | | </div> |
| | | <div class="content01"> |
| | | <div class="pic01" /> |
| | | <div class="number">90200</div> |
| | | <div class="number">{{ purchaseLeftTopData.ThisMonthPurchaseOrderCont }}</div> |
| | | <div class="text">本月进货单数</div> |
| | | </div> |
| | | <div class="content01"> |
| | | <div class="pic01" /> |
| | | <div class="number">90200</div> |
| | | <div class="number">{{ purchaseLeftTopData.ThisMonthWareHouseOrderCont }}</div> |
| | | <div class="text">本月入库单数</div> |
| | | <!-- <div id="pie01" ref="pie01" class="pie01" />--> |
| | | <!-- <div class="text" style="margin-top: -10px">当月延期占比</div>--> |
| | |
| | | <!-- 2--> |
| | | <div class="kb_left_bottom kb_pd10"> |
| | | <div class="kb_left_bottom_content"> |
| | | <div class="content_head">我是标题</div> |
| | | <el-table |
| | | :data="tableData" |
| | | style="width: 100%;" |
| | | :header-cell-style="headerCellStyle" |
| | | :cell-style="cellStyle" |
| | | height="610" |
| | | > |
| | | <el-table-column |
| | | prop="xh" |
| | | label="序号" |
| | | width="53" |
| | | /> |
| | | <el-table-column |
| | | prop="jgzt" |
| | | label="加工状态" |
| | | width="85" |
| | | /> |
| | | <el-table-column |
| | | prop="pfsj" |
| | | label="派发时间" |
| | | width="86" |
| | | /> |
| | | <el-table-column |
| | | prop="xsddh" |
| | | label="销售订单号" |
| | | width="150" |
| | | /> |
| | | <el-table-column |
| | | prop="jgdh" |
| | | label="加工单号" |
| | | width="207" |
| | | /> |
| | | <el-table-column |
| | | prop="cpmc" |
| | | label="产品名称" |
| | | width="105" |
| | | /> |
| | | <el-table-column |
| | | prop="gg" |
| | | label="规格" |
| | | width="60" |
| | | /> |
| | | <el-table-column |
| | | prop="dw" |
| | | label="单位" |
| | | width="60" |
| | | /> |
| | | <el-table-column |
| | | prop="rwsl" |
| | | label="任务数量" |
| | | width="90" |
| | | /> |
| | | <el-table-column |
| | | prop="wgsl" |
| | | label="完工数量" |
| | | width="90" |
| | | /> |
| | | <el-table-column |
| | | prop="blsl" |
| | | label="不良数量" |
| | | width="90" |
| | | /> |
| | | <el-table-column |
| | | prop="wcl" |
| | | label="完成率" |
| | | width="70" |
| | | /> |
| | | <el-table-column |
| | | prop="yjks" |
| | | label="预计开始" |
| | | width="86" |
| | | /> |
| | | <el-table-column |
| | | prop="yjjs" |
| | | label="预计结束" |
| | | width="86" |
| | | /> |
| | | </el-table> |
| | | <div class="content_head">我是标题:</div> |
| | | <div class="content_body"> |
| | | <el-table |
| | | ref="tableData" |
| | | :data="tableData" |
| | | style="width: 100%;" |
| | | :header-cell-style="headerCellStyle" |
| | | :cell-style="cellStyle" |
| | | height="588" |
| | | > |
| | | <!-- <el-table-column--> |
| | | <!-- prop="RowNum"--> |
| | | <!-- label="序号"--> |
| | | <!-- width="53"--> |
| | | <!-- />--> |
| | | |
| | | <el-table-column |
| | | prop="PurchaseOrder" |
| | | label="采购订单" |
| | | width="163" |
| | | /> |
| | | <el-table-column |
| | | prop="suppername" |
| | | label="供应商" |
| | | width="163" |
| | | /> |
| | | <el-table-column |
| | | prop="username" |
| | | label="采购员" |
| | | width="68" |
| | | /> |
| | | <el-table-column |
| | | prop="partcode" |
| | | label="产品编码" |
| | | width="84" |
| | | /> |
| | | <el-table-column |
| | | prop="partname" |
| | | label="产品名称" |
| | | width="168" |
| | | /> |
| | | <el-table-column |
| | | prop="partspec" |
| | | label="规格型号" |
| | | width="84" |
| | | /> |
| | | <el-table-column |
| | | prop="quantity" |
| | | label="订单数量" |
| | | width="84" |
| | | /> |
| | | <el-table-column |
| | | prop="checktype" |
| | | label="检验状态" |
| | | width="84" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div v-if="row.checktype===null">未检验</div> |
| | | <div v-else>已检验</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="checkuser" |
| | | label="检验人员" |
| | | width="84" |
| | | /> |
| | | <el-table-column |
| | | prop="quantity1" |
| | | label="已收数量" |
| | | width="84" |
| | | /> |
| | | <el-table-column |
| | | label="未收数量" |
| | | width="84" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div>{{ parseFloat(row.quantity- row.quantity1) }}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="acceptDate" |
| | | label="预计交期" |
| | | width="84" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div>{{ row.acceptDate.substring(5, 10) }}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="warning" |
| | | label="延期天数" |
| | | width="84" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div v-if="parseFloat(row.warning)<0" style="color: red">{{ Math.abs(parseFloat(row.warning)) }}</div> |
| | | <div v-else-if="row.warning===null">0</div> |
| | | <div v-else>{{ row.warning }}</div> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="kb_right kb_pd10"> |
| | | <div class="kb_right_top kb_pd10"> |
| | | <div class="kb_right_top_content"> |
| | | <div class="content_head">供应商延期交货排行</div> |
| | | <div class="content_head">供应商延期交货排行:</div> |
| | | <div class="content_body"> |
| | | <el-table |
| | | ref="tableDataRank" |
| | |
| | | style="width: 100%;" |
| | | :header-cell-style="headerCellStyle" |
| | | :cell-style="cellStyle" |
| | | height="888" |
| | | :row-class-name="tableRowClassName" |
| | | height="923" |
| | | > |
| | | <el-table-column |
| | | prop="xh" |
| | | type="index" |
| | | label="序号" |
| | | width="75" |
| | | /> |
| | | <el-table-column |
| | | prop="cj" |
| | | label="车间" |
| | | width="100" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div>NO.{{ row.index }}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- <el-table-column--> |
| | | <!-- prop="cj"--> |
| | | <!-- label="车间"--> |
| | | <!-- width="100"--> |
| | | <!-- />--> |
| | | <el-table-column |
| | | prop="suppercode" |
| | | label="供应商编码" |
| | | width="145" |
| | | /> |
| | | <el-table-column |
| | | prop="cx" |
| | | label="产线" |
| | | width="120" |
| | | prop="suppername" |
| | | width="163" |
| | | label="供应商名称" |
| | | /> |
| | | <el-table-column |
| | | prop="cp" |
| | | width="138" |
| | | label="产品" |
| | | /> |
| | | <el-table-column |
| | | prop="sl" |
| | | prop="cont" |
| | | label="数量" |
| | | width="100" |
| | | width="125" |
| | | /> |
| | | </el-table> |
| | | </div> |
| | |
| | | |
| | | <script> |
| | | import './kbCommon.css' |
| | | import { loadEcharts, pie01 } from '@/utils/myEcharts' |
| | | import { bar02, loadEcharts, pie01 } from '@/utils/myEcharts' |
| | | import * as echarts from 'echarts' |
| | | import { PurchaseLeftBottom, PurchaseLeftTop, PurchaseRight } from '@/api/dzkb' |
| | | |
| | | export default { |
| | | name: 'Index2', |
| | |
| | | return { |
| | | headTime: '', |
| | | |
| | | tableData: [ |
| | | { |
| | | xh: 1, |
| | | jgzt: '开始', |
| | | pfsj: '07/29', |
| | | xsddh: '202207290001', |
| | | jgdh: 'MO-2022-07-29-0001', |
| | | cpmc: '产品名测试', |
| | | gg: '@20', |
| | | dw: 'PCS', |
| | | rwsl: 2000, |
| | | wgsl: 1900, |
| | | blsl: 100, |
| | | wcl: '99%', |
| | | yjks: '07/21', |
| | | yjjs: '07/29' |
| | | }, |
| | | { |
| | | xh: 2, |
| | | jgzt: '开始', |
| | | pfsj: '07/29', |
| | | xsddh: '202207290001', |
| | | jgdh: 'MO-2022-07-29-0001', |
| | | cpmc: '产品名测试', |
| | | gg: '@20', |
| | | dw: 'PCS', |
| | | rwsl: 2000, |
| | | wgsl: 1900, |
| | | blsl: 100, |
| | | wcl: '99%', |
| | | yjks: '07/21', |
| | | yjjs: '07/29' |
| | | }, |
| | | { |
| | | xh: 3, |
| | | jgzt: '开始', |
| | | pfsj: '07/29', |
| | | xsddh: '202207290001', |
| | | jgdh: 'MO-2022-07-29-0001', |
| | | cpmc: '产品名测试', |
| | | gg: '@20', |
| | | dw: 'PCS', |
| | | rwsl: 2000, |
| | | wgsl: 1900, |
| | | blsl: 100, |
| | | wcl: '99%', |
| | | yjks: '07/21', |
| | | yjjs: '07/29' |
| | | }, |
| | | { |
| | | xh: 4, |
| | | jgzt: '开始', |
| | | pfsj: '07/29', |
| | | xsddh: '202207290001', |
| | | jgdh: 'MO-2022-07-29-0001', |
| | | cpmc: '产品名测试', |
| | | gg: '@20', |
| | | dw: 'PCS', |
| | | rwsl: 2000, |
| | | wgsl: 1900, |
| | | blsl: 100, |
| | | wcl: '99%', |
| | | yjks: '07/21', |
| | | yjjs: '07/29' |
| | | }, |
| | | { |
| | | xh: 5, |
| | | jgzt: '开始', |
| | | pfsj: '07/29', |
| | | xsddh: '202207290001', |
| | | jgdh: 'MO-2022-07-29-0001', |
| | | cpmc: '产品名测试', |
| | | gg: '@20', |
| | | dw: 'PCS', |
| | | rwsl: 2000, |
| | | wgsl: 1900, |
| | | blsl: 100, |
| | | wcl: '99%', |
| | | yjks: '07/21', |
| | | yjjs: '07/29' |
| | | }, |
| | | { |
| | | xh: 6, |
| | | jgzt: '开始', |
| | | pfsj: '07/29', |
| | | xsddh: '202207290001', |
| | | jgdh: 'MO-2022-07-29-0001', |
| | | cpmc: '产品名测试', |
| | | gg: '@20', |
| | | dw: 'PCS', |
| | | rwsl: 2000, |
| | | wgsl: 1900, |
| | | blsl: 100, |
| | | wcl: '99%', |
| | | yjks: '07/21', |
| | | yjjs: '07/29' |
| | | }, |
| | | { |
| | | xh: 7, |
| | | jgzt: '开始', |
| | | pfsj: '07/29', |
| | | xsddh: '202207290001', |
| | | jgdh: 'MO-2022-07-29-0001', |
| | | cpmc: '产品名测试', |
| | | gg: '@20', |
| | | dw: 'PCS', |
| | | rwsl: 2000, |
| | | wgsl: 1900, |
| | | blsl: 100, |
| | | wcl: '99%', |
| | | yjks: '07/21', |
| | | yjjs: '07/29' |
| | | }, |
| | | { |
| | | xh: 8, |
| | | jgzt: '开始', |
| | | pfsj: '07/29', |
| | | xsddh: '202207290001', |
| | | jgdh: 'MO-2022-07-29-0001', |
| | | cpmc: '产品名测试', |
| | | gg: '@20', |
| | | dw: 'PCS', |
| | | rwsl: 2000, |
| | | wgsl: 1900, |
| | | blsl: 100, |
| | | wcl: '99%', |
| | | yjks: '07/21', |
| | | yjjs: '07/29' |
| | | }, |
| | | { |
| | | xh: 9, |
| | | jgzt: '开始', |
| | | pfsj: '07/29', |
| | | xsddh: '202207290001', |
| | | jgdh: 'MO-2022-07-29-0001', |
| | | cpmc: '产品名测试', |
| | | gg: '@20', |
| | | dw: 'PCS', |
| | | rwsl: 2000, |
| | | wgsl: 1900, |
| | | blsl: 100, |
| | | wcl: '99%', |
| | | yjks: '07/21', |
| | | yjjs: '07/29' |
| | | }, |
| | | { |
| | | xh: 10, |
| | | jgzt: '开始', |
| | | pfsj: '07/29', |
| | | xsddh: '202207290001', |
| | | jgdh: 'MO-2022-07-29-0001', |
| | | cpmc: '产品名测试', |
| | | gg: '@20', |
| | | dw: 'PCS', |
| | | rwsl: 2000, |
| | | wgsl: 1900, |
| | | blsl: 100, |
| | | wcl: '99%', |
| | | yjks: '07/21', |
| | | yjjs: '07/29' |
| | | } |
| | | ], |
| | | tableDataRank: [// 排行 |
| | | { xh: 'NO.1', cj: '锂电车间', cx: '锂电1线', cp: 'F09锂电', sl: 1000 }, |
| | | { xh: 'NO.2', cj: '锂电车间', cx: '锂电1线', cp: 'F09锂电', sl: 1000 }, |
| | | { xh: 'NO.3', cj: '锂电车间', cx: '锂电1线', cp: 'F09锂电', sl: 1000 }, |
| | | { xh: 'NO.4', cj: '锂电车间', cx: '锂电1线', cp: 'F09锂电', sl: 1000 }, |
| | | { xh: 'NO.5', cj: '锂电车间', cx: '锂电1线', cp: 'F09锂电', sl: 1000 }, |
| | | { xh: 'NO.6', cj: '锂电车间', cx: '锂电1线', cp: 'F09锂电', sl: 1000 }, |
| | | { xh: 'NO.7', cj: '锂电车间', cx: '锂电1线', cp: 'F09锂电', sl: 1000 }, |
| | | { xh: 'NO.8', cj: '锂电车间', cx: '锂电1线', cp: 'F09锂电', sl: 1000 } |
| | | ] |
| | | purchaseLeftTopData: [], |
| | | tableData: [], |
| | | tableDataRank: [] |
| | | |
| | | } |
| | | }, |
| | |
| | | setInterval(this.getNowTime, 1000) |
| | | }, |
| | | mounted() { |
| | | |
| | | this.getPurchaseLeftTop() |
| | | this.getPurchaseLeftBottom() |
| | | this.getPurchaseRight() |
| | | }, |
| | | methods: { |
| | | |
| | | // 获取echarts |
| | | getEcharts() { |
| | | loadEcharts('pie01', pie01()) |
| | | |
| | | // setInterval(() => { |
| | | // loadEcharts('pie01', pie01()) |
| | | // }, 5000) |
| | | getPurchaseLeftTop() { |
| | | PurchaseLeftTop().then(res => { |
| | | this.purchaseLeftTopData = res.data[0] |
| | | console.log(this.purchaseLeftTopData) |
| | | }) |
| | | setInterval(() => { |
| | | PurchaseLeftTop().then(res => { |
| | | this.purchaseLeftTopData = res.data[0] |
| | | }) |
| | | }, 1000 * 6) |
| | | }, |
| | | |
| | | getPurchaseLeftBottom() { |
| | | PurchaseLeftBottom().then(res => { |
| | | this.tableData = res.data |
| | | }) |
| | | |
| | | const divData = this.$refs.tableData.bodyWrapper |
| | | // 拿到元素后,对元素进行定时增加距离顶部距离,实现滚动效果(此配置为每100毫秒移动1像素) |
| | | setInterval(() => { |
| | | // 元素自增距离顶部1像素 |
| | | // divData.scrollTop += divData.scrollHeight / this.tableDataRank.length |
| | | divData.scrollTop += 1 |
| | | // 判断元素是否滚动到底部(可视高度+距离顶部=整个高度) |
| | | if (divData.clientHeight + divData.scrollTop === divData.scrollHeight) { |
| | | // 重置table距离顶部距离 |
| | | divData.scrollTop = 0 |
| | | PurchaseLeftBottom().then(res => { |
| | | this.tableData = res.data |
| | | }) |
| | | } |
| | | }, this.tableData.length <= 14 ? 1000 * 6 : 100) |
| | | }, |
| | | |
| | | getPurchaseRight() { |
| | | PurchaseRight().then(res => { |
| | | this.tableDataRank = res.data |
| | | }) |
| | | |
| | | const divData = this.$refs.tableDataRank.bodyWrapper |
| | | // 拿到元素后,对元素进行定时增加距离顶部距离,实现滚动效果(此配置为每100毫秒移动1像素) |
| | | setInterval(() => { |
| | | // 元素自增距离顶部1像素 |
| | | // divData.scrollTop += divData.scrollHeight / this.tableDataRank.length |
| | | divData.scrollTop += 1 |
| | | // 判断元素是否滚动到底部(可视高度+距离顶部=整个高度) |
| | | if (divData.clientHeight + divData.scrollTop === divData.scrollHeight) { |
| | | // 重置table距离顶部距离 |
| | | divData.scrollTop = 0 |
| | | PurchaseRight().then(res => { |
| | | this.tableDataRank = res.data |
| | | }) |
| | | } |
| | | }, this.tableDataRank.length <= 22 ? 1000 * 6 : 100) |
| | | }, |
| | | |
| | | tableRowClassName({ row, rowIndex }) { |
| | | // 把每一行的索引放进row |
| | | row.index = rowIndex + 1 |
| | | }, |
| | | // 获取echarts |
| | | // getEcharts() { |
| | | // loadEcharts('pie01', pie01()) |
| | | // |
| | | // // setInterval(() => { |
| | | // // loadEcharts('pie01', pie01()) |
| | | // // }, 5000) |
| | | // }, |
| | | |
| | | // 获取当前时间 |
| | | getNowTime() { |
| | |
| | | }, |
| | | headerCellStyle() { |
| | | return { |
| | | backgroundColor: '#000', |
| | | backgroundColor: 'rgb(30 ,33, 46)', |
| | | padding: '10px 0', |
| | | textAlign: 'center', |
| | | color: '#fff', |
| | | borderRight: '1px solid rgba(255,255,255,0.6)' |
| | | color: '#07acc2', |
| | | border: 'none' |
| | | } |
| | | }, |
| | | cellStyle() { |
| | | return { |
| | | padding: '5px 0', |
| | | padding: '8px 0', |
| | | textAlign: 'center', |
| | | backgroundColor: '#000', |
| | | backgroundColor: 'rgba(30, 33, 46 )', |
| | | // backgroundColor: 'transparent', |
| | | color: '#fff', |
| | | borderRight: '1px solid rgba(255,255,255,0.6)' |
| | | border: 'none' |
| | | } |
| | | } |
| | | } |
| | |
| | | </script> |
| | | |
| | | <style scoped lang="scss"> |
| | | $kbBorderColor: #09d8f2; |
| | | |
| | | .kb_content { |
| | | display: flex; |
| | |
| | | display: flex; |
| | | //border: 1px solid rgba(255, 255, 255, 0.6); |
| | | justify-content: space-around; |
| | | background-color: rgba(30, 33, 46,0.6); |
| | | |
| | | .content01 { |
| | | margin: auto; |
| | |
| | | height: 610px; |
| | | display: flex; |
| | | flex-direction: column; |
| | | border: 1px solid rgba(255, 255, 255, 0.6); |
| | | |
| | | .content_head { |
| | | line-height: 55px; |
| | | border-bottom: 1px solid rgba(255, 255, 255, 0.6); |
| | | text-align: center; |
| | | font-size: 26px; |
| | | line-height: 20px; |
| | | font-size: 18px; |
| | | margin-bottom: 10px; |
| | | margin-top: -10px; |
| | | } |
| | | |
| | | .content_body { |
| | | border: 1px solid $kbBorderColor; |
| | | } |
| | | } |
| | | } |
| | |
| | | width: 100%; |
| | | |
| | | .kb_right_top_content { |
| | | border: 1px solid rgba(255, 255, 255, 0.6); |
| | | height: 100%; |
| | | display: flex; |
| | | flex-direction: column; |
| | | |
| | | .content_head { |
| | | font-size: 26px; |
| | | height: 55px; |
| | | line-height: 55px; |
| | | border-bottom: 1px solid rgba(255, 255, 255, 0.6); |
| | | text-align: center; |
| | | line-height: 20px; |
| | | font-size: 18px; |
| | | margin-bottom: 10px; |
| | | margin-top: -10px; |
| | | } |
| | | |
| | | .content_body { |
| | | border: 1px solid $kbBorderColor; |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | ::v-deep .el-table::before { |
| | | height: 0; |
| | | } |
| | | |
| | | ::v-deep .el-table__body-wrapper { |
| | | background-color: #000; |
| | | background-color: rgba(30, 33, 46); |
| | | } |
| | | |
| | | ::v-deep .el-table__body-wrapper::-webkit-scrollbar { |