From b5b400a615743a74e9d127261bd3785554aa06aa Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期六, 10 一月 2026 13:34:40 +0800
Subject: [PATCH] #
---
rsf-admin/src/page/system/role/RoleList.jsx | 64 +++++++++++++++++++++++++++++++-
1 files changed, 62 insertions(+), 2 deletions(-)
diff --git a/rsf-admin/src/page/system/role/RoleList.jsx b/rsf-admin/src/page/system/role/RoleList.jsx
index 0c5ea8f..bfed6b2 100644
--- a/rsf-admin/src/page/system/role/RoleList.jsx
+++ b/rsf-admin/src/page/system/role/RoleList.jsx
@@ -45,6 +45,7 @@
import AssignPermissions from "./AssignPermissions";
import AssignPermissionsPda from "./AssignPermissions_pda";
import AssignPermissionsMatnr from "./AssignPermissions_matnr";
+import AssignPermissionsWarehouse from "./AssignPermissions_warehouse";
import request from '@/utils/request';
import AssignmentIndIcon from '@mui/icons-material/AssignmentInd';
import AdUnitsIcon from '@mui/icons-material/AdUnits';
@@ -88,6 +89,7 @@
const [drawerVal, setDrawerVal] = useState(false);
const [drawerValPda, setDrawerValPda] = useState(false);
const [drawerValMatnr, setDrawerValMatnr] = useState(false);
+ const [drawerValWarehouse, setDrawerValWarehouse] = useState(false);
const [menuIds, setMenuIds] = useState([]);
@@ -95,6 +97,8 @@
const assign = (record) => {
setDrawerValPda(false);
+ setDrawerValMatnr(false);
+ setDrawerValWarehouse(false);
request('/role/scope/list', {
method: 'GET',
params: {
@@ -113,6 +117,8 @@
const assignPda = (record) => {
setDrawerVal(false);
+ setDrawerValMatnr(false);
+ setDrawerValWarehouse(false);
request('/rolePda/scope/list', {
method: 'GET',
params: {
@@ -131,6 +137,8 @@
const assignMatnr = (record) => {
setDrawerVal(false);
+ setDrawerValPda(false);
+ setDrawerValWarehouse(false);
request('/roleMatnr/scope/list', {
method: 'GET',
params: {
@@ -147,6 +155,26 @@
});
}
+ const assignWarehouse = (record) => {
+ setDrawerVal(false);
+ setDrawerValPda(false);
+ setDrawerValMatnr(false);
+ request('/roleWarehouse/scope/list', {
+ method: 'GET',
+ params: {
+ roleId: record.id
+ }
+ }).then((res) => {
+ if (res?.data?.code === 200) {
+ const { data: menuIds } = res.data;
+ setMenuIds(menuIds || []);
+ setDrawerValWarehouse(!!drawerValWarehouse && drawerValWarehouse === record ? null : record);
+ } else {
+ notify(res.data.msg, { type: 'error' });
+ }
+ });
+ }
+
return (
<Box display="flex">
<List
@@ -156,7 +184,7 @@
theme.transitions.create(['all'], {
duration: theme.transitions.duration.enteringScreen,
}),
- marginRight: (!!drawerVal || !!drawerValPda || !!drawerValMatnr) ? `${PAGE_DRAWER_WIDTH}px` : 0,
+ marginRight: (!!drawerVal || !!drawerValPda || !!drawerValMatnr || !!drawerValWarehouse) ? `${PAGE_DRAWER_WIDTH}px` : 0,
}}
title={"menu.role"}
empty={<EmptyData onClick={() => { setCreateDialog(true) }} />}
@@ -196,6 +224,7 @@
assign={assign}
assignPda={assignPda}
assignMatnr={assignMatnr}
+ assignWarehouse={assignWarehouse}
setAuthType={setAuthType}
/>
<EditButton sx={{ padding: '1px', fontSize: '.75rem' }} />
@@ -261,11 +290,29 @@
authType={authType}
/>
</PageDrawer>
+ <PageDrawer
+ drawerVal={drawerValWarehouse}
+ setDrawerVal={setDrawerValWarehouse}
+ title={!!drawerValWarehouse ? `Scope by ${drawerValWarehouse.code || drawerValWarehouse.name}` : 'Role Detail'}
+ closeCallback={() => {
+ setMenuIds([]);
+ }}
+ >
+ <AssignPermissionsWarehouse
+ role={drawerValWarehouse}
+ originMenuIds={menuIds}
+ setDrawerVal={setDrawerValWarehouse}
+ closeCallback={() => {
+ setMenuIds([]);
+ }}
+ authType={authType}
+ />
+ </PageDrawer>
</Box>
)
}
-const PermissionMenuButton = ({ assign, assignPda, assignMatnr, setAuthType }) => {
+const PermissionMenuButton = ({ assign, assignPda, assignMatnr, assignWarehouse, setAuthType }) => {
const record = useRecordContext();
const [anchorEl, setAnchorEl] = useState(null);
const open = Boolean(anchorEl);
@@ -298,6 +345,13 @@
event.stopPropagation();
setAuthType(2);
assignMatnr(record);
+ handleClose();
+ };
+
+ const handleWarehousePermission = (event) => {
+ event.stopPropagation();
+ setAuthType(3);
+ assignWarehouse(record);
handleClose();
};
@@ -343,6 +397,12 @@
</ListItemIcon>
<ListItemText>鐗╂枡鏉冮檺</ListItemText>
</MenuItem>
+ <MenuItem onClick={handleWarehousePermission}>
+ <ListItemIcon>
+ <ArticleIcon fontSize="small" />
+ </ListItemIcon>
+ <ListItemText>浠撳簱鏉冮檺</ListItemText>
+ </MenuItem>
</Menu>
</>
);
--
Gitblit v1.9.1