From 4336b6e9141f2544363f4880fbd0d67f095e7074 Mon Sep 17 00:00:00 2001
From: haoxuan <haoxuan>
Date: 星期六, 19 八月 2023 19:53:39 +0800
Subject: [PATCH] 面板需求

---
 src/views/visualization.vue |  332 +++++++++++++++++++++++++++++++-----------------------
 1 files changed, 189 insertions(+), 143 deletions(-)

diff --git a/src/views/visualization.vue b/src/views/visualization.vue
index 23c3a5a..f38df0b 100644
--- a/src/views/visualization.vue
+++ b/src/views/visualization.vue
@@ -15,20 +15,24 @@
             <span class="title-item"
               >璁㈠崟缂栧彿:
               <span class="color_4efefa">{{
-                taskData.order.orderId || ""
+                taskData.Order.orderId || ""
               }}</span>
             </span>
             <span class="title-item"
               >褰撳墠宸ュ簭:
               <span class="color_4efefa">{{
-                taskData.procedure.procedure.procedureName || ""
+                taskData.Procedure.procedure.procedureName || ""
               }}</span>
             </span>
             <span class="title-item"
-              >鍚庨亾宸ュ簭: <span class="color_4efefa">Q-22038</span>
+              >鍚庨亾宸ュ簭: <span class="color_4efefa">
+                <!-- {{
+                taskData.NextProcedure.procedure.procedureName || "--"
+              }} -->
+              </span>
             </span>
             <span class="title-item"
-              >宸ヤ綔浜烘暟: <span class="color_4efefa">6浜�</span>
+              >宸ヤ綔浜烘暟: <span class="color_4efefa">{{ taskData.Procedure.procedure.workers.length || 0}}浜�</span>
             </span>
           </div>
           <div class="content">
@@ -37,7 +41,7 @@
                 <div class="small_title">褰撳墠瀹屾垚</div>
                 <div class="content_leftBttom">
                   <dl>
-                    <dd style="font-size: 26px; font-weight: 600">0m</dd>
+                    <dd style="font-size: 26px; font-weight: 600">{{ finishNumber }}{{  taskData.Order.unit }}</dd>
                   </dl>
                 </div>
               </div>
@@ -45,7 +49,9 @@
                 <div class="small_title">姝e搧鐢熶骇</div>
                 <div class="content_leftBttom">
                   <dl>
-                    <dd style="font-size: 26px; font-weight: 600">400m</dd>
+                    <dd style="font-size: 26px; font-weight: 600">{{
+                  taskData.Order.amount || 0
+                }}{{  taskData.Order.unit }}</dd> 
                   </dl>
                 </div>
               </div>
@@ -53,44 +59,50 @@
             <div class="content_right">
               <el-descriptions :column="2" :colon="true">
                 <el-descriptions-item label="浜у搧鍚嶇О">{{
-                  taskData.order.productName || ""
+                  taskData.Order.productName || ""
                 }}</el-descriptions-item>
-                <el-descriptions-item label="鏁伴噺:">{{
-                  taskData.order.amount || ""
+                <el-descriptions-item label="鏁伴噺">{{
+                  taskData.Order.amount || 0
+                }}{{  taskData.Order.unit }}</el-descriptions-item>
+                <el-descriptions-item label="浜よ揣鏃ユ湡">{{
+                  taskData.Order.deliverDate || ""
                 }}</el-descriptions-item>
-                <el-descriptions-item label="浜よ揣鏃ユ湡:">{{
-                  taskData.order.deliverDate || ""
-                }}</el-descriptions-item>
-                <el-descriptions-item label="宸ユ椂:">
-                  {{ taskData.order.deliverDate || "" }}
+                <el-descriptions-item label="宸ユ椂">
+                  {{ taskData.Procedure.procedure.workHours || "" }}
                 </el-descriptions-item>
                 <el-descriptions-item label="璧锋鏃堕棿">{{
-                  taskData.order.startTime || ""
-                }}</el-descriptions-item>
+                  formatDate(taskData.Procedure.procedure.startTime)  || ""
+                }}  - {{ formatDate(taskData.Procedure.procedure.endTime) }}</el-descriptions-item>
                 <el-descriptions-item label="璐х墿鎻忚堪"
