From 452e5c5e9a340367c8fdb14b0bdecc96dcb29491 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期三, 19 八月 2026 11:01:28 +0800
Subject: [PATCH] fix(router): 更新一袋一码首页路由标题

---
 src/views/mes/pd/project/index.vue |   53 ++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 50 insertions(+), 3 deletions(-)

diff --git a/src/views/mes/pd/project/index.vue b/src/views/mes/pd/project/index.vue
index 24516e1..6727d6d 100644
--- a/src/views/mes/pd/project/index.vue
+++ b/src/views/mes/pd/project/index.vue
@@ -17,6 +17,7 @@
 
   deletePdProject,
   exportPdProject,
+  getPdProjectApproveProcessList,
   getPdProjectPage,
   publishPdProject,
 
@@ -26,6 +27,7 @@
 import { useGridColumns, useGridFormSchema } from './data';
 import CreateForm from './modules/create-form.vue';
 import Form from './modules/form.vue';
+import ProcessSelectModal from './modules/process-select-modal.vue';
 
 const router = useRouter();
 
@@ -36,6 +38,11 @@
 
 const [FormModal, formModalApi] = useVbenModal({
   connectedComponent: Form,
+  destroyOnClose: true,
+});
+
+const [ProcessModal, processModalApi] = useVbenModal({
+  connectedComponent: ProcessSelectModal,
   destroyOnClose: true,
 });
 
@@ -71,6 +78,38 @@
   } finally {
     hideLoading();
   }
+}
+
+/** 鎻愪氦瀹℃壒 - 鍏堣幏鍙栨祦绋嬪垪琛� */
+async function handleSubmit(row: MesPdProjectApi.Project) {
+  const hideLoading = message.loading({
+    content: '鑾峰彇瀹℃壒娴佺▼...',
+    duration: 0,
+  });
+  try {
+    const processList = await getPdProjectApproveProcessList();
+    hideLoading();
+    if (!processList || processList.length === 0) {
+      message.warning('鏆傛棤鍙敤瀹℃壒娴佺▼锛岃鍏堥厤缃� BPM 娴佺▼');
+      return;
+    }
+    // 鎵撳紑娴佺▼閫夋嫨寮圭獥
+    processModalApi.setData({ id: row.id, processList }).open();
+  } catch {
+    hideLoading();
+  }
+}
+
+/** 鏌ョ湅瀹℃壒璇︽儏 */
+function handleProcessDetail(row: MesPdProjectApi.Project) {
+  if (!row.processInstanceId) {
+    message.warning('璇ラ」鐩皻鏈彁浜ゅ鎵�');
+    return;
+  }
+  router.push({
+    name: 'BpmProcessInstanceDetail',
+    query: { id: row.processInstanceId },
+  });
 }
 
 async function handleArchive(row: MesPdProjectApi.Project) {
@@ -137,6 +176,7 @@
   <Page auto-content-height>
     <CreateFormModal @success="handleCreateSuccess" />
     <FormModal @success="handleRefresh" />
+    <ProcessModal @success="handleRefresh" />
 
     <Grid table-title="璁捐浠诲姟">
       <template #toolbar-tools>
@@ -183,11 +223,18 @@
               onClick: () => handleDetail(row),
             },
             {
-              label: '瀹℃牳',
+              label: '鎻愪氦瀹℃壒',
               type: 'link',
-              auth: ['mes:pd-project:audit'],
+              auth: ['mes:pd-project:update'],
               ifShow: row.status === MesPdProjectStatusEnum.PENDING_AUDIT,
-              onClick: () => handleDetail(row),
+              onClick: handleSubmit.bind(null, row),
+            },
+            {
+              label: '鏌ョ湅瀹℃壒',
+              type: 'link',
+              auth: ['mes:pd-project:update'],
+              ifShow: row.status === MesPdProjectStatusEnum.APPROVING,
+              onClick: handleProcessDetail.bind(null, row),
             },
             {
               label: '褰掓。',

--
Gitblit v1.9.3