This commit is contained in:
xingyu4j
2025-10-13 10:17:19 +08:00
parent 5f88a54d60
commit 4c4cd57ef0
27 changed files with 857 additions and 818 deletions

View File

@@ -1,5 +1,6 @@
<script lang="ts" setup>
import { ThingModelData } from '#/api/iot/thingmodel';
import type { ThingModelData } from '#/api/iot/thingmodel';
import {
getEventTypeLabel,
getThingModelServiceCallTypeLabel,
@@ -15,7 +16,7 @@ defineProps<{ data: ThingModelData }>();
<template>
<!-- 属性 -->
<template v-if="data.type === IoTThingModelTypeEnum.PROPERTY">
<template v-if="data.type === IoTThingModelTypeEnum.PROPERTY.toString()">
<!-- 非列表型数值 -->
<div
v-if="
@@ -23,16 +24,16 @@ defineProps<{ data: ThingModelData }>();
IoTDataSpecsDataTypeEnum.INT,
IoTDataSpecsDataTypeEnum.DOUBLE,
IoTDataSpecsDataTypeEnum.FLOAT,
].includes(data.property.dataType)
].includes(data.property?.dataType as any)
"
>
取值范围:{{
`${data.property.dataSpecs.min}~${data.property.dataSpecs.max}`
`${data.property?.dataSpecs.min}~${data.property?.dataSpecs.max}`
}}
</div>
<!-- 非列表型:文本 -->
<div v-if="IoTDataSpecsDataTypeEnum.TEXT === data.property.dataType">
数据长度:{{ data.property.dataSpecs.length }}
<div v-if="IoTDataSpecsDataTypeEnum.TEXT === data.property?.dataType">
数据长度:{{ data.property?.dataSpecs.length }}
</div>
<!-- 列表型: 数组、结构、时间(特殊) -->
<div
@@ -41,7 +42,7 @@ defineProps<{ data: ThingModelData }>();
IoTDataSpecsDataTypeEnum.ARRAY,
IoTDataSpecsDataTypeEnum.STRUCT,
IoTDataSpecsDataTypeEnum.DATE,
].includes(data.property.dataType)
].includes(data.property?.dataType as any)
"
>
-
@@ -50,29 +51,31 @@ defineProps<{ data: ThingModelData }>();
<div
v-if="
[IoTDataSpecsDataTypeEnum.BOOL, IoTDataSpecsDataTypeEnum.ENUM].includes(
data.property.dataType,
data.property?.dataType as any,
)
"
>
<div>
{{
IoTDataSpecsDataTypeEnum.BOOL === data.property.dataType
IoTDataSpecsDataTypeEnum.BOOL === data.property?.dataType
? '布尔值'
: '枚举值'
}}
</div>
<div v-for="item in data.property.dataSpecsList" :key="item.value">
<div v-for="item in data.property?.dataSpecsList" :key="item.value">
{{ `${item.name}-${item.value}` }}
</div>
</div>
</template>
<!-- 服务 -->
<div v-if="data.type === IoTThingModelTypeEnum.SERVICE">
调用方式:{{ getThingModelServiceCallTypeLabel(data.service!.callType) }}
<div v-if="data.type === IoTThingModelTypeEnum.SERVICE.toString()">
调用方式:{{
getThingModelServiceCallTypeLabel(data.service?.callType as any)
}}
</div>
<!-- 事件 -->
<div v-if="data.type === IoTThingModelTypeEnum.EVENT">
事件类型:{{ getEventTypeLabel(data.event!.type) }}
<div v-if="data.type === IoTThingModelTypeEnum.EVENT.toString()">
事件类型:{{ getEventTypeLabel(data.event?.type as any) }}
</div>
</template>