From d6fcca25f2979710b008502e26aeceb8993f86ae Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期二, 06 一月 2026 20:00:28 +0800
Subject: [PATCH] #
---
rsf-admin/src/page/system/role/RoleList.jsx | 69 +++++++++++++++++++++++++++++++---
1 files changed, 63 insertions(+), 6 deletions(-)
diff --git a/rsf-admin/src/page/system/role/RoleList.jsx b/rsf-admin/src/page/system/role/RoleList.jsx
index 1973c7d..6ef91f5 100644
--- a/rsf-admin/src/page/system/role/RoleList.jsx
+++ b/rsf-admin/src/page/system/role/RoleList.jsx
@@ -42,8 +42,10 @@
import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting';
import * as Common from '@/utils/common';
import AssignPermissions from "./AssignPermissions";
+import AssignPermissionsPda from "./AssignPermissions_pda";
import request from '@/utils/request';
import AssignmentIndIcon from '@mui/icons-material/AssignmentInd';
+import AdUnitsIcon from '@mui/icons-material/AdUnits';
const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
'& .css-1vooibu-MuiSvgIcon-root': {
@@ -80,10 +82,11 @@
const [createDialog, setCreateDialog] = useState(false);
const [drawerVal, setDrawerVal] = useState(false);
+ const [drawerValPda, setDrawerValPda] = useState(false);
const [menuIds, setMenuIds] = useState([]);
- const [authType,setAuthType] = useState(0)
+ const [authType, setAuthType] = useState(0)
const assign = (record) => {
request('/role/scope/list', {
@@ -102,6 +105,23 @@
});
}
+ const assignPda = (record) => {
+ request('/rolePda/scope/list', {
+ method: 'GET',
+ params: {
+ roleId: record.id
+ }
+ }).then((res) => {
+ if (res?.data?.code === 200) {
+ const { data: menuIds } = res.data;
+ setMenuIds(menuIds || []);
+ setDrawerValPda(!!drawerValPda && drawerValPda === record ? null : record);
+ } else {
+ notify(res.data.msg, { type: 'error' });
+ }
+ });
+ }
+
return (
<Box display="flex">
<List
@@ -111,7 +131,7 @@
theme.transitions.create(['all'], {
duration: theme.transitions.duration.enteringScreen,
}),
- marginRight: !!drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0,
+ marginRight: (!!drawerVal || !!drawerValPda) ? `${PAGE_DRAWER_WIDTH}px` : 0,
}}
title={"menu.role"}
empty={<EmptyData onClick={() => { setCreateDialog(true) }} />}
@@ -131,7 +151,7 @@
preferenceKey='role'
bulkActionButtons={() => <BulkDeleteButton mutationMode={OPERATE_MODE} />}
rowClick={(id, resource, record) => false}
- omit={['id', 'createTime', 'memo','statusBool']}
+ omit={['id', 'createTime', 'memo', 'statusBool']}
>
<NumberField source="id" />
<MyField source="name" label="table.field.role.name"
@@ -148,7 +168,7 @@
<TextField source="memo" label="common.field.memo" sortable={false} />
<WrapperField cellClassName="opt" label="common.field.opt">
<ScopeButton sx={{ padding: '1px', fontSize: '.75rem' }} assign={assign} auType={0} setAuthType={setAuthType} label="缃戦〉鏉冮檺 " />
- <ScopeButton sx={{ padding: '1px', fontSize: '.75rem' }} assign={assign} auType={1} setAuthType={setAuthType} label="PDA鏉冮檺 " />
+ <PdaScopeButton sx={{ padding: '1px', fontSize: '.75rem' }} assignPda={assignPda} auType={1} setAuthType={setAuthType} label="PDA鏉冮檺 " />
<ScopeButton sx={{ padding: '1px', fontSize: '.75rem' }} assign={assign} auType={2} setAuthType={setAuthType} label="浠撳簱鏉冮檺 " />
<EditButton sx={{ padding: '1px', fontSize: '.75rem' }} />
<DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} />
@@ -174,7 +194,25 @@
closeCallback={() => {
setMenuIds([]);
}}
- authType = {authType}
+ authType={authType}
+ />
+ </PageDrawer>
+ <PageDrawer
+ drawerVal={drawerValPda}
+ setDrawerVal={setDrawerValPda}
+ title={!!drawerValPda ? `Scope by ${drawerValPda.code || drawerValPda.name}` : 'Role Detail'}
+ closeCallback={() => {
+ setMenuIds([]);
+ }}
+ >
+ <AssignPermissionsPda
+ role={drawerValPda}
+ originMenuIds={menuIds}
+ setDrawerVal={setDrawerValPda}
+ closeCallback={() => {
+ setMenuIds([]);
+ }}
+ authType={authType}
/>
</PageDrawer>
</Box>
@@ -183,7 +221,7 @@
const ScopeButton = (props) => {
const record = useRecordContext();
- const { assign, auType, setAuthType, label, ...rest } = props;
+ const { assign, auType, setAuthType, label, ...rest } = props;
return (
<Button
variant="text"
@@ -200,4 +238,23 @@
)
}
+const PdaScopeButton = (props) => {
+ const record = useRecordContext();
+ const { assignPda, auType, setAuthType, label, ...rest } = props;
+ return (
+ <Button
+ variant="text"
+ color="primary"
+ startIcon={<AdUnitsIcon />}
+ label={label}
+ onClick={(event) => {
+ setAuthType(auType);
+ event.stopPropagation();
+ assignPda(record);
+ }}
+ {...rest}
+ />
+ )
+}
+
export default RoleList;
--
Gitblit v1.9.1