fix:【IoT 物联网】场景联动首次添加条件失败的 bug
This commit is contained in:
@ -153,11 +153,17 @@ const addSubGroup = () => {
|
|||||||
container.value = []
|
container.value = []
|
||||||
}
|
}
|
||||||
|
|
||||||
if (container.value.length >= maxSubGroups) {
|
// 检查是否达到最大子组数量限制
|
||||||
|
if (container.value?.length >= maxSubGroups) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
container.value.push([])
|
// 使用 nextTick 确保响应式更新完成后再添加新的子组
|
||||||
|
nextTick(() => {
|
||||||
|
if (container.value) {
|
||||||
|
container.value.push([])
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
const removeSubGroup = (index: number) => {
|
const removeSubGroup = (index: number) => {
|
||||||
|
|||||||
@ -83,13 +83,6 @@ const handleMainConditionValidate = (result: { valid: boolean; message: string }
|
|||||||
updateValidationResult()
|
updateValidationResult()
|
||||||
}
|
}
|
||||||
|
|
||||||
const addConditionGroup = () => {
|
|
||||||
if (!trigger.value.conditionGroups) {
|
|
||||||
trigger.value.conditionGroups = []
|
|
||||||
}
|
|
||||||
trigger.value.conditionGroups.push([])
|
|
||||||
}
|
|
||||||
|
|
||||||
// 事件处理
|
// 事件处理
|
||||||
const handleConditionGroupValidate = () => {
|
const handleConditionGroupValidate = () => {
|
||||||
updateValidationResult()
|
updateValidationResult()
|
||||||
|
|||||||
@ -80,10 +80,14 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
import { nextTick } from 'vue'
|
||||||
import { useVModel } from '@vueuse/core'
|
import { useVModel } from '@vueuse/core'
|
||||||
import ConditionConfig from './ConditionConfig.vue'
|
import ConditionConfig from './ConditionConfig.vue'
|
||||||
import { TriggerConditionFormData } from '@/api/iot/rule/scene/scene.types'
|
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' })
|
defineOptions({ name: 'SubConditionGroupConfig' })
|
||||||
@ -109,21 +113,31 @@ const conditionValidations = ref<{ [key: number]: { valid: boolean; message: str
|
|||||||
|
|
||||||
// 事件处理
|
// 事件处理
|
||||||
const addCondition = () => {
|
const addCondition = () => {
|
||||||
|
// 确保 subGroup.value 是一个数组
|
||||||
if (!subGroup.value) {
|
if (!subGroup.value) {
|
||||||
subGroup.value = []
|
subGroup.value = []
|
||||||
}
|
}
|
||||||
if (subGroup.value.length >= maxConditions.value) {
|
|
||||||
|
// 检查是否达到最大条件数量限制
|
||||||
|
if (subGroup.value?.length >= maxConditions.value) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
const newCondition: TriggerConditionFormData = {
|
const newCondition: TriggerConditionFormData = {
|
||||||
type: IotRuleSceneTriggerConditionTypeEnum.DEVICE_PROPERTY, // 默认为设备属性
|
type: IotRuleSceneTriggerConditionTypeEnum.DEVICE_PROPERTY, // 默认为设备属性
|
||||||
productId: undefined,
|
productId: undefined,
|
||||||
deviceId: undefined,
|
deviceId: undefined,
|
||||||
identifier: '',
|
identifier: '',
|
||||||
operator: '=',
|
operator: IotRuleSceneTriggerConditionParameterOperatorEnum.EQUALS.value, // 使用枚举默认值
|
||||||
param: ''
|
param: ''
|
||||||
}
|
}
|
||||||
subGroup.value.push(newCondition)
|
|
||||||
|
// 使用 nextTick 确保响应式更新完成后再添加新条件
|
||||||
|
nextTick(() => {
|
||||||
|
if (subGroup.value) {
|
||||||
|
subGroup.value.push(newCondition)
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
const removeCondition = (index: number) => {
|
const removeCondition = (index: number) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user