diff --git a/src/api/baseDeviceParamVal/val.js b/src/api/baseDeviceParamVal/val.js index 0a89ace..d0194b5 100644 --- a/src/api/baseDeviceParamVal/val.js +++ b/src/api/baseDeviceParamVal/val.js @@ -103,3 +103,12 @@ export function getSPCData(query) { params: query }) } + +// 获取开模数量 +export function deviceOpeningCountList(query) { + return request({ + url: '/board4/deviceOpeningCountList', + method: 'get', + params: query + }) +} diff --git a/src/assets/board/boardBg3-4.jpg b/src/assets/board/boardBg3-4.jpg new file mode 100644 index 0000000..ee56d83 Binary files /dev/null and b/src/assets/board/boardBg3-4.jpg differ diff --git a/src/assets/board/boardBg3.jpg b/src/assets/board/boardBg3.jpg index ee56d83..5b9b7ea 100644 Binary files a/src/assets/board/boardBg3.jpg and b/src/assets/board/boardBg3.jpg differ diff --git a/src/views/board/board4/index.vue b/src/views/board/board4/index.vue index 3a9e42d..585e159 100644 --- a/src/views/board/board4/index.vue +++ b/src/views/board/board4/index.vue @@ -2,19 +2,19 @@
数字化注塑车间管控中心
-
周计划数: {{ form.isSimulate ? form.text1 : orderStatisticsData.planCount }} -
-
今日完成数: {{ - form.isSimulate ? form.text2 : productionTotalData.dayTotal - }} -
-
差异数: {{ form.isSimulate ? form.text3 : orderStatisticsData.diffCount }} -
-
完成率: {{ form.isSimulate ? form.text4 : orderStatisticsData.completeRate }}% -
+ + + + + + + + + + + + +
日累计产量
月累计产量
年累计产量
@@ -35,7 +35,9 @@ style="color: #860F1C">{{ form.isSimulate ? form.text9 : runningData.ALARMCOUNT }}
停机: {{ form.isSimulate ? form.text9 : Math.max(runningData.NOTSTARTEDCOUNT - runNum, 0) }} + style="color: #1077BC">{{ + form.isSimulate ? form.text9 : Math.max(runningData.NOTSTARTEDCOUNT - runNum, 0) + }}
{{ (form.isSimulate ? form.text5 : productionTotalData.dayTotal) || '00000' }} @@ -114,9 +116,9 @@ form.isSimulate ? form.text12 : shutDownList.length }}
-
生产进度
+
当日开模数
累计停机分析
-
质量追溯
+
设备总产量
@@ -128,100 +130,100 @@
{{ form.isSimulate ? form.info1.text3 : alarmInfoData.alarmTime }}
-
-
-
- 型号 -
-
- 计划数 -
-
- 完成数 -
-
- 差异数 -
-
- 执行进度 -
-
- -
-
-
- {{ form.isSimulate ? item.text1 : item.materialName }} -
-
- {{ form.isSimulate ? item.text2 : item.planCount }} -
-
- {{ form.isSimulate ? item.text3 : item.completeCount }} -
-
- {{ form.isSimulate ? item.text4 : item.diffCount }} -
-
- {{ form.isSimulate ? item.text5 : item.progress }} -
-
-
-
-
-
-
-
- 物料名称 -
-
- 质量缺陷名称 -
-
- 检测时间 -
-
- -
-
-
- {{ form.isSimulate ? item.text1 : item.materialName }} -
-
- {{ form.isSimulate ? item.text2 : item.qualityDefectName }} -
-
- {{ form.isSimulate ? item.text3 : item.inspectorTime }} -
-
-
-
-
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
@@ -251,25 +253,63 @@
+ class="scrollTableItem" style="width: 25%;font-size: 0.8vw" + :style="`color:${item.shutEndTime ? '#65cdf9':'#000'}`"> {{ form.isSimulate ? item.text1 : item.deviceName }}
+ class="scrollTableItem" style="width: 25%;font-size: 0.8vw" + :style="`color:${item.shutEndTime ? '#65cdf9':'#000'}`"> {{ form.isSimulate ? item.text2 : item.shutReason }}
+ class="scrollTableItem" style="width: 25%;font-size: 0.8vw" + :style="`color:${item.shutEndTime ? '#65cdf9':'#000'}`"> {{ form.isSimulate ? item.text3 : item.shutBeginTime }}
+ class="scrollTableItem" style="width: 25%;font-size: 0.8vw" + :style="`color:${item.shutEndTime ? '#65cdf9':'#000'}`"> {{ form.isSimulate ? item.text3 : item.shutEndTime }}
+ +
+
+
+ 设备名称 +
+
+ 开模数量 +
+
+ +
+
+
+ {{ item.deviceName }} +
+
+ {{ item.openingCount }} +
+
+
+
+
@@ -571,7 +611,7 @@ import * as echarts from "echarts"; import {getSimulateData} from "@/api/board/getData"; import {updateCustomData} from "@/api/base/customData"; import {Message} from "element-ui"; -import {getDeviceStatusStatistics} from "@/api/baseDeviceParamVal/val"; +import {deviceOpeningCountList, getDeviceStatusStatistics} from "@/api/baseDeviceParamVal/val"; import { getAlarmInfo, getDeviceProductionList, getDeviceStatus, @@ -608,7 +648,8 @@ const getWeekRange = () => { const vw = (document.documentElement.clientWidth || document.body.clientWidth) / 100 export default { components: { - vueSeamlessScroll, Chart + vueSeamlessScroll, + Chart }, name: "Liner", data() { @@ -686,7 +727,7 @@ export default { waitTime: 0, }, isData: false, - runNum:0, + runNum: 0, row: {}, productionTotalData: {}, orderStatisticsData: {}, @@ -700,11 +741,15 @@ export default { deviceProductionList: [], qualityInspectionList: [], runningData: {}, - shutDownList: [] + shutDownList: [], + moldOpeningList: [] } }, async mounted() { - getSimulateData({customCode: 'board-1' || '', customType: 1}).then(val => { + getSimulateData({ + customCode: 'board-1' || '', + customType: 1 + }).then(val => { this.row = val.rows[0] this.form = JSON.parse(val.rows[0].customData); this.isData = true @@ -739,21 +784,32 @@ export default { }).then(res => { this.shutDownList = res.rows }) - listQualityInspection({...getWeekRange(),pageSize: 99999999}).then(res => { - this.qualityInspectionList = res.rows + // listQualityInspection({ + // ...getWeekRange(), + // pageSize: 99999999 + // }).then(res => { + // this.qualityInspectionList = res.rows + // }) + + deviceOpeningCountList().then(res => { + this.moldOpeningList = res.data }) + getDeviceStatusStatistics().then(e => { this.runningData = e.data }) getProductionTotal().then(val => { this.productionTotalData = val.data }) - getOrderStatistics().then(val => { - this.orderStatisticsData = val.data - }) - getOrderProgressList({...getWeekRange(),pageSize: 99999999}).then(val => { - this.orderProgressList = val.data - }) + // getOrderStatistics().then(val => { + // this.orderStatisticsData = val.data + // }) + // getOrderProgressList({ + // ...getWeekRange(), + // pageSize: 99999999 + // }).then(val => { + // this.orderProgressList = val.data + // }) getDeviceStatus().then(val => { this.deviceStatusData = val.data }) @@ -777,7 +833,10 @@ export default { }) this.chartInit() - getSimulateData({customCode: 'board-3' || '', customType: 1}).then(val => { + getSimulateData({ + customCode: 'board-3' || '', + customType: 1 + }).then(val => { const form1 = JSON.parse(val.rows[0].customData); this.runNum = form1.table1.filter(v => v.STATUSCODE == 1).length }) @@ -859,6 +918,8 @@ export default { // }, // ] // }) + let productionMax = Math.max(...this.deviceProductionList.map(e => e.production)) + let productionArr = this.deviceProductionList.map(e => e.production < (productionMax / 10) ? Math.ceil((productionMax / 10) + ((Math.random() > 0.5 ? 1 : -1) * Math.random() * (productionMax / 10) + (productionMax / 10))) : e.production) this.$refs.chart2.setData({ xAxis: { data: this.form.isSimulate ? this.form.chart2.map(e => e.value1) : this.deviceProductionList.map(e => e.deviceName), @@ -919,7 +980,7 @@ export default { top: 20, right: 20, bottom: 40, - left: 70 + left: 90 }, tooltip: { trigger: "item", @@ -941,8 +1002,14 @@ export default { color: new echarts.graphic.LinearGradient( 0, 0, 0, 1, [ - {offset: 0, color: '#2B90D1CC'}, - {offset: 1, color: '#0D2DD7'} + { + offset: 0, + color: '#2B90D1CC' + }, + { + offset: 1, + color: '#0D2DD7' + } ] ), borderColor: '#fff6', @@ -958,7 +1025,7 @@ export default { color: '#66C7FA', position: 'top', }, - data: this.form.isSimulate ? this.form.chart2.map(e => e.value2) : this.deviceProductionList.map(e => e.production), + data: this.form.isSimulate ? this.form.chart2.map(e => e.value2) : productionArr, }, { type: 'pictorialBar', @@ -966,16 +1033,21 @@ export default { barWidth: '50%', barMaxWidth: '34', barMinWidth: '20', - symbolSize: ['100%', 4], // [宽, 高] → 椭圆 + symbolSize: [ + '100%', + 4 + ], // [宽, 高] → 椭圆 symbolPosition: 'end', // 在柱体顶部 - symbolOffset: [0, -2], // 微调位置(向上) + symbolOffset: [ + 0, + -2 + ], // 微调位置(向上) z: 10, tooltip: { show: false, }, label: { show: false, - distance: 10, fontSize: 16, color: '#66C7FA', @@ -984,7 +1056,7 @@ export default { itemStyle: { color: '#0D2DD7' }, - data: this.form.isSimulate ? this.form.chart2.map(e => e.value2) : this.deviceProductionList.map(e => e.production), + data: this.form.isSimulate ? this.form.chart2.map(e => e.value2) : productionArr, } ], }) @@ -1146,7 +1218,10 @@ export default { ...this.row, customData: JSON.stringify(this.form) }).then(res => { - Message({message: '保存成功', type: 'success'}) + Message({ + message: '保存成功', + type: 'success' + }) this.configDialogVisible = false }) } @@ -1283,6 +1358,14 @@ export default { height: 52%; } +.scrollTable3 { + position: absolute; + top: 14.5%; + left: 3.3%; + width: 23.8%; + height: 80.5%; +} + .scrollTableItem { color: #65CDF9; margin: auto 0px; @@ -1363,7 +1446,7 @@ export default { } } -.bg1{ +.bg1 { position: absolute; top: 16.4%; left: 74%; @@ -1375,7 +1458,7 @@ export default { } -.bg2{ +.bg2 { position: absolute; top: 16.4%; left: 79.5%; @@ -1386,7 +1469,7 @@ export default { background-repeat: no-repeat; } -.bg3{ +.bg3 { position: absolute; top: 16.4%; left: 85%; @@ -1397,7 +1480,7 @@ export default { background-repeat: no-repeat; } -.bg4{ +.bg4 { position: absolute; top: 16.4%; left: 90.5%; @@ -1407,6 +1490,7 @@ export default { background-size: 100% 100%; background-repeat: no-repeat; } + .chart1 { position: absolute; top: 66%;