From ffeb05ad55f62677ed915c1f19c765a2550cc07e Mon Sep 17 00:00:00 2001
From: haoxuan <haoxuan>
Date: 星期三, 13 九月 2023 20:44:06 +0800
Subject: [PATCH] 面板改版 2023-9-13

---
 src/views/visualization.vue | 1145 ++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 686 insertions(+), 459 deletions(-)

diff --git a/src/views/visualization.vue b/src/views/visualization.vue
index 9a27125..9640465 100644
--- a/src/views/visualization.vue
+++ b/src/views/visualization.vue
@@ -1,307 +1,206 @@
 
 <template>
   <div class="home">
-    <!--  -->
-    <template v-if="Object.keys(taskData).length > 0 && taskData.Procedure.ID">
+    <!-- v-if="Object.keys(taskData).length > 0 && taskData.Procedure.ID" -->
+    <template>
       <div class="left">
         <p class="title">
+          <span
+            class="font set-title"
+            style="float: left; margin-right: 15px"
+            @click="cutClick(1)"
+          >
+            <img v-if="activeName == 1" src="../../public/one-blue.png" />
+            <img v-else src="../../public/one.png" />
+          </span>
+          <span class="font set-title" style="float: left" @click="cutClick(2)">
+            <img v-if="activeName == 2" src="../../public/two-blue.png" />
+            <img v-else src="../../public/two.png" />
+          </span>
           鐢熶骇绠$悊鐪嬫澘
           <span
             class="font el-icon-setting set-title"
             style="float: right"
             @click="setUrl"
           ></span>
+          <span
+            style="float: right;margin-right:20px;font-size:28px;line-height:25px;"
+            @click="taskClick"
+          >
+          <el-badge :value="TaskCount" class="item">
+            <i   class="el-icon-chat-round"/>
+          </el-badge>
+        </span>
         </p>
-        <div class="statelist">
-          <span class="title-item"
-            >宸ュ崟缂栧彿:
-            <span class="color_4efefa">{{
-              taskData.Order.workOrderId || ""
-            }}</span>
-          </span>
-          <span class="title-item"
-            >褰撳墠宸ュ簭:
-            <span class="color_4efefa">{{
-              taskData.Procedure.procedure.procedureName || ""
-            }}</span>
-          </span>
-          <span class="title-item"
-            >鍚庨亾宸ュ簭:
-            <span class="color_4efefa">
-              {{
-                taskData.Procedure.procedure.nextProcedureName || "--"
-              }}
+        <div
+          :class="activeName == 1 ? 'active-one' : 'active-two'"
+          v-for="(taskData, index) in Tasks"
+          :key="index"
+        >
+          <div class="statelist">
+            <span class="title-item"
+              >宸ュ崟缂栧彿:
+              <span class="color_4efefa">{{
+                taskData.Order.workOrderId || ""
+              }}</span>
             </span>
-          </span>
-          <span class="title-item"
-            >宸ヤ綔浜烘暟:
-            <span class="color_4efefa">
-              <span
-                v-if="
-                  taskData.Procedure.procedure &&
-                  taskData.Procedure.procedure.workers
-                "
-                >{{ taskData.Procedure.procedure.workers.length }}</span
-              >
-              <span v-else>0</span>
-              浜�
+            <span class="title-item"
+              >褰撳墠宸ュ簭:
+              <span class="color_4efefa">{{
+                taskData.Procedure.procedure.procedureName || ""
+              }}</span>
             </span>
-          </span>
-        </div>
-        <div class="content">
-          <div class="content_left">
-            <div class="content-top">
-              <div class="small_title">褰撳墠瀹屾垚</div>
-              <div class="content_leftBttom">
-                <dl>
-                  <dd style="font-size: 26px; font-weight: 600">
-                    {{ finishNumber }}{{ taskData.Order.unit }}
-                  </dd>
-                </dl>
-              </div>
-            </div>
-            <div class="content-top">
-              <div class="small_title">姝e搧鐢熶骇</div>
-              <div class="content_leftBttom">
-                <dl>
-                  <dd style="font-size: 26px; font-weight: 600">
-                    {{ taskData.Order.amount || 0 }}{{ taskData.Order.unit }}
-                  </dd>
-                </dl>
-              </div>
-            </div>
+            <span class="title-item"
+              >鍚庨亾宸ュ簭:
+              <span class="color_4efefa">
+                {{ taskData.Procedure.procedure.nextProcedureName || "--" }}
+              </span>
+            </span>
+            <span class="title-item"
+              >宸ヤ綔浜烘暟:
+              <span class="color_4efefa">
+                <span
+                  v-if="
+                    taskData.Procedure.procedure &&
+                    taskData.Procedure.procedure.workers
+                  "
+                  >{{ taskData.Procedure.procedure.workers.length }}</span
+                >
+                <span v-else>0</span>
+                浜�
+              </span>
+            </span>
           </div>
