feat(componentLibrary): 实现组件库页面功能
- 添加组件库页面布局和样式 - 实现搜索框、组件推荐按钮和标签页功能 - 新增 CollapseBox组件用于展示组件数据 - 添加本地存储数据获取和设置工具函数master
parent
f3fdf25e03
commit
8d180679a6
@ -0,0 +1,50 @@
|
|||||||
|
import React, { useState, useEffect } from 'react';
|
||||||
|
import { Collapse, Tag } from '@arco-design/web-react';
|
||||||
|
import { getLocalStorageData } from '@/utils/storage';
|
||||||
|
|
||||||
|
const CollapseItem = Collapse.Item;
|
||||||
|
|
||||||
|
interface CollapseBoxProps {
|
||||||
|
componentType: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
const CollapseBox: React.FC<CollapseBoxProps> = ({ componentType }) => {
|
||||||
|
const [collapseData, setCollapseData] = useState([]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
const data = getLocalStorageData('componentsData')[`${componentType}`];
|
||||||
|
setCollapseData(data);
|
||||||
|
}, [componentType]);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<Collapse>
|
||||||
|
{collapseData.map((v, i) => {
|
||||||
|
return (
|
||||||
|
<CollapseItem
|
||||||
|
key={i}
|
||||||
|
name={`${v.label}_${i}`}
|
||||||
|
header={
|
||||||
|
<span>
|
||||||
|
<span style={{ marginRight: 8 }}>{v.label}</span>
|
||||||
|
<Tag color="arcoblue">{v.children.length}</Tag>
|
||||||
|
</span>
|
||||||
|
}
|
||||||
|
>
|
||||||
|
{v.children.map((v, i) => {
|
||||||
|
return (
|
||||||
|
<div key={i}>
|
||||||
|
<Tag>{v.label}</Tag>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
})}
|
||||||
|
</CollapseItem>
|
||||||
|
);
|
||||||
|
})}
|
||||||
|
</Collapse>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default CollapseBox;
|
||||||
|
|
||||||
@ -0,0 +1,3 @@
|
|||||||
|
.composite-comp-library-container{
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,17 @@
|
|||||||
|
export const getLocalStorageData = <T>(key: string): T => {
|
||||||
|
try {
|
||||||
|
const storedData = localStorage.getItem(key);
|
||||||
|
return JSON.parse(storedData);
|
||||||
|
} catch (error) {
|
||||||
|
console.error(`获取 localStorage 数据失败 (${key}):`, error);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
export const setLocalStorageData = <T>(key: string, data: T): void => {
|
||||||
|
try {
|
||||||
|
localStorage.setItem(key, JSON.stringify(data));
|
||||||
|
} catch (error) {
|
||||||
|
console.error(`设置 localStorage 数据失败 (${key}):`, error);
|
||||||
|
}
|
||||||
|
};
|
||||||
Loading…
Reference in New Issue