【代码优化】IoT: 场景联动执行器设备控制器信息回显

This commit is contained in:
puhui999 2025-03-29 14:35:33 +08:00
parent c8fce1e254
commit 04cfded36f
2 changed files with 10 additions and 14 deletions

View File

@ -49,6 +49,7 @@
v-if="actionConfig.type === IotRuleSceneActionTypeEnum.DEVICE_CONTROL"
:model-value="actionConfig.deviceControl"
:product-id="product?.id"
:product-key="product?.productKey"
@update:model-value="(val) => (actionConfig.deviceControl = val)"
/>

View File

@ -80,6 +80,7 @@ defineOptions({ name: 'DeviceControlAction' })
const props = defineProps<{
modelValue: any
productId?: number
productKey?: string
}>()
const emits = defineEmits(['update:modelValue'])
const deviceControlConfig = useVModel(props, 'modelValue', emits) as Ref<ActionDeviceControl>
@ -169,11 +170,7 @@ const getThingModelTSL = async () => {
if (!props.productId) {
return
}
try {
thingModelTSL.value = await ThingModelApi.getThingModelTSLByProductId(props.productId)
} catch (error) {
console.error('获取物模型失败', error)
}
thingModelTSL.value = await ThingModelApi.getThingModelTSLByProductId(props.productId)
}
const thingModels = computed(() => (identifier?: string): any[] => {
if (isEmpty(thingModelTSL.value)) {
@ -183,8 +180,7 @@ const thingModels = computed(() => (identifier?: string): any[] => {
case IotDeviceMessageTypeEnum.PROPERTY:
return thingModelTSL.value?.properties || []
case IotDeviceMessageTypeEnum.SERVICE:
// TODO puhui999: set service
const service = thingModelTSL.value.services.find(
const service = thingModelTSL.value.services?.find(
(item: any) => item.identifier === identifier
)
return service?.inputParams || []
@ -200,23 +196,22 @@ const getUnitName = computed(() => (identifier: string) => {
if (model?.dataSpecs) {
return model.dataSpecs.unitName
}
// TODO puhui999: enumboolstruct
return ''
})
/** 监听 productId 变化 */
watch(
() => props.productId,
(newVal) => {
if (!newVal) {
thingModelTSL.value = undefined
parameters.value = []
() => {
getThingModelTSL()
if (deviceControlConfig.value && deviceControlConfig.value.productKey === props.productKey) {
return
}
getThingModelTSL()
// ID
deviceControlConfig.value.data = {}
},
{ immediate: true }
parameters.value = []
}
)
/** 监听消息类型变化 */