<template>
  <div>
    <LHeader :text="text"></LHeader>
    <van-search v-model="searchValue" placeholder="搜索" @search="onSearch" />
        <!-- 内容列表 -->
    <div class="con-list">
      <van-cell-group
        inset
        v-for="(item, index) in messageList"
        :key="index"
        @touchstart="touchstart(index, item)"
        @touchend.prevent="touchend(index)"
      >
        <van-row gutter="">
          <van-col span="5">所属项目:</van-col>
          <van-col span="19">{{ item.proId }}</van-col>
        </van-row>
        <van-row gutter="">
          <van-col span="5">风险等级:</van-col>
          <van-col span="19">{{ item.riskLevel }}</van-col>
        </van-row>
        <van-row gutter="">
          <van-col span="5">风险源:</van-col>
          <van-col span="19">{{ item.riskSource }}</van-col>
        </van-row>
        <van-row gutter="">
          <van-col span="5">事故类型:</van-col>
          <van-col span="19">{{ item.accidentType }}</van-col>
        </van-row>
        <van-row gutter="">
          <van-col span="5">管控层级:</van-col>
          <van-col span="19">{{ item.controllevel }}</van-col>
        </van-row>
        <van-row gutter="">
          <van-col span="5">主责部门:</van-col>
          <van-col span="19">{{ item.responsibilityDept }}</van-col>
        </van-row>
        <van-row gutter="">
          <van-col span="5">主责人员:</van-col>
          <van-col span="19">{{ item.responsibilityMember }}</van-col>
        </van-row>
        <van-row gutter="">
          <van-col span="5">工单状态:</van-col>
          <van-col span="19">{{ item.taskName }}</van-col>
        </van-row>
 

        <!-- 长按显示遮罩层 -->
        <van-overlay :show="showIndex == index">
          <div class="wrapper" @click.stop>
            <van-button round type="primary" @touchstart="goDetail(item)"
              >上报</van-button
            >
            <van-button round type="warning" @touchstart="goDelete(item)"
              >删除</van-button
            >
          </div>
        </van-overlay>
      </van-cell-group>
    </div>

     <!-- 暂无数据 -->
    <div
      style="width: 100%;text-align: center; font-size: .48rem;position: fixed; top: 30%;"
      v-if="isHaveNews"
    >
      暂无数据
    </div>

  </div>
</template>

<script>
import LHeader from "@/components/header.vue";
import { postriskConReturn, postriskConReDel } from "@/service/risk";
export default {
  components: {
    LHeader: LHeader,
  },
  data() {
    return {
      text: "上报退回",
      searchValue: "",
      isHaveNews: false,
      messageList: [],
      Loop: "", // 定时器
      showIndex: null // 是否显示遮罩层
    };
  },
   created() {
    this.postList();
  },
  methods: {
    postList() {
      this.$toast.loading({
        message: "加载中...",
        forbidClick: true,
        loadingType: "spinner",
        duration: 0
      });
      postriskConReturn("/riskMain/list")
        .then(res => {
          this.$toast.clear();
          this.messageList = res.rows;
             // 判断有无数据返回
          if (this.messageList.length == 0) {
            this.isHaveNews = true;
          }
        })
        .catch(() => {
          this.$toast.clear();
          this.$toast.fail("加载失败,请稍后再试");
        });
    },

    onSearch(val) {
      console.log(val);
    },
    touchstart(index, item) {
      clearTimeout(this.Loop); //再次清空延时器，防止重复注册定时器
      if (this.showIndex != null) {
        this.showIndex = null;
        return;
      }
      this.Loop = setTimeout(() => {
        this.showIndex = index;
      }, 300); // 这里的1000是指需要长按的时间，单位为ms
    },
    touchend(index) {
      // 这个方法主要是用来将每次手指移出之后将计时器清零
      clearInterval(this.Loop);
    },

    // 重新上报
    goDetail(data) {
      console.log(data);
      this.$router.push({
         name: 'risk-add',
         params: {
           status: "退回",
           taskId: data.taskId
           }
         });
      this.showIndex = null;
    },
    // 删除
    goDelete(data) {
      console.log(data);
       this.$toast.loading({
        message: "删除中...",
        forbidClick: true,
        loadingType: "spinner",
        duration: 0
      });
      postriskConReDel(`/riskMain/delete/${data.taskId}`)
        .then(res => {
          this.$toast.clear();
          this.$toast.success({
            message: "删除成功",
            duration: 2000
          });
          this.postList();
        })
        .catch(() => {
          this.$toast.clear();
          this.$toast.fail("删除失败,请稍后再试");
        });
      this.showIndex = null;
    }
  }
};
</script>
<style lang="less" scoped>
/* @import url(); 引入css类 */
.con-list {
  padding: 10px 10px .533333rem;
  background-color: #f0f1f5;
  .van-cell-group--inset {
    margin: 0;
    margin-bottom: 10px;
    padding: 10px;
    font-size: 13px;
    position: relative;
    .van-row{
      margin-bottom: .133333rem;
      line-height: .64rem;
    }
    .van-overlay {
      position: absolute;
      .wrapper {
        display: flex;
        align-items: center;
        justify-content: space-evenly;
        height: 100%;
      }
    }
  }
}
</style>
