|
@@ -39,8 +39,11 @@ function calculateGoodsPrice(r){
|
|
giftBarcode:rMap.mysy.giftBarcode,
|
|
giftBarcode:rMap.mysy.giftBarcode,
|
|
sendNum:rMap.mysy.sendNum
|
|
sendNum:rMap.mysy.sendNum
|
|
};
|
|
};
|
|
- vm.newMysy.set(rMap.mysy.barcode , mysy);
|
|
|
|
- vm.mysy.push(rMap.mysy[barCode]);
|
|
|
|
|
|
+ if(rMap.mysy.brand){
|
|
|
|
+ vm.brandGetOneFree.set(rMap.mysy.productBrand,mysy);
|
|
|
|
+ }else{
|
|
|
|
+ vm.barcodeGetOneFree.set(rMap.mysy.barcode , mysy);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
if(rMap.mz){
|
|
if(rMap.mz){
|
|
@@ -52,36 +55,36 @@ function calculateGoodsPrice(r){
|
|
vm.mz.set(brand,rMap.mz[brand]);
|
|
vm.mz.set(brand,rMap.mz[brand]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- if(rMap.zhjsp){
|
|
|
|
- // 遍历该商品所有可能的组合价商品类型
|
|
|
|
- for(var data in rMap.zhjsp){
|
|
|
|
- if(!vm.zhjsp.get(data)){
|
|
|
|
- // 分割组合价商品的条码,并以 条码:0 放入map中
|
|
|
|
- var barCodeArray = data.toString().split(":");
|
|
|
|
- var dataMap = new Map();
|
|
|
|
- console.log(rMap.zhjsp[data]);
|
|
|
|
- // dataMap.set();
|
|
|
|
- for(var j = 0 ; j < barCodeArray.length ; j ++){
|
|
|
|
- dataMap.set(barCodeArray[j],0);
|
|
|
|
- }
|
|
|
|
- vm.combinationPrice.set(data,rMap.zhjsp[data][0].combinedPrice)
|
|
|
|
-
|
|
|
|
- vm.zhjsp.set(data,dataMap);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
- calculateGoodsByMj(r.goodsDetails);
|
|
|
|
- calculateGoodsByMysy(r.goodsDetails);
|
|
|
|
- calculateGoodsByMz(r.goodsDetails);
|
|
|
|
- calculateGoodsByZhjsp(r);
|
|
|
|
|
|
+ // if(rMap.zhjsp){
|
|
|
|
+ // // 遍历该商品所有可能的组合价商品类型
|
|
|
|
+ // for(var data in rMap.zhjsp){
|
|
|
|
+ // if(!vm.zhjsp.get(data)){
|
|
|
|
+ // // 分割组合价商品的条码,并以 条码:0 放入map中
|
|
|
|
+ // var barCodeArray = data.toString().split(":");
|
|
|
|
+ // var dataMap = new Map();
|
|
|
|
+ // console.log(rMap.zhjsp[data]);
|
|
|
|
+ // // dataMap.set();
|
|
|
|
+ // for(var j = 0 ; j < barCodeArray.length ; j ++){
|
|
|
|
+ // dataMap.set(barCodeArray[j],0);
|
|
|
|
+ // }
|
|
|
|
+ // vm.combinationPrice.set(data,rMap.zhjsp[data][0].combinedPrice)
|
|
|
|
+ //
|
|
|
|
+ // vm.zhjsp.set(data,dataMap);
|
|
|
|
+ // }
|
|
|
|
+ // }
|
|
|
|
+ //
|
|
|
|
+ // }
|
|
|
|
+ // calculateGoodsByMj(r.goodsDetails,"add");
|
|
|
|
+ calculateGoodsByMysy(r.goodsDetails,"add");
|
|
|
|
+ calculateGoodsByMz(r.goodsDetails,"add");
|
|
|
|
+ // calculateGoodsByZhjsp(r);
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
// ==================== 满减==========================
|
|
// ==================== 满减==========================
|
|
|
|
|
|
// 满减
|
|
// 满减
|
|
-function calculateGoodsByMj(goodsDetails){
|
|
|
|
|
|
+function calculateGoodsByMj(goodsDetails,type){
|
|
if(vm.mj.get(goodsDetails.prodBarcode)){
|
|
if(vm.mj.get(goodsDetails.prodBarcode)){
|
|
fullReduction(goodsDetails,goodsDetails.prodBarcode);
|
|
fullReduction(goodsDetails,goodsDetails.prodBarcode);
|
|
}else if(vm.mj.get(goodsDetails.brand)){
|
|
}else if(vm.mj.get(goodsDetails.brand)){
|
|
@@ -112,16 +115,26 @@ function fullReduction(goodsDetails,key){
|
|
// ============================= 满赠 ==============================
|
|
// ============================= 满赠 ==============================
|
|
|
|
|
|
// 满赠
|
|
// 满赠
|
|
-function calculateGoodsByMz(goodsDetails){
|
|
|
|
-
|
|
|
|
- // 1.满赠的商品是不是自己,遍历满赠商品数组
|
|
|
|
- isSend(vm.fullGiftCode,goodsDetails,"满赠");
|
|
|
|
-
|
|
|
|
- if(vm.mz.get(goodsDetails.prodBarcode)){
|
|
|
|
- fullGift(goodsDetails,goodsDetails.prodBarcode);
|
|
|
|
- }else if(vm.mz.get(goodsDetails.brand)){
|
|
|
|
- fullGift(goodsDetails,goodsDetails.brand);
|
|
|
|
|
|
+function calculateGoodsByMz(goodsDetails,type){
|
|
|
|
+ // 判断当前支付金额是否满足满赠金额,若满足,直接修改金额为1
|
|
|
|
+ var mzGoods = vm.mz.get(goodsDetails.prodBarcode);
|
|
|
|
+ if(mzGoods){
|
|
|
|
+ var mzPrice = mzGoods.qualifiedAmount;
|
|
|
|
+ if(mzPrice < vm.actualPrice && !mzGoods.useMz){
|
|
|
|
+ mzGoods.useMz = true;
|
|
|
|
+ goodsDetails.actualPaymentAmount = 1;
|
|
|
|
+ goodsDetails.discountedPrice = goodsDetails.retailPrice - 1;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ // // 1.满赠的商品是不是自己,遍历满赠商品数组
|
|
|
|
+ // isSend(vm.fullGiftCode,goodsDetails,"满赠");
|
|
|
|
+ //
|
|
|
|
+ // if(vm.mz.get(goodsDetails.prodBarcode)){
|
|
|
|
+ // fullGift(goodsDetails,goodsDetails.prodBarcode);
|
|
|
|
+ // }else if(vm.mz.get(goodsDetails.brand)){
|
|
|
|
+ // fullGift(goodsDetails,goodsDetails.brand);
|
|
|
|
+ // }
|
|
}
|
|
}
|
|
|
|
|
|
function fullGift(goodsDetails,key){
|
|
function fullGift(goodsDetails,key){
|
|
@@ -151,44 +164,126 @@ function fullGift(goodsDetails,key){
|
|
|
|
|
|
|
|
|
|
// 买一送一
|
|
// 买一送一
|
|
-function calculateGoodsByMysy(goodsDetails){
|
|
|
|
- console.log(vm.newMysy);
|
|
|
|
- var mysy = vm.newMysy.get(goodsDetails.prodBarcode);
|
|
|
|
|
|
+function calculateGoodsByMysy(goodsDetails,type){
|
|
|
|
+ var mysy = vm.barcodeGetOneFree.get(goodsDetails.prodBarcode);
|
|
|
|
+ var brandMysy = vm.brandGetOneFree.get(goodsDetails.brand);
|
|
if(mysy){
|
|
if(mysy){
|
|
var buyNum = mysy.buyNum;
|
|
var buyNum = mysy.buyNum;
|
|
- // 证明是买一送一,并且达到买一送一的条件
|
|
|
|
- if(buyNum == 1 && vm.boughtNum.get(goodsDetails.prodBarcode)){
|
|
|
|
- // 设置赠品的单价
|
|
|
|
- goodsDetails.discountedPrice = goodsDetails.retailPrice;
|
|
|
|
- goodsDetails.actualPaymentAmount = 0;
|
|
|
|
- goodsDetails.activity = "买1送1";
|
|
|
|
|
|
+ if(type == "add"){
|
|
|
|
+
|
|
|
|
+ // 证明是买一送一,并且达到买一送一的条件
|
|
|
|
+ if(buyNum == 1 && vm.boughtNum.get(goodsDetails.prodBarcode)){
|
|
|
|
+ // 设置赠品的单价
|
|
|
|
+ goodsDetails.discountedPrice = goodsDetails.retailPrice;
|
|
|
|
+ goodsDetails.actualPaymentAmount = 0;
|
|
|
|
+ // goodsDetails.activity = "买1送1";
|
|
|
|
+
|
|
|
|
+ // 清除该商品买一送一条件
|
|
|
|
+ vm.boughtNum.delete(goodsDetails.prodBarcode);
|
|
|
|
+ return ;
|
|
|
|
+ }
|
|
|
|
+ // 如果不是买一送一,而是买n送n,先获取购物车已有该类型商品数量
|
|
|
|
+ var boughtNum = vm.boughtNum.get(goodsDetails.prodBarcode);
|
|
|
|
+ // 如果没有,置为1
|
|
|
|
+ if(!boughtNum){
|
|
|
|
+ vm.boughtNum.set(goodsDetails.prodBarcode , 1);
|
|
|
|
+ return ;
|
|
|
|
+ }
|
|
|
|
+ // 走到这里,证明购买过该类型商品,且数量不是买一送一的
|
|
|
|
+ // 如果相等,证明达到送的条件
|
|
|
|
+ if(buyNum === boughtNum){
|
|
|
|
+ goodsDetails.discountedPrice = goodsDetails.retailPrice;
|
|
|
|
+ goodsDetails.actualPaymentAmount = 0;
|
|
|
|
+ // goodsDetails.activity = "买"+buyNum+"送1";
|
|
|
|
+ // 清除该商品买一送一条件
|
|
|
|
+ vm.boughtNum.delete(goodsDetails.prodBarcode);
|
|
|
|
+ console.log(vm.boughtNum);
|
|
|
|
+ }else{
|
|
|
|
+ // 如果不相等,已经购买数量+1
|
|
|
|
+ vm.boughtNum.set(goodsDetails.prodBarcode , boughtNum+1);
|
|
|
|
+ }
|
|
|
|
+ }else if (type == "minus"){
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ // 获取该产品要买n送1 的n
|
|
|
|
+ // 获取已经购买的数量
|
|
|
|
+ var boughtNum = goodsDetails.sellVolume;
|
|
|
|
+ // 减一后,不满足买一送一条件,重新计算金额
|
|
|
|
+ // 如果不等于0,要减去价格
|
|
|
|
+
|
|
|
|
+ var remainder = 0;
|
|
|
|
+ if(boughtNum > buyNum+1){
|
|
|
|
+ remainder = buyNum - (boughtNum % (buyNum+1)) ;
|
|
|
|
+ }else{
|
|
|
|
+ remainder = buyNum - ((buyNum+1) %boughtNum ) ;
|
|
|
|
+ }
|
|
|
|
+ if(boughtNum % (buyNum+1) != 0){
|
|
|
|
+ // console.log("我要减去价格,也要减去数量,减去数量=" + goodsDetails.sellVolume);
|
|
|
|
+ goodsDetails.actualPaymentAmount = goodsDetails.retailPrice;
|
|
|
|
+ goodsDetails.discountedPrice = 0;
|
|
|
|
+ // 如果等于0,只用减去数量跟优惠价,并恢复活动
|
|
|
|
+ }else{
|
|
|
|
+ // console.log("我不用减去价格,只要减去数量");
|
|
|
|
+ goodsDetails.discountedPrice = goodsDetails.retailPrice;
|
|
|
|
+ goodsDetails.actualPaymentAmount = 0;
|
|
|
|
+ }
|
|
|
|
+ goodsDetails.sellVolume = 1;
|
|
|
|
+ vm.boughtNum.set(goodsDetails.prodBarcode,remainder);
|
|
|
|
|
|
- // 清除该商品买一送一条件
|
|
|
|
- vm.boughtNum.delete(goodsDetails.proBarcode);
|
|
|
|
- }
|
|
|
|
- // 如果不是买一送一,而是买n送n,先获取购物车已有该类型商品数量
|
|
|
|
- var boughtNum = vm.boughtNum.get(goodsDetails.prodBarcode);
|
|
|
|
- // 如果没有,置为1
|
|
|
|
- if(!boughtNum){
|
|
|
|
- vm.boughtNum.set(goodsDetails.prodBarcode , 1);
|
|
|
|
- return ;
|
|
|
|
- }
|
|
|
|
- // 走到这里,证明购买过该类型商品,且数量不是买一送一的
|
|
|
|
- // 如果相等,证明达到送的条件
|
|
|
|
- if(buyNum === boughtNum){
|
|
|
|
- goodsDetails.discountedPrice = goodsDetails.retailPrice;
|
|
|
|
- goodsDetails.actualPaymentAmount = 0;
|
|
|
|
- goodsDetails.activity = "买"+buyNum+"送1";
|
|
|
|
- // 清除该商品买一送一条件
|
|
|
|
- vm.boughtNum.delete(goodsDetails.proBarcode);
|
|
|
|
- }else{
|
|
|
|
- // 如果不相等,已经购买数量+1
|
|
|
|
- vm.boughtNum.set(goodsDetails.prodBarcode , boughtNum+1);
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if(brandMysy){
|
|
|
|
+ var buyNum = brandMysy.buyNum;
|
|
|
|
+ if(type == "add"){
|
|
|
|
+
|
|
|
|
+ // 如果不是买一送一,而是买n送n,先获取购物车已有该类型商品数量
|
|
|
|
+ var boughtNum = vm.boughtNum.get(goodsDetails.brand);
|
|
|
|
+ // 如果没有,置为1
|
|
|
|
+ if(!boughtNum){
|
|
|
|
+ vm.boughtNum.set(goodsDetails.brand , 1);
|
|
|
|
+ return ;
|
|
|
|
+ }
|
|
|
|
+ // 走到这里,证明购买过该类型商品,且数量不是买一送一的
|
|
|
|
+ // 如果相等,证明达到送的条件
|
|
|
|
+ if(buyNum === boughtNum + 1){
|
|
|
|
+ var mysyNum = vm.freeBardcode.get(brandMysy.giftBarcode);
|
|
|
|
+ if(!mysyNum){
|
|
|
|
+ mysyNum = 0;
|
|
|
|
+ }
|
|
|
|
+ vm.freeBardcode.set(brandMysy.giftBarcode,mysyNum + 1);
|
|
|
|
+ vm.boughtNum.set(goodsDetails.brand,0);
|
|
|
|
+ }else{
|
|
|
|
+ // 如果不相等,已经购买数量+1
|
|
|
|
+ vm.boughtNum.set(goodsDetails.brand , boughtNum+1);
|
|
|
|
+ }
|
|
|
|
+ }else if (type == "minus"){
|
|
|
|
|
|
|
|
+ var mysyNum = vm.boughtNum.get(goodsDetails.brand);
|
|
|
|
+ if(mysyNum == 0){
|
|
|
|
+ if(vm.freeBardcode.get(brandMysy.giftBarcode) == 0){
|
|
|
|
+ vm.freeBardcode.set(brandMysy.giftBarcode,-1);
|
|
|
|
+ }else{
|
|
|
|
+ vm.freeBardcode.set(brandMysy.giftBarcode,vm.freeBardcode.get(brandMysy.giftBarcode) - 1);
|
|
|
|
+ }
|
|
|
|
+ vm.boughtNum.set(goodsDetails.brand,buyNum - 1);
|
|
|
|
+ }else{
|
|
|
|
+ vm.boughtNum.set(goodsDetails.brand,mysyNum - 1);
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ // var freeNum = vm.freeBardcode.get(brandMysy.giftBarcode);
|
|
|
|
+ // if(freeNum > 0){
|
|
|
|
+ // vm.freeBardcode.set(brandMysy.giftBarcode,freeNum - 1);
|
|
|
|
+ //
|
|
|
|
+ // }
|
|
|
|
+
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
// 判断当前商品是否为赠品
|
|
// 判断当前商品是否为赠品
|
|
// isSend(vm.mysy,goodsDetails,"买一送一");
|
|
// isSend(vm.mysy,goodsDetails,"买一送一");
|
|
// 判断购物车里面是否有商品为赠品
|
|
// 判断购物车里面是否有商品为赠品
|
|
@@ -204,9 +299,8 @@ function isSend(activity,goodsDetails,activityName){
|
|
var index = activity.indexOf(goodsDetails.prodBarcode);
|
|
var index = activity.indexOf(goodsDetails.prodBarcode);
|
|
activity.splice(index,1);
|
|
activity.splice(index,1);
|
|
// 设置赠品的单价
|
|
// 设置赠品的单价
|
|
- goodsDetails.discountedPrice = goodsDetails.retailPrice;
|
|
|
|
- goodsDetails.actualPaymentAmount = 0;
|
|
|
|
- goodsDetails.activity = activityName;
|
|
|
|
|
|
+ goodsDetails.discountedPrice = goodsDetails.retailPrice - 1;
|
|
|
|
+ goodsDetails.actualPaymentAmount = 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -376,7 +470,10 @@ let vm = new Vue({
|
|
},
|
|
},
|
|
// 买一送一
|
|
// 买一送一
|
|
mysy: [],
|
|
mysy: [],
|
|
- newMysy: new Map(),
|
|
|
|
|
|
+ freeBardcode : new Map(),
|
|
|
|
+ modifyShopcart:false, // 是否需要修改购物车中商品信息
|
|
|
|
+ brandGetOneFree : new Map(),
|
|
|
|
+ barcodeGetOneFree: new Map(),
|
|
boughtNum: new Map(),
|
|
boughtNum: new Map(),
|
|
// 组合价
|
|
// 组合价
|
|
zhjsp: new Map(),
|
|
zhjsp: new Map(),
|
|
@@ -389,6 +486,7 @@ let vm = new Vue({
|
|
reduceMoney:0, // 满减金额
|
|
reduceMoney:0, // 满减金额
|
|
showReduceMoney:0, // 用于展示的满减金额
|
|
showReduceMoney:0, // 用于展示的满减金额
|
|
// 满赠
|
|
// 满赠
|
|
|
|
+ useMz:false,
|
|
mz: new Map(),
|
|
mz: new Map(),
|
|
accumulatedAmountForFullGift: new Map(), // 累积金额(满赠使用的)
|
|
accumulatedAmountForFullGift: new Map(), // 累积金额(满赠使用的)
|
|
fullGiftCode:[],// 满赠商品条码
|
|
fullGiftCode:[],// 满赠商品条码
|
|
@@ -399,6 +497,8 @@ let vm = new Vue({
|
|
// 挂起订单的key 在1~3循环
|
|
// 挂起订单的key 在1~3循环
|
|
pendingIndex:1,
|
|
pendingIndex:1,
|
|
pendingOrderKeys:[],
|
|
pendingOrderKeys:[],
|
|
|
|
+ // 存储商品信息
|
|
|
|
+ goodsMap:new Map(),
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
query: function () {
|
|
query: function () {
|
|
@@ -406,43 +506,14 @@ let vm = new Vue({
|
|
var thisGoods = {};
|
|
var thisGoods = {};
|
|
$.get("../goods/details/"+vm.prodBarcode+"/"+vm.storeId, function (r) {
|
|
$.get("../goods/details/"+vm.prodBarcode+"/"+vm.storeId, function (r) {
|
|
if (r.code == 0) {
|
|
if (r.code == 0) {
|
|
- vm.prodBarcode = '';
|
|
|
|
- // r.goodsDetails.discountedPrice = 0;
|
|
|
|
- // r.goodsDetails.actualPaymentAmount = r.goodsDetails.retailPrice;
|
|
|
|
|
|
|
|
- calculateGoodsPrice(r);
|
|
|
|
- vm.goodsDetail = true;
|
|
|
|
- // thisGoods.name = r.goodsDetails.name;// thisGoods.primaryPicUrl = r.goodsDetails.primaryPicUrl; // thisGoods.retailPrice = r.goodsDetails.retailPrice;// thisGoods.specification = r.goodsDetails.specification; // thisGoods.prodBarcode = r.goodsDetails.prodBarcode;// thisGoods.stockNum = r.goodsDetails.stockNum;// thisGoods.goodsDesc = r.goodsDetails.goodsDesc;// thisGoods.sellVolume = 1;// thisGoods.id = vm.index++;
|
|
|
|
r.goodsDetails.sellVolume = 1;
|
|
r.goodsDetails.sellVolume = 1;
|
|
- r.goodsDetails.id = vm.index++;
|
|
|
|
- if(!vm.goodsList[vm.index]){
|
|
|
|
- vm.index = vm.max;
|
|
|
|
- }
|
|
|
|
- vm.max++;
|
|
|
|
- r.goodsDetails.goodsDesc = "";
|
|
|
|
-
|
|
|
|
- r.goodsDetails.discountedPrice = Math.round(r.goodsDetails.discountedPrice * 100) / 100;
|
|
|
|
- r.goodsDetails.actualPaymentAmount = Math.round(r.goodsDetails.actualPaymentAmount * 100) / 100;
|
|
|
|
- // r.goodsDetails.primaryPicUrl = "";
|
|
|
|
- var data = Object.assign({}, JSON.parse(JSON.stringify(r.goodsDetails)));
|
|
|
|
- vm.goodsList.push(data);
|
|
|
|
- vm.goods = r.goodsDetails;
|
|
|
|
-
|
|
|
|
- vm.totalPrice = (vm.totalPrice + r.goodsDetails.retailPrice);
|
|
|
|
- if(vm.reduceMoney > 0){
|
|
|
|
- vm.discountedPrice = vm.discountedPrice + r.goodsDetails.discountedPrice + vm.reduceMoney;
|
|
|
|
- vm.actualPrice = vm.actualPrice + r.goodsDetails.actualPaymentAmount - vm.reduceMoney;
|
|
|
|
- vm.showReduceMoney = vm.showReduceMoney + vm.reduceMoney;
|
|
|
|
- vm.reduceMoney = 0;
|
|
|
|
- }else{
|
|
|
|
- vm.discountedPrice = vm.discountedPrice + r.goodsDetails.discountedPrice ;
|
|
|
|
- vm.actualPrice = vm.actualPrice + r.goodsDetails.actualPaymentAmount ;
|
|
|
|
- }
|
|
|
|
- // 处理精度
|
|
|
|
- vm.totalPrice = Math.round(vm.totalPrice * 100) / 100;
|
|
|
|
- vm.discountedPrice = Math.round(vm.discountedPrice * 100) / 100;
|
|
|
|
- vm.actualPrice = Math.round(vm.actualPrice * 100) / 100;
|
|
|
|
- vm.showReduceMoney = Math.round(vm.showReduceMoney * 100) / 100;
|
|
|
|
|
|
+ vm.goodsMap.set(r.goodsDetails.goodsSn,JSON.parse(JSON.stringify(r.goodsDetails)));
|
|
|
|
+ vm.prodBarcode = '';
|
|
|
|
+ calculateGoodsPrice(r);
|
|
|
|
+ handle(r.goodsDetails,"add");
|
|
|
|
+
|
|
|
|
+
|
|
|
|
|
|
} else {
|
|
} else {
|
|
alert(r.msg);
|
|
alert(r.msg);
|
|
@@ -454,9 +525,11 @@ let vm = new Vue({
|
|
// 增加数量
|
|
// 增加数量
|
|
for(var i = 0 ; i < this.goodsList.length ; i++){
|
|
for(var i = 0 ; i < this.goodsList.length ; i++){
|
|
if(this.goodsList[i].id == value){
|
|
if(this.goodsList[i].id == value){
|
|
- var goods = this.goodsList[i];
|
|
|
|
- goods.sellVolume = goods.sellVolume + 1;
|
|
|
|
- vm.totalPrice = vm.totalPrice + goods.retailPrice;
|
|
|
|
|
|
+ var goodsDetails = JSON.parse(JSON.stringify(vm.goodsMap.get(this.goodsList[i].goodsSn)));
|
|
|
|
+ calculateGoodsByMj(goodsDetails,"add");
|
|
|
|
+ calculateGoodsByMysy(goodsDetails,"add");
|
|
|
|
+ // calculateGoodsByMz(goodsDetails,"add");
|
|
|
|
+ handle(goodsDetails,"add");
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -465,13 +538,37 @@ let vm = new Vue({
|
|
// 减少数量
|
|
// 减少数量
|
|
for(var i = 0 ; i < this.goodsList.length ; i++){
|
|
for(var i = 0 ; i < this.goodsList.length ; i++){
|
|
if(this.goodsList[i].id == value){
|
|
if(this.goodsList[i].id == value){
|
|
- var goods = this.goodsList[i];
|
|
|
|
- if(goods.sellVolume === 1){
|
|
|
|
|
|
+ // 获取当前购物车的数量
|
|
|
|
+ var g = JSON.parse(JSON.stringify(this.goodsList[i]));
|
|
|
|
+
|
|
|
|
+ console.log(g);
|
|
|
|
+ var goodsDetails = JSON.parse(JSON.stringify(vm.goodsMap.get(this.goodsList[i].goodsSn)));
|
|
|
|
+ if(g.sellVolume === 1){
|
|
alert("数量至少为1个");
|
|
alert("数量至少为1个");
|
|
return ;
|
|
return ;
|
|
}
|
|
}
|
|
- goods.sellVolume = goods.sellVolume - 1;
|
|
|
|
- vm.totalPrice = vm.totalPrice - goods.retailPrice;
|
|
|
|
|
|
+ // 如果不为空,证明减的是买A送B中的B,这时候要还原赠送资格跟B的扣减
|
|
|
|
+ var freeMap = vm.freeBardcode.get(goodsDetails.prodBarcode);
|
|
|
|
+ if((freeMap || freeMap == 0) && g.actualPaymentAmount == 0){
|
|
|
|
+ vm.freeBardcode.set(goodsDetails.prodBarcode,freeMap + 1);
|
|
|
|
+ goodsDetails.sellVolume = -1;
|
|
|
|
+ goodsDetails.actualPaymentAmount = 0;
|
|
|
|
+ goodsDetails.discountedPrice = -goodsDetails.retailPrice;
|
|
|
|
+ goodsDetails.goodstaxes = - goodsDetails.goodstaxes;
|
|
|
|
+ goodsDetails.retailPrice = - goodsDetails.retailPrice;
|
|
|
|
+ }else{
|
|
|
|
+ goodsDetails.sellVolume = g.sellVolume;
|
|
|
|
+ calculateGoodsByMj(goodsDetails,"minus");
|
|
|
|
+ calculateGoodsByMysy(goodsDetails,"minus");
|
|
|
|
+ // calculateGoodsByMz(goodsDetails,"minus");
|
|
|
|
+ goodsDetails.sellVolume = -1;
|
|
|
|
+ goodsDetails.actualPaymentAmount = -goodsDetails.actualPaymentAmount;
|
|
|
|
+ goodsDetails.discountedPrice = -goodsDetails.discountedPrice;
|
|
|
|
+ goodsDetails.goodstaxes = - goodsDetails.goodstaxes;
|
|
|
|
+ goodsDetails.retailPrice = - goodsDetails.retailPrice;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ handle(goodsDetails,"minus");
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -482,8 +579,38 @@ let vm = new Vue({
|
|
// 删除这条记录
|
|
// 删除这条记录
|
|
for(var i = 0 ; i < this.goodsList.length ; i++){
|
|
for(var i = 0 ; i < this.goodsList.length ; i++){
|
|
if(this.goodsList[i].id == value){
|
|
if(this.goodsList[i].id == value){
|
|
|
|
+ if(this.goodsList.length == 1){
|
|
|
|
+ vm.goods = {};
|
|
|
|
+ vm.goodsDetail = false;
|
|
|
|
+ }
|
|
|
|
+ if(vm.mz.get(this.goodsList[i].prodBarcode)){
|
|
|
|
+ vm.mz.get(this.goodsList[i].prodBarcode).useMz = false ;
|
|
|
|
+ }
|
|
|
|
+ if(vm.brandGetOneFree.get(this.goodsList[i].brand)){
|
|
|
|
+ var giftBarcode = vm.brandGetOneFree.get(this.goodsList[i].brand).giftBarcode;
|
|
|
|
+ var muilty = vm.brandGetOneFree.get(this.goodsList[i].brand).buyNum;
|
|
|
|
+ var sellNum = this.goodsList[i].sellVolume;;
|
|
|
|
+ vm.freeBardcode.set(giftBarcode,sellNum/muilty);
|
|
|
|
+
|
|
|
|
+ for(var j = 0 ; j < vm.goodsList.length ; j++){
|
|
|
|
+ var shopcartGoods = vm.goodsList[j];
|
|
|
|
+ var shopcartFree = vm.freeBardcode.get(shopcartGoods.prodBarcode);
|
|
|
|
+ if(shopcartFree /*&& shopcartGoods.actualPaymentAmount*/){
|
|
|
|
+ shopcartGoods.actualPaymentAmount = shopcartGoods.actualPaymentAmount + (shopcartGoods.retailPrice * shopcartFree);
|
|
|
|
+ shopcartGoods.discountedPrice = shopcartGoods.discountedPrice - (shopcartGoods.retailPrice * shopcartFree);
|
|
|
|
+ vm.freeBardcode.set(shopcartGoods.prodBarcode, 0);// 重置回0
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
var goods = this.goodsList[i];
|
|
var goods = this.goodsList[i];
|
|
|
|
+ console.log(goods);
|
|
vm.totalPrice = vm.totalPrice - (goods.retailPrice * goods.sellVolume);
|
|
vm.totalPrice = vm.totalPrice - (goods.retailPrice * goods.sellVolume);
|
|
|
|
+ vm.discountedPrice = vm.discountedPrice - goods.discountedPrice;
|
|
|
|
+ vm.actualPrice = vm.actualPrice - goods.actualPaymentAmount;
|
|
|
|
+ vm.boughtNum.delete(goods.prodBarcode);
|
|
this.goodsList.splice(i,1);
|
|
this.goodsList.splice(i,1);
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
@@ -577,7 +704,6 @@ let vm = new Vue({
|
|
vm.customidcard = '';
|
|
vm.customidcard = '';
|
|
vm.customClearData();
|
|
vm.customClearData();
|
|
|
|
|
|
- // alert('打印小票完成');
|
|
|
|
}else{
|
|
}else{
|
|
// alert("打印小票失败");
|
|
// alert("打印小票失败");
|
|
}
|
|
}
|
|
@@ -597,7 +723,10 @@ let vm = new Vue({
|
|
vm.goodsDetail = false;
|
|
vm.goodsDetail = false;
|
|
// 买一送一
|
|
// 买一送一
|
|
vm.mysy = [];
|
|
vm.mysy = [];
|
|
- vm.newMysy = new Map();
|
|
|
|
|
|
+ vm.freeBardcode = new Map();
|
|
|
|
+ vm.brandGetOneFree = new Map();
|
|
|
|
+ vm.barcodeGetOneFree = new Map();
|
|
|
|
+ vm.brandGetOneFree = new Map();
|
|
vm.boughtNum = new Map();
|
|
vm.boughtNum = new Map();
|
|
// 组合价
|
|
// 组合价
|
|
vm.zhjsp = new Map();
|
|
vm.zhjsp = new Map();
|
|
@@ -631,8 +760,6 @@ let vm = new Vue({
|
|
$.post("http://127.0.0.1:8000/idcard/read", function (r){
|
|
$.post("http://127.0.0.1:8000/idcard/read", function (r){
|
|
// var dataR = JSON.parse(r);
|
|
// var dataR = JSON.parse(r);
|
|
// console.log(dataR)
|
|
// console.log(dataR)
|
|
- console.log(r)
|
|
|
|
- console.log(r.code)
|
|
|
|
|
|
|
|
if(r.code == "0"){
|
|
if(r.code == "0"){
|
|
// if(!r.info){
|
|
// if(!r.info){
|
|
@@ -695,7 +822,6 @@ let vm = new Vue({
|
|
let userInfoBindingValue = this.userInfo.customName+this.userInfo.customIDCard;
|
|
let userInfoBindingValue = this.userInfo.customName+this.userInfo.customIDCard;
|
|
this.userInfoBinding[userInfoBindingKey] = userInfoBindingValue;
|
|
this.userInfoBinding[userInfoBindingKey] = userInfoBindingValue;
|
|
|
|
|
|
- console.log(this.userInfo.couponSn);
|
|
|
|
if(this.userInfo.couponSn && this.userInfo.couponSn != ""){
|
|
if(this.userInfo.couponSn && this.userInfo.couponSn != ""){
|
|
|
|
|
|
|
|
|
|
@@ -959,8 +1085,8 @@ function openWebSocket() {
|
|
//无法使用wss,浏览器打开WebSocket时报错
|
|
//无法使用wss,浏览器打开WebSocket时报错
|
|
//ws对应http、wss对应https。
|
|
//ws对应http、wss对应https。
|
|
// webSocket = new WebSocket("ws://183.62.225.124:8080/ws/server/"+storeId);
|
|
// webSocket = new WebSocket("ws://183.62.225.124:8080/ws/server/"+storeId);
|
|
- // webSocket = new WebSocket("ws://127.0.0.1:8080//ws/server/"+storeId);
|
|
|
|
- webSocket = new WebSocket("wss://cb.k1net.cn/ws/server/"+storeId);
|
|
|
|
|
|
+ webSocket = new WebSocket("ws://127.0.0.1:8080//ws/server/"+storeId);
|
|
|
|
+ // webSocket = new WebSocket("wss://cb.k1net.cn/ws/server/"+storeId);
|
|
if (webSocket.readyState === webSocket.CONNECTING) {
|
|
if (webSocket.readyState === webSocket.CONNECTING) {
|
|
console.log('1.连接正在打开......');
|
|
console.log('1.连接正在打开......');
|
|
}
|
|
}
|
|
@@ -1221,4 +1347,135 @@ function removeByValue(arr, val) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+function handle(goodsDetails,operatorType){
|
|
|
|
+ vm.goodsDetail = true;
|
|
|
|
+ // goodsDetails.sellVolume = 1;
|
|
|
|
+ goodsDetails.id = vm.index;
|
|
|
|
+ if(!vm.goodsList[vm.index]){
|
|
|
|
+ vm.index = vm.max;
|
|
|
|
+ }
|
|
|
|
+ vm.max++;
|
|
|
|
+ goodsDetails.goodsDesc = "";
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ // 判断当前商品是否是赠品
|
|
|
|
+ var freeMap = vm.freeBardcode.get(goodsDetails.prodBarcode);
|
|
|
|
+ if(freeMap && "minus" != operatorType){
|
|
|
|
+ goodsDetails.actualPaymentAmount = 0;
|
|
|
|
+ goodsDetails.discountedPrice = goodsDetails.retailPrice;
|
|
|
|
+ vm.freeBardcode.set(goodsDetails.prodBarcode,freeMap - 1);
|
|
|
|
+ }else{
|
|
|
|
+ if(!freeMap && freeMap != 0 ){
|
|
|
|
+ // 判断购物车中是否有赠品 这个操作只有是非赠品才能进来
|
|
|
|
+ for(var i = 0 ; i < vm.goodsList.length ; i++){
|
|
|
|
+ var shopcartGoods = vm.goodsList[i];
|
|
|
|
+ var shopcartFree = vm.freeBardcode.get(shopcartGoods.prodBarcode);
|
|
|
|
+ if(shopcartFree /*&& shopcartGoods.actualPaymentAmount*/){
|
|
|
|
+ // if("minus" != operatorType){
|
|
|
|
+ var shopcartSellNum = shopcartGoods.sellVolume;
|
|
|
|
+ if(shopcartFree > shopcartSellNum){
|
|
|
|
+ shopcartGoods.actualPaymentAmount = 0;
|
|
|
|
+ shopcartGoods.discountedPrice = shopcartGoods.retailPrice * shopcartFree;
|
|
|
|
+
|
|
|
|
+ vm.discountedPrice = vm.discountedPrice + shopcartGoods.discountedPrice ;
|
|
|
|
+ vm.actualPrice = vm.actualPrice + shopcartGoods.actualPaymentAmount ;
|
|
|
|
+
|
|
|
|
+ vm.freeBardcode.set(shopcartGoods.prodBarcode,shopcartFree - 1);//
|
|
|
|
+ }else if(shopcartFree == -1 ){
|
|
|
|
+ // g.actualPaymentAmount == 0){
|
|
|
|
+ shopcartGoods.actualPaymentAmount = shopcartGoods.retailPrice + shopcartGoods.actualPaymentAmount;
|
|
|
|
+ shopcartGoods.discountedPrice = shopcartGoods.discountedPrice - shopcartGoods.retailPrice;
|
|
|
|
+
|
|
|
|
+ vm.discountedPrice = vm.discountedPrice + shopcartGoods.discountedPrice ;
|
|
|
|
+ vm.actualPrice = vm.actualPrice + shopcartGoods.actualPaymentAmount ;
|
|
|
|
+
|
|
|
|
+ vm.freeBardcode.set(shopcartGoods.prodBarcode,0);// 重置回0
|
|
|
|
+ }else{
|
|
|
|
+ if(shopcartGoods.actualPaymentAmount > 0){
|
|
|
|
+ shopcartGoods.actualPaymentAmount = shopcartGoods.actualPaymentAmount - (shopcartGoods.retailPrice * shopcartFree);
|
|
|
|
+ shopcartGoods.discountedPrice = shopcartGoods.discountedPrice + (shopcartGoods.retailPrice * shopcartFree);
|
|
|
|
+
|
|
|
|
+ vm.actualPrice = vm.actualPrice - (shopcartGoods.retailPrice * shopcartFree) ;
|
|
|
|
+ vm.discountedPrice = vm.discountedPrice + (shopcartGoods.retailPrice * shopcartFree) ;
|
|
|
|
+
|
|
|
|
+ vm.freeBardcode.set(shopcartGoods.prodBarcode, shopcartFree - 1);// 重置回0
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ // }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ goodsDetails.discountedPrice = Math.round(goodsDetails.discountedPrice * 100) / 100;
|
|
|
|
+ goodsDetails.actualPaymentAmount = Math.round(goodsDetails.actualPaymentAmount * 100) / 100;
|
|
|
|
+ var data = Object.assign({}, JSON.parse(JSON.stringify(goodsDetails)));
|
|
|
|
+ var isPush = true;
|
|
|
|
+ // 判断当前商品是否添加过
|
|
|
|
+ for(var i = 0 ; i < vm.goodsList.length ; i++){
|
|
|
|
+ if(vm.goodsList[i].goodsSn == data.goodsSn){
|
|
|
|
+ var goodsDetails = vm.goodsList[i];
|
|
|
|
+ if(data.actualPaymentAmount < 0 && goodsDetails.actualPaymentAmount == 0){
|
|
|
|
+ // goodsDetails.goodstaxes = Math.round((parseFloat(goodsDetails.goodstaxes) - parseFloat(data.goodstaxes)) * 100)/100;
|
|
|
|
+ // goodsDetails.discountedPrice = Math.round((parseFloat(goodsDetails.discountedPrice) - parseFloat(data.discountedPrice)) * 100)/100;
|
|
|
|
+ goodsDetails.actualPaymentAmount = 0;
|
|
|
|
+ }else{
|
|
|
|
+ // 税 goodstaxes,优惠金额 discountedPrice,实际支付 actualPaymentAmount,数量 sellVolume 45636917
|
|
|
|
+ goodsDetails.actualPaymentAmount = Math.round((parseFloat(goodsDetails.actualPaymentAmount) + parseFloat(data.actualPaymentAmount)) * 100)/100;
|
|
|
|
+ }
|
|
|
|
+ goodsDetails.discountedPrice = Math.round((parseFloat(goodsDetails.discountedPrice) + parseFloat(data.discountedPrice)) * 100)/100;
|
|
|
|
+ goodsDetails.goodstaxes = Math.round((parseFloat(goodsDetails.goodstaxes) + parseFloat(data.goodstaxes)) * 100)/100;
|
|
|
|
+ goodsDetails.sellVolume = Math.round((parseFloat(goodsDetails.sellVolume) + parseFloat(data.sellVolume)) * 100)/100;
|
|
|
|
+ goodsDetails.activity = data.activity;
|
|
|
|
+ isPush = false;
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ // for(var i = 0 ; i < vm.goodsList.length ; i++){
|
|
|
|
+ // if(vm.goodsList[i].goodsSn == data.goodsSn){
|
|
|
|
+ // var goodsDetails = vm.goodsList[i];
|
|
|
|
+ // // 税 goodstaxes,优惠金额 discountedPrice,实际支付 actualPaymentAmount,数量 sellVolume 45636917
|
|
|
|
+ // goodsDetails.goodstaxes = Math.round((parseFloat(goodsDetails.goodstaxes) + parseFloat(data.goodstaxes)) * 100)/100;
|
|
|
|
+ // goodsDetails.discountedPrice = Math.round((parseFloat(goodsDetails.discountedPrice) + parseFloat(data.discountedPrice)) * 100)/100;
|
|
|
|
+ // goodsDetails.actualPaymentAmount = Math.round((parseFloat(goodsDetails.actualPaymentAmount) + parseFloat(data.actualPaymentAmount)) * 100)/100;
|
|
|
|
+ // goodsDetails.sellVolume = Math.round((parseFloat(goodsDetails.sellVolume) + parseFloat(data.sellVolume)) * 100)/100;
|
|
|
|
+ // goodsDetails.activity = data.activity;
|
|
|
|
+ // isPush = false;
|
|
|
|
+ // break;
|
|
|
|
+ // }
|
|
|
|
+ // }
|
|
|
|
+ if(isPush){
|
|
|
|
+ vm.goodsList.push(data);
|
|
|
|
+ vm.index = vm.index + 1;
|
|
|
|
+ }
|
|
|
|
+ vm.totalPrice = (vm.totalPrice + data.retailPrice);
|
|
|
|
+ if(vm.reduceMoney > 0){
|
|
|
|
+ vm.discountedPrice = vm.discountedPrice + data.discountedPrice + vm.reduceMoney;
|
|
|
|
+ vm.actualPrice = vm.actualPrice + data.actualPaymentAmount - vm.reduceMoney;
|
|
|
|
+ vm.showReduceMoney = vm.showReduceMoney + vm.reduceMoney;
|
|
|
|
+ vm.reduceMoney = 0;
|
|
|
|
+ }else{
|
|
|
|
+ vm.discountedPrice = vm.discountedPrice + data.discountedPrice ;
|
|
|
|
+ vm.actualPrice = vm.actualPrice + data.actualPaymentAmount ;
|
|
|
|
+ }
|
|
|
|
+ if(data.sellVolume < 0){
|
|
|
|
+ data.sellVolume = - data.sellVolume;
|
|
|
|
+ data.retailPrice = - data.retailPrice;
|
|
|
|
+ data.goodstaxes = -data.goodstaxes;
|
|
|
|
+ }
|
|
|
|
+ vm.goods = data;
|
|
|
|
+ // 处理精度
|
|
|
|
+ vm.totalPrice = Math.round(vm.totalPrice * 100) / 100;
|
|
|
|
+ vm.discountedPrice = Math.round(vm.discountedPrice * 100) / 100;
|
|
|
|
+ vm.actualPrice = Math.round(vm.actualPrice * 100) / 100;
|
|
|
|
+ vm.showReduceMoney = Math.round(vm.showReduceMoney * 100) / 100;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
|