diff --git a/src/components/JsonEditor/src/JsonEditor.vue b/src/components/JsonEditor/src/JsonEditor.vue index ef14a1064..f3789ee1f 100644 --- a/src/components/JsonEditor/src/JsonEditor.vue +++ b/src/components/JsonEditor/src/JsonEditor.vue @@ -12,7 +12,7 @@ import { JsonEditorEmits, JsonEditorExpose, JsonEditorProps } from '../types' defineOptions({ name: 'JsonEditor' }) const props = withDefaults(defineProps(), { - mode: 'tree' as JSONEditorMode, + mode: 'view' as JSONEditorMode, height: '400px', showModeSelection: false, showNavigationBar: false, @@ -58,6 +58,10 @@ const initJsonEditor = () => { if (jsonObj.value) { jsonEditor.set(jsonObj.value) } + + if (props.mode === 'view') { + jsonEditor?.expandAll() // 默认展开全部 + } } // 监听数据变化 diff --git a/src/views/iot/rule/scene/components/ThingModelDualView.vue b/src/views/iot/rule/scene/components/ThingModelDualView.vue new file mode 100644 index 000000000..24fb60002 --- /dev/null +++ b/src/views/iot/rule/scene/components/ThingModelDualView.vue @@ -0,0 +1,81 @@ + + + diff --git a/src/views/iot/rule/scene/components/ThingModelParamInput.vue b/src/views/iot/rule/scene/components/ThingModelParamInput.vue index bc602da5a..b6e35cbe9 100644 --- a/src/views/iot/rule/scene/components/ThingModelParamInput.vue +++ b/src/views/iot/rule/scene/components/ThingModelParamInput.vue @@ -59,7 +59,17 @@ @@ -68,6 +78,7 @@ import { computed } from 'vue' import { useVModel } from '@vueuse/core' import { DataSpecsDataType } from '@/views/iot/thingmodel/config' +import ThingModelDualView from './ThingModelDualView.vue' /** 物模型属性参数输入组件 */ defineOptions({ name: 'ThingModelParamInput' }) @@ -80,6 +91,11 @@ const props = defineProps<{ const emits = defineEmits(['update:modelValue', 'change']) const value = useVModel(props, 'modelValue', emits) +const thingModelDualViewRef = ref>() +const openJsonEditor = () => { + thingModelDualViewRef.value?.open() +} + /** 计算属性:判断数据类型 */ const isNumeric = computed(() => [DataSpecsDataType.INT, DataSpecsDataType.FLOAT, DataSpecsDataType.DOUBLE].includes( @@ -93,13 +109,17 @@ const isText = computed(() => props.thingModel?.dataType === DataSpecsDataType.T /** 获取数据规格 */ const dataSpecs = computed(() => { if (isNumeric.value || isDate.value || isText.value) { - return props.thingModel?.dataSpecs + return props.thingModel?.dataSpecs || {} } return {} }) const dataSpecsList = computed(() => { - if (isBool.value || isEnum.value) { - return props.thingModel?.dataSpecsList + if ( + isBool.value || + isEnum.value || + [DataSpecsDataType.ARRAY, DataSpecsDataType.STRUCT].includes(props.thingModel?.dataType) + ) { + return props.thingModel?.dataSpecsList || [] } return [] })