success_new.js 14.7 KB
// pack-cookbook/pages/success_new.js
import App from '../../utils/api';
import util from '../../utils/util';
Page({
    /**
     * 页面的初始数据
     */
    data: {
        cookbooklist: [],
        sellerName: '',
        sellerid: '',
        probablyPrice: '',
        vipProbablyPrice: '',
        discount: '',
        stringifyUse: '',
        priceInfo: '',
        scoreInfo: '',
        notes: '',
        marketing: {},
        recharge_data: {},
        coupon_data: {},
        dataStr: Date.now() * 1 / 1000,
        rid: '',
        oid: '',
        sellerDate: '',
        region: '',
        tableNum: '',
        soltName: '',
    },
    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {
        let obj = util.determine(options.cookbookObj);
        console.log('options', {...obj});
        this.setData({
            options: obj,
        })
        this.getCheckCookList(obj);
        this.getSellerTemplateConfFun()
    },
    // 过滤数据
    formatCookList(list) {
        // 获取所有的规格
        list.forEach(item => {
            item.cookbooklist[0].forEach((i, idx) => {
                i.specArr = []
                let obj = {}
                if (i.spec && i.spec.length > 0) {
                    i.spec.forEach(single => {
                        if (single.status == '1') {
                            obj = {
                                cid: single.cid,
                                clear_num: single.clear_num,
                                id: single.id,
                                member_price: single.member_price,
                                price: single.price,
                                specid: single.specid,
                                specs: single.specs,
                                status: single.status,
                                str: '¥' + single.price + '/' + single.specs,
                                member_str: single.member_price ? '会员  ¥' + single.member_price + '/' + single.specs : '',
                            }
                            i.specArr.push(obj)
                        }
                    })
                }
            })
        })
        // 排序
        let sortArr = []
        list.forEach(item => {
            item.cookbooklist[0].sort((a, b) => {
                return a.order_o - b.order_o
            })
            sortArr.push(item)
        })
        //原栏目下显示
        let hasShowClass = false;
        //菜单中展示沽清的菜品
        let hasClearCookbook = false;
        //十道必选菜
        let has10CaiOpen = false;
        let flist = [];
        let assortArr = [];
        let check1 = '';
        let check2 = '';
        let that = this;
        let complete = false
        let complete1 = false
        if (sortArr.length > 0) {
            has10CaiOpen = list[0].status == 1;
            sortArr.forEach(function (cate, i) {
                let num = 0;
                let obj = {
                    class_name: cate.class_name,
                    class_type: cate.class_type,
                    id: cate.id,
                    order: cate.order,
                    status: cate.status,
                }
                if (cate.status == 1 && cate.cookbooklist[0].length > 0) {
                    assortArr.push(obj)
                    let cooks = [];
                    cate.cookbooklist[0].forEach(function (cook, n) {
                        if (cook.status == 1) {
                            let flag = true;
                            if (has10CaiOpen) {
                                if (cate.class_type == 2 && !hasShowClass && flist.length > 0 && flist[0].class_type == 1) {
                                    for (let fi = 0; fi < flist[0].cookbooklist[0].length; fi++) {
                                        if (flist[0].cookbooklist[0][fi].id == cook.id) {
                                            flag = false;
                                            break;
                                        }
                                    }
                                }
                            }
                            cook.item_clear_num = cook.clear_num;
                            if (!hasClearCookbook) { //不显示卖光了
                                let item_clear_num = cook.clear_num;
                                if (cook.specArr) {
                                    let clear_num = null;
                                    cook.specArr.forEach(spec => {
                                        if (spec.clear_num == 0) {
                                            clear_num = 0;
                                        } else {
                                            clear_num = null;
                                        }
                                    })
                                    if (clear_num == 0) {
                                        item_clear_num = 0;
                                    }
                                }
                                cook.item_clear_num = item_clear_num;
                                cook.index = n; //分类下菜品的下标
                                if (!cook.order_xx || cook.order_xx.length == 0) {
                                    cook.norms = []; //做法规格
                                }
                                cook.type = '1';
                                let cook_style = cook.cook_style ? util.determine(cook.cook_style) : {
                                    image_type: '1',
                                    name_type: ''
                                }; //判断是不是json,是json在转换为对象
                                cook.cook_style = cook_style;
                                cook.image_type = cook_style && cook_style.image_type ? cook_style.image_type : '1'; //1大图,2小图  默认大图
                                cook.name_type = cook_style && cook_style.name_type ? cook_style.name_type : '3'; //1左侧,2右侧,3顶部分开  默认分开
                                cook.check1 = cook.practice.length > 0 ? cook.practice[0].id : '';
                                cook.check2 = cook.specArr.length > 0 ? cook.specArr[0].id : '';
                                cook.price = cook.specArr.length > 0 ? cook.specArr[0].price : '';
                                cook.member_price = cook.specArr.length > 0 ? cook.specArr[0].member_price : '';
                                if (item_clear_num == 0) {
                                    flag = false;
                                }
                            }
                            if (flag) {
                                cooks.push(cook);
                            }
                        }
                    })
                    if (cooks.length > 0) {
                        cate.cookbooklist[0] = cooks;
                        flist.push(cate)
                    }
                }
            })
        }
        this.setData({
            check1,
            check2,
            assortArr
        })
        return flist;

    },
    // 获取点菜列表
    getCheckCookList(obj) {
        let param = {
            sellerid: obj.sid,
            identity: obj.identity,
            orderid: obj.oid,
            status: '0,1',
        };
        let probablyPrice = 0;
        let vipProbablyPrice = 0;
        App.Cookbook.GetCookbookByClass(param).then(json => {
            let cookbooklist = this.formatCookList(json.data[0].list)
            let newArr = JSON.parse(JSON.stringify(cookbooklist))
            let num = 0
            for (let i = 0; i < newArr.length; i++) {
                if (newArr[i].cookbooklist.length == 0) {
                    continue;
                }
                for (let j = 0; j < newArr[i].cookbooklist[0].length; j++) {
                    let cook_style = newArr[i].cookbooklist[0][j].cook_style
                    if (cook_style.image_type == 2) {
                        num++
                    } else {
                        if (num % 2 != 0) {
                            let k = cookbooklist[i].cookbooklist[0].findIndex((item) => {
                                return newArr[i].cookbooklist[0][j].id == item.id
                            })
                            if (k != -1) {
                                let temp = {
                                    boderNone: true,
                                    image_type: '2',
                                }
                                cookbooklist[i].cookbooklist[0].splice(k, 0, temp)
                            }
                        }
                        num = 0
                    }
                }
            }
            cookbooklist.forEach(item => {
                item.normsLen = 0
                item.cookbooklist[0].forEach((cooks, idx) => {
                    if (cooks.order_xx && cooks.order_xx.length > 0) {
                        let arr = cooks.order_xx
                        let result = arr.reduce((obj, item) => {
                            let find = obj.find(i => (i.practiceid === item.practiceid && i.specid === item.specid));
                            let _d = {
                                ...item,
                                count: 1
                            };
                            find ? find.count++ : obj.push(_d);
                            return obj;
                        }, []);
                        cooks.norms = result
                        cooks.norms.forEach(n => {
                            let obj = cooks.specArr.filter(i => {
                                return i.id == n.specid
                            })
                            n.price = (obj[0] && obj[0].price) ? obj[0].price : cooks.price;
                            n.member_price = (obj[0] && obj[0].member_price) ? obj[0].member_price : cooks.member_price;
                            n.id = cooks.id;
                            n.check2 = cooks.check2;
                            n.cookName = cooks.name;
                            n.check1 = cooks.check1;
                            let price = n.count * 1 * (n.price * 1);
                            let vipPrice = n.count * 1 * (n.member_price * 1);
                            probablyPrice += price;
                            vipProbablyPrice += vipPrice;
                        })
                        item.is_show = true
                        item.normsLen += cooks.norms.length
                    } else {
                        cooks.norms = []
                    }
                })
            })
            this.setData({
                cookbooklist,
                noData: true,
                probablyPrice,
                vipProbablyPrice
            })
        })
    },
    // 菜品更换
    continueOrdering() {
        console.log({...this.data.options});
        wx.reLaunch({
            url: `/pack-cookbook/pages/index_new?rid=${this.data.options.rid}&sid=${this.data.options.sid}&oid=${this.data.options.oid}&sellerName=${this.data.options.sellerName}&identity=1`,
        })
    },
    // 点击了解更多会员优惠政策
    gotoFavourableList() {
        let url = util.http_build_query({
            sellerName: this.data.sellerName,
            sellerid: this.data.sid,
            oid: this.data.oid,
            types: '2',
        }, '/pack-cookbook/pages/favourableList')
        wx.navigateTo({
            url
        })
    },
    getSellerTemplateConfFun() {
        App.Seller.GetSellerTemplateConf({
            sid: this.data.sid
        }).then(res => {
            let data = res.data
            let marketing, coupon_data, priceInfo, scoreInfo, recharge_list, stringifyUse;
            marketing = data.marketing ? JSON.parse(data.marketing) : '';
            console.log('marketing', marketing);
            if (marketing.coupon_data) {
                coupon_data = marketing.coupon_data;
                stringifyUse = JSON.stringify(marketing.coupon_data.use)
            }
            console.log('coupon_data', coupon_data);
            console.log('stringifyUse', stringifyUse);
            if (marketing.is_recharge == '1' && marketing.recharge_data) {
                let recharge_data = marketing.recharge_data
                recharge_list = marketing.recharge_data.recharge_list
                if (recharge_list.is_price == '1') priceInfo = '会员充值满' + recharge_data.recharge_money + '元赠送' + recharge_list.price + '元余额';
                if (recharge_list.is_score == '1') scoreInfo = '会员充值满' + recharge_data.recharge_money + '元赠送' + recharge_list.score + '积分';
                console.log('scoreInfo', scoreInfo);
                console.log('priceInfo', priceInfo);
                this.setData({
                    recharge_data: marketing.recharge_data
                })
                console.log('recharge_data', recharge_data);
            }
            this.setData({
                coupon_data,
                stringifyUse
            })
            // is_cash 代金券  is_discount折扣券  is_dish菜品券 只有代金券有几折显示
            if (marketing.is_coupon == '1' && coupon_data && (!coupon_data.use.is_cash || coupon_data.use.is_cash == '1')) {
                let cash = coupon_data.use.cash;
                let price = coupon_data.price * 1;
                let discount = ((price / cash) * 10).toFixed(2);
                this.setData({
                    discount
                })
            }
            this.setData({
                marketing,
                priceInfo,
                scoreInfo
            })
        }).catch(res => {
            console.log('GetSellerTemplateConf请求失败');
        })
    },
    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {
        let options = {
            sid: this.data.sid,
            rid: this.data.rid,
            oid: this.data.oid,
            identity: '1',
            hasOnlyShow: '1'
        };
        return {
            title: '菜品已点好,快来看看都点了什么~',
            path: util.http_build_query(options, '/pack-cookbook/pages/success_new'),
            imageUrl: 'http://nosqn.colorcun.com/reserve/images/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_201911151148571.jpg',
        }
    },
    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {

    },

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

    },

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

    },

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

    },

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

    },

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

    },
})