verou
2025-03-19 173fa3fa574eca7ccfae0dff28cb077cc4a5f391
fix:树状修改
6个文件已修改
109 ■■■■ 已修改文件
rsf-admin/src/page/basicInfo/loc/InitModal.jsx 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/basicInfo/loc/LocEdit.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/basicInfo/loc/LocList.jsx 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/basicInfo/matnr/MatnrEdit.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/basicInfo/matnr/MatnrList.jsx 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/basicInfo/matnr/MatnrListAside.jsx 89 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/basicInfo/loc/InitModal.jsx
@@ -133,7 +133,6 @@
                                    value={formData.locType}
                                    onChange={(e) => handleChange(e.target.value, 'locType')}
                                    size="small"
                                    validate={[required()]}
                                    dictTypeCode="sys_width_type"
                                />
                            </Grid>
rsf-admin/src/page/basicInfo/loc/LocEdit.jsx
@@ -171,7 +171,7 @@
                            <Grid item xs={6} display="flex" gap={1}>
                                <NumberInput
                                    label="table.field.loc.row"
                                    source="lrow"
                                    source="row"
                                    validate={required()}
                                />
                            </Grid>
rsf-admin/src/page/basicInfo/loc/LocList.jsx
@@ -148,16 +148,16 @@
                    <NumberField source="warehouseId$" label="table.field.loc.warehouseId" />
                    <NumberField source="areaId$" label="table.field.loc.areaId" />
                    <TextField source="code" label="table.field.loc.code" />
                    <TextField source="type" label="table.field.loc.type" />
                    <TextField source="type$" label="table.field.loc.type" />
                    <TextField source="name" label="table.field.loc.name" />
                    <NumberField source="flagLogic" label="table.field.loc.flagLogic" />
                    <TextField source="fucAtrrs" label="table.field.loc.fucAtrrs" />
                    <TextField source="barcode" label="table.field.loc.barcode" />
                    <TextField source="unit" label="table.field.loc.unit" />
                    <TextField source="size" label="table.field.loc.length" />
                    <TextField source="size" label="table.field.loc.width" />
                    <TextField source="size" label="table.field.loc.height" />
                    <NumberField source="lrow" label="table.field.loc.row" />
                    <TextField source="length" label="table.field.loc.length" />
                    <TextField source="width" label="table.field.loc.width" />
                    <TextField source="height" label="table.field.loc.height" />
                    <NumberField source="row" label="table.field.loc.row" />
                    <NumberField source="col" label="table.field.loc.col" />
                    <NumberField source="lev" label="table.field.loc.lev" />
                    <NumberField source="channel" label="table.field.loc.channel" />
@@ -165,6 +165,7 @@
                    <NumberField source="maxPack" label="table.field.loc.maxPack" />
                    <NumberField source="flagLabelMange" label="table.field.loc.flagLabelMange" />
                    <TextField source="locAttrs" label="table.field.loc.locAttrs" />
                    <TextField source="useStatus$" label="table.field.loc.useStatus" />
                    <ReferenceField source="updateBy" label="common.field.updateBy" reference="user" link={false} sortable={false}>
                        <TextField source="nickname" />
                    </ReferenceField>
rsf-admin/src/page/basicInfo/matnr/MatnrEdit.jsx
@@ -90,7 +90,7 @@
                defaultValues={{}}
            // validate={(values) => { }}
            >
                <Grid container width={{ xs: '20%', xl: '80%' }} rowSpacing={3} columnSpacing={3}>
                <Grid container rowSpacing={3} columnSpacing={3}>
                    <Grid item xs={12} md={10}>
                        <Typography variant="h6" gutterBottom>
rsf-admin/src/page/basicInfo/matnr/MatnrList.jsx
@@ -66,7 +66,7 @@
        width: '200px'
    },
    '& .RaList-main': {
        minHeight: '80vh'
        minHeight: '90vh'
    },
    '& .column-name': {
    },
