From 5c1e5f8ce5e53c187f100f5d786a77991198960a Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期二, 18 三月 2025 15:23:44 +0800
Subject: [PATCH] 修改 # 物料导入导出添加动态扩展字段
---
rsf-admin/src/page/basicInfo/matnr/MatnrListAside.jsx | 64 +++++++++++++++++++-------------
1 files changed, 38 insertions(+), 26 deletions(-)
diff --git a/rsf-admin/src/page/basicInfo/matnr/MatnrListAside.jsx b/rsf-admin/src/page/basicInfo/matnr/MatnrListAside.jsx
index 5246f3a..e20ce92 100644
--- a/rsf-admin/src/page/basicInfo/matnr/MatnrListAside.jsx
+++ b/rsf-admin/src/page/basicInfo/matnr/MatnrListAside.jsx
@@ -11,14 +11,27 @@
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 trees = []
+ // 鐢ㄤ簬绠$悊灞曞紑椤圭殑鐘舵��
+ 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 haveChildren = (item) => {
// 濡傛灉 item 鏄竴涓暟缁勶紝閬嶅巻鏁扮粍涓殑姣忎釜鍏冪礌
if (Array.isArray(item)) {
@@ -40,19 +53,16 @@
return item;
};
+
useEffect(() => {
request.post('/matnrGroup/tree')
.then(res => {
- console.log('Tree Data:', res);
if (res?.data?.code === 200) {
let data = res.data.data;
- // for (let k of data) {
- // k.id = k.id.toString();
-
- // }
- let items = haveChildren(data)
- setTreeData(items)
- console.log('Tree Data:', items);
+ let items = haveChildren(data);
+ setTreeData(items);
+ // 褰撴爲鏁版嵁鏇存柊鏃讹紝鏇存柊灞曞紑椤圭姸鎬�
+ setExpandedItems(collectAllNodeIds(items));
} else {
notify(res.data.msg);
}
@@ -60,12 +70,7 @@
.catch(error => {
notify('Error fetching tree data');
});
-
-
-
}, []);
-
-
const treeData1 = [
{
@@ -74,8 +79,12 @@
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-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 },
@@ -101,15 +110,16 @@
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} />;
@@ -127,33 +137,35 @@
);
});
-
return (
<Card
sx={{
- display: { xs: 'none', md: 'block', },
order: -1,
mr: 2,
mt: 8,
alignSelf: 'flex-start',
border: theme.palette.mode === 'light' && '1px solid #e0e0e3',
- width: 250
+ width: 250,
+ minWidth: 150,
+ height: `calc(100% - 120px)`,
}}
>
<CardContent>
<SavedQueriesList icon={<BookmarkIcon />} />
<FilterLiveSearch source="condition" />
<RichTreeView
- defaultExpandedItems={['grid', 'pickers']}
+ // 浣跨敤 expandedItems 鎺у埗灞曞紑鐘舵��
+ expandedItems={expandedItems}
+ // 澶勭悊灞曞紑椤圭姸鎬佺殑鍙樺寲
+ onExpandedItemsChange={(newExpandedItems) => setExpandedItems(newExpandedItems)}
expansionTrigger="iconContainer"
items={treeData}
slots={CustomTreeItem}
onItemClick={handleNodeSelect} // 鐩戝惉鑺傜偣鐐瑰嚮浜嬩欢
-
/>
</CardContent>
</Card>
- )
-}
+ );
+};
-export default MatListAside;
+export default MatListAside;
\ No newline at end of file
--
Gitblit v1.9.1