<template>
  <div class="my_exam" :style="{ backgroundColor: examArr.length > 0 ? '#f9f9f9' : '#fff' }">
    <div class="exam_noresult" v-if="examArr.length < 1">
      <img src="~@/assets/image/no_result.jpg" />
      <div class="no_title">查询无结果</div>
      <div class="no_txt">暂无您的预约项目，请选择医院后进行预约</div>
    </div>
    <div class="exam_box" v-for="item in examArr" :key="item.time">
      <div class="time_box">{{ doDateFormatter(item.apmTime) }}</div>
      <div class="pro_box">
        <div class="pro_top">
          <div class="img_box">
            <img v-if="item.apmStatus !== 1" src="~@/assets/image/time.png" alt="" />
            <img v-else src="~@/assets/image/time_gray.png" alt="" />
          </div>
          <div class="time_box">
            <div class="time_text">{{ doDateFormatter(item.apmTime) }}</div>
            <div class="date_txt">{{ item.period + ' ' + item.timeFrame }}</div>
          </div>
        </div>
        <div class="pro_bottom">
          <div class="pro_left">
            <div class="img_box">
              <img v-if="item.apmStatus !== 1" src="~@/assets/image/pro.png" alt="" />
              <img v-else src="~@/assets/image/pro_gray.png" alt="" />
            </div>
            <div class="pro_name">{{ item.project }}</div>
            <div class="pro_pos" :class="item.apmStatus === 0 ? 'tips' : item.apmStatus == 1 ? 'cancel_tip' : ''">
              {{ item.cuAddr }}</div>
          </div>
          <div class="pro_right">
            <div class="cancel" @click="cancelRegisiter(item)"
              :class="item.apmStatus == 3 ? 'finish' : item.apmStatus == 1 ? 'cancel_item' : ''">{{
  item.apmStatus == 1 ?
    '已取消' : item.apmStatus == 2 ? '未报到' : item.apmStatus == 3 ? '已报到' : '取消预约'
              }}</div>
          </div>
        </div>
      </div>
    </div>
  </div>
</template>

<script>
import { myRecord, recordCancel } from "@/api/hospital";
import { dateFormat } from "@/utils/date";
export default {
  data() {
    return {
      current: 1,
      size: 10,
      examArr: [],
      userInfo: null
    }
  },
  mounted() {
    let userInfo = sessionStorage.getItem('userInfo') ? JSON.parse(sessionStorage.getItem('userInfo')) : null;
    if (userInfo) {
      this.userInfo = userInfo;
      this.queryMyRecord();
    }
  },
  methods: {
    //我的预约列表
    queryMyRecord() {
      this.$toast.loading({
        message: '加载中',
        duration: 0,
      })
      try {
        myRecord("", this.userInfo.papersnumber, this.current, this.size).then(res => {
          this.$toast.clear();
          this.examArr = res.data.records;
        }, err => {
          this.$toast.clear();
        })
      } catch (error) {
        this.$toast.clear();
      }
    },
    //日期格式化
    doDateFormatter(date) {
      return dateFormat(new Date(date), 'yyyy-MM-dd');
    },
    //取消预约
    cancelRegisiter(row) {
      if (row.apmStatus !== 0) {
        return;
      }
      lightAppJssdk.notification.confirm({
        message: "是否取消该体检项目",
        title: "提示",//可传空
        buttonLabels: ['确定', '取消'],
        success: function (data) {
          //onSuccess将在点击button之后回调
          /*回调*/
          console.log('取消===>', data)
          recordCancel(row.id).then(res => {
            this.$message({
              type: "success",
              message: "操作成功!"
            });
            this.queryMyRecord();
          })
        },
        fail: function (data) { //错误返回
        }
      });
    }
  },
};
</script>

<style lang="scss" scoped>
.my_exam {
  width: 100%;
  height: 100%;
  background: #f9f9f9;
  position: absolute;

  .exam_noresult {
    text-align: center;
    padding-top: 2rem;

    img {
      width: 2.56rem;
      height: 2.56rem;
    }

    .no_title {
      color: #666;
      font-size: 0.44rem;
      font-weight: bold;
      margin-bottom: 0.1rem;
    }

    .no_txt {
      color: #999;
      font-size: 0.24rem;
      width: 3rem;
      line-height: 0.33rem;
      margin: 0 auto;
    }
  }

  .exam_box {
    background: #fff;
    padding: 0.5rem 0.24rem 0 0.24rem;
    margin-bottom: 0.2rem;

    .time_box {
      font-size: 0.3rem;
      font-family: PingFang SC-Bold, PingFang SC;
      font-weight: bold;
      color: #333333;
      line-height: 0.46rem;
    }

    .pro_box {
      width: 98%;
      margin-top: 0.4rem;
      background: #fff;
      // margin: 0.4rem auto;
      // margin-bottom: 0.7rem;


      .pro_top {
        display: flex;
        padding-bottom: 0.26rem;
        border-bottom: 1px solid #EEEEEE;

        .img_box {
          display: flex;
          align-items: center;
          margin-right: 0.24rem;

          img {
            width: 0.5rem;
            height: 0.5rem;
          }
        }

        .time_box {
          .time_text {
            width: 1.46rem;
            height: 0.32rem;
            text-align: center;
            background: #F6F6F6;
            border-radius: 0.08rem;
            line-height: 0.32rem;
            font-size: 0.24rem;
            color: #999999;
          }

          .date_txt {
            font-size: 0.3rem;
            font-weight: bold;
            color: #333;
            line-height: 0.46rem;
          }
        }
      }

      .pro_bottom {
        display: flex;
        justify-content: space-between;
        height: 1.2rem;

        .pro_left {
          display: flex;


          .img_box {
            height: 100%;
            display: flex;
            align-items: center;

            img {
              width: 0.5rem;
              height: 0.5rem;

            }
          }

          .pro_name {
            height: 100%;
            display: flex;
            align-items: center;
            font-size: 0.3rem;
            color: #333;
            font-weight: bold;
            margin-left: 0.24rem;
          }

          .pro_pos {
            height: 100%;
            display: flex;
            align-items: center;
            font-size: 0.24rem;
            color: #999;
            margin-left: 0.24rem;
          }

          .tips {
            color: #00B578;
          }

          .cancel_tip {
            color: #F93A4A;
          }
        }

        .pro_right {
          height: 100%;
          display: flex;
          align-items: center;

          .cancel {
            width: 1.5rem;
            height: 0.5rem;
            background: rgba(22, 119, 255, .1);
            border-radius: 0.26rem;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 0.24rem;
            color: #1677FF;
          }

          .finish {
            background: #E5E5E5;
            color: #999;
            pointer-events: none;
          }

          .cancel_item {
            background: rgba(125, 125, 125, .2);
            color: #999;
            pointer-events: none;
          }
        }
      }
    }
  }
}
</style>
