import { usercontrollerAdduser, usercontrollerListusers, usercontrollerToggleactive, usercontrollerUpdateuser, } from '@/servers/api/user'; import { PlusOutlined } from '@ant-design/icons'; import { ActionType, DrawerForm, PageContainer, ProColumns, ProForm, ProFormSwitch, ProFormText, ProFormTextArea, ProTable, } from '@ant-design/pro-components'; import { App, Button, Tag } from 'antd'; import { useRef } from 'react'; const ListPage: React.FC = () => { const actionRef = useRef(); const { message } = App.useApp(); const columns: ProColumns[] = [ { title: '用户名', dataIndex: 'username', sorter: true, }, { title: '邮箱', dataIndex: 'email', sorter: true, ellipsis: true, }, { title: '超管', dataIndex: 'isSuper', valueType: 'select', valueEnum: { true: { text: '是' }, false: { text: '否' }, }, sorter: true, filters: true, filterMultiple: false, }, { title: '激活', dataIndex: 'isActive', valueEnum: { true: { text: '是', }, false: { text: '否', }, }, sorter: true, filters: true, filterMultiple: false, render: (_, record: any) => ( {record?.isActive ? '启用中' : '已禁用'} ), }, { title: '备注', dataIndex: 'remark', ellipsis: true, }, { title: '操作', dataIndex: 'option', valueType: 'option', render: (_, record: any) => ( <> ), }, ]; return ( { const { current = 1, pageSize = 10, username, email, isActive, isSuper, remark, } = params as any; console.log(`params`, params, sort); const qp: any = { current, pageSize }; if (username) qp.username = username; // 条件判断 透传邮箱查询参数 if (email) qp.email = email; if (typeof isActive !== 'undefined' && isActive !== '') qp.isActive = String(isActive); if (typeof isSuper !== 'undefined' && isSuper !== '') qp.isSuper = String(isSuper); // 处理表头筛选 if (filter.isActive && filter.isActive.length > 0) { qp.isActive = filter.isActive[0]; } if (filter.isSuper && filter.isSuper.length > 0) { qp.isSuper = filter.isSuper[0]; } if (remark) qp.remark = remark; const sortField = Object.keys(sort)[0]; if (sortField) { qp.sortField = sortField; qp.sortOrder = sort[sortField]; } const { data, success } = await usercontrollerListusers({ params: qp, }); return { total: data?.total || 0, data: data?.items || [], success, }; }} columns={columns} toolBarRender={() => []} /> ); }; const CreateForm: React.FC<{ tableRef: React.MutableRefObject; }> = ({ tableRef }) => { const { message } = App.useApp(); return ( 新建 } autoFocusFirstInput drawerProps={{ destroyOnHidden: true, }} onFinish={async (values) => { try { const { success, message: errMsg } = await usercontrollerAdduser( values, ); if (!success) { throw new Error(errMsg); } tableRef.current?.reload(); message.success('提交成功'); return true; } catch (error: any) { message.error(error.message); } }} > ); }; const EditForm: React.FC<{ tableRef: React.MutableRefObject; record: any; }> = ({ tableRef, record }) => { const { message } = App.useApp(); return ( 编辑} initialValues={{ username: record.username, email: record.email, isSuper: record.isSuper, isAdmin: record.isAdmin, remark: record.remark, }} onFinish={async (values: any) => { try { // 更新用户,密码可选填 const { success, message: err } = await usercontrollerUpdateuser( { id: record.id }, values, ); if (!success) throw new Error(err); tableRef.current?.reload(); message.success('更新成功'); return true; } catch (error: any) { message.error(error.message); return false; } }} > ); }; export default ListPage;