From 41e0df8413624e6034c967f3afae30da59370879 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期一, 11 十二月 2023 16:20:15 +0800
Subject: [PATCH] 	modified:   src/components/verifition/Verify/VerifyPoints.vue 	modified:   src/const/crud/admin/sys-public-param.js 	modified:   src/page/full-screen/fullScreenPlus.vue 	modified:   src/page/index/logo.vue 	modified:   src/page/index/sidebar/sidebarItem.vue 	modified:   src/page/login/index.vue 	modified:   src/page/login/thirdpartylogin.vue 	modified:   src/util/elAttr.js 	modified:   src/views/accounting/unitworkfactor/unitworkfactor-form.vue 	modified:   src/views/accounting/unitworkfactor/updateQuota-form.vue 	modified:   src/views/basic/discmaintenance/discmaintenance-form.vue 	modified:   src/views/basic/log/index.vue 	modified:   src/views/basic/part/part-form.vue 	modified:   src/views/basic/part/print-label-form.vue 	modified:   src/views/basic/poc/index.vue 	modified:   src/views/basic/tabletest/index.vue 	modified:   src/views/basic/template/index.vue 	modified:   src/views/basic/template/template-form.vue 	modified:   src/views/basic/workstation/workstation-form.vue 	modified:   src/views/common/custom-table.vue 	modified:   src/views/common/documentDetail.vue 	modified:   src/views/common/operationParamTemplate.vue 	modified:   src/views/common/rawMaterial-part.vue 	modified:   src/views/common/search-select.vue 	modified:   src/views/common/ztt-table.vue 	modified:   src/views/huawei/code19bind/list.vue 	modified:   src/views/huawei/code19gen/form.vue 	modified:   src/views/huawei/grossweightcode/list.vue 	modified:   src/views/huawei/grossweightcode/task-secret-form.vue 	modified:   src/views/oa/JiegouModal.vue 	modified:   src/views/oa/PeizhiModal.vue 	modified:   src/views/oa/technology-document-new.vue 	modified:   src/views/oa/technology-document.vue 	modified:   src/views/plan/customer/index.vue 	modified:   src/views/plan/customerorder/confirm-pull-customerorder.vue 	modified:   src/views/plan/customerorder/customerorder-config-history.vue 	modified:   src/views/plan/customerorder/customerorder-form.vue 	modified:   src/views/plan/customerorder/customerorder-return.vue 	modified:   src/views/plan/customerorder/customerorder-ztt-table.vue 	modified:   src/views/plan/customerorder/index.vue 	modified:   src/views/plan/customerorder/other-customer-order-line.vue 	modified:   src/views/plan/customerorder/sample-customerorder-form.vue 	modified:   src/views/plan/customerorder/schedule-table.vue 	modified:   src/views/plan/manufacturingorder/auto-operationtask.vue 	modified:   src/views/plan/manufacturingorder/customerorder.vue 	modified:   src/views/plan/manufacturingorder/customize-param-template.vue 	modified:   src/views/plan/manufacturingorder/order-operation-form.vue 	modified:   src/views/plan/manufacturingorder/productorder-form.vue 	modified:   src/views/plan/manufacturingorderapply/index.vue 	modified:   src/views/plan/masterproductionschedule/auto-manufacturingorder.vue 	modified:   src/views/plan/operationtask/gantt.vue 	modified:   src/views/plan/operationtask/operationtask-form.vue 	modified:   src/views/plan/operationtask/task-material.vue 	modified:   src/views/plan/productionschedul/index.vue 	modified:   src/views/plan/productionschedul/template-form.vue 	modified:   src/views/plan/schedule/gantt.vue 	modified:   src/views/plan/schedulelookover/ganttview.vue 	modified:   src/views/plan/segmentmerge/index.vue 	modified:   src/views/plan/segmentmerge/operate-dialog.vue 	modified:   src/views/plan/segmentmerge/operation-technology-form.vue 	modified:   src/views/product/dutyrecord/index.vue 	modified:   src/views/product/producttraceability/index.vue 	modified:   src/views/product/producttraceability/traceability-diagram.vue 	modified:   src/views/product/workbench/batchproductout-form-new.vue 	modified:   src/views/product/workbench/batchproductout-form.vue 	modified:   src/views/product/workbench/feed-form.vue 	modified:   src/views/product/workbench/feed-pane.vue 	modified:   src/views/product/workbench/feed-tab.vue 	modified:   src/views/product/workbench/handymantype.vue 	modified:   src/views/product/workbench/index.vue 	modified:   src/views/product/workbench/mould-pane.vue 	modified:   src/views/product/workbench/operation-task-pane.vue 	modified:   src/views/product/workbench/product-record-form.vue 	modified:   src/views/product/workbench/productout-form-by-batch.vue 	modified:   src/views/product/workbench/productout-form.vue 	modified:   src/views/product/workbench/productrecord-tab.vue 	modified:   src/views/product/workbench/producttracking-tab.vue 	modified:   src/views/product/workbench/shift-productout-form.vue 	modified:   src/views/product/workbench/splitTaskForm.vue 	modified:   src/views/product/workbench/taskinfo-pane.vue 	modified:   src/views/quality/Packaging_ledger/pack-from.vue 	modified:   src/views/quality/apply/index.vue 	modified:   src/views/quality/exception/exception.vue 	modified:   src/views/quality/exception/index.vue 	modified:   src/views/quality/finishedProductInspection/finishedProduct-form.vue 	modified:   src/views/quality/finishedProductInspection/finishedProduct-print.vue 	modified:   src/views/quality/finishedProductInspection/finishedProducter-print.vue 	modified:   src/views/quality/finishedProductInspection/index.vue 	modified:   src/views/quality/newReport/ReportForm.vue 	modified:   src/views/quality/processInspect/index.vue 	modified:   src/views/quality/processInspect/processInspect-form.vue 	modified:   src/views/quality/processconfiguration/index.vue 	modified:   src/views/quality/processconfiguration/table-form.vue 	modified:   src/views/quality/rawMaterial/QrcodeReader.vue 	modified:   src/views/quality/rawMaterial/index.vue 	modified:   src/views/quality/rawMaterial/rawMaterial-form.vue 	modified:   src/views/quality/report/index.vue 	modified:   src/views/quality/standardbind/standardbind-form.vue 	modified:   src/views/quality/statistics/rateChart.vue 	modified:   src/views/quality/testitemlayout/index.vue 	modified:   src/views/quality/testplan/testplan-form.vue 	modified:   src/views/quality/unqualifiedprocess/examineApproveform.vue 	modified:   src/views/quality/unqualifiedprocess/index.vue 	modified:   src/views/quality/unqualifiedprocess/loaction-form.vue 	modified:   src/views/quality/unqualifiedprocess/unqualifiedprocessform.vue 	modified:   src/views/technology/completeproductstructure/completeproductstructure-form.vue 	modified:   src/views/technology/document/checkStandardTable.vue 	modified:   src/views/technology/document/document-form.vue 	modified:   src/views/technology/document/extendsOperation.vue 	modified:   src/views/technology/document/extendsTestStandard.vue 	modified:   src/views/technology/document/extendsTestStandardParam.vue 	modified:   src/views/technology/document/teststandard.vue 	modified:   src/views/technology/structure/single-structure-form.vue 	modified:   src/views/warehouse/changestock/index.vue 	modified:   src/views/warehouse/check/check-detail.vue 	modified:   src/views/warehouse/pallettransports/ifslocation-form.vue 	modified:   src/views/warehouse/pallettransports/ifsstock-form.vue 	modified:   src/views/warehouse/pallettransports/index.vue 	modified:   src/views/warehouse/returnstock/ifslocation-form.vue 	modified:   src/views/warehouse/returnstock/index.vue 	modified:   src/views/warehouse/returnstock/returnstock-form.vue 	modified:   src/views/warehouse/returnstock/stock-part.vue 	modified:   src/views/warehouse/stock/print-label-form.vue 	modified:   src/views/warehouse/stock/small-print-label-form.vue 	modified:   src/views/warehouse/stock/small-warehousing-label-form.vue 	modified:   src/views/warehouse/stock/stock-table.vue 	modified:   src/views/warehouse/stock/warehousing-label-form.vue 	modified:   src/views/zte/pkgidbind/index.vue

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

