From 031e36213941ad3430da2b0429701e742f09f5d8 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期二, 18 三月 2025 11:14:20 +0800 Subject: [PATCH] Merge branch 'front' into devlop --- 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