<template>
  <div class="provideUnit">
    <!-- 头部 -->
    <van-nav-bar fixed>
      <template #title>
        <div  @click="debugInfo">
          选择叶酸发放单位
        </div>
      </template>
      <template #left>
        <img src="../../assets/images/back.png" alt="" @click="handleBack"/>
      </template>
      <template #right>
        <div @click="handleRecord">申请记录</div>
      </template>
    </van-nav-bar>
    <!-- 搜索框 -->
    <van-search @blur="handleInput" style="width: 88%;display: inline-block" @clear="handleCancel"
                v-model="searchInfo.unitName" placeholder="请输入搜索关键词"/>
    <van-icon size="33" style="float: right;margin-right: 8px;" name="scan" @click="openQrCode"/>
    <!-- 申请部分 -->
    <template v-if="unitList.length != 0">
      <div class="flex_block" v-for="item in unitList" :key="item.id" @click="handleClick(item)">
        <div class="flex_block_title">
          <span class="top">{{ item.unitName }}</span>
          <span class="bottom">地址:{{
              (item.areaFullName ? item.areaFullName : "") + (item.unitAddress ? item.unitAddress : "")
            }}</span>
        </div>
        <div class="flex_block_btn">申请</div>
      </div>
    </template>
    <van-empty v-else description="暂无发放单位"/>
  </div>
</template>
<script>
import {getProvideUnit, getProvideUnitById} from '@/axios/api';
import {callMobile, isEmpty} from '@/utils/common';

export default {
  components: {},
  data() {
    return {
      searchInfo: {
        unitName: null,
      },
      unitList: [],
      scrollPosition: 0,
    }
  },
  created() {
    let vm = this;
    window['qrcodeContent'] = (result) => {
      vm.scanQRCallBack(result);
    };
  },
  mounted() {
    this.getProvideUnitList();
  },
  activated() {
    window.scrollTo(0, this.scrollPosition);
  },
  methods: {
    handleInput(val) {
      this.getProvideUnitList();
    },
    handleCancel() {
      this.getProvideUnitList();
    },
    openQrCode() {
      callMobile("qrcode", {});
    },
    getProvideUnitList() {
      this.$toast.open();
      let unitName = this.searchInfo.unitName || '云南省';
      if (isEmpty(unitName)) {
        unitName = undefined;
      }
      getProvideUnit(unitName).then(res => {
        if (res.code === 'SUCCESS') {
          if (res.data) {
            this.unitList = res.data;
          } else {
            this.unitList = [];
          }
        }
      }).finally(() => {
        this.$toast.close();
      });
    },
    debugInfo(){
      this.$router.push('debugInfo');
    },
    // 申请
    handleClick(val) {
      let areaFullName = val.areaFullName ? val.areaFullName : "";
      let address = val.unitAddress ? val.unitAddress : "";
      let unitAddress = areaFullName + address;
      let applyUnitInfo = {
        unitId: val.id,
        unitName: val.unitName,
        unitAddress: unitAddress,
      };
      window.sessionStorage.setItem('applyUnitInfo', JSON.stringify(applyUnitInfo));
      this.$router.push('questionAnswer');
    },
    // 申请记录
    handleRecord() {
      this.$router.push('applyRecord');
    },
    handleBack() {
      callMobile('goIndex', {});
    },
    scanQRCallBack(qrContent) {
      if (!qrContent) {
        this.$toast.success('无效的二维码');
        return;
      }
      let qrContentArr = qrContent.split("?");
      if (qrContentArr.length < 2) {
        this.$toast.success('无效的二维码');
        return;
      }
      getProvideUnitById(qrContentArr[1]).then(res => {
        if (res.code === 'SUCCESS') {
          if (res.data) {
            let areaFullName = res.data.areaFullName ? res.data.areaFullName : "";
            let unitAddress = res.data.unitAddress ? res.data.unitAddress : "";
            let applyUnitInfo = {
              unitId: res.data.id,
              unitName: res.data.unitName,
              unitAddress: areaFullName + unitAddress,
            };
            window.sessionStorage.setItem('applyUnitInfo', JSON.stringify(applyUnitInfo));
            this.$router.push('questionAnswer');
          } else {
            this.$toast.success('无效的二维码');
          }
        }
      })
    },
  },
  beforeRouteLeave(to, from, next) {
    this.scrollPosition = document.documentElement.scrollTop || document.body.scrollTop;
    next();
  },
}
</script>
<style lang="less" scoped>
.provideUnit {
  padding-top: 52px;

  .flex_block {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 24px 24px 24px 16px;

    .flex_block_title {
      display: flex;
      flex-direction: column;
      width: 90%;

      .top {
        color: #262626;
        font-size: 14px;
      }

      .bottom {
        color: #595959;
        font-size: 12px;
        margin-top: 7px;
      }
    }

    .flex_block_btn {
      width: 48px;
      height: 25px;
      border: 1px solid #F5222D;
      border-radius: 24px;
      font-size: 12px;
      color: #F5222D;
      display: flex;
      align-items: center;
      justify-content: center;
      margin-left: 8px;
    }
  }
}
</style>