From 429e4d4ab24c9cad3efeede4b26bfc1c517ce5bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A6=BA=E7=8B=A8?= <18119604035@163.com> Date: Mon, 6 Mar 2023 16:52:27 +0800 Subject: [PATCH] =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E7=AE=A1=E7=90=86=E4=BA=BA?= =?UTF-8?q?=E5=91=98=E6=96=B0=E5=BB=BA=E3=80=81=E7=BC=96=E8=BE=91=E5=88=9D?= =?UTF-8?q?=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/admin-user.ts | 2 +- src/pages/index.ts | 2 + .../system/administrator/create.module.less | 0 src/pages/system/administrator/create.tsx | 135 ++++++++++++++++ src/pages/system/administrator/index.tsx | 2 +- .../system/administrator/update.module.less | 0 src/pages/system/administrator/update.tsx | 152 ++++++++++++++++++ src/router/routes.tsx | 12 +- 8 files changed, 302 insertions(+), 3 deletions(-) create mode 100644 src/pages/system/administrator/create.module.less create mode 100644 src/pages/system/administrator/create.tsx create mode 100644 src/pages/system/administrator/update.module.less create mode 100644 src/pages/system/administrator/update.tsx diff --git a/src/api/admin-user.ts b/src/api/admin-user.ts index fee8f0e..2b9cf905 100644 --- a/src/api/admin-user.ts +++ b/src/api/admin-user.ts @@ -40,7 +40,7 @@ export function updateAdminUser( isBanLogin: number, roleIds: number[] ) { - return client.post(`/backend/v1/admin-user/${id}`, { + return client.put(`/backend/v1/admin-user/${id}`, { name: name, email: email, password: password, diff --git a/src/pages/index.ts b/src/pages/index.ts index abb76a1..ffdbb7a 100644 --- a/src/pages/index.ts +++ b/src/pages/index.ts @@ -8,3 +8,5 @@ export * from "./member/index" export * from "./member/create" export * from "./member/update" export * from "./system/administrator/index" +export * from "./system/administrator/create" +export * from "./system/administrator/update" diff --git a/src/pages/system/administrator/create.module.less b/src/pages/system/administrator/create.module.less new file mode 100644 index 0000000..e69de29 diff --git a/src/pages/system/administrator/create.tsx b/src/pages/system/administrator/create.tsx new file mode 100644 index 0000000..7ec9745 --- /dev/null +++ b/src/pages/system/administrator/create.tsx @@ -0,0 +1,135 @@ +import React, { useState, useEffect } from "react"; +import { Row, Col, Form, Input, Select, Switch, Button, message } from "antd"; +import styles from "./create.module.less"; +import { adminUser } from "../../../api/index"; +import { useNavigate } from "react-router-dom"; + +export const AdministratorCreatePage: React.FC = () => { + const navigate = useNavigate(); + const [form] = Form.useForm(); + const [loading, setLoading] = useState(true); + const [roles, setRoles] = useState([]); + + useEffect(() => { + getParams(); + }, []); + + const getParams = () => { + adminUser.createAdminUser().then((res: any) => { + const arr = []; + let roles = res.data.roles; + for (let i = 0; i < roles.length; i++) { + arr.push({ + label: roles[i].name, + value: roles[i].id, + }); + } + setRoles(arr); + form.setFieldsValue({ is_ban_login: 0 }); + }); + }; + + const onFinish = (values: any) => { + adminUser + .storeAdminUser( + values.name, + values.email, + values.password, + values.is_ban_login, + values.roleIds + ) + .then((res: any) => { + message.success("保存成功!"); + navigate(-1); + }); + }; + + const onFinishFailed = (errorInfo: any) => { + console.log("Failed:", errorInfo); + }; + + const handleChange = (value: any) => {}; + + const onChange = (checked: boolean) => { + if (checked) { + form.setFieldsValue({ is_ban_login: 1 }); + } else { + form.setFieldsValue({ is_ban_login: 0 }); + } + }; + + return ( + <> + + +
+ + + + + + + + + + + + + + + + +
+ +
+ + ); +}; diff --git a/src/pages/system/administrator/index.tsx b/src/pages/system/administrator/index.tsx index 3d54159..0dbe42f 100644 --- a/src/pages/system/administrator/index.tsx +++ b/src/pages/system/administrator/index.tsx @@ -79,7 +79,7 @@ export const SystemAdministratorPage: React.FC = () => { type="link" danger className="c-red" - onClick={() => navigate(`/system/administrator/${record.id}`)} + onClick={() => navigate(`/system/administrator/update/${record.id}`)} > 详情 diff --git a/src/pages/system/administrator/update.module.less b/src/pages/system/administrator/update.module.less new file mode 100644 index 0000000..e69de29 diff --git a/src/pages/system/administrator/update.tsx b/src/pages/system/administrator/update.tsx new file mode 100644 index 0000000..d79ace6 --- /dev/null +++ b/src/pages/system/administrator/update.tsx @@ -0,0 +1,152 @@ +import React, { useState, useEffect } from "react"; +import { Row, Col, Form, Input, Select, Switch, Button, message } from "antd"; +import styles from "./update.module.less"; +import { adminUser } from "../../../api/index"; +import { useParams, useNavigate } from "react-router-dom"; + +export const AdministratorUpdatePage: React.FC = () => { + const params = useParams(); + const navigate = useNavigate(); + const [form] = Form.useForm(); + const [loading, setLoading] = useState(true); + const [roles, setRoles] = useState([]); + + useEffect(() => { + getParams(); + }, []); + useEffect(() => { + getDetail(); + }, [params.userId]); + + const getParams = () => { + adminUser.createAdminUser().then((res: any) => { + const arr = []; + let roles = res.data.roles; + for (let i = 0; i < roles.length; i++) { + arr.push({ + label: roles[i].name, + value: roles[i].id, + }); + } + setRoles(arr); + form.setFieldsValue({ is_ban_login: 0 }); + }); + }; + + const getDetail = () => { + adminUser.AdminUser(Number(params.userId)).then((res: any) => { + let user = res.data.user; + form.setFieldsValue({ + email: user.email, + name: user.name, + is_ban_login: user.is_ban_login, + roleIds: res.data.role_ids, + }); + }); + }; + + const onFinish = (values: any) => { + let id = Number(params.userId); + adminUser + .updateAdminUser( + id, + values.name, + values.email, + values.password, + values.is_ban_login, + values.roleIds + ) + .then((res: any) => { + message.success("保存成功!"); + navigate(-1); + }); + }; + + const onFinishFailed = (errorInfo: any) => { + console.log("Failed:", errorInfo); + }; + + const handleChange = (value: any) => {}; + + const onChange = (checked: boolean) => { + if (checked) { + form.setFieldsValue({ is_ban_login: 1 }); + } else { + form.setFieldsValue({ is_ban_login: 0 }); + } + }; + + return ( + <> + + +
+ + + + + + + + + + + + + + + + +
+ +
+ + ); +}; diff --git a/src/router/routes.tsx b/src/router/routes.tsx index 699d04b..370fe0a 100644 --- a/src/router/routes.tsx +++ b/src/router/routes.tsx @@ -9,7 +9,9 @@ import { MemberPage, MemberCreatePage, MemberUpdatePage, - SystemAdministratorPage + SystemAdministratorPage, + AdministratorCreatePage, + AdministratorUpdatePage, } from "../pages"; const routes: RouteObject[] = [ @@ -41,6 +43,14 @@ const routes: RouteObject[] = [ path: "/system/administrator", element: , }, + { + path: "/system/administrator/create", + element: , + }, + { + path: "/system/administrator/update/:userId", + element: , + }, ], }, {