From f5cbbd5e6ecf6ba16523cdea205572f52e7643ae Mon Sep 17 00:00:00 2001
From: haoxuan <haoxuan>
Date: 星期三, 20 九月 2023 11:40:13 +0800
Subject: [PATCH] 开始生产的接口变化

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

diff --git a/src/views/visualization.vue b/src/views/visualization.vue
index 3745c30..aedaf2c 100644
--- a/src/views/visualization.vue
+++ b/src/views/visualization.vue
@@ -1,7 +1,7 @@
 
 <template>
   <div class="home">
-    <!-- v-if="Object.keys(taskData).length > 0 && taskData.Procedure.ID" -->
+    <!--  -->
     <template v-if="Tasks&&Tasks.length>0">
       <div class="left">
         <p class="title">
@@ -37,6 +37,7 @@
           v-for="(taskData, index) in Tasks"
           :key="index"
         >
+        <template v-if="taskData">
           <div class="gong-date">
             宸ュ簭杩愯鏃堕棿锛歿{ getFormatTime(taskData.Procedure.startTime) }}
           </div>
@@ -44,13 +45,13 @@
             <span class="title-item"
               >宸ュ崟缂栧彿:
               <span class="color_4efefa">{{
-                taskData.Order.workOrderId || ""
+                taskData.Order.workOrderId || "--"
               }}</span>
             </span>
             <span class="title-item"
               >褰撳墠宸ュ簭:
               <span class="color_4efefa">{{
-                taskData.Procedure.procedure.procedureName || ""
+                taskData.Procedure.procedure.procedureName || "--"
               }}</span>
             </span>
             <span class="title-item"
@@ -74,8 +75,8 @@
               </span>
             </span> -->
           </div>
-          <div class="gongx" v-if="taskData.AllProcedures">
-          <el-steps :active="taskData.CurrentProcedureIndex?taskData.CurrentProcedureIndex:0"  finish-status="success" class="steps">
+          <div class="gongx">
+          <el-steps v-if="taskData.AllProcedures" :active="taskData.CurrentProcedureIndex?taskData.CurrentProcedureIndex:0"  finish-status="success" class="steps">
             <el-step icon="" :title="item" v-for="(item,index) in taskData.AllProcedures" :key="index"></el-step>
           </el-steps>
         </div>
@@ -198,7 +199,7 @@
                     <div class="card_content">
                       <div class="card_contentLeft">{{ list.materialId }}</div>
                     </div>
-                    <div class="card_top">
+                    <div class="card-top-input-out-l">
                       <div>
                         <!-- 璁惧12<i
                             style="font-size: 14px"
@@ -208,7 +209,7 @@
                         {{ list.materialName }}
                       </div>
                     </div>
-                    <div class="card_top2">
+                    <div class="card-top-input-out-r">
                       <div style="line-height: 45px; text-align: center">
                         {{ list.amount }} {{ list.unit }}
                       </div>
@@ -218,7 +219,7 @@
                   </div>
                 </el-carousel-item>
               </el-carousel>
-              <el-button type="primary" class="color_f70f83">
+              <el-button type="primary" class="color_f70f83 bottom-box-btn">
                 <i class="el-icon-phone-outline" />鐗╂枡鍛煎彨</el-button
               >
             </div>
@@ -246,8 +247,16 @@
                   >
                     <template v-if="list.name == '宸ュ簭'">
                       <div class="card_content">
-                        <div class="card_contentLeft color_blue">
-                          {{ list.deviceName }}
+                        <div class="card_contentLeft color_blue font_dian">
+                          <!-- {{ list.deviceName }} -->
+                          <el-popover
+                          width="200"
+                          :content="list.deviceName"
+                          placement="top-start"
+                          trigger="click"
+                        >
+                          <span slot="reference">{{ list.deviceName }}</span>
+                        </el-popover>
                           <!-- <span style="float: right">6m/s</span> -->
                         </div>
                       </div>
@@ -299,8 +308,8 @@
                       <!-- <div class="card_content">
                         
                       </div> -->
-                      <div class="card_top-4">
-                        <div>宸ヨ壓缂栧彿锛歿{ list.number }}</div>
+                      <div :class="activeName==1?'card_top-4 font_size_20px':'card_top-4'">
+                        <div>宸ヨ壓缂栧彿锛�<div >{{ list.number }}</div></div>
                         <!-- <div
                           style="
                             font-size: 14px;
