From 7c30cb2faa3e849bc9684149d41e6c51e0e8566b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=98=94=E6=A2=A6?= Date: Mon, 6 Jan 2025 11:50:05 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E5=B9=B6=E8=A1=8C=E8=8A=82=E7=82=B9?= =?UTF-8?q?=E6=9B=B4=E6=94=B9=EF=BC=9A=201.data=E6=95=B0=E6=8D=AE=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F=E7=BB=9F=E4=B8=80=202.value=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E5=9C=A8=E4=B8=8B=E6=96=B9=EF=BC=8C=E5=8F=AF=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/xflow/demo/log/buildIn-log/index.tsx | 8 +- docs/xflow/demo/log/custom-log/index.tsx | 8 +- docs/xflow/demo/log/index.tsx | 8 +- .../xflow/demo/parallelNode/custome/index.tsx | 10 +- docs/xflow/demo/parallelNode/index.tsx | 10 +- docs/xflow/nodeBuildIn.md | 2 +- .../src/components/NodeEditor/index.tsx | 8 +- .../src/components/NodesPopover/index.tsx | 2 +- .../ParallelBuildInNodeWidget.tsx | 151 +++++++++++------- .../x-flow/src/nodes/node-parallel/index.less | 2 +- .../src/nodes/node-parallel/setting/index.tsx | 20 ++- packages/x-flow/src/types.ts | 3 +- packages/x-flow/src/withProvider.tsx | 2 +- 13 files changed, 143 insertions(+), 91 deletions(-) diff --git a/docs/xflow/demo/log/buildIn-log/index.tsx b/docs/xflow/demo/log/buildIn-log/index.tsx index d0c7d0034..956a6c677 100644 --- a/docs/xflow/demo/log/buildIn-log/index.tsx +++ b/docs/xflow/demo/log/buildIn-log/index.tsx @@ -46,11 +46,11 @@ export default () => { _status: 'warning', list: [ { - _parallelId: 'parallel_30ds0x3evus7ogo2', + _id: 'id_30ds0x3evus7ogo2', value: '事件1', }, { - _parallelId: 'parallel_m1l276eelcgn7s1p', + _id: 'id_m1l276eelcgn7s1p', value: '事件2', }, ], @@ -121,13 +121,13 @@ export default () => { id: 'ky0eedrd6t2hqq81', source: 'mcelcsg6pinydoy7', target: '4m9tee00n819nyyy', - sourceHandle: 'parallel_30ds0x3evus7ogo2', + sourceHandle: 'id_30ds0x3evus7ogo2', }, { id: '7tm5a339lj94ugtn', source: 'mcelcsg6pinydoy7', target: 'j0kufl0o4fca4ee9', - sourceHandle: 'parallel_m1l276eelcgn7s1p', + sourceHandle: 'id_m1l276eelcgn7s1p', }, { type: 'buttonedge', diff --git a/docs/xflow/demo/log/custom-log/index.tsx b/docs/xflow/demo/log/custom-log/index.tsx index 05067cfec..b9e4d2524 100644 --- a/docs/xflow/demo/log/custom-log/index.tsx +++ b/docs/xflow/demo/log/custom-log/index.tsx @@ -19,11 +19,11 @@ export default () => { _status: 'warning', list: [ { - _parallelId: 'parallel_30ds0x3evus7ogo2', + _id: 'id_30ds0x3evus7ogo2', value: '事件1', }, { - _parallelId: 'parallel_m1l276eelcgn7s1p', + _id: 'id_m1l276eelcgn7s1p', value: '事件2', }, ], @@ -81,13 +81,13 @@ export default () => { id: 'ky0eedrd6t2hqq81', source: 'mcelcsg6pinydoy7', target: '4m9tee00n819nyyy', - sourceHandle: 'parallel_30ds0x3evus7ogo2', + sourceHandle: 'id_30ds0x3evus7ogo2', }, { id: '7tm5a339lj94ugtn', source: 'mcelcsg6pinydoy7', target: 'j0kufl0o4fca4ee9', - sourceHandle: 'parallel_m1l276eelcgn7s1p', + sourceHandle: 'id_m1l276eelcgn7s1p', }, { type: 'buttonedge', diff --git a/docs/xflow/demo/log/index.tsx b/docs/xflow/demo/log/index.tsx index d0c7d0034..956a6c677 100644 --- a/docs/xflow/demo/log/index.tsx +++ b/docs/xflow/demo/log/index.tsx @@ -46,11 +46,11 @@ export default () => { _status: 'warning', list: [ { - _parallelId: 'parallel_30ds0x3evus7ogo2', + _id: 'id_30ds0x3evus7ogo2', value: '事件1', }, { - _parallelId: 'parallel_m1l276eelcgn7s1p', + _id: 'id_m1l276eelcgn7s1p', value: '事件2', }, ], @@ -121,13 +121,13 @@ export default () => { id: 'ky0eedrd6t2hqq81', source: 'mcelcsg6pinydoy7', target: '4m9tee00n819nyyy', - sourceHandle: 'parallel_30ds0x3evus7ogo2', + sourceHandle: 'id_30ds0x3evus7ogo2', }, { id: '7tm5a339lj94ugtn', source: 'mcelcsg6pinydoy7', target: 'j0kufl0o4fca4ee9', - sourceHandle: 'parallel_m1l276eelcgn7s1p', + sourceHandle: 'id_m1l276eelcgn7s1p', }, { type: 'buttonedge', diff --git a/docs/xflow/demo/parallelNode/custome/index.tsx b/docs/xflow/demo/parallelNode/custome/index.tsx index 278a84005..5f85366c1 100644 --- a/docs/xflow/demo/parallelNode/custome/index.tsx +++ b/docs/xflow/demo/parallelNode/custome/index.tsx @@ -16,12 +16,14 @@ export default () => { data: { list: [ { - _parallelId: 'parallel_30ds0x3evus7ogo2', + _id: 'id_30ds0x3evus7ogo2', value: '事件1', + title: "事件1" }, { - _parallelId: 'parallel_m1l276eelcgn7s1p', + _id: 'id_m1l276eelcgn7s1p', value: '事件2', + title: "事件1" }, ], }, @@ -71,13 +73,13 @@ export default () => { id: 'ky0eedrd6t2hqq81', source: 'mcelcsg6pinydoy7', target: '4m9tee00n819nyyy', - sourceHandle: 'parallel_30ds0x3evus7ogo2', + sourceHandle: 'id_30ds0x3evus7ogo2', }, { id: '7tm5a339lj94ugtn', source: 'mcelcsg6pinydoy7', target: 'j0kufl0o4fca4ee9', - sourceHandle: 'parallel_m1l276eelcgn7s1p', + sourceHandle: 'id_m1l276eelcgn7s1p', }, { type: 'buttonedge', diff --git a/docs/xflow/demo/parallelNode/index.tsx b/docs/xflow/demo/parallelNode/index.tsx index ba98d60b2..48d45d83e 100644 --- a/docs/xflow/demo/parallelNode/index.tsx +++ b/docs/xflow/demo/parallelNode/index.tsx @@ -10,12 +10,14 @@ export default () => { data: { list: [ { - _parallelId: 'parallel_30ds0x3evus7ogo2', + _id: 'id_30ds0x3evus7ogo2', value: '事件1', + title:"标题1" }, { - _parallelId: 'parallel_m1l276eelcgn7s1p', + _id: 'id_m1l276eelcgn7s1p', value: '事件2', + title: "标题2" }, ], }, @@ -65,13 +67,13 @@ export default () => { id: 'ky0eedrd6t2hqq81', source: 'mcelcsg6pinydoy7', target: '4m9tee00n819nyyy', - sourceHandle: 'parallel_30ds0x3evus7ogo2', + sourceHandle: 'id_30ds0x3evus7ogo2', }, { id: '7tm5a339lj94ugtn', source: 'mcelcsg6pinydoy7', target: 'j0kufl0o4fca4ee9', - sourceHandle: 'parallel_m1l276eelcgn7s1p', + sourceHandle: 'id_m1l276eelcgn7s1p', }, { type: 'buttonedge', diff --git a/docs/xflow/nodeBuildIn.md b/docs/xflow/nodeBuildIn.md index ac4e0e12e..870b6944e 100644 --- a/docs/xflow/nodeBuildIn.md +++ b/docs/xflow/nodeBuildIn.md @@ -40,7 +40,7 @@ group: ## 并行节点 - 内置并行节点,可以直接设置type为`Parallel`使用,并行节点的数据格式为`data:{list:[{value:"条件1",_parallelId:"parallel_${随机数}"}]}`,`_parallelId`为边数据的`sourceHandle`,以便条件和边一一对应。 + 内置并行节点,可以直接设置type为`Parallel`使用,并行节点的数据格式为`data:{list:[{title:"事件一",value:"值1",_id:"id_${随机数}"}]}`,`_id`为边数据的`sourceHandle`,以便条件和边一一对应。 并行节点的每个连接头只能连接一个节点,不能连接多个节点,如果要更换节点,可以通过删除已连接节点或者在连接线上新增节点的方式更换目标节点。 diff --git a/packages/x-flow/src/components/NodeEditor/index.tsx b/packages/x-flow/src/components/NodeEditor/index.tsx index ccd6f2097..361c85ba6 100644 --- a/packages/x-flow/src/components/NodeEditor/index.tsx +++ b/packages/x-flow/src/components/NodeEditor/index.tsx @@ -89,16 +89,16 @@ const NodeEditor: FC = (props: any) => { }); } else if (node?.data?._nodeType === 'Parallel' && data?.list?.length) { data['list'] = data?.list?.map((item, index) => { - if (item?._parallelId) { + if (item?._id) { return item; } else { - if (node?.data?.list[index]?._parallelId) { + if (node?.data?.list[index]?._id) { return { ...item, - _parallelId: node?.data?.list[index]?._parallelId, + _id: node?.data?.list[index]?._id, }; } else { - return { ...item, _parallelId: `parallel_${uuid()}` }; + return { ...item, _id: `id_${uuid()}` }; } } }); diff --git a/packages/x-flow/src/components/NodesPopover/index.tsx b/packages/x-flow/src/components/NodesPopover/index.tsx index c0e7a18a9..df3b39843 100644 --- a/packages/x-flow/src/components/NodesPopover/index.tsx +++ b/packages/x-flow/src/components/NodesPopover/index.tsx @@ -44,7 +44,7 @@ export default forwardRef((props: any, popoverRef) => { if (type === 'Switch') { addNode({ _nodeType: type, list: [{ '_conditionId':`${uuid()}`}] }); } else if (type === 'Parallel') { - addNode({ _nodeType: type, list: [{ _parallelId: `parallel_${uuid()}` }, { _parallelId: `parallel_${uuid()}` }] }); + addNode({ _nodeType: type, list: [{ _id: `id_${uuid()}` }, { _id: `id_${uuid()}` }] }); } else { addNode({ _nodeType: type }); } diff --git a/packages/x-flow/src/nodes/node-parallel/ParallelBuildInNodeWidget.tsx b/packages/x-flow/src/nodes/node-parallel/ParallelBuildInNodeWidget.tsx index 48778c689..a667622b8 100644 --- a/packages/x-flow/src/nodes/node-parallel/ParallelBuildInNodeWidget.tsx +++ b/packages/x-flow/src/nodes/node-parallel/ParallelBuildInNodeWidget.tsx @@ -33,6 +33,78 @@ export default memo((props: any) => { shallow ); + const renderTitle = (item, index) => ( +
+
+ {item?.title && ( + + document.getElementById('xflow-container'), + }, + }} + > + {item?.title} + + )} +
+ flow?.sourceHandle === item?._id) + ?.length === 0 + } + selected={selected} + isHovered={isHovered} + handleAddNode={data => { + handleAddNode(data, item?._id); + }} + id={item?._id} + className="item-handle" + /> +
+ ); + + const renderContent = (item, index) => ( +
+ {CustomNodeWidget ? ( + + ) : ( + <> + {item?.value && ( + + document.getElementById('xflow-container'), + }, + }} + > + {item?.value} + + )} + + )} +
+ ); + return ( { })} size={5} > - {( - data?.list || [ - { _parallelId: `parallel_${uuid()}` }, - { _parallelId: `parallel_${uuid()}` }, - ] - )?.map((item, index) => ( -
-
-
- {CustomNodeWidget ? ( - - ) : ( - <> - {item?.value && ( - - document.getElementById('xflow-container'), - }, - }} - > - {item?.value} - - )} - - )} -
- flow?.sourceHandle === item?._parallelId - )?.length === 0 - } - selected={selected} - isHovered={isHovered} - handleAddNode={data => { - handleAddNode(data, item?._parallelId); - }} - id={item?._parallelId} - className="item-handle" - /> + {(data?.list || [{ _id: `id_${uuid()}` }, { _id: `id_${uuid()}` }])?.map( + (item, index) => ( +
+ {isSwitchBottom ? ( + <> + {renderContent(item, index)} + {renderTitle(item, index)} + + ) : ( + <> + {renderTitle(item, index)} + {renderContent(item, index)} + + )}
-
- ))} + ) + )} ); }); diff --git a/packages/x-flow/src/nodes/node-parallel/index.less b/packages/x-flow/src/nodes/node-parallel/index.less index b7186d5c7..2c8f664f7 100644 --- a/packages/x-flow/src/nodes/node-parallel/index.less +++ b/packages/x-flow/src/nodes/node-parallel/index.less @@ -35,7 +35,7 @@ .item-title { text-align: right; font-weight: 600; - min-height: 30px; + min-height: 28px; .ant-typography { margin-bottom: 0; diff --git a/packages/x-flow/src/nodes/node-parallel/setting/index.tsx b/packages/x-flow/src/nodes/node-parallel/setting/index.tsx index 512d6ac0e..ebe3fe2f9 100644 --- a/packages/x-flow/src/nodes/node-parallel/setting/index.tsx +++ b/packages/x-flow/src/nodes/node-parallel/setting/index.tsx @@ -11,14 +11,14 @@ interface INodeSwitchSettingPorps { const schema: Schema = { type: 'object', - span: 24, - displayType: 'row', + displayType:'row', + // span: 24, properties: { list: { type: 'array', widget: 'simpleList', - display: 'block', - min: 2, + // display: 'block', + // min: 2, default:[{},{}], props: { hideCopy: true, @@ -27,9 +27,21 @@ const schema: Schema = { items: { type: 'object', properties: { + title: { + title: '标题', + type: 'string', + props: { + allowClear:true + }, + span:6 + }, value: { title: '事件', type: 'string', + props: { + allowClear: true + }, + span: 6 }, }, }, diff --git a/packages/x-flow/src/types.ts b/packages/x-flow/src/types.ts index f73041fbc..427bd67bf 100644 --- a/packages/x-flow/src/types.ts +++ b/packages/x-flow/src/types.ts @@ -124,7 +124,8 @@ export interface FlowProps { readOnly?:boolean//只读模式 panel?:TPanel //表单配置面板 onNodeClick?: NodeMouseHandler; - onMenuItemClick: (itemInfo: ItemInfo,defaultAction:()=>void) => void; + onMenuItemClick: (itemInfo: ItemInfo, defaultAction: () => void) => void; + // 单点调试方法 } interface ItemInfo { key: 'copy' | 'paste' | 'delete' | string; diff --git a/packages/x-flow/src/withProvider.tsx b/packages/x-flow/src/withProvider.tsx index 49d96b2e9..3a740a867 100644 --- a/packages/x-flow/src/withProvider.tsx +++ b/packages/x-flow/src/withProvider.tsx @@ -30,7 +30,7 @@ export default function withProvider( globalConfig, logPanel, onMenuItemClick, - antdVersion ='V5', + antdVersion ='V4', readOnly, ...restProps } = props;