<template>
  <div class="cardSecretBuy">
    <login :page="login_page"></login>

    <div v-if="prompt" class="prompt-alert">{{ prompt }}</div>

    <div class="card-secret-buy">
      <div class="card-content">
        <div class="card-buy" v-if="tab==0">
          <div class="card-title">
            <div class="card-circle">卡密购买</div>
          </div>
          <div class="card-types">
            <div class="card-type" v-for="(item, key) in card_type_list" @click="buyCard(item)">
              <div class="type-name">{{ item.title }}</div>
              <div class="type-price">{{ item.price }}元</div>
            </div>
          </div>
        </div>
        <div class="card-search" v-if="tab==1">
          <div class="card-title">
            <div class="card-circle">卡密查询</div>
            <div @click="toOrderSample()" class="card-order">订单编号指引</div>
          </div>
          <div class="search-input">
            <input type="text" placeholder="请输入订单编号" v-model="inputValue" @keyup.enter="search()">
            <div @click="search()">搜索</div>
          </div>
        </div>
      </div>

      <div class="footernav">
        <div class="itemList" @click="toTab(0)">
          <img v-if="tab==0" class="tabbar_item_img1" src="../assets/images/card_secret_buy/tabs_buy_on.png" alt="">
          <img v-else class="tabbar_item_img1" src="../assets/images/card_secret_buy/tabs_buy.png" alt="">
          <span v-bind:class="[{'selected':tab==0}]">卡密购买</span>
        </div>
        <div class="itemList" @click="toTab(1)">
          <img v-if="tab==1" class="tabbar_item_img1" src="../assets/images/card_secret_buy/tabs_search_on.png" alt="">
          <img v-else class="tabbar_item_img1" src="../assets/images/card_secret_buy/tabs_search.png" alt="">
          <span v-bind:class="[{'selected':tab==1}]">卡密搜索</span>
        </div>
      </div>
    </div>
  </div>
</template>

<script>
import Login from './common/Login.vue'

export default {
  data() {
    return {
      login_page: "cardSecretBuy",

      prompt: '',
      agent_url: localStorage.getItem('agent_url'),

      tab: 0,
      card_type_list: [],

      inputValue: '',
      orderid: "",
    };
  },
  methods: {
    promptshow(content) {
      this.prompt = content;
      setTimeout(() => {
        this.prompt = ""
      }, 2000);
    },
    getCardSecretTypes: function () {
      this.$http.post(this.agent_url + "/h5_get_card_secret_types", {}).then(response => {
          if (response.data.status) {
            this.card_type_list = response.data.data;
          } else {
            this.promptshow(response.data.info);
          }
        },
        response => {
          this.promptshow("网络错误，请重试");
        });
    },
    toTab: function (tab) {
      this.tab = tab;
    },
    search: function () {
      if (this.inputValue == '') {
        this.promptshow('请输入订单编号');
        return;
      }
      this.$http.post(this.agent_url + "/h5_get_card_secret", {
        orderid: this.inputValue,
      }).then(response => {
          if (response.data.status) {
            localStorage.setItem('cardSecretBuyTab', 1)
            this.toCardSecretQuery(this.inputValue);
          } else {
            this.promptshow(response.data.info);
          }
        },
        response => {
          this.promptshow("网络错误，请重试");
        });
    },
    toOrderSample: function () {
      location.href = "#/orderSample";
    },
    buyCard: function (card) {
      let openid = this.$cookies.get('openid_' + this.$cookies.get('site_uid'));
      var total_fee = card.price < 0.01 ? 0.01 : card.price;
      let param = {
        identity: openid,
        total_fee: total_fee,
        unique_id: card.id,
        page_id: 888,
        buytype: 'cardsecret',
        back_url: this.agent_url,
        desc: card.desc,
      };
      this.$http.post(this.agent_url + "/h5_service_awaken_pay", param).then(response => {
          if (response.data.status) {
            this.tid = response.data.data.tid;
            this.callpay(response.data.data);
          } else {
            this.promptshow(response.data.info);
          }
        },
        response => {
          this.promptshow("网络错误，请重试");
        });
    },
    callpay: function (data) {
      if (typeof WeixinJSBridge == "undefined") {
        if (document.addEventListener) {
          document.addEventListener('WeixinJSBridgeReady', this.jsApiCall, false);
        } else if (document.attachEvent) {
          document.attachEvent('WeixinJSBridgeReady', this.jsApiCall);
          document.attachEvent('onWeixinJSBridgeReady', this.jsApiCall);
        }
      } else {
        this.jsApiCall(data);
      }
    },
    jsApiCall: function (data) {
      WeixinJSBridge.invoke(
        'getBrandWCPayRequest', {
          "appId": data.appId,
          "timeStamp": data.timeStamp + '',
          "nonceStr": data.nonceStr,
          "package": data.package,
          "signType": data.signType,
          "paySign": data.paySign
        }, (res) => {
          //此处需要转化为字符串
          if (res.err_msg.indexOf('ok') > -1) {
            this.checkpayresult();
          } else if (res.err_msg.indexOf('cancel') > -1) {

          } else {
            this.promptshow('支付失败');
          }
        });
    },
    checkpayresult: function () {
      var paytype = 2;
      this.$http.post(this.agent_url + "/h5_pay_result", {
        tid: this.tid,
        pay_type: paytype
      }).then(response => {
          if (response.data.status) {
            this.toCardSecretQuery(this.tid);
          } else {
            this.promptshow(response.data.info);
          }
        },
        response => {
          this.promptshow("网络错误，请重试");
        });
    },
    toCardSecretQuery(orderid) {
      location.href = "#/cardSecretQuery/?orderid=" + orderid;
    }
  },
  components: {
    Login
  },
  mounted() {
    this.getCardSecretTypes();
    if (localStorage.getItem('cardSecretBuyTab') !== null && localStorage.getItem('cardSecretBuyTab') !== "") {
      this.tab = localStorage.getItem('cardSecretBuyTab')
      localStorage.setItem('cardSecretBuyTab', 0)
    }

    //兼容卡密查询页面
    let query_url = localStorage.getItem('query_url')
    if(query_url.indexOf('card_secret_query') > -1){
      this.tab = 1
    }
  }
};
</script>

