import {
  get,
  post
} from '../../utils/http'
import {
  formatActivity
} from '../../utils/time'
var WxParse = require('../../components/local/wxParse/wxParse.js')
Page({
  /**
   * 页面的初始数据
   */
  data: {
    list: [],
    visible: false,
    userInfo: null,
    current: 0,
    activity: {},
    wxParseMemberRules: false, // 是否已解析
    pay_methon: 1,
    payNow: false,

  },

  pay_methonw() {
    this.setData({
      pay_methon: 1
    })
  },

  pay_methonc() {
    this.setData({
      pay_methon: 2
    })
  },


  onClosePay() {
    this.setData({
      payNow: false
    })
  },

  /**
   * 获取我的储值
   * api/user
   */
  getAmount() {
    get('api/user/amount', {}, (res) => {
      if (res.data) {
        this.setData({
          inserllAmount: res.data.amount
        })
      }
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    // if(options.userInfo) {
    //   let userInfo = decodeURIComponent((options.userInfo));
    //   this.setData({ userInfo: JSON.parse(userInfo) })
    // }
    this.setData({
      userInfo: wx.getStorageSync('userInfo'),
    })
    this.getCard()
    this.getUserActivity()
    console.log(getApp().globalData)

    let that = this
    // 获取会员守则
    this.getmemberRules()
      .then((memberRules) => {
        WxParse.wxParse('article', 'html', memberRules, that, 5)
        that.setData({
          wxParseMemberRules: true,
        })
      })
      .catch(() => {})
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {},

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    this.getAmount()
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {},

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
    if (this.timer_) {
      clearInterval(this.timer_)
    }
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {},

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {},

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {},


  onPay: function () {
    this.setData({
      payNow: true,
    })
  },


  /**
   * 去支付
   */
  payNow() {
    let {
      list,
      current
    } = this.data
    let that = this
    this.checkFirst()
      .then((res) => {
        post(
          'api/card', {
            card_id: list[current].id,
          },
          (res) => {
            this.setData({
              order_id: res.data.order_id,
            })
            post(
              'api/pay/card', {
                pay_way: this.data.pay_methon == 1 ? 'weixin' : 'amount',
                order_id: res.data.order_id,
              },
              (res) => {

                that.setData({
                  payNow: false
                })

                if (that.data.pay_methon == 2) {
                  wx.showToast({
                    title: '支付成功',
                    icon: 'none',
                  })
                  setTimeout(() => {
                    that.setData({
                      visible: true
                    })
                  }, 1000)
                  return
                }

                wx.requestPayment({
                  timeStamp: res.data.pay_data.timeStamp,
                  nonceStr: res.data.pay_data.nonceStr,
                  package: res.data.pay_data.package,
                  signType: res.data.pay_data.signType,
                  paySign: res.data.pay_data.paySign,
                  success(res) {
                    wx.showToast({
                      title: '支付成功',
                      icon: 'none',
                    })
                    setTimeout(() => {
                      that.setData({
                        visible: true
                      })
                    }, 1000)
                  },
                  fail(res) {
                    wx.showToast({
                      title: '支付失败',
                      icon: 'error',
                    })
                  },
                })
              }
            )
          }
        )
      })
      .catch((rej) => {
        wx.navigateTo({
          url: '/pages/disclaimer/disclaimer',
        })
      })
  },

  /**
   * 暂不激活
   */
  onCancelUse() {
    this.onClose('visible')
    wx.redirectTo({
      url: '/pages/vipCard/vipCard',
    })
  },

  /**
   * 确认激活
   */
  onConfirmUse() {
    post(
      'api/card/active', {
        order_id: this.data.order_id,
      },
      (res) => {
        console.log(res)
        this.onClose('visible')
        wx.showToast({
          title: '激活成功',
          icon: 'none',
        })
        setTimeout(() => {
          wx.navigateBack()
        }, 1500)
      }
    )
  },

  /**
   * 关闭弹框
   */
  onClose(key) {
    this.setData({
      [key]: false,
    })
  },

  /**
   * 选择vip
   */
  onChangeVip(e) {
    this.setData({
      current: e.currentTarget.dataset.index,
    })
  },

  /**
   * 获取会员卡列表
   * /api/card
   */
  getCard() {
    get('api/card', {}, (res) => {
      this.setData({
        list: res.data,
      })
      console.log(res)
    })
  },

  /**
   * 是否首次购买
   * /api/order/check_first
   */
  checkFirst() {
    return new Promise((resolve, reject) => {
      if (wx.getStorageSync('agree')) {
        resolve()
      } else {
        get('api/order/check_first', {}, (res) => {
          if (res.data.order_status == 1) {
            resolve()
          } else {
            reject()
          }
        })
      }
    })
  },

  /**
   * 获取首次开卡优惠
   * api/user/activity
   */
  getUserActivity() {
    if (this.timer) {
      clearInterval(this.timer_)
    }
    get('api/user/activity', {}, (res) => {
      if (res.data) {
        res.data.currentTime = formatActivity(res.data.expire_time_seconds)
        this.setData({
          activity: res.data,
        })
        this.timer_ = setInterval(() => {
          if (res.data.expire_time_seconds <= 0) {
            clearInterval(this.timer_)
          }
          res.data.expire_time_seconds--
          res.data.currentTime = formatActivity(res.data.expire_time_seconds)
          this.setData({
            activity: res.data,
          })
        }, 1000)
      }
    })
  },

  /**
   * 获取会员守则
   */
  getmemberRules() {
    let memberRules = getApp().globalData.memberRules
    return new Promise((resolve, reject) => {
      if (memberRules) {
        resolve(memberRules)
      } else {
        get(
          'api/agreement', {},
          (res) => {
            memberRules = res.data.member_rules
            memberRules = this.removeCss(memberRules)
            getApp().globalData.memberRules = memberRules
            resolve(memberRules)
          },
          () => {
            reject()
          }
        )
      }
    })
  },

  /**
   * 去除富文本图片默认样式
   */
  removeCss(content) {
    let reg = /(style|class)="[^"]+"/gi
    let img = /<img[^>]+>/gi
    let res
    if (img.test(content)) {
      res = content.match(img)
      for (let i = 0; i < res.length; i++) {
        content = content.replace(res[i], res[i].replace(reg, ''))
      }
    }
    return content.replace(/\<img/gi, '<img class="richImg"  ')
  },
})