Spaces:
Sleeping
Sleeping
File size: 1,221 Bytes
f3f614f |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
import styles from './index.module.less';
import classNames from 'classnames';
// 递归组件用于渲染mindMap中的节点
const MindMapItem = ({ item, isEnd }: any) => {
// 递归渲染子节点
const renderChildren = () => {
if (item.children && item.children.length > 0) {
return (
<ul className={item.children.length === 1 ? styles.onlyone : ''}>
{item.children.map((child: any) => (
<MindMapItem key={child.name} item={child} isEnd={isEnd} />
))}
</ul>
);
}
return null;
};
return (
<li>
<article className={
classNames(
item.state === 1 ? styles.loading : item.state === 2 ? styles.disabled : item.state === 3 ? styles.finished : "",
item.id === 0 ? styles.init : ''
)}>
<span>{item.name}</span>
{item.state === 1 && <div className={styles.looping}></div>}
{item.id !== 0 && <div className={styles.finishDot}></div>}
</article>
{item.children.length > 0 && renderChildren()}
{
isEnd && item.children?.length === 0 && <div className={classNames(styles.endLine, "endline")}></div>
}
</li>
);
};
export default MindMapItem;
|