Commit d21c2df0ed1d6220d6658280cb7e0c7734397c1b

Authored by qiang.tian
1 parent d81460f7

fix: 节点选择回显

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