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