From cd8b52bdf89a4d1101f72e0ece9f4df22a3d3f7a Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 15 十月 2026 16:03:32 +0800
Subject: [PATCH] feat(mdm): 物料列表隐藏辅单位与销售价列

---
 src/views/mes/pro/workorder-center/index.vue |   65 ++++++++++++--------------------
 1 files changed, 25 insertions(+), 40 deletions(-)

diff --git a/src/views/mes/pro/workorder-center/index.vue b/src/views/mes/pro/workorder-center/index.vue
index b90ebb8..c8f8f0a 100644
--- a/src/views/mes/pro/workorder-center/index.vue
+++ b/src/views/mes/pro/workorder-center/index.vue
@@ -1,6 +1,6 @@
 <script lang="ts" setup>
 import type { VxeTableGridOptions } from '#/adapter/vxe-table';
-import type { MesProWorkOrderApi, TaskInfo } from '#/api/mes/pro/workorder';
+import type { MesProWorkOrderApi, TaskInfo, WorkOrderProgress } from '#/api/mes/pro/workorder';
 
 import { ref } from 'vue';
 import { useRouter } from 'vue-router';
@@ -16,17 +16,24 @@
   getWorkOrderProgress,
   checkAndAutoFinishWorkOrder,
 } from '#/api/mes/pro/workorder';
-import { previewAutoGenerate, autoGenerateTasks } from '#/api/mes/pro/task';
 
+import ArchiveDetail from '#/views/mes/pd/archive/modules/detail.vue';
 import { useGridColumns, useGridFormSchema, useTaskGridColumns } from './data';
 import QuickFeedbackForm from './modules/quick-feedback.vue';
-import SchedulePreviewModal from './modules/schedule-preview.vue';
+import AutoSchedule from '../task/modules/auto-schedule.vue';
 
 defineOptions({ name: 'WorkorderCenter' });
+const archiveVisible = ref(false);
+const archiveProductCode = ref('');
+
+function handleArchive(row: MesProWorkOrderApi.WorkOrder) {
+  archiveProductCode.value = row.productCode ?? '';
+  archiveVisible.value = true;
+}
 
 const router = useRouter();
 
-const progressData = ref<MesProWorkOrderApi.WorkOrderProgress | null>(null);
+const progressData = ref<WorkOrderProgress | null>(null);
 const activeProcessKeys = ref<string[]>([]);
 const expandedRowId = ref<number | null>(null);
 
@@ -35,8 +42,8 @@
   destroyOnClose: true,
 });
 
-const [SchedulePreviewModal, schedulePreviewModalApi] = useVbenModal({
-  connectedComponent: SchedulePreviewModal,
+const [SchedulePreviewModalWrap, schedulePreviewModalApi] = useVbenModal({
+  connectedComponent: AutoSchedule,
   destroyOnClose: true,
 });
 
@@ -105,27 +112,9 @@
     .open();
 }
 
-/** 涓�閿帓浜ч瑙� */
-async function handleSchedulePreview(row: MesProWorkOrderApi.WorkOrder) {
-  try {
-    const preview = await previewAutoGenerate({ workOrderId: row.id! });
-    schedulePreviewModalApi
-      .setData({ workOrder: row, preview })
-      .open();
-  } catch {
-    message.error('鑾峰彇鎺掍骇棰勮澶辫触');
-  }
-}
-
-/** 鎵ц涓�閿帓浜� */
-async function handleScheduleExecute(row: MesProWorkOrderApi.WorkOrder) {
-  try {
-    const result = await autoGenerateTasks({ workOrderId: row.id! });
-    message.success(`鎺掍骇鎴愬姛锛岀敓鎴� ${result.taskIds?.length || 0} 涓换鍔);
-    handleRefresh();
-  } catch {
-    message.error('鎺掍骇澶辫触');
-  }
+/** 涓庣敓浜ф帓浜у叡鐢ㄦ牎楠屻�侀瑙堝拰鎵ц娴佺▼銆� */
+function handleSchedulePreview(row: MesProWorkOrderApi.WorkOrder) {
+  schedulePreviewModalApi.setData({ workOrderIds: [row.id!] }).open();
 }
 
 const [Grid, gridApi] = useVbenVxeGrid({
@@ -164,7 +153,7 @@
 <template>
   <Page auto-content-height>
     <QuickFeedbackModal @success="handleFeedbackSuccess" />
-    <SchedulePreviewModal @success="handleRefresh" />
+    <SchedulePreviewModalWrap @success="handleRefresh" />
 
     <Grid table-title="宸ュ崟涓績">
       <template #toolbar-tools>
@@ -191,21 +180,16 @@
         <TableAction
           :actions="[
             {
-              label: '鎺掍骇棰勮',
-              type: 'link',
-              auth: ['mes:pro-task:create'],
-              ifShow: row.quantityScheduled < row.quantity,
-              onClick: handleSchedulePreview.bind(null, row),
-            },
-            {
               label: '涓�閿帓浜�',
               type: 'link',
               auth: ['mes:pro-task:create'],
-              ifShow: row.quantityScheduled < row.quantity,
-              popConfirm: {
-                title: '纭涓�閿帓浜э紵灏嗘寜鐓у伐鑹鸿矾绾胯嚜鍔ㄧ敓鎴愪换鍔°��',
-                confirm: handleScheduleExecute.bind(null, row),
-              },
+              ifShow: (row.quantityScheduled ?? 0) < (row.quantity ?? 0),
+              onClick: handleSchedulePreview.bind(null, row),
+            },
+            {
+              label: '褰掓。',
+              type: 'link',
+              onClick: () => handleArchive(row),
             },
           ]"
         />
@@ -309,5 +293,6 @@
         </Collapse.Panel>
       </Collapse>
     </Card>
+    <ArchiveDetail :visible="archiveVisible" :product-code="archiveProductCode" @update:visible="archiveVisible = $event" />
   </Page>
 </template>

--
Gitblit v1.9.3