diff --git a/src/executor/tools/uploadTemplate.tsx b/src/executor/tools/uploadTemplate.tsx index 9be9f2b129626de42968bb4a0ad85d6ef079028f..9223905e06bace37cdbe17942fbcce3a4625085a 100644 --- a/src/executor/tools/uploadTemplate.tsx +++ b/src/executor/tools/uploadTemplate.tsx @@ -26,7 +26,6 @@ import React, { useEffect, useRef, useState } from 'react'; import _ from 'lodash'; import { setDefaultFields, setDefaultField } from '@/utils/work'; import { Form } from '@/ts/core/thing/standard/form'; -import { mergeConditions } from '../design/dataAnalysisModal/utils'; /** * 上传业务导入模板 @@ -615,26 +614,36 @@ export const matching = ( const metaForm = new Form(form, belong.directory); const assetNumberField = fieldsData.find((i) => i.name === form.matchImport || ''); const assetNumberCodes = data.map((item) => item[assetNumberField?.code!]); - let conditionsValues: any = []; + let conditionsValues: any; const classifyExp = tryParseJson(form.options?.dataRange?.classifyExp); const filterExpStr = form.options?.dataRange?.filterExp; const authExpStr = form.options?.dataRange?.authExp; + + const combineCondition = (newCond: any) => { + if (!newCond || (Array.isArray(newCond) && newCond.length === 0)) return; + if (!conditionsValues) { + conditionsValues = _.cloneDeep(newCond); + } else if (Array.isArray(conditionsValues)) { + if (conditionsValues.length && Array.isArray(conditionsValues[0])) { + conditionsValues.push('and', ..._.cloneDeep(newCond)); + } else { + conditionsValues = [conditionsValues, 'and', ..._.cloneDeep(newCond)]; + } + } + }; + if (filterExpStr) { const filterExp = typeof filterExpStr === 'string' ? JSON.parse(filterExpStr) : filterExpStr; - - conditionsValues = conditionsValues - ? mergeConditions(filterExp, conditionsValues) - : filterExp; + combineCondition(filterExp); } if (authExpStr) { const authExpResult = metaForm.parseAuthExp(authExpStr); const authExp = typeof authExpResult === 'string' ? JSON.parse(authExpResult) : authExpResult; - conditionsValues = conditionsValues - ? mergeConditions(authExp, conditionsValues) - : authExp; + combineCondition(authExp); } + let resultData: schema.XForm[] = []; const loadOptions: any = {}; loadOptions.userData = [];