From cb7d0f1d6883c185d3af3de40206e46dd0bf3152 Mon Sep 17 00:00:00 2001
From: haoxuan <haoxuan>
Date: 星期六, 26 八月 2023 16:53:09 +0800
Subject: [PATCH] 修改

---
 src/views/visualization.vue | 1350 ++++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 1,013 insertions(+), 337 deletions(-)

diff --git a/src/views/visualization.vue b/src/views/visualization.vue
index 7f6c12b..3205d3a 100644
--- a/src/views/visualization.vue
+++ b/src/views/visualization.vue
@@ -1,24 +1,51 @@
 
 <template>
   <div class="home">
-    <div class="left">
-      <div class="left_top">
+    <!--  -->
+    <template v-if="Object.keys(taskData).length > 0 && taskData.Procedure.ID">
+      <div class="left">
         <p class="title">
-          璁続423鐢熶骇绠$悊鐪嬫澘
-          <span class="font el-icon-setting set-title"></span>
+          鐢熶骇绠$悊鐪嬫澘
+          <span
+            class="font el-icon-setting set-title"
+            style="float: right"
+            @click="setUrl"
+          ></span>
         </p>
         <div class="statelist">
           <span class="title-item"
-            >璁㈠崟缂栧彿: <span class="color_4efefa">Q-22038</span>
+            >宸ュ崟缂栧彿:
+            <span class="color_4efefa">{{
+              taskData.Order.workOrderId || ""
+            }}</span>
           </span>
           <span class="title-item"
-            >褰撳墠宸ュ簭: <span class="color_4efefa">鍓嶇汉(QF)</span>
+            >褰撳墠宸ュ簭:
+            <span class="color_4efefa">{{
+              taskData.Procedure.procedure.procedureName || ""
+            }}</span>
           </span>
           <span class="title-item"
-            >鍚庨亾宸ュ簭: <span class="color_4efefa">Q-22038</span>
+            >鍚庨亾宸ュ簭:
+            <span class="color_4efefa">
+              {{
+                taskData.Procedure.procedure.nextProcedureName || "--"
+              }}
+            </span>
           </span>
           <span class="title-item"
-            >宸ヤ綔浜烘暟: <span class="color_4efefa">6浜�</span>
+            >宸ヤ綔浜烘暟:
+            <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">
@@ -27,7 +54,9 @@
               <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>
@@ -35,218 +64,688 @@
               <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>
           </div>
           <div class="content_right">
             <el-descriptions :column="2" :colon="true">
-              <el-descriptions-item label="浜у搧鍚嶇О"
-                >kooriookami</el-descriptions-item
+              <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="鏁伴噺:"
-                >18100000000</el-descriptions-item
-              >
-              <el-descriptions-item label="浜よ揣鏃ユ湡:"
-                >鑻忓窞甯�</el-descriptions-item
-              >
-              <el-descriptions-item label="宸ユ椂:"> 瀛︽牎 </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="璧锋鏃堕棿"
-                >姹熻嫃鐪佽嫃宸炲競鍚翠腑鍖哄惔涓ぇ閬� 1188 鍙�</el-descriptions-item
+                >{{ formatDate(taskData.Order.startTime) || "" }}
+                -
+                {{ formatDate(taskData.Order.endTime) }}</el-descriptions-item
               >
-              <el-descriptions-item label="璐х墿鎻忚堪"
-                >姹熻嫃鐪佽嫃宸炲競鍚翠腑鍖哄惔涓ぇ閬� 1188 鍙�</el-descriptions-item
-              >
-              <el-descriptions-item label="瀹㈡埛鍚嶇О"
-                >姹熻嫃鐪佽嫃宸炲競鍚翠腑鍖哄惔涓ぇ閬� 1188 鍙�</el-descriptions-item
-              >
-              <el-descriptions-item label="鍙傛暟瑕佹眰"
-                >姹熻嫃鐪佽嫃宸炲競鍚翠腑鍖哄惔涓ぇ閬� 1188 鍙�</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="progress"
-                  :text-format="format"
-                  >瀹屾垚鐜�50%</el-progress
-                >
-              </el-descriptions-item>
-              <el-descriptions-item label="鍚堟牸鐜�" style="width: 100%">
-                <el-progress
-                  define-back-color="#007101"
-                  color="#00CC66"
-                  :text-inside="true"
-                  :stroke-width="30"
-                  :percentage="passrate"
+                  :percentage="taskData.Order?parseInt(finishNumber/taskData.Order.amount*100):0"
                 ></el-progress>
               </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>
         <div class="bottom">
           <div class="bottom_list">
             <div class="bottom-title">杈撳叆璧勬簮</div>
