Newer
Older
rescue_front / src / views / backpackManage / detailBackpack.vue
liuyangyingjie on 8 Sep 2022 18 KB fix(修改bug):
<template>
  <el-dialog :visible.sync="dialogFormVisible" class="editDialog" title="背负式设备详情" append-to-body @close="cancel">
    <el-scrollbar :native="false">
      <el-form v-loading="loading" ref="dataForm" :label-position="labelPosition" :model="backpackForm" label-width="120px">
        <el-row>
          <el-col :span="10">
            <el-form-item label="品牌型号" prop="brandModel">
              <el-input v-model="backpackForm.brandModel" type="text" placeholder="未知" disabled/>
            </el-form-item>
          </el-col>
          <el-col :span="10" :offset="1">
            <el-form-item label="背负式设备编号" prop="backpackCode">
              <el-input v-model="backpackForm.backpackCode" type="text" placeholder="未知" disabled/>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="10">
            <el-form-item label="负责人" prop="chargePerson">
              <el-input v-model="backpackForm.chargePerson" type="text" placeholder="未知" disabled/>
            </el-form-item>
          </el-col>
          <el-col :span="10" :offset="1">
            <el-form-item label="负责人电话" prop="chargePhone">
              <el-input v-model="backpackForm.chargePhone" type="text" placeholder="未知" disabled/>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <!--<el-col :span="10">-->
          <!--<el-form-item label="井深(m)" prop="deep">-->
          <!--<el-input v-model="wellForm.deep" type="text" placeholder="未知" disabled/>-->
          <!--</el-form-item>-->
          <!--</el-col>-->
          <el-col :span="10">
            <el-form-item label="删除标记" prop="delflag">
              <el-input v-model="backpackForm.delflag" type="text" placeholder="未知" disabled/>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="10">
            <el-form-item label="使用部门" prop="deptName">
              <el-input v-model="backpackForm.deptName" type="text" placeholder="未知" disabled/>
            </el-form-item>
          </el-col>
<!--          <el-col :span="10" :offset="1">-->
<!--            <el-form-item label="使用部门ID" prop="deptid">-->
<!--              <el-input v-model="backpackForm.deptid" type="text" placeholder="未知" disabled/>-->
<!--            </el-form-item>-->
<!--          </el-col>-->
        </el-row>
        <!--        <el-row>-->
        <!--          <el-col :span="24">-->
        <!--            <el-form-item label="路标图片" prop="images">-->
        <!--              <div v-if="imageList.length==0">-->
        <!--                无-->
        <!--              </div>-->
        <!--              &lt;!&ndash;<el-image&ndash;&gt;-->
        <!--              &lt;!&ndash;v-for="image in imageList"&ndash;&gt;-->
        <!--              &lt;!&ndash;:src="image"&ndash;&gt;-->
        <!--              &lt;!&ndash;:preview-src-list="imageList"&ndash;&gt;-->
        <!--              &lt;!&ndash;:z-index="4000"&ndash;&gt;-->
        <!--              &lt;!&ndash;style="width: 100px; height: 100px; margin-right:10px"/>&ndash;&gt;-->
        <!--              <el-upload-->
        <!--                v-else-->
        <!--                ref="upload"-->
        <!--                :file-list="imageList"-->
        <!--                :on-preview="handlePictureCardPreview"-->
        <!--                class="hide"-->
        <!--                multiple-->
        <!--                accept=".jpg,.jpeg,.png "-->
        <!--                action="string"-->
        <!--                list-type="picture-card"-->
        <!--                disabled-->
        <!--              >-->
        <!--                <i class="el-icon-plus"/>-->
        <!--              </el-upload>-->
        <!--              <el-dialog :visible.sync="dialogVisible" title="图片预览" append-to-body>-->
        <!--                &lt;!&ndash;<img width="100%" :src="dialogImageUrl">&ndash;&gt;-->
        <!--                <div class="imgBox">-->
        <!--                  <img :src="dialogImageUrl" alt="" style="width:100%; margin: 0 auto;">-->
        <!--                </div>-->
        <!--              </el-dialog>-->
        <!--            </el-form-item>-->
        <!--          </el-col>-->
        <!--        </el-row>-->
        <!--        <el-row :gutter="1">-->
        <!--          <el-form-item label="所在区域" required>-->
        <!--            <el-col :span="5">-->
        <!--              <el-form-item prop="qu">-->
        <!--                <el-select v-model="wellForm.qu" placeholder="未知" disabled>-->
        <!--                  <el-option-->
        <!--                    v-for="item in quList"-->
        <!--                    :key="item.id"-->
        <!--                    :label="item.name"-->
        <!--                    :value="item.id"/>-->
        <!--                </el-select>-->
        <!--              </el-form-item>-->
        <!--            </el-col>-->
        <!--            <el-col :span="1" class="line">区/县</el-col>-->
        <!--            <el-col :span="5">-->
        <!--              <el-form-item prop="area">-->
        <!--                <el-select v-model="wellForm.area" placeholder="未知" disabled>-->
        <!--                  <el-option-->
        <!--                    v-for="item in jiedaoList"-->
        <!--                    :key="item.id"-->
        <!--                    :label="item.name"-->
        <!--                    :value="item.id"/>-->
        <!--                </el-select>-->
        <!--              </el-form-item>-->
        <!--            </el-col>-->
        <!--            <el-col :span="1" class="line">街道/镇</el-col>-->
        <!--          </el-form-item>-->

        <!--        </el-row>-->
        <el-row>
          <el-col :span="10">
            <el-form-item label="背负式设备描述" prop="description">
              <el-input v-model="backpackForm.description" type="text" placeholder="未知" disabled/>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="20">
          <el-col :span="10">
            <el-form-item label="设备ID" prop="deviceId">
              <el-input v-model="backpackForm.deviceId" type="text" placeholder="未知" disabled/>
            </el-form-item>
          </el-col>
          <el-col :span="10">
            <el-form-item label="电量检测设备编号" prop="electricCode">
              <el-input v-model="backpackForm.electricCode" type="text" placeholder="未知" disabled/>
            </el-form-item>
          </el-col>
        </el-row>
