From 880d8b2a6440405b022e4eb2111ba4d7cfdc0400 Mon Sep 17 00:00:00 2001
From: haoxuan <haoxuan>
Date: 星期日, 08 十月 2023 16:29:22 +0800
Subject: [PATCH] 工序列表+工序详情的 前端开发+联调

---
 src/views/visualization.vue |  114 +++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 86 insertions(+), 28 deletions(-)

diff --git a/src/views/visualization.vue b/src/views/visualization.vue
index 2da3f20..2f1579e 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 || "--"
@@ -362,7 +366,7 @@
                 <el-button type="primary"> 鎵撳嵃</el-button>
                 
                 <el-popover
-                v-if="taskData.Procedure.Status!=3"
+                v-if="taskData.Procedure.Status!=3&&taskData.Procedure.ID"
                   placement="top-end"
                   width="160"
                   class="button-finish"
@@ -496,7 +500,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>
@@ -607,7 +610,7 @@
     <!-- 宸ヨ壓妯″瀷 -->
     <ProcessModel
       ref="processModel"
-      :processList="processList"
+      :listData="listData"
     />
   </div>
 </template>
@@ -622,6 +625,7 @@
   getProgress,
   countdown,
   getTaskUnStarted,
+  processModelList,
 } from "@/api/home/index"; // 浜х嚎
 import Card from "@/components/Card.vue";
 import Knowledge from "../components/Knowledge.vue";
@@ -737,6 +741,7 @@
       // 璁板綍瀹氭椂鍣ㄧ姸鎬�
       procInfoTimer: null,
       cutdownTimer: null,
+      ProcessModelTimer: null,
       TaskCount:0,
       plcStatus:0,
       isTipShow:false,
@@ -754,16 +759,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() {
@@ -788,6 +788,51 @@
     // }
   },
   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)
+      }
+    },
     taskClick(){
       if(this.TaskCount>0){
         this.getStartArr()
@@ -995,6 +1040,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
@@ -1011,6 +1057,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,
@@ -1025,11 +1072,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();
@@ -1070,6 +1118,7 @@
       })
     },
     getProgressInfo() {
+      this.resprocInfoTimer=null
       for (let i in this.TasksCopy){
         if(this.TasksCopy[i].Procedure.ID){
           getProgress({
@@ -1082,10 +1131,10 @@
                 : 0;
                 this.plcStatus=res.data.plcStatus?res.data.plcStatus:0
             }
+            this.resprocInfoTimer=res;
           });
         }
       }
-      
     },
     // 璁剧疆
     setUrl() {
@@ -1376,6 +1425,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;
@@ -1580,6 +1639,17 @@
         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;
+          img{
+            width:100%;
+          }
+        }
         // background: #233b9e;
         .el-descriptions-row{
           height:45px;
@@ -1820,18 +1890,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