diff --git a/src/views/product/workbench/operation-task-pane.vue b/src/views/product/workbench/operation-task-pane.vue
index badea28..4c9c558 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,63 +8,85 @@
     >
     </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-card>
+>
+      <img class="selectedImg" src="/img/workbench/icon_selected.png" />
+      <div class="header">
+        <div>宸ュ崟鍙凤細{{ item.taskNo }}</div>
+        <el-alert
+          center
+          style="width: 80px;height:28px;line-height: 100%;font-size:10px"
+          :title="getTagText(item.planFinishDay)"
+          :type="getTagColor(item.planFinishDay)"
+          effect="dark"
+          :closable="false">
+        </el-alert>
+        <!-- <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>
@@ -78,42 +100,52 @@
   flex-direction: column;
   align-items: center;
 }
+
+.tag{
+width: 80px;
+height: 30px;
+line-height: 30px;
+border-radius:15% ;
+text-align: center;
+font-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;
@@ -204,7 +236,7 @@
 }
 .status-change-div {
   width: 20%;
-  max-width: 100px;
+  max-width: 160px;
 }
 .status-change-div >>> .el-select {
   width: 100%;
@@ -314,7 +346,7 @@
     }
   },
   computed: {
-    ...mapGetters(['permissions'])
+    ...mapGetters(['permissions']),
   },
   created() {
     if (!this.defaultOperationId) {
@@ -334,32 +366,57 @@
     }
   },
   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';
