From 06a008b030a98d002913f1d4fe18de6441036841 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Mon, 25 May 2026 00:44:02 +0800 Subject: [PATCH] =?UTF-8?q?fix(iot):=20=E4=BF=AE=E5=A4=8D=E8=A7=84?= =?UTF-8?q?=E5=88=99=E6=95=B0=E6=8D=AE=E5=9B=9E=E6=98=BE=E4=B8=8E=20JSON?= =?UTF-8?q?=20=E5=8F=82=E6=95=B0=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修复 HTTP 数据目的编辑 URL 回显时机 - 复用 isEmptyVal 校验 JSON 必填参数,允许 0 和 false --- .../rule/data/sink/config/HttpConfigForm.vue | 31 ++++++++++++------- .../scene/form/inputs/JsonParamsInput.vue | 4 ++- 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/src/views/iot/rule/data/sink/config/HttpConfigForm.vue b/src/views/iot/rule/data/sink/config/HttpConfigForm.vue index 5fa759bcd..71fa308eb 100644 --- a/src/views/iot/rule/data/sink/config/HttpConfigForm.vue +++ b/src/views/iot/rule/data/sink/config/HttpConfigForm.vue @@ -56,21 +56,28 @@ watch([urlPrefix, urlPath], () => { config.value.url = fullUrl.value }) +const syncUrlFields = (url?: string) => { + if (url?.startsWith('https://')) { + urlPrefix.value = 'https://' + urlPath.value = url.substring(8) + } else if (url?.startsWith('http://')) { + urlPrefix.value = 'http://' + urlPath.value = url.substring(7) + } else { + urlPath.value = url ?? '' + } +} + +watch( + () => config.value?.url, + (url) => syncUrlFields(url), + { immediate: true } +) + /** 组件初始化 */ onMounted(() => { if (!isEmpty(config.value)) { - // 初始化 URL - if (config.value.url) { - if (config.value.url.startsWith('https://')) { - urlPrefix.value = 'https://' - urlPath.value = config.value.url.substring(8) - } else if (config.value.url.startsWith('http://')) { - urlPrefix.value = 'http://' - urlPath.value = config.value.url.substring(7) - } else { - urlPath.value = config.value.url - } - } + syncUrlFields(config.value.url) return } diff --git a/src/views/iot/rule/scene/form/inputs/JsonParamsInput.vue b/src/views/iot/rule/scene/form/inputs/JsonParamsInput.vue index 5bfa970d5..be2860799 100644 --- a/src/views/iot/rule/scene/form/inputs/JsonParamsInput.vue +++ b/src/views/iot/rule/scene/form/inputs/JsonParamsInput.vue @@ -141,6 +141,7 @@