|
|
@@ -23,7 +23,7 @@
|
|
|
<el-form-item label="标识符" prop="identifier">
|
|
|
<el-input v-model="formData.identifier" placeholder="请输入标识符" />
|
|
|
</el-form-item>
|
|
|
- <!-- 属性配置 -->
|
|
|
+ <!-- 属性配�?-->
|
|
|
<ThingModelProperty
|
|
|
v-if="formData.type === IoTThingModelTypeEnum.PROPERTY"
|
|
|
v-model="formData.property" />
|
|
|
@@ -46,8 +46,8 @@
|
|
|
</el-form>
|
|
|
|
|
|
<template #footer>
|
|
|
- <el-button :disabled="formLoading" type="primary" @click="submitForm">确 定</el-button>
|
|
|
- <el-button @click="dialogVisible = false">取 消</el-button>
|
|
|
+ <el-button :disabled="formLoading" type="primary" @click="submitForm">确定</el-button>
|
|
|
+ <el-button @click="dialogVisible = false">取消</el-button>
|
|
|
</template>
|
|
|
</Dialog>
|
|
|
</template>
|
|
|
@@ -67,17 +67,17 @@ import { cloneDeep } from 'lodash-es'
|
|
|
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
|
|
|
import { isEmpty } from '@/utils/is'
|
|
|
|
|
|
-/** IoT 物模型数据表单 */
|
|
|
+/** IoT 物模型数据表�?*/
|
|
|
defineOptions({ name: 'IoTThingModelForm' })
|
|
|
|
|
|
-const product = inject<Ref<ProductVO>>(IOT_PROVIDE_KEY.PRODUCT) // 注入产品信息
|
|
|
+const product = inject<Ref<ProductVO> | undefined>(IOT_PROVIDE_KEY.PRODUCT) // 注入产品信息
|
|
|
|
|
|
-const { t } = useI18n() // 国际化
|
|
|
+const { t } = useI18n() // 国际�?
|
|
|
const message = useMessage() // 消息弹窗
|
|
|
|
|
|
-const dialogVisible = ref(false) // 弹窗的是否展示
|
|
|
-const dialogTitle = ref('') // 弹窗的标题
|
|
|
-const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
|
|
|
+const dialogVisible = ref(false) // 弹窗的是否展�?
|
|
|
+const dialogTitle = ref('') // 弹窗的标�?
|
|
|
+const formLoading = ref(false) // 表单的加载中�?)修改时的数据加载;2)提交的按钮禁用
|
|
|
const formType = ref('') // 表单的类型:create - 新增;update - 修改
|
|
|
const formData = ref<ThingModelData>({
|
|
|
type: IoTThingModelTypeEnum.PROPERTY,
|
|
|
@@ -114,11 +114,11 @@ const open = async (type: string, id?: number) => {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- // 情况二:服务初始化
|
|
|
+ // 情况二:服务初始�?
|
|
|
if (isEmpty(formData.value.service)) {
|
|
|
formData.value.service = {}
|
|
|
}
|
|
|
- // 情况三:事件初始化
|
|
|
+ // 情况三:事件初始�?
|
|
|
if (isEmpty(formData.value.event)) {
|
|
|
formData.value.event = {}
|
|
|
}
|
|
|
@@ -137,8 +137,13 @@ const submitForm = async () => {
|
|
|
try {
|
|
|
const data = cloneDeep(formData.value) as ThingModelData
|
|
|
// 信息补全
|
|
|
- data.productId = product!.value.id
|
|
|
- data.productKey = product!.value.productKey
|
|
|
+ if (product?.value?.id) {
|
|
|
+ data.productId = product.value.id
|
|
|
+ data.productKey = product.value.productKey
|
|
|
+ } else {
|
|
|
+ delete data.productId
|
|
|
+ delete data.productKey
|
|
|
+ }
|
|
|
fillExtraAttributes(data)
|
|
|
if (formType.value === 'create') {
|
|
|
await ThingModelApi.createThingModel(data)
|
|
|
@@ -157,7 +162,7 @@ const submitForm = async () => {
|
|
|
|
|
|
/** 填写额外的属性(处理不同类型的情况) */
|
|
|
const fillExtraAttributes = (data: any) => {
|
|
|
- // 属性
|
|
|
+ // 属�?
|
|
|
if (data.type === IoTThingModelTypeEnum.PROPERTY) {
|
|
|
removeDataSpecs(data.property)
|
|
|
data.dataType = data.property.dataType
|
|
|
@@ -186,7 +191,7 @@ const fillExtraAttributes = (data: any) => {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-/** 处理 dataSpecs 为空的情况 */
|
|
|
+/** 处理 dataSpecs 为空的情�?*/
|
|
|
const removeDataSpecs = (val: any) => {
|
|
|
if (isEmpty(val.dataSpecs)) {
|
|
|
delete val.dataSpecs
|