he wei
2024-11-06 32250f9a1db456b706e52ffb2664d738a2650678
src/views/alarm/alarmHis.vue
@@ -1,59 +1,61 @@
<script setup name="alarmHis">
import { ref, reactive } from "vue";
import { ref, reactive, onMounted } from "vue";
import { getHisAlarms, getAllAlmName } from "./api";
import { getAllDevs } from "@/views/user/api.js";
const headers = [
  {
    prop: "uname",
    prop: "devId",
    label: "设备ID",
    width: "",
  },
  {
    prop: "uname",
    prop: "devIdcode",
    label: "设备编号",
    width: "",
  },
  {
    prop: "uname",
    prop: "devTypeStr",
    label: "设备类型",
    width: "",
  },
  {
    prop: "uname",
    label: "测试类型",
    width: "",
  },
  {
    prop: "canDownload",
    prop: "almName",
    label: "告警名称",
    width: "",
  },
  {
    prop: "canDownload",
    prop: "almStarttime",
    label: "告警开始时间",
    width: "",
  },
  {
    prop: "canDownload",
    prop: "confirmedTime",
    label: "告警确认时间",
    width: "",
  },
  {
    prop: "canDownload",
    prop: "confirmedUname",
    label: "确认人",
    width: "",
  },
];
const pageCurr = ref(1);
const pageSize = ref(10);
const devId = ref(0);
const devType = ref(0);
const startTime = ref();
const endTime = ref();
const total = ref(0);
const datas = reactive({
  tableData: [],
  userInfo: {},
});
const devType = ref();
const testType = ref();
const alarmId = ref();
const alarmList = reactive([]);
const devList = ref([]);
const testType = ref();
const almId = ref(0);
const alarmList = ref([]);
// 展示数据数量
function handleSizeChange(val) {
@@ -66,7 +68,80 @@
  getList();
}
function getList(params) {}
function getList() {
  getHisAlarms({
    almId: almId.value ? almId.value : undefined,
    devId: devId.value ? devId.value : undefined,
    devType: devType.value ? devType.value : undefined,
    endTime: endTime.value ? endTime.value + " 23:59:59" : undefined,
    pageNum: pageCurr.value,
    pageSize: pageSize.value,
    startTime: startTime.value ? startTime.value + " 00:00:00" : undefined,
  })
    .then((res) => {
      let { code, data, data2 } = res.data;
      let _total = 0;
      let _list = [];
      if (code && data) {
        console.log(data);
        const { total: total0, list } = data2;
        _total = total0;
        _list = list.map((v) => {
          v.devIdcode = v.devInf.devIdcode;
          v.devTypeStr = ["", "充放电测试仪", "均衡测试仪"][v.devInf.devType];
          return v;
        });
      }
      datas.tableData = _list;
      total.value = _total;
    })
    .catch((err) => {
      console.log(err);
    });
}
function getAlarmNames() {
  getAllAlmName()
    .then((res) => {
      let { code, data, data2 } = res.data;
      let _list = [];
      if (code && data) {
        Object.keys(data2).forEach((v) => {
          _list.push({
            id: v,
            name: data2[v],
          });
        });
      }
      alarmList.value = _list;
    })
    .catch((err) => {
      console.log(err);
    });
}
function getDevs(params) {
  getAllDevs()
    .then((res) => {
      let { code, data, data2 } = res.data;
      let _list = [];
      if (code && data) {
        _list = data2.map((v) => ({
          label: `${v.devIdcode} (${v.devIp})`,
          key: v.devId,
        }));
      }
      devList.value = _list;
    })
    .catch((err) => {
      console.log(err);
    });
}
onMounted(() => {
  getAlarmNames();
  getDevs();
  getList();
});
</script>
<template>
@@ -75,27 +150,32 @@
      <div class="label">设备类型</div>
      <div class="content select-wrap">
        <el-select v-model="devType" class="yc-select" placeholder="Select">
          <el-option label="全部" value="" />
          <el-option label="充放电一体机" value="0" />
          <el-option label="均衡测试仪" value="1" />
          <el-option label="全部" :value="0" />
          <el-option label="充放电测试仪" :value="1" />
          <el-option label="均衡测试仪" :value="2" />
        </el-select>
      </div>
      <div class="label">测试类型</div>
      <div class="label">设备名称</div>
      <div class="content select-wrap">
        <el-select v-model="testType" class="yc-select" placeholder="Select">
          <el-option label="全部" value="" />
          <el-option label="充电" value="0" />
          <el-option label="放电" value="1" />
        <el-select v-model="devId" class="yc-select" placeholder="Select">
          <el-option label="全部" :value="0" />
          <el-option
            v-for="dev in devList"
            :key="dev.key"
            :label="dev.label"
            :value="dev.key"
          />
        </el-select>
      </div>
      <div class="label">告警名称</div>
      <div class="content select-wrap">
        <el-select v-model="alarmId" class="yc-select" placeholder="Select">
        <el-select v-model="almId" class="yc-select" placeholder="Select">
          <el-option label="全部" :value="0" />
          <el-option
            v-for="item in alarmList"
            :key="item.value"
            :label="item.label"
            :value="item.value"
            :key="item.id"
            :label="item.name"
            :value="item.id"
          />
        </el-select>
      </div>
@@ -103,19 +183,21 @@
      <div class="content">
        <el-date-picker
          class="yc-datepicker"
          v-model="dateStart"
          v-model="startTime"
          value-format="YYYY-MM-DD"
          type="date"
          placeholder="请选择"
        />
        至
        <el-date-picker
          class="yc-datepicker"
          v-model="dateEnd"
          value-format="YYYY-MM-DD"
          v-model="endTime"
          type="date"
          placeholder="请选择"
        />
      </div>
      <div class="btn-search">查询</div>
      <div class="btn-search" @click="getList">查询</div>
    </div>
    <div class="p-content">
      <!-- 用户列表 -->
@@ -207,4 +289,4 @@
    }
  }
}
</style>
</style>