zjj
2025-05-21 f6881a3c81210316d56751f612346439c3ab814c
rsf-admin/src/page/system/role/AssignPermissions.jsx
@@ -4,7 +4,7 @@
    useNotify,
    TextInput
} from 'react-admin';
import { Box, Button, Card, Stack, CardContent, Skeleton } from '@mui/material';
import { Box, Button, Card, Stack, CardContent, Skeleton, TextField } from '@mui/material';
import { SimpleTreeView, TreeItem, RichTreeView, useTreeViewApiRef } from '@mui/x-tree-view';
import SaveIcon from '@mui/icons-material/Save';
import request from '@/utils/request'
@@ -20,10 +20,15 @@
    const [treeData, setTreeData] = useState([]);
    const [selectedItems, setSelectedItems] = useState([]);
    const [expandedItems, setExpandedItems] = useState([]);
    const [parmas, setParmas] = useState({ condition: '' });
    const toggledItemRef = useRef({});
    const apiRef = useTreeViewApiRef();
    useEffect(() => {
        reload()
    }, [role, originMenuIds])
    const reload = () => {
        setSelectedItems(originMenuIds.map(item => item + ""));
        const transformTree = (treeData) => {
@@ -37,7 +42,7 @@
            })
        }
        const http = async () => {
            const res = await request.post('/menu' + '/tree', { condition: '' });
            const res = await request.post('/menu/tree', parmas);
            if (res?.data?.code === 200) {
                const transformData = transformTree(res.data.data);
                setTreeData(transformData);
@@ -53,7 +58,7 @@
        setTimeout(() => {
            http();
        }, 200);
    }, [role, originMenuIds])
    }
    const getAllItemItemIds = () => {
@@ -157,16 +162,26 @@
        })
    }
    const search = (e) => {
        const value = e.target.value;
        setParmas({
            ...parmas,
            condition: value
        })
        reload()
    }
    return (
        <>
            <Card sx={{
                ml: 1,
                mr: 1,
                height: '620px'
                height: 'calc(100vh - 140px)',
                overflowY: 'auto'
            }}>
                <CardContent sx={{
                    overflow: 'auto',
                    height: '100%',
                    display: 'flex',
                    flexDirection: 'column',
                    justifyContent: 'space-between'
@@ -193,16 +208,16 @@
                        </Box>
                        <Box sx={{
                            display: 'flex',
                            justifyContent: 'flex-start'
                            justifyContent: 'space-between',
                            alignItems: 'center'
                        }}>
                            <Button startIcon={<SaveIcon />} variant="contained" onClick={handleSave}>
                            <TextField sx={{ width: '200px' }} label="搜索菜单" variant="outlined" value={parmas.condition} onChange={(e) => search(e)} />
                            <Button startIcon={<SaveIcon />} size="small" variant="contained" onClick={handleSave} sx={{ height: '40px' }}>
                                {translate('ra.action.save')}
                            </Button>
                        </Box>
                        <Box sx={{
                            height: 480,
                            minWidth: 290,
                            overflow: 'auto',
                            marginTop: '10px',