From ddc598194b06cea3d7a335d6e93a50baf81b7f90 Mon Sep 17 00:00:00 2001
From: 86134 <aa>
Date: 星期六, 18 十一月 2023 14:17:23 +0800
Subject: [PATCH] 11

---
 src/views/product/workbench/operation-task-pane.vue |  202 +++++++++++++++++++++++++++-----------------------
 1 files changed, 109 insertions(+), 93 deletions(-)

diff --git a/src/views/product/workbench/operation-task-pane.vue b/src/views/product/workbench/operation-task-pane.vue
index 2a3ffae..badea28 100644
--- a/src/views/product/workbench/operation-task-pane.vue
+++ b/src/views/product/workbench/operation-task-pane.vue
@@ -1,6 +1,6 @@
 <template>
   <div>
-    <el-alert
+    <el-alert 
       v-if="!operationTasks || operationTasks.length == 0"
       title="杩樻病鏈夊伐鍗曚笅鍙戝埌姝ゆ満鍙帮紒"
       type="warning"
@@ -8,76 +8,63 @@
     >
     </el-alert>
     <el-card
-      v-for="(item, index) in operationTasks"
-      @click.native="setCheckFlag(item)"
-      shadow="hover"
-      :key="index"
-      :class="['task-item', item.checkFlag ? 'card-checked' : 'card-unchecked']"
+    
+  v-for="(item, index) in operationTasks"
+    @click.native="setCheckFlag(item)"
+  shadow="hover"
+  :key="index"
+  :class="['task-item', item.checkFlag ? 'card-checked' : 'card-unchecked']"
+  :style="{ backgroundColor: getBackgroundColor(item.planFinishDay) }"
+>
+  <!-- <img class="selectedImg" /> -->
+  <div class="header" >
+    <div>宸ュ崟鍙凤細{{ item.taskNo }}</div>
+    <!-- <div>璁″垝鍙凤細{{ item.mpsNo }}</div> -->
+    <div  
+      :class="[
+        'status-change-div',
+        item.checkFlag ? 'card-checked-status' : 'card-status'
+      ]"
     >
-      <img class="selectedImg" src="/img/workbench/icon_selected.png" />
-      <div class="header">
-        <div>宸ュ崟鍙凤細{{ item.taskNo }}</div>
-        <div>璁″垝鍙凤細{{ item.mpsNo }}</div>
-        <div
-          :class="[
-            'status-change-div',
-            item.checkFlag ? 'card-checked-status' : 'card-status'
-          ]"
-        >
-          <el-select
-            v-if="permissions.product_operationTask_state"
-            v-model="item.statusAction"
-            placeholder="鍔熻兘鑿滃崟"
-            @change="
-              changeTaskState(item.statusAction, item.status, item.id, item)
-            "
-          >
-            <el-option
-              v-for="ele in statusActions"
-              :key="ele.value"
-              :label="ele.label"
-              :value="ele.value"
-              :disabled="ele.disabled"
-            >
-            </el-option>
-          </el-select>
-        </div>
-      </div>
-      <div class="body">
-        <div class="row">
-          <div class="l">闆朵欢鍚嶇О锛�</div>
-          <div class="r">{{ item.partName }}</div>
-        </div>
-        <div class="row">
-          <div class="l">闆朵欢鍙凤細</div>
-          <div class="r">{{ item.partNo }}</div>
-        </div>
-        <div class="row">
-          <div class="l">鎴愬搧锛�</div>
-          <div class="r">{{ item.productName }}</div>
-        </div>
-        <div class="row">
-          <div class="l">璁″垝瀹屾垚鏃堕棿锛�</div>
-          <div class="r">{{ item.planFinishDay }}</div>
-        </div>
-      </div>
-
-      <el-progress
-        class="task-progress"
-        :text-inside="true"
-        :stroke-width="20"
-        :percentage="
-          Number((item.completedQuantity / item.plannedQuantity).toFixed(2)) *
-            100 >
-          100
-            ? 100
-            : Number(
-                (item.completedQuantity / item.plannedQuantity).toFixed(2)
-              ) * 100
+      <el-select
+        v-if="permissions.product_operationTask_state"
+        v-model="item.statusAction"
+        placeholder="鍔熻兘鑿滃崟"
+        @change="
+          changeTaskState(item.statusAction, item.status, item.id, item)
         "
-        :format="formatPercentage(item.completedQuantity, item.plannedQuantity)"
-      ></el-progress>
-    </el-card>
+      >
+        <el-option
+          v-for="ele in statusActions"
+          :key="ele.value"
+          :label="ele.label"
+          :value="ele.value"
+          :disabled="ele.disabled"
+        >
+        </el-option>
+      </el-select>
+    </div>
+  </div>
+  <div class="body">
+    <div class="row">
+      <div class="l">闆朵欢鍚嶇О锛�</div>
+      <div class="r">{{ item.partName }}</div>
+    </div>
+    <div class="row">
+      <div class="l">闆朵欢鍙凤細</div>
+      <div class="r">{{ item.partNo }}</div>
+    </div>
+    <!-- <div class="row">
+      <div class="l">鎴愬搧锛�</div>
+      <div class="r">{{ item.productName }}</div>
+    </div> -->
+    <div class="row">
+      <div class="l">璁″垝瀹屾垚鏃堕棿锛�</div>
+      <div class="r" >{{ item.planFinishDay }}</div>
+    </div>
+  </div>
+
+</el-card>
   </div>
 </template>
 <style lang="scss" scoped>
