From 04e8e3a312ed1f2d9dc40354ae5847ef9cc11360 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期六, 29 八月 2026 16:22:35 +0800
Subject: [PATCH] fix: 新疆-绿能 1.报工等待时长倒计时 + 报工数量可选 2.报工自动生成产品入库单 + 勾选入库 + 不合格仓库兜底
---
src/views/mes/pro/workorder-center/modules/quick-feedback.vue | 50 ++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 46 insertions(+), 4 deletions(-)
diff --git a/src/views/mes/pro/workorder-center/modules/quick-feedback.vue b/src/views/mes/pro/workorder-center/modules/quick-feedback.vue
index 9df47ce..fc91d88 100644
--- a/src/views/mes/pro/workorder-center/modules/quick-feedback.vue
+++ b/src/views/mes/pro/workorder-center/modules/quick-feedback.vue
@@ -9,10 +9,13 @@
import { message } from 'ant-design-vue';
import { quickCreateFeedback } from '#/api/mes/pro/feedback';
+import { getRouteProcessByRouteAndProcess } from '#/api/mes/pro/route/process';
+import { getTask } from '#/api/mes/pro/task';
import {
loadParamDetails,
paramDetails,
} from '#/views/mes/pro/feedback/param-state';
+import WaitCountdown from '#/views/mes/pro/feedback/modules/wait-countdown.vue';
import ProTaskSelect from '#/views/mes/pro/task/components/select.vue';
defineOptions({ name: 'QuickFeedbackForm' });
@@ -41,9 +44,15 @@
feedbackQuantity: undefined,
remark: '',
};
- // 棰勮浠诲姟鏃跺姞杞藉叾宸ヨ壓鍙傛暟锛涘惁鍒欑瓑寰呴�夋嫨浠诲姟鍚庡啀鍔犺浇
+ waitDuration.value = undefined;
+ needReportQuantity.value = true;
+ waitStartTime.value = undefined;
+ // 棰勮浠诲姟鏃跺姞杞藉叾宸ヨ壓鍙傛暟涓庣瓑寰呴厤缃紱鍚﹀垯绛夊緟閫夋嫨浠诲姟鍚庡啀鍔犺浇
if (props.taskId) {
loadParamDetails(props.taskId);
+ getTask(props.taskId)
+ .then(applyTaskWaitConfig)
+ .catch(() => {});
} else {
paramDetails.value = [];
}
@@ -59,6 +68,9 @@
remark: '',
});
const submitting = ref(false);
+const waitDuration = ref<number>();
+const needReportQuantity = ref<boolean>(true);
+const waitStartTime = ref<string>();
const hasPredefinedTask = computed(() => !!props.taskId);
@@ -77,6 +89,27 @@
selectedTask.value = task;
selectedTaskId.value = task?.id;
loadParamDetails(task?.id);
+ applyTaskWaitConfig(task);
+}
+
+/** 鎸変换鍔″伐搴忓姞杞界瓑寰呮椂闀夸笌鎶ュ伐鏁伴噺瑙勫垯 */
+async function applyTaskWaitConfig(task?: MesProTaskApi.Task) {
+ waitDuration.value = undefined;
+ needReportQuantity.value = true;
+ waitStartTime.value = task?.waitStartTime;
+ if (!task?.routeId || !task?.processId) {
+ return;
+ }
+ try {
+ const routeProcess = await getRouteProcessByRouteAndProcess(
+ task.routeId,
+ task.processId,
+ );
+ waitDuration.value = routeProcess?.waitDuration;
+ needReportQuantity.value = routeProcess?.needReportQuantity ?? true;
+ } catch {
+ // 鍔犺浇澶辫触鎸夐粯璁ゅ鐞嗭紙鏃犻渶鍊掕鏃躲�佹暟閲忓繀濉級
+ }
}
async function handleSubmit() {
@@ -85,7 +118,7 @@
message.warning('璇烽�夋嫨浠诲姟');
return;
}
- if (!formData.value.feedbackQuantity) {
+ if (needReportQuantity.value && !formData.value.feedbackQuantity) {
message.warning('璇疯緭鍏ユ姤宸ユ暟閲�');
return;
}
@@ -93,7 +126,9 @@
try {
await quickCreateFeedback({
taskId,
- feedbackQuantity: formData.value.feedbackQuantity,
+ feedbackQuantity: needReportQuantity.value
+ ? (formData.value.feedbackQuantity ?? 0)
+ : 0,
paramValues: paramDetails.value.map((detail) => ({
detailId: detail.id,
value: detail.paramValue,
@@ -127,7 +162,14 @@
class="!w-full"
/>
</a-form-item>
- <a-form-item label="鏈鎶ュ伐鏁伴噺" required>
+ <a-form-item v-if="waitDuration" label="鎶ュ伐鍊掕鏃�">
+ <WaitCountdown
+ :task-id="selectedTaskId"
+ :wait-duration="waitDuration"
+ :wait-start-time="waitStartTime"
+ />
+ </a-form-item>
+ <a-form-item v-if="needReportQuantity" label="鏈鎶ュ伐鏁伴噺" required>
<a-input-number
v-model:value="formData.feedbackQuantity"
:min="0.01"
--
Gitblit v1.9.3