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/ums/member/index.vue |   37 +++++++++++++++++++++++++++++++++++--
 1 files changed, 35 insertions(+), 2 deletions(-)

diff --git a/src/views/ums/member/index.vue b/src/views/ums/member/index.vue
index aebb821..bee2433 100644
--- a/src/views/ums/member/index.vue
+++ b/src/views/ums/member/index.vue
@@ -13,9 +13,18 @@
 import { getDictOptions } from '@vben/hooks';
 
 import { ACTION_ICON, TableAction, useVbenVxeGrid } from '#/adapter/vxe-table';
-import { deleteMember, getMemberPage } from '#/api/ums/member';
+import {
+  archiveMember,
+  deleteMember,
+  getMemberPage,
+} from '#/api/ums/member';
 
-import { MemberType, useGridColumns, useGridFormSchema } from './data';
+import {
+  MemberStatus,
+  MemberType,
+  useGridColumns,
+  useGridFormSchema,
+} from './data';
 import Form from './modules/form.vue';
 
 /** 浼氬憳鍒楄〃 */
@@ -64,6 +73,18 @@
 const checkedIds = ref<number[]>([]);
 function handleRowCheckboxChange({ records }: { records: UmsMemberApi.Member[] }) {
   checkedIds.value = records.map((item) => item.id!);
+}
+
+/** 褰掓。鍒版。妗堢鐞嗭紙浠呮甯哥姸鎬佷細鍛樺彲褰掓。锛� */
+async function handleArchive(row: UmsMemberApi.Member) {
+  const hideLoading = message.loading({ content: '褰掓。涓�...', duration: 0 });
+  try {
+    const archiveNo = await archiveMember(row.id!);
+    message.success(`褰掓。鎴愬姛锛屽凡鐢熸垚妗f ${archiveNo}`);
+    handleRefresh();
+  } finally {
+    hideLoading();
+  }
 }
 
 /** 绛夌骇瀛楀吀鏄犲皠锛氭牴鎹細鍛樼被鍨嬫樉绀哄搴旂殑绛夌骇鍚嶇О */
@@ -165,6 +186,18 @@
               onClick: handleEdit.bind(null, row),
             },
             {
+              label: '褰掓。',
+              type: 'link',
+              icon: ACTION_ICON.UPLOAD,
+              auth: ['ums:member:archive'],
+              ifShow: () =>
+                row.status === MemberStatus.NORMAL && !row.archiveDocumentId,
+              popConfirm: {
+                title: `纭褰掓。浼氬憳 ${row.name} 鍚楋紵褰掓。鍚庡皢鍦ㄦ。妗堢鐞嗙敓鎴愬搴旀。妗坄,
+                confirm: handleArchive.bind(null, row),
+              },
+            },
+            {
               label: '鍒犻櫎',
               type: 'link',
               danger: true,

--
Gitblit v1.9.3