|
@@ -58,6 +58,7 @@ function calculateGoodsPrice(r){
|
|
|
dataMap.set(barCodeArray[j],0);
|
|
|
}
|
|
|
vm.combinationPrice.set(data,rMap.zhjsp[data][0].combinedPrice)
|
|
|
+
|
|
|
vm.zhjsp.set(data,dataMap);
|
|
|
}
|
|
|
}
|
|
@@ -209,22 +210,69 @@ function calculateGoodsByZhjsp(r){
|
|
|
if(flag === 1){
|
|
|
var combinationPrice = vm.combinationPrice.get(key);
|
|
|
var barCodeArr = key.toString().split(":");
|
|
|
- for( var j = 0 ; j < barCodeArr.length ; j ++ ){
|
|
|
+
|
|
|
+ // 扫码的商品条码 barCode
|
|
|
+ for(var i = 0 ; i < barCodeArr.length ; i ++){
|
|
|
+ var oldCode = barCodeArr[i];
|
|
|
+ if(oldCode === barCode){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if(vm.compareCombinationPrice.get(oldCode) && vm.compareCombinationPrice.get(oldCode) > combinationPrice){
|
|
|
+ // 获取原组合关系
|
|
|
+ var relationshipKey = vm.combinationRelationship.get(oldCode);
|
|
|
+ // 将价格设置回原来的价格
|
|
|
+ var keyArr = relationshipKey.toString().split(":");
|
|
|
+ // 遍历原来的组合
|
|
|
+ for(var j = 0 ; j < keyArr.length ; j ++){
|
|
|
+ // 遍历购物车中原来的商品,替换价格
|
|
|
+ for(var k = 0 ; k < vm.goodsList.length ; k ++){
|
|
|
+ if(vm.goodsList[k].prodBarcode === keyArr[j] && vm.goodsList[k].activity == "组合价"){
|
|
|
+
|
|
|
+ vm.discountedPrice = vm.discountedPrice - vm.goodsList[k].discountedPrice ;
|
|
|
+ vm.actualPrice = vm.actualPrice + vm.goodsList[k].discountedPrice ;
|
|
|
+
|
|
|
+ vm.goodsList[k].discountedPrice = 0 ; // 优惠价格
|
|
|
+ vm.goodsList[k].actualPaymentAmount = vm.goodsList[k].retailPrice; // 实际支付价格
|
|
|
+ vm.goodsList[k].isCombination = 0;
|
|
|
+ vm.goodsList[k].activity = "";
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ vm.compareCombinationPrice.delete(vm.goodsList[k].prodBarcode);
|
|
|
+ vm.combinationRelationship.delete(vm.goodsList[k].prodBarcode);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ for( var i = 0 ; i < barCodeArr.length ; i ++ ){
|
|
|
// 如果是扫描的产品,直接退出,因为购物车中无该产品
|
|
|
- if(barCodeArr[j] == barCode){
|
|
|
+ if(barCodeArr[i] == barCode){
|
|
|
r.goodsDetails.isCombination = 1;
|
|
|
r.goodsDetails.discountedPrice = r.goodsDetails.retailPrice - combinationPrice; // 优惠价格
|
|
|
r.goodsDetails.actualPaymentAmount = combinationPrice; // 实际支付价格
|
|
|
r.goodsDetails.activity = "组合价";
|
|
|
+
|
|
|
+
|
|
|
+ vm.compareCombinationPrice.set(barCode,r.goodsDetails.actualPaymentAmount);
|
|
|
+ vm.combinationRelationship.set(barCode,key);
|
|
|
continue;
|
|
|
}
|
|
|
- for(var i = 0 ; i < vm.goodsList.length ; i ++){
|
|
|
- if(vm.goodsList[i].prodBarcode === barCodeArr[j] && !vm.goodsList[i].isCombination){
|
|
|
- // 如果符合条件,把赠送的条码给删除(一次性)
|
|
|
- vm.goodsList[i].discountedPrice = vm.goodsList[i].retailPrice ; // 优惠价格
|
|
|
- vm.goodsList[i].actualPaymentAmount = 0; // 实际支付价格
|
|
|
- vm.goodsList[i].isCombination = 1;
|
|
|
- vm.goodsList[i].activity = "组合价";
|
|
|
+ for(var j = 0 ; j < vm.goodsList.length ; j ++){
|
|
|
+ if(vm.goodsList[j].prodBarcode === barCodeArr[i] && !vm.goodsList[j].isCombination){
|
|
|
+ vm.goodsList[j].discountedPrice = vm.goodsList[j].retailPrice ; // 优惠价格
|
|
|
+ vm.goodsList[j].actualPaymentAmount = 0; // 实际支付价格
|
|
|
+ vm.goodsList[j].isCombination = 1;
|
|
|
+ vm.goodsList[j].activity = "组合价";
|
|
|
+
|
|
|
+ vm.discountedPrice = vm.discountedPrice + vm.goodsList[j].retailPrice ; // 总的优惠金额
|
|
|
+ vm.actualPrice = vm.actualPrice - vm.goodsList[j].retailPrice ; // 总的实际支付金额
|
|
|
+
|
|
|
+ vm.compareCombinationPrice.set(vm.goodsList[j].prodBarcode,vm.goodsList[j].actualPaymentAmount);
|
|
|
+ vm.combinationRelationship.set(vm.goodsList[j].prodBarcode,barCode,key);
|
|
|
+
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
@@ -237,6 +285,7 @@ function calculateGoodsByZhjsp(r){
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
+ console.log(vm.compareCombinationPrice);
|
|
|
|
|
|
}
|
|
|
|
|
@@ -284,6 +333,8 @@ let vm = new Vue({
|
|
|
// 组合价
|
|
|
zhjsp: new Map(),
|
|
|
combinationPrice: new Map(), // 组合价商品的组合价
|
|
|
+ compareCombinationPrice: new Map(), // 用于比较组合价
|
|
|
+ combinationRelationship: new Map(), // 组合价格的组合关系
|
|
|
// 满减
|
|
|
mj: new Map(),
|
|
|
accumulatedAmount: new Map(), // 累积金额(满减使用的)
|
|
@@ -316,6 +367,9 @@ let vm = new Vue({
|
|
|
}
|
|
|
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);
|
|
@@ -331,7 +385,6 @@ let vm = new Vue({
|
|
|
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;
|
|
@@ -477,7 +530,7 @@ let vm = new Vue({
|
|
|
if(this.$refs.couponSn)
|
|
|
this.userInfo.couponSn = this.$refs.couponSn.value;
|
|
|
var idcardReg = /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/;
|
|
|
- /*if(!this.userInfo.customName){
|
|
|
+ if(!this.userInfo.customName){
|
|
|
alert("姓名不能为空!");
|
|
|
return ;
|
|
|
}
|
|
@@ -489,7 +542,7 @@ let vm = new Vue({
|
|
|
if(!(/^1[3456789]\d{9}$/.test(this.userInfo.customPhone))){
|
|
|
alert("手机号码有误,请重填");
|
|
|
return ;
|
|
|
- }*/
|
|
|
+ }
|
|
|
|
|
|
if(this.userInfo.couponSn){
|
|
|
var coupon = vm.coupons.get(this.userInfo.couponSn);
|