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