feat: 增加设备配置

This commit is contained in:
dylanmay 2025-02-10 16:53:10 +08:00
parent 1f4c70a176
commit 107ee7bebf
3 changed files with 92 additions and 0 deletions

View File

@ -67,6 +67,7 @@
"sortablejs": "^1.15.3", "sortablejs": "^1.15.3",
"steady-xml": "^0.1.0", "steady-xml": "^0.1.0",
"url": "^0.11.3", "url": "^0.11.3",
"v3-jsoneditor": "^0.0.6",
"video.js": "^7.21.5", "video.js": "^7.21.5",
"vue": "3.5.12", "vue": "3.5.12",
"vue-dompurify-html": "^4.1.4", "vue-dompurify-html": "^4.1.4",

View File

@ -0,0 +1,87 @@
<template>
<div>
<el-alert
title="IoT平台支持远程更新设备的配置文件(SON格式),您可以在下方编辑配置模板,对设备的系统参数、网络参数等进行远程配置,通过批量更新对设备进行批量远程维护和管理。"
type="info"
show-icon
class="my-4"
description="如需编辑文件,请点击下方编辑按钮"
/>
<Vue3Jsoneditor
ref="editor"
v-if="isEditing"
v-model="deviceConfig"
:options="editorOptions"
height="500px"
currentMode="code"
@error="onError"
/>
<Vue3Jsoneditor
ref="editor"
v-else
v-model="deviceConfig"
:options="editorOptions"
height="500px"
currentMode="view"
@error="onError"
/>
<div class="button-group">
<el-button v-if="isEditing" @click="cancelEdit">取消</el-button>
<el-button v-if="isEditing" type="primary" @click="saveConfig">保存</el-button>
<el-button v-else @click="enableEdit">编辑</el-button>
</div>
</div>
</template>
<script lang="ts" setup>
import { ref, computed } from 'vue';
import Vue3Jsoneditor from 'v3-jsoneditor/src/Vue3Jsoneditor.vue';
//
const deviceConfig = ref({
"name": "dyla1n"
});
//
const isEditing = ref(false);
// JSON
const editorOptions = computed(() => ({
mainMenuBar: false,
navigationBar: false,
statusBar: false,
}));
//
const enableEdit = () => {
isEditing.value = true;
};
//
const cancelEdit = () => {
isEditing.value = false;
//
console.log('取消编辑');
};
//
const saveConfig = () => {
isEditing.value = false;
//
console.log('保存配置');
};
// JSON
const onError = (e: any) => {
console.log('onError', e);
};
</script>
<style scoped>
.button-group {
display: flex;
justify-content: center;
margin-top: 20px;
}
</style>

View File

@ -26,6 +26,9 @@
:device="device" :device="device"
/> />
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="设备配置" name="config">
<DeviceDetailConfig />
</el-tab-pane>
</el-tabs> </el-tabs>
</el-col> </el-col>
</template> </template>
@ -38,6 +41,7 @@ import DeviceDetailsInfo from './DeviceDetailsInfo.vue'
import DeviceDetailsModel from './DeviceDetailsModel.vue' import DeviceDetailsModel from './DeviceDetailsModel.vue'
import DeviceDetailsLog from './DeviceDetailsLog.vue' import DeviceDetailsLog from './DeviceDetailsLog.vue'
import DeviceDetailsSimulator from './DeviceDetailsSimulator.vue' import DeviceDetailsSimulator from './DeviceDetailsSimulator.vue'
import DeviceDetailConfig from './DeviceDetailConfig.vue';
defineOptions({ name: 'IoTDeviceDetail' }) defineOptions({ name: 'IoTDeviceDetail' })