|
@@ -743,12 +743,15 @@ let vm = new Vue({
|
|
|
// 增加数量
|
|
|
for(var i = 0 ; i < this.goodsList.length ; i++){
|
|
|
if(this.goodsList[i].id == value){
|
|
|
- var goodsDetails = JSON.parse(JSON.stringify(vm.goodsMap.get(this.goodsList[i].goodsSn)));
|
|
|
- calculateGoodsByMj(goodsDetails,"add");
|
|
|
+ // var goodsDetails = JSON.parse(JSON.stringify(vm.goodsMap.get(this.goodsList[i].goodsSn)));
|
|
|
+ let goodsDetails = JSON.parse(JSON.stringify(vm.goodsList[i]));
|
|
|
+ console.log("加法 goods detail =====>" + JSON.stringify(goodsDetails));
|
|
|
+ /*calculateGoodsByMj(goodsDetails,"add");
|
|
|
calculateGoodsByMysy(goodsDetails,"add");
|
|
|
- calculateGoodsByHalfPrice(goodsDetails,"add");
|
|
|
+ calculateGoodsByHalfPrice(goodsDetails,"add");*/
|
|
|
// calculateGoodsByMz(goodsDetails,"add");
|
|
|
- handle(goodsDetails,"add");
|
|
|
+ handleSellVolume(goodsDetails, "add");
|
|
|
+ // handle(goodsDetails,"add");
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
@@ -758,16 +761,14 @@ let vm = new Vue({
|
|
|
for(var i = 0 ; i < this.goodsList.length ; i++){
|
|
|
if(this.goodsList[i].id == value){
|
|
|
// 获取当前购物车的数量
|
|
|
- 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){
|
|
|
+ let goodsDetails = JSON.parse(JSON.stringify(vm.goodsList[i]));
|
|
|
+ console.log("减法 goods detail =====>" + JSON.stringify(goodsDetails));
|
|
|
+ if(goodsDetails.sellVolume === 1){
|
|
|
alert("数量至少为1个");
|
|
|
return ;
|
|
|
}
|
|
|
// 如果不为空,证明减的是买A送B中的B,这时候要还原赠送资格跟B的扣减
|
|
|
- var freeMap = vm.freeBardcode.get(goodsDetails.prodBarcode);
|
|
|
+ /*var freeMap = vm.freeBardcode.get(goodsDetails.prodBarcode);
|
|
|
if((freeMap || freeMap == 0) && g.actualPaymentAmount == 0){
|
|
|
vm.freeBardcode.set(goodsDetails.prodBarcode,freeMap + 1);
|
|
|
goodsDetails.sellVolume = -1;
|
|
@@ -786,9 +787,9 @@ let vm = new Vue({
|
|
|
goodsDetails.discountedPrice = -goodsDetails.discountedPrice;
|
|
|
goodsDetails.goodstaxes = - goodsDetails.goodstaxes;
|
|
|
goodsDetails.retailPrice = - goodsDetails.retailPrice;
|
|
|
- }
|
|
|
-
|
|
|
- handle(goodsDetails,"minus");
|
|
|
+ }*/
|
|
|
+ handleSellVolume(goodsDetails, "minus");
|
|
|
+ // handle(goodsDetails,"minus");
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
@@ -946,6 +947,9 @@ let vm = new Vue({
|
|
|
// 计算优惠价格,返回订单详情数据
|
|
|
calculateOrderPriceSubmit : function () {
|
|
|
console.log("11111");
|
|
|
+
|
|
|
+ console.log("点击计算=====>" + JSON.stringify(vm.goodsList));
|
|
|
+
|
|
|
var couponBarCode = vm.$refs.couponBarCode;
|
|
|
if (couponBarCode === null || couponBarCode === '') {
|
|
|
alert("无会员码,不能参加积分抵扣活动!\n计算中...");
|
|
@@ -1785,16 +1789,18 @@ function removeByValue(arr, val) {
|
|
|
function handle(goodsDetails,operatorType){
|
|
|
vm.goodsDetail = true;
|
|
|
// goodsDetails.sellVolume = 1;
|
|
|
+ console.log("goodsDetails=====>" + JSON.stringify(goodsDetails));
|
|
|
goodsDetails.id = vm.index;
|
|
|
+ console.log("vm.index====>" + vm.index);
|
|
|
if(!vm.goodsList[vm.index]){
|
|
|
vm.index = vm.max;
|
|
|
}
|
|
|
+ console.log("vm.goodsList[vm.index]=====>" + vm.goodsList[vm.index]);
|
|
|
vm.max++;
|
|
|
goodsDetails.goodsDesc = "";
|
|
|
|
|
|
-
|
|
|
// 判断当前商品是否是赠品
|
|
|
- var freeMap = vm.freeBardcode.get(goodsDetails.prodBarcode);
|
|
|
+ /*var freeMap = vm.freeBardcode.get(goodsDetails.prodBarcode);
|
|
|
if(freeMap && "minus" != operatorType){
|
|
|
goodsDetails.actualPaymentAmount = 0;
|
|
|
goodsDetails.discountedPrice = goodsDetails.retailPrice;
|
|
@@ -1805,7 +1811,7 @@ function handle(goodsDetails,operatorType){
|
|
|
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(shopcartFree /!*&& shopcartGoods.actualPaymentAmount*!/){
|
|
|
// if("minus" != operatorType){
|
|
|
var shopcartSellNum = shopcartGoods.sellVolume;
|
|
|
if(shopcartFree > shopcartSellNum){
|
|
@@ -1841,13 +1847,7 @@ function handle(goodsDetails,operatorType){
|
|
|
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+ }*/
|
|
|
|
|
|
goodsDetails.discountedPrice = Math.round(goodsDetails.discountedPrice * 100) / 100;
|
|
|
goodsDetails.actualPaymentAmount = Math.round(goodsDetails.actualPaymentAmount * 100) / 100;
|
|
@@ -1894,10 +1894,8 @@ function handle(goodsDetails,operatorType){
|
|
|
|
|
|
if("minus" == operatorType){
|
|
|
vm.totalCount = vm.totalCount - 1;
|
|
|
- vm.goodsList[vm.index].sellVolume -= 1;
|
|
|
}else{
|
|
|
vm.totalCount = vm.totalCount + 1;
|
|
|
- vm.goodsList[vm.index].sellVolume += 1;
|
|
|
}
|
|
|
|
|
|
if(vm.reduceMoney > 0){
|
|
@@ -1920,6 +1918,9 @@ function handle(goodsDetails,operatorType){
|
|
|
vm.discountedPrice = Math.round(vm.discountedPrice * 100) / 100;
|
|
|
vm.actualPrice = Math.round(vm.actualPrice * 100) / 100;
|
|
|
vm.showReduceMoney = Math.round(vm.showReduceMoney * 100) / 100;
|
|
|
+
|
|
|
+
|
|
|
+ console.log("goodsDetails after=====>" + JSON.stringify(vm.goodsList));
|
|
|
}
|
|
|
|
|
|
// 下单处理
|
|
@@ -2002,7 +2003,7 @@ function toRefund(){
|
|
|
})
|
|
|
}
|
|
|
// 计算当前购物栏商品优惠价格
|
|
|
-function calculateOrderPrice() {
|
|
|
+calculateOrderPrice = function() {
|
|
|
vm.machineCode = sessionStorage.getItem("machineCode");
|
|
|
var cmbCity = $('#cmbCity').val();
|
|
|
var cmbProvince = $('#cmbProvince').val();
|
|
@@ -2012,7 +2013,7 @@ function calculateOrderPrice() {
|
|
|
console.log(vm.machineCode);
|
|
|
var param = {
|
|
|
'storeId': sessionStorage.getItem("storeId"),
|
|
|
- 'goodsList' : vm.calGoodsList
|
|
|
+ 'goodsList' : vm.goodsList
|
|
|
};
|
|
|
|
|
|
console.log("请求参数===>" + JSON.stringify(param));
|
|
@@ -2023,22 +2024,19 @@ function calculateOrderPrice() {
|
|
|
contentType: "application/json",
|
|
|
data: JSON.stringify(param),
|
|
|
success: function (r) {
|
|
|
- if (r.code == 0) {
|
|
|
+ if (r.code === 0) {
|
|
|
let calGoodsList = r.goodsList;
|
|
|
// 更新购物栏中数据
|
|
|
console.log("返回====>" + JSON.stringify(r));
|
|
|
console.log("计算前数据===>" + JSON.stringify(vm.goodsList));
|
|
|
vm.goodsList.clear();
|
|
|
- calGoodsList.forEach(goods => {
|
|
|
- goods.sellVolume = $("#")
|
|
|
- vm.goodsList.push(goods);
|
|
|
- });
|
|
|
+ calGoodsList.forEach(goods => vm.goodsList.push(goods));
|
|
|
console.log("计算后数据===>" + JSON.stringify(calGoodsList));
|
|
|
console.log("替换后数据===>" + JSON.stringify(vm.goodsList));
|
|
|
|
|
|
$("#calculateOrderPriceDialog").modal('hide');
|
|
|
- } else if (r.code == 500) {
|
|
|
- alert(r.msg)
|
|
|
+ } else if (r.code === 500) {
|
|
|
+ alert(r.msg);
|
|
|
} else {
|
|
|
alert("计算失败,请联系管理员");
|
|
|
}
|
|
@@ -2046,4 +2044,55 @@ function calculateOrderPrice() {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
+/**
|
|
|
+ * 处理加减按钮操作
|
|
|
+ * @param currentGoodsDetail 当前操作的商品详情
|
|
|
+ * @param type 类型,add:加 minus:减
|
|
|
+ */
|
|
|
+handleSellVolume = function (currentGoodsDetail, type) {
|
|
|
+ console.log("处理前商品详情=====>" + JSON.stringify(currentGoodsDetail));
|
|
|
+ // 当前未被处理的商品数量
|
|
|
+ let number = currentGoodsDetail.sellVolume;
|
|
|
+ // 当前商品应支付金额
|
|
|
+ let currentActualPaymentAmount = new BigNumber(currentGoodsDetail.actualPaymentAmount);
|
|
|
+ // 当前商品税款
|
|
|
+ let currentGoodsTax = new BigNumber(currentGoodsDetail.goodstaxes);
|
|
|
+ // 当前商品零售价
|
|
|
+ let retailPrice = new BigNumber(currentGoodsDetail.retailPrice);
|
|
|
+ // 单个商品时的税款
|
|
|
+ let singleTax = currentGoodsTax.divide(number);
|
|
|
+ // 单个商品时的应支付金额
|
|
|
+ let singleActualPaymentAmount = currentActualPaymentAmount.divide(number);
|
|
|
+
|
|
|
+ // 当前总价
|
|
|
+ let currentTotalPrice = new BigNumber(vm.totalPrice);
|
|
|
+ // 当前实际支付价
|
|
|
+ let currentActualPrice = new BigNumber(vm.actualPrice);
|
|
|
+ if ('add' === type) {
|
|
|
+ currentGoodsDetail.sellVolume += 1;
|
|
|
+ currentGoodsDetail.goodstaxes = currentGoodsTax.add(singleTax).toString();
|
|
|
+ currentGoodsDetail.actualPaymentAmount = currentActualPaymentAmount.add(singleActualPaymentAmount).toString();
|
|
|
+ vm.totalCount += 1;
|
|
|
+ vm.totalPrice = currentTotalPrice.add(retailPrice).toString();
|
|
|
+ vm.actualPrice = currentActualPrice.add(singleActualPaymentAmount).toString();
|
|
|
+ } else {
|
|
|
+ currentGoodsDetail.sellVolume -= 1;
|
|
|
+ currentGoodsDetail.goodstaxes = currentGoodsTax.subtract(singleTax).toString();
|
|
|
+ currentGoodsDetail.actualPaymentAmount = currentActualPaymentAmount.subtract(singleActualPaymentAmount).toString();
|
|
|
+ vm.totalCount -= 1;
|
|
|
+ vm.totalPrice = currentTotalPrice.subtract(retailPrice).toString();
|
|
|
+ vm.actualPrice = currentActualPrice.subtract(singleActualPaymentAmount).toString();
|
|
|
+ }
|
|
|
+
|
|
|
+ for (let i = 0; i < vm.goodsList.length; i++) {
|
|
|
+ let goods = vm.goodsList[i];
|
|
|
+ if (currentGoodsDetail.prodBarcode === goods.prodBarcode && currentGoodsDetail.goodsSn === goods.goodsSn) {
|
|
|
+ let splice = vm.goodsList.splice(i, 1, currentGoodsDetail);
|
|
|
+ console.log("被删除的元素====>" + JSON.stringify(splice));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ console.log("处理后商品详情=====>" + JSON.stringify(currentGoodsDetail))
|
|
|
+}
|
|
|
+
|
|
|
|