Skip to content

Commit 9581ecd

Browse files
committed
【代码评审】IoT:物模型的管理
1 parent fec0753 commit 9581ecd

12 files changed

+28
-6
lines changed

src/router/modules/remaining.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -659,7 +659,7 @@ const remainingRouter: AppRouteRecordRaw[] = [
659659
title: '设备详情',
660660
noCache: true,
661661
hidden: true,
662-
activeMenu: '/iot/device'
662+
activeMenu: '/iot/device/device'
663663
},
664664
component: () => import('@/views/iot/device/device/detail/index.vue')
665665
},

src/views/iot/thingmodel/ThingModelEvent.vue

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1+
<!-- 产品的物模型表单(event 项) -->
12
<template>
23
<el-form-item
34
:rules="[{ required: true, message: '请选择事件类型', trigger: 'change' }]"
45
label="事件类型"
56
prop="event.type"
67
>
8+
<!-- TODO @puhui999:默认选中,INFO 信息 -->
79
<el-radio-group v-model="thingModelEvent.type">
810
<el-radio :value="ThingModelEventType.INFO.value">
911
{{ ThingModelEventType.INFO.label }}

src/views/iot/thingmodel/ThingModelForm.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
<!-- 产品的物模型表单 -->
12
<template>
23
<Dialog v-model="dialogVisible" :title="dialogTitle">
34
<el-form

