Commit c3f5e84416ba5c3f8e63a169a9a2c413a072a2a3
Merge branch 'fix/object-model-import' into 'main_dev'
fix: 修复物模型导入空对象时报错 See merge request yunteng/thingskit-front!713
Showing
2 changed files
with
18 additions
and
1 deletions
| @@ -247,6 +247,8 @@ | @@ -247,6 +247,8 @@ | ||
| 247 | return { flag, data }; | 247 | return { flag, data }; |
| 248 | }; | 248 | }; |
| 249 | 249 | ||
| 250 | + const isEmptyObject = (value: any) => isObject(value) && !Object.keys(value).length; | ||
| 251 | + | ||
| 250 | const importLoading = ref(false); | 252 | const importLoading = ref(false); |
| 251 | const handleImportModel = async (data: { file: File }) => { | 253 | const handleImportModel = async (data: { file: File }) => { |
| 252 | const fileReader = new FileReader(); | 254 | const fileReader = new FileReader(); |
| @@ -259,6 +261,14 @@ | @@ -259,6 +261,14 @@ | ||
| 259 | } | 261 | } |
| 260 | try { | 262 | try { |
| 261 | importLoading.value = true; | 263 | importLoading.value = true; |
| 264 | + | ||
| 265 | + Object.keys(data || {}).forEach((key) => { | ||
| 266 | + const value = (data || {})[key]; | ||
| 267 | + if (value && isEmptyObject(value)) { | ||
| 268 | + (data || {})[key] = []; | ||
| 269 | + } | ||
| 270 | + }); | ||
| 271 | + | ||
| 262 | const result = await importModelOfMatter({ | 272 | const result = await importModelOfMatter({ |
| 263 | tkDeviceProfileId: props.record.id, | 273 | tkDeviceProfileId: props.record.id, |
| 264 | data: data!, | 274 | data: data!, |
| @@ -25,6 +25,7 @@ | @@ -25,6 +25,7 @@ | ||
| 25 | import { Button } from 'ant-design-vue'; | 25 | import { Button } from 'ant-design-vue'; |
| 26 | import { getModelTsl } from '/@/api/device/modelOfMatter'; | 26 | import { getModelTsl } from '/@/api/device/modelOfMatter'; |
| 27 | import { FunctionType } from './cpns/config'; | 27 | import { FunctionType } from './cpns/config'; |
| 28 | + import { isObject } from '/@/utils/is'; | ||
| 28 | 29 | ||
| 29 | defineEmits(['register']); | 30 | defineEmits(['register']); |
| 30 | 31 | ||
| @@ -78,11 +79,17 @@ | @@ -78,11 +79,17 @@ | ||
| 78 | ]); | 79 | ]); |
| 79 | }; | 80 | }; |
| 80 | 81 | ||
| 82 | + const isEmptyObject = (value: any) => isObject(value) && !Object.keys(value).length; | ||
| 83 | + | ||
| 81 | const handleExportAll = async () => { | 84 | const handleExportAll = async () => { |
| 82 | loading.value = true; | 85 | loading.value = true; |
| 83 | try { | 86 | try { |
| 84 | const [events, properties, services] = await getAllModel(); | 87 | const [events, properties, services] = await getAllModel(); |
| 85 | - const value = { properties, services, events }; | 88 | + const value = { |
| 89 | + properties: isEmptyObject(properties) ? [] : properties, | ||
| 90 | + services: isEmptyObject(services) ? [] : services, | ||
| 91 | + events: isEmptyObject(events) ? [] : events, | ||
| 92 | + }; | ||
| 86 | exportJSONFile(value); | 93 | exportJSONFile(value); |
| 87 | } catch (error) { | 94 | } catch (error) { |
| 88 | throw error; | 95 | throw error; |