From 889d8ddf4c13c1b1bdbabd04c2d80b904020151e Mon Sep 17 00:00:00 2001
From: hsy <1029150275@qq.com>
Date: 星期三, 19 八月 2026 12:49:24 +0800
Subject: [PATCH] 生产订单与报工模块改造汇总 (Git Commit 文档) feat(mes-pro): 生产订单及报工模块审批流与批次填报改造 1. 生产订单功能增强 (Work Order)

---
 src/views/mes/pro/task/modules/task-form.vue |   55 ++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 38 insertions(+), 17 deletions(-)

diff --git a/src/views/mes/pro/task/modules/task-form.vue b/src/views/mes/pro/task/modules/task-form.vue
index eb8f737..5b64e26 100644
--- a/src/views/mes/pro/task/modules/task-form.vue
+++ b/src/views/mes/pro/task/modules/task-form.vue
@@ -1,27 +1,30 @@
-<script lang="ts" setup>
+锘�<script lang="ts" setup>
 import type { MesProTaskApi } from '#/api/mes/pro/task';
 
 import { computed, ref } from 'vue';
 
-import { useVbenModal } from '..\..\..\..\..\packages\effects\common-ui\src';
+import { useVbenModal } from '@vben/common-ui';
 
 import { message } from 'ant-design-vue';
 
 import { useVbenForm } from '#/adapter/form';
 import { createTask, getTask, updateTask } from '#/api/mes/pro/task';
+import { getWorkOrder } from '#/api/mes/pro/workorder';
 import { $t } from '#/locales';
 
 import { useTaskFormSchema } from '../data';
 
 const emit = defineEmits(['success']);
 const formData = ref<MesProTaskApi.Task>();
+const workOrderQuantity = ref<number>(); // 璁㈠崟鏁伴噺锛堢敤浜庢彁绀猴級
 const context = ref<{
   colorCode?: string;
   itemId?: number;
   processId?: number;
   routeId?: number;
   workOrderId?: number;
-}>({}); // 鏂板浠诲姟鏃剁殑宸ュ崟 / 宸ュ簭涓婁笅鏂�
+}>({}); // 鏂板浠诲姟鏃剁殑璁㈠崟 / 宸ュ簭涓婁笅鏂�
+const feedbackRole = ref<string>();
 
 const getTitle = computed(() => {
   return formData.value?.id
@@ -67,41 +70,59 @@
   async onOpenChange(isOpen: boolean) {
     if (!isOpen) {
       formData.value = undefined;
+      workOrderQuantity.value = undefined;
       context.value = {};
       return;
     }
-    formApi.setState({ schema: useTaskFormSchema(formApi) });
-    // 鍔犺浇鏁版嵁
     const data = modalApi.getData<{
       colorCode?: string;
       id?: number;
       itemId?: number;
       processId?: number;
+      quantity?: number;
       routeId?: number;
       workOrderId?: number;
     }>();
+
+    let wid: number | undefined;
+
     if (data?.id) {
       modalApi.lock();
       try {
         formData.value = await getTask(data.id);
+        wid = formData.value.workOrderId;
         // 璁剧疆鍒� values
         await formApi.setValues(formData.value);
       } finally {
         modalApi.unlock();
       }
-      return;
+    } else {
+      context.value = {
+        colorCode: data.colorCode,
+        itemId: data.itemId,
+        processId: data.processId,
+        routeId: data.routeId,
+        workOrderId: data.workOrderId,
+      };
+      wid = data.workOrderId;
+      workOrderQuantity.value = data.quantity;
+      await formApi.setValues({
+        colorCode: data.colorCode || '#00AEF3',
+        duration: 1,
+        quantity: data.quantity,
+      });
     }
-    context.value = {
-      colorCode: data.colorCode,
-      itemId: data.itemId,
-      processId: data.processId,
-      routeId: data.routeId,
-      workOrderId: data.workOrderId,
-    };
-    await formApi.setValues({
-      colorCode: data.colorCode || '#00AEF3',
-      duration: 1,
-    });
+
+    if (wid) {
+      try {
+        const wo = await getWorkOrder(wid);
+        feedbackRole.value = wo.feedbackRole;
+      } catch {
+        // ignore
+      }
+    }
+
+    formApi.setState({ schema: useTaskFormSchema(formApi, workOrderQuantity, feedbackRole) });
   },
 });
 </script>

--
Gitblit v1.9.3