From 540f0fe70b23ddad3ad87cff2be0a29b2eb7115f Mon Sep 17 00:00:00 2001
From: 王震 <10952869+daywangzhen@user.noreply.gitee.com>
Date: 星期一, 20 十一月 2023 09:48:00 +0800
Subject: [PATCH] Merge branch 'master' of http://114.132.189.42:9002/r/mes-ocea-before

---
 src/views/product/workbench/operation-task-pane.vue |  266 +++++++++++++++++++++++++++++-----------------------
 1 files changed, 147 insertions(+), 119 deletions(-)

diff --git a/src/views/product/workbench/operation-task-pane.vue b/src/views/product/workbench/operation-task-pane.vue
index e0a5772..d559810 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"
@@ -9,76 +9,79 @@
     </el-alert>
     <el-card
   v-for="(item, index) in operationTasks"
-    @click.native="setCheckFlag(item)"
+  @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'
-      ]"
-    >
-      <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
-    "
-    :format="formatPercentage(item.completedQuantity, item.plannedQuantity)"
-  ></el-progress>
-</el-card>
+>
+      <img class="selectedImg" src="/img/workbench/icon_selected.png" />
+      <div class="header">
+        <div>宸ュ崟鍙凤細{{ item.taskNo }}</div>
+        <div class="tag" :style="{ backgroundColor: getTagColor(item.planFinishDay) }">
+    {{ getTagText(item.planFinishDay) }}
+        </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
+        "
+        :format="formatPercentage(item.completedQuantity, item.plannedQuantity)"
+      ></el-progress>
+    </el-card>
   </div>
 </template>
 <style lang="scss" scoped>
@@ -92,42 +95,52 @@
   flex-direction: column;
   align-items: center;
 }
+
+.tag{
+width: 80px;
+height: 30px;
+border-radius:15% ;
+text-align: center;
+text-size:8px;
+color:white;
+align-content: 30px;
+
+}
+
+
 .task-item {
   width: 100%;
   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;
@@ -349,38 +362,53 @@
   },
   methods: {
 
-    setCheckFlag(item) {
-      this.$nextTick(() => {
-        this.changeBackgroundColor(item.planFinishDay);
-      });
-    },
-    getBackgroundColor(planFinishDay) {
-    const currentDate = new Date();
-    currentDate.setHours(0, 0, 0, 0); // 璁剧疆鏃堕棿涓哄綋澶╃殑寮�濮嬶紝蹇界暐鏃跺垎绉掓绉�
-    const planFinishDayObj = new Date(planFinishDay);
-    planFinishDayObj.setHours(0, 0, 0, 0); // 鍚屾牱璁剧疆鏃堕棿涓鸿鍒掑畬鎴愭棩鐨勫紑濮�
+//     getBackgroundColor(planFinishDay) {
+//   const today = new Date();
+//   const planDate = new Date(planFinishDay);
+//   if (planDate < today) {
+//     return 'rgba( 255,0,0,1)'; // 瓒呮湡涓虹孩鑹�
+//   } else {
+//     const timeDiff = planDate.getTime() - today.getTime();
+//     const daysDiff = Math.ceil(timeDiff / (1000 * 3600 * 24));
+//     if (daysDiff <= 3) {
+//       return 'rgba(255,204,62, 1)';  // 涓存湡涓洪粍鑹� 
+//     } else {
+//       return 'rgba(86,219, 25,1)';  // 姝e父涓虹豢鑹�
+//     }
+//   }
+// },
 
-    if (planFinishDayObj < currentDate) {
-        // 濡傛灉璁″垝瀹屾垚鏃ュ湪褰撳墠鏃ヤ箣鍓嶏紝杩斿洖'rgba(0, 0, 255, 0.3)'琛ㄧず杩囨湡锛岃繖閲岀殑 0.3 鎺у埗浜嗛�忔槑搴�
-        return 'rgba(255, 0, 0, 0.5)';
+getTagColor(planFinishDay) {
+  const today = new Date();
+  const planDate = new Date(planFinishDay);
+  if (planDate < today) {
+    return 'rgba( 255,0,0,1)'; // 瓒呮湡涓虹孩鑹�
+  } else {
+    const timeDiff = planDate.getTime() - today.getTime();
+    const daysDiff = Math.ceil(timeDiff / (1000 * 3600 * 24));
+    if (daysDiff <= 3) {
+      return 'rgba(255,204,62, 1)';  // 涓存湡涓洪粍鑹� 
     } 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澶╁唴锛岃繑鍥�'rgba(255, 255, 0, 0.3)'琛ㄧず鍗冲皢鍒版湡锛岃繖閲岀殑 0.3 鎺у埗浜嗛�忔槑搴�
-                return 'rgba(219, 219, 54, 0.7)';
-            }
-            return 'rgba(28, 62, 222, 0.8)';
-        }
+      return 'rgba(86,219, 25,1)';  // 姝e父涓虹豢鑹�
     }
-    // 濡傛灉涓嶆槸鍗冲皢鍒版湡鎴栧凡杩囨湡锛岃繑鍥�'rgba(255, 0, 0, 0.3)'琛ㄧず宸插埌鏈燂紝杩欓噷鐨� 0.3 鎺у埗浜嗛�忔槑搴�
-    return 'rgba(255, 0, 0, 0.5)';
+  }
 },
 
+getTagText(planFinishDay) {
+  const today = new Date();
+  const planDate = new Date(planFinishDay);
+  if (planDate < today) {
+    return '瓒呮湡'; 
+  } else {
+    const timeDiff = planDate.getTime() - today.getTime();
+    const daysDiff = Math.ceil(timeDiff / (1000 * 3600 * 24));
+    if (daysDiff <= 3) {
+      return '涓存湡';
+    } else {
+      return '姝e父';
+    }
+  }
+},
     // 鐐瑰嚮宸ュ崟锛岄�変腑宸ュ崟
     setCheckFlag(item) {
       if (item.checkFlag) {

--
Gitblit v1.9.3