From 6975ce082e7d0bbce142329d73664a6e2510e9eb Mon Sep 17 00:00:00 2001 From: "liu.shiyi" Date: Thu, 27 Jul 2023 14:15:18 +0800 Subject: [PATCH] =?UTF-8?q?feat:http=E6=95=B0=E6=8D=AE=E9=9B=86=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E8=87=AA=E5=8A=A8=E7=94=9F=E6=88=90=E5=8A=A8=E6=80=81?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DataSetManagement/src/HttpEditForm.vue | 32 ++++++------------- .../src/JsComponents/ParamsSettingDialog.vue | 1 + 2 files changed, 11 insertions(+), 22 deletions(-) diff --git a/data-room-ui/packages/DataSetManagement/src/HttpEditForm.vue b/data-room-ui/packages/DataSetManagement/src/HttpEditForm.vue index 85c9c1bd..01ced809 100644 --- a/data-room-ui/packages/DataSetManagement/src/HttpEditForm.vue +++ b/data-room-ui/packages/DataSetManagement/src/HttpEditForm.vue @@ -938,18 +938,8 @@ export default { // 获取请求地址、请求头、请求参数、请求体中所有的变量,在动态参数中进行变量 getPramsList () { const paramNames1 = this.getValName(this.dataForm.config.url) - const paramNames2 = this.dataForm.config?.headers.map(item => { - const nameList = this.getValName(item.value) - if (nameList && nameList.length) { - return nameList[0] - } - }) - const paramNames3 = this.dataForm.config?.params.map(item => { - const nameList = this.getValName(item.value) - if (nameList && nameList.length) { - return nameList[0] - } - }) + const paramNames2 = this.dataForm.config?.headers.map(obj => obj.value.match(/\$\{(.+?)\}/)?.[1]).filter(Boolean) + const paramNames3 = this.dataForm.config?.params.map(obj => obj.value.match(/\$\{(.+?)\}/)?.[1]).filter(Boolean) const paramNames4 = this.getValName(this.dataForm.config.body) const paramNames = new Set([...paramNames1, ...paramNames2, ...paramNames3, ...paramNames4]) const names = this.dataForm.config?.paramsList?.map(item => item.name) @@ -973,17 +963,15 @@ export default { }, // 获取字符串中${变量名}中的变量名 getValName (str) { - const reg = /\$\{(.+?)\}/ - const reg_g = /\$\{(.+?)\}/g - const result = str.match(reg_g) - const list = [] - if (result) { - for (let i = 0; i < result.length; i++) { - const item = result[i] - list.push(item.match(reg)[1]) - } + // 定义正则表达式模式 + const pattern = /\${(.*?)\}/g + // 使用正则表达式提取变量名 + const variables = [] + let match + while (match = pattern.exec(str)) { + variables.push(match[1]) } - return list + return variables }, // 执行配置好的接口 scriptExecute (isInit = false) { diff --git a/data-room-ui/packages/DataSetManagement/src/JsComponents/ParamsSettingDialog.vue b/data-room-ui/packages/DataSetManagement/src/JsComponents/ParamsSettingDialog.vue index 3f4ef2d0..7362df69 100644 --- a/data-room-ui/packages/DataSetManagement/src/JsComponents/ParamsSettingDialog.vue +++ b/data-room-ui/packages/DataSetManagement/src/JsComponents/ParamsSettingDialog.vue @@ -211,6 +211,7 @@ export default { }, confirm () { this.$emit('saveParams', cloneDeep(this.paramsList)) + this.$emit('replaceParams', cloneDeep(this.paramsList)) this.dialogVisible = false } }