-                  >姹熻嫃鐪佽嫃宸炲競鍚翠腑鍖哄惔涓ぇ閬� 1188 鍙�</el-descriptions-item
+                  >{{
+                  taskData.Order.orderAttr || ""
+                }}</el-descriptions-item
                 >
                 <el-descriptions-item label="瀹㈡埛鍚嶇О"
-                  >姹熻嫃鐪佽嫃宸炲競鍚翠腑鍖哄惔涓ぇ閬� 1188 鍙�</el-descriptions-item
+                  >{{
+                  taskData.Order.customer || ""
+                }}</el-descriptions-item
                 >
                 <el-descriptions-item label="鍙傛暟瑕佹眰"
-                  >姹熻嫃鐪佽嫃宸炲競鍚翠腑鍖哄惔涓ぇ閬� 1188 鍙�</el-descriptions-item
+                  >{{
+                  taskData.Order.parameter || ""
+                }}</el-descriptions-item
                 >
               </el-descriptions>
               <el-descriptions :column="1" :colon="true">
                 <el-descriptions-item label="瀹屾垚搴�" style="width: 100%">
-                  <!--  -->
+                  <!--:text-format="format"  -->
                   <el-progress
                     define-back-color="#007101"
                     color="#00CC66"
                     :text-inside="true"
                     :stroke-width="30"
-                    :percentage="progress"
-                    :text-format="format"
-                    >瀹屾垚鐜�50%</el-progress
+                    :percentage="parseInt(finishNumber/taskData.Order.amount)"
+                    
+                    ></el-progress
                   >
                 </el-descriptions-item>
-                <el-descriptions-item label="鍚堟牸鐜�" style="width: 100%">
+                <!-- <el-descriptions-item label="鍚堟牸鐜�" style="width: 100%">
                   <el-progress
                     define-back-color="#007101"
                     color="#00CC66"
@@ -98,7 +110,7 @@
                     :stroke-width="30"
                     :percentage="passrate"
                   ></el-progress>
-                </el-descriptions-item>
+                </el-descriptions-item> -->
               </el-descriptions>
             </div>
           </div>
@@ -117,8 +129,8 @@
                 class="card-box"
                 ref="cardBox1"
                 v-if="
-                  taskData.procedure.procedure &&
-                  taskData.procedure.procedure.inputMaterials
+                  taskData.Procedure.procedure &&
+                  taskData.Procedure.procedure.inputMaterials
                 "
               >
                 <el-carousel-item
@@ -132,21 +144,24 @@
                   >
                     <div class="card_content">
                       <div class="card_contentLeft">
-                        鍖呭彿:G22122304 100鍚▄{ index }}
+                        {{ list.materialId}}
                       </div>
                     </div>
                     <div class="card_top">
                       <div>
-                        璁惧12<i
+                        <!-- 璁惧12<i
                           style="font-size: 14px"
                           class="el-icon-right font-arrow-20"
                         ></i>
-                        璁惧13
+                        璁惧13 -->
+                        {{  list.materialName}} 
                       </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 class="card_top2">
+                      <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>
                 </el-carousel-item>
@@ -154,61 +169,68 @@
             </div>
             <i class="el-icon-arrow-right font-arrow-20 color_4efefa"></i>
             <div class="bottom_list">
-              <div class="bottom-title">褰撳墠宸ュ簭:鍓嶇汉(QF)</div>
+              <div class="bottom-title">褰撳墠宸ュ簭:{{
+                taskData.Procedure.procedure.procedureName || ""
+              }}</div>
               <el-carousel
                 direction="vertical"
                 height="calc(100% -  0px)"
                 :interval="500"
                 class="card-box"
+                ref="cardBox2"
                 v-if="
-                  taskData.procedure.procedure &&
-                  taskData.procedure.procedure.inputMaterials
+                  taskData.Procedure.procedure &&
+                  procedureList
                 "
               >
                 <el-carousel-item
                   :key="index"
-                  v-for="(item, index) in inputMaterials"
+                  v-for="(item, index) in procedureList"
                 >
                   <div class="card" 
                   :key="index2"
                     v-for="(list, index2) in item">
