Newer
Older
smartwell_front / src / views / deviceManage / detailDevice.vue
<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>