From ea23135a8ffd14213e89f23f83c57f0089ef7a6a Mon Sep 17 00:00:00 2001 From: sunzhouyang Date: Tue, 14 Mar 2023 19:34:00 +0800 Subject: [PATCH] fix: import dataType problem --- .../api-shared/params-import/params-import.component.ts | 2 +- .../src/app/utils/data-transfer/data-transfer.utils.ts | 2 +- src/workbench/browser/src/app/utils/pc-merge.ts | 8 +++++--- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/workbench/browser/src/app/modules/api-shared/params-import/params-import.component.ts b/src/workbench/browser/src/app/modules/api-shared/params-import/params-import.component.ts index 3c080dd7c..fa41f4e02 100644 --- a/src/workbench/browser/src/app/modules/api-shared/params-import/params-import.component.ts +++ b/src/workbench/browser/src/app/modules/api-shared/params-import/params-import.component.ts @@ -183,7 +183,7 @@ export class ParamsImportComponent implements OnInit { const combineFunc = { overwrite: data => data, append: (data, base) => base.concat(data), - mixin: (data, base) => pcMerge(base, data, 'paramAttr.example', 'childList', false) + mixin: (data, base) => pcMerge(base, data, ['dataType', 'paramAttr.example'], 'childList', false) }; const endParse = (data, type) => { diff --git a/src/workbench/browser/src/app/utils/data-transfer/data-transfer.utils.ts b/src/workbench/browser/src/app/utils/data-transfer/data-transfer.utils.ts index d274614a8..95b282b3a 100644 --- a/src/workbench/browser/src/app/utils/data-transfer/data-transfer.utils.ts +++ b/src/workbench/browser/src/app/utils/data-transfer/data-transfer.utils.ts @@ -17,7 +17,7 @@ const parseTree = (key, value): BodyParam | unknown => { paramAttr: { example: '' }, - dataType: ApiParamsType.string, + dataType: ApiParamsType.object, description: '', childList: Object.keys(value).map(it => parseTree(it, value[it])) }; diff --git a/src/workbench/browser/src/app/utils/pc-merge.ts b/src/workbench/browser/src/app/utils/pc-merge.ts index c6521d317..5deddef3c 100644 --- a/src/workbench/browser/src/app/utils/pc-merge.ts +++ b/src/workbench/browser/src/app/utils/pc-merge.ts @@ -24,7 +24,7 @@ export interface RootObject { * @description Merge specified key * @param {RootObject[]} baseArr baseArr * @param {RootObject[]} newDataArr newDataArr - * @param {string} mergerKey specified key + * @param {string[]} mergerKey specified key * @param {string} childKey childList correspondence key * @param {boolean} childKey isChild * @return {RootObject[]} assginArr @@ -33,7 +33,7 @@ export interface RootObject { export const pcMerge = ( baseArr: RootObject[], newDataArr: RootObject[], - mergerKey: string, + mergerKey: string[], childKey: string, isChild: boolean ): RootObject[] => { @@ -45,7 +45,9 @@ export const pcMerge = ( for (let ele of handleData) { if (item.name === ele.name) { //Assigns the specified key - ele[mergerKey] = item[mergerKey]; + mergerKey.forEach(e => { + ele[e] = item[e]; + }); if (item[childKey] && item[childKey].length !== 0) { if (ele[childKey]) { //Subtree recursion