Commit 42c9d596673f59c42a424c01aaa3758f63b8937e
Merge remote-tracking branch 'origin/feature/dataflow' into feature/dataflow
Showing
1 changed file
with
23 additions
and
18 deletions
@@ -109,7 +109,7 @@ export const useNodeFieldDisplay = ({ | @@ -109,7 +109,7 @@ export const useNodeFieldDisplay = ({ | ||
109 | return null; | 109 | return null; |
110 | }; | 110 | }; |
111 | 111 | ||
112 | - const genDisplayDom = (value: string) => { | 112 | + const genDisplayDom = (value: string, nodes: INode[]) => { |
113 | const itemId = getId(value); | 113 | const itemId = getId(value); |
114 | if (!itemId) return; | 114 | if (!itemId) return; |
115 | let displayConfig: any[] = []; | 115 | let displayConfig: any[] = []; |
@@ -118,7 +118,7 @@ export const useNodeFieldDisplay = ({ | @@ -118,7 +118,7 @@ export const useNodeFieldDisplay = ({ | ||
118 | while (n && index <= 20) { | 118 | while (n && index <= 20) { |
119 | displayConfig = []; | 119 | displayConfig = []; |
120 | // eslint-disable-next-line @typescript-eslint/no-use-before-define | 120 | // eslint-disable-next-line @typescript-eslint/no-use-before-define |
121 | - const curNode = cloneDeep(optionalNodes[index]) || {}; | 121 | + const curNode = cloneDeep(nodes[index]) || {}; |
122 | displayConfig.push({ | 122 | displayConfig.push({ |
123 | title: curNode.name, | 123 | title: curNode.name, |
124 | icon: curNode.icon, | 124 | icon: curNode.icon, |
@@ -151,7 +151,6 @@ export const useNodeFieldDisplay = ({ | @@ -151,7 +151,6 @@ export const useNodeFieldDisplay = ({ | ||
151 | n = false; | 151 | n = false; |
152 | } | 152 | } |
153 | } | 153 | } |
154 | - | ||
155 | return ( | 154 | return ( |
156 | <> | 155 | <> |
157 | {displayConfig?.map((item, idx) => ( | 156 | {displayConfig?.map((item, idx) => ( |
@@ -186,10 +185,10 @@ export const useNodeFieldDisplay = ({ | @@ -186,10 +185,10 @@ export const useNodeFieldDisplay = ({ | ||
186 | ); | 185 | ); |
187 | }; | 186 | }; |
188 | 187 | ||
189 | - const renderInputDisplay = (val: string = value || '') => { | 188 | + const renderInputDisplay = (nodes: INode[] = optionalNodes, val: string = value || '', ) => { |
190 | setInputDisplay( | 189 | setInputDisplay( |
191 | <Tag bordered={false} className="qx-node-select-input__content"> | 190 | <Tag bordered={false} className="qx-node-select-input__content"> |
192 | - {genDisplayDom(val)} | 191 | + {genDisplayDom(val, nodes)} |
193 | </Tag>, | 192 | </Tag>, |
194 | ); | 193 | ); |
195 | }; | 194 | }; |
@@ -197,7 +196,7 @@ export const useNodeFieldDisplay = ({ | @@ -197,7 +196,7 @@ export const useNodeFieldDisplay = ({ | ||
197 | /*** | 196 | /*** |
198 | * 查找有 formId 的 result | 197 | * 查找有 formId 的 result |
199 | */ | 198 | */ |
200 | - const findResultByFormId = () => { | 199 | + const findResultByFormId = (sourceParentNodes: INode[]) => { |
201 | const forms: FiledType[] = []; | 200 | const forms: FiledType[] = []; |
202 | sourceParentNodes.forEach((node) => { | 201 | sourceParentNodes.forEach((node) => { |
203 | if (Array.isArray(node.data?.result)) { | 202 | if (Array.isArray(node.data?.result)) { |
@@ -230,7 +229,7 @@ export const useNodeFieldDisplay = ({ | @@ -230,7 +229,7 @@ export const useNodeFieldDisplay = ({ | ||
230 | * 查询所有 formId 的字段,并给 result 添加 child | 229 | * 查询所有 formId 的字段,并给 result 添加 child |
231 | */ | 230 | */ |
232 | const handleGetAppsFields = async () => { | 231 | const handleGetAppsFields = async () => { |
233 | - const forms = findResultByFormId(); | 232 | + const forms = findResultByFormId(sourceParentNodes); |
234 | const ids = forms.map((item) => item.qxProps?.formId); | 233 | const ids = forms.map((item) => item.qxProps?.formId); |
235 | if (Array.isArray(ids) && ids.length && subset) { | 234 | if (Array.isArray(ids) && ids.length && subset) { |
236 | try { | 235 | try { |
@@ -250,7 +249,7 @@ export const useNodeFieldDisplay = ({ | @@ -250,7 +249,7 @@ export const useNodeFieldDisplay = ({ | ||
250 | id: item.code, | 249 | id: item.code, |
251 | type: item.extract?.fieldType, | 250 | type: item.extract?.fieldType, |
252 | })); | 251 | })); |
253 | - | 252 | + |
254 | if (Array.isArray(form.child)) { | 253 | if (Array.isArray(form.child)) { |
255 | form.child.push(childItem); | 254 | form.child.push(childItem); |
256 | } else { | 255 | } else { |
@@ -261,7 +260,6 @@ export const useNodeFieldDisplay = ({ | @@ -261,7 +260,6 @@ export const useNodeFieldDisplay = ({ | ||
261 | } catch (error) { | 260 | } catch (error) { |
262 | // appsFields = {}; | 261 | // appsFields = {}; |
263 | } finally { | 262 | } finally { |
264 | - renderInputDisplay(); | ||
265 | } | 263 | } |
266 | } | 264 | } |
267 | return sourceParentNodes; | 265 | return sourceParentNodes; |
@@ -291,18 +289,22 @@ export const useNodeFieldDisplay = ({ | @@ -291,18 +289,22 @@ export const useNodeFieldDisplay = ({ | ||
291 | const getOptionalNodes = async () => { | 289 | const getOptionalNodes = async () => { |
292 | const targetParentNodes = await handleGetAppsFields(); | 290 | const targetParentNodes = await handleGetAppsFields(); |
293 | 291 | ||
294 | - for (let i = 0; i< targetParentNodes.length;i++) { | ||
295 | - correctionNodeField(targetParentNodes[i].data?.result || []) | 292 | + for (let i = 0; i < targetParentNodes.length; i++) { |
293 | + correctionNodeField(targetParentNodes[i].data?.result || []); | ||
294 | + } | ||
295 | + | ||
296 | + if (!limitTypes) { | ||
297 | + setOptionalNodes(targetParentNodes); | ||
298 | + renderInputDisplay(targetParentNodes); | ||
299 | + return; | ||
296 | } | 300 | } |
297 | - | ||
298 | - if (!limitTypes) return setOptionalNodes(targetParentNodes); | ||
299 | 301 | ||
300 | function getEffectiveResult(result: FiledType[]) { | 302 | function getEffectiveResult(result: FiledType[]) { |
301 | const newResult = []; | 303 | const newResult = []; |
302 | for (let i = 0; i < result.length; i++) { | 304 | for (let i = 0; i < result.length; i++) { |
303 | - const resultItem = result[i] || {}; | ||
304 | - correctionNodeField(resultItem) | ||
305 | - | 305 | + const resultItem = result[i] || {}; |
306 | + correctionNodeField(resultItem); | ||
307 | + | ||
306 | if (resultItem.child) { | 308 | if (resultItem.child) { |
307 | resultItem.child = getEffectiveResult(resultItem.child); | 309 | resultItem.child = getEffectiveResult(resultItem.child); |
308 | if ( | 310 | if ( |
@@ -333,6 +335,7 @@ export const useNodeFieldDisplay = ({ | @@ -333,6 +335,7 @@ export const useNodeFieldDisplay = ({ | ||
333 | 335 | ||
334 | const newNodes = getEffectiveNodes(targetParentNodes); | 336 | const newNodes = getEffectiveNodes(targetParentNodes); |
335 | setOptionalNodes([...newNodes]); | 337 | setOptionalNodes([...newNodes]); |
338 | + renderInputDisplay([...newNodes]); | ||
336 | }; | 339 | }; |
337 | 340 | ||
338 | useEffect(() => { | 341 | useEffect(() => { |
@@ -388,7 +391,9 @@ const SelectItem = (props: any) => { | @@ -388,7 +391,9 @@ const SelectItem = (props: any) => { | ||
388 | onClick={() => props.onClick(props)} | 391 | onClick={() => props.onClick(props)} |
389 | > | 392 | > |
390 | {/* @ts-ignore */} | 393 | {/* @ts-ignore */} |
391 | - {props.icon ? props.icon : `[${FieldMapType[props.extract?.fieldType]}]`} | 394 | + {props.icon |
395 | + ? props.icon | ||
396 | + : `[${FieldMapType[props.extract?.fieldType]}]`} | ||
392 | {props.name} | 397 | {props.name} |
393 | </div> | 398 | </div> |
394 | ); | 399 | ); |
@@ -466,7 +471,7 @@ export const QxFlowNodeFieldSelector: React.FC<NodeFieldSelectProps> = ( | @@ -466,7 +471,7 @@ export const QxFlowNodeFieldSelector: React.FC<NodeFieldSelectProps> = ( | ||
466 | const newValue = '${' + `${nodeKey}|${item.id}` + '}'; | 471 | const newValue = '${' + `${nodeKey}|${item.id}` + '}'; |
467 | props.onChange?.(newValue, item); | 472 | props.onChange?.(newValue, item); |
468 | if (!props.children) { | 473 | if (!props.children) { |
469 | - renderInputDisplay(newValue); | 474 | + renderInputDisplay(optionalNodes ,newValue); |
470 | } | 475 | } |
471 | setVisible(false); | 476 | setVisible(false); |
472 | }; | 477 | }; |