@@ -319,7 +328,7 @@
               <p
                 style="font-size: 22px; margin-left: 12px; margin-top: 50px"
               ></p>
-              <div class="right-small-btn">
+              <div class="right-small-btn bottom-box-btn">
                 <el-button type="primary"> 鎵撳嵃</el-button>
                 <el-popover
                   placement="top-end"
@@ -376,53 +385,32 @@
                           {{ list.materialId }}
                         </div>
                       </div>
-                      <div class="card_top">
+                      <div class="card-top-input-out-l">
                         <div>
                           {{ list.materialName }}
-                          <!-- 璁惧12<i
-                            style="font-size: 14px"
-                            class="el-icon-right font-arrow-20"
-                          ></i>
-                          璁惧13 -->
                         </div>
                       </div>
-                      <div class="card_top2">
+                      <div class="card-top-input-out-r">
                         <div style="line-height: 45px; text-align: center">
                           {{ list.amount }} {{ list.unit }}
                         </div>
-                        <!-- <span class="card-top-r-t">鐢熶骇瀹屾垚</span>
-                        <span class="card-top-r-b">12鏈�28鏃� 08:24</span> -->
                       </div>
-                      <!-- <div class="card-info-box">棰勮10鍒嗛挓閫佽揪</div> -->
                     </div>
-                    <!-- <div class="card">
-                      <div class="card_content">
-                        <div class="card_contentLeft color_green">
-                          鍖呭彿:G22122304 100鍚�
-                        </div>
-                      </div>
-                      <div class="card_top">
-                        <div>
-                          璁惧12<i
-                            style="font-size: 14px"
-                            class="el-icon-right font-arrow-20"
-                          ></i>
-                          璁惧13
-                        </div>
-                      </div>
-                      <div class="card_top-2">
-                        <span class="card-top-r-t">鐢熶骇瀹屾垚</span>
-                        <span class="card-top-r-b">12鏈�28鏃� 08:24</span>
-                      </div>
-                    </div> -->
                   </div>
                 </el-carousel-item>
               </el-carousel>
-              <el-button type="primary" class="color_f70f83">
+              <el-button type="primary" class="color_f70f83 bottom-box-btn">
                 <i class="el-icon-phone-outline" />杩愯緭鍛煎彨</el-button
               >
             </div>
           </div>
+        </template>
+          <!-- 2涓换鍔$殑鏃跺�欙紝绗簩涓换鍔′负绌虹殑鏃跺�欐樉绀� -->
+          <template
+              v-if="activeName == 2 &&(!taskData||Object.keys(taskData).length==0)"
+            >
+            <el-empty description="鏆傛棤浠诲姟..."></el-empty>
+          </template>
         </div>
       </div>
       <div class="right">
@@ -444,7 +432,7 @@
           璁惧鐘舵��:
           <!-- 1鏂紑2鐢熶骇3寰呮満 -->
           <span style="position: relative"
-            >
+           v-if="plcStatus" >
             <img v-if="plcStatus == 1" src="../../public/duan.png" />
             <img v-else src="../../public/lian.png" />
             <!-- <span class="yuandian"></span> -->
@@ -477,9 +465,12 @@
                 style="font-size: 20px; font-weight: 600; margin-right: 10px"
                 >{{ item.workerName || "" }}</span
               >
-              <span>{{ item.phoneNum || "" }}</span>
+              <!-- <span>{{ item.phoneNum || "" }}</span> -->
+              <span class="color_yellow"><i class="el-icon-star-on" /><i class="el-icon-star-on" /><i class="el-icon-star-on" /><i class="el-icon-star-on" /><i class="el-icon-star-on" /></span>
             </dl>
+           
           </div>
+         
           <!-- <div
             style="
               width: 100%;
@@ -504,7 +495,7 @@
         </div>
       </div>
     </template>
-    <!-- v-else -->
+    <!--  -->
     <template v-else>
       <div class="home-img-box">
         <div class="bg-title">
@@ -671,7 +662,7 @@
       procInfoTimer: null,
       cutdownTimer: null,
       TaskCount:0,
-      plcStatus:1,
+      plcStatus:0,
       isTipShow:false,
     };
   },
