Commit 42c9d596673f59c42a424c01aaa3758f63b8937e

Authored by 陈洋
2 parents ddf1d7f7 801ce943

Merge remote-tracking branch 'origin/feature/dataflow' into feature/dataflow

@@ -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 };