| | |
| | | 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'; |
| | | |
| | | /** 会员列表 */ |
| | |
| | | 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(); |
| | | } |
| | | } |
| | | |
| | | /** 等级字典映射:根据会员类型显示对应的等级名称 */ |
| | |
| | | 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, |