You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

556 lines
20 KiB
JavaScript

9 months ago
// /***
// * 购物车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,
// }