From 06f814c1275892783291d4b26b3271d5c2b33ffb Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期二, 29 九月 2026 14:18:09 +0800
Subject: [PATCH] feat(archive): 添加档案管理模块及相关功能

---
 src/views/research/application/index.vue |   26 ++++++++++++++++++++++++++
 1 files changed, 26 insertions(+), 0 deletions(-)

diff --git a/src/views/research/application/index.vue b/src/views/research/application/index.vue
index b66ce43..b7828c1 100644
--- a/src/views/research/application/index.vue
+++ b/src/views/research/application/index.vue
@@ -12,6 +12,7 @@
 
 import { ACTION_ICON, TableAction, useVbenVxeGrid } from '#/adapter/vxe-table';
 import {
+  archiveApplication,
   deleteApplication,
   getApplicationApproveProcessList,
   getApplicationPage,
@@ -142,6 +143,18 @@
     name: 'BpmProcessInstanceDetail',
     query: { id: row.processInstanceId },
   });
+}
+
+/** 褰掓。鍒版。妗堢鐞嗭紙浠呭凡绔嬮」鍙綊妗o級 */
+async function handleArchive(row: ResearchApplicationApi.Application) {
+  const hideLoading = message.loading({ content: '褰掓。涓�...', duration: 0 });
+  try {
+    const archiveNo = await archiveApplication(row.id!);
+    message.success(`褰掓。鎴愬姛锛屽凡鐢熸垚妗f ${archiveNo}`);
+    handleRefresh();
+  } finally {
+    hideLoading();
+  }
 }
 
 const checkedIds = ref<number[]>([]);
@@ -284,6 +297,19 @@
               onClick: handlePublishNotice.bind(null, row),
             },
             {
+              label: '褰掓。',
+              type: 'link',
+              icon: ACTION_ICON.UPLOAD,
+              auth: ['research:application:archive'],
+              ifShow: () =>
+                row.status === ApplicationStatus.APPROVED &&
+                !row.archiveDocumentId,
+              popConfirm: {
+                title: `纭褰掓。璇鹃 ${row.researchNo || row.no} 鍚楋紵褰掓。鍚庡皢鍦ㄦ。妗堢鐞嗙敓鎴愬搴旀。妗坄,
+                confirm: handleArchive.bind(null, row),
+              },
+            },
+            {
               label: '鏌ョ湅瀹℃壒',
               type: 'link',
               icon: ACTION_ICON.VIEW,

--
Gitblit v1.9.3