Skip to content

Commit 488800b

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

File tree

4 files changed

+49
-8
lines changed

4 files changed

+49
-8
lines changed

src/views/iot/product/product/detail/ThingModel/ThingModelDataSpecs.vue

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,21 @@
4747
<el-form-item label="时间格式" prop="date" v-if="formData.dataType === DataSpecsDataType.DATE">
4848
<el-input disabled class="w-255px!" placeholder="String类型的UTC时间戳(毫秒)" />
4949
</el-form-item>
50+
<!-- 数组型配置-->
51+
<ThingModelArrayTypeDataSpecs
52+
v-model="formData.dataSpecs"
53+
v-if="formData.dataType === DataSpecsDataType.ARRAY"
54+
/>
5055
</template>
5156

5257
<script lang="ts" setup>
5358
import { useVModel } from '@vueuse/core'
5459
import { DataSpecsDataType, dataTypeOptions } from './config'
55-
import { ThingModelEnumTypeDataSpecs, ThingModelNumberTypeDataSpecs } from './dataSpecs'
60+
import {
61+
ThingModelArrayTypeDataSpecs,
62+
ThingModelEnumTypeDataSpecs,
63+
ThingModelNumberTypeDataSpecs
64+
} from './dataSpecs'
5665
5766
/** 物模型数据 */
5867
defineOptions({ name: 'ThingModelDataSpecs' })
@@ -91,6 +100,9 @@ const handleChange = (dataType: any) => {
91100
})
92101
}
93102
break
103+
case DataSpecsDataType.ARRAY:
104+
formData.value.dataSpecs.dataType = DataSpecsDataType.ARRAY
105+
break
94106
}
95107
}
96108
</script>

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

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,6 @@ export interface DataSpecsNumberDataVO {
1010
unitName: string // 单位的名称
1111
}
1212

13-
/** dataSpecs 文本型数据结构 */
14-
export interface DataSpecsTextDataVO {
15-
dataType: 'TEXT'
16-
length: number
17-
}
18-
1913
/** dataSpecs 枚举型数据结构 */
2014
export interface DataSpecsEnumOrBoolDataVO {
2115
dataType: 'enum' | 'bool'
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<template>
2+
<el-form-item label="元素类型" prop="childDataType">
3+
<el-radio-group v-model="dataSpecs.childDataType">
4+
<template v-for="item in dataTypeOptions" :key="item.value">
5+
<el-radio
6+
:value="item.value"
7+
v-if="
8+
!(
9+
[DataSpecsDataType.ENUM, DataSpecsDataType.ARRAY, DataSpecsDataType.DATE] as any[]
10+
).includes(item.value)
11+
"
12+
>
13+
{{ item.label }}
14+
</el-radio>
15+
</template>
16+
</el-radio-group>
17+
</el-form-item>
18+
<el-form-item label="元素个数" prop="size">
19+
<el-input v-model="dataSpecs.size" placeholder="请输入数组中的元素个数" />
20+
</el-form-item>
21+
</template>
22+
23+
<script lang="ts" setup>
24+
import { useVModel } from '@vueuse/core'
25+
import { DataSpecsDataType, dataTypeOptions } from '../config'
26+
27+
/** 数值型的 dataSpecs 配置组件 */
28+
defineOptions({ name: 'ThingModelArrayTypeDataSpecs' })
29+
const props = defineProps<{ modelValue: any }>()
30+
const emits = defineEmits(['update:modelValue'])
31+
const dataSpecs = useVModel(props, 'modelValue', emits) as Ref<any>
32+
</script>
33+
34+
<style lang="scss" scoped></style>
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import ThingModelEnumTypeDataSpecs from './ThingModelEnumTypeDataSpecs.vue'
22
import ThingModelNumberTypeDataSpecs from './ThingModelNumberTypeDataSpecs.vue'
3+
import ThingModelArrayTypeDataSpecs from './ThingModelArrayTypeDataSpecs.vue'
34

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

0 commit comments

Comments
 (0)