diff --git a/src/pages/index.ts b/src/pages/index.ts index 1eb5820..6e4d412 100644 --- a/src/pages/index.ts +++ b/src/pages/index.ts @@ -15,8 +15,6 @@ export * from "./system/administrator/index"; export * from "./system/administrator/create"; export * from "./system/administrator/update"; export * from "./system/adminroles/index"; -export * from "./system/adminroles/create"; -export * from "./system/adminroles/update"; export * from "./department"; export * from "./change-password"; export * from "./resource/images"; diff --git a/src/pages/system/adminroles/create.module.less b/src/pages/system/adminroles/compenents/create.module.less similarity index 100% rename from src/pages/system/adminroles/create.module.less rename to src/pages/system/adminroles/compenents/create.module.less diff --git a/src/pages/system/adminroles/compenents/create.tsx b/src/pages/system/adminroles/compenents/create.tsx new file mode 100644 index 0000000..1924338 --- /dev/null +++ b/src/pages/system/adminroles/compenents/create.tsx @@ -0,0 +1,117 @@ +import React, { useState, useEffect } from "react"; +import { Modal, Select, Form, Input, message } from "antd"; +import styles from "./create.module.less"; +import { adminRole } from "../../../../api/index"; + +interface PropInterface { + open: boolean; + onCancel: () => void; +} + +export const SystemAdminrolesCreate: React.FC = ({ + open, + onCancel, +}) => { + const [form] = Form.useForm(); + const [loading, setLoading] = useState(true); + const [permissions, setPermissions] = useState([]); + const [actions, setActions] = useState([]); + + useEffect(() => { + getParams(); + }, []); + + useEffect(() => { + form.setFieldsValue({ + name: "", + }); + }, [form, open]); + + const getParams = () => { + adminRole.createAdminRole().then((res: any) => { + const arr = []; + const arr2 = []; + let actions = res.data.perm_action.action; + let permissions = res.data.perm_action.data; + for (let i = 0; i < permissions.length; i++) { + arr.push({ + label: permissions[i].group_name + "-" + permissions[i].name, + value: permissions[i].id, + }); + } + for (let j = 0; j < actions.length; j++) { + arr2.push({ + label: actions[j].group_name + "-" + actions[j].name, + value: actions[j].id, + }); + } + setPermissions(arr); + setActions(arr2); + }); + }; + + const onFinish = (values: any) => { + const params = values.action_ids.concat(values.permission_ids); + adminRole.storeAdminRole(values.name, params).then((res: any) => { + message.success("保存成功!"); + onCancel(); + }); + }; + + const onFinishFailed = (errorInfo: any) => { + console.log("Failed:", errorInfo); + }; + + return ( + <> + form.submit()} + onCancel={() => onCancel()} + > +
+
+ + + + + + +
+
+
+ + ); +}; diff --git a/src/pages/system/adminroles/update.module.less b/src/pages/system/adminroles/compenents/update.module.less similarity index 100% rename from src/pages/system/adminroles/update.module.less rename to src/pages/system/adminroles/compenents/update.module.less diff --git a/src/pages/system/adminroles/compenents/update.tsx b/src/pages/system/adminroles/compenents/update.tsx new file mode 100644 index 0000000..d5d25c3 --- /dev/null +++ b/src/pages/system/adminroles/compenents/update.tsx @@ -0,0 +1,131 @@ +import React, { useState, useEffect } from "react"; +import { Modal, Form, Input, Select, message } from "antd"; +import styles from "./update.module.less"; +import { adminRole } from "../../../../api/index"; + +interface PropInterface { + id: number; + open: boolean; + onCancel: () => void; +} + +export const SystemAdminrolesUpdate: React.FC = ({ + id, + open, + onCancel, +}) => { + const [form] = Form.useForm(); + const [loading, setLoading] = useState(true); + const [permissions, setPermissions] = useState([]); + const [actions, setActions] = useState([]); + + useEffect(() => { + getParams(); + }, []); + + useEffect(() => { + if (id === 0) { + return; + } + getDetail(); + }, [id]); + + const getParams = () => { + adminRole.createAdminRole().then((res: any) => { + const arr = []; + const arr2 = []; + let actions = res.data.perm_action.action; + let permissions = res.data.perm_action.data; + for (let i = 0; i < permissions.length; i++) { + arr.push({ + label: permissions[i].group_name + "-" + permissions[i].name, + value: permissions[i].id, + }); + } + for (let j = 0; j < actions.length; j++) { + arr2.push({ + label: actions[j].group_name + "-" + actions[j].name, + value: actions[j].id, + }); + } + setPermissions(arr); + setActions(arr2); + }); + }; + + const getDetail = () => { + adminRole.adminRole(id).then((res: any) => { + let role = res.data.role; + form.setFieldsValue({ + name: role.name, + permission_ids: res.data.perm_data, + action_ids: res.data.perm_action, + }); + }); + }; + + const onFinish = (values: any) => { + const arr = values.action_ids.concat(values.permission_ids); + adminRole.updateAdminRole(id, values.name, arr).then((res: any) => { + message.success("保存成功!"); + onCancel(); + }); + }; + + const onFinishFailed = (errorInfo: any) => { + console.log("Failed:", errorInfo); + }; + + return ( + <> + form.submit()} + onCancel={() => onCancel()} + > +
+
+ + + + + + +
+
+
+ + ); +}; diff --git a/src/pages/system/adminroles/create.tsx b/src/pages/system/adminroles/create.tsx deleted file mode 100644 index 33ed151..0000000 --- a/src/pages/system/adminroles/create.tsx +++ /dev/null @@ -1,117 +0,0 @@ -import React, { useState, useEffect } from "react"; -import { Row, Col, Form, Input, Select, Button, message } from "antd"; -import styles from "./create.module.less"; -import { adminRole } from "../../../api/index"; -import { useNavigate } from "react-router-dom"; -import { BackBartment } from "../../../compenents"; - -export const AdminrolesCreatePage: React.FC = () => { - const navigate = useNavigate(); - const [form] = Form.useForm(); - const [loading, setLoading] = useState(true); - const [permissions, setPermissions] = useState([]); - const [actions, setActions] = useState([]); - - useEffect(() => { - getParams(); - }, []); - - const getParams = () => { - adminRole.createAdminRole().then((res: any) => { - const arr = []; - const arr2 = []; - let actions = res.data.perm_action.action; - let permissions = res.data.perm_action.data; - for (let i = 0; i < permissions.length; i++) { - arr.push({ - label: permissions[i].name, - value: permissions[i].id, - }); - } - for (let j = 0; j < actions.length; j++) { - arr2.push({ - label: actions[j].name, - value: actions[j].id, - }); - } - setPermissions(arr); - setActions(arr2); - }); - }; - - const onFinish = (values: any) => { - const params = values.action_ids.concat(values.permission_ids); - - adminRole.storeAdminRole(values.name, params).then((res: any) => { - message.success("保存成功!"); - navigate(-1); - }); - }; - - const onFinishFailed = (errorInfo: any) => { - console.log("Failed:", errorInfo); - }; - - return ( - <> - - -
- -
-
-
- - - - - - - - - - -
-
- -
- - ); -}; diff --git a/src/pages/system/adminroles/index.tsx b/src/pages/system/adminroles/index.tsx index 1849b32..72f4cbb 100644 --- a/src/pages/system/adminroles/index.tsx +++ b/src/pages/system/adminroles/index.tsx @@ -5,7 +5,9 @@ import styles from "./index.module.less"; import { PlusOutlined, ReloadOutlined } from "@ant-design/icons"; import { adminRole } from "../../../api/index"; import { dateFormat } from "../../../utils/index"; -import { Link, useNavigate } from "react-router-dom"; +import { useNavigate } from "react-router-dom"; +import { SystemAdminrolesCreate } from "./compenents/create"; +import { SystemAdminrolesUpdate } from "./compenents/update"; interface DataType { id: React.Key; @@ -18,6 +20,9 @@ export const SystemAdminrolesPage: React.FC = () => { const [loading, setLoading] = useState(true); const [list, setList] = useState([]); const [refresh, setRefresh] = useState(false); + const [createVisible, setCreateVisible] = useState(false); + const [updateVisible, setUpdateVisible] = useState(false); + const [cid, setCid] = useState(0); const columns: ColumnsType = [ { @@ -41,7 +46,10 @@ export const SystemAdminrolesPage: React.FC = () => { type="link" danger className="b-link c-red" - onClick={() => navigate(`/system/adminroles/update/${record.id}`)} + onClick={() => { + setCid(Number(record.id)); + setUpdateVisible(true); + }} > 详情 @@ -90,14 +98,14 @@ export const SystemAdminrolesPage: React.FC = () => {
- } + className="mr-16" + type="primary" + onClick={() => setCreateVisible(true)} > - - + 新建角色 +
+ { + setCreateVisible(false); + setRefresh(!refresh); + }} + /> + { + setUpdateVisible(false); + setRefresh(!refresh); + }} + />
); diff --git a/src/pages/system/adminroles/update.tsx b/src/pages/system/adminroles/update.tsx deleted file mode 100644 index c76d2b1..0000000 --- a/src/pages/system/adminroles/update.tsx +++ /dev/null @@ -1,135 +0,0 @@ -import React, { useState, useEffect } from "react"; -import { Row, Col, Form, Input, Select, Button, message } from "antd"; -import styles from "./update.module.less"; -import { adminRole } from "../../../api/index"; -import { useParams, useNavigate } from "react-router-dom"; -import { BackBartment } from "../../../compenents"; - -export const AdminrolesUpdatePage: React.FC = () => { - const params = useParams(); - const navigate = useNavigate(); - const [form] = Form.useForm(); - const [loading, setLoading] = useState(true); - const [permissions, setPermissions] = useState([]); - const [actions, setActions] = useState([]); - - useEffect(() => { - getParams(); - }, []); - - useEffect(() => { - getDetail(); - }, [params.roleId]); - - const getParams = () => { - adminRole.createAdminRole().then((res: any) => { - const arr = []; - const arr2 = []; - let actions = res.data.perm_action.action; - let permissions = res.data.perm_action.data; - for (let i = 0; i < permissions.length; i++) { - arr.push({ - label: permissions[i].name, - value: permissions[i].id, - }); - } - for (let j = 0; j < actions.length; j++) { - arr2.push({ - label: actions[j].name, - value: actions[j].id, - }); - } - setPermissions(arr); - setActions(arr2); - }); - }; - - const getDetail = () => { - adminRole.adminRole(Number(params.roleId)).then((res: any) => { - let role = res.data.role; - form.setFieldsValue({ - name: role.name, - permission_ids: res.data.perm_data, - action_ids: res.data.perm_action, - }); - }); - }; - - const onFinish = (values: any) => { - let id = Number(params.roleId); - const arr = values.action_ids.concat(values.permission_ids); - adminRole.updateAdminRole(id, values.name, arr).then((res: any) => { - message.success("保存成功!"); - navigate(-1); - }); - }; - - const onFinishFailed = (errorInfo: any) => { - console.log("Failed:", errorInfo); - }; - - const handleChange = (value: any) => {}; - - return ( - <> - - -
- -
-
-
- - - - - - - - - - -
-
- -
- - ); -}; diff --git a/src/router/routes.tsx b/src/router/routes.tsx index 21e6938..2fe9f26 100644 --- a/src/router/routes.tsx +++ b/src/router/routes.tsx @@ -16,8 +16,6 @@ import { AdministratorCreatePage, AdministratorUpdatePage, SystemAdminrolesPage, - AdminrolesCreatePage, - AdminrolesUpdatePage, DepartmentPage, ChangePasswordPage, ResourceImagesPage, @@ -100,14 +98,6 @@ const routes: RouteObject[] = [ path: "/system/adminroles", element: , }, - { - path: "/system/adminroles/create", - element: , - }, - { - path: "/system/adminroles/update/:roleId", - element: , - }, { path: "/department", element: ,