<!--        <el-row :gutter="20">-->
<!--          <el-col :span="10">-->
<!--            <el-form-item label="id" prop="id">-->
<!--              <el-input v-model="backpackForm.id" type="text" placeholder="未知" disabled/>-->
<!--            </el-form-item>-->
<!--          </el-col>-->
<!--          <el-col :span="10">-->
<!--            <el-form-item label="imei" prop="imei">-->
<!--              <el-input v-model="backpackForm.imei" type="text" placeholder="未知" disabled/>-->
<!--            </el-form-item>-->
<!--          </el-col>-->
<!--        </el-row>-->
        <el-row :gutter="20">
          <el-col :span="10">
            <el-form-item label="液位检测设备编号" prop="liquidCode">
              <el-input v-model="backpackForm.liquidCode" type="text" placeholder="未知" disabled/>
            </el-form-item>
          </el-col>
<!--          <el-col :span="10">-->
<!--            <el-form-item label="iot" prop="iot">-->
<!--              <el-input v-model="backpackForm.iot" type="text" placeholder="未知" disabled/>-->
<!--            </el-form-item>-->
<!--          </el-col>-->
        </el-row>
        <el-row :gutter="20">
          <el-col :span="10">
            <el-form-item label="购入日期" prop="purchaseDate">
              <el-input v-model="backpackForm.purchaseDate" type="text" placeholder="未知" disabled/>
            </el-form-item>
          </el-col>
          <el-col :span="10">
            <el-form-item label="登记日期" prop="registerDate">
              <el-input v-model="backpackForm.registerDate" type="text" placeholder="未知" disabled/>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="20">
          <el-col :span="10">
            <el-form-item label="使用人" prop="userPerson">
              <el-input v-model="backpackForm.userPerson" type="text" placeholder="未知" disabled/>
            </el-form-item>
          </el-col>
          <el-col :span="10">
            <el-form-item label="使用人电话" prop="userPhone">
              <el-input v-model="backpackForm.userPhone" type="text" placeholder="未知" disabled/>
            </el-form-item>
          </el-col>
        </el-row>
