sellerGift.js 9.98 KB
// pages/reserve/sellerGift.js
import util from '../../utils/util';
import App from '../../utils/api';
import RS from '../../utils/reserveStatus'
Page({
    /**
     * 页面的初始数据
     */
    data: {
        options: {},
        marketing: {},
        recharge_data: {},
        coupon_dataList: [],
        seller: {
            name: '',
            tablesText: '',
            date: '',
            addr: ''
        },
        StyleType: '',
        priceInfo: '',
        scoreInfo: '',
        discount: '',
        certificate: '',
        dataStr: Date.now() * 1 / 1000,
        is_comments: '0',
        is_user_comments: false,
        hasValueCertificate: false, //商家是否开通优惠券功能
        hasValueRecharge: false, //商家是否开通充值功能
        couponData: '', //评价赠送优惠券数据
    },
    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {
        this.id = options.id
        let param = {
            options: options
        }
        console.log('options', options);
        this.setData(param)
    },
    // 去评价
    evaluateFun() {
        let url = util.http_build_query({
            sellerName: this.data.seller.name,
            sellerid: this.data.seller.sid,
            oid: this.data.options.id,
            types: '1',
            previousPage: '1',
        }, '/pages/pinglun/createOpinion')
        wx.navigateTo({
            url
        })
    },
    /**
     * 生命周期函数--监听页面显示
     */
    onShow: function () {
        this.getDetail()
    },
    // 获取店铺详情
    getDetail() {
        App.Reserve.Detail({
            openid: getApp().openid,
            rid: this.data.options.id
        }).then(res => {
            let reserev = RS.reserve(res.data)
            this.setData({
                is_user_comments: res.data.is_user_comments,
                seller: {
                    name: reserev.seller.sellername,
                    sid: reserev.sid,
                }
            })
            console.log('reserev  reserev', reserev);
            setTimeout(() => {
                this.getSellerVersionFun(reserev.sid);
                this.getSellerTemplateConfFun(reserev.sid);
            }, 0);
        }).catch(res => {
            console.log(res, '详情请求失败');
        })
    },
    // 获取商家版本,不是超能版或者没有开通对应模块,不显示
    getSellerVersionFun(sellerid) {
        App.SellerVersion.GetSellerVersion({
            sellerid
        }).then((res) => {
            let data = res.data;
            console.log('版本列表', data);
            if (data && data.length > 0) {
                data.sort((a, b) => b.cdate * 1 - a.cdate * 1);
                // 获取店铺当前版本  (cdate最大最后一个充入的 && 当前时间有效 && 当前版本)
                let obj = data.find(item => item.vtype == 1 || item.vtype == 2 || item.vtype == 4);
                console.log('当前版本', {
                    ...obj
                });
                // 优惠券功能:超能版 || 高级版 || 有优惠券模块
                const hasValueCertificate = obj.vtype == '1' || obj.vtype == '4' || data.some(item => item.vid == '8');
                // 充值功能:超能版 || 有充值模块
                const hasValueRecharge = obj.vtype == '1' || data.some(item => item.vid == '9');
                this.setData({
                    hasValueCertificate,
                    hasValueRecharge,
                })
            }
        })
    },
    // 获取商家设置营销信息
    getSellerTemplateConfFun(sid) {
        console.log(sid, 'sidsidsidsid');
        App.Seller.GetSellerTemplateConf({
            sid
        }).then(res => {
            let data = res.data
            console.log('data', data);
            let couponList = []
            let StyleType, marketing, coupon, is_comments;
            marketing = util.determine(data.marketing);
            StyleType = data.type;
            if (marketing) {
                is_comments = marketing.is_comments ? marketing.is_comments : '';
                coupon = marketing.coupon_data ? util.determine(marketing.coupon_data) : '';
                let info = marketing.coupon_data_comments ? util.determine(marketing.coupon_data_comments) : '';
                let couponDataId = info && info.length > 0 ? info[0].id : {}
                // 根据券ID获取评价赠送的券详情
                if(couponDataId) this.getEvaluateFun(couponDataId)
            }
            // is_cash 代金券  is_discount折扣券  is_dish菜品券 只有代金券有几折显示
            if (coupon && util.getType(coupon) == 'object') {
                couponList.push({
                    id: coupon.id
                });
            }
            if (coupon && util.getType(coupon) == 'array') {
                if (coupon.length > 0) {
                    coupon.forEach(item => {
                        couponList.push({
                            id: item.id
                        })
                    })
                }
            }
            let obj = {
                marketing,
                coupon,
                couponList,
                is_comments,
                StyleType,
            }
            console.log('获取数据', {
                ...obj
            });
            // 根据券ID获取券详情
            this.getActivityByIdFun(couponList, couponList.length)
            // 根据充值ID获取充值详情
            if (marketing && marketing.is_recharge && marketing.is_recharge == '1' && marketing.recharge_data) {
                this.getRechargeDetail(marketing.recharge_data.id)
            }
            this.setData({
                marketing,
                coupon,
                is_comments,
                couponList,
                StyleType,
            })
        }).catch(res => {
            console.log('GetSellerTemplateConf请求失败');
        })
    },
    // 获取评价赠送的券最新详情
    getEvaluateFun(id){
        App.Activity.GetActivityById({
            id
        }).then(res => {
            if (res.data.length > 0) {
                let couponData = res.data[0]
                couponData.use = couponData.use ? util.determine(couponData.use) : '';
                couponData.exp_date = couponData.exp_date ? util.determine(couponData.exp_date) : '';
                if ((couponData.use && (!couponData.use.is_cash || couponData.use.is_cash == '1'))) {
                    let cash = couponData.use.cash * 1;
                    let price = couponData.price * 1;
                    couponData.discount = cash != 0 ? ((price / cash) * 10).toFixed(1) : '';
                }
                // showCoupon 代表赠送的券没过有效期 && 是开启状态
                couponData.showCoupon = (this.data.dataStr<(couponData.etime*1) && couponData.is_open=='1') ? '1' : '0';
                console.log('邀请函--------------------评价赠送的优惠券',couponData);
                this.setData({
                    couponData:res.data[0]
                })
            }
        })
    },
    // 根据充值ID获取充值详情
    getRechargeDetail(id) {
        App.Activity.GetNewRecharge({
            id
        }).then(res => {
            let detail = res.data
            let exp_date = res.data.exp_date ? JSON.parse(res.data.exp_date) : ''
            let recharge_list = res.data.recharge_list ? JSON.parse(res.data.recharge_list) : ''
            let priceInfo, scoreInfo, certificate;
            detail.recharge_list = recharge_list;
            detail.exp_date = exp_date;
            if (recharge_list.is_price == '1') priceInfo = '会员充值满' + detail.recharge_money + '元赠送' + recharge_list.price + '元余额';
            if (recharge_list.is_score == '1') scoreInfo = '会员充值满' + detail.recharge_money + '元赠送' + recharge_list.score + '积分';
            if (recharge_list.is_coupons == '1' && recharge_list.coupons_names.length > 0) certificate = recharge_list.coupons_names.join('、');
            let recharge_data = (this.data.dataStr<detail.etime*1 && detail.is_open == '1') ? detail : ''
            console.log('邀请函--------------充值',recharge_data);
            this.setData({
                recharge_data,
                scoreInfo,
                priceInfo,
                certificate
            })
        })
    },
    // 根据券ID获取券详情
    getActivityByIdFun(ids, length) {
        let coupon_dataList = [];
        ids.forEach(i => {
            App.Activity.GetActivityById({
                id: i.id
            }).then(res => {
                if (res.data.length > 0) {
                    let detail = res.data[0];
                    detail.stringifyUse = detail.use ? JSON.stringify(detail.use) : '';
                    detail.exp_date = detail.exp_date ? util.determine(detail.exp_date) : '';
                    detail.use = detail.use ? util.determine(detail.use) : '';
                    if ((detail.use && (!detail.use.is_cash || detail.use.is_cash == '1'))) {
                        let cash = detail.use.cash * 1;
                        let price = detail.price * 1;
                        detail.discount = cash != 0 ? ((price / cash) * 10).toFixed(1) : '';
                    }
                    coupon_dataList.push(detail);
					if (length === coupon_dataList.length) {
                        coupon_dataList = coupon_dataList.filter(item=>{return this.data.dataStr<(item.etime*1) && item.is_open == '1'})
                        console.log('邀请函--------------------优惠券',coupon_dataList);
						this.setData({
							coupon_dataList,
						})
					}
                }
            })
        })
    },
    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {},

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

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

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

    },
})