order.js 3.48 KB
// pages/taocan/detail.js
import util from '../../utils/util';
import App from '../../utils/api';
//账单状态 1=初始化 2=交易成功(待使用) 3=已使用 4=退款中  5=已退款 6=已过期 7=支付失败
const orderStatusStr={
  1:{status:'未支付',info:'',optbut:''},
  2:{status:'待使用',info:'感谢您的支持,请您按尽快来店就餐呦',optbut:'申请退款'},
  3:{status:'已使用',info:'感谢您的支持,满意的话记得常来呦',optbut:'',
    qrcode:'http://nosqn.colorcun.com/taocan/1%20%282%29.png',
  },
  4:{status:'退款中',info:'退款正在处理,成功后将通过微信通知您',optbut:'退款进度',
    qrcode:'http://nosqn.colorcun.com/taocan/1%20%2826%29.png',
  },
  5:{status:'已退款',info:'钱款已原路退还,请在微信账单查看呦',optbut:'退款进度',
    qrcode:'http://nosqn.colorcun.com/taocan/1%20%2813%29.png',
  },
  6:{status:'已过期',info:'您可以随时申请退款呦',optbut:'申请退款',
    qrcode:'http://nosqn.colorcun.com/taocan/1%20%2812%29.png'
  },
  7:{status:'支付失败',info:'',optbut:''},
}
Page({

  /**
   * 页面的初始数据
   */
  data: {
    order_info:null,
    foods_info:null,
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.options=options
  },

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

  },

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

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
    if(this.getOrderInfoFlushInterval){
      clearInterval(this.getOrderInfoFlushInterval)
      this.getOrderInfoFlushInterval=null;
    }
  },

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

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

  },

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

  },

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

  },
  toggleRule(){
    this.setData({
      hasShowRule:!this.data.hasShowRule,
    })
  },
  getOrderInfo() {
    App.Foodset.GetFoodOrdersDetail({
      ufid: this.options.id,
    }).then(async res=>{
      let qrcode=''
      if(res.data.order_info.status==2){
        this.getOrderInfoFlush();
        qrcode=util.http_build_query({
          path:'pages/writeoff/setmeal',
          //path:'pages/me/s_index',
          param:JSON.stringify({
            sid:res.data.order_info.sid,
            oid:res.data.order_info.id
          })
        },util.cgi('App.System.GetWxLiteCodeScene'))
      }else{
        qrcode=orderStatusStr[res.data.order_info.status].qrcode
        if(this.getOrderInfoFlushInterval){
          clearInterval(this.getOrderInfoFlushInterval)
          this.getOrderInfoFlushInterval=null;
        }
      }
      this.setData({
        order_info:{...res.data.order_info,...res.data.seller_info},
        order_tips:orderStatusStr[res.data.order_info.status],
        foods_info:res.data.foods_info[0],
        qrcode:qrcode,
      })
    })
  },
  getOrderInfoFlushInterval:null,
  getOrderInfoFlush(){
    if(this.getOrderInfoFlushInterval) return;
    this.getOrderInfoFlushInterval=setInterval(()=>{
      this.getOrderInfo()
    },3000)
  }
})