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