<template>
  <div class="alarmHandBox">
    <div class="searchMain">
      <div class="searchBox">
        <el-form :inline="true" :model="formdata" class="demo-form-inline">
          <el-form-item label="电压等级" class="dybox">
            <el-select v-model="formdata.dyId" @change="getSearchxl">
              <el-option
                v-for="item in dyOptions"
                :key="item.id"
                :label="item.name"
                :value="item.id"
              ></el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="线路名称" class="xlbox">
            <el-select v-model="formdata.lineId" @change="getSearchgt">
              <el-option
                v-for="item in xlOptions"
                :key="item.id"
                :label="item.name"
                :value="item.id"
              ></el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="杆塔名称">
            <el-select v-model="formdata.towerId">
              <el-option
                v-for="item in gtOptions"
                :key="item.id"
                :label="item.name"
                :value="item.id"
              ></el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="日期">
            <el-date-picker
              v-model="formdata.timeVal"
              type="datetimerange"
              start-placeholder="开始日期"
              end-placeholder="结束日期"
              value-format="timestamp"
            ></el-date-picker>
          </el-form-item>
          <el-form-item label="告警原因" class="gjbox">
            <el-select v-model="formdata.warnCause">
              <el-option
                v-for="item in gjOptions"
                :key="item.id"
                :label="item.name"
                :value="item.id"
              ></el-option>
            </el-select>
          </el-form-item>
          <el-form-item>
            <el-button type="primary" @click="onSubmit">查询</el-button>
          </el-form-item>
        </el-form>
      </div>
      <div class="alarmContain" v-loading="loading">
        <div class="alarmTable">
          <el-table
            ref="multipleTable"
            :data="tableData"
            stripe
            border
            tooltip-effect="dark"
            style="width: 100%"
            @selection-change="handleSelectionChange"
            height="calc(100% - 40px)"
            @row-click="handleRowClick"
            highlight-current-row
          >
            <el-table-column min-width="45" label="序号">
              <template slot-scope="scope">
                <span>{{ (page - 1) * pageSize + scope.$index + 1 }}</span>
              </template>
            </el-table-column>
            <el-table-column
              prop="alarmTime"
              label="告警时间"
              min-width="135"
              :show-overflow-tooltip="true"
              :formatter="dateFormat"
            >
            </el-table-column>
            <!-- <el-table-column
              prop="dyLevel"
              label="电压等级"
              min-width="75"
              :show-overflow-tooltip="true"
            >
            </el-table-column> -->
            <el-table-column
              prop="lineName"
              label="线路名称"
              min-width="105"
              :show-overflow-tooltip="true"
            >
            </el-table-column>
            <el-table-column
              prop="towerName"
              label="杆塔名称"
              min-width="115"
              :show-overflow-tooltip="true"
            >
            </el-table-column>
            <el-table-column
              prop="displayName"
              label="设备名称"
              min-width="95"
              :show-overflow-tooltip="true"
            >
            </el-table-column>
            <el-table-column
              label="通道名称"
              min-width="75"
              :show-overflow-tooltip="true"
            >
              <template slot-scope="scope">{{
                scope.row.alias !== null && scope.row.alias !== ""
                  ? scope.row.alias
                  : scope.row.channnelName
              }}</template>
            </el-table-column>
            <!-- <el-table-column
              prop="termId"
              label="设备编号"
              min-width="75"
              :show-overflow-tooltip="true"
            >
            </el-table-column> -->

            <el-table-column
              prop="enname"
              label="告警原因"
              min-width="155"
              :show-overflow-tooltip="true"
            >
            </el-table-column>
            <el-table-column label="是否已读" min-width="95" fixed="right">
              <template slot-scope="scope">
                <span v-if="scope.row.isread == 0">未读</span>
                <span v-if="scope.row.isread == 1">已读</span>
              </template>
            </el-table-column>
          </el-table>
          <div class="pageNation">
            <el-pagination
              @current-change="handleCurrentChange"
              @size-change="handleSizeChange"
              :current-page="page"
              :page-size="pageSize"
              layout="sizes, prev, pager, next, jumper,total"
              :total="total"
            >
            </el-pagination>
          </div>
        </div>
        <div class="alarmPic">
          <div class="imgshow"><img :src="photoPic" /></div>
          <div class="editorBtn">
            <el-button type="primary">主动拍照</el-button>
            <el-button type="primary">历史图片</el-button>
          </div>
        </div>
      </div>
    </div>
  </div>
</template>