@@ -149,7 +149,7 @@
    const { isLoading } = useListContext();
    return (
        <Box sx={{ position: 'relative', minHeight: "40vh", }}>
        <Box sx={{ position: 'relative', minHeight: "60vh", }}>
            {isLoading && (
                <LinearProgress
                    sx={{
rsf-admin/src/page/basicInfo/matnr/MatnrListAside.jsx
@@ -11,41 +11,25 @@
import { RichTreeView } from "@mui/x-tree-view/RichTreeView";
import { TreeItem2 } from "@mui/x-tree-view/TreeItem2";
const MatListAside = () => {
    const theme = useTheme();
    const notify = useNotify();
    const { setFilters } = useListContext(); // 获取列表上下文
    const [selectedOption, setSelectedOption] = useState(null);
    const [treeData, setTreeData] = useState([]);
    // 用于管理展开项的状态
    const [expandedItems, setExpandedItems] = useState([]);
    // 递归收集所有节点的 id
    const collectAllNodeIds = (nodes) => {
        let allIds = [];
        nodes.forEach((node) => {
            allIds.push(node.id.toString());
            if (node.children && Array.isArray(node.children)) {
                allIds = allIds.concat(collectAllNodeIds(node.children));
            }
        });
        return allIds;
    };
    const [defaultIds, setDefaultIds] = useState(['29']);
    const haveChildren = (item) => {
        // 如果 item 是一个数组,遍历数组中的每个元素
        if (Array.isArray(item)) {
            return item.map((k) => haveChildren(k));
        }
        // 如果 item 是一个对象
        if (item && typeof item === 'object') {
            // 将 id 转换为字符串
            if (item.id !== undefined) {
                item.id = item.id.toString();
            }
            // 如果存在 children,递归处理 children
            if (item.children && Array.isArray(item.children)) {
                item.children = haveChildren(item.children);
            }
@@ -53,16 +37,17 @@
        return item;
    };
    useEffect(() => {
        request.post('/matnrGroup/tree')
            .then(res => {
                if (res?.data?.code === 200) {
                    let data = res.data.data;
                    let items = haveChildren(data);
                    setTreeData(items);
                    // 当树数据更新时,更新展开项状态
                    setExpandedItems(collectAllNodeIds(items));
                    let items = haveChildren(data)
                    setTreeData(items)
                    setDefaultIds([items.at(0).id])
                } else {
                    notify(res.data.msg);
                }
@@ -70,56 +55,15 @@
            .catch(error => {
                notify('Error fetching tree data');
            });
    }, []);
    const treeData1 = [
        {
            id: '19',
            label: '半成品 ',
            editable: true,
            children: [
                {
                    id: 'grid-community',
                    label: '@mui/x-data-grid',
                    editable: true,
                    children: [
                        { id: 'grid-community22', label: '@mui/x-data-grid', editable: true },
                    ],
                },
                { id: 'grid-pro', label: '@mui/x-data-grid-pro', editable: true },
                { id: 'grid-premium', label: '@mui/x-data-grid-premium', editable: true },
            ],
        },
        {
            id: '18',
            label: '原材料',
        },
        {
            id: 'charts',
            label: 'Charts',
            children: [{ id: 'charts-community', label: '@mui/x-charts' }],
        },
        {
            id: 'tree-view',
            label: 'Tree View',
            children: [{ id: 'tree-view-community', label: '@mui/x-tree-view' }],
        },
        {
            id: 'tree-view2',
            label: 'Tree View3',
            children: [{ id: 'tree-view-community1', label: '@mui/x-tree-view' }],
        },
    ];
    const handleNodeSelect = (event, nodeId) => {
        console.log('Selected Node ID:', nodeId);
        setFilters({ groupId: nodeId });
        // 在这里可以根据 nodeId 更新主内容区域
    };
    const handleSearch = () => {
        console.log('Search Input:', selectedOption);
    };
    const CustomCheckbox = React.forwardRef(function CustomCheckbox(props, ref) {
        return <input type="checkbox" ref={ref} {...props} />;
@@ -136,6 +80,7 @@
            />
        );
    });
    return (
        <Card
@@ -154,18 +99,16 @@
                <SavedQueriesList icon={<BookmarkIcon />} />
                <FilterLiveSearch source="condition" />
                <RichTreeView
                    // 使用 expandedItems 控制展开状态
                    expandedItems={expandedItems}
                    // 处理展开项状态的变化
                    onExpandedItemsChange={(newExpandedItems) => setExpandedItems(newExpandedItems)}
                    defaultExpandedItems={defaultIds}
                    expansionTrigger="iconContainer"
                    items={treeData}
                    slots={CustomTreeItem}
                    onItemClick={handleNodeSelect} // 监听节点点击事件
                />
            </CardContent>
        </Card>
    );
};
    )
}
export default MatListAside;
export default MatListAside;