From ef93984c4aac13d88f3dbbe2342f28256549d4a2 Mon Sep 17 00:00:00 2001 From: bsw215583320 <baoshiwei121@163.com> Date: 星期一, 05 八月 2024 10:32:10 +0800 Subject: [PATCH] 增加工单过程趋势查看功能 --- src/views/dry/bigScreen/BigEqp.vue | 241 +++++++++++++++++++++++++++++------------------ 1 files changed, 147 insertions(+), 94 deletions(-) diff --git a/src/views/dry/bigScreen/BigEqp.vue b/src/views/dry/bigScreen/BigEqp.vue index c609eae..7f8f689 100644 --- a/src/views/dry/bigScreen/BigEqp.vue +++ b/src/views/dry/bigScreen/BigEqp.vue @@ -27,23 +27,23 @@ </div> <div class="formula"> <div class="formulaItem"> - <Icon style="color: powderblue" icon="icon-park-twotone:box" :size="35" /> + <Icon style="color: powderblue" icon="la:box" :size="38" /> <div> - <div class="mainInfo2">{{ realData?.feed }} 绛�</div> + <div class="mainInfo2">{{ realData?.feed || 0 }} 绛�</div> <div class="subhead2">鎶曟枡閲�</div> </div> </div> <div class="formulaItem"> <Icon style="color: red" icon="bx:wind" :size="35" /> <div> - <div class="mainInfo2">{{ realData?.windTemp }} 掳C</div> + <div class="mainInfo2">{{ realData?.windTemp || 0 }} 掳C</div> <div class="subhead2">鐑</div> </div> </div> <div class="formulaItem"> <Icon style="color: green" icon="tabler:target-arrow" :size="35" /> <div> - <div class="mainInfo2">{{ realData?.target }} %</div> + <div class="mainInfo2">{{ realData?.target || 0 }} %</div> <div class="subhead2">鐩爣</div> </div> </div> @@ -65,7 +65,7 @@ <div class="center" style="height: 50%"> <div class="centerText"> <div class="mainInfo3" - ><span>{{ realData?.target }}</span> % + ><span>{{ realData?.target || 0 }}</span> % </div> <div class="subhead2">鐩爣鍚按鐜�</div> </div> @@ -73,7 +73,7 @@ <div class="center" style="height: 50%"> <div> <div class="mainInfo3" - ><span>{{ realData?.initial }}</span> %</div + ><span>{{ realData?.initial || 0 }}</span> %</div > <div class="subhead2">鏉ユ枡鍚按鐜�</div> </div> @@ -96,7 +96,7 @@ <div class="leftTop1"> <Icon icon="bi:fan" :size="50" /> <div> - <div class="mainInfo">{{ realData.trendVo?.fanFrequency | 0 }} Hz</div> + <div class="mainInfo">{{ realData?.trendVo?.fanFrequency | 0 }} Hz</div> <div class="subhead">椋庢満棰戠巼</div> </div> </div> @@ -105,31 +105,47 @@ <div style=" font-size: 28px; - margin-top: 190px; + color: white; background-color: #1595ea; height: 60px; width: 180px; line-height: 60px; text-align: center; - border-radius: 5px; + border-radius: 10px; font-weight: bold; " > {{ statusTxt }} </div> + <div v-if="realData?.warning" style=" + margin-left: 100px; + font-size: 22px; + background: sandybrown; + + border-radius: 10px; + line-height: 25px; + max-width: 500px; + padding: 15px; + font-weight: bold;" > + {{ realData?.warnMsg }} + </div> + + + <div v-if="realData?.isError" - class="eqpInfoText blingbling" + class="eqpInfoText blingbling outDiv" style=" position: absolute; font-size: 30px; max-height: 200px; max-width: 720px; + margin-top: 300px; border-radius: 10px; background-color: #ce0000; color: white; - padding: 10px; + padding: 10px 30px; " > <div class="outDiv"> @@ -154,7 +170,7 @@ <div class="chartTittle">瀹炴椂杩涘害</div> <div id="efficiencyLine" style="width: 848px; height: 180px; margin-top: -10px"></div> <div style="height: 10px; display: flex; width: 848px; padding: 0 60px; justify-content: space-between"> - <div style="width: 100px; height: 20px">0 min</div> + <div style="width: 100px; height: 20px">{{ realData?.dryTime | 0 }} min</div> <div style="width: 100px; height: 20px; text-align: right">{{ realData?.totalTime | 0 }} min</div> </div> <div id="progressBar" style="width: 848px; height: 80px"></div> @@ -189,8 +205,8 @@ <div class="chartTittle"> 骞茬嚗鏁堢巼(kg/h) <div class="rightLabel"> - <div class="label good">>{{ standard.xiaolv }} 浼� </div> - <div class="label bad"><{{ standard.xlMin }} 宸�</div> + <div class="label good">>{{ realData?.efficAvg?.toFixed(2) }} 浼� </div> + <div class="label bad"><{{ ((realData?.efficAvg|0) * 0.9)?.toFixed(2) }} 宸�</div> </div> </div> <div class="outDiv" style="padding-top: 20px"> @@ -212,7 +228,7 @@ </div> <div class="rightChart center"> <div class="center compareBar"> - <div class="barTop">{{ standard.xiaolv }}</div> + <div class="barTop">{{ realData?.efficAvg?.toFixed(2) }}</div> <div class="barBack"> <div class="barDiv" :style="{ height: realData?.xlsHeight }"></div> </div> @@ -223,7 +239,7 @@ </div> </div> <div class="center compareBar"> - <div class="barTop">{{ realData?.xiaolv | 0 }}</div> + <div class="barTop">{{ realData?.xiaolv?.toFixed(2) || 0 }}</div> <div class="barBack"> <div class="barDiv" @@ -246,8 +262,8 @@ <div class="chartTittle" >钂告苯娑堣��(m鲁/kg) <div class="rightLabel"> - <div class="label bad">>{{ standard.zhengqi }} 宸�</div> - <div class="label good"><{{ standard.zqMin }} 浼�</div> + <div class="label bad">>{{ realData?.steamAvg?.toFixed(2) }} 宸�</div> + <div class="label good"><{{ ((realData?.steamAvg|0) * 0.9).toFixed(2) }} 浼�</div> </div> </div> <div class="outDiv" style="padding-top: 20px"> @@ -263,7 +279,7 @@ </div> <div class="rightChart center"> <div class="center compareBar"> - <div class="barTop">{{ standard.zhengqi }}</div> + <div class="barTop">{{ realData?.steamAvg?.toFixed(2) }}</div> <div class="barBack"> <div class="barDiv" :style="{ height: realData?.zqsHeight }"></div> </div> @@ -274,7 +290,7 @@ </div> </div> <div class="center compareBar"> - <div class="barTop">{{ realData?.zhengqi | 0 }}</div> + <div class="barTop">{{ realData?.zhengqi?.toFixed(2) || 0 }}</div> <div class="barBack"> <div class="barDiv" @@ -302,8 +318,8 @@ <div class="chartTittle"> <div> 鐢佃兘娑堣��(kWh/kg)</div> <div class="rightLabel"> - <div class="label bad">>{{ standard.dian }} 宸�</div> - <div class="label good"><{{ standard.dMin }} 浼�</div> + <div class="label bad">>{{ realData?.wattAvg?.toFixed(3) }} 宸�</div> + <div class="label good"><{{ ((realData?.wattAvg|0) * 0.9).toFixed(3) }} 浼�</div> </div> </div> <div class="outDiv" style="padding-top: 20px"> @@ -319,7 +335,7 @@ </div> <div class="rightChart center"> <div class="center compareBar"> - <div class="barTop">{{ standard.dian }}</div> + <div class="barTop">{{ realData?.wattAvg?.toFixed(3) }}</div> <div class="barBack"> <div class="barDiv" :style="{ height: realData?.dnsHeight }"></div> </div> @@ -330,7 +346,7 @@ </div> </div> <div class="center compareBar"> - <div class="barTop">{{ realData?.dian | 0 }}</div> + <div class="barTop">{{ realData?.dian?.toFixed(3) || 0 }}</div> <div class="barBack"> <div class="barDiv" @@ -368,6 +384,7 @@ import { queryById, listAll } from '../api/DryEquipment.api' import { dryEquipment } from '../dataDefine/DryEquipment.data' import { useUserStore } from '/@/store/modules/user' + import { getTenantId, getToken } from '/@/utils/auth' const domRef = ref<Nullable<HTMLElement>>(null) const { enter, toggle, exit, isFullscreen } = useFullscreen() @@ -479,7 +496,7 @@ 100: '100掳C', }) const eqps = ref([] as dryEquipment[]) - //console.log(`output->router.currentRoute.value.params.num `, router.currentRoute.value.query) + console.log(`output->router.currentRoute.value.params.num `, router.currentRoute.value.query) const eqp = ref({} as dryEquipment) const eqpNum = ref(router.currentRoute.value.query.num || 1) const userStore = useUserStore() @@ -618,8 +635,7 @@ smooth: true, symbol: 'none', data: [ - [1, 1], - [2, 2], + ], lineStyle: { width: 1, @@ -647,8 +663,7 @@ smooth: true, symbol: 'none', data: [ - [1, 10], - [2, 20], + ], lineStyle: { width: 1, @@ -699,7 +714,7 @@ amplitude: 3, animationDuration: 5, //animationDurationUpdate: 0, - data: [0.56, 0.44, 0.32], + data: [0, 0, 0], shape: 'path://M828.817,706.209C828.817,881.725,686.98,1024,512,1024c-174.98,0-316.817-142.275-316.817-317.791C195.183,530.74,512,0,512,0s316.817,530.74,316.817,706.209z', outline: { @@ -790,7 +805,7 @@ }, data: [ { - value: 20, + value: 0, }, ], }, @@ -828,7 +843,7 @@ }, data: [ { - value: 20, + value: 0, }, ], }, @@ -960,7 +975,7 @@ // '#DBE165', // ], animation: false, // 鍏抽棴鍔ㄧ敾 - color: ['#397FD7', '#2D8CDE', '#239CE5', '#1DA4E8', '#14B2EF', '#0BC4FA', '#02D2FF', '#19EEFF', '#33FAFF', '#5EFFF8'], + color: ['#397FD7', '#2D8CDE', '#239CE5', '#1DA4E8', '#14B2EF', '#0BC4FA', '#02D2FF', '#19EEFF', '#33FAFF', '#5EFFF8', '#60FFFE', '#64FAFF', '#70FFFF', '#7BFFFF', '#88FFFD', '#97FFFF', '#A5FFFD', '#B1FFFF', '#BFFFFF', '#CAFFFF'], grid: { top: '12%', left: '20', @@ -1142,7 +1157,7 @@ axisLabel: { formatter: '{value} 掳C', }, - // max: standard.value.xiaolv + 3, + // max: eqp.value.dryEfficiency + 3, }, series: [ { @@ -1153,10 +1168,7 @@ }, // [[15,10], [15,11], [10,6], [7.5,12], [5,12], [2.5,5], [2.5,9], [1,7]] data: [ - [0, 1], - [15, 10], - [45, 11], - [70, 6], + ], markPoint: { data: [ @@ -1169,7 +1181,7 @@ data: [ { name: '棰濆畾', - yAxis: standard.value.xiaolv, + yAxis: 100, }, ], label: { @@ -1214,7 +1226,7 @@ name: '2011', type: 'bar', barWidth: 10, - data: [190, 89, 34, 70, 44, 30], + data: [0, 0, 0, 0, 0, 0], label: { show: true, position: 'right', @@ -1243,12 +1255,20 @@ // 鍔ㄦ�佽鍙栧浘鐗� function getStatusImageUrl(name: string) { - return new URL(`/src/assets/images/dry/${name}.gif`, import.meta.url).href + if (name =='zanting') { + return new URL(`/src/assets/images/dry/${name}.png`, import.meta.url).href + } else { + return new URL(`/src/assets/images/dry/${name}.gif`, import.meta.url).href + } + } function queryEqp() { queryById({ id: router.currentRoute.value.params.id }).then((res) => { // console.log(`output->res`, res) eqp.value = res + eqp.value.dryEfficiency = res.dryEfficiency + eqp.value.steamConsumption = res.steamConsumption + eqp.value.powerConsumption = res.powerConsumption queryRealTime() setTimeout(initCharts, 500) }) @@ -1325,7 +1345,7 @@ if (eqp.value) { eqp.value = eqps.value[eqpNum.value] // console.log("888",eqp.value); - let tenantId = 1003 + let tenantId = getTenantId() let eqpCode = eqp.value.code let queryRealTimeUrl = '/dry/real/getRealTimeData' defHttp.get({ url: queryRealTimeUrl, params: { tenantid: tenantId, machineid: eqpCode } }).then((res) => { @@ -1358,7 +1378,7 @@ /**娓╁害鐜舰鍥� */ if (bellowsTempChart) { bellowsTempChart.setOption({ - series: [{ data: [{ value: res.windTemp }] }, { data: [{ value: res.windTemp }] }], + series: [{ data: [{ value: res.trendVo.bellowsTemp }] }, { data: [{ value: res.trendVo.bellowsTemp }] }], }) } /**椋庢満棰戠巼鐜舰鍥� */ @@ -1378,9 +1398,10 @@ /**骞茬嚗杩涘害銆佽蛋鍔夸笌闃舵鏁堢巼鍜岄樁娈垫秷鑰� */ if (res && res.detailList) { var progressSeries = [] - var ganZaoXiaoLv = [] + var zhengQiXiaoHao = [] var dianNengXiaoHao = [] + var ganZaoXiaoLv = [] var totalTime = 0 var beforeWeight = 0 res.moisList = [] @@ -1390,7 +1411,7 @@ //console.log(`output->bef`, beforeWeight) //console.log(`output->cur`, item.weight) res.moisList.push([item.totalTime, item.moisture]) - //console.log(`output->totalTime,item.totalTime`, totalTime, item.totalTime) + // console.log(`output->totalTime,item.totalTime`, totalTime, item.totalTime) var curDryTime = item.totalTime - totalTime if (curDryTime > 0) { @@ -1433,8 +1454,11 @@ }) } - // ganZaoXiaoLv.push([totalTime + res.remain,standard.value.xiaolv]) - + // ganZaoXiaoLv.push([totalTime + res.remain,eqp.value.dryEfficiency]) + // console.log(`output->res.remain`, res.remain) + // console.log(`output->res.dryTime`, res.dryTime) + // console.log(`output->totalTime`, totalTime) + // 骞茬嚗鍓╀綑鏃堕棿=宸ュ崟棰勮鍓╀綑-锛堝綋鍓嶅共鐕ユ椂闂�-鏈�鍚庝竴娆¤褰曞共鐕ユ椂闂达級 res.totalRemain = res.remain - (res.dryTime - totalTime) > 0 ? res.remain - (res.dryTime - totalTime) : 0 progressSeries.push({ name: '鍓╀綑', @@ -1472,6 +1496,7 @@ } res.totalTime = totalTime + res.remain + console.log("efficAvg::",res.efficAvg); /**骞茬嚗鏁堢巼銆佹秷鑰� */ if (efficiencyLineChart) { //console.log(`output->ganZaoXiaoLv`, ganZaoXiaoLv) @@ -1487,7 +1512,7 @@ data: [ { name: '棰濆畾', - yAxis: standard.value.xiaolv, + yAxis: res.efficAvg|0, }, ], label: { @@ -1546,64 +1571,74 @@ }) } + let lastTrend = res.detailList[res.detailList.length-1] /**鏁堢巼瀵规瘮鍥� */ - if (res.originWeight - res.yield <= 0) { - res.xiaolv = standard.value.xiaolv + 6 + if (res.originWeight - lastTrend.weight <= 0) { + res.xiaolv = 0 } else { - res.xiaolv = (((res.originWeight - res.yield) / res.dryTime) * 60).toFixed(2) + res.xiaolv = ((res.originWeight - lastTrend.weight) / lastTrend.totalTime) * 60 } - - if (res.xiaolv > standard.value.xiaolv) { + res.xiaolv = Number(res.xiaolv) + //eqp.value.dryEfficiency = Number(eqp.value.dryEfficiency) + if (res.xiaolv > res.efficAvg) { + console.log("xiaolv:",res , eqp); res.xlgood = true - res.xlsHeight = (standard.value.xiaolv / res.xiaolv) * 100 + '%' + res.xlsHeight = (res.efficAvg / res.xiaolv) * 100 + '%' res.xlrHeight = '100%' - } else if (res.xiaolv < standard.value.xlMin) { + } else if (res.xiaolv < res.efficAvg * 0.9) { res.xlbad = true res.xlsHeight = '100%' - res.xlrHeight = (res.xiaolv / standard.value.xiaolv) * 100 + '%' + res.xlrHeight = (res.xiaolv / res.efficAvg) * 100 + '%' } else { res.xlsHeight = '100%' - res.xlrHeight = (res.xiaolv / standard.value.xiaolv) * 100 + '%' + res.xlrHeight = (res.xiaolv / res.efficAvg) * 100 + '%' } /** 钂告苯娑堣�� */ - if (res.originWeight - res.yield <= 0) { - res.zhengqi = standard.value.zhengqi - 3 + if (res.originWeight - lastTrend.weight <= 0) { + res.zhengqi = 0 } else { - res.zhengqi = (res.steam / (res.originWeight - res.yield)).toFixed(1) + res.zhengqi = lastTrend.steam / (res.originWeight - lastTrend.weight) } - //console.log('zhengqi:', res.zhengqi); - if (res.zhengqi > standard.value.zhengqi) { + res.zhengqi = Number(res.zhengqi) + //eqp.value.steamConsumption = Number(eqp.value.steamConsumption) + // res.zhengqi = eqp.value.steamConsumption - 3 + // console.log(res); + // console.log('zhengqi:', res.zhengqi); + if (res.zhengqi > res.steamAvg) { res.zqbad = true - res.zqsHeight = (standard.value.zhengqi / res.zhengqi) * 100 + '%' + res.zqsHeight = (res.steamAvg / res.zhengqi) * 100 + '%' res.zqrHeight = '100%' - } else if (res.zhengqi < standard.value.zqMin) { + } else if (res.zhengqi < res.steamAvg * 0.9) { res.zqgood = true res.zqsHeight = '100%' - res.zqrHeight = (res.zhengqi / standard.value.zhengqi) * 100 + '%' + res.zqrHeight = (res.zhengqi / res.steamAvg) * 100 + '%' } else { res.zqsHeight = '100%' - res.zqrHeight = (res.zhengqi / standard.value.zhengqi) * 100 + '%' + res.zqrHeight = (res.zhengqi / res.steamAvg) * 100 + '%' } /** 鐢佃兘娑堣�� */ - if (res.originWeight - res.yield <= 0) { - res.dian = standard.value.dian - 1.5 + if (res.originWeight - lastTrend.weight <= 0) { + res.dian = 0 } else { - res.dian = (res.watt / (res.originWeight - res.yield)).toFixed(1) + res.dian = lastTrend.watt / (res.originWeight - lastTrend.weight) } - - if (res.dian > standard.value.dian) { + // res.dian = eqp.value.powerConsumption - 1.5 + res.dian = Number(res.dian) + //eqp.value.powerConsumption = Number(eqp.value.powerConsumption) + if (res.dian > res.wattAvg) { + console.log("dian::", res.dian,res.wattAvg ) res.dnbad = true - res.dnsHeight = (standard.value.dian / res.dian) * 100 + '%' + res.dnsHeight = (res.wattAvg / res.dian) * 100 + '%' res.dnrHeight = '100%' - } else if (res.dian < standard.value.dMin) { + } else if (res.dian < res.wattAvg * 0.9) { res.dngood = true res.dnsHeight = '100%' - res.dnrHeight = (res.dian / standard.value.dian) * 100 + '%' + res.dnrHeight = (res.dian / res.wattAvg) * 100 + '%' } else { res.dnsHeight = '100%' - res.dnrHeight = (res.dian / standard.value.dian) * 100 + '%' + res.dnrHeight = (res.dian / res.wattAvg) * 100 + '%' } //console.log('state:::fan::', res.state_fan, 'roller::', res.state_roller, 'windbox::', res.state_windbox) @@ -1621,25 +1656,37 @@ statusTxt = '涓婃枡' setTimeout(chaiwangban, 4000) } else if (res.orderStatus == 2) { - if (res.state_fan == 1) { + statusTxt = res.level + statusGif = 'zanting' + if (res.level === '鍑嗗闃舵') { + console.log("鍑嗗闃舵" + statusGif); + statusGif = 'zanting' + } else if (res.level === '骞茬嚗闃舵' || res.level === '姝e湪骞茬嚗') { statusGif = 'tmrefeng2' - statusTxt = '姝e湪骞茬嚗' - } - - if (res.state_roller == 4) { + } else if (res.level === '缈绘枡闃舵') { statusGif = 'fanliao-N' - statusTxt = '姝e湪缈绘枡' - } - - if (res.state_roller == 5) { + } else if (res.level === '鍑烘枡闃舵') { statusGif = 'chuliao-N' - statusTxt = '姝e湪鍑烘枡' } + // if (res.state_fan == 1) { + // statusGif = 'tmrefeng2' + // statusTxt = '姝e湪骞茬嚗' + // } - if (res.state_windbox == 2 || res.state_windbox == 3) { - statusGif = 'fengxiangsheng-1' - statusTxt = '姝e湪骞茬嚗' - } + // if (res.state_roller == 4) { + // statusGif = 'fanliao-N' + // statusTxt = '姝e湪缈绘枡' + // } + + // if (res.state_roller == 5) { + // statusGif = 'chuliao-N' + // statusTxt = '姝e湪鍑烘枡' + // } + + // if (res.state_windbox == 2 || res.state_windbox == 3) { + // statusGif = 'fengxiangsheng-1' + // statusTxt = '姝e湪骞茬嚗' + // } } else if (res.orderStatus == 3) { statusGif = 'zanting' statusTxt = '鏆傚仠' @@ -1675,9 +1722,17 @@ } else if (res.herbName == '妗戠櫧鐨�') { res.herbImage = 'sangbaipi.png' } + res.isError = false + if (res.fault) { + res.isError = true + res.errorMsg = res.fault + } - res.errorMsg = '鏈変竴涓晠闅滐紝璇锋鏌ャ��' + if (res.warning) { + res.isWarning = true + res.warnMsg = res.warning + } } else { res = { mois: [], @@ -1686,7 +1741,7 @@ } } - //console.log(`output->res`, res) + // console.log(`output->res`, res.detailList[res.detailList.length-1]) realData.value = res }) } @@ -1867,9 +1922,7 @@ .eqpStatus { width: 848px; - height: 300px; - - padding: 100px; + } .rightInfo { display: flex; -- Gitblit v1.9.3