-                    <div class="card_content">
-                      <div class="card_contentLeft color_blue">
-                        鍖呭彿:G22122304 100鍚�
-                        <span style="float: right">6m/s</span>
+                    <template v-if="list.name=='宸ュ簭'">
+                      <div class="card_content">
+                        <div class="card_contentLeft color_blue">
+                          {{ list.deviceName }}
+                          <!-- <span style="float: right">6m/s</span> -->
+                        </div>
                       </div>
-                    </div>
-                    <div class="card_top-3">
-                      <span class="card-top-r-t">瀹屾垚杩涘害锛�50%</span>
-                      <span class="card-top-r-b">
-                        <el-progress
-                          define-back-color="#007101"
-                          color="#00CC66"
-                          :text-inside="true"
-                          :stroke-width="10"
-                          :percentage="50"
-                          :show-text="false"
-                        ></el-progress>
-                      </span>
-                    </div>
-                    <div class="card_top-2">
-                      <span class="card-top-r-t">瀹屾垚杩涘害锛�50%</span>
-                      <span class="card-top-r-b">12鏈�28鏃� 08:24</span>
-                    </div>
+                      <div class="card_top-3">
+                        <span class="card-top-r-t">瀹屾垚杩涘害锛歿{ parseInt(finishNumber/taskData.Order.amount)||0 }}</span>
+                        <span class="card-top-r-b">
+                          <el-progress
+                            define-back-color="#007101"
+                            color="#00CC66"
+                            :text-inside="true"
+                            :stroke-width="10"
+                            :percentage="parseInt(finishNumber/taskData.Order.amount)"
+                            :show-text="false"
+                          ></el-progress>
+                        </span>
+                      </div>
+                      <div class="card_top-2">
+                        <div style="line-height:45px;text-align:center;">
+                        鐢熶骇涓�</div>
+                        <!-- <span class="card-top-r-t">瀹屾垚杩涘害锛�50%</span>
+                        <span class="card-top-r-b">12鏈�28鏃� 08:24</span> -->
+                      </div>
+                    </template>
+                    <template v-else>
+                      <div class="card_content">
+                          <div class="card_contentLeft color_blue">
+                            宸ヨ壓缂栧彿锛歿{ list.number }}
+                          </div>
+                        </div>
+                        <div class="card_top-4">
+                         宸ヨ壓鐨勫叿浣撲俊鎭鐐瑰嚮鎺у埗鏌ョ湅锛�
+                        </div>
+                    </template>
                   </div>
                 </el-carousel-item>
               </el-carousel>
-              <div class="card">
-                <div class="card_content">
-                  <div class="card_contentLeft color_blue">
-                    鍖呭彿:G22122304 100鍚�
-                  </div>
-                </div>
-                <div class="card_top-4">
-                  姝ゆā鍨嬬敤浜庢暟鍊兼娴嬶紝绮惧噯妫�娴嬬浉鍏崇敓浜ф暟鎹��
-                  姝ゆā鍨嬬敤浜庢暟鍊兼娴嬶紝绮惧噯妫�娴嬬浉鍏崇敓浜ф暟鎹�
-                </div>
-              </div>
+              
               <p
                 style="font-size: 22px; margin-left: 12px; margin-top: 50px"
               ></p>
@@ -228,8 +250,8 @@
                 ref="cardBox3"
                 class="card-box"
                 v-if="
-                  taskData.procedure.procedure &&
-                  taskData.procedure.procedure.outputMaterials
+                  taskData.Procedure.procedure &&
+                  taskData.Procedure.procedure.outputMaterials
                 "
               >
                 <el-carousel-item
@@ -245,24 +267,28 @@
                     class="card"
                   >
                     <div class="card_content">
-                      <div class="card_contentLeft">鍖呭彿:G22122304 100鍚�</div>
+                      <div class="card_contentLeft">{{  list.materialId}}</div>
                     </div>
                     <div class="card_top">
                       <div>
-                        璁惧12<i
+                        {{  list.materialName}}
+                        <!-- 璁惧12<i
                           style="font-size: 14px"
                           class="el-icon-right font-arrow-20"
                         ></i>