+//     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父涓虹豢鑹�
+//     }
+//   }
+// },
+
+getTagColor(planFinishDay) {
+  const today = new Date();
+  const planDate = new Date(planFinishDay);
+  if (planDate < today) {
+    //return 'rgba( 255,0,0,1)'; // 瓒呮湡涓虹孩鑹�
+    return 'error'; // 瓒呮湡涓虹孩鑹�
+  } else {
+    const timeDiff = planDate.getTime() - today.getTime();
+    const daysDiff = Math.ceil(timeDiff / (1000 * 3600 * 24));
+    if (daysDiff <= 3) {
+      //return 'rgba(255,204,62, 1)';  // 涓存湡涓洪粍鑹� 
+      return 'warning';  // 涓存湡涓洪粍鑹� 
     } 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';
-        }
-      }
+      //return 'rgba(86,219, 25,1)';  // 姝e父涓虹豢鑹�
+      return 'success';  // 姝e父涓虹豢鑹�
     }
-    // 濡傛灉涓嶆槸鍗冲皢鍒版湡鎴栧凡杩囨湡锛岃繑鍥�'red'琛ㄧず宸插埌鏈�
-    return 'blue';
+  }
 },
-    
+
+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) {
@@ -493,16 +550,13 @@
           .then((res) => {
             if (!res.data.data) {
               changeSubmitState(taskId, true).then((res) => {
-                console.log(res)
               })
               getDraftProductOut(taskId).then((response) => {
-                console.log(response)
                 const list = response.data.data || []
                 if (list.length > 0) {
                   this.batchChangeSubmit(list, 0, currItem)
                 } else {
                   changeSubmitState(taskId, false).then((res) => {
-                    console.log(res)
                   })
                   currItem.statusAction = null
                   this.$message.warning('娌℃湁鍙彁浜ょ殑鏁版嵁')
@@ -532,7 +586,6 @@
           .catch((error) => {
             console.log(error)
             changeSubmitState(taskId, false).then((res) => {
-              console.log(res)
             })
           })
       }
@@ -555,7 +608,6 @@
             this.batchChangeSubmit(list, i, currItem)
           } else {
             changeSubmitState(this.taskID, false).then((res) => {
-              console.log(res)
             })
             // 鎵归噺鎻愪氦瀹屾垚锛屽埛鏂版姤宸ラ〉闈㈡暟鎹�
             this.$emit('refreshReport')
@@ -565,7 +617,6 @@
           console.log(error)
           loading.close()
           changeSubmitState(this.taskID, false).then((res) => {
-            console.log(res)
           })
           const errorMsg = '鎶ュ伐鍗曞彿' + list[i].productNo + '锛�'
           this.$message.error(errorMsg + '澶勭悊澶辫触')
@@ -668,7 +719,7 @@
                       break
                     }
                   }
-                  console.log(this.operationTasks)
+                  // console.log(this.operationTasks)
                   // 鑻ュ綋鍓嶅伐鍗曞湪宸ュ崟鍒楄〃鏈鎵惧埌涓斿綋鍓嶅伐鍗曠姸鎬佷负宸插畬鎴愭垨宸插彇娑堟椂锛屽垯灏嗗綋鍓嶅伐鍗曢噸缃负绌哄苟鎶涘嚭浜嬩欢锛屽惁鍒欎笉绠�
                   if (isResetCurrOpertionTaskFlag) {
                     getOperationTaskById(taskId).then((res) => {

--
Gitblit v1.9.3