// 树形数据 localStorage 管理模块 // 注意:使用 any 类型避免循环依赖问题 export type TreeNode = any const STORAGE_KEY = 'app-tree-data' // 从 localStorage 获取数据 export const getTreeDataFromStorage = (): TreeNode[] | null => { try { const data = localStorage.getItem(STORAGE_KEY) if (data) { return JSON.parse(data) } } catch (error) { console.error('Error reading from localStorage:', error) } return null } // 保存数据到 localStorage export const saveTreeDataToStorage = (data: TreeNode[]) => { try { localStorage.setItem(STORAGE_KEY, JSON.stringify(data)) } catch (error) { console.error('Error saving to localStorage:', error) } } // 清空 localStorage 中的数据 export const clearTreeDataFromStorage = () => { try { localStorage.removeItem(STORAGE_KEY) } catch (error) { console.error('Error clearing localStorage:', error) } } // 初始化数据:如果有 localStorage 数据则使用,否则使用 mockData 并保存 export const initializeTreeData = (mockData: TreeNode[]): TreeNode[] => { const storedData = getTreeDataFromStorage() if (storedData) { console.log('Loaded tree data from localStorage') return storedData } // 首次加载,保存 mockData 到 localStorage saveTreeDataToStorage(mockData) console.log('Initialized tree data with mock data and saved to localStorage') return mockData }