import Checkbox from "@mui/material/Checkbox"; import Drawer from "@mui/material/Drawer"; import TextField from "@mui/material/TextField"; import { Button } from "@/shared/ui/Button.jsx"; export function RoleFormDrawer({ abilities, editingRole, form, onClose, onSubmit, onTogglePermissionGroup, onTogglePermission, open, permissionGroups, setForm }) { return ( {editingRole ? "编辑角色" : "新增角色"} 基础信息 setForm({ ...form, name: event.target.value })} /> setForm({ ...form, code: event.target.value })} /> setForm({ ...form, description: event.target.value })} /> {abilities.canLoadPermissions ? ( 权限范围 {permissionGroups.map((group) => ( ))} ) : null} 取消 提交 ); } function PermissionMenuGroup({ abilities, group, onTogglePermission, onTogglePermissionGroup, permissionIds }) { const groupPermissionIds = group.items.map((permission) => permission.id); const selectedCount = groupPermissionIds.filter((permissionId) => permissionIds.includes(permissionId)).length; const allSelected = selectedCount === groupPermissionIds.length; const partiallySelected = selectedCount > 0 && !allSelected; return ( {group.title} {selectedCount}/{groupPermissionIds.length} onTogglePermissionGroup(groupPermissionIds, event.target.checked)} size="small" /> 全选 {group.items.map((permission) => ( onTogglePermission(permission.id, event.target.checked)} size="small" /> {permission.name} ))} ); }