buyCoupon.js 8.89 KB
// pack-activity/pack/buyCoupon.js
import App from '../../utils/api';
import util from '../../utils/util'
Page({

    /**
     * 页面的初始数据
     */
    data: {
        opt: {
            id:'',
            oid:'',
            sid:'',
            types:'1',//1是邀请函过来的(邀请函的券或者点击意见反馈买券)2提前点餐  3是商家APP分享的
            rid:'',
        },
        use:{},
        detail:{},
        exp_date:{},
        num: 1,
        totalize: '',
        sellername:'',
		dataStr: Date.now() * 1 / 1000,
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {
        console.log('options',options);
        var obj = {};
        if(options.scene){
            let scene=decodeURIComponent(options.scene);
            console.log('scene',scene);
            for (var i = 0; i < scene.split('&').length;i++){
            var arr = scene.split('&')[i].split('=');
            obj[arr[0]] = arr[1];
            }
        }
        console.log('obj',{...obj});
        this.setData({
            opt:{
                id:options.id || obj.id,
                sid:options.sid || obj.sid,
                oid:options.oid,
                types:options.types || obj.types,//1是邀请函过来的(邀请函的券或者点击意见反馈买券)  2是提前点餐  3是商家APP分享的或者短信的链接
                rid:options.rid?options.rid:'',
            }
        })
        console.log('opt',{...this.data.opt});
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {
        this.getDetail();
        this.getSellerDetail();
    },

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

    },
    // 获取店铺名称
    getSellerDetail(){
        App.Customer.GetSellerDetail({
			sid: this.data.opt.sid
        }).then(res=>{
            this.setData({
                sellername:res.data.sellername
            })
        })
    },
    // 获取券信息
    getDetail(){
        App.Activity.GetActivityById({
			id: this.data.opt.id
		}).then(res => {
            if(res.data.length>0){
                let detail=res.data[0];
                let exp_date=util.determine(detail.exp_date);
                let price = detail.price * 1;
                let num = this.data.num * 1;
                let use=util.determine(detail.use)
                if(use && use.images){
                    use.images=util.determine(use.images)
                }
                this.setData({
                    detail,
                    exp_date,
                    totalize: (price * num).toFixed(2),
                    use,
                })
                console.log('detail',{...detail});
                console.log('exp_date',{...exp_date});
                console.log('totalize',this.data.totalize);
                console.log('use',use);
            }
        })
    },
    // 点击减号
    subtraction() {
        let price = this.data.detail.price * 1;
        let num = this.data.num * 1;
        let num1 = num - 1
        if (num == '1') {
            return false
        }
        this.setData({
            num: num1,
            totalize: (price * num1).toFixed(2)
        })
    },
    // 点击加号
    addition() {
        let price = this.data.detail.price * 1;
        let num = this.data.num * 1;
        let num1 = num + 1
        this.setData({
            num: num1,
            totalize: (price * num1).toFixed(2)
        })
    },
    // 输入事件
    bindKeyNameInput(event){
        let price = this.data.detail.price * 1;
        const value = event.detail.value.replace(/\s+/g, "")*1;
        if(value && /(^[1-9]\d*$)/.test(value)){
            wx.hideToast()
            this.setData({
                num: value,
                totalize: (price * value).toFixed(2)
            })
        }else{
            wx.showToast({
                title:'请输入正整数',
                icon:'none',
                duration:1000,
                mask:true,
            })
        }
    },
    // 提交订单
    submitOrder() {
        if(this.data.dataStr>(this.data.detail.etime*1)){
            return wx.showToast({
                title:'优惠券已过期,不可购买!',
                duration:2000,
                mask:true,
                icon:'none'
            })
        }
        if(this.data.num && !/(^[1-9]\d*$)/.test(this.data.num)){
            return wx.showToast({
                title:'请输入正确的购买数量',
                duration:2000,
                mask:true,
                icon:'none'
            })
        }
        // is_type  1店铺优惠券  需要判断优惠券剩余数量  2个人优惠券不需要判断数量
        if(this.data.detail.grant_last=='0' && this.data.detail.is_type=='1'){
            return wx.showToast({
                title:'您来晚了,当前优惠券已经售罄,请与商家联系!',
                duration:2000,
                mask:true,
                icon:'none'
            })
        }
        // is_type  1店铺优惠券  需要判断优惠券剩余数量  2个人优惠券不需要判断数量
        if(this.data.detail.grant_last && (this.data.detail.grant_last*1)<(this.data.num*1) && this.data.detail.is_type=='1'){
            return wx.showToast({
                title:'优惠券剩余数量不足!',
                duration:2000,
                mask:true,
                icon:'none'
            })
        }
        if(this.data.num=='0'){
            return wx.showToast({
                title:'最少需要购买一个!',
                duration:2000,
                mask:true,
                icon:'none'
            })
        }
        console.log('oidoid',this.data.opt.oid);
        let detail=this.data.detail
        detail.name=this.data.sellername;
        detail.oid=this.data.opt.oid;
        App.Activity.CreateNewRechargeOrder({
            recharge_id:this.data.opt.id,
            sellerid:this.data.opt.sid,
            number:this.data.num,
            price:this.data.detail.price,
            type:'1',
        }).then(res=>{
            console.log(res);
            if(res.ret=='200'){
                let totalize=this.data.totalize*1;
                if(totalize==0){
                    util.toast('购买成功','none');
                    wx.reLaunch({
                        url: '/pages/me/coupon_news'
                    })
                    return 
                }
                // 跳转到支付页,types传参 1邀请函  2提前点餐  3商家端app分享
                wx.navigateTo({
                    url: `./confirmPayment?sid=${this.data.opt.sid}&sellerName=${this.data.sellername}&oid=${this.data.opt.oid}&rid=${this.data.opt.rid?this.data.opt.rid:''}&type=1&detail=${JSON.stringify(detail)}&combine_out_trade_no=${res.data.combine_out_trade_no}&totalize=${this.data.totalize}&types=${this.data.opt.types}`,
                })
            }else{
                wx.showToast({
                    title:res.msg,
                    duration:2000,
                    mask:true
                })
            }
        })
    },
    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

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

    },

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

    },

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

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {
        let data=this.data.opt;
        let use=this.data.use;
        let detail=this.data.detail
        let imageUrl,title;
        if(use.is_cash=='1' || use.is_cash){
            imageUrl='https://nosqn.colorcun.com/share_money.png';
            title=detail.price == '0'?`免费获取${this.data.sellername}${use.cash}元代金券,点击查看详情。`:`仅需${detail.price}元,获取${this.data.sellername}${use.cash}元代金券,点击查看详情。`
        }
        if(use.is_discount=='1' || use.is_discount){
            imageUrl='https://nosqn.colorcun.com/share_discount.png';
            title=detail.price == '0'?`免费获取${this.data.sellername}${use.discount}折折扣券,点击查看详情。`:`仅需${detail.price}元,获取${this.data.sellername}${use.discount}折折扣券,点击查看详情。`
        }
        if(use.is_dish=='1' || use.is_dish){
            imageUrl='https://nosqn.colorcun.com/share_dish.png';
            title=detail.price == '0'?`免费获取${this.data.sellername}${detail.aname},点击查看详情。`:`仅需${detail.price}元,获取${this.data.sellername}${detail.aname},点击查看详情。`
        }
        return {
            title,
            path:`/pack-activity/pack/buyCoupon?use=${JSON.stringify(use)}&id=${data.id}&oid=${data.oid}&rid=${data.rid}&sid=${data.sid}&types=${data.types}`,
            imageUrl,
        }
    }
})