<script>
import { getSearchInfo, getAlarmList } from "@/utils/api/index";
import moment from "moment";
export default {
  data() {
    return {
      dyOptions: [{ id: 0, name: "全部" }], //电压数据
      xlOptions: [{ id: 0, name: "全部" }], //线路数据
      gtOptions: [{ id: 0, name: "全部" }], //杆塔数据
      gjOptions: [{ id: 0, name: "全部" }], //告警数据
      formdata: {
        dyId: "",
        lineId: "",
        towerId: "",
        warnCause: "",
        timeVal: "",
      },
      photoPic: "",
      tableData: [],
      multipleSelection: [],
      page: 1, // 当前页数
      pageSize: 20, // 每页数量
      total: 0, //总条数
      loading: false,
    };
  },
  mounted() {
    this.$set(this.formdata, "timeVal", [
      new Date(new Date().toLocaleDateString()).getTime(),
      new Date().getTime(),
    ]);
    this.getTableList();
    this.getSearchdy();
    this.getSearchgj();
  },
  methods: {
    //获取电压信息
    getSearchdy() {
      getSearchInfo({ type: 1 })
        .then((res) => {
          this.dyOptions = this.dyOptions.concat(res.data.list);
          this.formdata.dyId = this.dyOptions[0].id;
          this.getSearchxl();
        })
        .catch((err) => {});
    },
    //获取线路数据
    getSearchxl() {
      getSearchInfo({ type: 2, id: this.formdata.dyId })
        .then((res) => {
          this.xlOptions = [{ id: 0, name: "全部" }];
          this.xlOptions = this.xlOptions.concat(res.data.list);
          this.formdata.lineId = this.xlOptions[0].id;
          this.getSearchgt();
        })
        .catch((err) => {});
    },
    //获取杆塔数据
    getSearchgt() {
      getSearchInfo({ type: 3, id: this.formdata.lineId })
        .then((res) => {
          this.gtOptions = [{ id: 0, name: "全部" }];
          this.gtOptions = this.gtOptions.concat(res.data.list);
          this.formdata.towerId = this.gtOptions[0].id;
        })
        .catch((err) => {});
    },
    //获取告警原因
    getSearchgj() {
      getSearchInfo({ type: 1, id: this.formdata.lineId })
        .then((res) => {
          this.gjOptions = [{ id: 0, name: "全部" }];
          this.gjOptions = this.gjOptions.concat(res.data.list);
          this.formdata.warnCause = this.gjOptions[0].id;
        })
        .catch((err) => {});
    },
    //获取数据
    getTableList() {
      this.loading = true;
      this.$set(this.formdata, "pageindex", this.page);
      this.$set(this.formdata, "pagesize", this.pageSize);
      this.$set(this.formdata, "starttime", this.formdata.timeVal[0]);
      this.$set(this.formdata, "endtime", this.formdata.timeVal[1]);
      getAlarmList(this.formdata)
        .then((res) => {
          this.loading = false;
          this.tableData = res.data.list;
          this.total = res.data.total;
          this.photoPic = res.data.list[0].path;
        })
        .catch((err) => {
          console.log(err);
        });
    },
    //查询
    onSubmit() {
      this.getTableList();
    },
    handleSelectionChange(val) {
      this.multipleSelection = val;
    },
    //点击分页
    handleCurrentChange(val) {
      this.page = val;
      this.getTableList();
    },
    //每页条数
    handleSizeChange(val) {
      this.pageSize = val;
      this.getTableList();
    },
    handleRowClick(row) {
      //this.$refs.multipleTable.toggleRowSelection(row);
      console.log(row);
      this.photoPic = row.path;
      //未读变已读
    },
    dateFormat(row, column) {
      var date = row[column.property];
      if (date == undefined) {
        return "";
      }
      return moment(date).format("YYYY-MM-DD HH:mm:ss");
    },
  },
};
</script>
<style lang="less">
.alarmHandBox {
  width: calc(100% - 32px);
  height: calc(100% - 32px);
  padding: 16px 16px;
  background: #ffffff;
  .searchMain {
    border: 1px solid #dddddd;
    height: calc(100% - 34px);
    max-height: calc(100% - 34px);
    padding: 16px;
    border-radius: 4px;
    .searchBox {
      .el-form {
        .dybox {
          .el-form-item__content {
            width: 120px;
          }
        }
        .xlbox {
          .el-form-item__content {
            width: 160px;
          }
        }
        .gjbox {
          .el-form-item__content {
            width: 140px;
          }
        }
      }
    }
  }
  .alarmTop {
    padding: 0px 8px 16px 8px;
  }
  .alarmContain {
    display: flex;
    height: calc(100% - 48px);
    padding: 0px 8px;
    .alarmTable {
      width: 50%;
      height: 100%;
      .el-table__body tr {
        cursor: pointer;
      }
      .el-table__body tr.current-row > td {
        background-color: rgba(18, 128, 113, 0.2);
      }
    }
    .pageNation {
      margin-top: 8px;
      justify-content: flex-start;
    }
    .alarmPic {
      width: 50%;
      height: 100%;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      .imgshow {
        width: 100%;
        height: 100%;
        img {
          width: 100%;
          height: 100%;
        }
      }
      .editorBtn {
        margin-top: 8px;
        // border: 1px solid @border-color-base;
        padding-top: 5px;
        // border-radius: 4px;
      }
      .editorBtn {
        display: flex;
        justify-content: flex-start;
      }
    }
  }
}
</style>