-          <div class="content_right">
-            <el-descriptions :column="2" :colon="true">
-              <el-descriptions-item label="浜у搧鍚嶇О">{{
-                taskData.Order.productName || ""
-              }}</el-descriptions-item>
-              <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.Procedure.procedure.workHours || "" }}
-              </el-descriptions-item>
-              <el-descriptions-item label="璧锋鏃堕棿"
-                >{{ formatDate(taskData.Order.startTime) || "" }}
-                -
-                {{ formatDate(taskData.Order.endTime) }}</el-descriptions-item
-              >
-              <el-descriptions-item label="璐х墿鎻忚堪">{{
-                taskData.Order.orderAttr || ""
-              }}</el-descriptions-item>
-              <el-descriptions-item label="瀹㈡埛鍚嶇О">{{
-                taskData.Order.customer || ""
-              }}</el-descriptions-item>
-              <el-descriptions-item label="鍙傛暟瑕佹眰">{{
-                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="#133EAF"
-                  color="#09E5ED"
-                  text-color="#fff"
-                  :text-inside="true"
-                  :stroke-width="30"
-                  :percentage="taskData.Order?parseInt(finishNumber/taskData.Order.amount*100):0"
-                ></el-progress>
-              </el-descriptions-item>
-              <!-- <el-descriptions-item label="鍚堟牸鐜�" style="width: 100%">
+          <div class="gongx" v-if="taskData.AllProcedures">
+          <el-steps :active="taskData.CurrentProcedureIndex?taskData.CurrentProcedureIndex:0" finish-status="success" simple>
+            <el-step :title="item" v-for="(item,index) in taskData.AllProcedures" :key="index"></el-step>
+          </el-steps>
+        </div>
+          <div class="content">
+            <div class="content_left">
+              <div class="content-top">
+                <div class="small_title">褰撳墠瀹屾垚</div>
+                <div class="content_leftBttom">
+                  <dl>
+                    <dd
+                      style="font-size: 26px; font-weight: 600"
+                      class="color_green"
+                    >
+                      {{ taskData.finishNumber }}{{ taskData.Order.unit }}
+                    </dd>
+                  </dl>
+                </div>
+              </div>
+              <div class="content-top">
+                <div class="small_title">姝e搧鐢熶骇</div>
+                <div class="content_leftBttom">
+                  <dl>
+                    <dd
+                      style="font-size: 26px; font-weight: 600"
+                      class="color_green"
+                    >
+                      {{ taskData.Order.amount || 0 }}{{ taskData.Order.unit }}
+                    </dd>
+                  </dl>
+                </div>
+              </div>
+            </div>
+            <div class="content_right">
+              <el-descriptions :column="activeName == 1 ? 2 : 1" :colon="true">
+                <el-descriptions-item label="浜у搧鍚嶇О">{{
+                  taskData.Order.productName || ""
+                }}</el-descriptions-item>
+                <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.Procedure.procedure.workHours || "" }}
+                </el-descriptions-item>
+                <el-descriptions-item label="璧锋鏃堕棿"
+                  >{{ formatDate(taskData.Order.startTime) || "" }}
+                  -
+                  {{ formatDate(taskData.Order.endTime) }}</el-descriptions-item
+                >
+                <el-descriptions-item label="璐х墿鎻忚堪">{{
+                  taskData.Order.orderAttr || ""
+                }}</el-descriptions-item>
+                <el-descriptions-item label="瀹㈡埛鍚嶇О">{{
+                  taskData.Order.customer || ""
+                }}</el-descriptions-item>
+                <el-descriptions-item label="鍙傛暟瑕佹眰">{{
+                  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"
+                    define-back-color="#133EAF"
+                    color="#09E5ED"
                     text-color="#fff"
                     :text-inside="true"
                     :stroke-width="30"
-                    :percentage="passrate"
+                    :percentage="
+                      (taskData.Order && taskData.finishNumber != 0)
+                        ? parseInt(
+                            (taskData.finishNumber / taskData.Order.amount) *
+                              100
+                          )
+                        : 0
+                    "
                   ></el-progress>
-                </el-descriptions-item> -->
-            </el-descriptions>
-          </div>
-        </div>
-        <div class="bottom">
-          <div class="bottom_list">
-            <div class="bottom-title">杈撳叆璧勬簮</div>
-            <el-carousel
-              direction="vertical"
-              height="calc(100% -  0px)"
-              :interval="500"
-              class="card-box"
-              ref="cardBox1"
-              v-if="
-                taskData.Procedure.procedure &&
-                taskData.Procedure.procedure.inputMaterials
-              "
-            >
-              <el-carousel-item
-                :key="index"
-                v-for="(item, index) in inputMaterials"
-              >
-                <div class="card" :key="index2" v-for="(list, index2) in item">
-                  <div class="card_content">
-                    <div class="card_contentLeft">{{ list.materialId }}</div>
-                  </div>
-                  <div class="card_top">
-                    <div>
-                      <!-- 璁惧12<i
-                          style="font-size: 14px"
-                          class="el-icon-right font-arrow-20"
-                        ></i>
-                        璁惧13 -->
-                      {{ list.materialName }}
-                    </div>
-                  </div>
-                  <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>
-            </el-carousel>
-            <el-button type="primary" class="color_f70f83">
-              <i class="el-icon-phone-outline" />鐗╂枡鍛煎彨</el-button
-            >
-          </div>
-          <i class="el-icon-arrow-right font-arrow-20 color_4efefa"></i>
-          <div class="bottom_list">
-            <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 && procedureList"
-            >
-              <el-carousel-item
-                :key="index"
-                v-for="(item, index) in procedureList"
-              >
-                <div class="card" :key="index2" v-for="(list, index2) in item">
-                  <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 class="card_top-3">
-                      <span class="card-top-r-t"
-                        >瀹屾垚杩涘害锛歿{ taskData.Order?parseInt(finishNumber/taskData.Order.amount*100):0}}</span
-                      >
-                      <span class="card-top-r-b">
-                        <el-progress
-                          define-back-color="#133EAF"
-                          color="#09E5ED"
-                          text-color="#fff"
-                          :text-inside="true"
-                          :stroke-width="10"
-                          :percentage="taskData.Order?parseInt(finishNumber/taskData.Order.amount*100):0"
-                          :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> -->
-                    <div class="card_top-4">
-                      <div>宸ヨ壓缂栧彿锛歿{ list.number }}</div>
-                      <!-- <div
-                        style="
-                          font-size: 14px;
-                          color: #cfcfcf;
-                          line-height: 20px;
-                        "
-                      >
-                        宸ヨ壓鐨勫叿浣撲俊鎭鐐瑰嚮鎺у埗鏌ョ湅锛�
-                      </div> -->
-                    </div>
-                  </template>
-                </div>
-              </el-carousel-item>
-            </el-carousel>
-
-            <p style="font-size: 22px; margin-left: 12px; margin-top: 50px"></p>
-            <div class="right-small-btn">
-              <el-button type="primary"> 鎵撳嵃</el-button>
-              <el-popover
-                placement="top-end"
-                width="160"
-                class="button-finish"
-                v-model="finishShow"
-                trigger="click"
-              >
-                <p>璇风‘璁ゆ槸鍚﹀凡瀹屾垚璇ョ敓浜т换鍔�?</p>
-                <div style="text-align: right; margin: 0">
-                  <el-button size="mini" @click="finishShow = false">
-                    鍙栨秷</el-button
-                  >
-                  <el-button type="primary" size="mini" @click="finishClick">
-                    纭畾</el-button
-                  >
-                </div>
-                <el-button type="primary" slot="reference"> 瀹屾垚</el-button>
-              </el-popover>
+                </el-descriptions-item>
+                <!-- <el-descriptions-item label="鍚堟牸鐜�" style="width: 100%">
+                    <el-progress
+                      define-back-color="#007101"
+                      color="#00CC66"
+                      text-color="#fff"
+                      :text-inside="true"
+                      :stroke-width="30"
+                      :percentage="passrate"
+                    ></el-progress>
+                  </el-descriptions-item> -->
+              </el-descriptions>
             </div>
           </div>
