From 2b4f4cda0a0031f02f7354fc2c68f056e44e1885 Mon Sep 17 00:00:00 2001 From: baoshiwei <baoshiwei@shlanbao.cn> Date: 星期四, 12 十二月 2024 13:21:58 +0800 Subject: [PATCH] 车间生产管理中的大屏故障显示完善 --- src/views/dry/bigScreen/BigEqp.vue | 599 +++++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 477 insertions(+), 122 deletions(-) diff --git a/src/views/dry/bigScreen/BigEqp.vue b/src/views/dry/bigScreen/BigEqp.vue index db3904b..b681b6b 100644 --- a/src/views/dry/bigScreen/BigEqp.vue +++ b/src/views/dry/bigScreen/BigEqp.vue @@ -29,21 +29,21 @@ <div class="formulaItem"> <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> @@ -118,44 +118,236 @@ > {{ statusTxt }} </div> - <div v-if="realData?.warning" style=" - margin-left: 100px; - font-size: 22px; - background: sandybrown; - height: 60px; - border-radius: 10px; - line-height: 0; - padding: 29px; - font-weight: bold;" > - {{ realData?.warnMsg }} - </div> - - - - <div - v-if="realData?.isError" - 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 30px; - " - > - <div class="outDiv"> - <div><Icon icon="bx:error" :size="30" /> </div> - <div - ><span>{{ realData?.errorMsg }}</span></div - > - </div> - </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 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 30px;--> +<!-- "--> +<!-- >--> +<!-- <div class="outDiv">--> +<!-- <div><Icon icon="bx:error" :size="30" /> </div>--> +<!-- <div--> +<!-- ><span>{{ realData?.errorMsg }}</span></div--> +<!-- >--> +<!-- </div>--> +<!-- </div>--> </div> </div> + <div style="width: 848px; height: 485px; position: absolute;" @click="showFault"> + <div v-if="zuoqianjiting" class="error-div" style=" top:309px; left:418px"> + <div class="blingbling error-marker" ></div> + <div class="error-msg" style="width: 70px;"> + 宸﹀墠鎬ュ仠 + </div> + </div> + <div v-if="shebeijiting" class="error-div" style=" top:111px; left:484px"> + <div class="blingbling error-marker" ></div> + <div class="error-msg" style=" width: 106px;"> + 璁惧鎬ュ仠锛堟�伙級 + </div> + </div> + <div v-if="chuliaojiting" class="error-div" style=" top:300px; left:129px"> + <div class="blingbling error-marker" ></div> + <div class="error-msg" style=" width: 70px;"> + 鍑烘枡鎬ュ仠 + </div> + </div> + <div v-if="mianbanjiting" class="error-div" style=" top:258px; left:659px"> + <div class="blingbling error-marker" ></div> + <div class="error-msg" style=" width: 70px;"> + 闈㈡澘鎬ュ仠 + </div> + </div> + <div v-if="fengxiangsheng" class="error-div" style=" top:294px; left:517px"> + <div class="blingbling error-marker" ></div> + <div class="error-msg" style=" width: 86px;"> + 椋庣鍗囧紓甯� + </div> + </div> + <div v-if="fengxiangjiang" class="error-div" style=" top:319px; left:517px"> + <div class="blingbling error-marker" ></div> + <div class="error-msg" style=" width: 86px;"> + 椋庣闄嶅紓甯� + </div> + </div> + <div v-if="fengjiguoliu" class="error-div" style=" top:335px; left:655px"> + <div class="blingbling error-marker" ></div> + <div class="error-msg" style=" width: 70px;"> + 椋庢満杩囨祦 + </div> + </div> + <div v-if="guntongsheng" class="error-div" style=" top:198px; left:517px"> + <div class="blingbling error-marker" ></div> + <div class="error-msg" style=" width: 86px;"> + 婊氱瓛鍗囧紓甯� + </div> + </div> + <div v-if="guntongjiang" class="error-div" style=" top:223px; left:517px"> + <div class="blingbling error-marker" ></div> + <div class="error-msg" style=" width: 86px;"> + 婊氱瓛闄嶅紓甯� + </div> + </div> + <div v-if="guntongguoliu" class="error-div" style=" top:209px; left:642px"> + <div class="blingbling error-marker" ></div> + <div class="error-msg" style=" width: 70px;"> + 婊氱瓛杩囨祦 + </div> + </div> + <div v-if="wendubaojing" class="error-div" style=" top:234px; left:659px"> + <div class="blingbling error-marker" ></div> + <div class="error-msg" style=" width: 70px;"> + 娓╁害鎶ヨ + </div> + </div> + + <div v-if="zuoqianmen" class="error-div" style=" top:388px; left:415px"> + <div class="blingbling warn-marker" ></div> + <div class="warn-msg" style=" width: 80px;"> + 宸﹀墠闂ㄦ姤璀� + </div> + </div> + <div v-if="zuohoumen" class="error-div" style=" top:367px; left:587px"> + <div class="blingbling warn-marker" ></div> + <div class="warn-msg" style=" width: 80px;"> + 宸﹀悗闂ㄦ姤璀� + </div> + </div> + <div v-if="youqianmen" class="error-div" style=" top:388px; left:284px"> + <div class="blingbling warn-marker" ></div> + <div class="warn-msg" style=" width: 80px;"> + 鍙冲墠闂ㄦ姤璀� + </div> + </div> + <div v-if="youhoumen" class="error-div" style=" top:367px; left:478px"> + <div class="blingbling warn-marker" ></div> + <div class="warn-msg" style=" width: 80px;"> + 鍙冲悗闂ㄦ姤璀� + </div> + </div> + + <div v-if="guntongbuzaigaowei" class="error-div" style=" top:173px; left:517px"> + <div class="blingbling warn-marker" ></div> + <div class="warn-msg" style=" width: 100px;"> + 婊氱瓛涓嶅湪楂樹綅 + </div> + </div> + <div v-if="fengxiangbuzaigaowei" class="error-div" style=" top:269px; left:517px"> + <div class="blingbling warn-marker" ></div> + <div class="warn-msg" style=" width: 100px;"> + 椋庣涓嶅湪楂樹綅 + </div> + </div> + <div v-if="fengxiangbuzaidiwei" class="error-div" style=" top:343px; left:517px"> + <div class="blingbling warn-marker" ></div> + <div class="warn-msg" style=" width: 100px;"> + 椋庣涓嶅湪浣庝綅 + </div> + </div> + <div v-if="jiareweichuanganqi" class="error-div" style=" top:283px; left:642px"> + <div class="blingbling warn-marker" ></div> + <div class="warn-msg" style=" width: 126px;"> + 鍔犵儹浣嶄紶鎰熷櫒鎶ヨ + </div> + </div> + <div v-if="zuoqianfengxianggaowei" class="error-div" style=" top:334px; left:362px"> + <div class="blingbling warn-marker" ></div> + <div class="warn-msg" style=" width: 126px;"> + 宸﹀墠椋庣涓嶅湪楂樹綅 + </div> + </div> + <div v-if="zuoqianfengxiangdiwei" class="error-div" style=" top:334px; left:362px"> + <div class="blingbling warn-marker" ></div> + <div class="warn-msg" style=" width: 126px;"> + 宸﹀墠椋庣涓嶅湪浣庝綅 + </div> + </div> + <div v-if="zuohoufengxianggaowei" class="error-div" style=" top:309px; left:642px"> + <div class="blingbling warn-marker" ></div> + <div class="warn-msg" style=" width: 126px;"> + 宸﹀悗椋庣涓嶅湪楂樹綅 + </div> + </div> + <div v-if="zuohoufengxiangdiwei" class="error-div" style=" top:309px; left:642px"> + <div class="blingbling warn-marker" ></div> + <div class="warn-msg" style=" width: 126px;"> + 宸﹀悗椋庣涓嶅湪浣庝綅 + </div> + </div> + <div v-if="youqianfengxianggaowei" class="error-div" style=" top:272px; left:300px"> + <div class="blingbling warn-marker" ></div> + <div class="warn-msg" style=" width: 126px;"> + 鍙冲墠椋庣涓嶅湪楂樹綅 + </div> + </div> + <div v-if="youqianfengxiangdiwei" class="error-div" style=" top:272px; left:300px"> + <div class="blingbling warn-marker" ></div> + <div class="warn-msg" style=" width: 126px;"> + 鍙冲墠椋庣涓嶅湪浣庝綅 + </div> + </div> + <div v-if="youhoufengxianggaowei" class="error-div" style=" top:246px; left:506px"> + <div class="blingbling warn-marker" ></div> + <div class="warn-msg" style=" width: 126px;"> + 鍙冲悗椋庣涓嶅湪楂樹綅 + </div> + </div> + <div v-if="youhoufengxiangdiwei" class="error-div" style=" top:246px; left:506px"> + <div class="blingbling warn-marker" ></div> + <div class="warn-msg" style=" width: 126px;"> + 鍙冲悗椋庣涓嶅湪浣庝綅 + </div> + </div> + <div v-if="zuoqianguntongdiwei" class="error-div" style=" top:175px; left:358px"> + <div class="blingbling warn-marker" ></div> + <div class="warn-msg" style=" width: 126px;"> + 宸﹀墠婊氱瓛涓嶅湪浣庝綅 + </div> + </div> + <div v-if="zuohouguntongdiwei" class="error-div" style=" top:158px; left:643px"> + <div class="blingbling warn-marker" ></div> + <div class="warn-msg" style=" width: 126px;"> + 宸﹀悗婊氱瓛涓嶅湪浣庝綅 + </div> + </div> + <div v-if="youqianguntongdiwei" class="error-div" style=" top:150px; left:268px"> + <div class="blingbling warn-marker" ></div> + <div class="warn-msg" style=" width: 126px;"> + 鍙冲墠婊氱瓛涓嶅湪浣庝綅 + </div> + </div> + <div v-if="youhouguntongdiwei" class="error-div" style=" top:135px; left:506px"> + <div class="blingbling warn-marker" ></div> + <div class="warn-msg" style=" width: 126px;"> + 鍙冲悗婊氱瓛涓嶅湪浣庝綅 + </div> + </div> + + </div> </dv-border-box7> <dv-border-box7 class="infoChart" style="margin-left: 0px; margin-right: 10px"> <div class="chartTittle">椋庣娓╁害</div> @@ -169,7 +361,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">{{ realData.dryTime | 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> @@ -204,8 +396,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"> @@ -227,7 +419,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> @@ -238,7 +430,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" @@ -261,8 +453,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"> @@ -278,7 +470,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> @@ -289,7 +481,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" @@ -317,8 +509,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"> @@ -334,7 +526,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> @@ -345,7 +537,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" @@ -383,6 +575,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() @@ -523,6 +716,40 @@ var compareChart: echarts.ECharts + //----------------error---------------- + const shebeijiting = ref(false) + const chuliaojiting = ref(false) + const zuoqianjiting = ref(false) + const mianbanjiting = ref(false) + const fengxiangsheng = ref(false) + const fengxiangjiang = ref(false) + const fengjiguoliu = ref(false) + const guntongsheng = ref(false) + const guntongjiang = ref(false) + const guntongguoliu = ref(false) + const wendubaojing = ref(false) + //--------------warning------------ + const zuoqianmen = ref(false) + const zuohoumen = ref(false) + const youqianmen = ref(false) + const youhoumen = ref(false) + const guntongbuzaigaowei = ref(false) + const fengxiangbuzaigaowei = ref(false) + const fengxiangbuzaidiwei = ref(false) + const jiareweichuanganqi = ref(false) + const zuoqianfengxianggaowei = ref(false) + const zuohoufengxianggaowei = ref(false) + const youqianfengxianggaowei = ref(false) + const youhoufengxianggaowei = ref(false) + const zuoqianfengxiangdiwei = ref(false) + const zuohoufengxiangdiwei = ref(false) + const youqianfengxiangdiwei = ref(false) + const youhoufengxiangdiwei = ref(false) + const zuoqianguntongdiwei = ref(false) + const zuohouguntongdiwei = ref(false) + const youqianguntongdiwei = ref(false) + const youhouguntongdiwei = ref(false) + function initCharts() { let domId = 'moisChart' let chartDom: HTMLElement = document.getElementById(domId) as HTMLElement @@ -633,8 +860,7 @@ smooth: true, symbol: 'none', data: [ - [1, 1], - [2, 2], + ], lineStyle: { width: 1, @@ -662,8 +888,7 @@ smooth: true, symbol: 'none', data: [ - [1, 10], - [2, 20], + ], lineStyle: { width: 1, @@ -714,7 +939,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: { @@ -805,7 +1030,7 @@ }, data: [ { - value: 20, + value: 0, }, ], }, @@ -843,7 +1068,7 @@ }, data: [ { - value: 20, + value: 0, }, ], }, @@ -1157,7 +1382,7 @@ axisLabel: { formatter: '{value} 掳C', }, - // max: standard.value.xiaolv + 3, + // max: eqp.value.dryEfficiency + 3, }, series: [ { @@ -1167,12 +1392,7 @@ width: 1, }, // [[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], - ], + data: [], markPoint: { data: [ { type: 'max', name: 'Max' }, @@ -1184,7 +1404,7 @@ data: [ { name: '棰濆畾', - yAxis: standard.value.xiaolv, + yAxis: 100, }, ], label: { @@ -1229,7 +1449,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', @@ -1269,6 +1489,9 @@ 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) }) @@ -1327,7 +1550,11 @@ statusGif = 'chaiwangban-1' setTimeout(shangliao, 7000) } + function showFault () { + console.log('showFault') + router.push({ path: '/bigFault', query: { num: num } }) + } function shangliao() { statusGif = 'shangliao-N' setTimeout(() => { @@ -1345,7 +1572,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) => { @@ -1378,7 +1605,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 }] }], }) } /**椋庢満棰戠巼鐜舰鍥� */ @@ -1398,10 +1625,11 @@ /**骞茬嚗杩涘害銆佽蛋鍔夸笌闃舵鏁堢巼鍜岄樁娈垫秷鑰� */ if (res && res.detailList) { var progressSeries = [] - var ganZaoXiaoLv = [] + var zhengQiXiaoHao = [] var dianNengXiaoHao = [] - var totalTime = 1 + var ganZaoXiaoLv = [] + var totalTime = 0 var beforeWeight = 0 res.moisList = [] beforeWeight = res.originWeight @@ -1410,7 +1638,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) { @@ -1453,7 +1681,7 @@ }) } - // 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) @@ -1495,6 +1723,7 @@ } res.totalTime = totalTime + res.remain + console.log("efficAvg::",res.efficAvg); /**骞茬嚗鏁堢巼銆佹秷鑰� */ if (efficiencyLineChart) { //console.log(`output->ganZaoXiaoLv`, ganZaoXiaoLv) @@ -1504,13 +1733,14 @@ }, series: [ { + name: '骞茬嚗鏁堢巼', data: ganZaoXiaoLv, markLine: { symbol: 'none', data: [ { name: '棰濆畾', - yAxis: standard.value.xiaolv, + yAxis: res.efficAvg|0, }, ], label: { @@ -1519,8 +1749,8 @@ }, }, }, - { data: zhengQiXiaoHao }, - { data: dianNengXiaoHao }, + // { data: zhengQiXiaoHao }, + // { data: dianNengXiaoHao }, ], }) } @@ -1569,66 +1799,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) } - res.zhengqi = standard.value.zhengqi - 3 - console.log(res); - 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) } - res.dian = standard.value.dian - 1.5 - 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) @@ -1712,17 +1950,114 @@ } else if (res.herbName == '妗戠櫧鐨�') { res.herbImage = 'sangbaipi.png' } - - res.isError = false - if (res.fault) { - res.isError = true - res.errorMsg = res.fault - } - if (res.warning) { - res.isWarning = true - res.warnMsg = res.warning - } + res.isError = false + if (res.fault) { + res.isError = true + res.errorMsg = res.fault; + const faults = res.fault; + console.log('errorMsg:', res.fault) + if (faults.includes('鎬ュ仠鎶ヨ')) { + shebeijiting.value = true; + } + if (faults.includes('宸﹀墠鎬ュ仠')) { + zuoqianjiting.value = true; + } + if (faults.includes('闈㈡澘鎬ュ仠')) { + mianbanjiting.value = true; + } + if (faults.includes('鍑烘枡鎬ュ仠')) { + chuliaojiting.value = true; + } + if (faults.includes('娓╁害澶辨帶')) { + wendubaojing.value = true; + } + if (faults.includes('婊氱瓛鍗�')) { + guntongsheng.value = true; + } + if (faults.includes('婊氱瓛闄�')) { + guntongjiang.value = true; + } + if (faults.includes('婊氱瓛鐢垫満杩囨祦')) { + guntongguoliu.value = true; + } + if (faults.includes('椋庣鍗�')) { + fengxiangsheng.value = true; + } + if (faults.includes('椋庣闄�')) { + fengxiangjiang.value = true; + } + if (faults.includes('椋庣椋庢満杩囨祦')) { + fengjiguoliu.value = true; + } + } + + if (res.warning) { + res.isWarning = true + res.warnMsg = res.warning + const warnings = res.warning; + console.log('warnMsg:', res.warning) + if (warnings.includes('宸﹀墠闂�')) { + zuoqianmen.value = true; + } + if (warnings.includes('鍙冲墠闂�')) { + youqianmen.value = true; + } + if (warnings.includes('宸﹀悗闂�')) { + zuohoumen.value = true; + } + if (warnings.includes('鍙冲悗闂�')) { + youhoumen.value = true; + } + if (warnings.includes('婊氱瓛涓嶅湪楂樹綅')) { + guntongbuzaigaowei.value = true; + } + if (warnings.includes('椋庣涓嶅湪浣庝綅')) { + fengxiangbuzaidiwei.value = true; + } + if (warnings.includes('椋庣涓嶅湪楂樹綅')) { + fengxiangbuzaigaowei.value = true; + } + if (warnings.includes('鍔犵儹浣嶄紶鎰熷櫒')) { + jiareweichuanganqi.value = true; + } + if (warnings.includes('宸﹀墠椋庣楂樹綅浼犳劅鍣�')) { + zuoqianfengxianggaowei.value = true; + } + if (warnings.includes('鍙冲墠椋庣楂樹綅浼犳劅鍣�')) { + youqianfengxianggaowei.value = true; + } + if (warnings.includes('宸﹀悗椋庣楂樹綅浼犳劅鍣�')) { + zuohoufengxianggaowei.value = true; + } + if (warnings.includes('鍙冲悗椋庣楂樹綅浼犳劅鍣�')) { + youhoufengxianggaowei.value = true; + } + if (warnings.includes('宸﹀墠椋庣浣庝綅浼犳劅鍣�')) { + zuoqianfengxiangdiwei.value = true; + } + if (warnings.includes('鍙冲墠椋庣浣庝綅浼犳劅鍣�')) { + youqianfengxiangdiwei.value = true; + } + if (warnings.includes('宸﹀悗椋庣浣庝綅浼犳劅鍣�')) { + zuohoufengxiangdiwei.value = true; + } + if (warnings.includes('鍙冲悗椋庣浣庝綅浼犳劅鍣�')) { + youhoufengxiangdiwei.value = true; + } + if (warnings.includes('宸﹀墠婊氱瓛浣庝綅浼犳劅鍣�')) { + zuoqianguntongdiwei.value = true; + } + if (warnings.includes('鍙冲墠婊氱瓛浣庝綅浼犳劅鍣�')) { + youqianguntongdiwei.value = true; + } + if (warnings.includes('宸﹀悗婊氱瓛浣庝綅浼犳劅鍣�')) { + zuohouguntongdiwei.value = true; + } + if (warnings.includes('鍙冲悗婊氱瓛浣庝綅浼犳劅鍣�')) { + youhouguntongdiwei.value = true; + } + } } else { res = { mois: [], @@ -1731,7 +2066,7 @@ } } - //console.log(`output->res`, res) + // console.log(`output->res`, res.detailList[res.detailList.length-1]) realData.value = res }) } @@ -1873,7 +2208,7 @@ margin-top: -30px; } .leftTop0 { - height: 600px; + height: 260px; width: 848px; display: flex; justify-content: center; @@ -1912,7 +2247,7 @@ .eqpStatus { width: 848px; - height: 300px; + } .rightInfo { display: flex; @@ -2242,4 +2577,24 @@ opacity: 0; } } + + .error-div { + position: absolute; display: flex; align-items: center; + } + .error-marker { + width: 18px; height: 18px; background: red; border-radius: 50%; + } + .error-msg { + margin-left: 6px; + height: 24px; + background: gray; border-radius: 5px; font-weight: bold; color: red + } + .warn-marker { + width: 18px; height: 18px; background: orange; border-radius: 50%; + } + .warn-msg { + margin-left: 6px; + height: 24px; + background: gray; border-radius: 5px; font-weight: bold; color: orange; + } </style> -- Gitblit v1.9.3