@@ -96,34 +83,37 @@
   border-radius: 12px;
   cursor: pointer;
   position: relative;
+background:none;
   box-shadow: 1px 2px 24px 1px rgba(4, 0, 0, 0.14);
+   
   & + .task-item {
     margin-top: 10px;
   }
+  
   &.card-checked {
     // color: white;
-    background-image: -webkit-linear-gradient(
-        90deg,
-        rgba(12, 149, 255, 0.7) 0%,
-        rgba(38, 176, 254, 0.8) 34%,
-        rgba(12, 149, 255, 0.8) 100%
-      ),
-      -webkit-linear-gradient(#5a97fa, #5a97fa);
-    background-image: -moz-linear-gradient(
-        90deg,
-        rgba(12, 149, 255, 0.7) 0%,
-        rgba(38, 176, 254, 0.8) 34%,
-        rgba(12, 149, 255, 0.8) 100%
-      ),
-      -moz-linear-gradient(#5a97fa, #5a97fa);
-    background-image: linear-gradient(
-        90deg,
-        rgba(12, 149, 255, 0.7) 0%,
-        rgba(38, 176, 254, 0.8) 34%,
-        rgba(12, 149, 255, 0.8) 100%
-      ),
-      linear-gradient(#5a97fa, #5a97fa);
-    background-blend-mode: normal, normal;
+    // background-image: -webkit-linear-gradient(
+    //     90deg,
+    //     rgba(12, 149, 255, 0.7) 0%,
+    //     rgba(38, 176, 254, 0.8) 34%,
+    //     rgba(12, 149, 255, 0.8) 100%
+    //   ),
+    //   -webkit-linear-gradient(#5a97fa, #5a97fa);
+    // background-image: -moz-linear-gradient(
+    //     90deg,
+    //     rgba(12, 149, 255, 0.7) 0%,
+    //     rgba(38, 176, 254, 0.8) 34%,
+    //     rgba(12, 149, 255, 0.8) 100%
+    //   ),
+    //   -moz-linear-gradient(#5a97fa, #5a97fa);
+    // background-image: linear-gradient(
+    //     90deg,
+    //     rgba(12, 149, 255, 0.7) 0%,
+    //     rgba(38, 176, 254, 0.8) 34%,
+    //     rgba(12, 149, 255, 0.8) 100%
+    //   ),
+    //   linear-gradient(#5a97fa, #5a97fa);
+    // background-blend-mode: normal, normal;
   }
   .selectedImg {
     position: absolute;
@@ -250,7 +240,7 @@
 </style>
 <script>
 import {
-  getOperationTask,
+  getOperationTaskCopy,
   changeBackState,
   changeOperationTaskState,
   getDraftProductOut,
@@ -344,6 +334,32 @@
     }
   },
   methods: {
+    getBackgroundColor(planFinishDay) {
+    const currentDate = new Date();
+    currentDate.setHours(0, 0, 0, 0); // 璁剧疆鏃堕棿涓哄綋澶╃殑寮�濮嬶紝蹇界暐鏃跺垎绉掓绉�
+    const planFinishDayObj = new Date(planFinishDay);
+    planFinishDayObj.setHours(0, 0, 0, 0); // 鍚屾牱璁剧疆鏃堕棿涓鸿鍒掑畬鎴愭棩鐨勫紑濮�
+
+    if (planFinishDayObj < currentDate) {
+      // 濡傛灉璁″垝瀹屾垚鏃ュ湪褰撳墠鏃ヤ箣鍓嶏紝杩斿洖'blue'琛ㄧず杩囨湡
+      return 'red';
+    } else {
+      const timeDifference = currentDate - planFinishDayObj;
+      const daysDifference = Math.ceil(timeDifference / (1000 * 60 * 60 * 24));
+
+      if (daysDifference < 0) {
+        // 濡傛灉璁″垝瀹屾垚鏃ュ湪鏈潵锛岃绠楀畠鏄惁鍦�10澶╁唴
+        const daysUntilDue = Math.abs(daysDifference);
+        if (daysUntilDue <= 10) {
+          // 濡傛灉鍦�10澶╁唴锛岃繑鍥�'yellow'琛ㄧず鍗冲皢鍒版湡
+          return 'yellow';
+        }
+      }
+    }
+    // 濡傛灉涓嶆槸鍗冲皢鍒版湡鎴栧凡杩囨湡锛岃繑鍥�'red'琛ㄧず宸插埌鏈�
+    return 'blue';
+},
+    
     // 鐐瑰嚮宸ュ崟锛岄�変腑宸ュ崟
     setCheckFlag(item) {
       if (item.checkFlag) {
@@ -579,7 +595,7 @@
           if (this.mpsNo && this.mpsNo != null) {
             query.mpsNo = this.mpsNo
           }
-          getOperationTask(query)
+          getOperationTaskCopy(query)
             .then((response) => {
               var data = response.data
               if (data.code === 0) {

--
Gitblit v1.9.3