云
2026-09-29 06f814c1275892783291d4b26b3271d5c2b33ffb
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(`归档成功,已生成档案 ${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,