-                        璁惧13
+                        璁惧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 class="card_top2">
+                      <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 class="card-info-box">棰勮10鍒嗛挓閫佽揪</div> -->
                   </div>
-                  <div class="card">
+                  <!-- <div class="card">
                     <div class="card_content">
                       <div class="card_contentLeft color_green">
                         鍖呭彿:G22122304 100鍚�
@@ -281,7 +307,7 @@
                       <span class="card-top-r-t">鐢熶骇瀹屾垚</span>
                       <span class="card-top-r-b">12鏈�28鏃� 08:24</span>
                     </div>
-                  </div>
+                  </div> -->
                 </div>
                 </el-carousel-item>
                 </el-carousel>
@@ -315,22 +341,25 @@
         </div>
         <div class="right_dutyLst">
           <div class="right-small-title">褰撳墠鍊肩彮</div>
-          <dl class="right-small-person">
+          <div class='right-person-box'>
+          <dl class="right-small-person" v-for="(item,index) in taskData.Procedure.procedure.workers" :key="index">
             <dt>
-              <el-avatar
+              <!-- <el-avatar
                 class="img-class"
                 src="https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png"
-              ></el-avatar>
+              ></el-avatar> -->
+              <i class="el-icon-s-custom color_green" style='margin:10px;font-size:40px; '/>
             </dt>
             <span
               style="font-size: 20px; font-weight: 600; margin-right: 10px"
-              >{{ taskData.procedure.procedure.workers.workerName || "" }}</span
+              >{{ item.workerName || "" }}</span
             >
             <span style="color: #666">{{
-              taskData.procedure.procedure.workers.phoneNum || ""
+              item.phoneNum || ""
             }}</span>
           </dl>
-          <div
+          </div>
+          <!-- <div
             style="
               width: 100%;
               font-size: 18px;
@@ -340,8 +369,8 @@
               line-height: 50px;
             "
           >
-            缂栧彿锛歿{ taskData.procedure.procedure.workers.workerId || "" }}
-          </div>
+            缂栧彿锛歿{ taskData.Procedure.procedure.workers.workerId || "" }}
+          </div> -->
           <div class="right-small-btn">
             <el-button type="primary"> 鎵撳嵃</el-button>
             <el-popover
@@ -396,7 +425,7 @@
       </div>
     </template>
     <!-- 鎺у埗鐨勫脊妗� -->
-    <AddControl ref="control" :id="taskData.procedure.id" />
+    <AddControl ref="control" :id="taskData.Procedure.ID" />
   </div>
 </template>
 
@@ -406,6 +435,8 @@
   finishTask,
   getMiniDictList,
   saveMiniDict,
+  startTask,
+  getProgress,
 } from "@/api/home/index"; // 浜х嚎
 import Card from "@/components/Card.vue";
 import Knowledge from "../components/Knowledge.vue";
@@ -421,12 +452,14 @@
       progress: 70, //杩涘害
       passrate: 30, //鍚堟牸鐜�
       production: 25, //鐢熶骇涓�
+      finishNumber:0,
       // 鍙充晶瀹屾垚
       finishShow: false,
       inputMaterials: [],
       outputMaterials:[],
