更新设备配置导入导出功能

This commit is contained in:
wu
2022-08-31 15:54:38 +08:00
parent e9840d6904
commit e7ce0403f1

View File

@@ -5,7 +5,7 @@
<el-card class="box-card">
<div slot="header" class="menu-header">
<div class="header-title">设备</div>
<el-dropdown size="small" style="vertical-align: middle" @command="handleCommand">
<el-dropdown size="small" style="vertical-align: middle" trigger="click" @command="handleCommand">
<el-button type="primary" round>
<i class="el-icon-s-tools" style="font-size: 14px"></i><i class="el-icon-arrow-down el-icon--right"
style="font-size: 14px"></i>
@@ -14,8 +14,16 @@
<el-dropdown-item command="add">新加设备</el-dropdown-item>
<el-dropdown-item command="del">删除设备</el-dropdown-item>
<el-dropdown-item>设备重启</el-dropdown-item>
<el-dropdown-item>导入配置</el-dropdown-item>
<el-dropdown-item>导出配置</el-dropdown-item>
<el-dropdown-item>
<el-upload
class="upload-demo"
ref="upload"
action=""
:before-upload="importDeviceConfigure">
导入配置
</el-upload>
</el-dropdown-item>
<el-dropdown-item command="export" >导出配置</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
@@ -451,6 +459,9 @@ export default {
case 'del':
this.delDevice()
break
case 'export':
this.exportDeviceConfigure()
break
}
},
async getCodesByWorkingSubclass (workingSubclass) {
@@ -768,6 +779,35 @@ export default {
this.$emit('changeStatus', false)
}
},
exportDeviceConfigure () {
const deviceConfigure = this.$refs.deviceConfigure.deviceConfigureModelValue
const devicePointData = this.devicePointData
deviceConfigure.DeviceNode = devicePointData
deviceConfigure.DeviceTypeName = this.$refs.deviceConfigure.defaultDeviceTypeNameValue
const deviceData = JSON.stringify(deviceConfigure)
const exportLink = document.createElement('a')
const blob = new Blob([deviceData], { type: 'text/json' })
exportLink.href = URL.createObjectURL(blob)
exportLink.download = deviceConfigure['@Name'] + '.json'
exportLink.style.display = 'none'
document.body.appendChild(exportLink)
exportLink.click()
exportLink.remove()
},
importDeviceConfigure (file) {
const reader = new FileReader()
reader.readAsText(file, 'UTF-8')
const that = this
reader.onload = function (e) {
const fileData = e.target.result
const deviceConfigureData = JSON.parse(fileData)
that.devicePointData = deviceConfigureData.DeviceNode
unset(deviceConfigureData, 'DeviceNode')
that.defaultFormData = deviceConfigureData
that.defaultDeviceName = deviceConfigureData.DeviceTypeName
}
return false
},
clearTime () {
clearInterval(this.timing)
this.timing = null