index.vue 3.57 KB
Newer Older
neogcg's avatar
neogcg committed
1 2 3 4
<template>
  <div class="leakage-cable">
    <!-- 设备维护历史 -->
    <div class="leakage-top">
neogcg's avatar
neogcg committed
5
      <div style="color: #666666"></div>
neogcg's avatar
neogcg committed
6 7 8 9
      <div class="operate-btn">
        <el-button
          :type="multipleSelection.length ? 'primary' : 'info'"
          :disabled="!multipleSelection.length"
yanzhongrong's avatar
yanzhongrong committed
10
          @click="deleteCable"
neogcg's avatar
neogcg committed
11 12
          >删除</el-button
        >
yanzhongrong's avatar
yanzhongrong committed
13
        <el-button type="primary" @click="getTableData">刷新</el-button>
neogcg's avatar
neogcg committed
14 15 16 17 18
        <el-button type="primary">查询</el-button>
        <el-button type="primary">导出</el-button>
      </div>
    </div>
    <el-table
yanzhongrong's avatar
yanzhongrong committed
19
      :data="tableData"
neogcg's avatar
neogcg committed
20 21 22
      style="width: 100%"
      :cell-class-name="cellClassFn"
      :header-cell-style="{ background: '#EAF1FE', color: '#666666' }"
yanzhongrong's avatar
yanzhongrong committed
23
      @selection-change="handleSelectionChange"
neogcg's avatar
neogcg committed
24 25 26 27
    >
      <el-table-column type="selection" width="55" align="center" />

      <el-table-column
yanzhongrong's avatar
yanzhongrong committed
28
        prop="siteName"
neogcg's avatar
neogcg committed
29 30 31 32 33
        label="基站名称"
        width="180"
        align="center"
      />
      <el-table-column
yanzhongrong's avatar
yanzhongrong committed
34
        prop="alarmTarget"
neogcg's avatar
neogcg committed
35 36 37 38
        label="告警对象"
        width="180"
        align="center"
      />
yanzhongrong's avatar
yanzhongrong committed
39
      <el-table-column prop="alarmLevelName" label="告警级别" width="150" align="center">
neogcg's avatar
neogcg committed
40
      </el-table-column>
yanzhongrong's avatar
yanzhongrong committed
41
      <el-table-column prop="alarmInfo" label="告警信息" align="center">
neogcg's avatar
neogcg committed
42
      </el-table-column>
yanzhongrong's avatar
yanzhongrong committed
43
      <el-table-column prop="alarmMaintainTime" label="告警维修时间" align="center" />
neogcg's avatar
neogcg committed
44
    </el-table>
yanzhongrong's avatar
yanzhongrong committed
45 46 47
    <Pagination
      :limit="params.size"
      :page="params.current"
neogcg's avatar
neogcg committed
48 49 50
      :total="total"
      class="pagination"
      @pagination="handlePageChange"
yanzhongrong's avatar
yanzhongrong committed
51
    />
neogcg's avatar
neogcg committed
52 53 54
  </div>
</template>
<script>
yanzhongrong's avatar
yanzhongrong committed
55
import { MonitorMaintainList, MonitorMaintainDelete } from '../api'
neogcg's avatar
neogcg committed
56 57 58 59 60
export default {
  props: [],
  data() {
    return {
      multipleSelection: [],
yanzhongrong's avatar
yanzhongrong committed
61 62 63
      params: {
        current: 1,
        size: 10,
neogcg's avatar
neogcg committed
64 65
      },
      total: 10,
yanzhongrong's avatar
yanzhongrong committed
66
      tableData: [],
neogcg's avatar
neogcg committed
67 68 69 70 71
    };
  },
  computed: {},
  methods: {
    handleSelectionChange(val) {
yanzhongrong's avatar
yanzhongrong committed
72 73
      let deleteIds = val.map(item => item.id)
      this.multipleSelection = deleteIds
neogcg's avatar
neogcg committed
74 75
    },
    handlePageChange(pageData) {
yanzhongrong's avatar
yanzhongrong committed
76 77
      this.params.size = pageData.size;
      this.params.current = pageData.page;
neogcg's avatar
neogcg committed
78 79
      this.getTableData()
    },
yanzhongrong's avatar
yanzhongrong committed
80 81 82 83 84 85 86 87 88 89 90
    getTableData() {
      MonitorMaintainList(this.params).then(res => {
        let list = res.records || []
        this.tableData = list
        this.total = res.total
      })
    },
    deleteCable() {
      MonitorMaintainDelete({ids: this.multipleSelection}).then(res => {
        this.$message.success('删除成功!')
      })
neogcg's avatar
neogcg committed
91
    },
yanzhongrong's avatar
yanzhongrong committed
92
    cellClassFn({ row, column, rowIndex, columnIndex }) {
neogcg's avatar
neogcg committed
93 94 95 96 97
      if (row.level == '紧急' && column.label == '告警级别') {
        return 'emergency'
      } else if (row.level == '重要' && column.label == '告警级别') {
        return 'important'
      }
yanzhongrong's avatar
yanzhongrong committed
98
      if (rowIndex % 2 == 1) {
neogcg's avatar
neogcg committed
99 100 101 102
        return 'stripe'
      }
    },
  },
yanzhongrong's avatar
yanzhongrong committed
103
  mounted() { this.getTableData() },
neogcg's avatar
neogcg committed
104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
};
</script>
<style lang="scss" scoped>
.leakage-cable {
  .leakage-top {
    margin-bottom: 20px;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
  }
  & ::v-deep .cell {
    color: #333333;
  }
  .message {
    line-height: 22px;
  }
  .red {
    color: red;
  }
  .green {
    color: green;
  }
  .black {
    color: black;
  }
  & ::v-deep .stripe {
yanzhongrong's avatar
yanzhongrong committed
130
    background-color: #eaf1fe;
neogcg's avatar
neogcg committed
131 132 133 134 135 136 137 138 139 140 141 142
  }
  & ::v-deep .emergency {
    background-color: #f00;
  }
  & ::v-deep .important {
    background-color: #f89850;
  }
  .page {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 20px 0;
yanzhongrong's avatar
yanzhongrong committed
143
    .current {
neogcg's avatar
neogcg committed
144 145 146 147 148
      margin: 0 20px;
    }
  }
}
</style>