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