feat(admin): 报读记录操作列补归档按钮
active 记录操作列原本恒为空(仅 archived 显示永久删除)。 新增归档操作: 调用 DELETE /archive/enrollments/:id(权限 student:edit), 确认弹窗提示会联动花名册移出, 归档后显示删除按钮。
This commit is contained in:
@@ -70,6 +70,10 @@ export const EnrollmentsTab: React.FC<TabProps & { data: EnrollmentRecord[] }> =
|
||||
async (id: number) => api.delete(`/archive/enrollments/${id}/permanent`),
|
||||
{ invalidate: [['archive', studentId]] },
|
||||
);
|
||||
const archiveEnrollmentMutation = useApiMutation(
|
||||
async (id: number) => api.delete(`/archive/enrollments/${id}`),
|
||||
{ invalidate: [['archive', studentId]] },
|
||||
);
|
||||
|
||||
const {
|
||||
data: classes = [],
|
||||
@@ -181,6 +185,23 @@ export const EnrollmentsTab: React.FC<TabProps & { data: EnrollmentRecord[] }> =
|
||||
}
|
||||
};
|
||||
|
||||
const handleArchive = (record: EnrollmentRecord) => {
|
||||
modal.confirm({
|
||||
title: `归档报读记录(${formatEnrollmentDisplayName(record)})?`,
|
||||
content: '归档后该生将从对应班级花名册移出(若无其他在读报读),报读记录保留可查。',
|
||||
okText: '归档',
|
||||
cancelText: '取消',
|
||||
onOk: async () => {
|
||||
try {
|
||||
await archiveEnrollmentMutation.mutateAsync(record.id);
|
||||
message.success('已归档');
|
||||
} catch {
|
||||
// 错误提示由 useApiMutation 统一处理
|
||||
}
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
const handlePurge = (record: EnrollmentRecord) => {
|
||||
modal.confirm({
|
||||
title: `永久删除报读记录(${formatEnrollmentDisplayName(record)})?`,
|
||||
@@ -303,9 +324,15 @@ export const EnrollmentsTab: React.FC<TabProps & { data: EnrollmentRecord[] }> =
|
||||
{
|
||||
title: '操作',
|
||||
render: (_: unknown, r: EnrollmentRecord) =>
|
||||
r.status === 'archived' && canPurgeArchive ? (
|
||||
<Button size="small" danger type="link" onClick={() => handlePurge(r)}>
|
||||
删除
|
||||
r.status === 'archived' ? (
|
||||
canPurgeArchive && (
|
||||
<Button size="small" danger type="link" onClick={() => handlePurge(r)}>
|
||||
删除
|
||||
</Button>
|
||||
)
|
||||
) : hasPermission('student:edit') ? (
|
||||
<Button size="small" type="link" onClick={() => handleArchive(r)}>
|
||||
归档
|
||||
</Button>
|
||||
) : null,
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user