fix:【IoT 物联网】场景联动首次添加条件失败的 bug

pull/805/head
puhui999 2025-08-02 11:22:10 +08:00
parent cb52fbe71e
commit 32ce19fcd8
3 changed files with 26 additions and 13 deletions

View File

@ -153,11 +153,17 @@ const addSubGroup = () => {
container.value = []
}
if (container.value.length >= maxSubGroups) {
//
if (container.value?.length >= maxSubGroups) {
return
}
container.value.push([])
// 使 nextTick
nextTick(() => {
if (container.value) {
container.value.push([])
}
})
}
const removeSubGroup = (index: number) => {

View File

@ -83,13 +83,6 @@ const handleMainConditionValidate = (result: { valid: boolean; message: string }
updateValidationResult()
}
const addConditionGroup = () => {
if (!trigger.value.conditionGroups) {
trigger.value.conditionGroups = []
}
trigger.value.conditionGroups.push([])
}
//
const handleConditionGroupValidate = () => {
updateValidationResult()

View File

@ -80,10 +80,14 @@
</template>
<script setup lang="ts">
import { nextTick } from 'vue'
import { useVModel } from '@vueuse/core'
import ConditionConfig from './ConditionConfig.vue'
import { TriggerConditionFormData } from '@/api/iot/rule/scene/scene.types'
import { IotRuleSceneTriggerConditionTypeEnum } from '@/views/iot/utils/constants'
import {
IotRuleSceneTriggerConditionTypeEnum,
IotRuleSceneTriggerConditionParameterOperatorEnum
} from '@/views/iot/utils/constants'
/** 子条件组配置组件 */
defineOptions({ name: 'SubConditionGroupConfig' })
@ -109,21 +113,31 @@ const conditionValidations = ref<{ [key: number]: { valid: boolean; message: str
//
const addCondition = () => {
// subGroup.value
if (!subGroup.value) {
subGroup.value = []
}
if (subGroup.value.length >= maxConditions.value) {
//
if (subGroup.value?.length >= maxConditions.value) {
return
}
const newCondition: TriggerConditionFormData = {
type: IotRuleSceneTriggerConditionTypeEnum.DEVICE_PROPERTY, //
productId: undefined,
deviceId: undefined,
identifier: '',
operator: '=',
operator: IotRuleSceneTriggerConditionParameterOperatorEnum.EQUALS.value, // 使
param: ''
}
subGroup.value.push(newCondition)
// 使 nextTick
nextTick(() => {
if (subGroup.value) {
subGroup.value.push(newCondition)
}
})
}
const removeCondition = (index: number) => {