-            <Card />
-            <Card />
-            <Card />
-            <!-- <span class="call">鍛煎彨鐗╂枡</span> -->
-          </div>
-          <i class="el-icon-arrow-right font-arrow-20"></i>
-          <div class="bottom_list">
-            <div class="bottom-title">褰撳墠宸ュ簭:鍓嶇汉(QF)</div>
-            <!-- format:format(percentage) -->
-            <div
-              style="
-                display: flex;
-                margin: auto;
-                width: 160px;
-                margin-top: 12px;
+            <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-progress
-                :stroke-width="12"
-                text-color="#4EFEFA"
-                color="#4C6CEC"
-                define-back-color="#4EFEFA"
-                type="circle"
-                :percentage="production"
-                :width="160"
-                style="font-size: 20px"
-              ></el-progress>
-            </div>
-
-            <Card />
-            <p style="font-size: 22px; margin-left: 12px; margin-top: 50px">
-             
-            </p>
-            <!-- <div class="qfcall">
-              <span
-                style="
-                  width: 63%;
-                  height: 100%;
-                  background: #4efefa;
-                  display: inline-block;
-                  border-radius: 5px;
-                  color: #000;
-                "
-                >鎵撳嵃</span
+              <el-carousel-item
+                :key="index"
+                v-for="(item, index) in inputMaterials"
               >
-              <span
-                style="
-                  width: 33%;
-                  height: 100%;
-                  background: #ff0000;
-                  display: inline-block;
-                  border-radius: 5px;
-                  margin-left: 2%;
-                "
-                >缁撴潫</span
-              >
-            </div> -->
+                <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"></i>
+          <i class="el-icon-arrow-right font-arrow-20 color_4efefa"></i>
           <div class="bottom_list">
-            <div class="bottom-title">杈撳嚭璧勬簮</div>
-            <Card />
-            <Card />
-            <Card />
-            <!-- <span class="call">鍛煎彨杩愯緭</span> -->
+            <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>
+            </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="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">
+                    <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>
-    <div class="right">
-      <div class="right_top">
-        <div class="right-top-l">浣滀笟鐘舵��</div>
-        <div class="time">
-          <dl>
-            <dd><span style="font-size: 32px">17:50</span></dd>
-            <dd>
-              <span style="font-size: 12px; margin-right: 10px"
-                >2023/02/16</span
+      <div class="right">
+        <div class="right_top">
+          <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
+                >
+                <!--margin-right: 10px <span style="font-size: 14px">鏄熸湡鍥�</span> -->
+              </dd>
+            </dl>
+          </div>
+        </div>
+        <div class="right-top-m">
+          璁惧鐘舵��:
+          <span style="position: relative"
+            >姝e父
+            <span class="yuandian"></span>
+          </span>
+        </div>
+        <div class="right-top-m-btn">
+          <!-- <el-button type="primary" @click="controlClick"> 鎺у埗</el-button> -->
+        </div>
+        <div class="right_dutyLst">
+          <div class="right-small-title">褰撳墠鍊肩彮</div>
+          <div
+            class="right-person-box"
+            v-if="taskData.Procedure.procedure.workers"
+          >
+            <dl
+              class="right-small-person"
+              v-for="(item, index) in taskData.Procedure.procedure.workers"
+              :key="index"
+            >
+              <dt>
+                <!-- <el-avatar
+                class="img-class"
+                src="https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png"
+              ></el-avatar> -->
+                <i
+                  class="el-icon-s-custom"
+                  style="margin: 10px; font-size: 40px"
+                />
+              </dt>
+              <span
+                style="font-size: 20px; font-weight: 600; margin-right: 10px"
+                >{{ item.workerName || "" }}</span
               >
