<template lang='pug'>
  div.infopage(:style="'height:'+hh+'px'")
    el-form(:inline='true', :model='dataForm'  size='mini' label-width="100px" label-position='left' :modal-append-to-body='false'  label-suffix=':' )
      el-row(:span='24' style="color:#fff")
        el-col(:md='8' :sm="12")
          el-form-item(label="设备名称" )
              el-input.inputWidth(v-model='dataForm.equName' clearable )
        el-col(:md='8' :sm="12")
          el-form-item(label="报警状态")
            el-select.inputWidth(style='width:200px;' v-model='dataForm.state' clearable)
              el-option(v-for="(e, i) in stateArr" :key="i" :label="e.label" :value="e.value")
        el-col(:md='8' :sm="12")
          el-form-item(label="报警防区" )
            el-input.inputWidth(v-model='dataForm.area' clearable )
      el-row(:span='24')
        el-col(:md='8' :sm="12")
          el-form-item(label="报警时间")
            el-date-picker.inputWidth( style='width:210px;'  v-model='dataForm.warningTimeArr' range-separator="至" type="daterange" start-placeholder="开始日期" end-placeholder="结束日期" value-format="timestamp")
        el-col( :md='1' :sm="12" style='float:right;')
          el-button(icon='el-icon-search',style='float:right;' @click='initDataList') 查 询
      el-row(:span='24')
        el-button(type='primary',style='float:left;' @click='dealBatch') 批量处理
        el-button(type='danger',style='float:left;margin-left:10px' @click='deleteBatch') 删除
    el-row(:span='24')
      el-table(:data="tableData" style="width: 100%;margin-top:20px" v-loading='dataListLoading' :height="hh-180" :header-cell-style="{background:'rgb(8, 109, 177)',color:'#fff'}"
      :cell-style="{background:'rgb(2, 79, 131)',color:'#fff'}" @selection-change="handleSelectionChange")
        el-table-column(type='selection', header-align='center', align='center', width='50')
        el-table-column(prop='equName',header-align='center',align='center',label='设备名称')
        el-table-column(prop='warningTime',header-align='center',align='center',label='报警时间')
        el-table-column(prop='area',header-align='center',align='center',label='报警防区')
        el-table-column(prop='remark',header-align='center',align='center',label='报警内容')
        el-table-column(prop='isvalid',header-align='center',align='center',label='报警有效性')
          template(slot-scope='scope')
            font(v-if='scope.row.isvalid === 0') 有效报警
            font(v-if='scope.row.isvalid === 1') 无效报警
        el-table-column(prop='state',header-align='center',align='center',label='报警状态')
          template(slot-scope='scope')
            font(v-if='scope.row.state === 0') 未处理
            font(v-if='scope.row.state === 1') 已处理
        el-table-column(prop='operateManName',header-align='center',align='center',label='处置人')
        el-table-column(prop='operateTime',header-align='center',align='center',label='处置时间')
        el-table-column(header-align='center',align='center',label='系统操作')
          template(slot-scope="scope")
            el-button(type="text" @click="queryHandle(scope.row.id)") 详情查看

    el-pagination(@size-change='sizeChangeHandle', @current-change='currentChangeHandle', :current-page='pageIndex', :page-sizes='[10, 20, 50, 100]', :page-size='pageSize', :total='totalPage', layout='total, sizes, prev, pager, next, jumper')
</template>

