// /*** // * 购物车js // * 使用storage 存放购物车商品信息 // */ // const app = getApp(); // const utils = require("utils"); // var digits = 2; // 小数位数 // var storeKey = "store"; // var cartKey = "cartKey"; // var loadedDishKey = "currentLoadedDishs"; // var tableKey = "tableKey"; // /* 获取当前操作门店 */ // var getStore = function() { // return wx.getStorageSync(storeKey); // }; // /* 压入当前操作门店 */ // var setStore = function(options) { // wx.setStorageSync(storeKey, options); // }; // /* 获取当前桌号 */ // var getTable = function() { // return wx.getStorageSync(storeKey); // }; // /* 压入当前桌号 */ // var setTable = function(options) { // wx.setStorageSync(tableKey, options); // }; // /* 获取对应门店购物车数据 */ // var getStoreCartMap = function(options) { // var storeId = getStore().id; // var cartMap = getCartMap(); // if (null != cartMap && undefined != cartMap && cartMap != "") { // return cartMap[storeId]; // } else { // cartMap = {}; // setStoreCartMap(cartMap); // return cartMap; // } // }; // /* 压入对应门店购物车数据 */ // var setStoreCartMap = function(option) { // var storeId = getStore().id; // var storeCartMap = option.storeCartMap; // var cartMap = getCartMap(); // if (cartMap == null || cartMap == undefined || cartMap == "") { // cartMap = new Object(); // } // cartMap[storeId] = storeCartMap; // setCartMap(cartMap); // return true; // }; // /* 压入购物车数据 并返回当前购物车数据*/ // var setCartMap = function(cartMap) { // wx.setStorageSync(cartKey, cartMap); // return getCartMap(); // }; // /* 获取购物车数据 */ // var getCartMap = function() { // var cartMap = wx.getStorageSync(cartKey); // if (null == cartMap || undefined == cartMap || cartMap == "") { // cartMap = {}; // } // return cartMap; // }; // /* 压入购物车门店数据 */ // var putCartMap = function(options) { // var store = getStore(); // var storeId = store.id; // var boxPrice = options.boxPrice; // var uniqueId = options.uniqueId; // 规格商品Id+做法Id // var productId = options.productId; // var productNo = options.productNo; // var goodsId = options.goodsId; // 商品Id // var goodsName = options.goodsName; // var unitId = options.unitId; // var categoryId = options.categoryId; // var price = options.price; // var memberPrice = options.memberPrice; // var num = options.num; // var specId = options.specId == undefined ? '' : options.specId; // 规格Id // var specName = options.specName == undefined ? '' : options.specName; // 规格名称 // var makeId = options.makeId == undefined ? '' : options.makeId; // var makeName = options.makeName == undefined ? '' : options.makeName; // var makePrice = options.makePrice == undefined ? '' : options.makePrice; // var makeAmount = options.makeAmount == undefined ? 0 : options.makeAmount; // var addAmount = options.addAmount == undefined ? 0 : options.addAmount; // 套餐加价 // var isSuit = options.isSuit; // true 套餐商品、非套餐商品 // var suitDetails = options.suitDetails; // var cartMap = getCartMap(); // if (cartMap != null) { // var storeCartMap = this.getStoreCartMap({ // storeId: storeId // }); // if (utils.isBlank(storeCartMap)) { // storeCartMap = new Object(); // storeCartMap.totalCash = 0; // storeCartMap.totalNum = 0; // storeCartMap.categories = {}; // storeCartMap.createTime = (new Date()).valueOf(); // } // var dishes = storeCartMap.dishes; // if (utils.isBlank(dishes)) { // dishes = new Object(); // } // var dishObject = dishes[productId]; // if (utils.isNotBlank(dishObject)) { // var specs = dishObject.specs; // var specObject = {}; // if (num <= 0) { // specObject = undefined; // } else { // specObject = specs[uniqueId]; // if (utils.isNotBlank(specObject)) { // specObject.num = num; // } else { // specObject = new Object(); // specObject.categoryId = categoryId; // specObject.productId = productId; // specObject.productNo = productNo; // specObject.unitId = unitId; // specObject.goodsId = goodsId; // specObject.name = goodsName; // specObject.specId = specId; // specObject.specName = specName; // // specObject.makeCount = makeCount; // specObject.num = num; // specObject.price = price; // specObject.memberPrice = memberPrice; // //做法信息 // specObject.makeId = makeId; // specObject.makeName = makeName; // specObject.makePrice = makePrice; // specObject.makeAmount = makeAmount; // specObject.suitDetails = suitDetails; // specObject.isSuit = isSuit; // specObject.uniqueId = uniqueId; // specObject.addAmount = addAmount; // } // } // specs[uniqueId] = specObject; // dishObject.specs = specs; // } else { // // 购物车中不存在此菜品 新增dish和下属spec // var amount = utils.numMulti(num, price); // var memberAmount = utils.numMulti(num, memberPrice); // dishObject = new Object(); // dishObject.name = goodsName; // dishObject.isSuit = isSuit; // dishObject.addAmount = addAmount; // dishObject.totalPrice = amount; // dishObject.totalMemberPrice = memberAmount; // dishObject.totalMakeAmount = makeAmount; // dishObject.amount = utils.numAdd(utils.numAdd(dishObject.totalPrice, dishObject.totalMakeAmount), addAmount); // var specs = new Object(); // var specObject = new Object(); // specObject.categoryId = categoryId; // specObject.productId = productId; // specObject.productNo = productNo; // specObject.unitId = unitId; // specObject.goodsId = goodsId; // specObject.name = goodsName; // specObject.specId = specId; // specObject.specName = specName; // // specObject.makeCount = makeCount; // specObject.num = num; // specObject.price = Number(price).toFixed(2); // specObject.memberPrice = Number(memberPrice).toFixed(2); // specObject.makeId = makeId; // specObject.makeName = makeName; // specObject.makePrice = makePrice; // specObject.makeAmount = makeAmount; // specObject.suitDetails = suitDetails; // specObject.isSuit = isSuit; // specObject.uniqueId = uniqueId; // specObject.addAmount = addAmount; // specObject.totalPrice = amount; // specObject.totalMemberPrice = memberAmount; // specObject.totalMakeAmount = makeAmount; // /* 消费金额 = 商品消费金额 + 商品做法金额 + 套餐明细加价金额 */ // specObject.amount = utils.numAdd(utils.numAdd(specObject.totalPrice, specObject.totalMakeAmount), addAmount); // specObject.memberAmount = utils.numAdd(utils.numAdd(specObject.totalMemberPrice, specObject.totalMakeAmount), addAmount); // specs[uniqueId] = specObject; // dishObject.specs = specs; // } // /* 商品数量变动结束 重新计算dishObject金额,数量 */ // dishObject.num = 0; // dishObject.totalPrice = 0; // dishObject.totalMemberPrice = 0; // dishObject.totalMakeAmount = 0; // dishObject.amount = 0; // dishObject.memberAmount = 0; // var dishAddAmount = 0; // var specs = dishObject.specs; // for (var key in specs) { // var spec = specs[key]; // if (null != spec && undefined != spec) { // var suitAddAmount = 0.00; /* 套餐明细加价汇总 */ // var suitMakeAmount = 0.00; /* 套餐明细做法汇总 */ // var totalMakeAmount = 0.00; /* spec做法最终 */ // console.log("is suit:" + spec.isSuit); // if (spec.isSuit) { // var suits = spec.suitDetails; /* 套餐明细 */ // if (undefined != suits && suits.length > 0) { // suits.forEach(function(suitItem, inx) { // suitAddAmount = utils.numAdd(suitAddAmount, suitItem.addPrice); // suitMakeAmount = utils.numAdd(suitMakeAmount, utils.numMulti(suitItem.quantity, suitItem.makeAmount)); // }); // } // totalMakeAmount = utils.numMulti(spec.num, suitMakeAmount); // } else { // totalMakeAmount = utils.numMulti(spec.num, spec.makeAmount); // } // // // var amount = utils.numMulti(spec.num, spec.price); // var memberAmount = utils.numMulti(spec.num, spec.memberPrice); // // 商品加价金额 // spec.addAmount = utils.numMulti(spec.num, suitAddAmount); // dishAddAmount = utils.numAdd(dishAddAmount, spec.addAmount); // // spec.makeAmount = makeAmount; // spec.totalMakeAmount = totalMakeAmount; // spec.totalPrice = amount; // spec.totalMemberPrice = memberAmount; // //商品总金额 = 商品金额 + 商品加价总额 + 商品做法总额 // spec.amount = utils.numAdd(utils.numAdd(amount, spec.addAmount), totalMakeAmount); // spec.memberAmount = utils.numAdd(utils.numAdd(memberAmount, spec.addAmount), totalMakeAmount); // specs[key] = spec; // dishObject.boxPrice = boxPrice; // dishObject.num += spec.num; // dishObject.totalPrice = utils.numAdd(dishObject.totalPrice, spec.totalPrice); // dishObject.totalMemberPrice = utils.numAdd(dishObject.totalMemberPrice, spec.totalMemberPrice); // dishObject.totalMakeAmount = utils.numAdd(dishObject.totalMakeAmount, spec.totalMakeAmount); // dishObject.amount = utils.numAdd(dishObject.amount, spec.amount); // dishObject.memberAmount = utils.numAdd(dishObject.memberAmount, spec.memberAmount); // } // } // // // dishObject.specs = specs; // dishObject.addAmount = dishAddAmount; // /* dishObject数量非法 设置为undefined */ // if (dishObject.num <= 0) { // dishObject = undefined; // } // dishes[productId] = dishObject; // storeCartMap.dishes = dishes; // /*dishObj 变动结束 重新计算storeCartMap金额数量*/ // storeCartMap.totalNum = 0; // storeCartMap.totalCash = 0; // storeCartMap.totalMemberCash = 0; // storeCartMap.totalMakeAmount = 0; // for (var key in dishes) { // var dish = dishes[key]; // if (null != dish && undefined != dish) { // var cash = utils.numAdd(utils.numAdd(dish.totalPrice, dish.totalMakeAmount), dish.addAmount); // var memberCash = utils.numAdd(utils.numAdd(dish.totalMemberPrice, dish.totalMakeAmount), dish.addAmount); // storeCartMap.totalNum += dish.num; // storeCartMap.totalCash = utils.numAdd(storeCartMap.totalCash, cash); // storeCartMap.totalMemberCash = utils.numAdd(storeCartMap.totalMemberCash, memberCash); // storeCartMap.totalMakeAmount = utils.numAdd(storeCartMap.totalMakeAmount, dish.totalMakeAmount); // } // } // if (storeCartMap.totalNum <= 0) { // storeCartMap = undefined; // } // cartMap[storeId] = storeCartMap; // this.setStoreCartMap({ // storeId: storeId, // storeCartMap: storeCartMap // }); // } else { // var amount = utils.numMulti(num, price); // var memberAmount = utils.numMulti(num, memberPrice); // cartMap = new Object(); // storeCartMap = new Object(); // storeCartMap.totalNum = num; // storeCartMap.totalMakeAmount = makeAmount; // storeCartMap.totalCash = utils.numAdd(utils.numAdd(amount, makeAmount), addAmount); // storeCartMap.totalMemberCash = utils.numAdd(utils.numAdd(memberAmount, makeAmount), addAmount); // /*-------菜品-------*/ // var dishes = new Object(); // var dishObject = new Object(); // dishObject.boxPrice = boxPrice; // dishObject.name = goodsName; // dishObject.num = num; // dishObject.memberPrice = utils.Number(memberPrice).toFixed(2); // dishObject.isSuit = isSuit; // dishObject.addAmount = addAmount; // dishObject.totalPrice = amount; // dishObject.totalMemberPrice = memberAmount; // dishObject.totalMakeAmount = makeAmount; // dishObject.amount = utils.numAdd(utils.numAdd(dishObject.totalPrice, dishObject.totalMakeAmount), addAmount); // dishObject.memberAmount = utils.numAdd(utils.numAdd(dishObject.totalMemberPrice, dishObject.totalMakeAmount), addAmount); // /*-------菜品规格-------*/ // var specs = new Object(); // var specObject = new Object(); // specObject.categoryId = categoryId; // specObject.productId = productId; // specObject.productNo = productNo; // specObject.unitId = unitId; // specObject.goodsId = goodsId; // specObject.name = goodsName; // specObject.specId = specId; // specObject.specName = specName; // // specObject.makeCount = makeCount; // specObject.num = num; // specObject.price = Number(price).toFixed(2); // specObject.memberPrice = Number(memberPrice).toFixed(2); // //做法信息 // specObject.makeId = makeId; // specObject.makeName = makeName; // specObject.makePrice = makePrice; // specObject.makeAmount = makeAmount; // specObject.suitDetails = suitDetails; // specObject.isSuit = isSuit; // specObject.uniqueId = uniqueId; // specObject.addAmount = addAmount; // specObject.totalPrice = amount; // specObject.totalMemberPrice = memberAmount; // specObject.totalMakeAmount = makeAmount; // specObject.amount = utils.numAdd(utils.numAdd(specObject.totalPrice, specObject.totalMakeAmount), addAmount); // specObject.memberAmount = utils.numAdd(utils.numAdd(specObject.totalMemberPrice, specObject.totalMakeAmount), addAmount); // specs[uniqueId] = specObject; // dishObject.specs = specs; // dishes[productId] = dishObject; // storeCartMap.dishes = dishes; // cartMap[storeId] = storeCartMap; // this.setstoreCartMap({ // storeId: storeId, // storeCartMap: storeCartMap // }); // } // return cartMap; // }; // var editCartMap = function() { // }; // var addCardMap = function() { // }; // /* 清除指定门店购物车 */ // var clearStoreCartMap = function(option) { // var storeId = this.getStore().id; // var cartMap = this.getCartMap(); // if (cartMap != null) { // cartMap[storeId] = undefined; // } // return this.setCartMap(cartMap); // }; // /* 从购物车获取已购买商品map */ // var getSpecMapByCart = function() { // var specMap = {}; // var cartStoreMap = this.getStoreCartMap(this.getStore().id); // if (null != cartStoreMap && undefined != cartStoreMap) { // var dishes = cartStoreMap.dishes; // if (utils.isNotBlank(dishes)) { // for (var productId in dishes) { // var dishObj = dishes[productId]; // var goodsName = dishObj.name; // var specName = dishObj.specName; // var specs = dishObj.specs; // if (utils.isNotBlank(specs)) { // for (var uniqueId in specs) { // specs[uniqueId].name = goodsName; // // 为了保证唯一 key=规格商品Id + 做法字符串 // specMap[uniqueId] = specs[uniqueId]; // } // } // } // } // } // return specMap; // }; // /* 从购物车获取已购买商品map */ // var getDishMapByCart = function() { // var dishMap = {}; // var cartStoreMap = this.getStoreCartMap(this.getStore().id); // if (null != cartStoreMap && undefined != cartStoreMap) { // var dishes = cartStoreMap.dishes; // if (utils.isNotBlank(dishes)) { // for (var key in dishes) { // var dishObj = dishes[key]; // var goodsName = dishObj.name; // var specName = dishObj.specName; // var num = 0; // // 计算商品数量和金额合计 // var specs = dishObj.specs; // if (utils.isNotBlank(specs)) { // for (var jkey in specs) { // var specObj = specs[jkey]; // num = utils.numAdd(num, specObj.num); // } // } // dishObj.num = num; // dishMap[key] = dishObj; // } // } // } // return dishMap; // }; // /* 从购物车获取已购买商品list */ // var getDishListByCart = function() { // var dishList = []; // var cartStoreMap = this.getStoreCartMap(this.getStore().id); // if (null != cartStoreMap && undefined != cartStoreMap) { // var dishes = cartStoreMap.dishes; // if (null != dishes && undefined != dishes) { // for (var key in dishes) { // var dishObj = dishes[key]; // var goodsName = dishObj.name; // var specName = dishObj.specName; // var specs = dishObj.specs; // if (null != specs && undefined != specs) { // for (var jkey in specs) { // if (undefined != specName && specName != '') { // specs[jkey].name = "(" + specName + ") " + goodsName; // } else { // specs[jkey].name = goodsName; // } // dishList.push(specs[jkey]); // } // } // } // } // } // return dishList; // }; // /* 获取门店菜单点菜统计 */ // var getCartTotal = function() { // var storeId = getStore().id; // var storeCartMap = this.getStoreCartMap(storeId); // // console.log(storeCartMap); // var data = {}; // var totalNum = 0; // var totalCash = 0.00; // var totalMemberCash = 0.00; // if (utils.isNotBlank(storeCartMap)) { // totalNum = storeCartMap.totalNum; // totalCash = storeCartMap.totalCash; // totalMemberCash = storeCartMap.totalMemberCash; // } // data.totalNum = totalNum; // data.totalCash = Number(totalCash).toFixed(digits); // data.totalMemberCash = Number(totalMemberCash).toFixed(digits); // return data; // }; // /* 清除购物车 */ // var clearStoreCartMap = function(option) { // app.takeMethod = ""; // app.table = {}; // var storeId = getStore().id; // var cartMap = this.getCartMap(); // if (cartMap != null) { // cartMap[storeId] = undefined; // } // return this.setCartMap(cartMap); // }; // /** // * 营业模式 // */ // var getStoreBusMode = function(index) { // var map; // if (index == 0) { // map = { // name: "堂食", // sign: "0", // icon: "icon-tangshi-1" // } // } // if (index == 1) { // map = { // name: "外带", // sign: "1", // icon: "icon-waidai" // } // } // if (index == 2) { // map = { // name: "外卖", // sign: "2", // icon: "icon-yunshuzhongwuliu-xianxing" // } // } // return map; // }; // /**输出函数 */ // module.exports = { // setStore: setStore, // getStore: getStore, // setCartMap: setCartMap, // getCartMap: getCartMap, // setStoreCartMap: setStoreCartMap, // getStoreCartMap: getStoreCartMap, // putCartMap: putCartMap, // getSpecMapByCart: getSpecMapByCart, // getDishMapByCart: getDishMapByCart, // getCartTotal: getCartTotal, // getDishListByCart: getDishListByCart, // clearStoreCartMap: clearStoreCartMap, // getStoreBusMode: getStoreBusMode, // }