feat(flowEditor): 新增自定义节点并优化节点类型注册
- 新增 LocalNode 组件用于系统组件节点 - 在 flowEditor/index.tsx 中实现节点类型动态注册 - 更新 sideBar/config/localNodeData.ts,修正 JSON 封装节点类型 - 删除未使用的 handleNode 组件 - 优化 draggableNode 组件,移除冗余代码master
parent
e4ff51fdb3
commit
88f6b9f4eb
@ -1,14 +0,0 @@
|
|||||||
import React from 'react';
|
|
||||||
import { Handle, Position } from '@xyflow/react';
|
|
||||||
|
|
||||||
const CustomNode = ({ data }) => {
|
|
||||||
return (
|
|
||||||
<>
|
|
||||||
<div style={{ padding: '10px 20px' }}>
|
|
||||||
{data.label}
|
|
||||||
</div>
|
|
||||||
</>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
export default CustomNode;
|
|
||||||
@ -0,0 +1,25 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import { useStore } from '@xyflow/react';
|
||||||
|
import styles from '@/pages/flowEditor/node/style/base.module.less';
|
||||||
|
import NodeContent from '@/pages/flowEditor/components/nodeContent';
|
||||||
|
|
||||||
|
const LocalNode = ({ data, id }: { data: any; id: string }) => {
|
||||||
|
const title = data.title || '系统组件';
|
||||||
|
|
||||||
|
// 获取节点选中状态 - 适配React Flow v12 API
|
||||||
|
const isSelected = useStore((state) =>
|
||||||
|
state.nodeLookup.get(id)?.selected || false
|
||||||
|
);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className={`${styles['node-container']} ${isSelected ? styles.selected : ''}`}>
|
||||||
|
<div className={styles['node-header']} style={{ backgroundColor: '#1890ff' }}>
|
||||||
|
{title}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<NodeContent data={data} />
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default LocalNode;
|
||||||
Loading…
Reference in New Issue