<template> <el-dialog width="70%" title="设备详情" :visible.sync="dialogFormVisible" top="10vh" append-to-body> <el-descriptions class="margin-top" title="" :column="2" border> <el-descriptions-item label="设备名称"> {{ deviceForm.deviceName }} </el-descriptions-item> <el-descriptions-item label="设备编号"> {{ deviceForm.devcode }} </el-descriptions-item> <el-descriptions-item label="设备类型"> {{ deviceForm.deviceTypeName }} </el-descriptions-item> <el-descriptions-item label="设备型号"> {{ deviceForm.modelName }} </el-descriptions-item> <el-descriptions-item label="安装日期"> {{ deviceForm.installDate }} </el-descriptions-item> <el-descriptions-item label="在线状态"> <span :style="{color:deviceForm.onlineState=='0'?'#909399':'#67C23A'}">{{ deviceForm.onlineStateName }} </span> </el-descriptions-item> <el-descriptions-item label="安装高度"> {{ deviceForm.installHeight?deviceForm.installHeight+' m':'--' }} </el-descriptions-item> <el-descriptions-item label="点位编号"> {{ deviceForm.wellCode }} </el-descriptions-item> <el-descriptions-item label="权属单位"> {{ deviceForm.deptName }} </el-descriptions-item> <!-- <el-descriptions-item label="布防状态">--> <!-- {{ deviceForm.bfztName }}--> <!-- </el-descriptions-item>--> <el-descriptions-item label="关联集中器编号"> {{ deviceForm.concenCode }} </el-descriptions-item> <el-descriptions-item label="位置" :span="2"> {{ deviceForm.position }} </el-descriptions-item> </el-descriptions> <component :is="cmpName" v-if="showData" ref="deviceTypeDialog" :devcode="deviceForm.devcode" /> </el-dialog> </template> <script> import listDigData from './components/listDigData' import listGasData from './components/listGasData' import listHarmfulData from './components/listHarmfulData' import listLiquidData from './components/listLiquidData' import listLiquidGasData from './components/listLiquidGasData' import listNoiseData from './components/listNoiseData' import listTempData from './components/listTempData' import listTubeData from './components/listTubeData' import listWellData from './components/listWellData' import listWellLocaData from './components/listWellLocaData' export default { name: 'EditDevice', components: { listDigData, listGasData, listHarmfulData, listLiquidData, listLiquidGasData, listNoiseData, listTempData, listTubeData, listWellData, listWellLocaData }, data() { return { dialogFormVisible: false, // 对话框是否显示 dialogStatus: '', // 对话框类型:create,update,detail showData: true, // 是否显示近期数据 cmpName: '', // 组件名称 deviceForm: { id: '', deviceName: '', devcode: '', deviceType: '', wellCode: '', modelId: '', installDate: '', concenCode: '', installHeight: '' }, // 表单 compDict: { '1': 'list-wellcover-data', '2': 'list-liquid-data', '3': 'list-harmful-data', '4': 'list-gas-data', '5': 'list-temp-hum-data', '6': 'list-dig-data', '7': 'list-well-loca-data', '8': 'list-noise-data', '9': 'list-temp-press-data', '10': 'list-liquid-gas-data', '11': 'list-hydrant-data', '12': 'list-tube-data' }, // 组件对照表 deviceTypeList: null, // 设备类型列表 deviceModelList: null // 设备型号列表 } }, methods: { // 初始化对话框 initDialog: function(dialogStatus, dialogFormVisible, row = null) { this.dialogStatus = dialogStatus this.dialogFormVisible = dialogFormVisible this.resetForm() this.deviceForm = { id: row.id, deviceName: row.deviceName, devcode: row.devcode, deviceTypeName: row.deviceTypeName, wellCode: row.wellCode, modelName: row.modelName, installDate: row.installDate, concenCode: row.concenCode, onlineStateName: row.onlineStateName, deptName: row.deptName, bfztName: row.bfztName, position: row.position } // 展示相对应的设备列表组件 this.cmpName = this.compDict[row.deviceType] setTimeout(() => { this.$refs.deviceTypeDialog.initData(row) }, 100) }, // 重置表单 resetForm() { this.deviceForm = { id: '', deviceName: '', devcode: '', deviceType: '', wellCode: '', modelId: '', installDate: '', concenCode: '', installHeight: '' } } } } </script> <style rel="stylesheet/scss" lang="scss" scoped> .el-select{ width: 100%; } .el-date-editor{ width: 100%;display: flex; } </style>