import { useEffect, useState } from 'react' import { Drawer, Form, Input, Select, Checkbox, Button, message, Table } from 'antd' import type { ColumnsType } from 'antd/es/table' import { getStaffs, getPermissionGroups, createUser, StaffVO, PermissionGroupVO, UserCreateReq } from '../../api/usr' interface Props { open: boolean onClose: () => void onSuccess: () => void } export default function UserFormDrawer({ open, onClose, onSuccess }: Props) { const [form] = Form.useForm() const [staffs, setStaffs] = useState([]) const [permGroups, setPermGroups] = useState([]) const [selectedPermIds, setSelectedPermIds] = useState([]) const [submitting, setSubmitting] = useState(false) useEffect(() => { if (open) { getStaffs().then(setStaffs).catch(() => {}) getPermissionGroups().then(setPermGroups).catch(() => {}) } }, [open]) const permColumns: ColumnsType = [ { title: '', key: 'select', width: 40, render: (_, record) => ( { setSelectedPermIds(prev => e.target.checked ? [...prev, record.sId] : prev.filter(id => id !== record.sId) ) }} /> ) }, { title: '权限组', dataIndex: 'sGroupName' }, { title: '分类', dataIndex: 'sCategory' } ] async function handleSubmit() { try { const values = await form.validateFields() setSubmitting(true) const req: UserCreateReq = { userCode: values.userCode, username: values.username, userType: values.userType, language: values.language, canEditDoc: values.canEditDoc ?? false, employeeId: values.employeeId ?? null, permGroupIds: selectedPermIds } await createUser(req) message.success('新增用户成功') form.resetFields() setSelectedPermIds([]) onSuccess() } catch (e: unknown) { if (e instanceof Error) { message.error(e.message) } } finally { setSubmitting(false) } } return ( } >
可编辑文档