<style lang="scss" scoped>
.cardSecretBuy {
  background: #F8F8F8;
  font-size: 17px;
  height: 100vh;
}

.card-content {
  padding: 20px 20px;
}

.card-title {
  line-height: 20px;
  display: flex;
}

.card-circle {
  width: 50%;
  padding-left: 30px;
  background-image: url(../assets/images/title_pic.png);
  background-repeat: no-repeat;
  background-position: 0 70%;
}

.card-types {
  background: #fff;
  padding: 0 20px;
  margin-top: 30px;
  border: 1px solid #F8F8F8;
  border-radius: 10px;
  box-shadow: 1px 1px 10px rgba(0, 0, 0, 0.1);
}

.card-type {
  border-top: 1px solid #E8ECF0;
  line-height: 84px;
  display: flex;
}

.card-type:first-child {
  border: none;
}

.type-name {
  color: #071432;
  width: 50%;
  text-align: left;
}

.type-price {
  color: #0F83FF;
  width: 50%;
  text-align: right;
  padding-right: 20px;
  background-image: url(../assets/images/card_secret_buy/buy_pic.png);
  background-repeat: no-repeat;
  background-position: 100% 50%;
  background-size: 10%;
}

.card-order {
  width: 50%;
  display: inline-block;
  text-align: right;
  font-size: 15px;
}

.search-input {
  background: #fff;
  display: flex;
  margin: 30px 0;
  border: 1px solid #BED4F1;
  border-radius: 6px;
  overflow: hidden;
}

.search-input input {
  padding: 10px;
  width: 100%;
  border: none;
  font-size: 16px;
}

.search-input div {
  width: 105px;
  line-height: 44px;
  background: #fff;
  color: #0F83FF;
  box-sizing: border-box;
}

.search-input div:before {
  content: '';
  height: 5px;
  border-left: 2px solid #BED4F1;
  padding-right: 20px;
}

.footernav {
  display: flex;
  justify-content: center;
  border-top: 1px solid #EEEEEE;
  width: 100%;
  height: 90px;
  position: fixed;
  z-index: 9;
  box-sizing: border-box;
  bottom: 0;
  background: #FFFFFF;
}

.itemList {
  display: flex;
  justify-content: center;
  align-content: center;
  float: left;
  width: 50%;
  height: 100%;
  box-sizing: border-box;
  position: relative;
  text-align: center;
}

.selected {
  color: #000 !important;
}

.tabbar_item_img1 {
  position: absolute;
  width: 30px;
  height: 30px;
  bottom: 45px;
}

.itemList span {
  font-size: 12px;
  line-height: 15px;
  font-weight: 400;
  color: #979797;
  display: block;
  position: absolute;
  width: 100%;
  bottom: 26px;
  text-align: center;
}
</style>