-              <span style="font-size: 14px">鏄熸湡鍥�</span>
-            </dd>
-          </dl>
+              <span>{{ item.phoneNum || "" }}</span>
+            </dl>
+          </div>
+          <!-- <div
+            style="
+              width: 100%;
+              font-size: 18px;
+              font-weight: 600;
+              margin-top: 50px;
+              text-align: center;
+              line-height: 50px;
+            "
+          >
+            缂栧彿锛歿{ taskData.Procedure.procedure.workers.workerId || "" }}
+          </div> -->
+        </div>
+        <div class="right_base">
+          <div class="right-small-title" style="line-height: 40px">鐭ヨ瘑搴�</div>
+          <Knowledge />
+          <div class="right-base-btn call">
+            <el-button type="primary"
+              ><i class="el-icon-phone-outline" /> 绾㈢伅鍛煎彨</el-button
+            >
+          </div>
         </div>
       </div>
-      <div class="right-top-m">
-        璁惧鐘舵��:
-        <span style="position: relative"
-          >姝e父
-          <span class="yuandian"></span>
-        </span>
-      </div>
-      <div class="right-top-m-btn">
-        <el-button type="primary" @click="openorder">
-               鎺у埗</el-button
-              >
-      </div>
-      <div class="right_dutyLst">
-        <div class="right-small-title">褰撳墠鍊肩彮</div>
-        <dl class='right-small-person'>
-          <dt>
-            <el-avatar
-            class="img-class"
-              src="https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png"
-            ></el-avatar>
-          </dt>
-          <span style="font-size:20px; font-weight:600;margin-right:10px">寮犱笁</span>
-          <span style="color:#666;">1867654329</span>
-        </dl>
-        <div style="width:100%;font-size:18px;font-weight:600;margin-top:50px;text-align:center;line-height:50px;">缂栧彿锛�12233</div>
-        <div class="right-small-btn">
-          <el-button type="primary" @click="openorder">
-                鎵撳嵃</el-button
-                >
-                <el-button type="primary" @click="openorder">
-                瀹屾垚</el-button
-                >
+    </template>
+    <!--  -->
+    <template v-else>
+      <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>
+          <span
+            class="font el-icon-setting set-title bg-set"
+            @click="setUrl"
+          ></span>
+        </div>
+        <div class="yuan">
+          <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-else>鏆傛棤浠诲姟锛屼紤鎭竴涓嬪惂...</span>
+            </div>
+            <el-button type="primary" @click="reloadPage">鍒锋柊浠诲姟</el-button>
+          </div>
         </div>
       </div>
-      <div class="right_base">
-       
-        <Knowledge />
-        <div class="right-base-btn call">
-        <el-button type="primary" @click="openorder">
-          绾㈢伅鍛煎彨</el-button
-              >
-      </div>
-      </div>
-    </div>
+    </template>
+    <!-- 鎺у埗鐨勫脊妗� -->
+    <AddControl ref="control" :Arr="Arr" />
+    <!-- 鎺у埗鐨勫脊妗� -->
+    <AddIssue ref="control" :Arr="Arr" :taskData="taskData" :Order="taskData.Order" @getSetProductNumber="getTaskInfo" />
   </div>
 </template>
 
 <script>
+
+import {
+  getTaskInfo,
+  finishTask,
+  getMiniDictList,
+  saveMiniDict,
+  startTask,
+  getProgress,
+  countdown,
+} from "@/api/home/index"; // 浜х嚎
 import Card from "@/components/Card.vue";
 import Knowledge from "../components/Knowledge.vue";
