|
@@ -1,6 +1,6 @@
|
|
<template>
|
|
<template>
|
|
<el-form-item label="数据类型" prop="dataType">
|
|
<el-form-item label="数据类型" prop="dataType">
|
|
- <el-select v-model="formData.dataType" placeholder="请选择数据类型" @change="handleChange">
|
|
|
|
|
|
+ <el-select v-model="property.dataType" placeholder="请选择数据类型" @change="handleChange">
|
|
<el-option
|
|
<el-option
|
|
v-for="option in dataTypeOptions"
|
|
v-for="option in dataTypeOptions"
|
|
:key="option.value"
|
|
:key="option.value"
|
|
@@ -13,19 +13,19 @@
|
|
<ThingModelNumberTypeDataSpecs
|
|
<ThingModelNumberTypeDataSpecs
|
|
v-if="
|
|
v-if="
|
|
[DataSpecsDataType.INT, DataSpecsDataType.DOUBLE, DataSpecsDataType.FLOAT].includes(
|
|
[DataSpecsDataType.INT, DataSpecsDataType.DOUBLE, DataSpecsDataType.FLOAT].includes(
|
|
- formData.dataType || ''
|
|
|
|
|
|
+ property.dataType || ''
|
|
)
|
|
)
|
|
"
|
|
"
|
|
- v-model="formData.dataSpecs"
|
|
|
|
|
|
+ v-model="property.dataSpecs"
|
|
/>
|
|
/>
|
|
<!-- 枚举型配置 -->
|
|
<!-- 枚举型配置 -->
|
|
<ThingModelEnumTypeDataSpecs
|
|
<ThingModelEnumTypeDataSpecs
|
|
- v-if="formData.dataType === DataSpecsDataType.ENUM"
|
|
|
|
- v-model="formData.dataSpecsList"
|
|
|
|
|
|
+ v-if="property.dataType === DataSpecsDataType.ENUM"
|
|
|
|
+ v-model="property.dataSpecsList"
|
|
/>
|
|
/>
|
|
<!-- 布尔型配置 -->
|
|
<!-- 布尔型配置 -->
|
|
- <el-form-item label="布尔值" prop="bool" v-if="formData.dataType === DataSpecsDataType.BOOL">
|
|
|
|
- <template v-for="item in formData.dataSpecsList" :key="item.value">
|
|
|
|
|
|
+ <el-form-item label="布尔值" prop="bool" v-if="property.dataType === DataSpecsDataType.BOOL">
|
|
|
|
+ <template v-for="item in property.dataSpecsList" :key="item.value">
|
|
<div class="flex items-center justify-start w-1/1 mb-5px">
|
|
<div class="flex items-center justify-start w-1/1 mb-5px">
|
|
<span>{{ item.value }}</span>
|
|
<span>{{ item.value }}</span>
|
|
<span class="mx-2">-</span>
|
|
<span class="mx-2">-</span>
|
|
@@ -38,20 +38,29 @@
|
|
</template>
|
|
</template>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<!-- 文本型配置 -->
|
|
<!-- 文本型配置 -->
|
|
- <el-form-item label="数据长度" prop="text" v-if="formData.dataType === DataSpecsDataType.TEXT">
|
|
|
|
- <el-input v-model="formData.length" class="w-255px!" placeholder="请输入文本字节长度">
|
|
|
|
|
|
+ <el-form-item label="数据长度" prop="text" v-if="property.dataType === DataSpecsDataType.TEXT">
|
|
|
|
+ <el-input v-model="property.length" class="w-255px!" placeholder="请输入文本字节长度">
|
|
<template #append>字节</template>
|
|
<template #append>字节</template>
|
|
</el-input>
|
|
</el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<!-- 时间型配置 -->
|
|
<!-- 时间型配置 -->
|
|
- <el-form-item label="时间格式" prop="date" v-if="formData.dataType === DataSpecsDataType.DATE">
|
|
|
|
|
|
+ <el-form-item label="时间格式" prop="date" v-if="property.dataType === DataSpecsDataType.DATE">
|
|
<el-input disabled class="w-255px!" placeholder="String类型的UTC时间戳(毫秒)" />
|
|
<el-input disabled class="w-255px!" placeholder="String类型的UTC时间戳(毫秒)" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<!-- 数组型配置-->
|
|
<!-- 数组型配置-->
|
|
<ThingModelArrayTypeDataSpecs
|
|
<ThingModelArrayTypeDataSpecs
|
|
- v-model="formData.dataSpecs"
|
|
|
|
- v-if="formData.dataType === DataSpecsDataType.ARRAY"
|
|
|
|
|
|
+ v-model="property.dataSpecs"
|
|
|
|
+ v-if="property.dataType === DataSpecsDataType.ARRAY"
|
|
/>
|
|
/>
|
|
|
|
+ <el-form-item label="读写类型" prop="accessMode">
|
|
|
|
+ <el-radio-group v-model="property.accessMode">
|
|
|
|
+ <el-radio label="rw">读写</el-radio>
|
|
|
|
+ <el-radio label="r">只读</el-radio>
|
|
|
|
+ </el-radio-group>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="属性描述" prop="description">
|
|
|
|
+ <el-input v-model="property.description" placeholder="请输入属性描述" type="textarea" />
|
|
|
|
+ </el-form-item>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script lang="ts" setup>
|
|
<script lang="ts" setup>
|
|
@@ -62,30 +71,31 @@ import {
|
|
ThingModelEnumTypeDataSpecs,
|
|
ThingModelEnumTypeDataSpecs,
|
|
ThingModelNumberTypeDataSpecs
|
|
ThingModelNumberTypeDataSpecs
|
|
} from './dataSpecs'
|
|
} from './dataSpecs'
|
|
|
|
+import { ThingModelProperty } from '@/api/iot/thinkmodelfunction'
|
|
|
|
|
|
/** 物模型数据 */
|
|
/** 物模型数据 */
|
|
defineOptions({ name: 'ThingModelDataSpecs' })
|
|
defineOptions({ name: 'ThingModelDataSpecs' })
|
|
const props = defineProps<{ modelValue: any }>()
|
|
const props = defineProps<{ modelValue: any }>()
|
|
const emits = defineEmits(['update:modelValue'])
|
|
const emits = defineEmits(['update:modelValue'])
|
|
-const formData = useVModel(props, 'modelValue', emits) as Ref<any>
|
|
|
|
|
|
+const property = useVModel(props, 'modelValue', emits) as Ref<ThingModelProperty>
|
|
|
|
|
|
/** 属性值的数据类型切换时初始化相关数据 */
|
|
/** 属性值的数据类型切换时初始化相关数据 */
|
|
const handleChange = (dataType: any) => {
|
|
const handleChange = (dataType: any) => {
|
|
- formData.value.dataSpecsList = []
|
|
|
|
- formData.value.dataSpecs = {}
|
|
|
|
|
|
+ property.value.dataSpecsList = []
|
|
|
|
+ property.value.dataSpecs = {}
|
|
|
|
|
|
switch (dataType) {
|
|
switch (dataType) {
|
|
case DataSpecsDataType.INT:
|
|
case DataSpecsDataType.INT:
|
|
- formData.value.dataSpecs.dataType = DataSpecsDataType.INT
|
|
|
|
|
|
+ property.value.dataSpecs.dataType = DataSpecsDataType.INT
|
|
break
|
|
break
|
|
case DataSpecsDataType.DOUBLE:
|
|
case DataSpecsDataType.DOUBLE:
|
|
- formData.value.dataSpecs.dataType = DataSpecsDataType.DOUBLE
|
|
|
|
|
|
+ property.value.dataSpecs.dataType = DataSpecsDataType.DOUBLE
|
|
break
|
|
break
|
|
case DataSpecsDataType.FLOAT:
|
|
case DataSpecsDataType.FLOAT:
|
|
- formData.value.dataSpecs.dataType = DataSpecsDataType.FLOAT
|
|
|
|
|
|
+ property.value.dataSpecs.dataType = DataSpecsDataType.FLOAT
|
|
break
|
|
break
|
|
case DataSpecsDataType.ENUM:
|
|
case DataSpecsDataType.ENUM:
|
|
- formData.value.dataSpecsList.push({
|
|
|
|
|
|
+ property.value.dataSpecsList.push({
|
|
dataType: DataSpecsDataType.ENUM,
|
|
dataType: DataSpecsDataType.ENUM,
|
|
name: '', // 枚举项的名称
|
|
name: '', // 枚举项的名称
|
|
value: undefined // 枚举值
|
|
value: undefined // 枚举值
|
|
@@ -93,7 +103,7 @@ const handleChange = (dataType: any) => {
|
|
break
|
|
break
|
|
case DataSpecsDataType.BOOL:
|
|
case DataSpecsDataType.BOOL:
|
|
for (let i = 0; i < 2; i++) {
|
|
for (let i = 0; i < 2; i++) {
|
|
- formData.value.dataSpecsList.push({
|
|
|
|
|
|
+ property.value.dataSpecsList.push({
|
|
dataType: DataSpecsDataType.BOOL,
|
|
dataType: DataSpecsDataType.BOOL,
|
|
name: '', // 布尔值的名称
|
|
name: '', // 布尔值的名称
|
|
value: i // 布尔值
|
|
value: i // 布尔值
|
|
@@ -101,7 +111,7 @@ const handleChange = (dataType: any) => {
|
|
}
|
|
}
|
|
break
|
|
break
|
|
case DataSpecsDataType.ARRAY:
|
|
case DataSpecsDataType.ARRAY:
|
|
- formData.value.dataSpecs.dataType = DataSpecsDataType.ARRAY
|
|
|
|
|
|
+ property.value.dataSpecs.dataType = DataSpecsDataType.ARRAY
|
|
break
|
|
break
|
|
}
|
|
}
|
|
}
|
|
}
|