@@ -799,11 +790,11 @@
       return d;
     },
     setInterCard(value, name, i) {
-      if (this.Tasks[i].Procedure.procedure[value]) {
+      if (this.Tasks[i].Procedure.procedure[value]!=null) {
         let height = 200;
         let num = 1;
         if (this.$refs[name]) {
-          height = this.$refs[name].$el.offsetHeight;
+          height = this.$refs[name].$el?this.$refs[name].$el.offsetHeight:200;
           num = Math.floor(height / 80);
         }
         let inputMaterials = JSON.parse(
@@ -839,8 +830,24 @@
           procedure: { inputMaterials: [], outputMaterials: [], workers: [] },
         },
         inputMaterials: [],
-        outputMaterials: [],
-        procedureList: [],
+        outputMaterials: [
+            // [
+            //   {
+            //    materialId:11111,
+            //    materialName:'272澶у鍟婃斁鍋囦簡鍗¤壈鑻﹀鏂楀瀮鍦惧彂蹇�掑瀮鍦惧弽棣堟潵寰楀強鍏嬮殕',
+            //    amount:100,
+            //    unit:'浠�'
+            //   }
+            // ]
+        ],
+        procedureList: [
+        //  [ 
+        //     {
+        //       name:"宸ュ簭",
+        //       deviceName:'1111dhafjdhajkhf jkdahjkf鎵撴硶鍗冲彲鎵撻枊閺堟帴鑲痉鍩哄晩鐪嬩締jdad澶ч浜笢鍗¤�佸徃鏈虹暘绐犲�掕嚰寮�浜嗘埧閲戦樋濂庣鍗佸叚灞婂弽棣堟媺寰锋柉鍩簁鎵撳崱鏈洪樋鐝傞檮浠舵墦寮�浜嗙偣鍑婚樋閲屽崱鍑忚偉鐨勫崱鎷夎兌寮�浜嗘埧澶ц涓婂厠闅唂k鍟﹀ぇ瀹堕槻绌洪浄閬旀暩鎿氱湅i'
+        //     },
+        //   ]
+        ],
       };
       this.Tasks = [];
       getTaskInfo({ page: 1, pageSize: this.activeName }).then((res) => {
@@ -852,16 +859,9 @@
            })
           }
           this.Tasks = res.data.Tasks ? res.data.Tasks : [];
+          
           this.TaskCount=res.data.TaskCount?res.data.TaskCount:0
           this.workers=res.data.workers?res.data.workers:[]
-          if (this.Tasks.length == 0) {
-            if (this.activeName == 1) {
-              this.Tasks.push(object);
-            } else {
-              this.Tasks.push(object);
-              this.Tasks.push(object);
-            }
-          }
           for (let i in this.Tasks) {
             this.Tasks[i].procedureList = [];
             this.Tasks[i].inputMaterials = [];
@@ -899,9 +899,17 @@
               if (!this.procInfoTimer) {
                 this.procInfoTimer = setInterval(() => {
                   this.getProgressInfo();
-                }, 9000);
+                }, 3000);
           }
         }
+          if (this.Tasks.length == 0) {
+            if (this.activeName == 1) {
+              this.Tasks.push(object);
+            } else {
+              this.Tasks.push(object);
+              this.Tasks.push(object);
+            }
+          }
         if (res.code != 200 || this.Tasks.length == 0) {
           this.getcountdown();
           // 鎺у埗閲嶆柊璇锋眰getTaskInfo, 鍙紑鍚竴涓畾鏃跺櫒
@@ -912,6 +920,9 @@
           }
         }
       });