-          <i class="el-icon-arrow-right font-arrow-20 color_4efefa"></i>
-          <div class="bottom_list">
-            <div class="bottom-title">
-              <span>杈撳嚭璧勬簮</span>
-            </div>
-            <el-carousel
-              direction="vertical"
-              height="calc(100% -  0px)"
-              :interval="500"
-              ref="cardBox3"
-              class="card-box"
-              v-if="
-                taskData.Procedure.procedure &&
-                taskData.Procedure.procedure.outputMaterials
-              "
-            >
-              <el-carousel-item
-                :key="index"
-                v-for="(item, index) in outputMaterials"
+          <div class="bottom">
+            <div class="bottom_list">
+              <div class="bottom-title">杈撳叆璧勬簮</div>
+              <el-carousel
+                direction="vertical"
+                height="calc(100% -  0px)"
+                :interval="500"
+                class="card-box"
+                :ref="'cardBox1&' + index"
+                v-if="
+                  taskData.Procedure.procedure &&
+                  taskData.Procedure.procedure.inputMaterials
+                "
               >
-                <div
-                  class="card-box"
-                  :key="index2"
-                  v-for="(list, index2) in item"
+                <el-carousel-item
+                  :key="index"
+                  v-for="(item, index) in taskData.inputMaterials"
                 >
-                  <div class="card">
+                  <div
+                    class="card"
+                    :key="index2"
+                    v-for="(list, index2) in item"
+                  >
                     <div class="card_content">
                       <div class="card_contentLeft">{{ list.materialId }}</div>
                     </div>
                     <div class="card_top">
                       <div>
-                        {{ list.materialName }}
                         <!-- 璁惧12<i
