diff --git a/src/pages/User/index.tsx b/src/pages/User/index.tsx index cd1d8e3..44ba79f 100644 --- a/src/pages/User/index.tsx +++ b/src/pages/User/index.tsx @@ -1,47 +1,29 @@ import { useState, useEffect } from 'react'; -import { Table, Button, Tag, notification, Card, Popconfirm, Form, Input, Select, Avatar } from 'antd'; +import { Table, Button, Tag, notification, Card, Popconfirm, Form, Input, Select, Avatar, Drawer } from 'antd'; + +import { getUserDataAPI, getUserListAPI, delUserDataAPI, addUserDataAPI, editUserDataAPI } from '@/api/User'; +import { getRoleListAPI } from '@/api/Role' -import { getUserListAPI, delUserDataAPI } from '@/api/User'; import type { User } from '@/types/app/user'; import { Role } from '@/types/app/role'; import { titleSty } from '@/styles/sty'; import Title from '@/components/Title'; -import logo from '@/images/logo/logo.png' - -import dayjs from 'dayjs' +import logo from '@/images/logo/logo.png'; +import dayjs from 'dayjs'; const UserPage = () => { - const [current, setCurrent] = useState(1); const [loading, setLoading] = useState(false); + const [userList, setUserList] = useState([]); + const [roleList, setRoleList] = useState([]); - const [form] = Form.useForm(); + const [drawerVisible, setDrawerVisible] = useState(false); - const getUserList = async () => { - setLoading(true); + const [user, setUser] = useState({} as User) - const { data } = await getUserListAPI(); - setUserList(data as User[]); - - setLoading(false); - }; - - useEffect(() => { - getUserList(); - }, []); - - const delUserData = async (id: number) => { - setLoading(true); - - await delUserDataAPI(id); - await getUserList(); - form.resetFields(); - setCurrent(1); - notification.success({ message: '🎉 删除用户成功' }); - - setLoading(false); - }; + const [filterForm] = Form.useForm(); + const [userForm] = Form.useForm(); const columns = [ { @@ -113,7 +95,7 @@ const UserPage = () => { align: 'center', render: (text: string, record: User) => (
- + delUserData(record.id!)}> @@ -123,26 +105,69 @@ const UserPage = () => { }, ]; - const onFilterSubmit = async (values: any) => { - const query = { - key: values.name, - role: values.role, - }; - - const { data } = await getUserListAPI({ query }); + const getUserList = async () => { + setLoading(true); + const { data } = await getUserListAPI(); setUserList(data as User[]); + setLoading(false); }; + const getRoleList = async () => { + const { data } = await getRoleListAPI(); + setRoleList(data as Role[]); + }; + + useEffect(() => { + getUserList(); + getRoleList() + }, []); + + const onSubmit = async () => { + userForm.validateFields().then(async (values: User) => { + if (user.id) { + await editUserDataAPI({ ...values, ...user, roleId: values.role }); + notification.success({ message: '🎉 编辑用户成功' }); + } else { + await addUserDataAPI({ ...values, roleId: values.role, createTime: new Date().getTime().toString() }); + notification.success({ message: '🎉 创建用户成功' }); + } + setDrawerVisible(false); + getUserList(); + }) + }; + + const delUserData = async (id: number) => { + setLoading(true); + await delUserDataAPI(id); + await getUserList(); + notification.success({ message: '🎉 删除用户成功' }); + setLoading(false); + }; + + const editUserData = async (id: number) => { + const { data } = await getUserDataAPI(id) + setUser({ ...data, role: data.role.id }); + + userForm.setFieldsValue({ ...data, role: data.role.id }); + setDrawerVisible(true); + }; + + const reset = () => { + setUser({} as User) + userForm.resetFields() + } + return ( <> - + <Title value="用户管理"> + <Button type="primary" size='large' onClick={() => setDrawerVisible(true)}>新增用户</Button> + -
+ - + + + + + + + + + + + + + + + + + + + +