<!--        <el-row :gutter="20">-->
<!--          <el-col :span="10">-->
<!--            <el-form-item label="液位检测设备编号" prop="liquidCode">-->
<!--              <el-input v-model="backpackForm.liquidCode" type="text" placeholder="未知" disabled/>-->
<!--            </el-form-item>-->
<!--          </el-col>-->
<!--        </el-row>-->
        <el-row :gutter="20">
          <el-col :span="10">
            <el-form-item label="备注" prop="remarks">
              <el-input v-model="backpackForm.remarks" type="text" placeholder="未知" disabled/>
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
      <!--      <div class="watch-div">-->
      <!--        <el-row class="table-title">-->
      <!--          <el-col :span="3"><div class="title-header"><i class="el-icon-menu"/>监控数据</div></el-col>-->
      <!--        </el-row>-->
      <!--        <el-table v-loading="listLoading" :data="dataList" class="table" border>-->
      <!--          <el-table-column align="center" type="index"/>-->
      <!--          <el-table-column v-for="column in columns" :key="column.value" :label="column.text" :width="column.width" align="center" show-overflow-tooltip>-->
      <!--            <template slot-scope="scope">-->
      <!--              {{ scope.row[column.value] }}-->
      <!--            </template>-->
      <!--          </el-table-column>-->
      <!--          <el-table-column label="操作" width="120">-->
      <!--            <template slot-scope="scope">-->
      <!--              <el-button type="text" @click="showData(scope.row)">查看历史数据</el-button>-->
      <!--            </template>-->
      <!--          </el-table-column>-->
      <!--        </el-table>-->
      <!--      </div>-->
    </el-scrollbar>
  </el-dialog>
</template>

<script>
import SelectTree from '@/components/SelectTree/singleSelect'
import { getAreaList, getAreaByDept } from '@/api/area'
import { getBackpackInfo } from '@/api/backpack'
import DeptSelect from '@/components/DeptSelect'
// import {getBackpackInfo} from "@/api/backpack";

