From 8e2d37021d572dca036048ee9c6acaecda633b8b Mon Sep 17 00:00:00 2001 From: BAIQI <443543832@qq.com> Date: Sat, 10 Feb 2024 19:20:12 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E6=8E=A5=E5=8F=A3=E6=B5=8B=E8=AF=95):?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E8=B0=83=E8=AF=95=E5=8F=82=E6=95=B0=E5=AF=B9?= =?UTF-8?q?=E9=BD=90&=E6=9B=B4=E6=96=B0=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/package.json | 4 +- .../business/ms-params-input/config.ts | 7 +- .../business/ms-params-input/index.vue | 29 ++-- .../ms-params-input/paramsInputGroup.vue | 1 + frontend/src/models/apiTest/debug.ts | 17 +- frontend/src/utils/index.ts | 24 +-- .../api-test/components/condition/content.vue | 155 ++++++++---------- .../api-test/components/condition/index.vue | 69 ++++---- .../api-test/components/condition/list.vue | 18 +- .../components/fastExtraction/index.vue | 33 ++-- .../components/fastExtraction/moreSetting.vue | 32 ++-- .../views/api-test/components/paramTable.vue | 70 ++++---- .../api-test/debug/components/debug/auth.vue | 4 +- .../api-test/debug/components/debug/body.vue | 58 +++++-- .../debug/components/debug/header.vue | 4 +- .../api-test/debug/components/debug/index.vue | 104 ++++++++---- .../debug/components/debug/postcondition.vue | 12 +- .../debug/components/debug/precondition.vue | 17 +- .../api-test/debug/components/debug/query.vue | 33 ++-- .../api-test/debug/components/debug/rest.vue | 33 ++-- .../debug/components/debug/setting.vue | 25 ++- .../api-test/debug/components/moduleTree.vue | 1 + frontend/src/views/api-test/debug/index.vue | 49 +++--- 23 files changed, 462 insertions(+), 337 deletions(-) diff --git a/frontend/package.json b/frontend/package.json index 918827494f..423574bff2 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -37,7 +37,7 @@ "dependencies": { "@7polo/kity": "2.0.8", "@7polo/kityminder-core": "1.4.53", - "@arco-design/web-vue": "^2.54.3", + "@arco-design/web-vue": "^2.54.4", "@arco-themes/vue-ms-theme-default": "^0.0.30", "@form-create/arco-design": "^3.1.23", "@halo-dev/richtext-editor": "0.0.0-alpha.33", @@ -48,7 +48,7 @@ "@tiptap/vue-3": "^2.1.13", "@types/color": "^3.0.4", "@types/node": "^20.11.16", - "@vueuse/core": "^10.4.1", + "@vueuse/core": "^10.7.2", "@xmldom/xmldom": "^0.8.10", "ace-builds": "^1.24.2", "ahooks-vue": "^0.15.1", diff --git a/frontend/src/components/business/ms-params-input/config.ts b/frontend/src/components/business/ms-params-input/config.ts index 33007f6f91..d41e626c19 100644 --- a/frontend/src/components/business/ms-params-input/config.ts +++ b/frontend/src/components/business/ms-params-input/config.ts @@ -446,13 +446,13 @@ export const mockFunctions: MockParamItem[] = [ inputGroup: [ { type: 'number', - value: NaN, + value: undefined, label: 'start', placeholder: 'ms.paramsInput.substrStartPlaceholder', }, { type: 'number', - value: NaN, + value: undefined, label: 'end', placeholder: 'ms.paramsInput.substrEndPlaceholder', }, @@ -896,6 +896,7 @@ export const JMeterAllVars = [ ]; // 同名函数但参数不同,需要特殊处理 export const sameFuncNameVars = [ + '@county(true)', '@character(pool)', "@character('lower')", "@character('upper')", @@ -905,4 +906,4 @@ export const sameFuncNameVars = [ '@integer(1,100)', ]; // 带形参的函数集合,指的是函数入参为形参,如果用户未填写实参则不需要填充到入参框中 -export const formalParameterVars = ['@character(pool)', '@idCard(birth)']; +export const formalParameterVars = ['@character(pool)', '@idCard(birth)', '@natural(1,100)', '@integer(1,100)']; diff --git a/frontend/src/components/business/ms-params-input/index.vue b/frontend/src/components/business/ms-params-input/index.vue index e46250e661..da1bf6e634 100644 --- a/frontend/src/components/business/ms-params-input/index.vue +++ b/frontend/src/components/business/ms-params-input/index.vue @@ -80,6 +80,7 @@ v-model:model-value="paramForm.func" :options="paramFuncOptions" :placeholder="t('ms.paramsInput.commonSelectPlaceholder')" + allow-clear @change="(val) => handleParamFuncChange(val as string)" > diff --git a/frontend/src/views/api-test/debug/components/debug/header.vue b/frontend/src/views/api-test/debug/components/debug/header.vue index d64b30eedf..f05076ff61 100644 --- a/frontend/src/views/api-test/debug/components/debug/header.vue +++ b/frontend/src/views/api-test/debug/components/debug/header.vue @@ -38,12 +38,12 @@ const { t } = useI18n(); const innerParams = useVModel(props, 'params', emit); - const defaultParamItem = ref({ + const defaultParamItem = { key: '', value: '', description: '', enable: true, - }); + }; const columns: ParamTableColumn[] = [ { diff --git a/frontend/src/views/api-test/debug/components/debug/index.vue b/frontend/src/views/api-test/debug/components/debug/index.vue index 83a678259d..719e1838eb 100644 --- a/frontend/src/views/api-test/debug/components/debug/index.vue +++ b/frontend/src/views/api-test/debug/components/debug/index.vue @@ -122,12 +122,12 @@ /> diff --git a/frontend/src/views/api-test/debug/components/debug/query.vue b/frontend/src/views/api-test/debug/components/debug/query.vue index 5c37aa56ca..cae1572e87 100644 --- a/frontend/src/views/api-test/debug/components/debug/query.vue +++ b/frontend/src/views/api-test/debug/components/debug/query.vue @@ -9,13 +9,14 @@ /> - + @@ -44,23 +45,34 @@ const { t } = useI18n(); const innerParams = useVModel(props, 'params', emit); + const defaultParamItem = { + key: '', + value: '', + paramType: RequestParamsType.STRING, + description: '', + required: false, + maxLength: undefined, + minLength: undefined, + encode: false, + enable: true, + }; const columns: ParamTableColumn[] = [ { title: 'apiTestDebug.paramName', - dataIndex: 'name', - slotName: 'name', + dataIndex: 'key', + slotName: 'key', }, { title: 'apiTestDebug.paramType', - dataIndex: 'type', - slotName: 'type', + dataIndex: 'paramType', + slotName: 'paramType', hasRequired: true, - typeOptions: Object.keys(RequestParamsType) - .filter((key) => ![RequestParamsType.JSON, RequestParamsType.FILE].includes(key as RequestParamsType)) - .map((key) => ({ - label: RequestParamsType[key], - value: key, + typeOptions: Object.values(RequestParamsType) + .filter((val) => ![RequestParamsType.JSON, RequestParamsType.FILE].includes(val)) + .map((val) => ({ + label: val, + value: val, })), width: 120, }, @@ -81,6 +93,7 @@ dataIndex: 'encode', slotName: 'encode', titleSlotName: 'encodeTitle', + width: 80, }, { title: 'apiTestDebug.desc', diff --git a/frontend/src/views/api-test/debug/components/debug/rest.vue b/frontend/src/views/api-test/debug/components/debug/rest.vue index a5ce5961ae..f469ec5816 100644 --- a/frontend/src/views/api-test/debug/components/debug/rest.vue +++ b/frontend/src/views/api-test/debug/components/debug/rest.vue @@ -9,13 +9,14 @@ /> - + @@ -44,23 +45,34 @@ const { t } = useI18n(); const innerParams = useVModel(props, 'params', emit); + const defaultParamItem = { + key: '', + value: '', + paramType: RequestParamsType.STRING, + description: '', + required: false, + maxLength: undefined, + minLength: undefined, + encode: false, + enable: true, + }; const columns: ParamTableColumn[] = [ { title: 'apiTestDebug.paramName', - dataIndex: 'name', - slotName: 'name', + dataIndex: 'key', + slotName: 'key', }, { title: 'apiTestDebug.paramType', - dataIndex: 'type', - slotName: 'type', + dataIndex: 'paramType', + slotName: 'paramType', hasRequired: true, - typeOptions: Object.keys(RequestParamsType) - .filter((key) => ![RequestParamsType.JSON, RequestParamsType.FILE].includes(key as RequestParamsType)) - .map((key) => ({ - label: RequestParamsType[key], - value: key, + typeOptions: Object.values(RequestParamsType) + .filter((val) => ![RequestParamsType.JSON, RequestParamsType.FILE].includes(val as RequestParamsType)) + .map((val) => ({ + label: val, + value: val, })), width: 120, }, @@ -81,6 +93,7 @@ dataIndex: 'encode', slotName: 'encode', titleSlotName: 'encodeTitle', + width: 80, }, { title: 'apiTestDebug.desc', diff --git a/frontend/src/views/api-test/debug/components/debug/setting.vue b/frontend/src/views/api-test/debug/components/debug/setting.vue index 6e099eb2e2..a0e8d08f31 100644 --- a/frontend/src/views/api-test/debug/components/debug/setting.vue +++ b/frontend/src/views/api-test/debug/components/debug/setting.vue @@ -42,8 +42,17 @@ /> - {{ t('apiTestDebug.follow') }} - + + {{ t('apiTestDebug.follow') }} + + {{ t('apiTestDebug.auto') }} @@ -76,6 +85,18 @@ }, { deep: true } ); + + function handleFollowRedirectsChange(val: boolean) { + if (val) { + settingForm.value.autoRedirects = false; + } + } + + function handleAutoRedirectsChange(val: boolean) { + if (val) { + settingForm.value.followRedirects = false; + } + } diff --git a/frontend/src/views/api-test/debug/components/moduleTree.vue b/frontend/src/views/api-test/debug/components/moduleTree.vue index 32d3c1319e..da739be0aa 100644 --- a/frontend/src/views/api-test/debug/components/moduleTree.vue +++ b/frontend/src/views/api-test/debug/components/moduleTree.vue @@ -337,6 +337,7 @@ defineExpose({ initModules, + initModuleCount, }); diff --git a/frontend/src/views/api-test/debug/index.vue b/frontend/src/views/api-test/debug/index.vue index 7cd4a7622b..ffbbf1e926 100644 --- a/frontend/src/views/api-test/debug/index.vue +++ b/frontend/src/views/api-test/debug/index.vue @@ -1,9 +1,11 @@