From a1d7e81859f554f3a53680cc35f0f49bf1f77098 Mon Sep 17 00:00:00 2001
From: wwf <1971391498@qq.com>
Date: 星期四, 14 五月 2026 14:37:02 +0800
Subject: [PATCH] 导入项目
---
src/views/iot/thingmodel/ThingModelTSL.vue | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 50 insertions(+), 0 deletions(-)
diff --git a/src/views/iot/thingmodel/ThingModelTSL.vue b/src/views/iot/thingmodel/ThingModelTSL.vue
new file mode 100644
index 0000000..210dbd4
--- /dev/null
+++ b/src/views/iot/thingmodel/ThingModelTSL.vue
@@ -0,0 +1,50 @@
+<template>
+ <Dialog v-model="dialogVisible" :title="dialogTitle">
+ <JsonEditor
+ v-model="thingModelTSL"
+ :mode="viewMode === 'editor' ? 'code' : 'view'"
+ height="600px"
+ />
+ <template #footer>
+ <el-radio-group v-model="viewMode" size="small">
+ <el-radio-button label="code">浠g爜瑙嗗浘</el-radio-button>
+ <el-radio-button label="editor">缂栬緫鍣ㄨ鍥�</el-radio-button>
+ </el-radio-group>
+ </template>
+ </Dialog>
+</template>
+
+<script setup lang="ts">
+import hljs from 'highlight.js' // 瀵煎叆浠g爜楂樹寒鏂囦欢
+import 'highlight.js/styles/github.css' // 瀵煎叆浠g爜楂樹寒鏍峰紡
+import json from 'highlight.js/lib/languages/json'
+import { ThingModelApi } from '@/api/iot/thingmodel'
+import { ProductVO } from '@/api/iot/product/product'
+import { IOT_PROVIDE_KEY } from '@/views/iot/utils/constants'
+
+defineOptions({ name: 'ThingModelTSL' })
+
+const dialogVisible = ref(false) // 寮圭獥鐨勬槸鍚﹀睍绀�
+const dialogTitle = ref('鐗╂ā鍨� TSL') // 寮圭獥鐨勬爣棰�
+const product = inject<Ref<ProductVO>>(IOT_PROVIDE_KEY.PRODUCT) // 娉ㄥ叆浜у搧淇℃伅
+const viewMode = ref('code') // 鏌ョ湅妯″紡锛歝ode-浠g爜瑙嗗浘锛宔ditor-缂栬緫鍣ㄨ鍥�
+
+/** 鎵撳紑寮圭獥 */
+const open = () => {
+ dialogVisible.value = true
+}
+defineExpose({ open })
+
+/** 鑾峰彇 TSL */
+const thingModelTSL = ref({})
+const getTsl = async () => {
+ thingModelTSL.value = await ThingModelApi.getThingModelTSLByProductId(product?.value?.id || 0)
+}
+
+/** 鍒濆鍖� **/
+onMounted(async () => {
+ // 娉ㄥ唽浠g爜楂樹寒鐨勫悇绉嶈瑷�
+ hljs.registerLanguage('json', json)
+ await getTsl()
+})
+</script>
--
Gitblit v1.8.0