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">*&nbsp;</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