buyCard.js 6.8 KB
// pages/buyCard/buyCard.js
const app = getApp();
Page({

  /**
   * 页面的初始数据
   */
  data: {
    card_info: {},
    student_list: [],
    picker_list: {},
    is_agree: true,
    userlist: ['张三', '里斯'],
    index: 0,
    pay_success: false,
    page_number: 1,
    has_more: true,
  },

    //选择成员
    changeStudent(e) {
        // if (this.data.student_list.length === 0) {
        //
        //     }
        this.setData({
            index: e.detail.value,
        });
    },
    //添加学员
    addUser() {
        wx.navigateTo({
            url: '../../index/confirm-appointment-info/add-student/add-student?is_back=' + true,
        })
    },
    //服务协议
    serviceProtocol() {
        wx.navigateTo({
            url: '../protocol/protocol',
        })
    },
    //确认支付
    confirmPay(e) {
        if(this.data.index !== -1) {
            if(this.data.is_agree) {
                let url = '/portal/Order/order_add';
                let header = {
                    "XX-token": wx.getStorageSync('token')
                };
                let params = {
                    _type: 4,//4:成功购买畅玩卡
                    formId: e.detail.formId,
                    id: this.data.student_list[this.data.index].id
                };
                app.post(url, params,header).then((res) => {
                    // console.log('支付换参',res);
                    this.wxPay(res.pay)
                })
            }else {
                wx.showToast({title:'请同意协议!',icon:'none'})
            }
        }else {
            wx.showToast({title:'请绑定学员!',icon:'none'})
        }

    },
    //微信支付
    wxPay(data) {
        const self = this;
        wx.requestPayment({
            'timeStamp': data.timeStamp,
            'nonceStr': data.nonceStr,
            'package': data.package,
            'signType': data.signType,
            'paySign': data.paySign,
            'success': function(res) {
                // console.log('支付成功',res);
                wx.showToast({
                    title: '支付成功',
                    icon: 'success',
                    success: function () {
                        setTimeout(function () {
                            if(self.data.from_appointment) {//如果从首页或预约时购买的,成功后返回上一页
                                wx.navigateBack({delta: 1});
                                self.setData({pay_success: true});
                                self.changeState();
                            }else if (self.data.from_index) {
                                wx.navigateBack({delta: 1});
                            }
                            else {//否则 进入预约订单详情页
                                wx.redirectTo({
                                    url: '/pages/my/order-detail/order-detail'
                                })
                            }
                            // self.setData({
                            //     ifshowmold: true,
                            // })
                        },500)
                    }
                });
            },
            'fail': function(res) {
                // console.log('支付失败', res);
            }
        })
    },
    //更新上一页面的购买状态
    changeState() {
        var pages = getCurrentPages();
        if (pages.length > 1) {
            // console.log('pay_success',this.data.pay_success);
            var beforePage = pages[pages.length - 2]//获取上一页面实例
            if (this.data.pay_success) {
                // beforePage.refreshStudent()
                beforePage.data.is_buy = true;
                // console.log('学生id',this.data.student_list[this.data.index].id);
                beforePage.data.choose_student_id = this.data.student_list[this.data.index].id;
                beforePage.refreshBuyState()
            }
        }
    },
    //畅玩卡说明
    getArcCard() {
        let url = '/wxapp/public/arc_card';
        let header = {
            "XX-token": wx.getStorageSync('token')
        };
        app.post(url, {},header).then((res) => {
            // console.log(res);
            this.setData({
                card_info: res
            })
        })
    },
    getMoreStudent() {
        // console.log('has_more',this.data.has_more);
        if (this.data.has_more) {
            this.data.page_number++;
            this.getStudentList();
        } else {
            wx.showToast({
                title: '没有更多数据了~',
                icon: 'none'
            });
        }
    },
    //获取学员列表
    getStudentList() {
        if(!this.data.has_more) return;
        this.setData({has_more: false});
        let url = '/user/Student/student_list';
        let header = {
            "XX-token": wx.getStorageSync('token')
        };
        let params = {
            page: this.data.page_number,
        };
        var list = [];
        app.post(url,params,header).then((res) => {
            // console.log('学员列表',res);
            if(res.this_page < res.total_page) {
                this.setData({has_more: true});
                this.getMoreStudent()
            }
            const concat_list = this.data.student_list.concat(res.list);
            // console.log('concat_list',concat_list);
            concat_list.forEach((item) => {
                list.push(item.name)
            });
            // console.log('list', list);
            this.setData({student_list: this.data.student_list.concat(res.list),picker_list:list});
        })
    },
    //同意协议按钮
    agree() {
        this.setData({is_agree: !this.data.is_agree})
    },
    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {
        // console.log('options',options);
        const self =this;
        self.getArcCard();
        self.setData({
            from_appointment: options.from_appointment?options.from_appointment:'',
            from_index: options.from_index?options.from_index:'',
        })
    },

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

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function() {
    const self = this;
    self.setData({has_more: true,student_list:[],page_number: 1});
    self.getStudentList();

  },

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

  },

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

  },

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

  },

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

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

  }
})