From 9ae715c71e78d4d68b05a91b399b3f6c91ee45e7 Mon Sep 17 00:00:00 2001
From: 86134 <aa>
Date: 星期五, 17 十一月 2023 10:07:36 +0800
Subject: [PATCH] 11
---
src/views/product/workbench/operation-task-pane.vue | 163 +++++++++++--------
src/views/product/workbench/taskinfo-pane.vue | 1
src/views/product/workbench/workstationoperate-form.vue | 1
src/views/product/workbench/index.vue | 260 +++++++++++++++++--------------
4 files changed, 239 insertions(+), 186 deletions(-)
diff --git a/src/views/product/workbench/index.vue b/src/views/product/workbench/index.vue
index 026fcfe..fd3b46e 100644
--- a/src/views/product/workbench/index.vue
+++ b/src/views/product/workbench/index.vue
@@ -256,7 +256,7 @@
>
</div>
</div>
- <div class="start-end-div">
+ <div class="start-end-div" >
<div>
<span
style="margin-left:8px;font-size:12px;line-height:32px;"
@@ -528,35 +528,36 @@
</el-form-item>
</el-form>
</div>
- <div class="task-div-content">
- <div v-if="!isShowNormalTracking" class="task-list-div">
- <operationTaskPane
- ref="operateTaskDiv"
- :workstationId="dutyForm.workstationId"
- :productSn="operateTaskForm.SN"
- :orderNumber="operateTaskForm.orderNumber"
- :spec="operateTaskForm.spec"
- :outBatchNo="operateTaskForm.outBatchNo"
- :mpsNo="operateTaskForm.mpsNo"
- @changeCurrOperateTask="changeCurrOperateTask"
- @refreshReport="refreshWorkReportPageData"
- />
- </div>
- <div v-if="isShowNormalTracking" class="task-list-div">
- <operationTaskTable
- ref="operateTaskTableDiv"
- :workstationId="dutyForm.workstationId"
- :productSn="operateTaskForm.SN"
- :orderNumber="operateTaskForm.orderNumber"
- :spec="operateTaskForm.spec"
- :mpsNo="operateTaskForm.mpsNo"
- @changeCurrOperateTask="changeCurrOperateTask"
- />
- </div>
- </div>
+ <div class="task-div-content" >
+ <div v-if="!isShowNormalTracking" class="task-list-div" >
+ <operationTaskPane
+ ref="operateTaskDiv" :style="{ backgroundColor: taskStatusColor() }"
+ :workstationId="dutyForm.workstationId"
+ :productSn="operateTaskForm.SN"
+ :orderNumber="operateTaskForm.orderNumber"
+ :spec="operateTaskForm.spec"
+ :outBatchNo="operateTaskForm.outBatchNo"
+ :mpsNo="operateTaskForm.mpsNo"
+ @changeCurrOperateTask="changeCurrOperateTask"
+ @refreshReport="refreshWorkReportPageData"
+ />
+ </div>
+ <div v-if="isShowNormalTracking" class="task-list-div" >
+ <operationTaskTable
+ ref="operateTaskTableDiv" :style="{ backgroundColor: taskStatusColor() }"
+ :workstationId="dutyForm.workstationId"
+ :productSn="operateTaskForm.SN"
+ :orderNumber="operateTaskForm.orderNumber"
+ :spec="operateTaskForm.spec"
+ :mpsNo="operateTaskForm.mpsNo"
+ @changeCurrOperateTask="changeCurrOperateTask"
+ />
+ </div>
+
+ </div>
</div>
</div>
- <div :style="{ width: mainMiddleWidth }" v-show="mainMiddleShow">
+ <div :style="{ width: mainMiddleWidth } " v-show="mainMiddleShow">
<div style="height:86px;width:14px;position: absolute;top:50%">
<el-tooltip effect="dark" content="鏀剁缉" placement="left">
<img
@@ -1437,6 +1438,7 @@
box-sizing: border-box;
overflow-y: auto;
margin-bottom: 10px;
+
}
.task-list-div {
@@ -1560,6 +1562,10 @@
},
data() {
return {
+ dutyForm: {},
+ operateTaskForm: {},
+ isShowNormalTracking: false,
+ // taskStatusColor: '',
showBan: false,
dutyCanEdit: false,
saveButton: false,
@@ -1666,96 +1672,9 @@
currItem: 'task'
}
},
- computed: {
- ...mapGetters(['userInfo', 'tagWel', 'permissions'])
- },
- created() {
- document.title = '宸ヤ綔鍙扳�斺�擬ES'
- if (!this.dutyForm.workstationId) {
- const k = localStorage.getItem(storage_key)
- if (k) {
- this.dutyForm.workstationId = parseInt(k)
- }
- }
- this.initOptions()
- this.getSysParam(sysParam.SHOW_STEP_BUSINESS)
- this.getTrackingParam(sysParam.SHOW_TRACKING_TYPE)
- this.timer = setInterval(this.clockTimer, 1000)
- },
- watch: {
- 'dutyForm.workstationId'(val) {
- if (val) {
- localStorage.setItem(storage_key, val)
- }
- // 宸ヤ綔绔欐敼鍙樻椂锛屾暣涓〉闈㈢殑鍔ㄦ�佹暟鎹渶瀹炴椂鍔犺浇銆侀〉闈㈢紦瀛樻暟鎹渶 鍒濆鍖�
- this.initPageVariable()
- this.loadInfoByWorkstation()
- },
- 'dutyForm.startTime'(val, oldval) {
- if (val) {
- this.checkTime()
- } else {
- this.warningShow = false
- }
- },
- 'dutyForm.endTime'(val, oldval) {
- if (val) {
- this.checkTime()
- } else {
- this.warningShow = false
- }
- },
- 'operateTaskForm.orderNumber'(val) {
- /* this.$nextTick(() => {
- this.queryInfoForOrderNumber()
- }) */
- },
- 'operateTaskForm.spec'(val) {
- if (val == '' || val == null) {
- this.SNs = []
- this.operateTaskForm.SN = ''
- } else {
- const that = this
- that.SNs = []
- getProductSnByCustomerNoAndPartName({
- customerOrderNo: this.operateTaskForm.orderNumber,
- partName: val
- }).then((res) => {
- const result = res.data.data
- result.forEach(function(item) {
- const obj = {
- key: item,
- value: item
- }
- that.SNs.push(obj)
- })
- })
- }
- this.$nextTick(() => {
- if (this.partNames.length !== 0) {
- this.refreshOperateTasks()
- }
- })
- },
- 'operateTaskForm.SN'(val) {
- this.$nextTick(() => {
- if (this.SNs.length !== 0) {
- this.refreshOperateTasks()
- }
- })
- },
- 'operateTaskForm.outBatchNo'(val) {
- /* this.$nextTick(() => {
- this.refreshOperateTasks()
- }) */
- },
- 'operateTaskForm.mpsNo'(val) {
- /* this.$nextTick(() => {
- this.refreshOperateTasks()
- }) */
- }
- },
methods: {
+ changeCurrOperateTask() {},
+ refreshWorkReportPageData() {},
refreshOperateTasksByConditions() {
this.$nextTick(() => {
this.refreshOperateTasks()
@@ -2597,6 +2516,113 @@
beforeDestroy() {
clearInterval(this.timer)
}
+ },
+ computed: {
+ ...mapGetters(['userInfo', 'tagWel', 'permissions']),
+
+ taskStatusColor() {
+ return function() {
+ const now = new Date();
+ const threeDaysAgo = new Date(now - 3 * 24 * 60 * 60 * 1000);
+ const oneDayAgo = new Date(now - 24 * 60 * 60 * 1000);
+ const today = new Date(now);
+
+ if (threeDaysAgo <= today && today <= oneDayAgo) {
+ return 'yellow';
+ } else if (today <= threeDaysAgo) {
+ return 'blue';
+ } else {
+ return 'red';
+ }
+ };
}
+ },
+ created() {
+ document.title = '宸ヤ綔鍙扳�斺�擬ES'
+ if (!this.dutyForm.workstationId) {
+ const k = localStorage.getItem(storage_key)
+ if (k) {
+ this.dutyForm.workstationId = parseInt(k)
+ }
+ }
+ this.initOptions()
+ this.getSysParam(sysParam.SHOW_STEP_BUSINESS)
+ this.getTrackingParam(sysParam.SHOW_TRACKING_TYPE)
+ this.timer = setInterval(this.clockTimer, 1000)
+ },
+ watch: {
+ 'dutyForm.workstationId'(val) {
+ if (val) {
+ localStorage.setItem(storage_key, val)
+ }
+ // 宸ヤ綔绔欐敼鍙樻椂锛屾暣涓〉闈㈢殑鍔ㄦ�佹暟鎹渶瀹炴椂鍔犺浇銆侀〉闈㈢紦瀛樻暟鎹渶 鍒濆鍖�
+ this.initPageVariable()
+ this.loadInfoByWorkstation()
+ },
+ 'dutyForm.startTime'(val, oldval) {
+ if (val) {
+ this.checkTime()
+ } else {
+ this.warningShow = false
+ }
+ },
+ 'dutyForm.endTime'(val, oldval) {
+ if (val) {
+ this.checkTime()
+ } else {
+ this.warningShow = false
+ }
+ },
+ 'operateTaskForm.orderNumber'(val) {
+ /* this.$nextTick(() => {
+ this.queryInfoForOrderNumber()
+ }) */
+ },
+ 'operateTaskForm.spec'(val) {
+ if (val == '' || val == null) {
+ this.SNs = []
+ this.operateTaskForm.SN = ''
+ } else {
+ const that = this
+ that.SNs = []
+ getProductSnByCustomerNoAndPartName({
+ customerOrderNo: this.operateTaskForm.orderNumber,
+ partName: val
+ }).then((res) => {
+ const result = res.data.data
+ result.forEach(function(item) {
+ const obj = {
+ key: item,
+ value: item
+ }
+ that.SNs.push(obj)
+ })
+ })
+ }
+ this.$nextTick(() => {
+ if (this.partNames.length !== 0) {
+ this.refreshOperateTasks()
+ }
+ })
+ },
+ 'operateTaskForm.SN'(val) {
+ this.$nextTick(() => {
+ if (this.SNs.length !== 0) {
+ this.refreshOperateTasks()
+ }
+ })
+ },
+ 'operateTaskForm.outBatchNo'(val) {
+ /* this.$nextTick(() => {
+ this.refreshOperateTasks()
+ }) */
+ },
+ 'operateTaskForm.mpsNo'(val) {
+ /* this.$nextTick(() => {
+ this.refreshOperateTasks()
+ }) */
+ }
+ },
+
}
</script>
diff --git a/src/views/product/workbench/operation-task-pane.vue b/src/views/product/workbench/operation-task-pane.vue
index b62149e..50c7b63 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,76 @@
>
</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']"
+>
+ <!-- <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-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>
@@ -96,10 +96,13 @@
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(
@@ -344,6 +347,28 @@
}
},
methods: {
+
+ // setCheckFlag(item) {
+ // this.$nextTick(() => {
+ // this.changeBackgroundColor(item.planFinishDay);
+ // });
+ // },
+ // changeBackgroundColor(dateString) {
+ // const date = new Date(dateString);
+ // const threeDaysAgo = new Date();
+ // threeDaysAgo.setDate(threeDaysAgo.getDate() - 3);
+ // const oneDayAgo = new Date();
+ // oneDayAgo.setDate(oneDayAgo.getDate() - 1);
+
+ // if (date <= threeDaysAgo) {
+ // document.body.style.backgroundColor = "blue";
+ // } else if (date <= oneDayAgo) {
+ // document.body.style.backgroundColor = "yellow";
+ // } else {
+ // document.body.style.backgroundColor = "red";
+ // }
+ // },
+
// 鐐瑰嚮宸ュ崟锛岄�変腑宸ュ崟
setCheckFlag(item) {
if (item.checkFlag) {
diff --git a/src/views/product/workbench/taskinfo-pane.vue b/src/views/product/workbench/taskinfo-pane.vue
index d5b1dd8..5752299 100644
--- a/src/views/product/workbench/taskinfo-pane.vue
+++ b/src/views/product/workbench/taskinfo-pane.vue
@@ -891,6 +891,7 @@
getGenerateSN,
getShiftProductOutByOpIdAndWsId
} from '@/api/product/personboard'
+
import {
getTemplate,
getDocumentJgt,
diff --git a/src/views/product/workbench/workstationoperate-form.vue b/src/views/product/workbench/workstationoperate-form.vue
index 2ded8dd..3c6345d 100644
--- a/src/views/product/workbench/workstationoperate-form.vue
+++ b/src/views/product/workbench/workstationoperate-form.vue
@@ -1,5 +1,6 @@
<template>
<div style="width: 100%;height: 100%"></div>
+
</template>
<style lang="scss" scoped>
.ws-header {
--
Gitblit v1.9.3