From a1a6630f2eabfc78a379b5808b1bf7231a084d0b Mon Sep 17 00:00:00 2001 From: haoxuan <haoxuan> Date: 星期三, 11 十月 2023 18:02:44 +0800 Subject: [PATCH] 工序弹框的 列表和详情的更新同步 --- src/views/visualization.vue | 111 +++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 87 insertions(+), 24 deletions(-) diff --git a/src/views/visualization.vue b/src/views/visualization.vue index a6dd135..de42bc4 100644 --- a/src/views/visualization.vue +++ b/src/views/visualization.vue @@ -124,8 +124,8 @@ </div> </div> <div class="content_right"> - <div class="gif" v-if="taskData.Procedure.ID" @click="processModelClick(taskData)"> - <img v-if="isUpdateIcon" src="../../public/shan.gif" /> + <div class="gif" v-if="taskData.Procedure.ID" @click="processModelClick(taskData,index)"> + <img v-if="taskData.isUpdateIcon" src="../../public/shan.gif" /> <span v-else class="yuandian"></span> </div> <el-descriptions :column="(activeName == 1||activeName == 3) ? 2 : 1" :colon="true"> @@ -524,7 +524,7 @@ <div class="right-person-box" v-if="workers && workers.length > 0"> <dl class="right-small-person" - v-for="(item, index) in workers" + v-for="(item, index) in deduplicateWorkers(displayWorkers())" :key="index" > <dt> @@ -605,8 +605,6 @@ </template> --> <!-- 鎺у埗鐨勫脊妗� --> - <AddControl ref="control" :Arr="Arr" /> - <!-- 鎺у埗鐨勫脊妗� --> <TaskControlModal ref="control" :activeName="activeName" @@ -617,6 +615,7 @@ <ProcessModel ref="processModel" :listData="listData" + @updateGet="updateGet" /> </div> </template> @@ -640,6 +639,7 @@ import ProcessModel from "../components/ProcessModel.vue"; import TaskControlModal from "@/components/TaskControlModal.vue"; import {channelNameConfig} from "@/common/constants"; +import _ from 'lodash' export default { components: { TaskControlModal, @@ -661,6 +661,8 @@ // 鍙充晶瀹屾垚 finishShow:{}, workers:[], + // 淇濆瓨褰撳墠涓嶅悓閫氶亾鐨勫�肩彮浜� + channelWorkersMap:{0:[],1:[]}, TasksCopy:[], Tasks: [ { @@ -770,11 +772,11 @@ procedureList: [], }, processList:[], - isUpdateIcon:false, listData:[], - resResult:null, + resResult:[], resprocInfoTimer:null, - channelNameConfig: channelNameConfig + channelNameConfig: channelNameConfig, + index:null, }; }, mounted() { @@ -809,9 +811,22 @@ // } }, methods: { + deduplicateWorkers(workers){ + return _.uniqBy(workers,ele=>ele.workerName) + }, + updateGet(number,val){ + if(val){ + this.getTaskInfo(this.activeName,'new') + return true; + } + this.listData.number=number + if(this.index){ + this.TasksCopy[this.index].number=number + } + }, getModelList(){ - this.resResult=null for (let i in this.TasksCopy){ + this.TasksCopy[i].isUpdateIcon=false; if(this.TasksCopy[i].Procedure.ID&&this.TasksCopy[i].number){ processModelList({ procedureId: this.TasksCopy[i].Procedure.ID, @@ -822,21 +837,24 @@ if(res.code==200){ this.processList=res.data?res.data:[]; if(this.processList.length>0){ - for(let i in this.processList){ - if(this.processList[i].isUpdate){ - this.isUpdateIcon=true; + for(let j in this.processList){ + if(this.processList[j].isUpdate){ + this.TasksCopy[i].isUpdateIcon=true; + this.$forceUpdate() break; } } } } - this.resResult=res; + this.resResult[i]=res; + console.log( this.resResult[i],'===res111') }) } } }, - processModelClick(list){ + processModelClick(list,index){ this.listData=list; + this.index=index if( Object.keys(this.listData).length > 0){ if(this.listData.Procedure.ID&&this.listData.number){ this.$refs.processModel.islook=true @@ -847,10 +865,19 @@ }, getProcessModelList(){ this.getModelList() - if (!this.ProcessModelTimer&&!this.resResult) { + let string=false; + if(this.resResult.length>0){ + for(let i in this.resResult){ + if(this.resResult[i]){ + string=false; + } + } + } + if (!this.ProcessModelTimer&&!string) { this.ProcessModelTimer = setInterval(() => { + this.resResult=[] this.getModelList(); - }, 10000) + }, 5000) } }, mergeProcessParams(params){ @@ -1052,14 +1079,33 @@ }); }, - getTaskInfo(val) { + /** + * 鏍规嵁褰撳墠灞曠ず鐨勬槸0閫氶亾杩樻槸1閫氶亾杩樻槸涓や釜閫氶亾灞曠ず瀵瑰簲鐨勫�肩彮浜� + * @return {*[]} + */ + displayWorkers(){ + let showWorkers = [] + if (this.activeName===1){ + showWorkers =[...this.channelWorkersMap[0]] + }else if (this.activeName===2){ + showWorkers =[...this.channelWorkersMap[0],...this.channelWorkersMap[1]] + }else if (this.activeName===3){ + showWorkers =[...this.channelWorkersMap[1]] + }else { + return [] + } + + return showWorkers + }, + + getTaskInfo(val,info) { this.Tasks = []; this.TasksCopy=[] getTaskInfo({taskMode:2}).then((res) => { if (res.code == 200&&res.data) { - let arr=[] + // let arr=[] if(res.data.Tasks){ - arr.sort(function(a,b){ + res.data.Tasks.sort(function(a,b){ return (a.Channel - b.Channel) }) } @@ -1081,12 +1127,23 @@ } } this.workers=res.data.workers?res.data.workers:[] + + // 灏嗗�肩彮浜烘牴鎹�氶亾鍙峰垎缁� + const groupByChannel= _.groupBy(res.data.Tasks,ele=>ele.Channel) + const taskList0= _.first(groupByChannel[0]) + const taskList1= _.first(groupByChannel[1]) + const worker0List = taskList0?.Procedure?.procedure?.workers ?? [] + const worker1List = taskList1?.Procedure?.procedure?.workers ?? [] + this.channelWorkersMap['0'] =worker0List + this.channelWorkersMap['1'] =worker1List + for (let i in this.TasksCopy) { this.TasksCopy[i].procedureList = []; this.TasksCopy[i].inputMaterials = []; this.TasksCopy[i].outputMaterials = []; this.TasksCopy[i].finishNumber = 0; this.TasksCopy[i].number=0; + this.TasksCopy[i].isUpdateIcon=false; this.finishShow['finishShow&'+i]=false this.TasksCopy[i].Procedure.procedure.workers = this.TasksCopy[i].Procedure .procedure.workers @@ -1110,20 +1167,26 @@ }); this.TasksCopy[i].Arr=res.data.Params ? res.data.Params : [] // this.isFinsh=Number(i)+1 + this.$forceUpdate() } }); } this.setInterCard("inputMaterials", "cardBox1&" + i, i); this.setInterCard("outputMaterials", "cardBox3&" + i, i); } + this.getProcessModelList(); this.getStartArr() + this.cutClick(val?val:1) + if(info=='new'){ + return true; + } + this.getProgressInfo(); if (!this.procInfoTimer&&!this.resprocInfoTimer) { this.procInfoTimer = setInterval(() => { this.getProgressInfo(); }, 3000); } - this.getProcessModelList(); } // if (res.code != 200 || this.TasksCopy.length == 0) { // this.getcountdown(); @@ -1134,7 +1197,7 @@ // }, 60000); // } // } - this.cutClick(val?val:1) + }); // this.TasksCopy.push(this.object) // this.TasksCopy.push(this.object) @@ -1723,7 +1786,7 @@ width: 100%; height: 30px; // text-align: left; - font-size: 24px; + font-size: 28px!important; margin: 0; text-align: center; line-height: 36px; @@ -1798,11 +1861,11 @@ white-space:nowrap; } .card_top-2{ - width:35%; + width:38%; } .card-top-input-out-r, .card_top-3 { - width:65%; + width:62%; } .card_top-2,.card-top-input-out-r, .card_top-3 { -- Gitblit v1.8.0