ZZJ
2021-12-16 dff9fb32c1bac52d378a6d196f670b92610c01d3
src/pages/internetEquipment/module/historyModule.vue
@@ -1,38 +1,122 @@
<template>
  <div class="history-module">
      <div class="title"></div>
      <div class="history-item"
      v-for="(item,index) in warnArr"
      :key="index">
          <warnDescription
        :warnDes="{code:item.code,
        time:item.time,
        warn:item.warn}"/>
      </div>
    <div class="title">历史报警</div>
    <div
      class="history-item"
      v-for="(item, index) in warnArrProcess"
      :key="index"
    >
      <warnDescription
        :warnDes="{
          code: item.device_sn,
          time: item.updated_at,
          warn: item.isLowBattery == 1 ? '低电量预警' : '实时抓拍预警',
        }"
      />
      <div class="button" @click="process(item)">处理</div>
    </div>
    <processWarn
      v-if="activeWarn"
      :warnObj="activeWarn"
      @close="close"
      @save="save"
    />
    <div class="mask" v-if="activeWarn" />
  </div>
</template>
<script>
import warnDescription from '@/pages/internetEquipment/components/warnDescription'
import warnDescription from "@/pages/internetEquipment/components/warnDescription";
import processWarn from "@/pages/internetEquipment/components/processWarn";
import { handleWarn } from "@/api/helemt";
export default {
    props :{
        warnArr : {
            type: Array
        }
  data() {
    return {
      activeWarn: null,
    };
  },
  props: {
    warnArr: {
      type: Array,
    },
    components :{
        warnDescription
    }
}
  },
  components: {
    warnDescription,
    processWarn,
  },
  computed: {
    warnArrProcess() {
      return this.warnArr.filter((item) => item.status != 1);
    },
  },
  methods: {
    process(item) {
      this.activeWarn = item;
    },
    close() {
      this.activeWarn = null;
    },
    save(item) {
      console.log(item);
      handleWarn({ id: item.id }).then((res) => {
        this.$set(item, "status", 1);
        this.close();
      });
    },
  },
};
</script>
<style scoped lang="scss">
.history-module {
    width: 280px;
    height: 292px;
    background-color: #fff;
    box-shadow: 0px 2px 10px rgba(141, 164, 187, 0.25);
    border-radius: 15px;
    overflow-y: scroll;
  padding: 20px;
  width: 280px;
  height: 292px;
  background-color: #fff;
  box-shadow: 0px 2px 10px rgba(141, 164, 187, 0.25);
  border-radius: 15px;
  overflow-y: scroll;
  .title {
    margin-bottom: 10px;
    font-size: 14px;
    font-weight: 700;
    text-align: left;
  }
  .history-item {
    display: flex;
    width: 100%;
    height: 74px;
    margin-bottom: 4px;
    align-items: center;
    justify-content: space-around;
    background: #f9fafc;
    border-radius: 10px;
    padding: 0 10px;
    .button {
      width: 54px;
      height: 20px;
      background: #cfeee0;
      border-radius: 30px;
      font-size: 12px;
      line-height: 20px;
      color: #11aa66;
      cursor: pointer;
    }
  }
  .mask {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    text-align: center;
    z-index: 1;
    background-color: black;
    opacity: 0.5;
  }
}
</style>