fix: 批量删除用户改用 ConfirmDialog 替代浏览器原生 confirm()
- handleBatchAction 删除分支改为 setDeleteConfirm 弹 ConfirmDialog - 确认后执行删除,取消则关闭弹框
This commit is contained in:
1 parent
6a53eb8bdf
commit
c5270f82c1
1 file changed
+14
-4
@@ -216,7 +216,20 @@ export default function UsersPage() {
|
||||
const handleBatchAction = async (action: string) => {
|
||||
const ids = Array.from(selectedIds);
|
||||
if (ids.length === 0) return;
|
||||
if (action === 'delete' && !confirm(`确定删除选中的 ${ids.length} 个用户?此操作不可恢复。`)) return;
|
||||
if (action === 'delete') {
|
||||
setDeleteConfirm({
|
||||
msg: `确定删除选中的 ${ids.length} 个用户?此操作不可恢复。`,
|
||||
onConfirm: async () => {
|
||||
try {
|
||||
await Promise.all(ids.map(id => userApi.delete(id)));
|
||||
toast('success', `已删除 ${ids.length} 个用户`);
|
||||
setSelectedIds(new Set());
|
||||
fetchUsers();
|
||||
} catch { toast('error', '批量删除失败'); }
|
||||
},
|
||||
});
|
||||
return;
|
||||
}
|
||||
try {
|
||||
if (action === 'enable') {
|
||||
await Promise.all(ids.map(id => userApi.update(id, { is_active: true })));
|
||||
@@ -224,9 +237,6 @@ export default function UsersPage() {
|
||||
} else if (action === 'disable') {
|
||||
await Promise.all(ids.map(id => userApi.update(id, { is_active: false })));
|
||||
toast('success', `已禁用 ${ids.length} 个用户`);
|
||||
} else if (action === 'delete') {
|
||||
await Promise.all(ids.map(id => userApi.delete(id)));
|
||||
toast('success', `已删除 ${ids.length} 个用户`);
|
||||
}
|
||||
setSelectedIds(new Set());
|
||||
fetchUsers();
|
||||
|
||||
Reference in new issue
Block a user