-                          style="font-size: 14px"
-                          class="el-icon-right font-arrow-20"
-                        ></i>
-                        璁惧13 -->
+                            style="font-size: 14px"
+                            class="el-icon-right font-arrow-20"
+                          ></i>
+                          璁惧13 -->
+                        {{ list.materialName }}
                       </div>
                     </div>
                     <div class="card_top2">
@@ -309,36 +208,211 @@
                         {{ list.amount }} {{ list.unit }}
                       </div>
                       <!-- <span class="card-top-r-t">鐢熶骇瀹屾垚</span>
-                      <span class="card-top-r-b">12鏈�28鏃� 08:24</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鍚�
+                </el-carousel-item>
+              </el-carousel>
+              <el-button type="primary" class="color_f70f83">
+                <i class="el-icon-phone-outline" />鐗╂枡鍛煎彨</el-button
+              >
+            </div>
+            <i class="el-icon-arrow-right font-arrow-20 color_4efefa"></i>
+            <div class="bottom_list">
+              <div class="bottom-title">
+                褰撳墠宸ュ簭:{{ taskData.Procedure.procedure.procedureName || "" }}
+              </div>
+              <el-carousel
+                direction="vertical"
+                height="calc(100% -  0px)"
+                :interval="500"
+                class="card-box"
+                :ref="'cardBox2&' + index"
+                v-if="taskData.Procedure.procedure && taskData.procedureList"
+              >
+                <el-carousel-item
+                  :key="index"
+                  v-for="(item, index) in taskData.procedureList"
+                >
+                  <div
+                    class="card"
+                    :key="index2"
+                    v-for="(list, index2) in item"
+                  >
+                    <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">
-                      <div>
-                        璁惧12<i
-                          style="font-size: 14px"
-                          class="el-icon-right font-arrow-20"
-                        ></i>
-                        璁惧13
+                      <div class="card_top-3">
+                        <span class="card-top-r-t"
+                          >瀹屾垚杩涘害锛歿{
+                            taskData.Order && taskData.finishNumber != 0
+                              ? parseInt(
+                                  (taskData.finishNumber /
+                                    taskData.Order.amount) *
+                                    100
+                                )
+                              : 0
+                          }}</span
+                        >
+                        <span class="card-top-r-b">
+                          <el-progress
+                            define-back-color="#133EAF"
+                            color="#09E5ED"
+                            text-color="#fff"
+                            :text-inside="true"
+                            :stroke-width="10"
+                            :percentage="
+                             (taskData.Order && taskData.finishNumber != 0)
+                                ? parseInt(
+                                    (taskData.finishNumber /
+                                      taskData.Order.amount) *
+                                      100
+                                  )
+                                : 0
+                            "
+                            :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> -->
+                      <div class="card_top-4">
+                        <div>宸ヨ壓缂栧彿锛歿{ list.number }}</div>
+                        <!-- <div
+                          style="
+                            font-size: 14px;
+                            color: #cfcfcf;
+                            line-height: 20px;
+                          "
+                        >
+                          宸ヨ壓鐨勫叿浣撲俊鎭鐐瑰嚮鎺у埗鏌ョ湅锛�
+                        </div> -->
+                      </div>
+                    </template>
+                  </div>
+                </el-carousel-item>
+              </el-carousel>
+
+              <p
+                style="font-size: 22px; margin-left: 12px; margin-top: 50px"
+              ></p>
+              <div class="right-small-btn">
+                <el-button type="primary"> 鎵撳嵃</el-button>
+                <el-popover
+                  placement="top-end"
+                  width="160"
+                  class="button-finish"
+                  v-model="finishShow['finishShow&'+index]"
+                  trigger="click"
+                >
+                  <p>璇风‘璁ゆ槸鍚﹀凡瀹屾垚璇ョ敓浜т换鍔�?</p>
+                  <div style="text-align: right; margin: 0">
+                    <el-button size="mini" @click="finishShow['finishShow&'+index] = false">
+                      鍙栨秷</el-button
+                    >
+                    <el-button
+                      type="primary"
+                      size="mini"
+                      @click="finishClick(index, taskData)"
+                    >
+                      纭畾</el-button
+                    >
+                  </div>
+                  <el-button type="primary" slot="reference"> 瀹屾垚</el-button>
+                </el-popover>
+              </div>
+            </div>
+            <i class="el-icon-arrow-right font-arrow-20 color_4efefa"></i>
+            <div class="bottom_list">
+              <div class="bottom-title">
+                <span>杈撳嚭璧勬簮</span>
+              </div>
+              <el-carousel
+                direction="vertical"
+                height="calc(100% -  0px)"
+                :interval="500"
+                :ref="'cardBox3&' + index"
+                class="card-box"
+                v-if="
+                  taskData.Procedure.procedure &&
+                  taskData.Procedure.procedure.outputMaterials
+                "
+              >
+                <el-carousel-item
+                  :key="index"
+                  v-for="(item, index) in taskData.outputMaterials"
+                >
+                  <div
+                    class="card-box"
+                    :key="index2"
+                    v-for="(list, index2) in item"
+                  >
+                    <div class="card">
+                      <div class="card_content">
+                        <div class="card_contentLeft">
+                          {{ list.materialId }}
+                        </div>
+                      </div>
+                      <div class="card_top">
+                        <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 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_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">
-              <i class="el-icon-phone-outline" />杩愯緭鍛煎彨</el-button
-            >
+                    <!-- <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">
+                <i class="el-icon-phone-outline" />杩愯緭鍛煎彨</el-button
+              >
+            </div>
           </div>
         </div>
       </div>
