From 3ed1e1db73f7462186188a3d75970b37170521c5 Mon Sep 17 00:00:00 2001
From: songshankun <songshankun@foxmail.com>
Date: 星期日, 08 十月 2023 17:39:10 +0800
Subject: [PATCH] Merge branch 'wn' into songshankun/tasks-pagination

---
 src/views/visualization.vue |  116 ++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 89 insertions(+), 27 deletions(-)

diff --git a/src/views/visualization.vue b/src/views/visualization.vue
index a99156d..bb6eb01 100644
--- a/src/views/visualization.vue
+++ b/src/views/visualization.vue
@@ -124,6 +124,10 @@
               </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" />
+                    <span v-else class="yuandian"></span>
+               </div>
               <el-descriptions :column="(activeName == 1||activeName == 3) ? 2 : 1" :colon="true">
                 <el-descriptions-item label="浜у搧鍚嶇О">{{
                   taskData.Order.productName || "--"
@@ -507,7 +511,6 @@
             <span v-else>
               <img  v-if="plcStatus == 1&&!plcNotConnected"  src="../../public/duan.png" />
               <img  v-else src="../../public/lian.png" />
-              <!-- <span class="yuandian"></span> -->
               {{ plcStatus==1?'鏂紑':(plcStatus==2?'鐢熶骇涓�':'寰呮満') }}
             </span>
           </span>
@@ -613,7 +616,7 @@
     <!-- 宸ヨ壓妯″瀷 -->
     <ProcessModel
       ref="processModel"
-      :processList="processList"
+      :listData="listData"
     />
   </div>
 </template>
@@ -628,6 +631,7 @@
   getProgress,
   countdown,
   getTaskUnStarted,
+  processModelList,
 } from "@/api/home/index"; // 浜х嚎
 import Card from "@/components/Card.vue";
 import Knowledge from "../components/Knowledge.vue";
@@ -746,6 +750,7 @@
       // 璁板綍瀹氭椂鍣ㄧ姸鎬�
       procInfoTimer: null,
       cutdownTimer: null,
+      ProcessModelTimer: null,
       TaskCount:0,
       plcStatus:0,
       isTipShow:false,
@@ -763,16 +768,11 @@
         outputMaterials: [],
         procedureList: [],
       },
-      processList:[
-        {
-          name:'浜у搧1+宸ヨ壓2',
-          number:'v1.0'
-        },
-        {
-          name:'浜у搧1+宸ヨ壓2',
-          number:'v2.0'
-        }
-      ]
+      processList:[],
+      isUpdateIcon:false,
+      listData:[],
+      resResult:null,
+      resprocInfoTimer:null,
     };
   },
   mounted() {
@@ -792,6 +792,8 @@
   },
   beforeDestroy() {
     clearTimeout(this.pollingTaskCountTimer)
+    clearTimeout(this.procInfoTimer)
+    clearTimeout(this.ProcessModelTimer)
   },
   watch:{
     // isFinsh(){
@@ -801,6 +803,52 @@
     // }
   },
   methods: {
+
+    getModelList(){
+      this.resResult=null
+      for (let i in this.TasksCopy){
+        if(this.TasksCopy[i].Procedure.ID&&this.TasksCopy[i].number){
+          processModelList({
+            procedureId: this.TasksCopy[i].Procedure.ID,
+            page: 1,
+            pageSize:6,
+            number:this.TasksCopy[i].number
+          }).then(res=>{
+            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;
+                    break;
+                  }
+                } 
+              }
+            }
+            this.resResult=res; 
+          })
+        }
+      }
+    },
+    processModelClick(list){
+      this.listData=list;
+      if( Object.keys(this.listData).length > 0){
+        if(this.listData.Procedure.ID&&this.listData.number){
+          this.$refs.processModel.islook=true
+          return true;
+        }
+      }
+      this.$message.error('褰撳墠宸ュ簭鏃犵紪鍙凤紝鏃犳硶鏌ョ湅宸ュ簭!')
+     
+    },
+    getProcessModelList(){
+      this.getModelList()
+      if (!this.ProcessModelTimer&&!this.resResult) {
+          this.ProcessModelTimer = setInterval(() => {
+          this.getModelList();
+        }, 10000)
+      }
+    },
     mergeProcessParams(params){
       if (params?.length){
         return params.map(ele=> `${ele.Key}: ${ele.Value}`).join(' ')
@@ -1036,6 +1084,7 @@
             this.TasksCopy[i].inputMaterials = [];
             this.TasksCopy[i].outputMaterials = [];
             this.TasksCopy[i].finishNumber = 0;
+            this.TasksCopy[i].number=0;
             this.finishShow['finishShow&'+i]=false
             this.TasksCopy[i].Procedure.procedure.workers = this.TasksCopy[i].Procedure
               .procedure.workers
@@ -1052,6 +1101,7 @@
             if (this.TasksCopy[i].Procedure.ID) {
               startTask({ id: this.TasksCopy[i].Procedure.ID }).then((res) => {
                 if (res.code == 200) {
+                  this.TasksCopy[i].number=res.data.Number
                   // res.data.number
                   this.TasksCopy[i].procedureList[0].push({
                     number: res.data.Number,
@@ -1066,11 +1116,12 @@
           }
           this.getStartArr()
           this.getProgressInfo();
-              if (!this.procInfoTimer) {
+              if (!this.procInfoTimer&&!this.resprocInfoTimer) {
                 this.procInfoTimer = setInterval(() => {
                   this.getProgressInfo();
                 }, 3000);
-          }
+              }
+           this.getProcessModelList();
         }
         // if (res.code != 200 || this.TasksCopy.length == 0) {
         //   this.getcountdown();
@@ -1111,6 +1162,7 @@
       })
     },
     getProgressInfo() {
+      this.resprocInfoTimer=null
       for (let i in this.TasksCopy){
         if(this.TasksCopy[i].Procedure.ID){
           getProgress({
@@ -1123,10 +1175,10 @@
                 : 0;
                 this.plcStatus=res.data.plcStatus?res.data.plcStatus:0
             }
+            this.resprocInfoTimer=res;
           });
         }
       }
-
     },
     // 璁剧疆
     setUrl() {
@@ -1417,6 +1469,16 @@
   background: #09e5ed !important;
   color: #333 !important;
 }
+.yuandian {
+        width: 35px;
+        height: 35px;
+        display:inline-block;
+        // background: #15d815;
+        background:red;
+        border-radius: 50%;
+        // margin-top:-5px;
+        vertical-align: middle;
+      }
 .bottom_list {
   position: relative;
   padding: 10px;
@@ -1623,6 +1685,18 @@
         padding: 0 10px;
         background: rgb(22 72 173);
         border-radius: 6px;
+        position:relative;
+        .gif{
+          position:absolute;
+          right:15px;
+          top:10px;
+          width:35px;
+          vertical-align: middle;
+          cursor:pointer;
+          img{
+            width:100%;
+          }
+        }
         // background: #233b9e;
         .el-descriptions-row{
           height:45px;
@@ -1863,18 +1937,6 @@
           // float:left;
           display:inline-block;
         }
-      }
-
-      .yuandian {
-        width: 25px;
-        height: 25px;
-        line-height: 40px;
-        margin-top: 12.5px;
-        display: inline-block;
-        background: #15d815;
-        display: block;
-        border-radius: 50%;
-        float: right;
       }
     }
     .right-top-m-btn {

--
Gitblit v1.8.0