diff --git a/src/pages/system/dept/create-department.tsx b/src/pages/system/dept/create-department.tsx index 55d06f6..e635b8d 100644 --- a/src/pages/system/dept/create-department.tsx +++ b/src/pages/system/dept/create-department.tsx @@ -1,8 +1,9 @@ import React, { useEffect, useState } from 'react' -import { Form, Input, InputNumber, Radio, Modal, Switch } from 'antd'; +import { Form, Input, InputNumber, Radio, Modal, Select } from 'antd'; import departmentService from '@/request/service/deparatment'; +import userService from '@/request/service/user'; import { useRequest } from '@/hooks/use-request'; -import type { DepartmentVO } from '@/models' +import type { DepartmentVO, UserDTO, UserVO } from '@/models' import { antdUtils } from '@/utils/antd'; const layout = { @@ -21,18 +22,45 @@ interface EditorProps { const DepartmentEditor: React.FC = (props) => { const { visible, onCancel, onSave, data } = props; + const [ departments, setDepartments ] = useState([]); + const [ userList, setUserList ] = useState([]); const { runAsync: updatePostApi } = useRequest(departmentService.updateDeptApi, { manual: true }); const { runAsync: createPostApi } = useRequest(departmentService.createDeptApi, { manual: true }); + const { runAsync: listSimpleDeptApi } = useRequest(departmentService.listSimpleDeptApi, {manual: true}); + const { runAsync: listSimpleUsersApi } = useRequest(userService.getListSimpleUsersApi, {manual: true}); const isEdit = !!data; - const [saveLoading, setSaveLoading] = useState(false); const [form] = Form.useForm(); + const loadDepartments = async () => { + const [error, { data, msg }] = await listSimpleDeptApi(); + if(!error) { + setDepartments(data); + } else { + antdUtils.message?.error(msg ?? '获取部门列表数据失败'); + } + } + + const loadUserList = async () => { + const [error, { data, msg }] = await listSimpleUsersApi(); + if(!error) { + setUserList(data); + } else { + antdUtils.message?.error(msg ?? '获取用户列表数据失败'); + } + } + useEffect(() => { if (visible) { + if(departments.length === 0) { + loadDepartments() + } + if(userList.length === 0) { + loadUserList(); + } if (data) { form.setFieldsValue(data); } @@ -76,6 +104,9 @@ const DepartmentEditor: React.FC = (props) => { labelCol={{ flex: '0 0 100px' }} wrapperCol={{ span: 16 }} > + + + +