<template> <el-dialog width="70%" :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible" append-to-body> <el-form ref="dataForm" :model="deviceForm" label-well-code="right" label-width="100px"> <el-row :gutter="20"> <el-col :span="12"> <el-form-item label="设备名称" prop="deviceName"> <el-input v-model="deviceForm.deviceName" type="text" placeholder="未知" disabled /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="设备编号" prop="devcode"> <el-input v-model="deviceForm.devcode" type="text" placeholder="未知" disabled /> </el-form-item> </el-col> </el-row> <el-row :gutter="20"> <el-col :span="12"> <el-form-item label="设备类型" prop="deviceType"> <el-input v-model="deviceForm.deviceTypeName" type="text" placeholder="未知" disabled /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="设备型号" prop="modelId"> <el-input v-model="deviceForm.modelName" type="text" placeholder="未知" disabled /> </el-form-item> </el-col> </el-row> <el-row :gutter="20"> <el-col :span="12"> <el-form-item label="在线状态" prop="wellCode"> <el-input v-model="deviceForm.onlineStateName" type="text" placeholder="未知" disabled /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="权属单位" prop="concenCode"> <el-input v-model="deviceForm.deptName" type="text" placeholder="未知" disabled /> </el-form-item> </el-col> </el-row> <el-row :gutter="20"> <el-col :span="12"> <el-form-item label="点位编号" prop="wellCode"> <el-input v-model="deviceForm.wellCode" type="text" placeholder="未知" disabled /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="布防状态" prop="bfztName"> <el-input v-model="deviceForm.bfztName" type="text" placeholder="未知" disabled /> </el-form-item> </el-col> </el-row> <el-row :gutter="20"> <el-col :span="24"> <el-form-item label="位置" prop="position"> <el-input v-model="deviceForm.position" type="text" placeholder="未知" disabled /> </el-form-item> </el-col> </el-row> <el-row :gutter="20"> <el-col :span="12"> <el-form-item label="安装日期" prop="installDate"> <el-input v-model="deviceForm.installDate" type="text" placeholder="未知" disabled /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="集中器编号" prop="concenCode"> <el-input v-model="deviceForm.concenCode" type="text" placeholder="未知" disabled /> </el-form-item> </el-col> </el-row> </el-form> <component :is="cmpName" v-if="showData" ref="deviceTypeDialog" /> </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: false, // 是否显示近期数据 cmpName: '', // 组件名称 deviceForm: { id: '', deviceName: '', devcode: '', deviceType: '', wellCode: '', modelId: '', installDate: '', concenCode: '', installHeight: '' }, // 表单 textMap: { update: '编辑', create: '新增', detail: '详情' }, // 表头显示标题 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>