fix(iot): 修复规则数据回显与 JSON 参数校验

- 修复 HTTP 数据目的编辑 URL 回显时机
- 复用 isEmptyVal 校验 JSON 必填参数,允许 0 和 false
pull/880/head^2
YunaiV 2026-05-25 00:44:02 +08:00
parent dc1a582fbd
commit 06a008b030
2 changed files with 22 additions and 13 deletions

View File

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

View File

@ -141,6 +141,7 @@
<script setup lang="ts">
import { useVModel } from '@vueuse/core'
import { InfoFilled } from '@element-plus/icons-vue'
import { isEmptyVal } from '@/utils/is'
import {
IoTDataSpecsDataTypeEnum,
JSON_PARAMS_INPUT_CONSTANTS,
@ -329,7 +330,8 @@ const handleParamsChange = () => {
//
for (const param of paramsList.value) {
if (param.required && (!parsed[param.identifier] || parsed[param.identifier] === '')) {
const value = parsed[param.identifier]
if (param.required && isEmptyVal(value)) {
jsonError.value = JSON_PARAMS_INPUT_CONSTANTS.PARAM_REQUIRED_ERROR(param.name)
return
}