import { PlusOutlined } from '@ant-design/icons'; import { ActionType, ProColumns, ProTable, ModalForm, ProFormText, ProFormSelect } from '@ant-design/pro-components'; import { Button, message, Popconfirm, Switch } from 'antd'; import { useRef, useState } from 'react'; import { listUsers, createUser, updateUser, deleteUser, updateUserStatus, listRoles } from '@/services/api'; const UsersPage: React.FC = () => { const actionRef = useRef(); const [createOpen, setCreateOpen] = useState(false); const [editOpen, setEditOpen] = useState(false); const [currentRow, setCurrentRow] = useState(null); const [roles, setRoles] = useState([]); const fetchRoles = async () => { const res = await listRoles({ page: 1, pageSize: 100 }); if (res?.code === 0) { setRoles(res.data?.list?.map((r: any) => ({ label: r.roleName, value: r.roleId })) || []); } }; const columns: ProColumns[] = [ { title: '用户名', dataIndex: 'username' }, { title: '真实姓名', dataIndex: 'realName' }, { title: '手机号', dataIndex: 'phone', search: false }, { title: '邮箱', dataIndex: 'email', search: false }, { title: '角色', dataIndex: 'roleName', search: false }, { title: '状态', dataIndex: 'status', search: false, render: (_, record) => ( { const res = await updateUserStatus(record.userId, checked ? 1 : 0); if (res?.code === 0) { message.success('状态更新成功'); actionRef.current?.reload(); } }} /> ), }, { title: '最后登录', dataIndex: 'lastLoginTime', valueType: 'dateTime', search: false }, { title: '操作', valueType: 'option', render: (_, record) => [ { setCurrentRow(record); setEditOpen(true); fetchRoles(); }}>编辑, { const res = await deleteUser(record.userId); if (res?.code === 0) { message.success('删除成功'); actionRef.current?.reload(); } }}> 删除 , ], }, ]; return ( <> { const res = await listUsers({ page: params.current, pageSize: params.pageSize, username: params.username, realName: params.realName }); return { data: res?.data?.list || [], total: res?.data?.total || 0, success: res?.code === 0 }; }} toolBarRender={() => [ , ]} /> { const res = await createUser(values); if (res?.code === 0) { message.success('创建成功'); actionRef.current?.reload(); return true; } message.error(res?.msg || '创建失败'); return false; }} > { const res = await updateUser(currentRow.userId, values); if (res?.code === 0) { message.success('更新成功'); actionRef.current?.reload(); return true; } message.error(res?.msg || '更新失败'); return false; }} > ); }; export default UsersPage;