管理员角色新建、编辑优化

This commit is contained in:
禺狨 2023-03-08 10:10:33 +08:00
parent f4dda5f80d
commit a9355b6d05
4 changed files with 56 additions and 40 deletions

View File

@ -27,7 +27,6 @@ interface DataType {
export const SystemAdministratorPage: React.FC = () => { export const SystemAdministratorPage: React.FC = () => {
const navigate = useNavigate(); const navigate = useNavigate();
const [selectedRowKeys, setSelectedRowKeys] = useState<React.Key[]>([]);
const [loading, setLoading] = useState<boolean>(true); const [loading, setLoading] = useState<boolean>(true);
const [page, setPage] = useState<number>(1); const [page, setPage] = useState<number>(1);
const [size, setSize] = useState<number>(10); const [size, setSize] = useState<number>(10);
@ -105,18 +104,12 @@ export const SystemAdministratorPage: React.FC = () => {
getData(); getData();
}, [refresh, page, size]); }, [refresh, page, size]);
const onSelectChange = (newSelectedRowKeys: React.Key[]) => {
console.log("selectedRowKeys changed: ", newSelectedRowKeys);
setSelectedRowKeys(newSelectedRowKeys);
};
const getData = () => { const getData = () => {
setLoading(true); setLoading(true);
adminUser.adminUserList(page, size, name).then((res: any) => { adminUser.adminUserList(page, size, name).then((res: any) => {
setList(res.data.data); setList(res.data.data);
setTotal(res.data.total); setTotal(res.data.total);
setTimeout(() => { setTimeout(() => {
setSelectedRowKeys([]);
setLoading(false); setLoading(false);
}, 1000); }, 1000);
}); });
@ -130,10 +123,6 @@ export const SystemAdministratorPage: React.FC = () => {
setRefresh(!refresh); setRefresh(!refresh);
}; };
const rowSelection = {
selectedRowKeys,
onChange: onSelectChange,
};
const paginationProps = { const paginationProps = {
current: page, //当前页码 current: page, //当前页码
@ -158,7 +147,6 @@ export const SystemAdministratorPage: React.FC = () => {
}); });
}; };
const hasSelected = selectedRowKeys.length > 0;
return ( return (
<> <>
<div className="playedu-main-body mb-24"> <div className="playedu-main-body mb-24">
@ -216,7 +204,6 @@ export const SystemAdministratorPage: React.FC = () => {
</div> </div>
<div className="float-left"> <div className="float-left">
<Table <Table
rowSelection={rowSelection}
columns={columns} columns={columns}
dataSource={list} dataSource={list}
loading={loading} loading={loading}

View File

@ -10,6 +10,7 @@ export const AdminrolesCreatePage: React.FC = () => {
const [form] = Form.useForm(); const [form] = Form.useForm();
const [loading, setLoading] = useState<boolean>(true); const [loading, setLoading] = useState<boolean>(true);
const [permissions, setPermissions] = useState<any>([]); const [permissions, setPermissions] = useState<any>([]);
const [actions, setActions] = useState<any>([]);
useEffect(() => { useEffect(() => {
getParams(); getParams();
@ -18,32 +19,39 @@ export const AdminrolesCreatePage: React.FC = () => {
const getParams = () => { const getParams = () => {
adminRole.createAdminRole().then((res: any) => { adminRole.createAdminRole().then((res: any) => {
const arr = []; const arr = [];
let permissions = res.data.permissions; const arr2 = [];
let actions = res.data.perm_action.action;
let permissions = res.data.perm_action.data;
for (let i = 0; i < permissions.length; i++) { for (let i = 0; i < permissions.length; i++) {
arr.push({ arr.push({
label: permissions[i].name, label: permissions[i].name,
value: permissions[i].id, value: permissions[i].id,
}); });
} }
for (let j = 0; j < actions.length; j++) {
arr2.push({
label: actions[j].name,
value: actions[j].id,
});
}
setPermissions(arr); setPermissions(arr);
setActions(arr2);
}); });
}; };
const onFinish = (values: any) => { const onFinish = (values: any) => {
adminRole const params = values.action_ids.concat(values.permission_ids);
.storeAdminRole(values.name, values.permission_ids)
.then((res: any) => { adminRole.storeAdminRole(values.name, params).then((res: any) => {
message.success("保存成功!"); message.success("保存成功!");
navigate(-1); navigate(-1);
}); });
}; };
const onFinishFailed = (errorInfo: any) => { const onFinishFailed = (errorInfo: any) => {
console.log("Failed:", errorInfo); console.log("Failed:", errorInfo);
}; };
const handleChange = (value: any) => {};
return ( return (
<> <>
<Row className="playedu-main-body"> <Row className="playedu-main-body">
@ -70,13 +78,21 @@ export const AdminrolesCreatePage: React.FC = () => {
> >
<Input style={{ width: 300 }} placeholder="请输入角色名" /> <Input style={{ width: 300 }} placeholder="请输入角色名" />
</Form.Item> </Form.Item>
<Form.Item label="权限" name="permission_ids"> <Form.Item label="操作权限" name="action_ids">
<Select
style={{ width: 300 }}
mode="multiple"
allowClear
placeholder="请选择权限"
options={actions}
/>
</Form.Item>
<Form.Item label="数据权限" name="permission_ids">
<Select <Select
style={{ width: 300 }} style={{ width: 300 }}
mode="multiple" mode="multiple"
allowClear allowClear
placeholder="请选择权限" placeholder="请选择权限"
onChange={handleChange}
options={permissions} options={permissions}
/> />
</Form.Item> </Form.Item>

View File

@ -21,11 +21,6 @@ export const SystemAdminrolesPage: React.FC = () => {
const [refresh, setRefresh] = useState(false); const [refresh, setRefresh] = useState(false);
const columns: ColumnsType<DataType> = [ const columns: ColumnsType<DataType> = [
{
title: "ID",
key: "id",
dataIndex: "id",
},
{ {
title: "角色名", title: "角色名",
dataIndex: "name", dataIndex: "name",

View File

@ -11,11 +11,12 @@ export const AdminrolesUpdatePage: React.FC = () => {
const [form] = Form.useForm(); const [form] = Form.useForm();
const [loading, setLoading] = useState<boolean>(true); const [loading, setLoading] = useState<boolean>(true);
const [permissions, setPermissions] = useState<any>([]); const [permissions, setPermissions] = useState<any>([]);
const [actions, setActions] = useState<any>([]);
useEffect(() => { useEffect(() => {
getParams(); getParams();
}, []); }, []);
useEffect(() => { useEffect(() => {
getDetail(); getDetail();
}, [params.roleId]); }, [params.roleId]);
@ -23,14 +24,23 @@ export const AdminrolesUpdatePage: React.FC = () => {
const getParams = () => { const getParams = () => {
adminRole.createAdminRole().then((res: any) => { adminRole.createAdminRole().then((res: any) => {
const arr = []; const arr = [];
let permissions = res.data.permissions; const arr2 = [];
let actions = res.data.perm_action.action;
let permissions = res.data.perm_action.data;
for (let i = 0; i < permissions.length; i++) { for (let i = 0; i < permissions.length; i++) {
arr.push({ arr.push({
label: permissions[i].name, label: permissions[i].name,
value: permissions[i].id, value: permissions[i].id,
}); });
} }
for (let j = 0; j < actions.length; j++) {
arr2.push({
label: actions[j].name,
value: actions[j].id,
});
}
setPermissions(arr); setPermissions(arr);
setActions(arr2);
}); });
}; };
@ -39,19 +49,19 @@ export const AdminrolesUpdatePage: React.FC = () => {
let role = res.data.role; let role = res.data.role;
form.setFieldsValue({ form.setFieldsValue({
name: role.name, name: role.name,
permission_ids: res.data.permission_ids, permission_ids: res.data.perm_data,
action_ids: res.data.perm_action,
}); });
}); });
}; };
const onFinish = (values: any) => { const onFinish = (values: any) => {
let id = Number(params.roleId); let id = Number(params.roleId);
adminRole const arr = values.action_ids.concat(values.permission_ids);
.updateAdminRole(id, values.name, values.permission_ids) adminRole.updateAdminRole(id, values.name, arr).then((res: any) => {
.then((res: any) => { message.success("保存成功!");
message.success("保存成功!"); navigate(-1);
navigate(-1); });
});
}; };
const onFinishFailed = (errorInfo: any) => { const onFinishFailed = (errorInfo: any) => {
@ -86,13 +96,21 @@ export const AdminrolesUpdatePage: React.FC = () => {
> >
<Input style={{ width: 300 }} placeholder="请输入角色名" /> <Input style={{ width: 300 }} placeholder="请输入角色名" />
</Form.Item> </Form.Item>
<Form.Item label="权限" name="permission_ids"> <Form.Item label="操作权限" name="action_ids">
<Select
style={{ width: 300 }}
mode="multiple"
allowClear
placeholder="请选择权限"
options={actions}
/>
</Form.Item>
<Form.Item label="数据权限" name="permission_ids">
<Select <Select
style={{ width: 300 }} style={{ width: 300 }}
mode="multiple" mode="multiple"
allowClear allowClear
placeholder="请选择权限" placeholder="请选择权限"
onChange={handleChange}
options={permissions} options={permissions}
/> />
</Form.Item> </Form.Item>