fix: 全部页面 confirm() 替换为 ConfirmDialog 组件 — 9个页面统一回调模式

This commit is contained in:
logan committed 2026-05-27 21:25:14 +08:00
1 parent 41dab3deab
commit 7f6a4bb6df
9 files changed
+153 -62

No files matched your search

+16 -4
View File
@@ -8,6 +8,7 @@ import { instanceGroupApi, type InstanceGroup } from '@/api/instanceGroup';
import { instanceApi } from '@/api/instance';
import { userApi } from '@/api/user';
import { useActionPermission } from '@/hooks/useAuth';
import { ConfirmDialog } from '@/components/ConfirmDialog';
/* ───────── Constants ───────── */
@@ -109,6 +110,7 @@ export default function InstanceGroupPage() {
const [showCreateModal, setShowCreateModal] = useState(false);
const [showEditModal, setShowEditModal] = useState(false);
const [showUserModal, setShowUserModal] = useState(false);
const [deleteConfirm, setDeleteConfirm] = useState<{msg: string; onConfirm: () => void} | null>(null);
const canManage = useActionPermission('instance-group.manage');
// Form state — shared by create & edit
@@ -215,10 +217,11 @@ export default function InstanceGroupPage() {
/* ── Delete ── */
const handleDelete = async (id: number) => {
if (!confirm('确定删除该权限组?')) return;
await instanceGroupApi.delete(id);
if (selectedId === id) setSelectedId(null);
fetchGroups();
setDeleteConfirm({msg: '确定删除该权限组?', onConfirm: async () => {
await instanceGroupApi.delete(id);
if (selectedId === id) setSelectedId(null);
fetchGroups();
}});
};
/* ── Assign Users ── */
@@ -439,6 +442,15 @@ export default function InstanceGroupPage() {
<FormModal mode="create" />
<FormModal mode="edit" />
<ConfirmDialog
open={!!deleteConfirm}
title={deleteConfirm?.msg || '确认操作'}
variant="danger"
confirmText="确定"
onConfirm={() => { deleteConfirm?.onConfirm(); }}
onCancel={() => setDeleteConfirm(null)}
/>
{/* User Modal */}
{showUserModal && (
<div className="fixed inset-0 z-[100] flex items-start justify-center pt-[10vh] bg-black/60 backdrop-blur-sm">