import { createFileRoute } from "@tanstack/react-router"; import { ListPlus, Plus } from "lucide-react"; import { Button } from "@/components/ui/button"; import { DataTable } from "@/components/data-table"; import { useFetchList } from "./-hooks/useFetchList"; import { useState } from "react"; import { EditUserDialog } from "./-components/EditUserDialog"; import { BatchCreateUserDialog } from "./-components/BatchCreateUserDialog"; import { CancelUserConfirmDialog } from "./-components/CancelUserConfirmDialog"; import { Badge } from "@/components/ui/badge"; import { Pagination } from "@/components/pagination"; import { ResetUserPasswordDialog } from "@/components/reset-user-password-dialog"; import { useUserStatusActions } from "@/hooks/use-user-status-actions"; export const Route = createFileRoute("/admin/user/")({ component: RouteComponent, }); export function useColumns({ handleCancelUser, handleEditUser, handleResetUserPassword, handleEnable, handleDisable, }: any) { return [ { accessorKey: "username", header: "用户名", cell: ({ row }: any) =>
{row.getValue("username")}
, }, { accessorKey: "realName", header: "姓名", cell: ({ row }: any) =>
{row.getValue("realName")}
, }, { accessorKey: "enabled", header: "启用状态", cell: ({ row }: any) => Number(row.getValue("status")) === 3 ? ( - ) : row.getValue("enabled") ? ( 启用 ) : ( 禁用 ), }, { accessorKey: "status", header: "状态", cell: ({ row }: any) => (
{row.getValue("status") === 1 ? ( 未激活 ) : row.getValue("status") === 2 ? ( 已激活 ) : ( 已注销 )}
), }, { accessorKey: "createTime", header: "创建日期", cell: ({ row }: any) =>
{row.getValue("createTime")}
, }, { id: "actions", enableHiding: false, header: "操作", cell: ({ row }: any) => { if (row.original.parentId === 0) { return null; } const record = row.original; return (
{Number(record.status) !== 3 && record.enabled && ( )} {Number(record.status) !== 3 && !record.enabled && ( )} {Number(record.status) !== 3 && ( )}
); }, }, ]; } function RouteComponent() { const [currentEntity, setCurrentEntity] = useState(null); // 批量创建用户 const [openBatchCreateUserDialog, setOpenBatchCreateUserDialog] = useState(false); // 修改用户 const [openEditUserDialog, setOpenEditUserDialog] = useState(false); const handleEditUser = (record?: any) => { setCurrentEntity(record); setOpenEditUserDialog(true); }; // 重置用户密码 const [openResetUserPasswordDialog, setOpenResetUserPasswordDialog] = useState(false); const handleResetUserPassword = (record?: any) => { setCurrentEntity(record); setOpenResetUserPasswordDialog(true); }; // 注销用户 const [openCancelUserConfirmDialog, setOpenCancelUserConfirmDialog] = useState(false); const handleCancelUser = (record?: any) => { setCurrentEntity(record); setOpenCancelUserConfirmDialog(true); }; // 启用/禁用(禁用走二次确认) const { enable, disable } = useUserStatusActions({ onSuccess: () => query?.refetch(), }); const handleEnable = (record: any) => { enable(record.id); }; const handleDisable = (record: any) => { disable(record.id); }; const { table, query } = useFetchList(() => useColumns({ handleCancelUser, handleEditUser, handleResetUserPassword, handleEnable, handleDisable, }), ); return ( <>
用户管理
管理单位用户信息
); }