import { useEffect, useState } from "react"; import { Button } from "../../components/ui/button"; import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, } from "../../components/ui/dialog"; import type { UserSummary } from "../../api/users"; export interface UserRoleDialogProps { open: boolean; onOpenChange: (open: boolean) => void; user: UserSummary | null; roleOptions: Array<{ code: string; label: string }>; onSubmit: (roles: string[]) => void; isPending: boolean; } const ROLE_PRESETS = [ { key: "owner", label: "老板", roles: ["ceo"] }, { key: "admin", label: "管理员", roles: ["admin"] }, { key: "employee", label: "员工", roles: ["employee"] }, { key: "manager", label: "主管", roles: ["manager"] }, ]; export function UserRoleDialog({ open, onOpenChange, user, roleOptions, onSubmit, isPending, }: UserRoleDialogProps) { const [roleDraft, setRoleDraft] = useState>(() => new Set()); useEffect(() => { if (user) { setRoleDraft(new Set(user.roleCodes)); } else { setRoleDraft(new Set()); } }, [user]); function handleClose() { onOpenChange(false); } return ( { if (!nextOpen) { handleClose(); } }} > 设置角色 当前用户:{user?.employeeNo} / {user?.name}
{ROLE_PRESETS.map((preset) => ( ))}
{roleOptions.map((item) => ( ))}
); }