@@ -347,11 +421,11 @@
           <div class="right-top-l">浣滀笟鐘舵��</div>
           <div class="time">
             <dl>
-              <dd><span style="font-size: 32px">{{ formatTime3 }}</span></dd>
               <dd>
-                <span style="font-size: 12px; "
-                  >{{ formatTime2 }}</span
-                >
+                <span style="font-size: 32px">{{ formatTime3 }}</span>
+              </dd>
+              <dd>
+                <span style="font-size: 12px">{{ formatTime2 }}</span>
                 <!--margin-right: 10px <span style="font-size: 14px">鏄熸湡鍥�</span> -->
               </dd>
             </dl>
@@ -369,13 +443,11 @@
         </div>
         <div class="right_dutyLst">
           <div class="right-small-title">褰撳墠鍊肩彮</div>
-          <div
-            class="right-person-box"
-            v-if="taskData.Procedure.procedure.workers"
-          >
+
+          <div class="right-person-box" v-if="workers && workers.length > 0">
             <dl
               class="right-small-person"
-              v-for="(item, index) in taskData.Procedure.procedure.workers"
+              v-for="(item, index) in workers"
               :key="index"
             >
               <dt>
@@ -419,13 +491,16 @@
         </div>
       </div>
     </template>
-    <!--  -->
-    <template v-else>
+    <!-- v-else -->
+    <template>
       <div class="home-img-box">
         <div class="bg-title">
           <img src="../../public/bg-title.png" />
           <span class="bg-title-span">璁惧瀹炴椂鐢熶骇鐪嬫澘</span>
-          <div class="bg-date"><span>{{ formatTime3 }}</span><br/>{{formatTime2}}</div>
+          <div class="bg-date">
+            <span>{{ formatTime3 }}</span
+            ><br />{{ formatTime2 }}
+          </div>
           <span
             class="font el-icon-setting set-title bg-set"
             @click="setUrl"
@@ -435,7 +510,12 @@
           <img src="../../public/yuan.png" />
           <div class="btn-img">
             <div class="font_size_16" style="line-height: 5; margin-top: 18%">
-              <span v-if="showCountDown">璺濈浠诲姟寮�濮嬫椂闂达細{{countDownHour}}鏃� {{countDownMinute}}鍒�</span>
+              <span v-if="showCountDown"
+                >璺濈浠诲姟寮�濮嬫椂闂达細
+                <span class="color_red">{{ countDownHour }}</span
+                >鏃� <span class="color_red">{{ countDownMinute }}</span
+                >鍒�</span
+              >
               <span v-else>鏆傛棤浠诲姟锛屼紤鎭竴涓嬪惂...</span>
             </div>
             <el-button type="primary" @click="reloadPage">鍒锋柊浠诲姟</el-button>
@@ -446,12 +526,17 @@
     <!-- 鎺у埗鐨勫脊妗� -->
     <AddControl ref="control" :Arr="Arr" />
     <!-- 鎺у埗鐨勫脊妗� -->
-    <AddIssue ref="control" :Arr="Arr" :taskData="taskData" :Order="taskData.Order" @getSetProductNumber="getTaskInfo" />
+    <AddIssue
+      ref="control"
+      :Arr="Arr"
+      :taskData="taskData"
+      :Order="taskData.Order"
+      @getSetProductNumber="getTaskInfo"
+    />
   </div>
 </template>
 
 <script>