src/views/iot/thingmodel/ThingModelInputOutputParam.vue

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
<!-- 产品的物模型表单(event、service 项里的参数) -->
12
<template>
23
<div
34
v-for="(item, index) in thingModelParams"
@@ -84,6 +85,7 @@ const openParamForm = (val: any) => {
8485
}
8586
}
8687
}
88+
8789
/** 删除 param 项 */
8890
const deleteParamItem = (index: number) => {
8991
thingModelParams.value.splice(index, 1)

src/views/iot/thingmodel/ThingModelProperty.vue

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1+
<!-- 产品的物模型表单(property 项) -->
12
<template>
23
<el-form-item
34
:rules="[{ required: true, message: '请选择数据类型', trigger: 'change' }]"
45
label="数据类型"
56
prop="property.dataType"
67
>
78
<el-select v-model="property.dataType" placeholder="请选择数据类型" @change="handleChange">
8-
<!-- ARRAY 和 STRUCT 类型数据相互嵌套时,最多支持递归嵌套2层(父和子) -->
9+
<!-- ARRAY 和 STRUCT 类型数据相互嵌套时,最多支持递归嵌套 2 层(父和子) -->
910
<el-option
1011
v-for="option in getDataTypeOptions"
1112
:key="option.value"
@@ -63,7 +64,7 @@
6364
</el-form-item>
6465
<!-- 时间型配置 -->
6566
<el-form-item v-if="property.dataType === DataSpecsDataType.DATE" label="时间格式" prop="date">
66-
<el-input class="w-255px!" disabled placeholder="String类型的UTC时间戳(毫秒)" />
67+
<el-input class="w-255px!" disabled placeholder="String 类型的 UTC 时间戳(毫秒)" />
6768
</el-form-item>
6869
<!-- 数组型配置-->
6970
<ThingModelArrayDataSpecs
@@ -75,6 +76,7 @@
7576
v-if="property.dataType === DataSpecsDataType.STRUCT"
7677
v-model="property.dataSpecsList"
7778
/>
79+
<!-- TODO @puhui999:默认选中第一个 -->
7880
<el-form-item v-if="!isStructDataSpecs && !isParams" label="读写类型" prop="property.accessMode">
7981
<el-radio-group v-model="property.accessMode">
8082
<el-radio :label="ThingModelAccessMode.READ_WRITE.value">
@@ -120,8 +122,8 @@ const getDataTypeOptions = computed(() => {
120122
121123
/** 属性值的数据类型切换时初始化相关数据 */
122124
const handleChange = (dataType: any) => {
123-
property.value.dataSpecsList = []
124125
property.value.dataSpecs = {}
126+
property.value.dataSpecsList = []
125127
// 不是列表型数据才设置 dataSpecs.dataType
126128
![DataSpecsDataType.ENUM, DataSpecsDataType.BOOL, DataSpecsDataType.STRUCT].includes(dataType) &&
127129
(property.value.dataSpecs.dataType = dataType)

src/views/iot/thingmodel/ThingModelService.vue

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1+
<!-- 产品的物模型表单(service 项) -->
12
<template>
23
<el-form-item
34
:rules="[{ required: true, message: '请选择调用方式', trigger: 'change' }]"
45
label="调用方式"
56
prop="service.callType"
67
>
8+
<!-- TODO @puhui999:默认选中,ASYNC 异步 -->
79
<el-radio-group v-model="service.callType">
810
<el-radio :value="ThingModelServiceCallType.ASYNC.value">
911
{{ ThingModelServiceCallType.ASYNC.label }}

src/views/iot/thingmodel/config.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ export interface DataSpecsEnumOrBoolDataVO {
2121
}
2222

2323
/** 属性值的数据类型 */
24+
// TODO @puhui999:这个枚举类,要不放到 dict 里?
2425
export const DataSpecsDataType = {
2526
INT: 'int',
2627
FLOAT: 'float',
@@ -34,6 +35,7 @@ export const DataSpecsDataType = {
3435
} as const
3536

3637
/** 物体模型数据类型配置项 */
38+
// TODO @puhui999:搞到字典里;label 只使用()部分,就是整数型、单精度浮点型等,这种哈。这样,拼接 value(label) 就可以渲染出来,通用性更强
3739
export const dataTypeOptions = [
3840
{ value: DataSpecsDataType.INT, label: 'int32 (整数型)' },
3941
{ value: DataSpecsDataType.FLOAT, label: 'float (单精度浮点型)' },
@@ -185,6 +187,7 @@ export const ThingModelFormRules = {
185187
],
186188
'property.accessMode': [{ required: true, message: '请选择读写类型', trigger: 'change' }]
187189
}
190+
188191
/** 校验布尔值名称 */
189192
export const validateBoolName = (_: any, value: string, callback: any) => {
190193
if (isEmpty(value)) {
@@ -203,7 +206,7 @@ export const validateBoolName = (_: any, value: string, callback: any) => {
203206
}
204207
// 检查长度(一个中文算一个字符)
205208
if (value.length > 20) {
206-
callback(new Error('布尔值名称长度不能超过20个字符'))
209+
callback(new Error('布尔值名称长度不能超过 20 个字符'))
207210
return
208211
}
209212

src/views/iot/thingmodel/dataSpecs/ThingModelArrayDataSpecs.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
<!-- dataType:array 数组类型 -->
12
<template>
23
<el-form-item label="元素类型" prop="property.dataSpecs.childDataType">
34
<el-radio-group v-model="dataSpecs.childDataType" @change="handleChange">

src/views/iot/thingmodel/dataSpecs/ThingModelEnumDataSpecs.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
<!-- dataType:enum 数组类型 -->
12
<template>
23
<el-form-item
34
:rules="[{ required: true, validator: validateEnumList, trigger: 'change' }]"

src/views/iot/thingmodel/dataSpecs/ThingModelNumberDataSpecs.vue

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
<!-- dataType:number 数组类型 -->
12
<template>
23
<el-form-item label="取值范围">
34
<div class="flex items-center justify-between">
@@ -43,7 +44,7 @@
4344
:model-value="dataSpecs.unit ? dataSpecs.unitName + '-' + dataSpecs.unit : ''"
4445
filterable
4546
placeholder="请选择单位"
46-
style="width: 240px"
47+
class="w-1/1"
4748
@change="unitChange"
4849
>
4950
<el-option

0 commit comments

Comments
 (0)