+import AddControl from "../components/AddControl.vue";
+import AddIssue from "../components/AddIssue.vue";
 export default {
   components: {
     Card,
     Knowledge,
+    AddControl,
+    AddIssue,
   },
   data() {
     return {
       progress: 70, //杩涘害
       passrate: 30, //鍚堟牸鐜�
       production: 25, //鐢熶骇涓�
+      finishNumber: 0,
+      formatTime2:'',
+      formatTime3:'',
+      // 鍙充晶瀹屾垚
+      finishShow: false,
+      inputMaterials: [],
+      outputMaterials: [],
+      procedureList: [],
+      taskData: {
+        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: "",
+            workers: [
+              {
+                phoneNum: "",
+                workerId: "",
+                workerName: "",
+              },
+            ],
+          },
+        },
+      },
+      totalNumber:0,
+      showCountDown:false,
+      countDownHour:0,
+      countDownMinute:0,
+      Arr:[],
     };
   },
-  created() {
-    setInterval(() => {
-      this.progress = this.getRandomNumber(1, 100);
-      this.passrate = this.getRandomNumber(1, 100);
-      this.production = this.getRandomNumber(1, 100);
-    }, 3000);
+  mounted() {
+    // setInterval(() => {
+    //   this.progress = this.getRandomNumber(1, 100);
+    //   this.passrate = this.getRandomNumber(1, 100);
+    //   this.production = this.getRandomNumber(1, 100);
+    // }, 3000);
+    this.getDate3()
+    this.getDate2()
+    setInterval(()=>{
+       this.getDate3()
+       this.getDate2()
+    },5000)
+    this.getTaskInfo();
   },
-
   methods: {
+    
+    reloadPage() {
+      // window.location.reload();
+      this.getTaskInfo();
+    },
+    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
+        }
+      });
+    },
+    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(
+          RegExp.$1,
+          (date.getFullYear() + "").substr(4 - RegExp.$1.length)
+        );
+      }
+      let o = {
+        "M+": date.getMonth() + 1,
+        "d+": date.getDate(),
+        "h+": date.getHours(),
+        "m+": date.getMinutes(),
+        "s+": date.getSeconds(),
+      };
+      for (let k in o) {
+        if (new RegExp(`(${k})`).test(fmt)) {
+          let str = o[k] + "";
+          fmt = fmt.replace(
+            RegExp.$1,
+            RegExp.$1.length === 1 ? str : this.padLeftZero(str)
+          );
+        }
+      }
+      return fmt;
+    },
+    padLeftZero(str) {
+      return ("00" + str).substr(str.length);
+    },
+    // 鏍煎紡鍖栨椂闂� ==> yyyy-mm-dd
+    formatDate(value) {
+      if (value) {
+        const now = value ? new Date(value * 1000) : new Date();
+        let time = this.getDateObj(now, "yyyy-MM-dd hh:mm:ss");
+        return time;
+      } else {
+        return "";
+      }
+    },
+    getDate3(){
+      let  now=  new Date();
+      this.formatTime3 = this.getDateObj(now, "hh:mm");
+    },
+    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]) {
+              newDataList[current] = [];
+              newDataList[current].push(inputMaterials[i]);
+            } else {
+              newDataList[current].push(inputMaterials[i]);
+            }
+          } else {
+            current++;
+            newDataList[current] = [];
+            newDataList[current].push(inputMaterials[i]);
+          }
+        }
+      }
+      this[value] = [...newDataList];
+      console.log(this.inputMaterials, "inputMaterials");
+    },
+
+    getTaskInfo() {
+      this.taskData = {
+        Order: {},
+        Procedure: {
+          procedure: { inputMaterials: [], outputMaterials: [], workers: [] },
+        },
+      };
+      getTaskInfo().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();
+            setInterval(() => {
+              this.getProgressInfo();
+            }, 6000);
+          }
+          console.log(this.procedureList, "===1111procedureList");
+          // setTimeout(() => {
+          this.setInterCard("inputMaterials", "cardBox1");
+          // this.setInterCard('procedureList','cardBox2')
+          this.setInterCard("outputMaterials", "cardBox3");
+          // }, 5000);
+        }
+        if(res.code!=200||!this.taskData.Procedure.ID){
+          this.getcountdown();
+            setInterval(() => {
+              this.getcountdown();
+            }, 60000);
+        }
+      });
+    },
+    // 璁剧疆
+    setUrl() {
+      // const { href } = this.$router.resolve({
+      //   path: "/set",
+      // });
+      // window.open(href, "_blank");
+      this.$router.push({
+        path: "/set",
+      });
+    },
+    // 鍙充晶鎺у埗
+    controlClick() {
+      if (Object.keys(this.taskData).length > 0 && this.taskData.Procedure.ID) {
+        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) => {
+          if (res.code == 200) {
+            this.finishShow = false;
+            this.getTaskInfo();
+            this.$message.success("鎿嶄綔鎴愬姛锛�");
+          }
+        });
+      } else {
+        this.$message.error("褰撳墠璁惧娌℃湁宸ュ簭锛�");
+      }
+    },
     getRandomNumber(min, max) {
       return Math.floor(Math.random() * (max - min + 1) + min);
     },
