<template>
  <div>
    <van-sticky>
    <LHeader :text="text"></LHeader>
    </van-sticky>
    <van-sticky offset-top="1.5rem">
      <van-search
        v-model="searchValue"
        show-action
        placeholder="请输入检查名称"
        @search="onSearch"
      >
        <template #action>
          <div @click="onSearch">搜索</div>
        </template>
      </van-search>
     </van-sticky>
      <!-- tab标签 -->
      <van-tabs v-model="active" @change="postList" color="#2980f7"  animated
      :sticky="true"
      offset-top="3rem">
        <van-tab v-for="(item, key) in tabs" :key="key" :title="item.title">
          <div v-show="key == active">
            <div class="con-list" @touchmove="showIndex = null">
              <van-cell-group
                inset
                v-for="(item, index) in messageList"
                :key="index"
                @click="touchstart(index, item)"
              >
                <van-row gutter="">
                  <van-col span="6">隐患编号：</van-col>
                  <van-col span="18">{{ item.businessId }}</van-col>
                </van-row>
                <van-row gutter="">
                  <van-col span="6">所属项目：</van-col>
                  <van-col span="18">{{ item.proId }}</van-col>
                </van-row>
                <van-row gutter="">
                  <van-col span="6">隐患级别：</van-col>
                  <van-col span="18">{{ item.hdLev | dangerText }}</van-col>
                </van-row>
                <!--<van-row gutter="">
                <van-col span="6">发现时间：</van-col>
                <van-col span="18">{{ item.hdDiscoveryTime }}</van-col>
              </van-row> -->
                <van-row gutter="">
                  <van-col span="6">适用范围：</van-col>
                  <van-col span="18">{{ item.hdRange }}</van-col>
                </van-row>
                <van-row gutter="">
                  <van-col span="6">隐患类型：</van-col>
                  <van-col span="18">{{ item.hdType }}</van-col>
                </van-row>
                <van-row gutter="">
                  <van-col span="6">超期标识：</van-col>
                  <van-col span="18">{{ item | formatTime }}</van-col>
                </van-row>
                <van-row gutter="">
                  <van-col span="6">工单状态</van-col>
                  <van-col span="18">{{ item | formatTime }}</van-col>
                </van-row>
                <!-- 长按显示遮罩层 -->
                <van-overlay :show="showIndex == index">
                  <div class="wrapper" @click.stop="showIndex = null">
                    <van-button round type="primary" @click="goDetail(item)"
                      >详情</van-button
                    >
                  </div>
                </van-overlay>
              </van-cell-group>
            </div>
          </div>
          <div
            v-if="messageList.length == 0"
            style="
              width: 100%;
              text-align: center;
              font-size: 0.48rem;
              position: fixed;
              top: 30%;
            "
          >
            暂无数据
          </div>
        </van-tab>
      </van-tabs>
  </div>
</template>

<script>
import LHeader from "@/components/header.vue";
import { getFun, postFun } from "@/service/table.js";
import { dangerStandBook } from "@/service/danger";
export default {
  components: {
    LHeader,
  },
  data() {
    return {
      text: "隐患历史台账",
      active: 0,
      searchValue: "",
      isHaveNews: false,
      messageList: [],
      Loop: "", // 定时器
      showIndex: null, // 是否显示遮罩层
      tabs: [
        {
          title: "已完结",
          api: "/hdreport/doneList",
        },
        {
          title: "已挂账",
          api: "/hdreport/doneListRectification",
        },
        {
          title: "已整改",
          api: "/hdreport/doneListReview",
        },
      ],
    };
  },
  created() {
    this.postList();
  },
  methods: {
    onSearch(val) {
      this.postList(this.searchValue);
    },
    postList(select = "") {
      this.$toast.loading({
        message: "加载中...",
        forbidClick: true,
        loadingType: "spinner",
        duration: 0,
      });
      let formdata = new FormData();
      formdata.append("select", select);
      postFun(this.tabs[this.active * 1]["api"], formdata)
        .then((res) => {
          this.$toast.clear();
          this.messageList = res.rows;
          // 判断有无数据返回
          if (this.messageList.length == 0) {
            this.isHaveNews = true;
          }
        })
        .catch(() => {
          this.$toast.clear();
          this.$toast.fail("加载失败,请稍后再试");
        });
    },

    touchstart(index, item) {
      if (this.showIndex != null) {
        this.showIndex = null;
        return;
      }
      this.showIndex = index;
    },

    // 详情
    goDetail(data) {
      this.$router.push({
        name: "normal-detail",
        params: {
          id: data.businessId,
        },
      });
      this.showIndex = null;
    },
  },
  filters: {
    formatTime: function (row) {
      if (row.dueDate <= row.rectificationTime) {
        return "超期";
      } else if (
        row.dueDate >= row.rectificationTime &&
        row.dueDate - 259200000 <= row.rectificationTime
      ) {
        //三天
        return "临期";
      } else {
        return "正常";
      }
    },
  },
};
</script>
<style lang="less" scoped>
/* @import url(); 引入css类 */
#app {
  font-family: "";
  color: #2c3e50;
}
.con-list {
  padding: 0;
  background-color: #f0f1f5;
  .van-cell-group--inset {
    margin: 0;
    margin-bottom: 0.26667rem;
    padding: 0.25rem;
    font-size: 0.4rem;
    position: relative;
    border-radius: 4%;
    box-shadow: 0px 0px 10px 2px #f3f3f3;
    width: 90%;
    margin: 0.4rem auto;
    .van-row {
      font-size: 0.4rem;
      line-height: 0.8rem;
      margin-bottom: 0;
    }
    .van-overlay {
      position: absolute;
      .wrapper {
        display: flex;
        align-items: center;
        justify-content: space-evenly;
        height: 100%;
      }
    }
  }
}
</style>