export default {
  name: 'DetailBackpack',
  components: { SelectTree, DeptSelect },
  data() {
    return {
      dialogFormVisible: false, // 对话框是否显示
      backpackForm: {
        backpackInfoId: '3', // 例如backpackInfoId: row.id, 所以对应后面的值填3
        description: '111',
        deptId: '0',
        deptName: '顶级',
        userPerson: '',
        userPhone: '',
        purchaseDate: '',
        registerDate: '',
        remarks: '',
        deviceId: '',
        liquidCode: '',
        electricCode: '',
        brandModel: '111',
        backpackCode: '',
        chargePerson: '',
        chargePhone: '',
        delflag: '',
        imei: '',
        iot: ''
      },// 表单
      deptProps: {
        parent: 'pid',
        value: 'id',
        label: 'name',
        children: 'children'
      },
      columns: [
        {
          text: '品牌型号',
          value: 'brandModel',
          align: 'center'
        },
        {
          text: '背负式设备编号',
          value: 'backpackCode',
          align: 'center'
        },
        {
          text: '负责人',
          value: 'chargePerson',
          align: 'center'
        },
        {
          text: '负责人电话',
          value: 'chargePhone',
          align: 'center'
        },
        {
          text: '删除标记',
          value: 'delflag',
          align: 'center'
        },
        {
          text: '使用单位ID',
          value: 'deptId',
          align: 'center'
        },
        {
          text: '使用单位',
          value: 'deptName',
          align: 'center'
        },
        {
          text: '背负式设备描述',
          value: 'description',
          align: 'center'
        },
        {
          text: '设备ID',
          value: 'deviceId',
          align: 'center'
        },
        {
          text: '电量编号',
          value: 'electricCode',
          align: 'center'
        },
        {
          text: 'id',
          value: 'id',
          align: 'center'
        },
        {
          text: 'imei',
          value: 'imei',
          align: 'center'
        },
        {
          text: 'iot',
          value: 'iot',
          align: 'center'
        },
        {
          text: '液位编号',
          value: 'liquidCode',
          align: 'center'
        },
        {
          text: '购入日期',
          value: 'purchaseDate',
          align: 'center'
        },
        {
          text: '登记日期',
          value: 'registerDate',
          align: 'center'
        },
        {
          text: '备注',
          value: 'remarks',
          align: 'center'
        },
        {
          text: '使用人',
          value: 'userPerson',
          align: 'center'
        },
        {
          text: '使用人电话',
          value: 'userPhone',
          align: 'center'
        }
      ],
      hideUpload: false,
      imageList: [],
      fileList: [],
      deptTreeList: null, // 组织树列表数据
      secondDeptTreeList: null, // 二级组织树列表
      backpackCodeList: null,
      quList: null,
      jiedaoList: null,
      dialogImageUrl: '',
      dialogVisible: false,
      labelPosition: 'right',
      listLoading: false, // 监控数据加载动画
      dataList: [], // 监控数据
      loading: true
    }
  },
  methods: {
    // 初始化对话框
    initDialog: function(dialogFormVisible, row = null) {
      this.imageList = []
      this.loading = true
      this.dialogFormVisible = dialogFormVisible
      console.log(row,"=======row========");
      this.backpackForm = {
        id: row.id || row.data.id, // 背负式设备id
        backpackCode: row.data.backpackCode || '',
        description: row.data.description || '',
        deptId: row.data.deptId || '',
        deptName: row.data.deptName || '',
        brandModel: row.data.brandModel || '',
        userPerson: row.data.userPerson || '',
        userPhone: row.data.userPhone || '',
        chargePerson: row.data.chargePerson || '',
        chargePhone: row.data.chargePhone || '',
        purchaseDate: row.data.purchaseDate || '',
        registerDate: row.data.registerDate || '',
        remarks: row.data.remarks || '',
        deviceId: row.data.deviceId || '',
        liquidCode: row.data.liquidCode || '',
        electricCode: row.data.electricCode || '',
        iot: row.data.iot || '',
        imei: row.data.imei || '',
        delflag: row.data.delflag || ''
      }
      if (row.deptId && row.deptId !== '') {
        this.fetchArea1()
        this.fetchArea2()
        this.loading = false
      } else {
        this.loading = false
      }
      // 处理图片
      const urls = row.photos.split(';')
      const base_url = process.env.BASE_API + '/static/'
      for (const url of urls) {
        if (url) {
          this.imageList.push({ name: url, url: base_url + url })
        }
      }
      // 获取背负式设备数据
      this.listLoading = true
      // watchDataByBackpack(row.id).then(response => {
      //   this.listLoading = false
      //   this.dataList = response.data
      // })
      getBackpackInfo(row.backpackInfoId).then(response => {
        this.listLoading = false
        this.dataList = response.data
      })
    },
    // 获取区域1
    fetchArea1() {
      getAreaByDept(this.backpackForm.deptId).then(response => {
        if (response.code === 200) {
          const pid = response.data.area
          getAreaList(pid).then(response => {
            this.quList = response.data
          })
        }
      })
    },
    // 获取区域2
    fetchArea2() {
      getAreaList(this.backpackForm.qu).then(response => {
        this.jiedaoList = response.data
        this.loading = false
      })
    },
    showData(row) {
      const devcode = row.devcode
      const deviceType = row.type
      const params = { devcode: devcode, deviceType: deviceType }
      const routeData = this.$router.resolve({
        name: 'DataManage',
        query: params,
        params: params
      })
      window.open(routeData.href, '_blank')
      // this.$router.push({ name: 'DataManage', query: params })
    },
    // 取消
    cancel() {
      this.imageList = []
      this.dialogFormVisible = false
    },
    // 图片预览
    handlePictureCardPreview(file) {
      this.dialogImageUrl = file.url
      this.dialogVisible = true
    }
  }
}
</script>

<style rel="stylesheet/scss" lang="scss">
  .hide .el-upload--picture-card {
    display: none;
  }
  .editDialog{
    .el-dialog {
      width: 900px;
      margin-top: 10vh !important;
      .el-dialog__body{
      }
      .el-scrollbar {
        height: 410px;
        width: 100%;
      }
      .el-scrollbar__wrap {
        /*overflow: scroll;*/
        overflow-x: auto;
        overflow-y: auto;
      }
      .el-scrollbar__view{
        width: 98%;
      }
    }
  }
  .el-select{
    width: 100%;
  }
  .line{
    width: 50px;
    margin-left: 5px;
  }
  .hide .el-upload-–picture-card{
    display: none;
  }
  .imgBox{
    width: 100%;
    text-align: center;
  }
  .watch-div {
    margin: 15px;
    .table-title {
      margin-top: 10px;
      .title-header {
        height: 40px;
        padding: 10px;
        /*border-radius: 4px;*/
        /*border: solid 1px #F3F3F3;*/
        /*background-color: #F5F7FA;*/
        color: #606266;
      }
    }
  }
</style>