import AuthenticatedLayout from '@/Layouts/AuthenticatedLayout'; import { Head, Link, router } from '@inertiajs/react'; import { Shield, Plus, Pencil, Trash2, Users } from 'lucide-react'; import { Button } from '@/Components/ui/button'; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from "@/Components/ui/table"; import { format } from 'date-fns'; import { toast } from 'sonner'; interface Role { id: number; name: string; users_count: number; permissions_count: number; created_at: string; } interface Props { roles: Role[]; } export default function RoleIndex({ roles }: Props) { const handleDelete = (id: number, name: string) => { if (confirm(`確定要刪除角色「${name}」嗎?此操作無法復原。`)) { router.delete(route('roles.destroy', id), { onSuccess: () => toast.success('角色已刪除'), }); } }; const translateRoleName = (name: string) => { const map: Record = { 'super-admin': '超級管理員', 'admin': '管理員', 'warehouse-manager': '倉庫主管', 'purchaser': '採購人員', 'viewer': '檢視者', }; return map[name] || name; } return (

角色與權限

設定系統角色與功能存取權限

角色名稱 代號 權限數量 使用者人數 建立時間 操作 {roles.map((role) => (
{translateRoleName(role.name)}
{role.name} {role.permissions_count} 項權限
{role.users_count}
{format(new Date(role.created_at), 'yyyy/MM/dd')} {role.name !== 'super-admin' && (
)}
))}
); }