$(function () { addressInit('cmbProvince', 'cmbCity', 'cmbArea', '---请选择---', '---请选择---', '---请选择---'); $('.sendShow').hide(); openWebSocket(); queryAssistantInfo(); var cwQrcode = new Image(); var cwLogo2 = new Image(); cwQrcode.src = "http://120.76.119.218:8080/statics/img/cw_qrcode.png"; cwLogo2.src = "http://120.76.119.218:8080/statics/img/cw_logo2.png"; vm.queryGoods(); }); window.onbeforeunload = function(){ closeWebSocket(); } // addressInit('Select1', 'Select2', 'Select3'); function debounce(fn,delay){ var timer=null return function(){ console.log(timer); if(timer){ clearTimeout(timer) } timer = setTimeout(fn,delay) } } function calculateGoodsPrice(r){ var rMap = r.map; var barCode = r.goodsDetails.prodBarcode; var brand = r.goodsDetails.brand; console.log(rMap); /*if(rMap.yhq){ for(var i in rMap.yhq){ vm.coupons.set(i,rMap.yhq[i]); } } // 是否有满减活动 if(rMap.mj){ if(rMap.mj[barCode] && !vm.mj.get(barCode)){ // 该商品是否已经有过满减活动 vm.mj.set(barCode,rMap.mj[barCode]); }else if(rMap.mj[brand] && !vm.mj.get(brand)){ // 该品牌是否已经有过满减活动 vm.mj.set(brand,rMap.mj[brand]); } } if(rMap.mysy){ // 买的条码, 买的数量,送的条码,送的数量 var mysy = { buyNum:rMap.mysy.buyNum, giftBarcode:rMap.mysy.giftBarcode, sendNum:rMap.mysy.sendNum }; 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[barCode] && !vm.mz.get(barCode)){ // 该商品是否已经有过满赠活动 vm.mz.set(barCode,rMap.mz[barCode]); }else if(rMap.mz[brand] && !vm.mz.get(brand)){ // 该品牌是否已经有过满赠活动 vm.mz.set(brand,rMap.mz[brand]); } } if(rMap.drjbj){ if(!vm.halfPrice.get(rMap.drjbj.barcode)){ vm.halfPrice.set(rMap.drjbj.barcode,1); } }*/ // 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"); calculateGoodsByHalfPrice(r.goodsDetails,"add"); // calculateGoodsByZhjsp(r); } // ==================== 满减========================== // 满减 function calculateGoodsByMj(goodsDetails,type){ if(vm.mj.get(goodsDetails.prodBarcode)){ fullReduction(goodsDetails,goodsDetails.prodBarcode); }else if(vm.mj.get(goodsDetails.brand)){ fullReduction(goodsDetails,goodsDetails.brand); } } // 满减的计算内容 function fullReduction(goodsDetails,key){ // 获取满减条件金额 var qualifiedAmount = vm.mj.get(key).qualifiedAmount; // 获取已累积金额 var money = vm.accumulatedAmount.get(key); if(isNaN(money)){ money = goodsDetails.retailPrice; }else{ money = money + goodsDetails.retailPrice; } if(money >= qualifiedAmount){ vm.reduceMoney += vm.mj.get(key).deductionAmount; // 达到满减金额,获取扣减的额度 vm.mj.delete(key); // 获取后删除该商品的满减 vm.accumulatedAmount.delete(key); // 删除满减的金额 }else{ vm.accumulatedAmount.set(key,money); } } // ============================= 第二件半价========================== function calculateGoodsByHalfPrice(goodsDetails,type){ var half = vm.halfPrice.get(goodsDetails.prodBarcode); if(half){ var discountPrice = goodsDetails.retailPrice / 2; if(type == "add"){ // 等于一的话,不满足条件 if(half == 1){ vm.halfPrice.set(goodsDetails.prodBarcode,2); }else if(half == 2){ goodsDetails.actualPaymentAmount = discountPrice; goodsDetails.discountedPrice = discountPrice; vm.halfPrice.set(goodsDetails.prodBarcode,1); } }else if(type == "minus"){ if(half == 2){ goodsDetails.actualPaymentAmount = goodsDetails.actualPaymentAmount ; vm.halfPrice.set(goodsDetails.prodBarcode,1); }else if(half == 1){ goodsDetails.actualPaymentAmount = goodsDetails.actualPaymentAmount - discountPrice; goodsDetails.discountedPrice = discountPrice; vm.halfPrice.set(goodsDetails.prodBarcode,2); } } } } // ============================= 满赠 ============================== // 满赠 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){ // 获取满赠条件金额 var qualifiedAmount = vm.mz.get(key).qualifiedAmount; // 获取已累积金额 var money = vm.accumulatedAmountForFullGift.get(key); if(isNaN(money)){ money = goodsDetails.retailPrice; }else{ money = money + goodsDetails.retailPrice; } // 达到满赠的要求 if(money >= qualifiedAmount){ // 将满赠的商品放入数组中,重置金额 vm.fullGiftCode.push(vm.mz.get(key).giftBarcode); vm.mz.delete(key); // 获取后删除该商品的满减 vm.accumulatedAmountForFullGift.delete(key); // 删除满减的金额 // 2.购物车的商品里面是否有满赠的商品 shopCartContain(vm.fullGiftCode,goodsDetails,"满赠"); }else{ vm.accumulatedAmountForFullGift.set(key,money); } } // 买一送一 function calculateGoodsByMysy(goodsDetails,type){ var mysy = vm.barcodeGetOneFree.get(goodsDetails.prodBarcode); var brandMysy = vm.brandGetOneFree.get(goodsDetails.brand); if(mysy){ var buyNum = mysy.buyNum; 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); } } 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,"买一送一"); // 判断购物车里面是否有商品为赠品 // shopCartContain(vm.mysy,goodsDetails,"买一送一"); } // 判断当前商品是否为赠品 function isSend(activity,goodsDetails,activityName){ if(activity.indexOf(goodsDetails.prodBarcode) >= 0){ // 如果符合条件,把赠送的条码给删除(一次性) var index = activity.indexOf(goodsDetails.prodBarcode); activity.splice(index,1); // 设置赠品的单价 goodsDetails.discountedPrice = goodsDetails.retailPrice - 1; goodsDetails.actualPaymentAmount = 1; } } // 判断购物车里面是否有商品为赠品 function shopCartContain(activity,goodsDetails,activityName){ if(vm.goodsList && vm.goodsList.length > 0 ){ for(var i = 0 ; i < vm.goodsList.length ; i ++){ // 如果有商品为赠品,则把价格置位0并跳出循环 if(activity.indexOf(vm.goodsList[i].prodBarcode) >= 0 && vm.goodsList[i].actualPaymentAmount != 0){ // 如果符合条件,把赠送的条码给删除(一次性) var index = vm.mysy.indexOf(goodsDetails.prodBarcode); activity.splice(index,1); vm.goodsList[i].discountedPrice = vm.goodsList[i].retailPrice; vm.goodsList[i].actualPaymentAmount = 0; vm.goodsList[i].activity = activityName; vm.discountedPrice = vm.discountedPrice + vm.goodsList[i].retailPrice ; vm.actualPrice = vm.actualPrice - vm.goodsList[i].retailPrice ; break; } } } } // ======================= 组合价商品 ============================ // 组合价商品 function calculateGoodsByZhjsp(r){ var barCode = r.goodsDetails.prodBarcode; if(r.map.zhjsp){ // 将有组合的商品设置为1 ps:{"flag" => 0, "4005808550739" => 1, "4305615120454" => 0} vm.zhjsp.forEach(function(value,key,map){ // 将组合价中组合的产品出现的次数+1 value.forEach(function(v, k ,m){ if(k === barCode) m.set(k,v+1); }); var flag = 1; // 判断是否有商品成功组合 value.forEach(function(v, k ,m){ if(v === 0) flag = 0; }); if(flag === 1){ var combinationPrice = vm.combinationPrice.get(key); var barCodeArr = key.toString().split(":"); // 扫码的商品条码 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[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 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; } } } // 扣减 var updateMap = map.get(key); updateMap.forEach(function(v, k ,m){ m.set(k,v-1); }); } }); } console.log(vm.compareCombinationPrice); } const delay = (function () { let timer = 0; return function (callback, ms) { clearTimeout(timer); timer = setTimeout(callback.ms) } }); let vm = new Vue({ created : function () { this.$nextTick(() => { setTimeout(() => { this.$refs.saomiao.focus(); }, 200); }) }, el: '#rrapp', data: { showList: true, goodsDetail:false, title: null, goods:{}, orderSn:"", orderSn1:"", sysNotice: {}, goodsList:[], orderInfo:[], userInfo:{}, //user信息绑定集合 userInfoBinding: {}, sysUserInfo:{}, storeName:null, prodBarcode:null, sessionId:null, pickUpCodeList:[], goodsDetailList:[], goodsSkuDetailList:[], orderEntity:{}, orderProcessRecord:{}, tax:0, currentOrderNo:null, pickUpCode:null, customname:'', customidcard:'', status:'', machineCode:'', storeId:null, index:0, max:0, totalPrice:0, discountedPrice:0, actualPrice:0, ruleValidate: { name: [ {required: true, message: '名称不能为空', trigger: 'blur'} ] }, q: { name: '' }, firstPrint:false, // 第二件半价 halfPrice:new Map(), // 买一送一 mysy: [], freeBardcode : new Map(), modifyShopcart:false, // 是否需要修改购物车中商品信息 brandGetOneFree : new Map(), barcodeGetOneFree: new Map(), boughtNum: new Map(), // 组合价 zhjsp: new Map(), combinationPrice: new Map(), // 组合价商品的组合价 compareCombinationPrice: new Map(), // 用于比较组合价 combinationRelationship: new Map(), // 组合价格的组合关系 // 满减 mj: new Map(), accumulatedAmount: new Map(), // 累积金额(满减使用的) reduceMoney:0, // 满减金额 showReduceMoney:0, // 用于展示的满减金额 // 满赠 useMz:false, mz: new Map(), accumulatedAmountForFullGift: new Map(), // 累积金额(满赠使用的) fullGiftCode:[],// 满赠商品条码 // 优惠券 coupons: new Map(), // 挂起订单集合 pendingOrderMap: new Map(), // 挂起订单的key 在1~3循环 pendingIndex:1, pendingOrderKeys:[], // 存储商品信息 goodsMap:new Map(), response: "", // 支付码 parCode : "", // 总件数 totalCount:0, searchGoodsList: [], timer: null, searchGoods: [], // 卡回执标志 delayResponse:false, canRefund:true, openSku:false, // 保存商品详情的list calGoodsList : [], // 会员码 memberCode: '', // 会员手机 memberPhone: '', // 订单抵扣积分 deductionScore: '', // 会员可用积分 memberCurrentAvailableScore: 0, // 会员等级名称 levelName: '无', // 积分抵扣金额 scoreDeductionPrice: '', // 积分抵扣金额 scoreLimit: 0, // 抵扣前积分 beforeScore: 0, // 抵扣后积分 afterScore: 0, // 会员openid openId: '', // 是否点击了加号或减号的标识 clickFlag: false, deleteFlag: false }, watch: { prodBarcode (){ if(vm.timer){ clearTimeout(vm.timer); } if(!vm.prodBarcode){ this.searchGoodsList = []; return ; } vm.timer = null; vm.timer = setTimeout(() => { vm.queryGoods(); }, 1000*15); let result = []; for(let i=0; i -1){ if(result.length <= 9){ result.push(vm.searchGoods[i]); }else{ break; } } } vm.searchGoodsList = result; } }, methods: { // 支付完成,请求后端进行下单 myDebounce:debounce(function(){ toPayOrder(); },2000), // 退款开始 debounceRefund:debounce(function(){ toRefund(); },2000), queryGoods: function(){ vm.storeId = sessionStorage.getItem("storeId"); $.get("../goods/queryGoodsName?storeId="+vm.storeId+"&goodsName=", function (r) { if (r.code == 0) { vm.searchGoods = r.goodsList; } else { alert(r.msg); } }); }, searchQuery: function (prodBarcode){ vm.prodBarcode = prodBarcode; vm.query(); }, queryOrderStatus:function(){ $.get("../order/queryOrderStatus/"+vm.orderSn, function (r) { alert(r.msg); }); }, queryInveResponse:function(){ $.get("../order/queryInveResponse/"+vm.orderSn1, function(r){ console.log(r.resultMessage); let resultString = ""; if(r.resultMessage != null && r.resultMessage.length > 0){ for(let i = 0 ; i < r.resultMessage.length; i ++){ resultString += i+':'+r.resultMessage[i] + '\r\n'; } } alert(resultString); }) ; }, query: function () { vm.storeId = sessionStorage.getItem("storeId"); var thisGoods = {}; var overflowLi = this.$refs.overflowLi; console.log("vm.$refs.saomiao.value===>" + vm.$refs.saomiao.value); let scanSellVolume = calScanSellVolume(vm.$refs.saomiao.value); console.log("scanSellVolume===>" + scanSellVolume); $.get("../goods/details/"+vm.prodBarcode+"/"+vm.storeId+"/"+vm.prodBarcode+"/"+scanSellVolume, function (r) { if (r.code == 0) { if(r.goodsDetails.length>1) { r.goodsDetails.sellVolume = 1; vm.openSku = true; vm.goodsSkuDetailList = JSON.parse(JSON.stringify(r.goodsDetails)); //此时必须异步执行滚动条滑动至底部 setTimeout(()=>{ overflowLi.scrollTop = overflowLi.scrollHeight; },0) }else{ vm.saveOld(); } } else { alert(r.msg); } }); }, //同条码多sku情况 saveNew:function(value){ vm.storeId = sessionStorage.getItem("storeId"); var overflowLi = this.$refs.overflowLi; // confirm('确定吗?', function () { $.get("../goods/details/"+vm.prodBarcode+"/"+vm.storeId+"/"+value, function (r) { if (r.code == 0) { r.goodsDetails.sellVolume = 1; vm.goodsMap.set(r.goodsDetails.goodsSn,JSON.parse(JSON.stringify(r.goodsDetails))); vm.prodBarcode = ''; calculateGoodsPrice(r); handle(r.goodsDetails,"add"); vm.openSku = false; var data = Object.assign({}, JSON.parse(JSON.stringify(r.goodsDetails))); console.log("商品详情===>" + JSON.stringify(data)); vm.calGoodsList.push(data); //此时必须异步执行滚动条滑动至底部 setTimeout(()=>{ overflowLi.scrollTop = overflowLi.scrollHeight; },0) } else { alert(r.msg); } }); // }) }, //非同条码 saveOld:function(){ vm.storeId = sessionStorage.getItem("storeId"); var overflowLi = this.$refs.overflowLi; console.log("vm.$refs.saomiao.value===>" + vm.$refs.saomiao.value); let scanSellVolume = calScanSellVolume(vm.$refs.saomiao.value); console.log("scanSellVolume===>" + scanSellVolume); $.get("../goods/detailsOld/"+vm.prodBarcode+"/"+vm.storeId+"/"+scanSellVolume, function (r) { if (r.code == 0) { r.goodsDetails.sellVolume = 1; vm.goodsMap.set(r.goodsDetails.goodsSn,JSON.parse(JSON.stringify(r.goodsDetails))); vm.prodBarcode = ''; calculateGoodsPrice(r); handle(r.goodsDetails,"add"); vm.openSku = false; var data = Object.assign({}, JSON.parse(JSON.stringify(r.goodsDetails))); console.log("商品详情=1=>" + JSON.stringify(data)); vm.calGoodsList.push(data); //此时必须异步执行滚动条滑动至底部 setTimeout(()=>{ overflowLi.scrollTop = overflowLi.scrollHeight; },0) } else { alert(r.msg); } }); }, cancelNew: function(){ vm.openSku=false; }, add:function(value){ // 增加数量 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))); 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");*/ // calculateGoodsByMz(goodsDetails,"add"); handleSellVolume(goodsDetails, "add"); // handle(goodsDetails,"add"); break; } } vm.clickFlag = true; }, minus:function(value){ // 减少数量 for(var i = 0 ; i < this.goodsList.length ; i++){ if(this.goodsList[i].id == value){ // 获取当前购物车的数量 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); 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"); calculateGoodsByHalfPrice(goodsDetails,"minus"); // calculateGoodsByMz(goodsDetails,"minus"); goodsDetails.sellVolume = -1; goodsDetails.actualPaymentAmount = -goodsDetails.actualPaymentAmount; goodsDetails.discountedPrice = -goodsDetails.discountedPrice; goodsDetails.goodstaxes = - goodsDetails.goodstaxes; goodsDetails.retailPrice = - goodsDetails.retailPrice; }*/ handleSellVolume(goodsDetails, "minus"); // handle(goodsDetails,"minus"); break; } } vm.clickFlag = true; }, selectItem:function(value) { console.log(value); }, deleteItem:function(value){ vm.deleteFlag = true; vm.clickFlag = true; // 删除这条记录 for(var i = 0 ; i < this.goodsList.length ; i++){ 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 * shopcartGoods.sellVolume); shopcartGoods.discountedPrice = shopcartGoods.discountedPrice - (shopcartGoods.retailPrice * shopcartGoods.sellVolume); vm.discountedPrice = vm.discountedPrice - (shopcartGoods.retailPrice * shopcartGoods.sellVolume); vm.actualPrice = vm.actualPrice + (shopcartGoods.retailPrice * shopcartGoods.sellVolume); vm.freeBardcode.set(shopcartGoods.prodBarcode, 0);// 重置回0 } } } if(vm.halfPrice.get(this.goodsList[i].prodBarcode)){ vm.halfPrice.set(this.goodsList[i].prodBarcode,1); } var goods = this.goodsList[i]; // console.log(goods); // console.log(vm.totalPrice); if(vm.freeBardcode.get(goods.prodBarcode) || vm.freeBardcode.get(goods.prodBarcode) == 0){ var nnum = (((goods.retailPrice * goods.sellVolume) - goods.actualPaymentAmount)/goods.retailPrice); vm.freeBardcode.set(goods.prodBarcode, nnum); } vm.totalPrice = vm.totalPrice - (goods.retailPrice * goods.sellVolume); vm.totalCount = vm.totalCount - (goods.sellVolume); vm.discountedPrice = vm.discountedPrice - goods.discountedPrice; vm.actualPrice = vm.actualPrice - goods.actualPaymentAmount; vm.boughtNum.delete(goods.prodBarcode); 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; this.goodsList.splice(i,1); break; } } this.index = value; }, clearGoodsList:function(){ confirm('确认清空吗?', function () { layer.confirm("清空成功", { skin: 'layui-layer-molv', btn: ['确定'], title: "提示" }, function () { location.reload(); }); }) }, pendingOrder:function(){ if(this.goodsList.length == 0){ alert("购物车中没有商品"); return; } console.log(vm.pendingOrderMap.size); if(vm.pendingOrderMap.size >= 3){ alert("订单挂起最多支持3单"); return; } var pendingObject = { 'goodsList':this.goodsList, 'totalPrice':vm.totalPrice, 'totalCount':vm.totalCount, 'discountedPrice':vm.discountedPrice, 'actualPrice':vm.actualPrice } vm.pendingOrderMap.set(vm.pendingIndex,pendingObject); vm.pendingOrderKeys.push(vm.pendingIndex); var newIndex = ++vm.pendingIndex; vm.pendingIndex = newIndex > 3?1: newIndex; vm.goodsList = []; vm.levelName = ''; vm.deductionScore = ''; vm.memberCurrentAvailableScore = ''; vm.customClearData(); }, toResumePending:function(){ if(vm.pendingOrderMap.size == 0){ alert("当前没有挂起的订单"); return ; } vm.levelName = ''; vm.deductionScore = ''; vm.memberCurrentAvailableScore = ''; $('#pendignOrderModal').modal('show'); }, resumePending:function(key){ if(vm.pendingOrderMap.size == 0){ alert("当前没有挂起的订单"); return ; } if(vm.goodsList.length > 0){ alert("购物车中已有商品,不允许恢复!") return ; } var pendingObject = vm.pendingOrderMap.get(key); console.log(pendingObject); vm.goodsList = pendingObject.goodsList; vm.totalPrice = pendingObject.totalPrice; vm.totalCount = pendingObject.totalCount; vm.discountedPrice = pendingObject.discountedPrice; vm.actualPrice = pendingObject.actualPrice; // 清除恢复的数据 vm.pendingOrderMap.delete(key); removeByValue(vm.pendingOrderKeys,key); $('#pendignOrderModal').modal('hide') }, toOrderSubmit:function(){ if(this.goodsList.length == 0){ alert("请选择商品"); return; } console.log("vm.clickFlag==>" + vm.clickFlag); if (vm.clickFlag) { let value = vm.$refs.couponBarCode.value; if (value != null || value != "" || value != 'undefined' || vm.deleteFlag) { alert("请重新计算优惠价再提交订单!"); return; } } $('#myModal').modal('show') // 每次点击提交订单的时候清空姓名和身份证信息和手机号 vm.$refs.customName.value = ""; vm.$refs.customIDCard.value = ""; let customPhone = vm.userInfo.customPhone; if (customPhone === null || typeof customPhone === 'undefined') { customPhone = ''; } vm.$refs.customPhone.value = customPhone; vm.$refs.couponBarCode.value = ""; if(vm.$refs.couponSn) vm.$refs.couponSn.value = ""; this.userInfo.couponSn = ""; }, // 点击计算优惠价按钮,弹出输入框 calculateOrderPrice : function () { if (this.calGoodsList.length == 0) { alert("请选择商品"); return; } vm.clickFlag = false; $("#calculateOrderPriceDialog").modal('show'); this.couponBarCodeChangeFocus(); }, // 计算优惠价格,返回订单详情数据 calculateOrderPriceSubmit : function () { // console.log("点击计算=====>" + JSON.stringify(vm.goodsList)); var couponBarCode = vm.$refs.couponBarCode.value; if (couponBarCode === null || couponBarCode === '') { confirm("无会员码,不能参加积分抵扣活动!
点击确认开始计算...", function () { calculateOrderPrice(); }); } else { calculateOrderPrice(); } }, // 提交订单 submitOrder:function(){ vm.parCode = this.$refs.payCode.currentValue vm.myDebounce(); },customClearData: function(){ vm.totalPrice = 0; vm.totalCount = 0; vm.discountedPrice = 0; vm.actualPrice = 0; vm.goods={}; vm.goodsDetail = false; // 第二件半价 vm.halfPrice = new Map(); // 买一送一 vm.mysy = []; vm.freeBardcode = new Map(); vm.brandGetOneFree = new Map(); vm.barcodeGetOneFree = new Map(); vm.brandGetOneFree = new Map(); vm.boughtNum = new Map(); // 组合价 vm.zhjsp = new Map(); vm.combinationPrice = new Map(); // 组合价商品的组合价 // 满减 vm.mj = new Map(); vm.accumulatedAmount = new Map();// 累积金额(满减使用的) vm.reduceMoney = 0; // 满减金额 vm.showReduceMoney = 0; // 用于展示的满减金额 // 满赠 vm.mz = new Map(); vm.accumulatedAmountForFullGift = new Map(); // 累积金额(满赠使用的) vm.fullGiftCode = [];// 满赠商品条码 // 优惠券 vm.coupons = new Map(); }, queryIDCardInfo: function(){ $.get("../order/queryIDCardInfo/"+vm.$refs.customPhone.value, function (r){ if(r.code === 0){ var data = r.userEntity; vm.$refs.customName.value = data.username; vm.$refs.customIDCard.value = data.idNo; }else{ alert(r.msg); } }); }, sendDiva: function(){ // document.getElementsByClassName('sendShow').style.display='none'; $('.sendShow').hide(); }, sendDivb: function(){ // document.getElementsByClassName('sendShow').style.display='block'; $('.sendShow').show(); }, getIDCardInfo: function(){ $.post("http://127.0.0.1:8000/idcard/read", function (r){ if(r.code == "0"){ vm.$refs.customName.value = r.rows[0].data.name; vm.$refs.customIDCard.value = r.rows[0].data.id_no; }else if(r.code=="-1"){ alert(r.msg); return; }else{ alert("请连接设备或设备有问题,请联系管理员!"); } }); }, customPhoneBlur:function (){ let customPhone = this.$refs.customPhone.value; if(customPhone){ for(let key in this.userInfoBinding){ if(customPhone == key){ let userInfoBindingValue = this.userInfoBinding[key]; this.$refs.customName.value = userInfoBindingValue.substring(0, userInfoBindingValue.length-18); this.$refs.customIDCard.value = userInfoBindingValue.substring(userInfoBindingValue.length-18); break; } } } }, // 填写并验证顾客信息 submitCustomInfo:function(){ this.userInfo.customName = this.$refs.customName.value ; this.userInfo.customIDCard = this.$refs.customIDCard.value ; this.userInfo.customPhone = this.$refs.customPhone.value; this.userInfo.couponBarCode = this.$refs.couponBarCode.value; var status = $('input:radio:checked').val(); var cmbCity = $('#cmbCity').val(); var cmbProvince = $('#cmbProvince').val(); var cmbArea = $('#cmbArea').val(); var addrUser = $('#addrUser').val(); // console.log('城市三级联动的值:'+cmbProvince+'|'+cmbCity+'|'+cmbArea+'|'+addrUser); if (status == 0) { if (cmbCity =="请选择"){ alert("请选择省!"); return ; } if (cmbProvince =="请选择"){ alert("请选择市!"); return ; } if (cmbArea =="请选择"){ alert("请选择区!"); return ; } if (addrUser == "") { alert("请填写详细地址!"); return ; } } 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){ alert("姓名不能为空!"); return ; } if(!idcardReg.test(this.userInfo.customIDCard)){ alert("请输入正确的身份证号"); return ; } if(!(/^1[3456789]\d{9}$/.test(this.userInfo.customPhone))){ alert("手机号码有误,请重填"); return ; } //将手机号与姓名身份证号进行绑定,下次填写手机号即可 let userInfoBindingKey = this.userInfo.customPhone; let userInfoBindingValue = this.userInfo.customName+this.userInfo.customIDCard; this.userInfoBinding[userInfoBindingKey] = userInfoBindingValue; if(this.userInfo.couponSn && this.userInfo.couponSn != ""){ var coupon = vm.coupons.get(this.userInfo.couponSn); if(coupon == null){ alert("请输入正确的优惠券码"); return ; } } $("#Send").attr("data-dismiss","modal"); $('#payModal').modal('show'); this.payCodeChangeFocus(); $("#payCode").keydown(function(e){ if(e.keyCode==13){ $("#submitOrder").click(); event.preventDefault(); } }); $('body').on('hidden.bs.modal', '.modal', function () { $(this).removeData(); }); }, queryOrderDetail:function(orderSn,pickUpCode){ var storeId = sessionStorage.getItem("storeId"); $.get("../order/orderDetail/"+orderSn, function (r) { if (r.code == 0) { vm.orderProcessRecord = r.resultObj.orderProcessRecordEntity; vm.orderEntity = r.resultObj.orderEntity; vm.goodsDetailList = r.resultObj.goodsList; vm.currentOrderNo = r.resultObj.orderEntity.id; vm.pickUpCode = pickUpCode; vm.tax = r.resultObj.tax; vm.response = r.resultObj.response; if(vm.orderProcessRecord.eleOrderStartTime){ vm.orderProcessRecord.eleOrderStartTime = parsedate(vm.orderProcessRecord.eleOrderStartTime); } if(vm.orderProcessRecord.paymentStartTime){ vm.orderProcessRecord.paymentStartTime = parsedate(vm.orderProcessRecord.paymentStartTime); } if(vm.orderProcessRecord.waybillStartTime){ vm.orderProcessRecord.waybillStartTime = parsedate(vm.orderProcessRecord.waybillStartTime); } if(vm.orderProcessRecord.customsSuccTime){ vm.orderProcessRecord.customsSuccTime = parsedate(vm.orderProcessRecord.customsSuccTime); } if(vm.orderProcessRecord.addOrderStartTime){ vm.orderProcessRecord.addOrderStartTime = parsedate(vm.orderProcessRecord.addOrderStartTime); } } }); }, resendNotice:function(){ confirm('确认重发重置吗?', function () { $.get("../order/resendOrderToCCNET/"+vm.orderEntity.orderSn+"/notice", function (r) { alert(r.msg); }); }) }, resendWaybill:function(){ confirm('确认重发运单吗?', function () { $.get("../order/resendOrderToCCNET/"+vm.orderEntity.orderSn+"/waybill", function (r) { alert(r.msg); }); }) }, resendPayment:function(){ confirm('确认重发支付单吗?', function () { $.get("../order/resendOrderWayBill/"+vm.orderEntity.orderSn, function (r) { alert(r.msg); }); }) }, forceSendToOms:function(){ confirm('确认强制推送清关吗?', function () { $.get("../order/resendOrderToCCNET/"+vm.orderEntity.orderSn+"/forceSend", function (r) { alert(r.msg); }); }) }, resendorder:function(){ confirm('确认重发订单吗?', function () { $.get("../order/resendOrderHkMall/"+vm.orderEntity.orderSn, function (r) { if(r.code == "0"){ alert("重发订单成功"); } else { alert(r.msg); } }); }) }, verification:function(){ if(vm.orderProcessRecord.isCustomsSend != 1){ alert("请等待清关完成"); return ; } confirm('确认核销吗?', function () { $.ajax({ type: "POST", url: "../order/printMsgAndChangeCode", contentType: "application/json", data: JSON.stringify({'id':vm.currentOrderNo,'sessionId':vm.sessionId}), success: function (r) { if (r.ticket != null) { // printArea(r.ticket); console.log("核销打印前,订单号: " + vm.currentOrderNo); var content = getPrintContentOrder(r.ticket, printArea); console.log("核销打印后,小票码: " + vm.pickUpCode + ",订单号: " + r.ticket.ticketHead.orderId); }else{ alert("打印小票失败"); } } }); }) }, verEwbtion:function(){ confirm('确认打印快递单吗?', function () { $.ajax({ type: "POST", url: "../order/printMsgChangeEwb", contentType: "application/json", data: JSON.stringify({'id':vm.currentOrderNo,'sessionId':vm.sessionId}), success: function (r) { if (r.ticket != null) { var content = getPrintContentOrder(r.ticket, printArea); }else{ alert("打印快递单失败"); } } }); }) }, // 退款方法 refundOrder:function(){ vm.debounceRefund(); }, //确认提货 confirmDelivery: function(){ confirm('确认提货吗?', function () { $.get("../pickupcode/confirmDelivery/"+vm.orderEntity.orderSn, function (r) { alert(r.msg); }); }) }, retrySendOrder:function(){ }, getInfo: function (id) { $.get("../sys/notice/info/" + id, function (r) { vm.sysNotice = r.sysNotice; }); }, reload: function (event) { vm.showList = false; vm.showViewList = true; vm.showSaveSupplierGoods = true; var page = $("#jqGrid").jqGrid('getGridParam', 'page'); $("#jqGrid").jqGrid('setGridParam', { postData: { storeId: vm.q.storeId, goodsName: vm.q.goodsName, goodsSn: vm.q.goodsSn, productSn: vm.q.productSn, category: vm.q.category, categoryTwo: vm.q.categoryTwo, goodsBizType:vm.q.goodsBizType, thirdPartyMerchCode: vm.q.thirdPartyMerchCode }, page: page }).trigger("reloadGrid"); vm.handleReset('formValidate'); }, handleSubmit: function (name) { handleSubmitValidate(this, name, function () { vm.saveOrUpdate() }); }, handleReset: function (name) { handleResetForm(this, name); }, logout: function () { confirm('注:您确定要安全退出本次登录吗?', function () { dialogLoading(true); setTimeout(function () { toUrl('../logout?_' + $.now()); }, 500); }); }, couponBarCodeChangeFocus() { this.$nextTick(() => { setTimeout(() => { this.$refs.couponBarCode.focus(); }, 200); }) }, payCodeChangeFocus() { this.$nextTick(() => { setTimeout(() => { this.$refs.payCode.focus(); }, 200); }) } } }); function getPrintContent(ticket) { var content = "
"; // // 打印ogo // content += "
"; // // content += ""; // // content += "2222222222"; // content += ""; // content += "
"; //小票头 content += "
"; content += ticket.shopName content += "
"; content += "
--------------------------------------------------
"; content += "
"; /*content += "收银机号:" + ticket.salesNo; content += "
"; content += "
";*/ content += "收银员:" + ticket.userName; content += "
"; content += "
"; content += "小票码" ; content += "
"; content += "
"; content += ticket.code; content += "
"; content += "
"; content += "订单编号:" + ticket.orderNo; content += "
"; content += "
"; content += "手机号:" + ticket.phone; content += "
"; content += "
"; content += "打印日期:" + ticket.time; content += "
"; content += "
"; content += "该取货单号只有当天有效!" content += "
"; content += "
"; content += "请妥善保管好小票,以免造成个人信息泄露!" content += "
"; content += "
"; return content; } var printAreaCount = 0; var printArea = function printArea(content) { var idPrefix = "printArea_"; removePrintArea(idPrefix + printAreaCount); ++printAreaCount; var iframeId = idPrefix + printAreaCount; var iframeStyle = 'width:0px;height:0px;left:0px;top:0px;'; iframe = document.createElement('IFRAME'); $(iframe).attr({ style: iframeStyle, id: iframeId }); document.body.appendChild(iframe); var doc = iframe.contentWindow.document; // doc.open(); doc.write('
' + content + '
'); doc.close(); var frameWindow = iframe.contentWindow; $(iframe).load(function(){ frameWindow.focus(); frameWindow.print(); alert('打印小票完成'); }); } function printArea2(content) { var idPrefix = "printArea_"; removePrintArea(idPrefix + printAreaCount); printAreaCount++; var iframeId = idPrefix + printAreaCount; var iframeStyle = 'width:0px;height:0px;left:0px;top:0px;'; iframe = document.createElement('IFRAME'); $(iframe).attr({ style: iframeStyle, id: iframeId }); document.body.appendChild(iframe); var doc = iframe.contentWindow.document; doc.open(); doc.write('
' + content + '
'); doc.close(); var frameWindow = iframe.contentWindow; frameWindow.focus(); frameWindow.print(); frameWindow.print(); frameWindow.close(); } var removePrintArea = function (id) { $("iframe#" + id).remove(); }; var webSocket; function openWebSocket() { var storeId = sessionStorage.getItem("storeId"); if ("WebSocket" in window) { console.log("当前浏览器支持WebSocket"); //实现化WebSocket对象 //指定要连接的服务器地址与端口建立连接 //注意ws、wss使用不同的端口。我使用自签名的证书测试, //无法使用wss,浏览器打开WebSocket时报错 //ws对应http、wss对应https。 //kmall测试环境 // webSocket = new WebSocket("ws://183.62.225.124:3080/ws/server/"+storeId); // 预发布环境 // webSocket = new WebSocket("ws://14.29.226.8:8080/ws/server/"+storeId); //kmall海控正式环境 webSocket = new WebSocket("ws://120.76.119.218:8080/ws/server/"+storeId); //kmall本地环境 // webSocket = new WebSocket("ws://127.0.0.1:8089/ws/server/"+storeId); // webSocket = new WebSocket("wss://cb.k1net.cn/ws/server/"+storeId); if (webSocket.readyState === webSocket.CONNECTING) { console.log('1.连接正在打开......'); } // ---------- WebSocket 对象注册事件 ---------- //连接打开事件 webSocket.onopen = function () { if (webSocket.readyState === webSocket.OPEN) { console.log('2.连接已打开'); } console.log('2.向服务端发送测试消息......'); // webSocket.send("2.client发测试消息:Client sent test msg。"); }; //收到消息事件 webSocket.onmessage = function (msg) { var data = Object.assign({}, JSON.parse(msg.data)); console.log('3.接收到服务端信息......data:'+data); vm.sessionId = data.sessionId; vm.pickUpCodeList = []; if(data.pickUpCodeList.length > 0){ for(var i = 0 ; i < data.pickUpCodeList.length ; i++){ // console.log(data.pickUpCodeList[i].storeId); if(data.pickUpCodeList[i].storeId === storeId){ vm.pickUpCodeList.push(data.pickUpCodeList[i]); } } } vm.delayResponse = data.delayResponse; }; //连接关闭事件 webSocket.onclose = function () { if (!webSocket) { console.log('4.Socket连接已关闭'); } }; //发生了错误事件 webSocket.onerror = function () { console.log("5.Socket发生了错误"); } } else { console.log("当前浏览器不支持WebSocket"); return false; } } function sendMessage() { if(webSocket && webSocket.readyState === webSocket.OPEN) { webSocket.send("client manual send message.") } else { console.log('6.未创建WebSocket连接'); } } function closeWebSocket() { if (webSocket != null) { webSocket.close(); webSocket = null; } console.log("关闭WebSocket"); } //窗口关闭时,关闭连接 window.unload = function () { webSocket.close(); }; function parsedate(value){ var date = new Date(value); var year = date.getFullYear(); var month = date.getMonth()+1; //月份+1 var day = date.getDate(); var hour = date.getHours(); var minutes = date.getMinutes(); var second = date.getSeconds(); return year+"-"+month+"-"+day+" "+hour+":"+minutes +":"+second; } function getPrintContentOrder(ticket, callback) { var content = "
"; // 打印ogo content += "
"; content += ""; content += "
"; //小票头 content += "
"; content += ticket.ticketHead.title; content += "
"; /*content += "
"; content += "会员:" + ticket.ticketHead.memberId; content += "
";*/ content += "
"; content += "小票码:" + vm.pickUpCode; content += "
"; content += "
"; content += "订单号:" + ticket.ticketHead.orderId; content += "
"; content += "
"; content += "交易时间:" + ticket.ticketHead.tradeTime; content += "
"; content += "
-------------------------------------------------------
"; //商品信息 content += ""; content += ""; content += ""; content += ""; content += ""; content += ""; // content += ""; content += ""; content += ""; content += ""; content += "
商品名称单价优惠优惠后单价税费数量小计
"; content += "
-------------------------------------------------------
"; content += ""; for (var i=0;i< ticket.goods.length;i++){ content += ""; content += ""; content += ""; content += ""; content += ""; // content += ""; content += ""; content += ""; content += ""; } content += "
"; content += ""; content += ""; content += ""; content += ""; content += ""; content += "
#" + ticket.goods[i].gname + "
"; content += "
" + ticket.goods[i].uprice + "" + ticket.goods[i].discountPrice + "" + ticket.goods[i].afterDiscountPrice + "" + ticket.goods[i].taxation + "" + ticket.goods[i].num + "" + ticket.goods[i].subtotal + "
"; content += "
--------------------------------------------------
"; //收银信息 content += "
"; content += "商品合计:"; content += "" + ticket.cashInfo.goodsTotal + "件"; content += "" + ticket.cashInfo.total + "元"; content += "
"; // content += "
"; // content += "税费合计:"; // content += "" + ticket.cashInfo.goodsTotal + "件"; // content += "" + ticket.cashInfo.taxTotal + "元"; // content += "
"; content += "
"; content += "积分抵扣合计:"; content += "" + ticket.cashInfo.deductionScore + "分"; content += "
"; content += "
"; content += "积分抵扣金额:"; content += "" + ticket.cashInfo.scoreDeductionPrice + "元"; content += "
"; content += "
"; content += "优惠合计:"; content += "" + ticket.cashInfo.oddChange + "元"; content += "
"; content += "
"; content += "实收:"; content += "" + ticket.cashInfo.receipts + "元"; content += "
"; content += "
"; content += "优惠:"; content += "" + (new BigNumber(ticket.cashInfo.coupon).subtract(new BigNumber(ticket.cashInfo.scoreDeductionPrice))) + "元"; content += "
"; // content += "
"; // content += "运费:"; // content += "" + ticket.cashInfo.freight + "元"; // content += "
"; content += "
"; content += "支付渠道:"; // 后期改成从系统中取 content += "" + ticket.cashInfo.paymentMode + ""; content += "
"; content += "
--------------------------------------------------
"; //海关清单信息 // content += "
"; // content += "订单号:" + ticket.cusListing.orderId; // content += "
"; // content += "
"; // content += "运单编号:" + ticket.cusListing.waybillId; // content += "
"; content += "
"; content += "海关清单号:" + ticket.cusListing.invtNo; content += "
"; // content += "
"; // content += "收货人:" + ticket.cusListing.consignee; // content += "
"; // content += "
"; // content += "收货人电话:" + ticket.cusListing.consigneeTel; // content += "
"; // content += "
"; // content += "始发地: 仓库地址 : 广东省深圳市南山区前海保税港区W104" ; // content += "
"; // content += "
"; // content += "交货地:" + ticket.cusListing.deliveryAddress; // content += "
"; content += "
--------------------------------------------------
"; content += "
"; content += "购买跨境商品须知:" content += "
"; content += "
"; content += "1、凡购买跨境商品均不提供发票;
2、单笔限购5000元,年交易限额2.6万元;
3、所有订单经海关放行后方可提货;
4、凭小票领取您的订单商品;
5、非产品质量问题,跨境商品不支持无理由退换货,请及时检查。 " content += "
"; content += "
--------------------------------------------------
"; content += "
"; // content += ticket.ticketFoot.summary; content += "
"; content += "
"; // content += "客服电话:" + ticket.ticketFoot.serviceTel; content += "
"; content += "
"; // content += "网址:" + ticket.ticketFoot.url1; content += "
"; content += "
"; content += "欢迎再次惠顾 --服务电话:" + ticket.ticketMailInfo.shopTel; content += "
"; content += "
"; content += ticket.ticketHead.storeAddress; content += "
"; content += "
"; content += "请保管好收银小票。"; content += "
"; // 打印二维码 content += "
"; content += ``; content += "
"; content += "
"; content += "关注公众号,获取更多优惠信息" content += "
"; content += "
--------------------------------------------------
"; content += "
"; // var strategies = { // "best": function(data){ // return render_of_best(data); // }, // "yto": function(data){ // return render_of_yto(data); // } // }; // // var renderMailInfo = function(exprCode, data){ // return strategies[exprCode](data); // }; // // renderMailInfo('best', ticket); // 面单打印 content += `
收件人
${ticket.cusListing.consignee} ${ticket.cusListing.consigneeTel}
${ticket.ticketMailInfo.consigneeProvince} ${ticket.ticketMailInfo.consigneeCity} ${ticket.ticketMailInfo.consigneeDistrict} ${ticket.ticketMailInfo.consigneeAddress}
发件人
${ticket.ticketMailInfo.senderName} ${ticket.ticketMailInfo.senderTel}
仓库地址:${ticket.ticketMailInfo.senderProvince} ${ticket.ticketMailInfo.senderCity} ${ticket.ticketMailInfo.senderDistrict} ${ticket.ticketMailInfo.senderAddress}
`; let box = "
"; for (let i = 0;i < ticket.goods.length; i++){ let topBorder = 0, bottomBorder = 0; // if (i === 0) { // topBorder = "1px"; // } if (i === ticket.goods.length - 1) { bottomBorder = "1px"; } let paddingBottom = "5px"; if (i === ticket.goods.length - 1) { paddingBottom = "35px"; } box += `
${ticket.goods[i].gname} *${ticket.goods[i].num}
`; } let markBox = `
已验视
`; box += markBox; box += "
"; content += box; if (typeof callback === "function") { callback(content); } return content; } function queryAssistantInfo(){ $.get("../sys/user/info", function (r) { if(r.code == 0){ vm.sysUserInfo = r.user; $.get("../store/getStoresByMerch?merchSn="+r.user.merchSn+"&_=1590374349985",function(result){ if(result.code == 0){ for(var i = 0 ;i < result.list.length; i++){ if(result.list[i].id == r.user.storeId){ vm.storeName = result.list[i].storeName; break; } } } }); } }); } function removeByValue(arr, val) { var index = arr.indexOf(val); if (index > -1) { arr.splice(index, 1); } } 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); 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 = new BigNumber(vm.totalPrice).add(new BigNumber(data.retailPrice)); if("minus" == operatorType){ vm.totalCount = vm.totalCount - 1; }else{ vm.totalCount = vm.totalCount + 1; } if(vm.reduceMoney > 0){ vm.discountedPrice = vm.discountedPrice + data.discountedPrice + vm.reduceMoney; vm.actualPrice = new BigNumber(vm.actualPrice).add(new BigNumber(data.actualPaymentAmount)).subtract(new BigNumber(vm.reduceMoney)); vm.showReduceMoney = vm.showReduceMoney + vm.reduceMoney; vm.reduceMoney = 0; }else{ vm.discountedPrice = vm.discountedPrice + data.discountedPrice ; vm.actualPrice = new BigNumber(vm.actualPrice).add(new BigNumber(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; // console.log("goodsDetails after=====>" + JSON.stringify(vm.goodsList)); } // 下单处理 function toPayOrder(payCode){ $('#payCode').unbind('keydown').keydown(function(event){}); vm.machineCode = sessionStorage.getItem("machineCode"); var status = $('input:radio:checked').val(); var cmbCity = $('#cmbCity').val(); var cmbProvince = $('#cmbProvince').val(); var cmbArea = $('#cmbArea').val(); var addrUser = $('#addrUser').val(); addrUser = cmbProvince+cmbCity+cmbArea+addrUser; // console.log('单选按钮值:'+status); // console.log('城市三级联动的值:'+cmbProvince+'|'+cmbCity+'|'+cmbArea+'|'+addrUser); let scoreDeductionPrice = vm.scoreDeductionPrice; if (scoreDeductionPrice == null) { scoreDeductionPrice = "0"; } else { scoreDeductionPrice = scoreDeductionPrice.toString(); } let deductionScore = vm.deductionScore; if (deductionScore == null) { deductionScore = "0"; } else { deductionScore = new BigNumber(deductionScore).toString() } let actualPrice = vm.actualPrice; if (actualPrice == null) { actualPrice = "0"; } else { actualPrice = new BigNumber(actualPrice).toString() } var param = {'userInfo':vm.userInfo, 'payCode':vm.parCode, 'goodsList':vm.goodsList, 'sessionId':vm.sessionId, 'machineCode':vm.machineCode, 'memberCode': vm.memberCode, 'memberPhone': vm.userInfo.customPhone, 'deductionScore': deductionScore, 'actualPrice': actualPrice, 'scoreDeductionPrice': scoreDeductionPrice, 'scoreLimit': vm.scoreLimit, 'beforeScore': vm.beforeScore, 'afterScore': vm.afterScore, 'openId': vm.openId, 'cmbProvince':cmbProvince, 'cmbCity':cmbCity, 'cmbArea':cmbArea, 'addrUser':addrUser, 'status':status, }; console.log(JSON.stringify(param)); vm.parCode = ""; $.ajax({ type: "POST", url: "../order/orderConfirm", contentType: "application/json", data: JSON.stringify(param), success: function (r) { console.log(r); if (r.code == 0) { if (r.resultObj != null) { $(".form-group input[type=text]").each(function(){ this.value = ''; }) // 打印小票码小票 var content = getPrintContent(r.resultObj); console.log(content); printArea2(content); vm.goodsList = []; vm.customname = '' ; vm.customidcard = ''; vm.levelName = ''; vm.deductionScore = ''; vm.memberCurrentAvailableScore = ''; vm.customClearData(); }else{ // alert("打印小票失败"); } } else { alert(r.msg); } } }); } // 调用后端接口进行退款 function toRefund(){ confirm('确认退款吗?', function () { vm.canRefund = false; $.ajax({ type: "POST", url: "../order/orderHkRefund", contentType: "application/json", data: JSON.stringify({'orderId':vm.currentOrderNo,'sessionId':vm.sessionId}), success: function (r) { if (r.code == 0) { vm.canRefund = true; alert("退款成功") } else if (r.code == 500) { vm.canRefund = true; alert(r.msg) } else { alert("退款失败,请联系管理员"); } } }); }) } calScanSellVolume = function (prodBarcode) { let goodsList = vm.goodsList; console.log("prodBarcode typeof===>" + typeof prodBarcode); console.log("prodBarcode===>" + prodBarcode); if (goodsList === null || goodsList.length === 0) { return 2; } let sellVolume = 1; goodsList.forEach(goods => { if (prodBarcode === goods.prodBarcode) { sellVolume = sellVolume + goods.sellVolume; } }); return sellVolume; } /** * 计算当前购物栏商品优惠价格 */ calculateOrderPrice = function() { let param = { 'storeId': sessionStorage.getItem("storeId"), 'memberCode': vm.$refs.couponBarCode.value, 'goodsList' : vm.goodsList }; // console.log("请求参数===>" + JSON.stringify(param)); $.ajax({ type: "POST", url: "../order/calculateOrderDiscountPrice", contentType: "application/json", data: JSON.stringify(param), success: function (r) { if (r.code === 0) { let calGoodsList = r.data.goodsDetailsDtos; // 更新购物栏中数据 // console.log("返回====>" + JSON.stringify(r)); // console.log("计算前数据===>" + JSON.stringify(vm.goodsList)); vm.goodsList.clear(); calGoodsList.forEach(goods => vm.goodsList.push(goods)); vm.actualPrice = new BigNumber(r.data.orderTotalPrice).toString(); vm.memberCode = r.data.memberCode; vm.memberPhone = r.data.memberPhone; vm.openId = r.data.openId; vm.deductionScore = r.data.deductionScore; vm.memberCurrentAvailableScore = r.data.memberCurrentAvailableScore; vm.levelName = r.data.levelName; vm.scoreDeductionPrice = r.data.scoreDeductionPrice; vm.scoreLimit = r.data.scoreLimit; vm.beforeScore = r.data.beforeScore; vm.afterScore = r.data.afterScore; vm.userInfo.customPhone = r.data.memberPhone; vm.$refs.customPhone.value = r.data.memberPhone; // console.log("memberPhone===>" + r.data.memberPhone); // console.log("this.userInfo.customPhone===>" + vm.userInfo.customPhone); // console.log("vm.$refs.customPhone.value===>" + vm.$refs.customPhone.value); // console.log("计算后数据===>" + JSON.stringify(calGoodsList)); // console.log("替换后数据===>" + JSON.stringify(vm.goodsList)); $("#calculateOrderPriceDialog").modal('hide'); alert("计算完成"); } else if (r.code === 500) { alert(r.msg); } else { alert("计算失败,请联系管理员"); } } }); } /** * 处理加减按钮操作 * @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, 2, BigNumber.ROUND_HALF_UP); // 当前商品税款 let currentGoodsTax = new BigNumber(currentGoodsDetail.goodstaxes); // 当前商品零售价 let retailPrice = new BigNumber(currentGoodsDetail.retailPrice); // 单个商品时的税款 let singleTax = new BigNumber(currentGoodsTax.divide(number).toString(), 2, BigNumber.ROUND_HALF_UP); // 单个商品时的应支付金额 let singleActualPaymentAmount = new BigNumber(currentActualPaymentAmount.divide(number).toString(), 2, BigNumber.ROUND_HALF_UP); // 当前总价 let currentTotalPrice = new BigNumber(vm.totalPrice, 2, BigNumber.ROUND_HALF_UP); // 当前实际支付价 let currentActualPrice = new BigNumber(vm.actualPrice, 2, BigNumber.ROUND_HALF_UP); let storeId = sessionStorage.getItem("storeId"); let sku = currentGoodsDetail.sku; let prodBarcode = currentGoodsDetail.prodBarcode; if ('add' === type) { number = number + 1; $.get("../goods/number/add/"+ storeId +"/" + sku + "/" + prodBarcode + "/" + number, function (res) { if (res.code === 0) { 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 if (res.code === 500) { alert(res.msg); } else { alert("未知异常!请联系管理员!"); } }); } 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)); }