From 66a5fe964fb105cda88346811619d1bc12d91748 Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期二, 25 八月 2026 16:30:36 +0800
Subject: [PATCH] feat(mes): 设计项目列表新增「审核文件」按钮,按文件审核状态显隐「提交审批」

---
 src/api/mes/pd/project/index.ts           |    2 ++
 src/views/mes/pd/project/index.vue        |   22 +++++++++++++++++++++-
 src/views/mes/pd/project/detail/index.vue |    5 ++++-
 3 files changed, 27 insertions(+), 2 deletions(-)

diff --git a/src/api/mes/pd/project/index.ts b/src/api/mes/pd/project/index.ts
index e6841ce..1e927d5 100644
--- a/src/api/mes/pd/project/index.ts
+++ b/src/api/mes/pd/project/index.ts
@@ -34,6 +34,8 @@
     createTime?: number;
     /** BPM 娴佺▼瀹炰緥缂栧彿 */
     processInstanceId?: string;
+    /** 寰呭鏍告枃浠舵暟锛坅uditStatus=0 鐨勫鏍歌褰曟暟锛� */
+    pendingAuditCount?: number;
   }
 
   export interface PageParams extends PageParam {
diff --git a/src/views/mes/pd/project/detail/index.vue b/src/views/mes/pd/project/detail/index.vue
index 97f7f8b..f38c05d 100644
--- a/src/views/mes/pd/project/detail/index.vue
+++ b/src/views/mes/pd/project/detail/index.vue
@@ -86,7 +86,10 @@
   loading.value = true;
   try {
     project.value = await getPdProject(projectId.value);
-    if (isPendingUpload.value) {
+    if (route.query.tab === 'audit') {
+      // 浠庡垪琛ㄩ〉銆屽鏍告枃浠躲�嶆寜閽繘鍏ワ紝鐩存帴瀹氫綅鍒拌祫鏂欏鏍� Tab
+      activeTab.value = 'audit';
+    } else if (isPendingUpload.value) {
       activeTab.value = 'material';
     } else if (isPendingAudit.value) {
       activeTab.value = 'audit';
diff --git a/src/views/mes/pd/project/index.vue b/src/views/mes/pd/project/index.vue
index 6727d6d..05c74ce 100644
--- a/src/views/mes/pd/project/index.vue
+++ b/src/views/mes/pd/project/index.vue
@@ -100,6 +100,15 @@
   }
 }
 
+/** 瀹℃牳鏂囦欢 - 璺宠浆璇︽儏椤佃祫鏂欏鏍� Tab */
+function handleAuditFile(row: MesPdProjectApi.Project) {
+  router.push({
+    name: 'MesPdProjectDetail',
+    params: { id: row.id },
+    query: { tab: 'audit' },
+  });
+}
+
 /** 鏌ョ湅瀹℃壒璇︽儏 */
 function handleProcessDetail(row: MesPdProjectApi.Project) {
   if (!row.processInstanceId) {
@@ -223,10 +232,21 @@
               onClick: () => handleDetail(row),
             },
             {
+              label: '瀹℃牳鏂囦欢',
+              type: 'link',
+              auth: ['mes:pd-project:update'],
+              ifShow:
+                row.status === MesPdProjectStatusEnum.PENDING_AUDIT &&
+                (row.pendingAuditCount ?? 0) > 0,
+              onClick: handleAuditFile.bind(null, row),
+            },
+            {
               label: '鎻愪氦瀹℃壒',
               type: 'link',
               auth: ['mes:pd-project:update'],
-              ifShow: row.status === MesPdProjectStatusEnum.PENDING_AUDIT,
+              ifShow:
+                row.status === MesPdProjectStatusEnum.PENDING_AUDIT &&
+                (row.pendingAuditCount ?? 0) === 0,
               onClick: handleSubmit.bind(null, row),
             },
             {

--
Gitblit v1.9.3