Spaces:
Sleeping
Sleeping
| 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; | |