index.js 3.99 KB
// dist/pages/orderDetail/index.js
import OrderDetailService from './orderDetailService.js'
import OrderActionService from '../../components/order/orderActionService.js';
import { getImgUrl, formatTimeByMin } from '../../utils/index.js';
import { showDialog } from '../../components/order/orderActionUtil.js';
import { prePay } from '../order/wxpay.js'
import router from '../../router/index.js'
const BUY_AGAIN = 'buy_again';
const NOW_BUY = 'now_buy';
const SHOW_EXPRESS = 'show_express';
var interval;
Page({

  /**
   * 页面的初始数据
   */
  data: {
    detailApi:Object,
    orderActionApi:Object,
    data:{},
    timer: '',
    lastIndex: 0,
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    let orderCode = options.orderCode
    let api = new OrderDetailService();
    let orderActionApi = new OrderActionService();
    this.setData({ detailApi: api, 
    orderActionApi: orderActionApi});
    if(orderCode){
      this.fetchOrderDetail(orderCode);
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
    // let str = this.data.data.buttons[0].text;
  },

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

  },

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

  },

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


  },

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

  },

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

  },

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

  },

  fetchOrderDetail: function(code){
    let that = this;
    let params = {
      orderCode: code,
      tabType: 'buy'
    }
    this.data.detailApi.getOrderDetailInfo(params, () => {
      wx.hideLoading();
    }).then(data => {
      if (data.goodsInfo && data.goodsInfo.goodImg){
        data.goodsInfo.goodImg = getImgUrl(data.goodsInfo.goodImg, 270,270);
      }
      let lastIndex = 0;
      if (data && data.buttons && data.buttons.length > 0) {
        lastIndex = data.buttons.length - 1;
      }
      that.setData({ 
        data,
        lastIndex: lastIndex
      });

      if (data.statusDetail && data.statusDetail.leftTime){
        let leftTime = data.statusDetail.leftTime;
        let timer = that.data.timer;
        if (leftTime > 0){
          interval = setInterval(() => {
            leftTime = leftTime - 1;
            timer = formatTimeByMin(leftTime, 'm:s');
            if (timer <= 0) {
              timer = '00:00'
            }
            that.setData({
              timer: timer,
            });
          }, 1000);
        }
      }
      
    })
  
    
  },
  //
  onButtonClick: function (e) {
    let actionCode = e.currentTarget.dataset.buttonCode;
    let orderCode = e.currentTarget.dataset.orderCode;
    let productId = e.currentTarget.dataset.productId;

    if (actionCode == BUY_AGAIN) {
      let params = {
       id: productId
      }
      router.go('productDetail', params);
    } else if (actionCode == NOW_BUY) {
      console.log("== 去支付页面===")
      prePay(productId, orderCode, 2);
    } else if (actionCode == SHOW_EXPRESS) {
      let params = {
        orderCode
      }
      router.go('logistics', params);
    } else {
      showDialog(orderCode, actionCode, 1);
    }
  },

  onClickProduct: function() {
    let productId =  this.data.data.goodsInfo.productId;
    let params = {
      id: productId
     }
     router.go('productDetail', params);
  },

  onClickLogistics: function(e) {
    let orderCode = e.currentTarget.dataset.orderCode;
    let params = {
      orderCode
    }
    router.go('logistics', params);
  },

  onCopyOrderCode: function() {
    let orderCode = String(this.data.data.orderCode);;
    wx.setClipboardData({
      data: orderCode,
      success (res) {
        
      }
    })
  }
})