orderConfirm.js 3.74 KB
/**
 * orderConfirm.js
 *@author dennis
 *@createtime 2018/10/26
 *@description 订单支付确认界面
 */

import orderService from '../orderService'
import {getImgUrl} from '../../../utils';
import router from '../../../router/index.js'
import { prePay } from '../../order/wxpay.js'

Page({

  data: {
    payLabel: '待支付:',
    payButton: '去支付',
    protocolLabel: '我已阅读并同意',
    protocolText: '买家协议',
    agreeProtocol: false,
    checkImage: '../../../assets/images/select@2x.png',
    unCheckImage: '../../../assets/images/unselect@2x.png',
  },
  onLoad: function (option) {
    console.log(option)

    this.setData({
      skup: option && option.skup ? option.skup : '',
      product_id: option && option.product_id ? option.product_id : '',
      hasAddress: false
    })

    this.fetchData()
    this.fetchAddress()
  },

  fetchData() {
    let api = new orderService();
    wx.showLoading({
      title: '',
    });
    let params = {
      skup: this.data.skup,
    }
    api.createPaymentInfo(params, () => wx.hideLoading())
      .then(data => {
        if (data) {
          if (data.good && data.good.goodImg) {
            data.good.goodImg = getImgUrl(data.good.goodImg,270,270)
          }
          this.setData(data)
        }
      })
      .catch(error => {
        console.log(error)
      })
  },

  fetchAddress() {
    let api = new orderService().yohoApi()
    wx.showLoading({
      title: '',
    })

    let params = {
    }

    api.buyerGetAddress(params, () => wx.hideLoading())
      .then(data => {
        if (Array.isArray(data)){
          for (let item of data) {
            let index = data.indexOf(item)
            if (item.is_default === 'Y') {
              this.setData({
                address: item,
                hasAddress: true,
              })
              break
            }
            if (index == data.length - 1){
              this.setData({
                address: item,
                hasAddress: true,
              })
            }
          }
        }

      })
      .catch(error => {
        console.log(error)
      })
  },

  submit() {
    if (!this.data.agreeProtocol) return

    if (!this.data.hasAddress) {
      wx.showToast({
        title:'请选择地址'
      })
      return
    }

    let addressId = this.data.hasAddress && this.data.address && this.data.address.address_id
    let skup = this.data.skup
    let channelNo = ''

    let api = new orderService()
    wx.showLoading({
      title: '',
    })

    api.buyerSubmit(skup,channelNo,addressId, () => wx.hideLoading())
      .then(data => {
        if (data && data.orderCode) {
          //todo:待处理微信数据分析上报,订单生成
          // wx.reportAnalytics(eventName, data)
          let orderCode = data.orderCode;
          let productId = data.productId ? data.productId : '';
          prePay(productId, orderCode, 0);
        }
      })
      .catch(error => {
        wx.showToast({
          title: error.message,
          icon: 'none'
        })
      })

  },

 

  
  chooseAddress: function(){
    let addressId = this.data.address ? this.data.address.address_id : ''
    let params = {
      currentMode: 'modeSelect',
      address_id: addressId
    }
    router.go('addressManager', params);
  },

  selectComplete: function(data) {

    if (data) {
      this.setData({
        address: data,
        hasAddress: true
      })
    }

  },

  checkProtocol: function () {
    this.setData({
      agreeProtocol: !this.data.agreeProtocol
    })
  },

  goProtocol: function () {
    let url = `http://m.yohobuy.com/activity/student/detail/renzhen?openby:yohobuy={\"action\":\"go.h5\",\"params\":{\"url\":\"https://activity.yoho.cn/feature/3189.html?title=买家协议\"}}`;
    router.goUrl(url);
  },
})