From 35280c7f8c9aad04507edcb65c058c5724f7c078 Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期六, 29 八月 2026 01:46:19 +0800
Subject: [PATCH] feat(mes): 报工表单只填写报工数量并展示可报工数量,工作台报工支持工艺参数填写
---
src/views/mes/pro/workorder-center/modules/quick-feedback.vue | 60 ++++++++++++++++++++++++++++++++++++------------------------
1 files changed, 36 insertions(+), 24 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 b249fdf..9df47ce 100644
--- a/src/views/mes/pro/workorder-center/modules/quick-feedback.vue
+++ b/src/views/mes/pro/workorder-center/modules/quick-feedback.vue
@@ -9,6 +9,10 @@
import { message } from 'ant-design-vue';
import { quickCreateFeedback } from '#/api/mes/pro/feedback';
+import {
+ loadParamDetails,
+ paramDetails,
+} from '#/views/mes/pro/feedback/param-state';
import ProTaskSelect from '#/views/mes/pro/task/components/select.vue';
defineOptions({ name: 'QuickFeedbackForm' });
@@ -35,10 +39,14 @@
selectedTask.value = undefined;
formData.value = {
feedbackQuantity: undefined,
- qualifiedQuantity: undefined,
- unqualifiedQuantity: undefined,
remark: '',
};
+ // 棰勮浠诲姟鏃跺姞杞藉叾宸ヨ壓鍙傛暟锛涘惁鍒欑瓑寰呴�夋嫨浠诲姟鍚庡啀鍔犺浇
+ if (props.taskId) {
+ loadParamDetails(props.taskId);
+ } else {
+ paramDetails.value = [];
+ }
}
},
});
@@ -48,8 +56,6 @@
const selectedTask = ref<MesProTaskApi.Task>();
const formData = ref({
feedbackQuantity: undefined as number | undefined,
- qualifiedQuantity: undefined as number | undefined,
- unqualifiedQuantity: undefined as number | undefined,
remark: '',
});
const submitting = ref(false);
@@ -70,6 +76,7 @@
function handleTaskChange(task: MesProTaskApi.Task | undefined) {
selectedTask.value = task;
selectedTaskId.value = task?.id;
+ loadParamDetails(task?.id);
}
async function handleSubmit() {
@@ -87,8 +94,10 @@
await quickCreateFeedback({
taskId,
feedbackQuantity: formData.value.feedbackQuantity,
- qualifiedQuantity: formData.value.qualifiedQuantity,
- unqualifiedQuantity: formData.value.unqualifiedQuantity,
+ paramValues: paramDetails.value.map((detail) => ({
+ detailId: detail.id,
+ value: detail.paramValue,
+ })),
remark: formData.value.remark || undefined,
});
message.success('鎶ュ伐鎴愬姛');
@@ -128,24 +137,27 @@
class="!w-full"
/>
</a-form-item>
- <a-form-item label="鍚堟牸鍝佹暟閲�">
- <a-input-number
- v-model:value="formData.qualifiedQuantity"
- :min="0"
- :precision="2"
- placeholder="璇疯緭鍏ュ悎鏍煎搧鏁伴噺"
- class="!w-full"
- />
- </a-form-item>
- <a-form-item label="涓嶈壇鍝佹暟閲�">
- <a-input-number
- v-model:value="formData.unqualifiedQuantity"
- :min="0"
- :precision="2"
- placeholder="璇疯緭鍏ヤ笉鑹搧鏁伴噺"
- class="!w-full"
- />
- </a-form-item>
+ <div v-if="paramDetails.length" class="mb-4">
+ <div class="mb-1 font-medium">宸ヨ壓鍙傛暟</div>
+ <div
+ v-for="detail in paramDetails"
+ :key="detail.id"
+ class="mb-2 flex items-center gap-2"
+ >
+ <span class="w-40 flex-shrink-0 text-right text-sm text-gray-600">
+ <span v-if="detail.required" class="text-red-500">* </span>
+ {{ detail.paramName || detail.paramCode
+ }}{{
+ detail.unitMeasureName ? `锛�${detail.unitMeasureName}锛塦 : ''
+ }}
+ </span>
+ <a-input
+ v-model:value="detail.paramValue"
+ placeholder="璇疯緭鍏ュ弬鏁板��"
+ class="!w-full"
+ />
+ </div>
+ </div>
<a-form-item label="澶囨敞">
<a-textarea
v-model:value="formData.remark"
--
Gitblit v1.9.3