Skip to content

Commit 1d112d5

Browse files
author
puhui999
committed
【功能完善】IOT: 物模型数据类型组件完善
1 parent 23ef9f6 commit 1d112d5

File tree

4 files changed

+38
-114
lines changed

4 files changed

+38
-114
lines changed
Lines changed: 24 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
<template>
22
<el-form-item label="数据类型" prop="dataType">
3-
<ThingModelDataType v-model="formData.dataType" @change="handleChange" />
3+
<el-select v-model="formData.dataType" placeholder="请选择数据类型" @change="handleChange">
4+
<el-option
5+
v-for="option in dataTypeOptions"
6+
:key="option.value"
7+
:label="option.label"
8+
:value="option.value"
9+
/>
10+
</el-select>
411
</el-form-item>
512
<!-- 数值型配置 -->
613
<ThingModelNumberTypeDataSpecs
@@ -36,16 +43,16 @@
3643
<template #append>字节</template>
3744
</el-input>
3845
</el-form-item>
46+
<!-- 时间型配置 -->
47+
<el-form-item label="时间格式" prop="date" v-if="formData.dataType === DataSpecsDataType.DATE">
48+
<el-input disabled class="w-255px!" placeholder="String类型的UTC时间戳(毫秒)" />
49+
</el-form-item>
3950
</template>
4051

4152
<script lang="ts" setup>
4253
import { useVModel } from '@vueuse/core'
43-
import { DataSpecsDataType } from './config'
44-
import {
45-
ThingModelDataType,
46-
ThingModelEnumTypeDataSpecs,
47-
ThingModelNumberTypeDataSpecs
48-
} from './dataSpecs'
54+
import { DataSpecsDataType, dataTypeOptions } from './config'
55+
import { ThingModelEnumTypeDataSpecs, ThingModelNumberTypeDataSpecs } from './dataSpecs'
4956
5057
/** 物模型数据 */
5158
defineOptions({ name: 'ThingModelDataSpecs' })
@@ -59,6 +66,15 @@ const handleChange = (dataType: any) => {
5966
formData.value.dataSpecs = {}
6067
6168
switch (dataType) {
69+
case DataSpecsDataType.INT:
70+
formData.value.dataSpecs.dataType = DataSpecsDataType.INT
71+
break
72+
case DataSpecsDataType.DOUBLE:
73+
formData.value.dataSpecs.dataType = DataSpecsDataType.DOUBLE
74+
break
75+
case DataSpecsDataType.FLOAT:
76+
formData.value.dataSpecs.dataType = DataSpecsDataType.FLOAT
77+
break
6278
case DataSpecsDataType.ENUM:
6379
formData.value.dataSpecsList.push({
6480
dataType: DataSpecsDataType.ENUM,
@@ -74,75 +90,9 @@ const handleChange = (dataType: any) => {
7490
value: i // 布尔值
7591
})
7692
}
93+
break
7794
}
7895
}
79-
// dataType为INT的dataSpecs示例:
80-
//
81-
// {
82-
// "dataSpecs": {
83-
// "custom": true,
84-
// "dataType": "INT",
85-
// "defaultValue": "30",
86-
// "max": "1440",
87-
// "min": "0",
88-
// "step": "10",
89-
// "unit": "min"
90-
// }
91-
// }
92-
// dataType为TEXT的dataSpecs示例:
93-
//
94-
// {
95-
// "dataSpecs": {
96-
// "custom": true,
97-
// "dataType": "TEXT",
98-
// "id": 2412127,
99-
// "length": 2048
100-
// }
101-
// }
102-
// dataType为ARRAY的dataSpecs示例:
103-
//
104-
// {
105-
// "dataSpecs": {
106-
// "childDataType": "INT",
107-
// "custom": true,
108-
// "dataType": "ARRAY",
109-
// "size": 1
110-
// }
111-
// }
112-
// dataType为ENUM的dataSpecsList示例:
113-
//
114-
// {
115-
// "dataSpecsList": [
116-
// {
117-
// "custom": false,
118-
// "dataType": "ENUM",
119-
// "defaultValue": "true",
120-
// "name": "打开",
121-
// "value": 1
122-
// },
123-
// {
124-
// "custom": false,
125-
// "dataType": "ENUM",
126-
// "defaultValue": "false",
127-
// "name": "关闭",
128-
// "value": 0
129-
// }
130-
// ]
131-
// }
132-
// dataType为STRUCT的dataSpecsList示例:
133-
//
134-
// {
135-
// "childDataType": "TEXT",
136-
// "childName": "卡编号",
137-
// "dataSpecs": {
138-
// "custom": true,
139-
// "dataType": "TEXT",
140-
// "length": 128
141-
// },
142-
// "dataType": "STRUCT",
143-
// "identifier": "CardNo",
144-
// "name": "NVR所拥有的芯片信息"
145-
// }
14696
</script>
14797

14898
<style lang="scss" scoped></style>

src/views/iot/product/product/detail/ThingModel/config.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,3 +36,16 @@ export const DataSpecsDataType = {
3636
STRUCT: 'struct',
3737
ARRAY: 'array'
3838
} as const
39+
40+
/** 物体模型数据类型配置项 */
41+
export const dataTypeOptions = [
42+
{ value: DataSpecsDataType.INT, label: 'int32 (整数型)' },
43+
{ value: DataSpecsDataType.FLOAT, label: 'float (单精度浮点型)' },
44+
{ value: DataSpecsDataType.DOUBLE, label: 'double (双精度浮点型)' },
45+
{ value: DataSpecsDataType.ENUM, label: 'enum(枚举型)' },
46+
{ value: DataSpecsDataType.BOOL, label: 'bool (布尔型)' },
47+
{ value: DataSpecsDataType.TEXT, label: 'text (文本型)' },
48+
{ value: DataSpecsDataType.DATE, label: 'date (时间型)' },
49+
{ value: DataSpecsDataType.STRUCT, label: 'struct (结构体)' },
50+
{ value: DataSpecsDataType.ARRAY, label: 'array (数组)' }
51+
]

src/views/iot/product/product/detail/ThingModel/dataSpecs/ThingModelDataType.vue

Lines changed: 0 additions & 38 deletions
This file was deleted.
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
import ThingModelDataType from './ThingModelDataType.vue'
21
import ThingModelEnumTypeDataSpecs from './ThingModelEnumTypeDataSpecs.vue'
32
import ThingModelNumberTypeDataSpecs from './ThingModelNumberTypeDataSpecs.vue'
43

5-
export { ThingModelDataType, ThingModelEnumTypeDataSpecs, ThingModelNumberTypeDataSpecs }
4+
export { ThingModelEnumTypeDataSpecs, ThingModelNumberTypeDataSpecs }

0 commit comments

Comments
 (0)