+      procedureList:[],
       taskData: {
-        order: {
+        Order: {
           amount: "",
           customer: "",
           deliverDate: "",
@@ -439,57 +472,13 @@
           startTime: "",
           unit: "",
         },
-        procedure: {
+        Procedure: {
           id: 1,
           procedure: {
             deviceId: "",
             endTime: "",
-            inputMaterials: [
-              {
-                amount: "",
-                materialId: "",
-                materialName: "",
-                unit: "",
-              },
-              {
-                amount: "",
-                materialId: "",
-                materialName: "",
-                unit: "",
-              },
-              {
-                amount: "",
-                materialId: "",
-                materialName: "",
-                unit: "",
-              },
-              {
-                amount: "",
-                materialId: "",
-                materialName: "",
-                unit: "",
-              },
-              {
-                amount: "",
-                materialId: "",
-                materialName: "",
-                unit: "",
-              },
-              {
-                amount: "",
-                materialId: "",
-                materialName: "",
-                unit: "",
-              },
-            ],
-            outputMaterials: [
-              {
-                amount: "",
-                materialId: "",
-                materialName: "",
-                unit: "",
-              },
-            ],
+            inputMaterials: [],
+            outputMaterials: [],
             procedureId: "",
             procedureName: "",
             startTime: "",
@@ -513,9 +502,37 @@
     //   this.production = this.getRandomNumber(1, 100);
     // }, 3000);
     this.getTaskInfo();
+    setInterval(() => {
+      this.getProgressInfo()
+    }, 60000);
   },
 
   methods: {
+    getProgressInfo(){
+      getProgress().then(res=>{
+              if(res.code==200){
+               
+              }
+            })
+    },
+    getDateObj (ms) {
+    const now = ms ? new Date(ms) : new Date()
+    const y = now.getFullYear()
+    let m = now.getMonth() + 1
+    m = m > 9 ? m : '0' + m
+    let d = now.getDate()
+    d = d > 9 ? d : '0' + d
+    return { y, m, d }
+  },
+    // 鏍煎紡鍖栨椂闂� ==> yyyy-mm-dd
+  formatDate (value, str) {
+    if (value) {
+      const dateObj = this.getDateObj(value)
+       return '' + dateObj.y + '-' + dateObj.m + '-' + dateObj.d
+    } else {
+      return ''
+    }
+  },
     setInterCard(value, name) {
       let height = 200;
       let num = 1;
@@ -524,7 +541,7 @@
         num = Math.floor(height / 80);
       }
       let inputMaterials = JSON.parse(
-        JSON.stringify(this.taskData.procedure.procedure[value])
+        JSON.stringify(this.taskData.Procedure.procedure[value])
       );
       let newDataList = [];
       let current = 0;
@@ -552,8 +569,23 @@
     getTaskInfo() {
       getTaskInfo().then((res) => {
         if (res.code == 200) {
+          this.taskData=res.data;
+          this.procedureList.push([{
+            name:'宸ュ簭',
+            ...this.taskData.Procedure.procedure
+          }])
+          if(this.taskData.Procedure.ID){
+            startTask({id:this.taskData.Procedure.ID}).then(res=>{
+              if(res.code==200){
+                // res.data.number
+                this.procedureList[0].push({number:res.data.number,name:'宸ヨ壓'})
+              }
+            })
+          }
+          console.log(this.procedureList,'===1111procedureList')
           // setTimeout(() => {
             this.setInterCard("inputMaterials", "cardBox1");
+            // this.setInterCard('procedureList','cardBox2')
             this.setInterCard('outputMaterials','cardBox3')
           // }, 5000);
         }
@@ -572,9 +604,12 @@
     },
     // 鍙充晶瀹屾垚
     finishClick() {
-      finishTask({ id: this.taskData.procedure.id }).then((res) => {
+      finishTask({ id: this.taskData.Procedure.ID }).then((res) => {
         if (res.code == 200) {
+          this.finishShow=false;
+          this.getTaskInfo()
           this.$message.success("鎿嶄綔鎴愬姛锛�");
+         
         }
       });
     },
@@ -977,6 +1012,7 @@
       background: #00cc66;
       margin-top: 10px;
       padding: 5px 10px;
+      position:relative;
       .right-small-title {
         width: auto;
         padding: 5px;
@@ -985,22 +1021,29 @@
         border-radius: 8px;
         background: #007101;
       }
+      .right-person-box{
+        width:100%;
+        height:calc(100% - 100px);
+        overflow:auto;
+        margin-top:20px;
+      }
       .right-small-person {
         width: 100%;
         height: 60px;
         line-height: 60px;
-        margin-top: 50px;
+        margin-bottom:10px;
         border-radius: 10px;
         background: #fff;
         color: #333;
+       
 
         dt {
           float: left;
-          padding: 5px;
+          
           margin-right: 10px;
           .img-class {
             height: 50px;
-            padding: 0 !important;
+            margin: 5px !important;
           }
         }
         span {
@@ -1011,6 +1054,9 @@
       .right-small-btn {
         margin-top: 10px;
         width: 100%;
+        position:absolute;
+        bottom:10px;
+        left:0;
         overflow: hidden;
         .el-button--primary {
           width: 46%;

--
Gitblit v1.8.0