<script>
export default {
  data () {
    return {
      dataForm: {
        equName: '',
        state: null,
        area: '',
        warningTimeArr: '',
        hh: 300
      },
      stateArr: [{ label: '未处理', value: 0 }, { label: '已处理', value: 1 }],
      tableData: [],
      pageIndex: 1,
      pageSize: 10,
      totalPage: 0,
      dataListLoading: false,
      dataListSelections: [],
      equViewVisible: false
    }
  },
  watch: {
    totalPage() { //注意这个函数的名字必须和你监听data中的属性的名字一样,这样才能当你data中的属性发生变化时,触发这个函数
      let pages = Math.ceil(this.totalPage / this.pageSize)//新数据总页数
      //总页数小于当前页数则重新加载列表数据
      if (pages < this.pageIndex) {
          this.pageIndex = pages || 1
          this.initDataList()//获取表格数据的方法
      }
    }
  },
  created () {
    this.hh = this.getClientHeight() - 200
    console.log(this.hh, 789789)

    this.initDataList()
  },
  methods: {
   getClientHeight() {
      var clientHeight = 0
      if (document.body.clientHeight && document.documentElement.clientHeight) {
      var clientHeight = (document.body.clientHeight < document.documentElement.clientHeight) ? document.body.clientHeight : document.documentElement.clientHeight
      } else {
      var clientHeight = (document.body.clientHeight > document.documentElement.clientHeight) ? document.body.clientHeight : document.documentElement.clientHeight
      }
      return clientHeight
    },
    initDataList () {
      this.dataListLoading = true
      let warningTimeStr = null
      let warningTimeEnd = null
      if (this.dataForm.warningTimeArr && this.dataForm.warningTimeArr.length > 0) {
        warningTimeStr = this.dataForm.warningTimeArr[0]
        warningTimeEnd = this.dataForm.warningTimeArr[1]
      }
      this.$http({
        url: this.$http.adornUrl('/eWarning/list'),
        method: 'POST',
        params: this.$http.adornParams({
          page: this.pageIndex,
          rows: this.pageSize,
          equName: this.dataForm.equName,
          state: this.dataForm.state,
          area: this.dataForm.area,
          remark: this.dataForm.remark,
          warningTimeStr: warningTimeStr,
          warningTimeEnd: warningTimeEnd
        })
      }).then((data) => {
        // console.log('data', data)
        if (data && data.code === 0) {
          this.tableData = data.page.records
          this.totalPage = data.page.total
        } else {
          this.tableData = []
          this.totalPage = 0
        }
        this.dataListLoading = false
      })
    },
    // 每页数
    sizeChangeHandle (val) {
      this.pageSize = val
      this.pageIndex = 1
      this.initDataList()
    },
    // 当前页
    currentChangeHandle (val) {
      this.pageIndex = val
      this.initDataList()
    },
    // 多选
    handleSelectionChange (val) {
      this.dataListSelections = val
    },
    //查看
    queryHandle (id) {
      this.$router.push({
        path: '/sys/log',
        query: { warningId: id }
      })
    },
    //删除
    deleteBatch () {
      if (this.dataListSelections && this.dataListSelections.length > 0) {
        let arr = []
        let ids = ''
        this.dataListSelections.forEach(e => {
          arr.push(e.id)
        })
        ids = arr.join()
        this.$confirm('确认删除?', '删除', {
            confirmButtonText: '确定',
            cancelButtonText: '取消',
            type: 'warning'
        }).then(async () => {
            this.$showLoading()
            this.$http({
                url: this.$http.adornUrl(`/eWarning/delete`),
                method: 'post',
                params: this.$http.adornParams({ ids: ids })
            }).then((data) => {
                if (data && data.code === 0) {
                    this.$message.success('删除成功!')
                    this.initDataList()
                    this.$showLoading('close')
                }
            })
        }).catch(() => {
            this.$message.info('已取消')
        })
      } else {
        this.$message.error('请选择要删除的数据!')
      }
    },
    //批量处理
    dealBatch () {
      if (this.dataListSelections && this.dataListSelections.length > 0) {
        let arr = []
        let ids = ''
        let flag = false
        this.dataListSelections.forEach(e => {
          if (e.state === 1) {
            flag = true
          } else {
            arr.push(e.id)
          }
        })
        if (flag) {
          return this.$message.error('请选择未处理的数据!')
        }
        if (arr && arr.length > 0) {
          ids = arr.join()
          this.$confirm('是否处理?', '提示', {
              confirmButtonText: '确定',
              cancelButtonText: '取消',
              type: 'warning'
          }).then(async () => {
              this.$showLoading()
              this.$http({
                  url: this.$http.adornUrl(`/eWarning/dealWith`),
                  method: 'post',
                  params: this.$http.adornParams({ ids: ids })
              }).then((data) => {
                  if (data && data.code === 0) {
                      this.$message.success('处理成功!')
                      this.initDataList()
                      this.$showLoading('close')
                  }
              })
          }).catch(() => {
              this.$message.info('已取消')
          })
        }
      } else {
        this.$message.error('请选择要处理的数据!')
      }
    }
  }

}
</script>
<style lang='scss' scoped>
  .infopage{
    margin: 24px;
    padding:24px;
    padding-bottom: 60px;
    background-color: rgba(7, 58, 116, 0.596);
    // overflow: auto;
    .el-button{
      background-color: rgb(2, 79, 131);
      color: #fff;
      border-color: rgb(2, 79, 131);
    }

  }
</style>
<style lang='scss'>
.d2-theme-container-main-body{
  overflow: auto;
}
.d2-theme-container-main-body::-webkit-scrollbar {
  // display: none
}
 .infopage{
   .el-input__inner{
      // background-color: rgba(7, 58, 116, 0.596) !important;
      border-color: rgb(2, 79, 131);
      // border-color: rgb(8, 109, 177);
      color: #fff;
    }
    .el-range-input {
      // background-color: rgba(7, 58, 116, 0.596) !important;
      color: #fff
    }
    .el-table{
      // background-color: rgba(7, 58, 116, 0.596) !important;
    }
    .el-range-separator{
      color: #fff
    }
    .el-form-item__label {
      color: #fff;
    }
 }
  </style>