-
 import {
   getTaskInfo,
   finishTask,
@@ -474,17 +559,54 @@
   },
   data() {
     return {
+      activeName: 1,
       progress: 70, //杩涘害
       passrate: 30, //鍚堟牸鐜�
       production: 25, //鐢熶骇涓�
-      finishNumber: 0,
-      formatTime2:'',
-      formatTime3:'',
+      formatTime2: "",
+      formatTime3: "",
       // 鍙充晶瀹屾垚
-      finishShow: false,
-      inputMaterials: [],
-      outputMaterials: [],
-      procedureList: [],
+      finishShow:{},
+      workers:[],
+      Tasks: [
+        {
+          Order: {
+            amount: "",
+            customer: "",
+            deliverDate: "",
+            endTime: "",
+            orderAttr: [],
+            orderId: "",
+            parameter: "",
+            productId: "",
+            productName: "",
+            startTime: "",
+            unit: "",
+          },
+          Procedure: {
+            id: 1,
+            procedure: {
+              deviceId: "",
+              endTime: "",
+              inputMaterials: [
+                {
+                  amount: 1,
+                  materialId: 1,
+                  materialName: 1,
+                },
+              ],
+              outputMaterials: [],
+              procedureId: "",
+              procedureName: "",
+              startTime: "",
+              workHours: "",
+            },
+          },
+          inputMaterials: [],
+          outputMaterials: [],
+          procedureList: [],
+        },
+      ],
       taskData: {
         Order: {
           amount: "",
@@ -526,14 +648,15 @@
           },
         },
       },
-      totalNumber:0,
-      showCountDown:false,
-      countDownHour:0,
-      countDownMinute:0,
-      Arr:[],
-        // 璁板綍瀹氭椂鍣ㄧ姸鎬�
-        procInfoTimer:null,
-       cutdownTimer: null
+      totalNumber: 0,
+      showCountDown: false,
+      countDownHour: 0,
+      countDownMinute: 0,
+      Arr: [],
+      // 璁板綍瀹氭椂鍣ㄧ姸鎬�
+      procInfoTimer: [null, null],
+      cutdownTimer: null,
+      TaskCount:0,
     };
   },
   mounted() {
@@ -542,37 +665,46 @@
     //   this.passrate = this.getRandomNumber(1, 100);
     //   this.production = this.getRandomNumber(1, 100);
     // }, 3000);
-    this.getDate3()
-    this.getDate2()
-    setInterval(()=>{
-       this.getDate3()
-       this.getDate2()
-    },5000)
+    this.getDate3();
+    this.getDate2();
+    setInterval(() => {
+      this.getDate3();
+      this.getDate2();
+    }, 5000);
     this.getTaskInfo();
   },
   methods: {
-    
+    taskClick(){
+      if(this.TaskCount>0){
+        this.$refs.control.islook=true
+      }else{
+        this.$message.error('鐩墠娌℃湁浠诲姟锛�')
+      }
+    },
+    cutClick(val) {
+      this.activeName = val;
+      this.getTaskInfo();
+    },
     reloadPage() {
       // window.location.reload();
       this.getTaskInfo();
     },
-    getcountdown(){
+    getcountdown() {
       countdown().then((res) => {
         if (res.code == 200) {
-          this.showCountDown=res.data.ShowCountDown?res.data.ShowCountDown:false;
-          this.countDownHour=res.data.CountDownHour?res.data.CountDownHour:0
-          this.countDownMinute=res.data.CountDownMinute?res.data.CountDownMinute:0
+          this.showCountDown = res.data.ShowCountDown
+            ? res.data.ShowCountDown
+            : false;
+          this.countDownHour = res.data.CountDownHour
+            ? res.data.CountDownHour
+            : 0;
+          this.countDownMinute = res.data.CountDownMinute
+            ? res.data.CountDownMinute
+            : 0;
         }
       });
     },
-    getProgressInfo() {
-      getProgress().then((res) => {
-        if (res.code == 200) {
-          this.finishNumber = res.data.finishNumber ? res.data.finishNumber : 0;
-          
-        }
-      });
-    },
+
     getDateObj(date, fmt) {
       if (/(y+)/.test(fmt)) {
         fmt = fmt.replace(
@@ -611,114 +743,139 @@
         return "";
       }
     },
-    getDate3(){
-      let  now=  new Date();
+    getDate3() {
+      let now = new Date();
       this.formatTime3 = this.getDateObj(now, "hh:mm");
     },
-    getDate2(){
-      let now =  new Date();
+    getDate2() {
+      let now = new Date();
       this.formatTime2 = this.getDateObj(now, "yyyy骞碝M鏈坉d鏃�");
     },
-    setInterCard(value, name) {
-      let height = 200;
-      let num = 1;
-      if (this.$refs[name]) {
-        height = this.$refs[name].$el.offsetHeight;
-        num = Math.floor(height / 80);
-      }
-      let inputMaterials = JSON.parse(
-        JSON.stringify(this.taskData.Procedure.procedure[value])
-      );
-      let newDataList = [];
-      let current = 0;
-      // let num=4;
-      if (inputMaterials && inputMaterials.length > 0) {
-        for (let i = 0; i <= inputMaterials.length - 1; i++) {
-          if (i % num !== 0 || i === 0) {
-            if (!newDataList[current]) {
+    setInterCard(value, name, i) {
+      if (this.Tasks[i].Procedure.procedure[value]) {
+        let height = 200;
+        let num = 1;
+        if (this.$refs[name]) {
+          height = this.$refs[name].$el.offsetHeight;
+          num = Math.floor(height / 80);
+        }
+        let inputMaterials = JSON.parse(
+          JSON.stringify(this.Tasks[i].Procedure.procedure[value])
+        );
+        let newDataList = [];
+        let current = 0;
+        // let num=4;
+        if (inputMaterials && inputMaterials.length > 0) {
+          for (let i = 0; i <= inputMaterials.length - 1; i++) {
+            if (i % num !== 0 || i === 0) {
+              if (!newDataList[current]) {
+                newDataList[current] = [];
+                newDataList[current].push(inputMaterials[i]);
+              } else {
+                newDataList[current].push(inputMaterials[i]);
+              }
+            } else {
+              current++;
               newDataList[current] = [];
               newDataList[current].push(inputMaterials[i]);
-            } else {
-              newDataList[current].push(inputMaterials[i]);
             }
-          } else {
-            current++;
-            newDataList[current] = [];
-            newDataList[current].push(inputMaterials[i]);
           }
         }
+        this.Tasks[i][value] = [...newDataList];
       }
-      this[value] = [...newDataList];
-      console.log(this.inputMaterials, "inputMaterials");
     },
 
     getTaskInfo() {
-      this.taskData = {
+      let object = {
         Order: {},
         Procedure: {
           procedure: { inputMaterials: [], outputMaterials: [], workers: [] },
         },
+        inputMaterials: [],
+        outputMaterials: [],
+        procedureList: [],
       };
-      getTaskInfo().then((res) => {
+      this.Tasks = [];
+      getTaskInfo({ page: 1, pageSize: this.activeName }).then((res) => {
         if (res.code == 200) {
-          this.procedureList=[]
-          this.taskData = res.data
-            ? res.data
-            : {
-                Order: {},
-                Procedure: {
-                  procedure: {
-                    inputMaterials: [],
-                    outputMaterials: [],
-                    workers: [],
-                  },
-                },
-              };
-          this.taskData.Procedure.procedure.workers = this.taskData.Procedure
-            .procedure.workers
-            ? this.taskData.Procedure.procedure.workers
-            : [];
-          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: "宸ヨ壓",
-                });
-                this.Arr=res.data.Params?res.data.Params:[];
-              }
-            });
-            this.getProgressInfo();
-            if (!this.procInfoTimer) {
-                this.procInfoTimer = setInterval(() => {
-                  this.getProgressInfo();
-                }, 6000);
+          let arr=[]
+          if(res.data.Tasks){
+           arr.sort(function(a,b){
+            return (a.Position - b.Position)
+           })
+          }
+          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);
             }
           }
-          console.log(this.procedureList, "===1111procedureList");
-          // setTimeout(() => {
-          this.setInterCard("inputMaterials", "cardBox1");
-          // this.setInterCard('procedureList','cardBox2')
-          this.setInterCard("outputMaterials", "cardBox3");
-          // }, 5000);
+          for (let i in this.Tasks) {
+            this.Tasks[i].procedureList = [];
+            this.Tasks[i].inputMaterials = [];
+            this.Tasks[i].outputMaterials = [];
+            this.Tasks[i].finishNumber = 0;
+            this.finishShow['finishShow&'+i]=false
+            this.Tasks[i].Procedure.procedure.workers = this.Tasks[i].Procedure
+              .procedure.workers
+              ? this.Tasks[i].Procedure.procedure.workers
+              : [];
+            this.Tasks[i].procedureList.push([
+              {
+                name: "宸ュ簭",
+                ...this.Tasks[i].Procedure.procedure,
+              },
+            ]);
+            if (this.Tasks[i].Procedure.ID) {
+              startTask({ id: this.Tasks[i].Procedure.ID }).then((res) => {
+                if (res.code == 200) {
+                  // res.data.number
+                  this.Tasks[i].procedureList[0].push({
+                    number: res.data.Number,
+                    name: "宸ヨ壓",
+                  });
+                  if (i == 0) {
+                    this.Arr = res.data.Params ? res.data.Params : [];
+                    this.taskData=this.Tasks[i]
+                  }
+                }
+              });
+              this.getProgressInfo(i);
+              if (!this.procInfoTimer[i]) {
+                this.procInfoTimer[i] = setInterval(() => {
+                  this.getProgressInfo(i);
+                }, 6000);
+              }
+            }
+            this.setInterCard("inputMaterials", "cardBox1&" + i, i);
+            this.setInterCard("outputMaterials", "cardBox3&" + i, i);
+          }
         }
-        if(res.code!=200||!this.taskData.Procedure.ID){
+        if (res.code != 200 || this.Tasks.length == 0) {
           this.getcountdown();
           // 鎺у埗閲嶆柊璇锋眰getTaskInfo, 鍙紑鍚竴涓畾鏃跺櫒
-         if (!this.cutdownTimer) {
-          this.cutdownTimer = setInterval(() => {
-                 this.getcountdown();
-              }, 60000);
-          } 
+          if (!this.cutdownTimer) {
+            this.cutdownTimer = setInterval(() => {
+              this.getcountdown();
+            }, 60000);
+          }
+        }
+      });
+    },
+    getProgressInfo(i) {
+      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;
         }
       });
     },
@@ -734,19 +891,18 @@
     },
     // 鍙充晶鎺у埗
     controlClick() {
-      if (Object.keys(this.taskData).length > 0 && this.taskData.Procedure.ID) {
+      if (this.Tasks.length > 0) {
         this.$refs.control.islook = true;
       } else {
         this.$message.error("褰撳墠璁惧娌℃湁宸ュ簭锛�");
-       
       }
     },
     // 鍙充晶瀹屾垚
-    finishClick() {
-      if (Object.keys(this.taskData).length > 0 && this.taskData.Procedure.ID) {
-        finishTask({ id: this.taskData.Procedure.ID }).then((res) => {
+    finishClick(i, taskData) {
+      if (Object.keys(taskData).length > 0 && taskData.Procedure.ID) {
+        finishTask({ id: taskData.Procedure.ID }).then((res) => {
           if (res.code == 200) {
-            this.finishShow = false;
+            this.finishShow['finishShow&'+i] = false;
             this.getTaskInfo();
             this.$message.success("鎿嶄綔鎴愬姛锛�");
           }
@@ -766,8 +922,80 @@
 </script>
 
 <style lang="scss">
-.set-title{
-  cursor:pointer;
+.active-one {
+  width: 100%;
+  height: 100%;
+  .statelist {
+    height: 50px;
+  }
+  .content {
+    height: 240px;
+  }
+  .bottom {
+    height: calc(100% - 500px - 30px);
+  }
+}
+.active-two {
+  width: calc(50% - 10px);
+  height: 100%;
+  float: left;
+  padding-left: 10px;
+  &:nth-of-type(1) {
+    padding-right: 10px;
+    padding-left: 0px;
+    box-sizing: border-box;
+    border-right: 1px solid #eee;
+  }
+  .statelist {
+    height: 60px;
+  }
+  .title-item > span {
+    display: block;
+    line-height: 20px;
+  }
+  .content {
+    height: 370px;
+
+    .content-top {
+      height: calc(50% - 60px) !important;
+      padding-top: 50px !important;
+    }
+    .el-descriptions__body {
+      font-size: 16px !important;
+    }
+  }
+  .bottom {
+    height: calc(100% - 630px - 50px);
+  }
+  .bottom_list .bottom-title {
+    font-size: 18px;
+  }
+}
+.gongx{
+  width:100%;
+  height:30px;
+  margin-bottom:10px;
+   .el-steps--simple{
+    background:transparent;
+    padding:5px 10px;
+  }
+  .el-step__head.is-process{
+    color: #00cc66 !important;
+    border-color:#00cc66;
+  }
+  .el-step__title.is-process{
+    color: #00cc66 !important;
+  }
+  .el-step__head.is-wait{
+    color:#fff;
+    border-color:#fff;
+  }
+  .el-step__title.is-wait{
+    color:#fff;
+  }
+}
+.set-title {
+  cursor: pointer;
 }
 .home-img-box {
   width: calc(100% - 40px);
@@ -786,7 +1014,7 @@
       position: absolute;
       width: 30%;
       height: 4rem;
-      line-height:2.4;
+      line-height: 2.4;
       font-size: 26px;
       font-weight: 700;
       text-align: center;
@@ -794,29 +1022,28 @@
       top: 1.5rem;
       display: inline-block;
     }
-    .bg-set{
-      position:absolute;
-      right:10%;
+    .bg-set {
+      position: absolute;
+      right: 10%;
       height: 4rem;
-      line-height:2.4;
+      line-height: 2.4;
       font-size: 40px;
       font-weight: 700;
       top: 1rem;
     }
-    .bg-date{
-      position:absolute;
-      left:3%;
+    .bg-date {
+      position: absolute;
+      left: 3%;
       height: 100px;
       line-height: 30px;
       font-size: 16px;
       top: 15%;
-      span{
+      span {
         font-size: 35px;
-       font-weight: 700;
-       line-height: 20px;
+        font-weight: 700;
+        line-height: 20px;
       }
     }
-    
   }
   .yuan {
     width: 40%;
@@ -852,7 +1079,10 @@
   background: #33ccff !important;
 }
 .color_green {
-  background: #00cc66 !important;
+  color: #00cc66 !important;
+}
+.color_red {
+  background: red !important;
 }
 .color_organge {
   background: #f76c0f !important;
@@ -976,8 +1206,7 @@
 
     .statelist {
       width: 100%;
-      margin: 0 auto;
-      height: 50px;
+      margin: 0 auto 20px;
       flex-wrap: nowrap;
       align-content: center;
       justify-content: space-around;
@@ -1000,8 +1229,7 @@
     }
     .content {
       width: 100%;
-      height: 240px;
-      margin: 30px 0px;
+      margin: 0px 0px 30px;
       overflow: hidden;
       .content_left {
         width: 24%;
@@ -1051,7 +1279,7 @@
           width: 100%;
           margin: 10px 0px;
           // background: #233b9e;
-          color: #fff;
+          color: #ffff99;
           .el-descriptions--small {
             width: 100%;
             // margin: 50px 50px;
@@ -1065,7 +1293,6 @@
 
     .bottom {
       width: 100%;
-      height: calc(100% - 500px);
       display: flex;
       flex-wrap: nowrap;
       align-content: center;

--
Gitblit v1.8.0