@@ -258,19 +757,127 @@
 </script>
 
 <style lang="scss">
+.set-title{
+  cursor:pointer;
+}
+.home-img-box {
+  width: calc(100% - 40px);
+  height: calc(100% - 40px);
+  margin: 0 auto;
+  overflow: hidden;
+  padding: 20px;
+  .bg-title {
+    width: 90%;
+    margin: 0 auto;
+    position: absolute;
+    img {
+      width: 100%;
+    }
+    .bg-title-span {
+      position: absolute;
+      width: 30%;
+      height: 4rem;
+      line-height:2.4;
+      font-size: 26px;
+      font-weight: 700;
+      text-align: center;
+      left: 36%;
+      top: 1.5rem;
+      display: inline-block;
+    }
+    .bg-set{
+      position:absolute;
+      right:10%;
+      height: 4rem;
+      line-height:2.4;
+      font-size: 40px;
+      font-weight: 700;
+      top: 1rem;
+    }
+    .bg-date{
+      position:absolute;
+      left:3%;
+      height: 100px;
+      line-height: 30px;
+      font-size: 16px;
+      top: 15%;
+      span{
+        font-size: 35px;
+       font-weight: 700;
+       line-height: 20px;
+      }
+    }
+    
+  }
+  .yuan {
+    width: 40%;
+    height: 80%;
+    margin: 0 auto;
+    margin-top: 10%;
+    position: relative;
+    img {
+      width: 100%;
+    }
+    .btn-img {
+      width: 100%;
+      height: 50%;
+      margin: 0 auto;
+      text-align: center;
+      position: absolute;
+      top: 9rem;
+    }
+  }
+}
 .font-arrow-20 {
   font-size: 30px;
-  color: #4efefa;
   font-weight: 700;
+}
+.el-button--primary {
+  border: 0;
+  font-weight: 700 !important;
+  font-size: 16px !important;
+}
+.color_4efefa {
+  color: #4efefa;
+}
+.el-carousel__indicators--vertical {
+  display: none;
+}
+.color_blue {
+  background: #33ccff !important;
+}
+.color_green {
+  background: #00cc66 !important;
+}
+.color_organge {
+  background: #f76c0f !important;
+}
+.color_f70f83 {
+  background: #09e5ed !important;
+  color: #333 !important;
 }
 .bottom_list {
   position: relative;
-  padding:10px;
-  .bottom-title{
+  padding: 10px;
+  width: 30%;
+  height: 100%;
+  border-radius: 6px;
+  background: rgb(22 72 173);
+  // float:left;
+  .bottom-title {
     font-weight: 600;
-    font-size:16px;
-
-
+    font-size: 22px;
+    height: 30px;
+    line-height: 30px;
+    margin-bottom: 30px;
+    .el-button--primary {
+      color: #fff;
+      float: right;
+      border: 0 !important;
+    }
+  }
+  .el-button--primary {
+    width: 100%;
   }
   .call {
     background: #4efefa;
@@ -301,24 +908,57 @@
     // color: #000;
     font-size: 16px;
   }
+  .card-box {
+    width: 100%;
+    height: calc(100% - 50px - 50px);
+    // overflow:auto;
+    // height:300px;
+  }
 }
 
 .small_title {
-  font-size: 20px;
-  font-weight: 600;
+  font-size: 24px;
+  margin-bottom: 10px;
+}
+.right-small-btn {
+  margin-top: 10px;
+  width: calc(100% - 20px);
+  margin: 0 auto;
+  position: absolute;
+  bottom: 10px;
+  left: 10px;
+  overflow: hidden;
+  .el-button--primary {
+    width: 46%;
+    background: #09e5ed;
+    float: left;
+    border-radius: 6px;
+    color: #333;
+    font-weight: 700;
+    font-size: 18px;
+  }
+  .button-finish {
+    width: 46%;
+    float: right;
+    .el-button--primary {
+      width: 100%;
+      background: red;
+      color: #fff;
+      border: 0;
+    }
+  }
 }
 .home {
   width: 100%;
-  height: auto;
-  min-height: 100%;
+  height: 100%;
   color: #fff;
-  background: rgba(2, 10, 38, 1);
+  background: #12234a;
   overflow: hidden;
   .left {
     width: calc(78% - 60px);
-    height: auto;
+    height: 100%;
     min-height: 100%;
-    background: rgba(2, 10, 38, 1);
+    background: #12234a;
     float: left;
     padding: 30px;
     padding-top: 20px;
@@ -328,48 +968,50 @@
 
       text-align: center;
     }
-    .color_4efefa {
-      color: #4efefa;
-    }
 
     .statelist {
       width: 100%;
       margin: 0 auto;
       height: 50px;
-      display: flex;
       flex-wrap: nowrap;
       align-content: center;
       justify-content: space-around;
       align-items: center;
       .title-item {
-        width: 20%;
+        width: calc(25% - 50px);
+        float: left;
+        margin-right: 10px;
         padding: 15px 20px;
         text-align: center;
         border-radius: 4px;
         display: inline-block;
-        background: rgba(12, 79, 218, 1);
+        background: rgb(22 72 173);
         font-size: 16px;
         font-weight: 600;
+        &:nth-last-child(1) {
+          margin-right: 0;
+        }
       }
     }
     .content {
       width: 100%;
       height: 240px;
-      margin: 20px 0px;
+      margin: 30px 0px;
       overflow: hidden;
       .content_left {
-        width: 22%;
+        width: 24%;
         height: 100%;
         float: left;
         // padding:2%;
         .content-top {
-          background: hsl(225, 85%, 67%);
-          height: calc(50% - 25px);
+          background: rgb(22 72 173);
+          height: calc(50% - 30px);
           padding-top: 20px;
           text-align: center;
           line-height: 30px;
+          border-radius: 6px;
           &:nth-of-type(1) {
-            margin-bottom: 10px;
+            margin-bottom: 20px;
           }
         }
         .content_leftBttom {
@@ -393,9 +1035,12 @@
         height: 100%;
         float: right;
         padding: 0 10px;
+        background: rgb(22 72 173);
+        border-radius: 6px;
         // background: #233b9e;
         .el-descriptions__body {
           background: transparent;
+          font-size: 18px;
         }
         .el-descriptions__table {
           width: 100%;
@@ -415,93 +1060,128 @@
 
     .bottom {
       width: 100%;
-      height: 500px;
+      height: calc(100% - 500px);
       display: flex;
       flex-wrap: nowrap;
       align-content: center;
       justify-content: space-between;
       align-items: center;
-      margin-top: 6%;
+      margin-top: 20px;
       // position: relative;
 
-      > div {
-        // background: #333333;
-        width: 30%;
-        height: 100%;
-        background: #111438;
-
-        .card {
-          width: calc(100% - 20px);
-          height: 70px;
-          // border: 1px solid #ccc;
-          background:#ffff;
+      .card {
+        width: 100%;
+        height: 70px;
+        // border: 1px solid #ccc;
+        background: #6b83ff;
+        border-radius: 5px;
+        margin-top: 20px;
+        color: #333;
+        position: relative;
+        .card_top-2,
+        .card_top-3 {
+          width: 50%;
+          height: 45px;
           border-radius: 5px;
-          margin-top: 10px;
-          color: #333;
-          .card_top-2{
-            width: 50%;
-            height:45px;
-            border-radius: 5px;
-            background:#fff;
-            font-size: 12px;
-            float:left;
-            .card-top-r-t{
-              width:100%;
-              text-align:center;
-              display:inline-block;
-              height:20px;
-              line-height:20px;
-              margin-top:3px;
-            }
-            .card-top-r-b{
-              width:100%;
-              height:20px;
-              line-height:20px;
-               text-align:center;
-              display:inline-block;
-              
-            }
-          }
-          .card_top {
-            width: 50%;
-            height:45px;
-            border-radius: 5px;
-            background:#f2f2f2;
-            font-size: 12px;
-            line-height: 45px;
-            float:left;
-            
-           
-            > div {
-              margin-left: 12px;
-              position: relative;
-              p {
-                position: absolute;
-                top: -14px;
-                right: 15px;
-                font-size: 14px;
-              }
-            }
-          }
-          .card_content {
+          background: #6b83ff;
+          font-size: 12px;
+          color: #fff;
+          float: left;
+          .card-top-r-t {
             width: 100%;
-            border-radius: 5px;
+            text-align: center;
+            display: inline-block;
+            height: 20px;
+            line-height: 20px;
+            margin-top: 3px;
+          }
+          .card-top-r-b {
+            width: 100%;
+            height: 20px;
+            line-height: 20px;
+            text-align: center;
+            display: inline-block;
+          }
+        }
+        .card_top-3 {
+          color: #fff;
+          .card-top-r-t {
+            width: 90%;
+
+            margin: 0 auto;
+            margin-bottom: 5px;
+            display: block;
+            text-align: left;
+          }
+          .card-top-r-b {
+            width: 90%;
+            display: block;
+            margin: 0 auto;
+          }
+        }
+
+        .card_top,
+        .card_top-4 {
+          width: 50%;
+          height: 45px;
+          border-radius: 5px;
+          background: #6b83ff;
+          color: #fff;
+          font-size: 12px;
+          line-height: 45px;
+          float: left;
+
+          > div {
+            margin-left: 12px;
+            position: relative;
+            p {
+              position: absolute;
+              top: -14px;
+              right: 15px;
+              font-size: 14px;
+            }
+          }
+        }
+        .card_top-4 {
+          width: calc(100% - 20px);
+          padding: 0 10px;
+          height: 70px;
+
+          line-height: 40px;
+          color: #fff;
+          background: rgb(19, 35, 90);
+          font-size: 20px;
+        }
+        .card-info-box {
+          position: absolute;
+          background: red;
+          border-radius: 6px;
+          font-size: 12px;
+          color: #fff;
+          padding: 3px 5px;
+          top: 3px;
+          right: 40px;
+        }
+        .card_content {
+          width: 100%;
+          border-radius: 5px;
+          height: 25px;
+          // background: #4765c0;
+          .card_contentLeft {
+            width: calc(100% - 10px);
             height: 25px;
-            // background: #4765c0;
-            .card_contentLeft {
-              width: calc(100% - 10px);
-              height: 25px;
-              line-height:25px;
-              font-size: 12px;
-              padding:0 5px;
-              border-radius:5px 5px 0 0;
-              background:#ffcc33;
-            }
-            .card_contentRight {
-              width: 100%;
-              height: 38%;
-              font-size: 12px;
-            }
+            line-height: 25px;
+            font-size: 12px;
+            padding: 0 5px;
+            color: #fff;
+            border-radius: 5px 5px 0 0;
+            background: rgb(19, 35, 90);
+          }
+
+          .card_contentRight {
+            width: 100%;
+            height: 38%;
+            font-size: 12px;
           }
         }
       }
@@ -509,7 +1189,7 @@
   }
   .right {
     width: calc(20% - 10px);
-    height: auto;
+    height: 100%;
     min-height: 100%;
     background: #233b9e;
     float: left;
@@ -550,71 +1230,78 @@
       }
     }
     .right-top-m {
-      width:100%;
-      background:rgba(28,48,133,1);
-      line-height:50px;
+      width: 100%;
+      background: rgba(28, 48, 133, 1);
+      line-height: 50px;
       font-weight: 700;
-      font-size:18px;
-      padding:0 4%;
-      overflow-x:hidden;
-      margin-left:-4%;
+      font-size: 18px;
+      padding: 0 4%;
+      overflow-x: hidden;
+      margin-left: -4%;
       .yuandian {
         width: 25px;
         height: 25px;
-        line-height:40px;
-        margin-top:12.5px;
-        display:inline-block;
+        line-height: 40px;
+        margin-top: 12.5px;
+        display: inline-block;
         background: #15d815;
         display: block;
         border-radius: 50%;
-        float:right;
-        
+        float: right;
       }
     }
-    .right-top-m-btn{
-        margin-top:10px;
-        width:100%;
-        .el-button--primary{
-          width:100%;
-          background:#fff;
-          color:#4765c0;
-          font-weight: 700;
-          font-size:18px;
-        }
+    .right-top-m-btn {
+      margin-top: 10px;
+      width: 100%;
+      .el-button--primary {
+        width: 100%;
+        background: #09e5ed;
+        color: #333;
+        font-weight: 700;
+        font-size: 18px;
       }
+    }
     .right_dutyLst {
       width: calc(100% - 20px);
-      height: 270px;
+      // height: 270px;
+      height: 310px;
       border-radius: 4px;
-      line-height:30px;
+      line-height: 30px;
       overflow: hidden;
-      background:#00CC66;
-      margin-top:10px;
-      padding:5px 10px;
-      .right-small-title{
-        width:auto;
-        padding:5px;
-        font-size:14px;
-        float:right;
-        border-radius:8px;
-        background:#007101;
+      // background: #00cc66;
+      margin-top: 10px;
+      padding: 5px 10px;
+      position: relative;
+      .right-small-title {
+        width: auto;
+        padding: 5px;
+        font-size: 18px;
+        // float: left;
+        border-radius: 8px;
+        // background: #007101;
+      }
+      .right-person-box {
+        width: 100%;
+        height: calc(100% - 40px);
+        overflow: auto;
+        margin-top: -10px;
       }
       .right-small-person {
         width: 100%;
         height: 60px;
-        line-height:60px;
-        margin-top:50px;
+        line-height: 60px;
+        margin-bottom: 10px;
         border-radius: 10px;
-        background:#fff;
-        color:#333;
-        
+        background: rgb(19, 35, 90);
+        color: #fff;
+
         dt {
           float: left;
-          padding: 5px;
-          margin-right:10px;
-          .img-class{
-            height:50px;
-            padding:0!important;
+
+          margin-right: 10px;
+          .img-class {
+            height: 50px;
+            margin: 5px !important;
           }
         }
         span {
@@ -622,37 +1309,26 @@
           padding-top: 10px;
         }
       }
-      .right-small-btn{
-        margin-top:10px;
-        width:100%;
-        .el-button--primary{
-          width:45%;
-          background:#fff;
-          float:right;
-          border-radius:6px;
-          color:#4765c0;
-          font-weight: 700;
-          font-size:18px;
-          &:nth-of-type(1){
-            float:left;
-          }
-        }
-      }
     }
     .right_base {
       width: 100%;
-      height: 45%;
+      height: calc(100% - 520px);
+      min-height: 200px;
+      // overflow-y:auto;
       position: relative;
-      .right-base-btn{
-        .el-button--primary{
-          width:100%;
-          background:#ff0000;
-          float:right;
-          border-radius:6px;
-          color:#fff;
+      .right-base-btn {
+        width: 100%;
+        position: absolute;
+        bottom: 0;
+        left: 0;
+        .el-button--primary {
+          width: 100%;
+          background: #ff0000;
+          float: right;
+          border-radius: 6px;
+          color: #fff;
           font-weight: 700;
-          font-size:18px;
-          
+          font-size: 18px;
         }
       }
       // .call {

--
Gitblit v1.8.0