+      
+      // this.Tasks.push(object)
+      // this.Tasks.push(object)
     },
     getStartArr(){
       for (let i in this.Tasks) {
@@ -924,17 +935,19 @@
     },
     getProgressInfo() {
       for (let i in this.Tasks){
-        getProgress({
-          position: Number(i),
-          procedureId: this.Tasks[i].Procedure.ID,
-        }).then((res) => {
-          if (res.code == 200) {
-            this.Tasks[i].finishNumber = res.data.finishNumber
-              ? res.data.finishNumber
-              : 0;
-              this.plcStatus=res.data.plcStatus?res.data.plcStatus:1
-          }
-        });
+        if(this.Tasks[i].Procedure.ID){
+          getProgress({
+            position: Number(i),
+            procedureId: this.Tasks[i].Procedure.ID,
+          }).then((res) => {
+            if (res.code == 200) {
+              this.Tasks[i].finishNumber = res.data.finishNumber
+                ? res.data.finishNumber
+                : 0;
+                this.plcStatus=res.data.plcStatus?res.data.plcStatus:0
+            }
+          });
+        }
       }
       
     },
@@ -986,6 +999,21 @@
 </script>
 
 <style lang="scss">
+.tooltip-width-200{
+  width:200px;
+  line-height:1.3!important;
+}
+.color_yellow{
+  color:yellow;
+}
+.el-empty{
+  height:100%;
+  .el-empty__description p{
+    font-size:16px!important;
+    color:#fff!important;
+  }
+}
+
 .active-one {
   width: 100%;
   height: calc(100% - 100px);
@@ -1001,6 +1029,9 @@
   .bottom {
     height: calc(100% - 410px);
   }
+  .font_size_20px{
+    font-size:20px!important;
+  }
 }
 .active-two {
   width: calc(50% - 10px);
@@ -1013,6 +1044,7 @@
     box-sizing: border-box;
     border-right: 1px solid #eee;
   }
+  
   .small_title {
     margin-bottom: 30px;
   }
@@ -1250,14 +1282,21 @@
   }
   .card-box {
     width: 100%;
-    height: calc(100% - 50px - 50px);
+    height: calc(100% - 50px - 40px);
     // height:300px;
     .el-carousel__container{
       overflow-y:auto;
     }
-    // .el-carousel__item{
-    //   min-height:116px;
-    // }
+    .el-carousel__item{
+    //  height:auto;
+     min-height:160px;
+    }
+  }
+  .bottom-box-btn{
+    width:calc(100% - 20px);
+    position:absolute;
+    bottom:10px;
+    left:10px;
   }
 }
 
@@ -1324,11 +1363,12 @@
       align-content: center;
       justify-content: space-around;
       align-items: center;
+      overflow:hidden;
       .title-item {
-        width: calc(33.333% - 50px);
+        width: calc((100% - 50px)/3);
         float: left;
         margin-right: 10px;
-        padding: 15px 20px;
+        padding: 10px 5px;
         text-align: center;
         border-radius: 4px;
         display: inline-block;
@@ -1420,10 +1460,10 @@
         // border: 1px solid #ccc;
         background: #6b83ff;
         border-radius: 5px;
-        margin-top: 20px;
+        margin-top: 10px;
         color: #333;
         position: relative;
-        .card_top-2,
+        .card_top-2,.card-top-input-out-r,
         .card_top-3 {
           width: 50%;
           height: 45px;
@@ -1465,7 +1505,7 @@
           }
         }
 
-        .card_top,
+        .card_top,.card-top-input-out-l,
         .card_top-4 {
           width: 50%;
           height: 45px;
@@ -1474,10 +1514,8 @@
           color: #fff;
           font-size: 12px;
           line-height: 45px;
-          float: left;
-
           > div {
-            margin-left: 12px;
+            padding-left: 12px;
             position: relative;
             p {
               position: absolute;
@@ -1487,15 +1525,32 @@
             }
           }
         }
+        .card_top{
+          float: left;
+        }
+        .card-top-input-out-l{
+          float:left;
+          width:65%;
+          line-height:20px;
+          vertical-align: middle;
+          display:flex;
+          justify-content:space-around;
+          align-items:center;
+        }
+        .card-top-input-out-r{
+          width:35%;
+        }
         .card_top-4 {
           width: calc(100% - 20px);
-          padding: 0 10px;
-          height: 70px;
-
-          line-height: 70px;
+          padding: 10px 10px;
           color: #fff;
           background: rgb(19, 35, 90);
-          font-size: 20px;
+          font-size: 14px;
+          height:50px;
+          line-height: 25px;
+          >div{
+            margin-left:0px;
+          }
         }
         .card-info-box {
           position: absolute;
@@ -1522,6 +1577,12 @@
             border-radius: 5px 5px 0 0;
             background: rgb(19, 35, 90);
           }
+          .font_dian{
+            -webkit-box-orient:vertical;
+            overflow:hidden;
+            text-overflow:ellipsis;
+            white-space:nowrap;
+          }
 
           .card_contentRight {
             width: 100%;

--
Gitblit v1.8.0