diff --git a/packageB/components/catch/catch.js b/packageB/components/catch/catch.js
index 5d4cd94..453b229 100644
--- a/packageB/components/catch/catch.js
+++ b/packageB/components/catch/catch.js
@@ -10,9 +10,7 @@ Component({
object:null,
index:0,
is_fw:0,
-
- barcode_canvas:null,
- qrcode_canvas:null,
+
},
properties: {
// 这里定义了innerText属性,属性值可以在组件使用时指定
@@ -21,23 +19,10 @@ Component({
},
methods: {
- //关闭
- close: function (e) {
- this.setData({q_show: 0,barcode_canvas:null,qrcode_canvas:null });
- this.triggerEvent('close',{},{bubbles: true});
- },
-
- //打开
- open:function (e) {
- this.data.index++;
- var list=[{index:this.data.index }];
-
- this.setData({q_show: 1,object:e,barcode_canvas:list,qrcode_canvas:list,is_fw:e.is_fw });
- var val=e.val;
-
- // barcode('barcode'+this.data.index,val, 620, 160,this);
- qrcode('qrcode'+this.data.index, val, 520, 520,this);
- }
+ go_url:function (e) {
+ var url=e.currentTarget.dataset.url;
+ getApp().goto(url);
+ }
},
diff --git a/packageB/components/catch/catch.wxml b/packageB/components/catch/catch.wxml
index 2710fdf..bcebe7a 100644
--- a/packageB/components/catch/catch.wxml
+++ b/packageB/components/catch/catch.wxml
@@ -4,7 +4,7 @@
-
+
进店逛逛
diff --git a/packageB/pages/zuhegou/index/index.js b/packageB/pages/zuhegou/index/index.js
index 3806d41..ee2ceb0 100644
--- a/packageB/pages/zuhegou/index/index.js
+++ b/packageB/pages/zuhegou/index/index.js
@@ -125,27 +125,12 @@ Page({
onLoad: function (options) {
self = this;
this.data.id = options.id;
-
- //获取活动信息
- var url = "/api/weshop/prom/zhbuy/get/" + os.stoid + "/" + options.id;
- getApp().request.get(url, {
- success: function (e) {
- if (e.data.code == 0 && e.data.data) {
- self.setData({act: e.data.data});
- if (e.data.data.is_end == 0) {
- //-- 获取商品列表 --
- self.get_list();
- self.countDown();
- }
- } else {
- wx.showToast({
- title: e.data.msg,
- icon: 'none',
- duration: 2000
- })
- }
- }
- });
+ //如果有会员的时候
+ var userInfo = getApp().globalData.userInfo;
+ if(!userInfo){
+ getApp().goto("/pages/togoin/togoin");
+ return false;
+ }
},
/**
@@ -158,8 +143,50 @@ Page({
//如果有会员的时候
var userInfo = getApp().globalData.userInfo;
if (userInfo) {
+ if(!th.data.is_get_act){
+ //获取活动信息
+ var url = "/api/weshop/prom/zhbuy/get/" + os.stoid + "/" + th.data.id+"/"+userInfo.user_id;
+ getApp().request.get(url, {
+ success: function (e) {
+ th.data.is_get_act=1;
+ if (e.data.code == 0 && e.data.data) {
+ self.setData({act: e.data.data});
+ if(e.data.data.is_show!=1){
+ th.setData({error:'活动未开启'});
+ return false;
+ }
+
+ if(ut.gettimestamp()=th.data.act.end_time ) {
+ return false;
+ }
//获取头像的分享
th.get_head_temp(function () {
var txt = th.data.act.zhprice + "元任选" + th.data.act.zhbuyqty + "件";
@@ -172,7 +199,7 @@ Page({
txt = "活动时间:" + start + " - " + end;
imgDraw.views[3].text = txt;
- var scene = th.data.gid + "";
+ var scene = th.data.id + "";
var user_id = getApp().globalData.user_id;
scene += "_" + user_id;
///二微码
@@ -187,105 +214,113 @@ Page({
}
})
})
- })
- //获取用户的默认门店
- getApp().get_user_store(function (e) {
- if (!e) {
- th.data.fir_def_store = {}; //赋值空对象
- return false;
- }
- var ee = JSON.parse(JSON.stringify(e));
- var appd = getApp().globalData;
- //-- 等待定位系统的开启 --
- th.waitfor(15, th.data.is_get_local_ok, function () {
- var e = JSON.parse(JSON.stringify(ee));
- //如果有开启近距离的话,同时距离优不一样了
- if (that.data.lat != null) {
- //如果经纬度有变化的话
- if (e && appd.lat == that.data.lat && appd.lon == that.data.lon && e.distance > 0) {
- that.set_def_storage(e);
- } else {
- //要用接口是获取距离,js的计算不准
- getApp().request.promiseGet("/api/weshop/pickup/list", {
- data: {
- store_id: os.stoid,
- pickup_id: e.pickup_id,
- lat: th.data.lat,
- lon: th.data.lon
- },
- }).then(res => {
- if (res.data.code == 0) {
- e = res.data.data.pageData[0];
- if (e) {
- e.is_no_dis = ee.is_no_dis;
- appd.pk_store = e;
- that.set_def_storage(e);
+
+ //获取用户的默认门店
+ getApp().get_user_store(function (e) {
+ if (!e) {
+ th.data.fir_def_store = {}; //赋值空对象
+ return false;
+ }
+ var ee = JSON.parse(JSON.stringify(e));
+ var appd = getApp().globalData;
+ //-- 等待定位系统的开启 --
+ th.waitfor2(15, 'is_get_local_ok', function () {
+
+ if(!th.data.is_get_local_ok) return false;
+
+ var e = JSON.parse(JSON.stringify(ee));
+ //如果有开启近距离的话,同时距离优不一样了
+ if (that.data.lat != null) {
+ //如果经纬度有变化的话
+ if (e && appd.lat == that.data.lat && appd.lon == that.data.lon && e.distance > 0) {
+ that.set_def_storage(e);
+ } else {
+ //要用接口是获取距离,js的计算不准
+ getApp().request.promiseGet("/api/weshop/pickup/list", {
+ data: {
+ store_id: os.stoid,
+ pickup_id: e.pickup_id,
+ lat: th.data.lat,
+ lon: th.data.lon
+ },
+ }).then(res => {
+ if (res.data.code == 0) {
+ e = res.data.data.pageData[0];
+ if (e) {
+ e.is_no_dis = ee.is_no_dis;
+ appd.pk_store = e;
+ that.set_def_storage(e);
+ }
+
}
+ })
+ }
+ appd.lat = that.data.lat;
+ appd.lon = that.data.lon;
+ } else {
+ if (e) {
+ e.distance = null;
+ that.set_def_storage(e);
+ }
+ }
+ })
+ });
+
+ //----获取系统参数-----
+ getApp().getConfig2(function (e) {
+ ee.setData({
+ bconfig: e,
+ sales_rules: e.sales_rules,
+ });
+ //设置基本参数
+ th.wait_for_store_config(e);
+
+ var json_d = JSON.parse(e.switch_list);
+ ee.setData({
+ store_config: e,
+ sys_switch: json_d,
+ is_closecoupon: json_d.is_closecoupon,
+ is_newsales_rules: json_d.is_newsales_rules,
+ is_open_offline: json_d.is_pricing_open,
+ sales_rules: e.sales_rules
+ });
+ //-- 计算等级价相关 --
+ var swithc_list = e.switch_list;
+ var sw_arr = JSON.parse(swithc_list);
+ //---如果后台又开等级卡的开关---
+ if (sw_arr.rank_switch && sw_arr.rank_switch == "2") {
+ th.setData({rank_switch: true});
+ //---回调卡的列表---
+ th.getPlusCardType(function (ob) {
+ th.setData({card_list: ob.card_list});
+ var user = getApp().globalData.userInfo;
+ if (!user) return false;
+ if (user.card_field && user['card_expiredate']) {
+ var str = user['card_expiredate'].replace(/-/g, '/');
+ var end = new Date(str);
+ end = Date.parse(end) / 1000;
+ var now = ut.gettimestamp();
+ //--- 判断是等级会员,且在有效期范围内 ---
+ if (user.card_field && now < end) {
+ var card_name = ob.name_map.get(user.card_field);
+ th.setData({
+ card_field: user.card_field,
+ card_name: card_name,
+ card_list: ob.card_list
+ });
}
- })
- }
- appd.lat = that.data.lat;
- appd.lon = that.data.lon;
- } else {
- if (e) {
- e.distance = null;
- that.set_def_storage(e);
- }
+ }
+
+ })
}
- })
- });
- }
+ }, 1);
- //----获取系统参数-----
- getApp().getConfig2(function (e) {
- ee.setData({
- bconfig: e,
- sales_rules: e.sales_rules,
- });
- //设置基本参数
- th.wait_for_store_config(e);
-
- var json_d = JSON.parse(e.switch_list);
- ee.setData({
- store_config: e,
- sys_switch: json_d,
- is_closecoupon: json_d.is_closecoupon,
- is_newsales_rules: json_d.is_newsales_rules,
- is_open_offline: json_d.is_pricing_open,
- sales_rules: e.sales_rules
- });
+ })
+
+ }
- //-- 计算等级价相关 --
- var swithc_list = e.switch_list;
- var sw_arr = JSON.parse(swithc_list);
- //---如果后台又开等级卡的开关---
- if (sw_arr.rank_switch && sw_arr.rank_switch == "2") {
- th.setData({rank_switch: true});
- //---回调卡的列表---
- th.getPlusCardType(function (ob) {
- th.setData({card_list: ob.card_list});
- var user = getApp().globalData.userInfo;
- if (!user) return false;
- if (user.card_field && user['card_expiredate']) {
- var str = user['card_expiredate'].replace(/-/g, '/');
- var end = new Date(str);
- end = Date.parse(end) / 1000;
- var now = ut.gettimestamp();
- //--- 判断是等级会员,且在有效期范围内 ---
- if (user.card_field && now < end) {
- var card_name = ob.name_map.get(user.card_field);
- th.setData({
- card_field: user.card_field,
- card_name: card_name,
- card_list: ob.card_list
- });
- }
- }
- })
- }
- }, 1);
},
@@ -426,24 +461,44 @@ Page({
return false;
} else {
th.setData({is_no_pipei: 0});
- th.add_cart_func();
+ th.check_is_in_cart(function () {
+ th.add_cart_func();
+ })
}
} else {
+
+ var txt = "list[" + index + "].haveAdded";
+ var txt1 = "list[" + index + "].num";
+ var txt2 = "list[" + index + "].showNum";
+ th.data.sele_g = this.data.list[index];
+
+
wx.showModal({
title: '温馨提示',
content: '确定将该商品移出购物车?',
success (res) {
if (res.confirm) {
console.log('用户点击确定');
- title = '移除购物车成功';
- th.setData({
- [txt1]: 1,
- [txt2]: false,
- [txt]: !haveAdded,
- });
- wx.showToast({
- title: title,
- icon: 'success',
+
+ var url = '/api/weshop/cart/del/' + os.stoid + '/' + th.data.sele_g.cart_id;
+ getApp().request.delete(url, {
+ success:function (res) {
+
+ if(res.data.code==0) {
+ title = '移除购物车成功';
+ th.setData({
+ [txt1]: 1,
+ [txt2]: false,
+ [txt]: false,
+ });
+ wx.showToast({
+ title: title,
+ icon: 'success',
+ });
+
+ th.re_sum_price();
+ }
+ }
});
} else if (res.cancel) {
console.log('用户点击取消')
@@ -469,6 +524,9 @@ Page({
return false;
}
+ if(this.data.changing) return false;
+ this.data.changing=1;
+
var index = e.currentTarget.dataset.index;
this.data.sele_g = this.data.list[index];
this.data.sele_index=index;
@@ -503,6 +561,8 @@ Page({
return false;
}
+ if(th.data.changing) return false;
+ th.data.changing=1;
th.data.sele_g = item;
th.data.sele_index = index;
th.data.goodsInputNum = check_num;
@@ -510,21 +570,34 @@ Page({
return false;
}
+ var txt = "list[" + index + "].haveAdded";
+ var txt1 = "list[" + index + "].num";
+ var txt2 = "list[" + index + "].showNum";
+
wx.showModal({
title: '温馨提示',
content: '确定将该商品移出购物车?',
success (res) {
if (res.confirm) {
-
- self.setData({
- showNum: false,
- haveAdded: false,
- });
- wx.showToast({
- title: '移除购物车成功',
- icon: 'success',
+ var url = '/api/weshop/cart/del/' + os.stoid + '/' + item.cart_id;
+ getApp().request.delete(url, {
+ success:function (res) {
+ if(res.data.code==0) {
+ var title = '移除购物车成功';
+ th.setData({
+ [txt1]: 1,
+ [txt2]: false,
+ [txt]: false,
+ });
+ wx.showToast({
+ title: title,
+ icon: 'success',
+ });
+ th.re_sum_price();//重新统计数量和总金额
+ }
+ }
});
- th.re_sum_price();//重新统计数量和总金额
+
} else if (res.cancel) {
console.log('用户点击取消')
self.setData({
@@ -639,19 +712,19 @@ Page({
//------定时等待某个值,有值才进行运算--------
- waitfor: function (n, pop_value, func) {
+ waitfor2: function (n, pop_value, func) {
var th = this;
if (n <= 0) {
func()
return false
}
- if (pop_value) {
+ if (th.data[pop_value]) {
func();
return false;
}
setTimeout(function () {
--n;
- th.waitfor(n, pop_value, func)
+ th.waitfor2(n, pop_value, func)
}, 1000);
},
@@ -808,7 +881,7 @@ Page({
th.data.adding = 0;
return getApp().my_warnning("库存不足!", 0, th);
}
- if (th.data.goodsInputNum > o.buyqty) {
+ if (th.data.goodsInputNum > o.buyqty && o.buyqty>0) {
th.data.adding = 0;
return getApp().my_warnning("超出商品活动限购!", 0, th);
}
@@ -953,10 +1026,11 @@ Page({
//---------拿出门店分类和门店------------
get_sto(e) {
var th = this;
- this.waitfor(15, th.data.is_get_local_ok, function () {
+ this.waitfor2(15, 'is_get_local_ok', function () {
if (!th.data.sele_g) return false;
var dd = null;
- var g_distr_type = th.data.sele_g.distr_type;
+ var g_distr_type =0;
+ if(th.data.sele_g) g_distr_type=th.data.sele_g.distr_type;
if (g_distr_type != 0) {
dd = {
store_id: os.stoid,
@@ -1452,8 +1526,6 @@ Page({
var txt3 = "list[" + index + "].cart_id";
var txt4 = "list[" + index + "].current_price";
-
-
//----先看会员在购物车中是否加入了该商品-----
getApp().request.get("/api/weshop/cart/page", {
data: {
@@ -1573,12 +1645,17 @@ Page({
}
all_price = aprice;
}
-
+ this.data.changing=0;
this.setData({
all_price: all_price,
need_to_buy: need_to_buy,
all_num: all_num
})
+
+ if(all_num<=0){
+ th.data.sele_store = 0; //什么都没有选,就没有选择了门店
+ }
+
},
go_cart:function () {
diff --git a/packageB/pages/zuhegou/index/index.wxml b/packageB/pages/zuhegou/index/index.wxml
index 5b59aa2..55fa95d 100644
--- a/packageB/pages/zuhegou/index/index.wxml
+++ b/packageB/pages/zuhegou/index/index.wxml
@@ -1,5 +1,5 @@
-
+
以下商品{{act.zhprice}}元任选{{act.zhbuyqty}}件
规则详情
@@ -149,7 +149,7 @@
-
+{{error}}
diff --git a/pages/cart/cart/cart.js b/pages/cart/cart/cart.js
index 6774178..07e3e73 100644
--- a/pages/cart/cart/cart.js
+++ b/pages/cart/cart/cart.js
@@ -4,8 +4,9 @@ var t = getApp(),
os=oo,
app = getApp(),
rq = t.request,
- ut = require("../../../utils/util.js");
-var regeneratorRuntime = require('../../../utils/runtime.js');
+ ut = require("../../../utils/util.js"),
+ zh_calc = require("zh_calculate.js");
+ var regeneratorRuntime = require('../../../utils/runtime.js');
Page({
data: {
@@ -32,6 +33,8 @@ Page({
service_data:null,
max_sw_height:200,
+
+ zhhe_prom:[], //组合活动需要显示差多少件
},
onLoad: function() {
var a = this,ee=a;
@@ -49,7 +52,7 @@ Page({
//判断是否有登录
t.auth.hadAuth() && t.getUserInfo(function() {
- a.getCardList();
+ //a.getCardList();
});
},
@@ -139,7 +142,9 @@ Page({
clearInterval(i);
}
},
-
+ onUnLoad(){
+ getApp().globalData.cart_zh_act=null;
+ },
//-------------获取购物车列表,要安装门店进行分类订单-----------
getCardList: function() {
var th = this;
@@ -291,7 +296,42 @@ Page({
}
})
if (!isok) continue;
- } else if(item.prom_type == 0) {
+ }
+ else if (item.prom_type == 7) {
+ var isok = 1;
+ //如果有组合购
+ var url="/api/weshop/prom/zhbuy/get/"+os.stoid+"/"+item.prom_id+"/"+getApp().globalData.userInfo.user_id;
+ await getApp().request.promiseGet(url, {}).then(res => {
+ if(res.data.code==0 && res.data.data){
+ if(res.data.data.is_show!=1){
+ return false;
+ }
+ //如果活动已经结束
+ if(res.data.data.is_end==1){
+ isok=0;
+ }
+ //已经结束
+ if(ut.gettimestamp()>res.data.data.end_time){
+ isok=0;
+ }
+ //还未开始
+ if(ut.gettimestamp() {
if (res.data.code == 0) {
@@ -306,7 +346,6 @@ Page({
}
}
})
-
}
all_num += item.goods_num;
@@ -351,9 +390,7 @@ Page({
}
}
-
-
- if(th.data.is_open_offline && th.data.is_open_offline>0){
+ if(th.data.is_open_offline && th.data.is_open_offline>0 && th.data.sales_rules==2){
//-- 此时要实时更新线下取价价格 --
for(var i=0;i {
+ if (ut.ajax_ok(res)) {
+ gdlist = res.data.data.pageData;
+ }
+ })
+ //获取活动需要的商品列表
+ u_item.zh_prom_goods[h_item.prom_id]=gdlist;
+ }
+ }
- th.setData({
+
+ th.setData({
requestData: arr,
all_num: all_num,
is_load: 1,
@@ -407,8 +474,7 @@ Page({
});
continue;
}
-
-
+
//如果商品下架了,或者商品是赠品,一开始都要清除
if (good.is_show == 0) {
var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
@@ -482,7 +548,7 @@ Page({
var wlist="";
for(var i in list.goods){
//如果商品有促销活动
- if(list.goods[i].prom_type>0) continue;
+ if(list.goods[i].prom_type>0 || list.goods[i].prom_type==7 ) continue;
wlist+= encodeURIComponent(list.goods[i].erpwareid)+",";
}
wlist=ut.sub_last(wlist);
@@ -712,6 +778,7 @@ Page({
if(dda && dda.length>0){
for (var i = 0; i < dda.length; i++) {
var item = dda[i].goods;
+
if (!e.data.checkAllToggle) {
var txt = "requestData[" + i + "].selected";
e.setData({
@@ -721,6 +788,12 @@ Page({
var fir = 0;
for (var j = 0; j < item.length; j++) {
if(item[j].is_gift) continue;
+
+ var obj=JSON.parse(JSON.stringify(item[j]));
+ //计算之前先移除
+ zh_calc.remove_zhprom(dda,i,obj);
+
+
if (fir == 0) {
fir = item[j].distr_type;
} else {
@@ -730,16 +803,24 @@ Page({
break;
}
}
- var txt = "requestData[" + i + "].goods[" + j + "].selected"
- e.setData({
+ var txt = "requestData[" + i + "].goods[" + j + "].selected";
+
+ if(e.data.checkAllToggle) obj.goods_num=0;
+ zh_calc.add_zhprom(dda,i,obj);
+
+ e.setData({
[txt]: !e.data.checkAllToggle,
})
+
if (!e.data.checkAllToggle) {
- tfeel += item[j].goods_num * item[j].goods_price;
+ //组合购的金额要另外算
+ if(item[j].prom_type!=7)
+ tfeel += item[j].goods_num * item[j].goods_price;
t_num += item[j].goods_num;
}
- }
- }
+ }
+ }
+
if (text_arr != "") {
wx.showModal({
@@ -748,6 +829,13 @@ Page({
});
return false;
} else {
+
+ for (var i = 0; i < dda.length; i++) {
+ //总的价格,把组合商品的价格拿出来
+ var zh_calc_res=zh_calc.calculate_zh(dda,i,this);
+ tfeel+=zh_calc_res.tfeel;
+ }
+
e.setData({
checkAllToggle: !e.data.checkAllToggle,
total_fee: tfeel.toFixed(2),
@@ -1031,7 +1119,6 @@ Page({
//-- 购物车 --
if(car && car.length>0){
for (var a = 0; a < car.length; a++) {
- var c_item=car[a];
var item = car[a].goods,
is_s_sele = 1;
var offline_price=0;
@@ -1039,21 +1126,38 @@ Page({
for (var c = 0; c < item.length; c++) {
if(item[c].is_gift) continue;
all_num += item[c].goods_num;
+
+ //不管怎么样都要移出去
+ var obj=JSON.parse(JSON.stringify(item[c]));
+ zh_calc.remove_zhprom(car,a,obj);
if (item[c].selected == 0) {
ischeck = 0;
is_s_sele = 0;
+ if(item[c].prom_type==7) {
+ obj.goods_num=0;
+ zh_calc.add_zhprom(car,a,obj);
+ }
} else {
- tfeel += item[c].goods_num * item[c].goods_price;
+ if(item[c].prom_type==7){
+ //先把商品放入组合计算的专用的区域
+ zh_calc.add_zhprom(car,a,obj);
+ }else{
+ tfeel += item[c].goods_num * item[c].goods_price;
+ }
t_num += item[c].goods_num;
}
//-- 如果这个商品是线下取价的时候 --
- if(item[c].is_offline){
+ if(item[c].is_offline && item[c].prom_type!=7){
offline_price+= (item[c].goods_price-item[c].offline_price)*item[c].goods_num;
offline_num+=item[c].goods_num;
}
-
}
+ //总的价格,把组合商品的价格拿出来
+ var zh_calc_res=zh_calc.calculate_zh(car,a,th);
+ tfeel+=zh_calc_res.tfeel;
+ offline_price+=zh_calc_res.offline_price;
+ offline_num+=zh_calc_res.offline_num;
var txt = "requestData[" + a + "].selected";
th.setData({
@@ -1358,7 +1462,10 @@ Page({
ob.code=-1;ob.CanOutQty=0;func(ob); return false;
}
- if( t.goods_num>plist.CanOutQty-lock){
+ var c_num=t.goods_num;
+ if(t.need_downlow_num) c_num=t.need_downlow_num;
+
+ if( c_num>plist.CanOutQty-lock){
ob.code=-1;
ob.CanOutQty=plist.CanOutQty-lock
if(ob.CanOutQty<0) ob.CanOutQty=0;
@@ -1480,7 +1587,7 @@ Page({
glist += i_arr[j].goods_id + ",";
ab = 1;
//--普通商品,如果有开启线下库存的功能,要调用线下库存进行计算,赠品不要进行调用线下库存---
- if ((i_arr[j].prom_type == 0 || i_arr[j].prom_type == 3 || i_arr[j].prom_type == 5) && th.data.sales_rules == 2 && i_arr[j].is_gift != 1) {
+ if ((i_arr[j].prom_type == 0 || i_arr[j].prom_type == 3 || i_arr[j].prom_type == 5 || i_arr[j].need_downlow_num ) && th.data.sales_rules == 2 && i_arr[j].is_gift != 1) {
//--获取商品的线下商品ID--
var gd = null;
await getApp().request.promiseGet("/api/weshop/goods/get/" + oo.stoid + "/" + i_arr[j].goods_id, {}).then(res => {
@@ -2072,4 +2179,5 @@ Page({
var url=e.currentTarget.dataset.url;
getApp().goto(url);
}
+
});
\ No newline at end of file
diff --git a/pages/cart/cart/cart.wxml b/pages/cart/cart/cart.wxml
index e48c400..50880fc 100644
--- a/pages/cart/cart/cart.wxml
+++ b/pages/cart/cart/cart.wxml
@@ -88,6 +88,16 @@
物流
+
+
+ 还需购买{{items.zhqty-items.goods_num}}件
+
+
+ 需购买{{items.zhqty}}件
+
+
+
+
@@ -144,6 +154,15 @@
+
+
+
+ {{item.title}}
+ 去凑单
+
+
+
+
当前{{item.offline_num}}件商品,可使用{{item.offline_price}}元店铺优惠
diff --git a/pages/cart/cart/cart.wxss b/pages/cart/cart/cart.wxss
index c792aeb..ad51080 100644
--- a/pages/cart/cart/cart.wxss
+++ b/pages/cart/cart/cart.wxss
@@ -378,3 +378,10 @@ page {
/* background-color: #ddd; */
color: #ccc;
}
+
+.abs2{
+ position: absolute; z-index: 1000;
+ width: 100%;height: 30rpx; background-color: rgba(9,9,9,0.5);
+ text-align: center; line-height: 30rpx;
+ left: 0;bottom: 0;color: #fff; font-size: 20rpx;
+}
diff --git a/pages/cart/cart/zh_calculate.js b/pages/cart/cart/zh_calculate.js
new file mode 100644
index 0000000..b55ff21
--- /dev/null
+++ b/pages/cart/cart/zh_calculate.js
@@ -0,0 +1,295 @@
+module.exports = {
+ //辅助数组添加元素功能
+ find_in_add: function(list, ele) {
+ for (var i in list) {
+ var item = list[i];
+ if (item.goods_id == ele.goods_id) {
+ return false;
+ }
+ }
+ list.push(ele);
+ },
+ //辅助数组添加元素功能
+ find_in_remove: function(list, ele) {
+ for (var i in list) {
+ var item = list[i];
+ if (item.goods_id == ele.goods_id) {
+ list.splice(i, 1);
+ }
+ }
+ },
+
+ //主要是把组合购的商品分离出来
+ add_zhprom: function(car, a, ele) {
+ var point = car[a];
+ if (point.zh_map) {
+ if (point.zh_map[ele.prom_id]) {
+ this.find_in_add(point.zh_map[ele.prom_id].goods, ele);
+ } else {
+ point.zh_map[ele.prom_id] = {
+ goods: [],
+ act: ele.act
+ };
+ point.zh_map[ele.prom_id].goods.push(ele);
+ }
+ } else {
+ point.zh_map = {};
+ point.zh_map[ele.prom_id] = {
+ goods: [],
+ act: ele.act
+ };
+ point.zh_map[ele.prom_id].goods.push(ele);
+ }
+ },
+ //未选中的商品,要从中剔除
+ remove_zhprom: function(car, a, ele) {
+ var point = car[a];
+ if (point.zh_map) {
+ if (point.zh_map[ele.prom_id]) {
+ this.find_in_remove(point.zh_map[ele.prom_id].goods, ele);
+ }
+ }
+ },
+
+ //把组合购的商品价格计算出来
+ calculate_zh: function(car, a, th) {
+ var car_item = car[a];
+ var tfeel = 0,
+ offline_price = 0,
+ offline_num = 0;
+ var txt = "requestData[" + a + "].need_list";
+ if (!car_item.zh_map) {
+ var res = {
+ tfeel: tfeel,
+ offline_price: offline_price,
+ offline_num: offline_num
+ };
+ th.setData({
+ [txt]: null
+ });
+ return res;
+ }
+
+ //活动的列表都存储在这里面,可以快速查询
+ var zh_prom_goods=car_item.zh_prom_goods;
+ //因为可能有多个组合购的活动
+ for (var i in car_item.zh_map) {
+ var bitem = car_item.zh_map[i];
+ var act = bitem.act; //获取到组合购的详情
+ var all_num = 0; //商品数量之和
+ var all_price = 0;
+ var need_to_buy = 0;
+ var all_zhqty = 0; //所有商品要求起购数之和
+ var no_in_arr = []; //剩余的未加入组合购
+
+ var title =""; //提示语;
+ //var goods = bitem.goods;
+ var goods = zh_prom_goods[act.id];
+ //寻找一下
+ function get_num(ite) {
+ for (let v1 in car_item.goods) {
+ var vh = car_item.goods[v1];
+ if (vh.goods_id == ite.goods_id) {
+ return vh;
+ }
+ }
+ return 0;
+ }
+
+ for (var i in goods) {
+ var item = goods[i];
+ item.num = get_num(item).goods_num;
+ item.goods_price=get_num(item).goods_price;
+ item.offline_price=get_num(item).offline_price;
+
+ if (item.num) {
+ all_num += item.num;
+ all_price += item.num * item.goods_price;
+ //当有起购数的控制的时候
+ if (item.zhqty) {
+ all_zhqty += item.zhqty;
+ if (item.num < item.zhqty) {
+ need_to_buy += item.zhqty - item.num;
+ }
+ if (item.num > item.zhqty) {
+ for (var i = 0; i < item.num - item.zhqty; i++) {
+ no_in_arr.push({
+ price: item.goods_price,offline_price:item.offline_price
+ })
+ }
+ }
+ } else {
+ for (var j = 0; j < item.num; j++) {
+ no_in_arr.push({
+ price: item.goods_price,offline_price:item.offline_price
+ })
+ }
+ }
+ } else {
+ if (item.zhqty) {
+ title="必买商品未加购,下单立享【"+act.zhprice+"元任选"+act.zhbuyqty+"件】";
+ need_to_buy += item.zhqty;
+ }
+ }
+ }
+
+ //当满足组合的要求:总数要满足,起购数要满足
+ if (all_num >= act.zhbuyqty && !need_to_buy) {
+ function sortData(a, b) {
+ return a.price - b.price
+ }
+
+ no_in_arr.sort(sortData);
+ var aprice = act.zhprice;
+ if (act.zhbuyqty > all_zhqty) {
+ for (var n = 0; n < act.zhbuyqty; n++) {
+ no_in_arr.pop();
+ }
+ }
+ //看一下剩下的数量有没有满足组合购的要求,以及要不要倍增
+ if (act.is_bz && no_in_arr.length > act.zhbuyqty) {
+ //看一下是几倍
+ var be = parseInt(no_in_arr / act.zhbuyqty);
+ aprice += be * act.zhprice;
+ for (var m = 0; m < be * act.zhbuyqty; m++) {
+ no_in_arr.pop();
+ }
+ }
+ //算一下剩余的钱
+ if (no_in_arr.length) {
+ for (var ii in no_in_arr) {
+ var item = no_in_arr[ii];
+ var gitem=get_num(item);
+ if(gitem) {
+ if (!gitem.need_downlow_num) {
+ gitem.need_downlow_num = 1;
+ }
+ else {
+ gitem.need_downlow_num++;
+ }
+ aprice += item.price;
+ if (item.offline_price) {
+ offline_price += item.goods_price - item.offline_price;
+ offline_num += 1;
+ }
+ }
+ }
+ }
+ all_price = aprice;
+
+ //-- 设置还需要购买多少件,享受活动,前段显示 --
+ var need_to = car_item.need_list;
+ var index = this.find_need_to(need_to, act);
+ if (index > -1) {
+ need_to.splice(index, 1);
+ th.setData({
+ [txt]: need_to
+ });
+ }
+
+ } else {
+ for (var ii in goods) {
+ var item = goods[ii];
+
+
+ var gitem=get_num(item);
+ if(gitem) {
+ gitem.need_downlow_num = item.num;
+
+ if (item.offline_price) {
+ offline_price += (item[ii].goods_price - item[ii].offline_price) * item[ii]
+ .goods_num;
+ offline_num += item[ii].goods_num;
+ }
+ }
+ }
+ if (act.zhbuyqty - all_num > need_to_buy) {
+ need_to_buy = act.zhbuyqty - all_num;
+ }
+ //-- 设置还需要购买多少件,享受活动,前段显示 --
+ var need_to = car_item.need_list;
+ if (all_num <= 0) {
+ var index = this.find_need_to(need_to, act);
+ if (index > -1) {
+ need_to.splice(index, 1);
+ th.setData({
+ [txt]: need_to
+ });
+ }
+ } else {
+ var index = this.find_need_to(need_to, act);
+ if(title=='')
+ title = "再买" + need_to_buy + "件,下单立享【" + act.zhprice + "元任选" + act.zhbuyqty + "件】";
+ if (index != -1) {
+ need_to[index].title = title;
+ } else {
+ if (!need_to) need_to = [];
+ var it = {
+ id: act.id,
+ pickup_id: car_item.pickup_id,
+ title: title
+ };
+ need_to.push(it);
+ }
+ th.setData({
+ [txt]: need_to
+ });
+ }
+
+ }
+ tfeel += all_price;
+ }
+
+ console.log('nyf111');
+ console.log(car_item);
+
+
+ var res = {
+ tfeel: tfeel,
+ offline_price: offline_price,
+ offline_num: offline_num
+ };
+ return res;
+
+
+ },
+
+ find_need_to: function(list, iter) {
+ if (!list || list.length <= 0) return -1;
+ for (var i in list) {
+ var item = list[i];
+ if (item.id == iter.id) {
+ return i;
+ }
+ }
+ return -1;
+ },
+
+ //筛选组合购,纯粹的数组按活动id分组
+ find_split: function(arr) {
+ //过滤只有团购的商品
+ var oarr = arr.goods.filter(function(ele) {
+ return ele.prom_type == 7
+ })
+ if(!oarr || oarr.length==0) return null;
+ //看一下有多少个不同的团购
+ var map = {},dest = [];
+ for (var i = 0; i < oarr.length; i++) {
+ var ai = oarr[i];
+ var index=map[ai.prom_id]
+ if (!index) {
+ dest.push({
+ prom_id: ai.prom_id,
+ data: [ai]
+ });
+ map[ai.prom_id]=dest.length; //存储下标
+ } else {
+ var dj = dest[index-1];
+ dj.data.push(ai);
+ }
+ }
+ return dest;
+ }
+
+
+}
diff --git a/pages/cart/cart2/cart2.js b/pages/cart/cart2/cart2.js
index c30b87a..874de7d 100644
--- a/pages/cart/cart2/cart2.js
+++ b/pages/cart/cart2/cart2.js
@@ -1,3463 +1,3748 @@
-var t = getApp(),app=t, a = t.request, e = require("../../../utils/common.js"),
- s = require("../../../utils/util.js"),ut=s, o = require("../../../utils/md5.js"), to = getApp();
-var oo=t.globalData.setting,os=oo;
+var t = getApp(), app = t, a = t.request, e = require("../../../utils/common.js"),
+ s = require("../../../utils/util.js"), ut = s, o = require("../../../utils/md5.js"), to = getApp();
+var oo = t.globalData.setting, os = oo;
var regeneratorRuntime = require('../../../utils/runtime.js');
var util_pay = require("../../../utils/pay.js");
+var zh_calc = require("zh_calculate.js");
+
+Page({
+ data: {
+ url: t.globalData.setting.url,
+ resourceUrl: t.globalData.setting.resourceUrl,
+ imgUrl: t.globalData.setting.imghost,
+ goods: null,
+ order: null,
+ orderPrices: null,
+ coupons: null,
+ coupon: null,
+ invoiceToggle: !0,
+ payWithUserMoney: !0,
+ payWithPoints: !0,
+ maxWord: 0,
+ enterAddressPage: !1,
+ firstEnter: !0,
+ //页面获取的参数
+ param: null,
+ //提交订单的格式
+ formData: {
+ order_amount: 0,//支付金额
+ total_amount: 0,//总价
+ all_price: 0,//商品卖的总价
+ pay_points: 0,//使用积分
+ user_money: 0,//使用余额
+ couponCode: "",//使用优惠券(多单就用逗号隔开)
+ shipping_price: 0,//物流费用
+ },
+ /*-----------当是购物车结算的时候-------------*/
+ cartlist: null,
+ old_cartlist: null,
+ cartlist_y: null, //购物车原始列表
+ js_use_money: 0, //是否使用余额
+ is_all_zt: 1, //是否全部都是自提
+
+ /*----------------立即购买---------------------*/
+ is_b_now: 0, //0是购物车结算 1立即购买
+ bn_goods: null, //立即购买时候的调用商品
+ bn_use_money: 0,//是否使用余额
+ bn_exp_type: 1, //0是物流 1自提
+ bn_pick: 0, //选择的门店
+ bn_pickname: "", //选择的门店名称
+ bn_t_exp_t: 0, //判断商品和门店一起决定的物流自提的方式0 都可以 1自提 2物流
+
+ bn_plus_cut_price: 0, //显示等级卡会优惠多少钱
+ /*------------------------*/
+ user_addr: null,//物流
+ userinfo: null, //获取会员
+ /*----------物流选择--------*/
+ wu_arr: null,
+ index: 0,
+ w_sele_index: 0,
+
+ //判断页面是返回回来的还是 首次进入的
+ isclose: 1,
+ //申请提现的金额
+ txmon: 0,
+ yuer: 0,
+ //提交中,不重复提交
+ is_summit_ing: 0,
+ //--更优惠券抵用有关,立即购买的,如果是购物车,就要把相应的值,写入cartlist数组中--
+ ckeck_quan_price: 0,
+ check_quan_price_list: '',
+ check_quan_ware_list: '',
+
+ // 设计一个数组来存放已经选择了的券编号,coupon_no是券号,money是面值,coupon_price是真正优惠的价格,数组的下标是pickid
+ //using_quan[11]={coupon_no:"1212121",money:"20",coupon_price:"45"}
+ using_quan: {},
+ open_quan: 0,
+ //选择的券列表
+ selected_quan_list: null,
+ //选择的券的门店
+ selected_quan_pick: null,
+ is_close_quan: 0,
+ disabled: 0,
+ open_express: 0,//控制选择物流名列表 的属性
+
+ is_express: 0, //选中物流的属性
+ expres_name: "", //点击选定
+ isopen: 0, //券的说明
+ is_coupon: null, //选择券的控制属性
+ is_shipping_code: "",//插入用户默认地址
+ wu_arr_txt: "", //要更新的物流的字段
+
+ sales_rules: 1, //默认是显示线上库存
+ isget_by_quan: {}, //是否调用了接口获取包邮券
+ get_by_quan_list: null, //立即购买的
+ get_by_quan_list_cart: {}, //购物车的
+ by_quan_list_cart: null, //点击选择的包邮列表
+
+ //如果是全场包邮了,或者是全场不包邮了,就不要选包邮券
+ is_no_by: {},
+ is_by: {},
+ is_quan_by: {},
+ //--购买赠送的商品--
+ buy_now_gift_goods: null,
+ //--订单优惠--
+ order_prom: {},
+ //-- 购物车优惠活动 --
+ prom_goods_map: {},
+ //-- order_prom_list --
+ order_prom_list_cart: null,
+
+ ispt_goods: 0, //是否平摊至单品,0要平摊 1不平摊
+
+ rank_switch: 0, //是不是开同等级卡
+ show_card: null, //显示的等级卡
+ card_name: '', //显示的卡的名称
+ card_cut_price: null,//减价多少钱
+
+ show_submit: 0, //提交按钮变正常显示
+ is_get_offline: 1,
+
+ tabs: ['门店自提', '快递邮寄'],
+ currentTabIndex: 1,
+ },
+ onLoad: function (t) {
+ wx.setNavigationBarTitle({title: "填写订单",})
+ var th = this;
+ this.setData({is_b_now: t.is_bnow == undefined ? 0 : t.is_bnow,});
+ th.data.param = t;
+ //清理一下,确保最新的系统配置
+ getApp().globalData.config2 = null;
+ //清空is_pick_up
+ getApp().request.put("/api/weshop/useraddress/updatePickUp", {
+ data: {user_id: getApp().globalData.user_id, is_pickup: 0},
+ success: function (s) {
+ }
+ });
+
+
+ },
+ onUnload: function () {
+ this.setData({isclose: 1})
+ },
+ onHide: function () {
+ this.setData({
+ isget_by_quan: {},
+ is_no_by: {},
+ is_by: {}
+ })
+ },
+
+ //----------子页返回父页触发----------
+ onShow: function () {
+ var th = this;
+ th.setData({show_submit: 0}); //让提交先掩藏
+ th.data.g_cart_q_time = null;
+
+ if (th.data.isclose == 0) {
+ wx.navigateTo({
+ url: "/pages/index/index/index"
+ })
+
+ } else {
+ this.getuser_addr(function (ie) {
+
+ console.log("getuser_addr")
+ console.log(ie)
+
+ //地址切换要把包邮券清空
+ if (!th.data.user_addr || !ie || th.data.user_addr.address_id != ie.address_id) {
+ var using_quan = th.data.using_quan;
+ for (var i in using_quan) {
+ var item = using_quan[i];
+ if (item.isby == 1) {
+ var ob = {}, txt = "using_quan[" + i + "]";
+ ob[txt] = {};
+ th.setData(ob);
+ }
+ }
+ th.data.isget_by_quan = {};
+ }
+
+
+ th.data.prom_goods_map = {};
+ th.data.is_summit_ing = 0;
+ //更换地址回来要重新调用计算价钱的接口
+ if (!th.data.user_addr || th.data.user_addr.address_id != ie.address_id) {
+ th.setData({user_addr: ie});
+ if (th.data.is_b_now == 1) {
+ if (th.data.bn_goods) {
+ th.setData({add_back: 1});
+ //th.calculatePrice2();
+ }
+ } else {
+ if (th.data.cartlist) {
+ th.setData({add_back: 1});
+ //th.calculatePrice();
+ }
+ }
+ } else {
+ th.setData({user_addr: ie});
+ }
+ var going = 0;
+
+
+ //使用计时器,避免空现象
+ /*---
+ var jishi= setInterval(function () {
+ if (th.data.is_b_now == 1 && going==0) {
+ if(th.data.bn_goods) {
+ th.calculatePrice2();going=1;clearInterval(jishi);
+ }
+ }else if(going==0) {
+ if (th.data.cartlist){
+ th.calculatePrice();going = 1; clearInterval(jishi);
+ }
+ }
+ },500)--*/
+
+ });
+ var is_card_back = getApp().globalData.is_card_back;
+ //--更新默认地址--,看一下是不是跳到地址页面,同时也不是购买等级卡返回的,这里很重要,否则会重新更新收货物流公司
+ if (!getApp().globalData.is_cart_old && !is_card_back && !getApp().globalData.plus_buy_back) {
+ this.update_code();
+ } else {
+ getApp().globalData.is_cart_old = 0;
+ getApp().globalData.plus_buy_back = 0;
+ }
+ }
+
+ //先获取是否有关闭使用优惠券
+ getApp().getConfig2(function (ee) {
+ var json_d = JSON.parse(ee.switch_list);
+ th.data.json_d = json_d;
+ th.data.ispt_goods = json_d.ispt_goods; //是不是平摊到单品的控制参数赋值
+ var is_default_logistics = json_d.is_default_logistics;
+
+ th.setData({
+ is_close_quan: json_d.is_close_quan,
+ sales_rules: ee.sales_rules,
+ rank_switch: json_d.rank_switch,
+ is_default_logistics: is_default_logistics
+ });
+
+ var rank_switch = json_d.rank_switch;
+ var max_price = -1;
+ var show_card = null;
+ var name = "";
+ //如果有开等级卡的时候,
+ //因为都是调接口,要返回在计算
+ if (rank_switch == 2) {
+ //-- 获取所有的等级卡, --
+ getApp().request.promiseGet("/api/weshop/plus/vip/mem/bership/list?storeId=" + os.stoid,
+ {}).then(res => {
+ if (res.data.code == 0) {
+ var plusCard = res.data.data;
+ //-- 循环判断,拿到最贵的那张卡 --
+ for (var ih in plusCard) {
+ if (plusCard[ih].IsStopBuy == true) {
+ continue;
+ }
+ if (max_price < 0) {
+ max_price = plusCard[ih].CardFee;
+ name = 'card' + plusCard[ih]['CorrPrice'];
+ show_card = plusCard[ih];
+ } else {
+ if (max_price < plusCard[ih].CardFee) {
+ max_price = plusCard[ih].CardFee;
+ name = 'card' + plusCard[ih]['CorrPrice'];
+ show_card = plusCard[ih];
+ }
+ }
+ }
+
+ if (show_card) {
+ name = name.toLowerCase();
+ th.setData({card_name: name, show_card: show_card})
+ }
+ }
+ //-----先获取物流,再获取用户信息,再展示页面-----
+ th.get_wuliu(th.get_info(th.show_page));
+ })
+ } else {
+ //-----先获取物流,再获取用户信息,再展示页面-----
+ th.get_wuliu(th.get_info(th.show_page));
+ }
+
+ }, 1);
+
+ //值在这里换
+ getApp().globalData.plus_buy_back = 0;
+ },
+
+ //-------------------获取物流---------------
+ get_wuliu(func) {
+ var th = this;
+ to.getwuliu(function (e) {
+ //系统是是否开启了默认的物流
+ if (th.data.is_default_logistics) {
+ //如果第一个不是开启默认,说明要让用户自己选
+ if (!e[0].is_default) {
+ th.setData({is_default_logistics: 0});
+ }
+ }
+ th.setData({wu_arr: e})
+ typeof func == "function" && func();
+ })
+ },
+ //------获取会员信息-----先获取用户信息,在进行下一步---
+ get_info: function (func) {
+ var user_id = t.globalData.user_id;
+ to.auth.get_u(func);
+ },
+
+ //------获取会员收货地址-----
+ getuser_addr: function (func) {
+ var th = this;
+ a.get("/api/weshop/useraddress/page", {
+ data: {user_id: to.globalData.user_id, store_id: oo.stoid, pageSize: 600, t: Math.random()},
+ success: function (su) {
+ /*---
+ var user_addr=[
+ { 'address_id': 882, 'user_id': 2661, 'consignee': '测试测试测', 'province': 3102, 'city': 3431, 'district': 3466,
+ 'address': 'ed', 'more_address': '山西-长治市-襄垣县-虎(音si)亭镇', 'mobile': 13012345678,'is_default':1},
+ ];---*/
+ var item = null;
+ if (su.data.code == 0 && su.data.data && su.data.data.pageData) {
+ var user_addr = su.data.data.pageData;
+ var def_item = null;
+ for (var i = 0; i < user_addr.length; i++) {
+ if (user_addr[i]['is_default'] == 1) {
+ def_item = user_addr[i];
+ }
+ if (user_addr[i]['is_pickup'] == 1) {
+ item = user_addr[i];
+ }
+ }
+
+ if (item == null) item = def_item;
+ if (item == null) item = user_addr[0];
+ }
+
+ if (item == undefined) item = null;
+ if (!item) th.setData({user_addr: null}); //地址为空的时候,要清空,因为返回的时候,有缓存
+
+ func(item);
+ }
+ });
+ },
+
+ //----------------展示页面,是再获取用户信息之后--------------
+ show_page: function () {
+ var th = this, ta = this.data.param;
+ //th.setData({ userinfo: getApp().globalData.userInfo,}); //这个余额被缓存了
+
+ //会员的信息,要获取最新
+ var user = getApp().globalData.userInfo;
+ getApp().request.get("/api/weshop/users/get/" + oo.stoid + "/" + user.user_id, {
+ data: {r: Math.random()},
+ success: function (e) {
+ getApp().globalData.userInfo = e.data.data;
+ th.setData({userinfo: e.data.data});
+
+ //选获取地址
+ th.getuser_addr(function (addr) {
+ th.setData({user_addr: addr});
+ //--------------------------立即购买------------------
+ if (ta.is_bnow == 1) {
+ //读取门店
+ to.get_allsto(function (e) {
+ th.setData({allsto: e});
+ //获取立即购买的商品信息
+ th.get_buy_goods(ta.goods_id);
+ });
+ } else {
+ //------------------------购物车结算----------------------
+ //读取门店
+ to.get_allsto(function (e) {
+ th.setData({allsto: e});
+ //-------获取购物车已经选择的商品--------
+ th.get_cart();
+ })
+ }
+ });
+
+ //获取提现金额
+ getApp().request.get("/api/weshop/withdrawals/summoney", {
+ data: {user_id: to.globalData.user_id, store_id: oo.stoid, status: 0},
+ success: function (su) {
+ if (su.data.code == 0) {
+ var yuer = parseFloat(th.data.userinfo.user_money -
+ (th.data.userinfo.frozen_money > 0 ? th.data.userinfo.frozen_money : 0) - su.data.data.summoney).toFixed(2);
+ th.setData({txmon: su.data.data.summoney, yuer: yuer});
+ }
+ }
+ });
+
+ },
+ });
+
+ },
+
+
+ //-----真的获取购物车,入口--------
+ get_cart: function () {
+ var th = this, app = getApp();
+ a.get("/api/weshop/cart/list", {
+ data: {
+ user_id: to.globalData.user_id, selected: 1, state: 0,
+ store_id: oo.stoid, pageSize: 600
+ },
+ success: async function (su) {
+ //按门店分类的数组
+ var arr = new Array();
+ var carr = su.data.data.pageData;
+ th.data.cartlist_y = carr; //存储原始购物车列表
+
+ //---是不是购买等级卡成功的返回---等级卡显示的判断---
+ var is_card_back = getApp().globalData.is_card_back;
+
+ for (var i = 0; i < carr.length; i++) {
+ var item1 = carr[i];
+ //要把优惠活动加入,prom_goods_map中,赠品不要运算
+ if (item1.prom_type == 3 && item1.is_gift != 1) {
+ await th.add_prom_goods_map(item1);
+ }
+
+ //要把组合购的东西拿出来算一下
+ if (item1.prom_type == 7) {
+ var isok = 1;
+ //如果有组合购
+ var url = "/api/weshop/prom/zhbuy/get/" + os.stoid + "/" + item1.prom_id+'/'+getApp().globalData.userInfo.user_id;
+ await getApp().request.promiseGet(url, {}).then(res => {
+ if (res.data.code == 0 && res.data.data) {
+ //如果活动已经结束
+ if (res.data.data.is_end == 1) {
+ isok = 0;
+ }
+ if (ut.gettimestamp() > res.data.data.end_time) {
+ isok = 0;
+ }
+ } else {
+ //未找到商品的活动
+ isok = 0;
+ }
+ item1.act = res.data.data;
+ })
+
+ if (!isok) {
+ getApp().my_warnning("组合购的活动已经过期", 0, th);
+ return false;
+ }
+
+ }
+ }
+
+ //在分组的时候,就不要再调用接口,await
+ for (var i = 0; i < carr.length; i++) {
+ var item = carr[i];
+
+ //-- 如果是等级会员注册返回 --
+ if (is_card_back) {
+ th.data.card_name = th.data.userinfo.card_field;
+ //如果是秒杀的返回,就要把活动弄回0
+ if (item['prom_type'] == 1) {
+ item['prom_type'] = 0;
+ item['prom_id'] = 0;
+ }
+ // 拼团,搭配购不计算,赠品也不计算
+ if (item['prom_type'] != 5 && item['prom_type'] != 6 && !item.is_gift && !item['is_collocation'] && item.goods_price > item[th.data.card_name]) {
+ item.goods_price = item[th.data.card_name];
+ carr[i].goods_price = item[th.data.card_name];
+
+ }
+ } else {
+ // 拼团,搭配购不计算,赠品也不计算,同时会员还未购买等级会员
+ if (item[th.data.card_name] > 0 && item['prom_type'] != 5 && item['prom_type'] != 6 && !th.data.userinfo.card_field
+ && !item.is_gift && !item['is_collocation'] && item.goods_price > item[th.data.card_name]) {
+ item.cut_price1 = item.goods_price - item[th.data.card_name];
+ carr[i].cut_price1 = (item.goods_price - item[th.data.card_name]) * item.goods_num;
+ }
+
+ }
+
+ item.original_img = oo.imghost + item.original_img;
+ /*----接口要弄出来的,先顶着-----*/
+ var pcid = item.pick_id;
+ var find = 0;
+ //----如果有就加进去,没有就新增一个----
+ //-----------循环查找门店-------------
+ if (arr.length > 0) {
+ for (var j = 0; j < arr.length; j++) {
+ if (arr[j].pickup_id == pcid) {
+ arr[j].goods.push(item);
+ //if(item.is_gift!=1){
+ //确定配送方式
+ if (arr[j].distr_t == 0) {
+ arr[j].distr_t = item.distr_type;
+ }
+ var e_t = 0
+ switch (arr[j].distr_t) {
+ case 0:
+ e_t = 1;
+ if (th.data.json_d.pickupway && th.data.json_d.pickupway == 1) e_t = 0;
+ break;
+ case 1:
+ e_t = 1;
+ break;
+ case 2:
+ e_t = 0;
+ break;
+ }
+ arr[j].exp_type = e_t;
+ if (e_t == 0) th.setData({is_all_zt: 0});
+ //}
+
+ //-- 把等级卡会优惠多少钱装进去 --
+ if (item.cut_price) arr[j].card_cut_price += item.cut_price;
+ find = 1;
+ break;
+ }
+ }
+ }
+ //------如果没有找到-----
+ if (find == 0) {
+ var pikname = '', sto = null;
+ //----找到门店名称-----
+ for (var k = 0; k < th.data.allsto.length; k++) {
+ if (pcid == th.data.allsto[k].pickup_id) {
+ pikname = th.data.allsto[k].pickup_name;
+ sto = th.data.allsto[k];
+ break;
+ }
+ }
+ var e_t = 0, dis_t = 0;//物流方式,配送方式
+ if (item.distr_type == 0) {
+ dis_t = sto.distr_type;
+ } else {
+ dis_t = item.distr_type;
+ }
+ switch (dis_t) {
+ case 0:
+ e_t = 1;
+ //-- 系统后台有设置要默认的 --
+ if (th.data.json_d.pickupway && th.data.json_d.pickupway == 1) e_t = 0;
+ break;
+ case 1:
+ e_t = 1;
+ break;
+ case 2:
+ e_t = 0;
+ break;
+ }
+ //如果是物流的话,全部自提的控制要弄成0
+ if (e_t == 0) th.setData({is_all_zt: 0});
+
+ var narr = new Array();
+ narr.push(item);
+
+ //-----------拼装购物车结算的数组,如果有默认物流时要用默认物流编号,计算默认的物流,不管是不是自提都算一下-----------------
+ var m_wind = 0, def_exp_code = getApp().globalData.userInfo.def_exp_code;
+ if (def_exp_code) {
+ for (var k = 0; k < th.data.wu_arr.length; k++) {
+ var item = th.data.wu_arr[k];
+ if (def_exp_code == item.code) {
+ m_wind = k;
+ }
+ }
+ }
+
+ var ie = {
+ pickup_id: pcid,
+ pname: pikname,
+ goods: narr,
+ wind: m_wind,
+ distr_t: dis_t,
+ card_cut_price: 0,
+ exp_type: e_t,
+ goods_price: 0,
+ shipping_price: 0,
+ user_money: 0,
+ total_amount: 0,
+ order_amount: 0,
+ user_note: 0
+ };
+
+ //-- 把等级卡会优惠多少钱装进去 --
+ if (item.cut_price1) ie.card_cut_price += item.cut_price1;
+ arr.push(ie);
+
+ }
+ }
+ //-- 如果是回退回来的情况 --
+ if (th.data.cartlist && th.data.cartlist.length > 0) {
+ for (var kj in th.data.cartlist) {
+ for (var ih in arr) {
+ var ie = arr[ih];
+ if (ie.pickup_id == th.data.cartlist[kj].pickup_id) {
+ ie.exp_type = parseInt(th.data.cartlist[kj].exp_type);
+ ie.wind = parseInt(th.data.cartlist[kj].wind);
+ break;
+ }
+ }
+ }
+ }
+
+ //-- 循环计算一下线下取价 --
+ for (var k = 0; k < arr.length; k++) {
+ var c_item = arr[k];
+ var item = arr[k].goods;
+ var offline_price = 0;
+ var offline_num = 0;
+ for (var c = 0; c < item.length; c++) {
+ //-- 如果这个商品是线下取价的时候 --
+ if (item[c].offline_price > 0 && item[c].prom_type != 7) {
+ offline_price += (item[c].goods_price - item[c].offline_price) * item[c].goods_num;
+ offline_num += item[c].goods_num;
+ }
+ }
+ if (offline_price > 0) {
+ c_item.offline_price = offline_price;
+ c_item.offline_num = offline_num;
+ c_item.is_offline = 1;
+ }
+ }
+
+ //每一个门店内的组合购要进行拆分,
+ //还得把组合商品的多余商品的线下价格算一算
+ for (let var1 in arr) {
+ var u_item = arr[var1];
+ //把组合购进行分组
+ var obj = zh_calc.find_split(u_item);
+ if (!obj) continue;
+ //存储不同活动的商品列表
+ u_item.zh_prom_goods = {};
+ for (let var1 in obj) {
+ var h_item = obj[var1];
+ var gdlist = null;
+ var url1 = "/api/weshop/prom/zhbuyGoods/page";
+ var req_data = {
+ page: 1,
+ pageSize: 2000,
+ store_id: os.stoid,
+ zh_id: h_item.prom_id,
+ }
+ await getApp().request.promiseGet(url1, {
+ data: req_data
+ }).then(res => {
+ if (ut.ajax_ok(res)) {
+ gdlist = res.data.data.pageData;
+ }
+ })
+ //获取活动需要的商品列表
+ u_item.zh_prom_goods[h_item.prom_id] = {gdlist: gdlist, act: h_item.act};
+ }
+ zh_calc.fir_set_arr(u_item, th);
+ }
+ //深拷贝
+ th.data.old_cartlist = JSON.parse(JSON.stringify(arr));
+ th.setData({
+ cartlist: arr,
+ });
+ //--- 获取一下看有没有优惠券 ----
+ setTimeout(function () {
+ var frozenQuan = null;
+ var url0 = "/api/weshop/users/frozenQuan/listFrozenQuan/" + app.globalData.user_id;
+ app.request.promiseGet(url0, {1: 1}).then(res => {
+ if (res.data.code == 0) {
+ frozenQuan = res.data.data;
+ th.data.frozenQuan = frozenQuan;
+ }
+ th.calculatePrice();
+ th.get_cart_quan();
+ })
+
+ }, 500)
+
+ }
+ });
+ },
+
+ //-----获取立即购买的商品信息,入口----
+ get_buy_goods: function (e) {
+ var th = this;
+ var gg = to.get_b_now();
+ //--------如果goods_id一样,就是要立即购买-----
+ if (e == gg.goods_id) {
+ a.get("/api/weshop/goods/get/" + oo.stoid + "/" + e, {
+ success: async function (t) {
+ var gd = t.data.data;
+ if (!gd) return false;
+
+ t.data.data.original_img = oo.imghost + t.data.data.original_img;
+ t.data.data['buynum'] = gg.goods_num;
+ var distr_t = 0, et = 0
+ if (t.data.data.distr_type == 0) {
+ distr_t = gg.pick_dis;
+ } else {
+ distr_t = t.data.data.distr_type;
+ }
+
+ switch (distr_t) {
+ case 0:
+ et = 1;
+ //-- 系统后台有设置要默认的 --
+ if (th.data.json_d.pickupway && th.data.json_d.pickupway == 1) et = 0;
+ break;
+ case 1:
+ et = 1;
+ break;
+ case 2:
+ et = 0;
+ break;
+ }
+
+
+ var m_wind = 0, def_exp_code = getApp().globalData.userInfo.def_exp_code;
+ if (et == 0 && def_exp_code) {
+ for (var k = 0; k < th.data.wu_arr.length; k++) {
+ var item = th.data.wu_arr[k];
+ if (def_exp_code == item.code) {
+ m_wind = k;
+ }
+ }
+ }
+
+ if (th.data.bn_goods) {
+ et = th.data.bn_exp_type;
+ m_wind = th.data.index;
+ }
+
+ //---是不是购买等级卡成功的返回---等级卡显示的判断---
+ var is_card_back = getApp().globalData.is_card_back;
+ if (is_card_back) {
+ th.data.card_name = th.data.userinfo.card_field;
+ gg.goods_price = gd[th.data.card_name];
+ getApp().globalData.is_card_back = 0;
+ th.setData({card_cut_price: 0});
+ //如果是秒杀的返回
+ if (gd.prom_type == 1) gd.prom_type = 0;
+ } else {
+ //--- 商家等级卡开通的情况下, 会员不是等级会员的情况, 商品有设置等级卡价格,同时等级卡价格小于商品的价格
+ //-- 搭配购的商品也可以单独购买,所以此时搭配购的商品要进行计算优惠 --
+ if (!gg.collocation_goods && gd['prom_type'] != 6 && th.data.card_name && gd[th.data.card_name] > 0 && gg.goods_price > gd[th.data.card_name] && !th.data.userinfo.card_field) {
+ var cut_p = (gg.goods_price - gd[th.data.card_name]) * gg.goods_num;
+ th.setData({card_cut_price: cut_p});
+ }
+ }
+
+ switch (gd.prom_type) {
+ case 0:
+ case 2:
+ case 3:
+ case 4:
+ case 5:
+ case 6:
+ case 7:
+ //--此时开始计算商品的使用券相关,如果有等级价还要计算和等级价相关的,
+ // 如果有优惠促销,还要把促销的部分计算在内,因为促销还有不能使用优惠券--
+ t.data.data.shop_price = gg.goods_price;
+ t.data.data.goods_price = gg.goods_price;
+ t.data.data.goods_num = gg.goods_num;
+ th.data.ckeck_quan_price = t.data.data.shop_price * gg.goods_num;
+ th.data.check_quan_price_list = t.data.data.shop_price * gg.goods_num + "";
+ th.data.check_quan_ware_list = t.data.data.erpwareid + "";
+
+ //-- 如果有线下取价的时候 --
+ if (gg.offline_price) {
+ t.data.data.offline_price = gg.offline_price;
+ t.data.data.pricing_type = gg.pricing_type;
+ t.data.data.is_offline = 1;
+
+ th.data.ckeck_quan_price = t.data.data.offline_price * gg.goods_num;
+ th.data.check_quan_price_list = t.data.data.offline_price * gg.goods_num + "";
+ th.data.check_quan_ware_list = t.data.data.erpwareid + "";
+ }
+
+ t.data.data.prom_id = 0;
+ t.data.data.prom_type = 0;
+
+ //如果立即购买那边过来,就要读取接口,查看活动的优惠内容
+ if (gg.prom_type == 3) {
+ t.data.data.prom_id = gg.prom_id;
+ t.data.data.prom_type = 3;
+ //如果是优惠活动,就要调用活动,计算价格
+ th.buy_now_prom_goods(gg.prom_id, t.data.data, function (data) {
+ //判断一下购买商品的数量是不是超过
+ if (data.gift_goods_id) {
+ var num = 1;
+ if (data.is_bz == 1) {
+ num = data.bs;
+ if (num > data.gift_limit_num) num = 0;
+ }
+ //如果赠品数量超出礼品库存,就取消
+ if (num > data['gift_storecount']) num = 0;
+ if (num > 0) {
+ var ob = {};
+ ob.is_gift = 1;
+ ob.prom_id = data.prom_id;
+ ob.goods_id = data.gift_goods_id;
+ ob.goods_name = data.gift_goods_name;
+ ob.goods_color = data.gift_goods_color;
+ ob.goods_spec = data.gift_goods_spec;
+ ob.original_img = os.imghost + data.gift_original_img;
+ ob.market_price = data.gift_market_price;
+ ob.gift_id = data.gift_id;
+ ob.shop_price = 0;
+ ob.buynum = num;
+ ob.weight = data.gift_weight; //商品的重量
+ ob.exp_sum_type = data.gift_exp_sum_type; //商品的物流计算方式
+ ob.uniform_exp_sum = data.gift_uniform_exp_sum //统一运费的金额
+
+ th.setData({buy_now_gift_goods: ob});
+ }
+ }
+
+ th.setData({
+ bn_goods: data, bn_pickname: gg.pick_name, index: m_wind,
+ bn_pick: gg.pick_id, bn_t_exp_t: distr_t, bn_exp_type: et
+ });
+
+ //计算价格
+ th.calculatePrice2();
+ //获取优惠券
+ th.get_buy_now_quan();
+
+ })
+ } else {
+ //--看是不是搭配促销--
+ if (gg.prom_type == 5) {
+ t.data.data.prom_id = gg.prom_id;
+ t.data.data.prom_type = 5;
+ if (gg.room_id) {
+ t.data.data.room_id = gg.room_id;
+ }
+ //--主商品要有导购id和导购类型--
+ if (gg.guide_id) {
+ t.data.data.guide_id = gg.guide_id;
+ t.data.data.guide_type = gg.guide_type;
+ }
+ th.setData({collocation_goods: gg.collocation_goods});
+
+ var cart_arr = new Array();
+ //var narr=gg.collocation_goods;
+ //修改成深拷贝,确保返回是数据正确
+ var narr = JSON.parse(JSON.stringify(gg.collocation_goods));
+
+ narr.push(t.data.data);
+
+ //-- 搭配促销的门店配送方式的修复 --
+ et = 1;
+ distr_t = 0;
+ for (var hi in narr) {
+ var dis_t = narr[hi].distr_type;
+ if (dis_t == 2) {
+ th.setData({is_all_zt: 0});
+ et = 0;
+ }
+ if (dis_t > 0) {
+ distr_t = dis_t;
+ }
+ }
+
+ //自选的时候,系统配置了默认的配送方式是物流的时候
+ if (distr_t == 0 && th.data.json_d.pickupway && th.data.json_d.pickupway == 1) {
+ et = 0;
+ }
+
+
+ var ie = {
+ pickup_id: gg.pick_id,
+ pname: gg.pick_name,
+ goods: narr,
+ exp_type: et,
+ wind: m_wind,
+ distr_t: distr_t,
+ bn_t_exp_t: distr_t,
+ goods_price: 0,
+ shipping_price: 0,
+ user_money: 0,
+ total_amount: 0,
+ order_amount: 0,
+ user_note: 0
+ };
+ cart_arr.push(ie);
+ th.data.old_cartlist = cart_arr;
+ }
+ th.setData({
+ bn_goods: t.data.data, bn_pickname: gg.pick_name, index: m_wind,
+ bn_pick: gg.pick_id, bn_t_exp_t: distr_t, bn_exp_type: et
+ });
+
+
+ //--搭配促销也是按照购物车的方式来计算优惠券--
+ if (gg.prom_type == 5) {
+ var frozenQuan = null;
+ var url0 = "/api/weshop/users/frozenQuan/listFrozenQuan/" + app.globalData.user_id;
+ app.request.promiseGet(url0, {1: 1}).then(res => {
+ if (res.data.code == 0) {
+ frozenQuan = res.data.data;
+ th.data.frozenQuan = frozenQuan;
+ }
+ //计算价格
+ th.calculatePrice2();
+ th.get_cart_quan();
+ });
+ } else {
+ //计算价格
+ th.calculatePrice2();
+ //获取优惠券,
+ th.get_buy_now_quan();
+ }
+ }
+
+ break;
+ case 1: //---秒杀-----
+ var quanlist = null;
+ getApp().request.get("/api/weshop/activitylist/getSJGoodsPrice/" + gd.store_id
+ + "/" + gd.goods_id + "/1/" + gd.prom_id, {
+ success: async function (tt) {
+ if (tt.data.code == 0) {
+ t.data.data.shop_price = tt.data.data.prom_price;
+ } else {
+ t.data.data.prom_id = 0;
+ t.data.data.prom_type = 0;
+
+ th.data.ckeck_quan_price = t.data.data.shop_price * gg.goods_num;
+ th.data.check_quan_price_list = t.data.data.shop_price * gg.goods_num + "";
+ th.data.check_quan_ware_list = t.data.data.erpwareid + "";
+ }
+
+ th.setData({
+ bn_goods: t.data.data,
+ bn_pickname: gg.pick_name,
+ bn_exp_type: et,
+ index: m_wind,
+ bn_pick: gg.pick_id,
+ bn_t_exp_t: distr_t,
+ bn_exp_type: et
+ });
+
+ //计算价格
+ th.calculatePrice2();
+ //获取优惠券
+ th.get_buy_now_quan();
+ }
+ });
+
+ break;
+ }
+ },
+ });
+ }
+ },
+
+ //---------------检查是否有收货地址-------------------
+ checkAddressList: function () {
+ var t = this;
+ return !(!this.data.order || null == this.data.order.userAddress) || (wx.showModal({
+ title: "请先填写或选择收货地址~",
+ success: function (a) {
+ a.confirm ? t.enterAddressPage() : wx.navigateBack();
+ },
+ fail: function () {
+ wx.navigateBack();
+ }
+ }), !1);
+ },
+ showInvoice: function () {
+ this.setData({
+ invoiceToggle: !this.data.invoiceToggle
+ });
+ },
+ keyUpChangePay1: function (t) {
+ this.setData({
+ payWithUserMoney: !(t.detail.value.length > 0)
+ });
+ },
+ keyUpChangePay2: function (t) {
+ this.setData({
+ payWithPoints: !(t.detail.value.length > 0)
+ });
+ },
+ keyUpChangeNum: function (t) {
+ this.setData({
+ maxWord: t.detail.value.length
+ });
+ },
+
+ calc_per: async function (c_arr) {
+ var th = this;
+ //-- 循环处理 --
+ for (var i in c_arr) {
+ var cart_item = c_arr[i]; //就是每一单的意思
+ var pickid = cart_item.pickup_id;
+ var ord_goods = c_arr[i].goods; //就是每一单的从表的意思
+ var o_price = 0, q_conditin = 0;
+ //--------循环计算总价-----------
+ for (var j = 0; j < ord_goods.length; j++) {
+ o_price += ord_goods[j].goods_price * ord_goods[j].goods_num;
+ }
+
+ //---如果该门店的相关活动,就要算一下减价--
+ if (th.data.prom_goods_map[pickid]) {
+ var ob = th.data.prom_goods_map[pickid];
+ for (var ii in ob) {
+ var item_map = ob[ii];
+ if (item_map.bs == undefined || item_map.bs == null) {
+ //等待,获取一下优惠活动的信息
+ await getApp().request.promiseGet("/api/weshop/goods/getDiscount", {
+ data: {
+ price: item_map.price, prom_id: item_map.prom_id,
+ goods_num: item_map.goods_num, user_id: getApp().globalData.user_id,
+ is_bz: item_map.is_bz
+ }
+ }).then(res => {
+ if (res.data.code == 0 && res.data.data.condition) {
+ var get_data = res.data.data;
+ item_map.is_bz = get_data.is_bz; //是不是倍增
+ item_map.bs = get_data.bs; //是不是倍数
+ item_map.is_past = get_data.is_past; //是不是包邮
+ item_map.prom_price = get_data.price >= 0 ? get_data.price : item_map.price;
+ item_map.s_intValue = get_data.intValue;
+ item_map.s_coupon_id = get_data.coupon_id;
+ item_map.s_coupon_num = get_data.coupon_num;
+ if (get_data.gift_id && get_data.goodsinfo) {
+ item_map.gift_id = get_data.gift_id;
+ item_map.gift_goods_id = get_data.goods_id;
+ item_map.gift_goods_name = get_data.goods_name;
+ item_map.gift_goods_color = get_data.goodsinfo.goods_color ? get_data.goodsinfo.goods_color : '';
+ item_map.gift_goods_spec = get_data.goodsinfo.goods_spec ? get_data.goodsinfo.goods_spec : '';
+ item_map.gift_original_img = get_data.goodsinfo.original_img;
+ item_map.gift_limit_num = get_data.limit_num;
+ item_map.gift_storecount = get_data.gift_storecount;
+ item_map.gift_weight = get_data.goodsinfo.weight;
+ item_map.gift_exp_sum_type = get_data.goodsinfo.exp_sum_type;
+ item_map.uniform_exp_sum = get_data.goodsinfo.uniform_exp_sum;
+
+ }
+ item_map.s_libao = get_data.libao;
+ item_map.s_lb_num = get_data.lb_num;
+ }
+ })
+ }
+
+ //有活动,且优惠活动并没有限制使用优惠券,且有减价
+ //--看有没有减价--
+ //if(item_map.prom_price>=0 && item_map.price-item_map.prom_price){
+ if (item_map.price - item_map.prom_price && item_map.prom_price !== null) {
+ if (cart_item.prom_pt_json) {
+ cart_item.prom_pt_json.push({
+ "prom_id": item_map.prom_id,
+ "dis": (item_map.price - item_map.prom_price).toFixed(2),
+ "ispt": 0
+ })
+ } else {
+ cart_item.prom_pt_json = [{
+ "prom_id": item_map.prom_id,
+ "dis": (item_map.price - item_map.prom_price).toFixed(2),
+ "ispt": 0
+ }];
+ }
+
+ //-- 如果系统要平摊到单品 --
+
+ var pt_data = {
+ 'prom_id': item_map.prom_id,
+ 'dis': parseFloat((item_map.price - item_map.prom_price).toFixed(2)),
+ 'goods': item_map.goods
+ }
+
+ var pt_res = null;
+ await getApp().request.promisePost("/api/weshop/order/getGoodsSplit", {
+ is_json: 1,
+ data: pt_data
+ }).then(res => {
+ if (res.data.code == 0) {
+ pt_res = res.data.data;
+ }
+ })
+ if (pt_res) {
+ for (var io in item_map.goods) {
+ //平摊赋值
+ item_map.goods[io].account_fir = th.arr_get_goods(item_map.goods[io].goods_id, pt_res).fisrt_account;
+ item_map.goods[io].account_yu_fir = th.arr_get_goods(item_map.goods[io].goods_id, pt_res).fisrt_account_yu;
+ if (!th.data.ispt_goods) {
+ item_map.goods[io].account = item_map.goods[io].account_fir;
+ item_map.goods[io].account_yu = item_map.goods[io].account_yu_fir;
+ }
+ }
+ }
+
+
+ o_price -= (item_map.price - item_map.prom_price);
+ //如果有限制使用优惠券,就要减掉参与的活动商品的钱
+ if (!item_map.is_xz_yh) q_conditin = o_price;
+ }
+
+ //--------循环计算商品是不是包邮,是不是使用优惠券,此时循环是商品从表-----------
+ for (var j = 0; j < ord_goods.length; j++) {
+ if (ord_goods[j].is_gift) continue;
+ if (ord_goods[j].prom_type == 3 && ord_goods[j].prom_id == item_map.prom_id) {
+ ord_goods[j].is_xz_yh = item_map.is_xz_yh;
+ ord_goods[j].is_past = item_map.is_past;
+ ord_goods[j].account_fir = th.item_map_get_goods(ord_goods[j].goods_id, item_map).account_fir;
+ ord_goods[j].account_yu_fir = th.item_map_get_goods(ord_goods[j].goods_id, item_map).account_yu_fir;
+ ord_goods[j].account = th.item_map_get_goods(ord_goods[j].goods_id, item_map).account;
+ ord_goods[j].account_yu = th.item_map_get_goods(ord_goods[j].goods_id, item_map).account_yu;
+ }
+ }
+
+
+ //--优惠多少钱--
+ if (!cart_item.cut_price) cart_item.cut_price = 0;
+ //-- --
+ if (item_map.price != undefined && item_map.price != null
+ && item_map.prom_price != undefined && item_map.prom_price != null)
+ cart_item.cut_price += (item_map.price - item_map.prom_price);
+ //---如果有送积分---
+ if (item_map.s_intValue) {
+ if (!cart_item.s_intValue) cart_item.s_intValue = 0;
+ cart_item.s_intValue += item_map.s_intValue;
+ }
+ //-- 如果有送优惠券的情况 --
+ if (item_map.s_coupon_id) {
+ if (!cart_item.s_coupon_id) {
+ cart_item.s_coupon_id = item_map.s_coupon_id + "";
+ cart_item.g_coupon_num = [{'c_id': item_map.s_coupon_id, "num": item_map.s_coupon_num}];
+ }
+ else {
+ cart_item.s_coupon_id += "," + item_map.s_coupon_id;
+ cart_item.g_coupon_num.push({'c_id': item_map.s_coupon_id, "num": item_map.s_coupon_num})
+ }
+ }
+
+ //-- 如果有送优包邮券的情况 --
+ if (item_map.s_libao) {
+ if (!cart_item.s_libao) {
+ cart_item.s_libao = item_map.s_libao + "";
+ cart_item.g_lb_num = [{'l_id': item_map.s_libao, "num": item_map.s_lb_num}];
+ }
+ else {
+ cart_item.s_libao += "," + item_map.s_libao;
+ cart_item.g_lb_num.push({'l_id': item_map.s_libao, "num": item_map.s_lb_num})
+ }
+ }
+ }
+ }
+ }
+ },
+
+ //-------------------计算订单价格-------------------
+ calculatePrice: function (t, s) {
+ var th = this;
+ to.getConfig2(function (ee) {
+ to.getwuliuprice(async function (rs) {
+ wx.showLoading({
+ title: "处理中."
+ })
+ var all_price = 0; //所有的商品总价
+ var all_shipping_m = 0; //所有的物流总价
+ var all_total_m = 0; //所有的订单应付总价
+ var all_order_m = 0; //所有的订单应付总价
+ var all_user_m = 0; //所有的订单用户使用金额
+ var all_coupon_price_m = 0; //所有的订单用户使用优惠券价格
+ var all_cutprice = 0; //所有的优惠减
+ var all_zh_cutprice = 0; //所有的组合优惠减
+ var all_order_prom = 0; //所有的订单优惠
+
+ var umoney = th.data.userinfo.user_money - th.data.txmon - (th.data.userinfo.frozen_money ? th.data.userinfo.frozen_money : 0);
+ var freight_free = ee.freight_free; //全场满多少包邮
+ var no_ex_id = ee.no_ex_id;
+ var no_ex_good = null;
+ var by_qc = {};
+
+ if (no_ex_id && freight_free > 0) {
+ //-----------获取不包邮区域,不包邮商品-------
+ await getApp().request.promiseGet("/api/weshop/areaFeemail/getAreaGoods", {
+ data: {store_id: os.stoid, id: no_ex_id}
+ }).then(res => {
+ if (res.data.code == 0 && res.data.data && res.data.data.length > 0) {
+ by_qc = res.data.data[0];
+ }
+ })
+ }
+ ;
+ var c_arr = JSON.parse(JSON.stringify(th.data.old_cartlist));
+
+ if (th.data.cartlist && th.data.cartlist.length > 0) {
+ for (var i = 0; i < c_arr.length; i++) {
+ c_arr[i].exp_type = th.data.cartlist[i].exp_type;
+ c_arr[i].wind = th.data.cartlist[i].wind;
+ }
+ }
+
+ //调用函数计算每件商品的单价
+ await th.calc_per(c_arr);
+ //调用函数计算每件组合购商品的单价,
+ await zh_calc.calc_zh_split_price(c_arr,th);
+ //调用函数计算,优惠券优惠什么商品价格,优惠券优惠什么商品
+ await th.get_cart_quan(c_arr);
+ //---循环购物车---
+ for (var i in c_arr) {
+ //因为搭配购买也是再这里计算,搭配购的is_b_now==1
+ if (th.data.is_b_now == 0) {
+ //此时物流的选择方式要用th.data.cartlist;
+ c_arr[i].exp_type = th.data.cartlist[i].exp_type;
+ c_arr[i].wind = th.data.cartlist[i].wind;
+ if (th.data.cartlist[i].check_quan_price_list) c_arr[i].check_quan_price_list = th.data.cartlist[i].check_quan_price_list; //优惠券优惠什么商品价格
+ if (th.data.cartlist[i].check_quan_ware_list) c_arr[i].check_quan_ware_list = th.data.cartlist[i].check_quan_ware_list; //优惠券优惠什么商品
+ } else {
+ c_arr[i].exp_type = th.data.bn_exp_type; //配送方式
+ c_arr[i].wind = th.data.index; //立即购买选择的物流
+ //c_arr[i].=th.data. //立即购买的使用余额
+ if (th.data.cartlist) c_arr[i].check_quan_price_list = th.data.cartlist[i].check_quan_price_list; //优惠券优惠什么商品价格
+ if (th.data.cartlist) c_arr[i].check_quan_ware_list = th.data.cartlist[i].check_quan_ware_list; //优惠券优惠什么商品
+ }
+
+ var cart_item = c_arr[i]; //就是每一单的意思
+ var pickid = cart_item.pickup_id;
+ var o_price = 0;
+ var o_price_no_zh=0; //不包含限制优惠叠加组合购的金额汇总
+ var o_shipping_price = 0, goods_weight = -1, goods_piece = -1;
+ var item = c_arr[i].goods; //就是每一单的从表的意思
+
+ //---如果有选择优惠券的情况下---
+ var quan_price = 0;
+ var coupon_price = 0;
+ var quan_no = null;
+ var is_has_zh=c_arr[i].is_has_zh;
+ var zh_prom_goods=c_arr[i].zh_prom_goods; //组合购计算的原始数据存储空间
+
+ if (th.data.using_quan[pickid] != null && th.data.using_quan[pickid] != undefined)
+ quan_no = th.data.using_quan[pickid].coupon_no;
+
+ //普通券的时候
+ if (quan_no && th.data.using_quan[pickid].isby != 1) {
+ //---获取优惠券优惠---
+ await getApp().request.promiseGet("/api/weshop/couponList/getUseCouponPrice", {
+ data: {
+ storeId: oo.stoid,
+ CashRepNo: quan_no,
+ WaresSum: cart_item.check_quan_price_list,
+ WareIds: cart_item.check_quan_ware_list
+ }
+ }).then(res => {
+ if (res.data.code == 0 && res.data.data && res.data.data.length > 0) {
+ var q_data = res.data.data;
+ //--存储商品优惠的内容--
+ cart_item.quan_youhui_list = q_data;
+ for (var k in q_data)
+ quan_price += q_data[k].WareCashSum;
+ }
+ })
+ }
+
+ //--------循环计算总价-----------
+ for (var j = 0; j < item.length; j++) {
+ if(item[j].prom_type!=7){
+ o_price_no_zh += item[j].goods_price * item[j].goods_num;
+ }
+ //组合购的商品,且没有订单优惠的叠加,is_orderyh就是优惠叠加
+ if(zh_prom_goods[item[j].prom_id] && !zh_prom_goods[item[j].prom_id].act.is_orderyh )
+ {
+ o_price_no_zh += item[j].goods_price * item[j].goods_num;
+ }
+ o_price += item[j].goods_price * item[j].goods_num;
+ }
+ //判断是不是有组合购的金额
+ var f_o_price = o_price;
+ //如果又优惠的钱,就要减价
+ if (c_arr[i].cut_price > 0){
+ o_price -= c_arr[i].cut_price;
+ o_price_no_zh-=c_arr[i].cut_price;
+ }
+ //如果有组合购优惠的钱,就要减价
+ if (c_arr[i].zh_cut_price > 0){
+ o_price -= c_arr[i].zh_cut_price;
+ if(o_price_no_zh>0){
+ //找到那些可以订单优惠叠加的
+ for(let ij in zh_prom_goods){
+ let kitem=zh_prom_goods[ij];
+ if(kitem.act.is_orderyh) continue;
+ o_price_no_zh-=kitem.cut_price;
+ }
+ }
+ }
+
+ //-- 计算线下取价的功能 --
+ if (cart_item.is_offline == 1) {
+ o_price = o_price - cart_item.offline_price;
+ o_price_no_zh-=c_arr[i].offline_price;
+ }
+ //判断包邮券的钱,组合购的商品不使用优惠券
+ var q_conditin = 0;
+ q_conditin = o_price - quan_price;
+ if(is_has_zh){
+ q_conditin = o_price_no_zh - quan_price;
+ }
+ cart_item.goods_price = f_o_price.toFixed(2); //商品总费用,用f_o_price来计算
+ //计算物流费用
+ cart_item.shipping_price = 0;
+
+
+ //--有不包邮区域,且不免运费,全场的计算,要减到优惠金额 和券的金额--
+ if (no_ex_id && freight_free > 0 && (o_price - quan_price) >= freight_free && cart_item.exp_type == 0 && (by_qc.region_list || by_qc.goods_list)) {
+ //如果有设置不包邮区域的时候
+ if (by_qc.region_list != "" && by_qc.region_list != null && by_qc.region_list != undefined) {
+ if (th.check_by_area(by_qc.region_list)) {
+ freight_free = 0;
+ th.data.is_no_by[pickid] = 1;
+ }
+ }
+ //如果有设置不包邮区商品
+ if (by_qc.goods_list != "" && by_qc.goods_list != undefined && by_qc != null && freight_free > 0) {
+ freight_free = 0;
+ no_ex_good = by_qc.goods_list;
+ }
+ }
+
+ //--如果是物流,且选择了地址,就要开始显示包邮券,且包邮券也已经优惠了优惠活动的金额--
+ if (cart_item.exp_type == 0 && th.data.user_addr != null) {
+ //看是不是有调用过包邮券
+ if (!th.data.isget_by_quan[pickid]) {
+ //--判断要不要显示包邮券,调用接口,因为有for循环---
+ await getApp().request.promiseGet("/api/weshop/userfeemail/pageAndArea", {
+ data: {
+ store_id: os.stoid,
+ isuse: 0,
+ condition: q_conditin,
+ user_id: getApp().globalData.user_id,
+ pageSize: 2000
+ }
+ }).then(res => {
+ if (res.data.code == 0 && res.data.data.total > 0) {
+ //此时要循环判断包邮的地区,不包邮商品是不是符合
+ var arr = [], quanlist = res.data.data.pageData;
+ quanlist = th.check_is_frozenQuan(quanlist, th.data.frozenQuan, 1);
+ for (var i in quanlist) {
+ var item = quanlist[i];
+ var goods = cart_item.goods;
+ var g_arr = [];
+ for (var ii in goods) {
+ g_arr.push(goods[ii].goods_id);
+ }
+ if (item.region_list && th.check_by_area(item.region_list)) continue; //如果是不包邮区域
+ if (item.goods_list) {
+ var no_goods_arr = item.goods_list.split(",");
+ if (ut.isContained(no_goods_arr, g_arr)) continue; //如果是不包邮商品
+ }
+ arr.push(item);
+ }
+ if (arr) {
+ th.data.get_by_quan_list_cart[pickid] = arr;
+ //th.setData({get_by_quan_list_cart:th.data.get_by_quan_list_cart});
+ if (th.data.is_b_now) {
+ th.setData({get_by_quan_list: arr});
+ }
+ }
+ th.data.isget_by_quan[pickid] = 1;
+ }
+ })
+ }
+ }
+
+ //如果是包邮券的时候,要看看券的情况
+ if (quan_no && th.data.using_quan[pickid].isby == 1) {
+ var quan = th.data.using_quan[pickid];
+ if (!quan.goods_list) {
+ th.data.is_quan_by[pickid] = 1; //专门给券的判断用的
+ } else {
+ th.data.is_quan_by[pickid] = 0;
+ //看有没有模板的包邮
+ if (no_ex_good) {
+ var arr = no_ex_good.split(",");
+ var arr2 = quan.goods_list.split(",");
+ if (ut.isContained(arr, arr2)) {
+ getApp().my_warnning("全场不包邮商品和包邮券的重复", 0, th);
+ th.data.using_quan[pickid] = {};
+ th.setData({using_quan: th.data.using_quan})
+ return false;
+ }
+ var n_arr = ut.mergeArray(arr, arr2);
+ no_ex_good = n_arr.join(",");
+ } else {
+ no_ex_good = quan.goods_list;
+ }
+ }
+ } else {
+ th.data.is_quan_by[pickid] = 0; //专门给券的判断用的
+ }
+
+ //--------循环计算总价-----------
+ for (var j = 0; j < item.length; j++) {
+ //如果都包邮,都没必要等级数量了
+ if (th.data.is_quan_by[pickid]) continue;
+ //如果是优惠活动是包邮,就不用计算包邮的费用了
+ if (item[j].is_past) continue;
+ //是不是不包邮的商品
+ var is_good_no_by = 0;
+ if (no_ex_good) {
+ is_good_no_by = th.check_by_goods(no_ex_good, item[j].goods_id);
+ }
+
+ //如果达到全场包邮的条件,同时,没有地区不包邮,或者商品不包邮
+ if (o_price - quan_price >= freight_free && freight_free > 0 && !is_good_no_by && th.data.is_no_by[pickid] != 1) {
+ continue;
+ }
+
+ //--如果是包邮券使用的情况下,如果商品是包邮的,那么就不进行计算--
+ if (th.data.using_quan[pickid] && th.data.using_quan[pickid].isby == 1 && !is_good_no_by) {
+ continue;
+ }
+
+ var no_ex_good_arr = null;
+ if (no_ex_good) no_ex_good_arr = no_ex_good.split(',');
+
+ //----------------如果是选择了物流---------------------
+ if (cart_item.exp_type == 0 && item[j].is_free_shipping == 0 && (!no_ex_good_arr || no_ex_good_arr.indexOf(item[j].goods_id + '') > -1 )) {
+
+ //如果地址不为空
+ if (th.data.user_addr != null) {
+ switch (item[j]['exp_sum_type']) {
+ case 1:
+ //统一运费
+ o_shipping_price += item[j]['uniform_exp_sum'];
+ break;
+ case 2:
+ +''
+ if (goods_weight < 0) goods_weight = 0;
+ //累积商品重量 每种商品的重量 * 数量
+ goods_weight += item[j]['weight'] * item[j]['goods_num'];
+
+ break;
+ case 3:
+ if (goods_piece < 0) goods_piece = 0;
+ //累积商品数量
+ goods_piece += item[j]['goods_num'];
+ break;
+ }
+ }
+
+ }
+ }
+
+ //计算物流价格
+ if (cart_item.exp_type == 0) {
+ //freight_free=0; //后面不在进行判断
+ var code = "";
+ if (th.data.wu_arr && th.data.wu_arr[cart_item.wind])
+ code = th.data.wu_arr[cart_item.wind].code;
+ cart_item.shipping_price =
+ th.calculatewuliu(code, o_shipping_price, goods_weight,
+ goods_piece, th.data.user_addr, freight_free, o_price - quan_price, rs);
+
+ if (!th.data.using_quan[pickid] || th.data.using_quan[pickid].isby != 1) {
+ if (cart_item.shipping_price == 0) th.data.is_by[pickid] = 1; //已经全场包邮,就不要选择券了
+ }
+ } else {
+ cart_item.shipping_price = 0;
+ }
+
+ cart_item.shipping_price = cart_item.shipping_price.toFixed(2);
+
+ //总价计算,总价不包含运费
+ cart_item.order_amount = (o_price - quan_price).toFixed(2);
+ cart_item.total_amount = f_o_price.toFixed(2);
+
+ var order_prom_amount = 0;
+ var order_prom_id = 0;
+ var o_condition = cart_item.order_amount;
+ //看一下是不是不用组合购的订单优惠的叠加
+ if(o_price_no_zh>0){
+ o_condition=o_price_no_zh-quan_price;
+ }
+
+ var order_m = 0;
+ //---判断是不是有订单优惠---
+ await getApp().request.promiseGet("/api/weshop/promorder/getOrderPromotion", {
+ data: {store_id: os.stoid, orderAmount: o_condition}
+ }).then(res => {
+ if (res.data.code == 0) {
+ var ord_prom = res.data.data;
+ order_prom_id = ord_prom['id'];
+ switch (ord_prom['type']) {
+ case 0:
+ order_m = Math.round(o_condition * ord_prom['expression']) / 100;//满额打折
+ order_prom_amount = (o_condition - order_m).toFixed(2);
+ break;
+ case 1:
+ //order_m = o_condition - ord_prom['expression'];//满额优惠金额
+ order_prom_amount = ord_prom['expression'];
+ break;
+ }
+ }
+ })
+
+ cart_item.order_prom_amount = 0;
+ //--订单优惠的显示--
+ if (order_prom_id > 0) {
+ cart_item.order_amount = (o_price - quan_price - order_prom_amount).toFixed(2);
+ cart_item.order_prom_id = order_prom_id;
+ cart_item.order_prom_amount = order_prom_amount;
+ }
+ coupon_price = quan_price;
+ if (cart_item.order_amount < 0) {
+ cart_item.order_amount = 0;
+ coupon_price = o_price;
+ }
+
+ cart_item.total_amount = parseFloat(cart_item.total_amount) + parseFloat(cart_item.shipping_price); //总金额
+ cart_item.order_amount = parseFloat(cart_item.order_amount) + parseFloat(cart_item.shipping_price); //总金额
+ cart_item.total_amount = cart_item.total_amount.toFixed(2);
+ cart_item.order_amount = cart_item.order_amount.toFixed(2);
+
+ //搭配购在使用余额
+ if (th.data.bn_use_money == 1 && th.data.is_b_now == 1) {
+
+ if (umoney > cart_item.order_amount) {
+ cart_item.user_money = cart_item.order_amount;
+ umoney = umoney - cart_item.order_amount;
+ } else {
+ cart_item.user_money = umoney;
+ umoney = 0;
+ }
+
+ } else {
+ //--------------如果使用余额,购物车购买---------------------
+ if (th.data.js_use_money == 1) {
+ if (umoney > cart_item.order_amount) {
+ cart_item.user_money = cart_item.order_amount;
+ umoney = umoney - cart_item.order_amount;
+ } else {
+ cart_item.user_money = umoney;
+ umoney = 0;
+ }
+ } else {
+ cart_item.user_money = 0;
+ }
+ }
+
+ cart_item.user_money = parseFloat(cart_item.user_money).toFixed(2);
+ if (coupon_price > 0) cart_item.coupon_price = coupon_price.toFixed(2);
+ else cart_item.coupon_price = coupon_price
+ if (quan_no) cart_item.quan_no = quan_no;
+
+
+ //cart_item.goods_price = o_price.toFixed(2);
+ cart_item.order_amount = cart_item.order_amount - cart_item.user_money; //会员使用余额
+
+
+ all_price += parseFloat(f_o_price);
+ all_total_m += parseFloat(cart_item.total_amount);
+ all_shipping_m += parseFloat(cart_item.shipping_price);
+ all_order_m += parseFloat(cart_item.order_amount);
+ all_user_m += parseFloat(cart_item.user_money);
+ all_coupon_price_m += parseFloat(cart_item.coupon_price);
+ all_cutprice += parseFloat(cart_item.cut_price);
+ all_zh_cutprice += parseFloat(cart_item.zh_cut_price);
+ all_order_prom += parseFloat(cart_item.order_prom_amount);
+ }
+
+ all_shipping_m = parseFloat(all_shipping_m).toFixed(2);
+ all_total_m = parseFloat(all_total_m).toFixed(2);
+ all_order_m = parseFloat(all_order_m).toFixed(2);
+ all_price = parseFloat(all_price).toFixed(2);
+ all_user_m = parseFloat(all_user_m).toFixed(2);
+ all_total_m = parseFloat(all_total_m).toFixed(2);
+ all_coupon_price_m = parseFloat(all_coupon_price_m).toFixed(2);
+ all_cutprice = all_cutprice.toFixed(2);
+ all_order_prom = all_order_prom.toFixed(2);
+ all_zh_cutprice = parseFloat(all_zh_cutprice).toFixed(2);
+
+ var atxt = "formData.total_amount";
+ var atxt1 = "formData.order_amount";
+ var atxt2 = "formData.all_price";
+ var atxt3 = "formData.user_money";
+ var atxt4 = "formData.shipping_price";
+ var atxt5 = "formData.coupon_price";
+ var atxt6 = "formData.cut_price";
+ var atxt7 = "formData.order_prom_amount";
+ var atxt8 = "formData.zh_cut_price";
+
+ th.setData({
+ [atxt]: all_total_m, [atxt1]: all_order_m,
+ [atxt2]: all_price, [atxt3]: all_user_m, [atxt4]: all_shipping_m,
+ [atxt5]: all_coupon_price_m, [atxt6]: all_cutprice,
+ [atxt7]: all_order_prom, show_submit: 1, [atxt8]: all_zh_cutprice
+ })
+ th.data.order_prom_list_cart = c_arr;
+ th.set_can_num();
+ wx.hideLoading();
+
+ });
+ });
+ },
+
+ set_can_num: function () {
+ var th = this;
+ //-- 这个地方,循环计算几张优惠券可用--
+ for (var iter in th.data.cartlist) {
+ var num = 0;
+ var c_item = th.data.cartlist[iter];
+ var pkid = c_item.pickup_id;
+ //-- 普通券 --
+ if (c_item.quan_list) {
+ for (var iter1 in c_item.quan_list) {
+ //判断是不是其他订单有选用
+ var is_other_is_use = th.check_other_use(c_item.quan_list[iter1], pkid);
+ if (!is_other_is_use) num++;
+ }
+ }
+ //-- 包邮券 --
+ var by_quan = th.data.get_by_quan_list_cart[pkid];
+ if (by_quan) {
+ for (var iter2 in by_quan) {
+ //判断是不是其他订单有选用
+ var is_other_is_use = th.check_other_use_by(by_quan[iter2], pkid);
+ if (!is_other_is_use) num++;
+ }
+ }
+ var set_txt = "cartlist[" + iter + "].can_num";
+ th.setData({[set_txt]: num});
+ }
+ },
+
+
+ //---------计算立即购买----------
+ calculatePrice2: function () {
+ var th = this, good = this.data.bn_goods;
+
+ if (!good) return false;
+
+ //搭配的计算要用购物的车计算方法
+ if (good.prom_type == 5) {
+ th.calculatePrice();
+ return false;
+ }
+
+ wx.showLoading({
+ title: "处理中."
+ })
+ //-----------计算商品总价--------------
+ var allpice = good.shop_price * good.buynum;
+ var cut_price = 0;
+ var allpice1 = allpice;
+
+
+ if (good.prom_type == 3 && good.prom_price !== null) {
+ cut_price = allpice - good.prom_price;
+ }
+
+ allpice = parseFloat(allpice).toFixed(2);
+ var txt = "formData.all_price";
+ th.setData({[txt]: allpice,});
+ if (cut_price) {
+ var c_txt = "formData.cut_price";
+ th.setData({[c_txt]: cut_price,});
+
+ }
+
+ //如果有线下取价的时候
+ if (good.is_offline) {
+ allpice = good.offline_price * good.buynum;
+ }
+
+
+ to.getConfig2(function (ee) {
+ to.getwuliuprice(async function (rs) {
+
+ var o_shipping_price = 0, goods_weight = -1, goods_piece = -1;
+
+ //---如果有选择优惠券的情况下---
+ var quan_price = 0, bn_pick = th.data.bn_pick;
+ var quan_no = null;
+ if (th.data.using_quan[bn_pick] != null && th.data.using_quan[bn_pick] != undefined)
+ quan_no = th.data.using_quan[bn_pick].coupon_no;
+
+ if (quan_no) {
+ if (th.data.using_quan[bn_pick].isby != 1) {
+ //---获取优惠券优惠---
+ await getApp().request.promiseGet("/api/weshop/couponList/getUseCouponPrice", {
+ data: {
+ storeId: oo.stoid,
+ CashRepNo: quan_no,
+ WaresSum: th.data.ckeck_quan_price,
+ WareIds: th.data.check_quan_ware_list
+ }
+ }).then(res => {
+ if (res.data.code == 0 && res.data.data && res.data.data.length > 0) {
+ quan_price = res.data.data[0].WareCashSum;
+ }
+ })
+ }
+ }
+
+ //-----------当地址不为空,且是物流时,计算物流费用,并同时商品不是优惠活动的包邮----------
+ if (th.data.user_addr != null && th.data.bn_exp_type == 0 && good.is_free_shipping == 0 && good.is_past != 1) {
+ //看是不是有调用过包邮券
+ if (!th.data.isget_by_quan[th.data.bn_pick] && good.is_xz_yh != 1) {
+ var condition = allpice - cut_price - quan_price;
+ //--判断要不要显示包邮券,链式调用接口,调取包邮券,已经是减了优惠的金额,见到优惠券的钱---
+ getApp().request.promiseGet("/api/weshop/userfeemail/pageAndArea", {
+ data: {
+ store_id: os.stoid,
+ isuse: 0,
+ condition: condition,
+ user_id: getApp().globalData.user_id,
+ pageSize: 2000
+ }
+ }).then(res => {
+ if (res.data.code == 0 && res.data.data.total > 0) {
+ //此时要循环判断包邮的地区,不包邮商品是不是符合
+ var arr = [], quanlist = res.data.data.pageData;
+ quanlist = th.check_is_frozenQuan(quanlist, th.data.frozenQuan, 1);
+ for (var i in quanlist) {
+ var item = quanlist[i];
+ if (item.region_list && th.check_by_area(item.region_list)) continue; //如果是不包邮区域
+ if (item.goods_list && th.check_by_goods(item.goods_list)) continue; //如果是不包邮商品
+ arr.push(item);
+ }
+ if (arr) {
+ th.setData({get_by_quan_list: arr});
+ }
+ th.data.isget_by_quan[th.data.bn_pick] = 1;
+ }
+ })
+ }
+
+ switch (good['exp_sum_type']) {
+ case 1:
+ //统一运费
+ o_shipping_price += good['uniform_exp_sum'];
+ break;
+ case 2:
+ if (goods_weight < 0) goods_weight = 0;
+ //累积商品重量 每种商品的重量 * 数量
+ goods_weight += good['weight'] * good['buynum'];
+ break;
+ case 3:
+ if (goods_piece < 0) goods_piece = 0;
+ //累积商品数量
+ goods_piece += good['buynum'];
+ break;
+ }
+
+ var code = "";
+ if (th.data.wu_arr && th.data.wu_arr[th.data.index]) code = th.data.wu_arr[th.data.index].code;
+ var freight_free = ee.freight_free; //全场满多少包邮
+ var no_ex_id = ee.no_ex_id;
+ th.data.is_no_by[th.data.bn_pick] = 0;
+
+ var no_by_data = null;
+ var gift_freight_free = freight_free;
+
+
+ //有不包邮区域,且不免运费
+ if (no_ex_id && freight_free > 0 && freight_free <= parseFloat(allpice) - cut_price - quan_price) {
+ //-----------获取不包邮区域,不包邮商品-------
+ await getApp().request.promiseGet("/api/weshop/areaFeemail/getAreaGoods", {
+ data: {store_id: os.stoid, id: no_ex_id}
+ }).then(res => {
+ if (res.data.code == 0 && res.data.data && res.data.data.length > 0) {
+ no_by_data = res.data.data[0];
+ //如果有设置不包邮区域的时候
+ if (res.data.data[0].region_list) {
+ if (th.check_by_area(res.data.data[0].region_list)) {
+ freight_free = 0;
+ th.data.is_no_by[th.data.bn_pick] = 1;
+ }
+ }
+ //如果有设置不包邮商品
+ if (res.data.data[0].goods_list && freight_free) {
+ if (th.check_by_goods(res.data.data[0].goods_list)) {
+ freight_free = 0;
+ th.data.is_no_by[th.data.bn_pick] = 1;
+ }
+ }
+ }
+ })
+ }
+
+ th.data.is_by[th.data.bn_pick] = 0;
+ //--------------开始计算物流------------------
+ var shipping_price =
+ th.calculatewuliu(code, o_shipping_price, goods_weight,
+ goods_piece, th.data.user_addr, freight_free, parseFloat(allpice) - cut_price - quan_price, rs);
+
+ //如果有赠品的时候,也要计算赠品的物流费用
+ if (th.data.buy_now_gift_goods) {
+ shipping_price = th.get_now_gift_goods_wuliu(code, o_shipping_price, th.data.user_addr, gift_freight_free,
+ parseFloat(allpice) - cut_price - quan_price, rs, shipping_price, no_by_data, goods_weight, goods_piece);
+ }
+
+ if (shipping_price <= 0) {
+ th.data.is_by[th.data.bn_pick] = 1; //已经是包邮了,就不要选择包邮券
+ }
+
+ shipping_price = parseFloat(shipping_price).toFixed(2);
+ var wl_txt = "formData.shipping_price";
+ th.setData({[wl_txt]: shipping_price,})
+
+ } else {
+ var wl_txt = "formData.shipping_price";
+ th.setData({[wl_txt]: 0,})
+ }
+
+ if (quan_no) {
+ if (th.data.using_quan[bn_pick].isby == 1) {
+ shipping_price = 0;
+ var wl_txt = "formData.shipping_price";
+ th.setData({[wl_txt]: 0,})
+ }
+ }
+ //-----------------支付价,优惠券不减物流-----------------
+ var total_m = (parseFloat(allpice1)).toFixed(2);
+ var order_m = (parseFloat(allpice - cut_price) - quan_price).toFixed(2);
+ var coupon_price = quan_price; //优惠券优惠了多少钱
+ if (order_m < 0) {
+ order_m = 0;
+ coupon_price = parseFloat(order_m).toFixed(2);
+ }
+ //--看一下有没有订单优惠--
+ var o_condition = parseFloat(order_m);
+ if (o_condition > 0) {
+ th.check_is_order_prom(o_condition, function () {
+ var order_prom_amount = 0;
+ var order_prom_id = 0;
+ if (th.data.order_prom[th.data.bn_pick]) {
+ var ord_prom = th.data.order_prom[th.data.bn_pick];
+ order_prom_id = ord_prom['id'];
+ switch (ord_prom['type']) {
+ case 0:
+ order_m = Math.round(o_condition * ord_prom['expression']) / 100;//满额打折
+ order_prom_amount = (o_condition - order_m).toFixed(2);
+ break;
+ case 1:
+ order_m = o_condition - ord_prom['expression'];//满额优惠金额
+ order_prom_amount = ord_prom['expression'];
+ break;
+ }
+ }
+ //--订单优惠的显示--
+ if (order_prom_id > 0) {
+ var order_prom_txt1 = "formData.order_prom_id";
+ var order_prom_txt2 = "formData.order_prom_amount";
+ th.setData({[order_prom_txt1]: order_prom_id, [order_prom_txt2]: order_prom_amount})
+ }
+
+ total_m = parseFloat(total_m) + parseFloat(th.data.formData.shipping_price);
+ order_m = parseFloat(order_m) + parseFloat(th.data.formData.shipping_price);
+
+ total_m = total_m.toFixed(2);
+ order_m = order_m.toFixed(2);
+
+ var atxt = "formData.total_amount";
+ th.setData({[atxt]: total_m,})
+
+ var txt = "formData.user_money";
+ var txt2 = "formData.order_amount";
+ var txt3 = "formData.coupon_price";
+ var amoney = parseFloat(th.data.userinfo.user_money - th.data.txmon - th.data.userinfo.frozen_money);
+ //--------------如果使用余额---------------------
+ if (th.data.bn_use_money == 1) {
+ if (amoney > order_m) {
+ order_m = parseFloat(order_m).toFixed(2);
+ th.setData({[txt]: order_m, [txt2]: 0, [txt3]: coupon_price, show_submit: 1})
+ } else {
+ order_m = parseFloat(order_m) - parseFloat(amoney);
+ order_m = order_m.toFixed(2);
+ th.setData({[txt]: amoney, [txt2]: order_m, [txt3]: coupon_price, show_submit: 1})
+ }
+ } else {
+ th.setData({[txt]: 0, [txt2]: order_m, [txt3]: coupon_price, show_submit: 1})
+ }
+ //优惠活动送积分
+ if (good.s_intValue) {
+ txt = "formData.give_integral";
+ th.setData({[txt]: good.s_intValue});
+ }
+ //优惠送券
+ if (good.s_coupon_id) {
+ var i_txt = "formData.give_coupon_id";
+ //这个是json格式的
+ var i_txt1 = "formData.g_coupon_num";
+ var ob = [{"num": good.s_coupon_num, "c_id": good.s_coupon_id}];
+ ob = JSON.stringify(ob);
+ th.setData({[i_txt]: good.s_coupon_id, [i_txt1]: ob});
+ }
+ //优惠礼包
+ if (good.s_libao) {
+ var l_txt = "formData.give_lb_id";
+ //这个是json格式的
+ var l_txt1 = "formData.g_lb_num";
+ var ob = [{"num": good.s_lb_num, "l_id": good.s_libao}];
+ ob = JSON.stringify(ob);
+ th.setData({[l_txt]: good.s_libao, [l_txt1]: ob});
+ }
+ })
+ } else {
+ total_m = parseFloat(total_m) + parseFloat(th.data.formData.shipping_price);
+ order_m = parseFloat(order_m) + parseFloat(th.data.formData.shipping_price);
+ var atxt = "formData.total_amount";
+
+ total_m = total_m.toFixed(2);
+ order_m = order_m.toFixed(2);
+
+ th.setData({[atxt]: total_m,})
+
+ var txt = "formData.user_money";
+ var txt2 = "formData.order_amount";
+ var txt3 = "formData.coupon_price";
+ var amoney = parseFloat(th.data.userinfo.user_money - th.data.txmon - th.data.userinfo.frozen_money);
+ //--------------如果使用余额---------------------
+ if (th.data.bn_use_money == 1) {
+ if (amoney > order_m) {
+ order_m = parseFloat(order_m).toFixed(2);
+ th.setData({[txt]: order_m, [txt2]: 0, [txt3]: coupon_price, show_submit: 1})
+ } else {
+ order_m = parseFloat(order_m) - parseFloat(amoney);
+ order_m = order_m.toFixed(2);
+ th.setData({[txt]: amoney, [txt2]: order_m, [txt3]: coupon_price, show_submit: 1})
+ }
+ } else {
+ th.setData({[txt]: 0, [txt2]: order_m, [txt3]: coupon_price, show_submit: 1})
+ }
+ //优惠活动送积分
+ if (good.s_intValue) {
+ txt = "formData.give_integral";
+ th.setData({[txt]: good.s_intValue});
+ }
+ //优惠送券
+ if (good.s_coupon_id) {
+ var i_txt = "formData.give_coupon_id";
+ //这个是json格式的
+ var i_txt1 = "formData.g_coupon_num";
+ var ob = [{"num": good.s_coupon_num, "c_id": good.s_coupon_id}];
+ ob = JSON.stringify(ob);
+ th.setData({[i_txt]: good.s_coupon_id, [i_txt1]: ob});
+ }
+ //优惠礼包
+ if (good.s_libao) {
+ var l_txt = "formData.give_lb_id";
+ //这个是json格式的
+ var l_txt1 = "formData.g_lb_num";
+ var ob = [{"num": good.s_lb_num, "l_id": good.s_libao}];
+ ob = JSON.stringify(ob);
+ th.setData({[l_txt]: good.s_coupon_id, [l_txt1]: ob});
+ }
+ }
+
+ wx.hideLoading();
+
+ });
+ });
+ },
+
+ //--------------------提交订单-----------------------
+ async submitForm(t){
+ var sub_value = t;
+
+ if (this.data.is_summit_ing == 1) return false; //--提交中退出--
+ this.data.is_summit_ing = 1;
+ var th = this, pdata = new Array();
+ var ff = true;
+ //------------立即购买-------------
+ if (th.data.is_b_now == 1 && th.data.bn_goods.prom_type != 5) {
+
+ if (th.data.bn_exp_type == 0 && th.data.user_addr == null) {
+ ff = false;
+ getApp().my_warnning("请选择收货地址", 0, th);
+ th.data.is_summit_ing = 0;
+ }
+ if (!ff) return false;
+ var addr = th.data.user_addr;
+ if (th.data.bn_exp_type == 1) addr = null;
+
+ if (th.data.bn_exp_type == 0)
+ if (th.data.wu_arr == null || th.data.wu_arr.length <= 0) {
+ getApp().my_warnning("读取物流失败", 0, th);
+ th.data.is_summit_ing = 0;
+ return false;
+ }
+
+ var item = {
+ 'user_id': to.globalData.user_id,
+ 'consignee': addr == null ? "" : addr.consignee,
+ 'province': addr == null ? 0 : addr.province,
+ 'city': addr == null ? 0 : addr.city,
+ 'district': addr == null ? 0 : addr.district,
+ 'twon': addr == null ? 0 : addr.twon,
+ 'address': addr == null ? "" : addr.address,
+ 'more_address': addr == null ? "" : addr.more_address,
+ //'mobile': th.data.userinfo.mobile,
+ 'mobile': addr == null ? th.data.userinfo.mobile : addr.mobile,
+ 'email': '',
+ 'shipping_code': th.data.bn_exp_type == 1 ? 0 : th.data.wu_arr[th.data.index].code,
+ 'shipping_name': th.data.bn_exp_type == 1 ? '' : th.data.wu_arr[th.data.index].name,
+ 'invoice_title': '',
+ 'goods_price': th.data.formData.all_price, //商品总价
+ 'shipping_price': th.data.formData.shipping_price, //物流金额
+ 'user_money': th.data.formData.user_money, //使用余额
+ 'total_amount': th.data.formData.total_amount, //订单总价
+ 'order_amount': th.data.formData.order_amount, //应付
+ 'user_note': t.detail.value.user_note, //用户备注
+ 'store_id': oo.stoid, //商家
+ 'pickup_id': th.data.bn_pick, //门店
+ 'exp_type': th.data.bn_exp_type, //配送方式
+ 'order_goods': new Array(),
+ };
+ //是不是重新提交
+ if (th.data.is_continue == 1) item.is_continue = 1;
+
+ //获取立即购买的商品的信息
+ var gg = to.get_b_now();
+ //--商品的房间号--
+ if (gg.room_id && gg.room_id > 0) {
+ item.room_ids = gg.room_id;
+ }
+
+ var order_prom_list = {};
+ //--判断有没有优惠活动--
+ if (th.data.order_prom[item.pickup_id]) {
+ if (th.data.formData.order_prom_amount > 0) {
+ order_prom_list.order_prom_id = th.data.formData.order_prom_id;
+ order_prom_list.order_prom_amount = th.data.formData.order_prom_amount;
+ }
+ }
+
+ //--判断优惠活动的提交--
+ if (th.data.formData.cut_price > 0) {
+ order_prom_list.discount_amount = th.data.formData.cut_price.toFixed(2);
+ var ob = [{
+ "prom_id": th.data.bn_goods.prom_id,
+ "dis": th.data.formData.cut_price.toFixed(2),
+ "ispt": 0
+ }]
+ order_prom_list.prom_pt_json = JSON.stringify(ob);
+ }
+ if (th.data.formData.give_integral > 0) {
+ order_prom_list.give_integral = th.data.formData.give_integral;
+ }
+ if (th.data.formData.give_coupon_id > 0) {
+ order_prom_list.give_coupon_id = th.data.formData.give_coupon_id;
+ order_prom_list.g_coupon_num = th.data.formData.g_coupon_num;
+ }
+ if (th.data.formData.give_lb_id > 0) {
+ order_prom_list.give_lb_id = th.data.formData.give_lb_id;
+ order_prom_list.g_lb_num = th.data.formData.g_lb_num;
+ }
+ item.order_prom_list = order_prom_list;
+
+ //组装优惠券的钱
+ if (parseFloat(th.data.formData.coupon_price) > 0) {
+ item.coupon_price = th.data.formData.coupon_price;
+ item.coupon_no = th.data.using_quan[th.data.bn_pick].coupon_no;
+ }
+ if (th.data.using_quan[th.data.bn_pick] && th.data.using_quan[th.data.bn_pick].coupon_no && th.data.using_quan[th.data.bn_pick].isby) {
+ item.coupon_no = th.data.using_quan[th.data.bn_pick].coupon_no;
+ item.coupon_price = 0;
+ }
+
+ //老会员成为分销下线需要的参数
+ if (getApp().globalData.first_leader && !getApp().globalData.userInfo.first_leader) {
+ //判断一下分享人是不是分享商
+ await app.request.promiseGet("/api/weshop/users/get/" + os.stoid + "/" + getApp().globalData.first_leader, {}).then(res => {
+ if (res.data.code == 0) {
+ var user = res.data.data;
+ if (user.is_distribut == 1) {
+ item.first_leader = parseInt(getApp().globalData.first_leader);
+ }
+ }
+ })
+ }
+
+ var goods = {
+ 'goods_id': gg.goods_id,
+ 'goods_name': gg.goods_name,
+ 'goods_sn': gg.goods_sn,
+ 'goods_num': gg.goods_num,
+ 'market_price': th.data.bn_goods.market_price,
+ 'goods_price': th.data.bn_goods.shop_price,
+ 'member_goods_price': th.data.bn_goods.shop_price,
+ 'store_id': oo.stoid,
+ 'prom_type': th.data.bn_goods.prom_type, //促销活动类型
+ 'prom_id': th.data.bn_goods.prom_id, //促销活动id
+ };
+
+ //-- 把导购的信息填入--
+ if (gg.guide_id) {
+ goods.guide_id = gg.guide_id;
+ goods.guide_type = gg.guide_type;
+ //调用接口判断是不是会员
+ await getApp().request.promiseGet("/api/weshop/shoppingGuide/getId/" + oo.stoid + "/" + gg.guide_id, {}).then(res => {
+ if (res.data.code == 0) {
+ goods.guide_name = res.data.data.salesman;
+ goods.guide_sn = res.data.data.salesman_no;
+ }
+ })
+ }
+
+ //--商品的房间号--
+ if (gg.room_id && gg.room_id > 0) {
+ goods.room_id = gg.room_id;
+ }
+
+ //积分购,先要带is_integral_normal=1
+ if (gg.is_integral_normal) goods.is_integral_normal = 1;
+
+ //先要带is_pd_normal=1
+ if (gg.is_pd_normal) goods.is_pd_normal = 1;
+
+ //如果不立即购买或者秒杀,如果是线下库存购买的时候
+ if (goods.prom_type != 1 && goods.prom_type != 6 && th.data.sales_rules == 2) {
+ var isok = 1;
+ await th.check_store_num(goods.goods_id, th.data.bn_pick, gg.goods_num, function (res) {
+ isok = res;
+ });
+ if (!isok) {
+ getApp().confirmBox("商品的门店库存不足");
+ th.data.is_summit_ing = 0;
+ return false;
+ }
+ }
+
+ //-- 如果有线下取价的话 --
+ if (th.data.bn_goods.is_offline) {
+ item.sum_offline_cut = (th.data.bn_goods.shop_price - th.data.bn_goods.offline_price).toFixed(2);
+ goods.offline_cut = item.sum_offline_cut;
+ goods.pricing_type = th.data.bn_goods.pricing_type;
+ goods.goods_price = th.data.bn_goods.offline_price;
+ goods.member_goods_price = th.data.bn_goods.offline_price;
+ }
+
+ //--- 如果有优惠促销的金额,要把金额先平摊下去 ---
+ if (th.data.formData.cut_price > 0 && !th.data.ispt_goods) {
+ var g_arr = new Array();
+ g_arr.push(goods);
+ var pt_data = {
+ 'prom_id': goods.prom_id,
+ 'dis': parseFloat(th.data.formData.cut_price),
+ 'goods': g_arr,
+ }
+
+ var pt_res = null;
+ await getApp().request.promisePost("/api/weshop/order/getGoodsSplit", {
+ is_json: 1,
+ data: pt_data
+ }).then(res => {
+ if (res.data.code == 0) {
+ pt_res = res.data.data;
+ }
+ })
+ if (pt_res) {
+ //平摊赋值
+ goods.account = pt_res[0].fisrt_account;
+ goods.account_yu = pt_res[0].fisrt_account_yu;
+ item.is_discount_amount = 1;
+ }
+ }
+
+ //--组装优惠券的钱--
+ if (th.data.formData.coupon_price) {
+ item.coupon_price = th.data.formData.coupon_price;
+ item.coupon_no = th.data.using_quan[th.data.bn_pick].coupon_no;
+ goods.quan_num = th.data.formData.coupon_price;
+ goods.quan_no = item.coupon_no;
+ }
+
+ item.order_goods.push(goods);
+
+ //--如果有赠品的时候,赠品也要提交---
+ if (th.data.buy_now_gift_goods) {
+ var gift_gg = th.data.buy_now_gift_goods;
+ var g_goods = {
+ 'goods_id': gift_gg.goods_id,
+ 'goods_name': gift_gg.goods_name,
+ 'goods_sn': gift_gg.goods_sn,
+ 'goods_num': gift_gg.buynum,
+ 'market_price': gift_gg.market_price,
+ 'goods_price': 0,
+ 'member_goods_price': 0,
+ 'store_id': oo.stoid,
+ 'is_gift': 1,
+ 'gift_id': gift_gg.gift_id,
+ 'prom_id': gift_gg.prom_id,
+ };
+ item.order_goods.push(g_goods);
+ }
+ pdata.push(item);
+
+ console.log(pdata);
+ } else {
+ //---------购物车的结算---------
+ if (th.data.is_all_zt == 0 && th.data.user_addr == null) {
+ th.data.is_summit_ing = 0;
+ ff = false;
+ getApp().confirmBox("请新建收货地址");
+ }
+ if (!ff) return false;
+
+ var addr = th.data.user_addr;
+ if (th.data.is_all_zt == 1) addr = null;
+ var val_arr = t.detail.value;
+
+
+ if (th.data.is_all_zt != 1)
+ if (th.data.wu_arr == null || th.data.wu_arr.length <= 0) {
+ th.data.is_summit_ing = 0;
+ getApp().confirmBox("读取物流失败");
+ return false;
+ }
+
+ var order_prom_list_cart = th.data.order_prom_list_cart;
+
+ //--组装推送数据--
+ for (var i = 0; i < order_prom_list_cart.length; i++) {
+ var t_item = order_prom_list_cart[i];
+ var item = {
+ 'user_id': to.globalData.user_id,
+ 'consignee': addr == null ? th.data.userinfo.mobile : addr.consignee,
+ 'province': addr == null ? 0 : addr.province,
+ 'city': addr == null ? 0 : addr.city,
+ 'district': addr == null ? 0 : addr.district,
+ 'twon': addr == null ? 0 : addr.twon,
+ 'address': addr == null ? "" : addr.address,
+ 'more_address': addr == null ? "" : addr.more_address,
+ 'mobile': addr == null ? th.data.userinfo.mobile : addr.mobile,
+ 'email': '',
+ 'shipping_code': th.data.is_all_zt == 1 ? 0 : th.data.wu_arr[t_item.wind].code,
+ 'shipping_name': th.data.is_all_zt == 1 ? '' : th.data.wu_arr[t_item.wind].name,
+ 'invoice_title': '',
+ 'goods_price': t_item.goods_price, //商品总价
+ 'shipping_price': t_item.shipping_price, //物流金额
+ 'user_money': t_item.user_money, //使用余额
+ 'total_amount': t_item.total_amount, //订单总价
+ 'order_amount': t_item.order_amount, //应付
+ 'user_note': val_arr['user_note_' + t_item.pickup_id], //用户备注
+ 'store_id': oo.stoid, //商家
+ 'pickup_id': t_item.pickup_id, //门店
+ 'exp_type': t_item.exp_type, //配送方式
+ 'order_goods': new Array(),
+ };
+ //是不是重新提交
+ if (th.data.is_continue == 1) item.is_continue = 1;
+ //----- 如果有线下取价的话 ----
+ if (t_item.is_offline == 1) {
+ item.sum_offline_cut = t_item.offline_price.toFixed(2);
+ }
+
+ //组装优惠券的钱
+ if (t_item.coupon_price) {
+ item.coupon_price = t_item.coupon_price;
+ item.coupon_no = th.data.using_quan[t_item.pickup_id].coupon_no;
+ } else if (t_item.quan_no) {
+ item.coupon_no = t_item.quan_no;
+ item.coupon_price = 0;
+ }
+
+ var order_prom_list = {};
+ //--判断有没有优惠活动--
+ if (t_item.order_prom_amount > 0) {
+ order_prom_list.order_prom_id = t_item.order_prom_id;
+ order_prom_list.order_prom_amount = t_item.order_prom_amount;
+ }
+
+ order_prom_list.discount_amount =0;
+ //--判断优惠活动的提交--
+ if (t_item.cut_price > 0) {
+ order_prom_list.discount_amount += t_item.cut_price.toFixed(2);
+ order_prom_list.prom_pt_json = JSON.stringify(t_item.prom_pt_json);
+ }
+ //--判断组合优惠活动的提交--
+ if (t_item.zh_cut_price > 0) {
+ order_prom_list.discount_amount += t_item.zh_cut_price.toFixed(2);
+ order_prom_list.zh_pt_json = JSON.stringify(t_item.zh_pt_json);
+ }
+ if (t_item.s_intValue > 0) {
+ order_prom_list.give_integral = t_item.s_intValue;
+ }
+ if (t_item.s_coupon_id) {
+ order_prom_list.give_coupon_id = t_item.s_coupon_id;
+ order_prom_list.g_coupon_num = JSON.stringify(t_item.g_coupon_num);
+ }
+ if (t_item.s_libao) {
+ order_prom_list.give_lb_id = t_item.s_libao;
+ order_prom_list.g_lb_num = JSON.stringify(t_item.g_lb_num);
+ }
+ if (Object.keys(order_prom_list).length > 0)
+ item.order_prom_list = order_prom_list;
+
+ //老会员成为分销下线需要的参数
+ if (getApp().globalData.first_leader && !getApp().globalData.userInfo.first_leader) {
+ //判断一下分享人是不是分享商
+ await app.request.promiseGet("/api/weshop/users/get/" + os.stoid + "/" + getApp().globalData.first_leader, {}).then(res => {
+ if (res.data.code == 0) {
+ var user = res.data.data;
+ if (user.is_distribut == 1) {
+ item.first_leader = parseInt(getApp().globalData.first_leader);
+ }
+ }
+ })
+ }
+
+
+ //房间号的ids
+ var room_ids = "";
+ //-------------让商品添加到商品列表--------------------
+ for (var k = 0; k < t_item.goods.length; k++) {
+ var g_item = t_item.goods[k];
+ var goods = {
+ 'goods_id': g_item.goods_id,
+ 'goods_name': g_item.goods_name,
+ 'goods_sn': g_item.goods_sn,
+ 'goods_num': g_item.goods_num,
+ 'market_price': g_item.market_price,
+ 'goods_price': g_item.goods_price,
+ 'member_goods_price': g_item.goods_price,
+ 'store_id': oo.stoid,
+ };
+
+ //-- 线下取价也要写入 --
+ if (g_item.offline_price && t_item.is_offline == 1) {
+ goods.goods_price = g_item.offline_price;
+ goods.member_goods_price = g_item.offline_price;
+ goods.offline_cut = (g_item.goods_price - g_item.offline_price).toFixed(2);
+ goods.pricing_type = g_item.pricing_type;
+ }
+
+ //--把券的钱,写入从表---
+ if (t_item.quan_youhui_list && t_item.coupon_price) {
+ for (var kk in t_item.quan_youhui_list) {
+ var you_item = t_item.quan_youhui_list[kk];
+ if (g_item.prom_type!=7 && g_item.erpwareid == you_item.WareId) {
+ goods.quan_num = you_item.WareCashSum;
+ goods.quan_no = you_item.CashRepNo;
+ }
+ }
+ }
+
+ //--判断活动的类型--
+ switch (g_item.prom_type) {
+ case 1:
+ goods.prom_type = g_item.prom_type;
+ goods.prom_id = g_item.prom_id;
+ break;
+ case 3:
+ goods.prom_type = 3;
+ goods.prom_id = g_item.prom_id;
+ if (g_item.is_gift) {
+ goods.is_gift = g_item.is_gift;
+ goods.gift_id = g_item.gift_id;
+ }
+ break;
+ case 5:
+ goods.prom_type = 5;
+ goods.prom_id = g_item.prom_id;
+ if (g_item.is_collocation) {
+ goods.is_collocation = g_item.is_collocation;
+ }
+ break
+ case 7:
+ goods.prom_type = 7;
+ goods.prom_id = g_item.prom_id;
+ break
+ default:
+ goods.prom_type = 0;
+ goods.prom_id = 0;
+ }
+
+ //如果不立即购买或者秒杀,如果是线下库存购买的时候
+ if (goods.prom_type == 0 && th.data.sales_rules == 2) {
+ var isok = 1;
+ await th.check_store_num(goods.goods_id, t_item.pickup_id, goods.goods_num, function (res) {
+ isok = res;
+ });
+ if (!isok) {
+ getApp().confirmBox(goods.goods_name + "的门店库存不足");
+ th.data.is_summit_ing = 0;
+ return false;
+ }
+ }
+
+ //把优惠的平摊结果写进去
+ if (g_item.account >= 0 || g_item.account_yu != 0) {
+ if (g_item.account >= 0) goods.account = g_item.account;
+ if (g_item.account_yu != 0) goods.account_yu = g_item.account_yu;
+ item.is_discount_amount = 1;
+ }
+
+ //导购ID
+ if (g_item.guide_id) {
+ goods.guide_id = g_item.guide_id;
+ goods.guide_type = g_item.guide_type;
+ //调用接口判断是不是会员
+ await getApp().request.promiseGet("/api/weshop/shoppingGuide/getId/" + oo.stoid + "/" + g_item.guide_id, {}).then(res => {
+ if (res.data.code == 0) {
+ goods.guide_name = res.data.data.salesman;
+ goods.guide_sn = res.data.data.salesman_no;
+ }
+ })
+ }
+ //如果房间号不为空的时候
+ if (g_item.room_id) {
+ goods.room_id = g_item.room_id;
+ room_ids += g_item.room_id + ",";
+ }
+ item.order_goods.push(goods);
+ }
+
+ //如果房间号不为空的时候
+ if (room_ids != "") item.room_ids = ut.sub_last(room_ids);
+ pdata.push(item);
+ }
+
+
+ }
+
+ if (pdata.length == 0) return;
+ var str = JSON.stringify(pdata);
+
+ wx.showLoading({title: "加载中"});
+ wx.request({
+ url: oo.url + '/api/weshop/order/createWxdOrder',
+ data: str,
+ method: 'POST',
+ header: {
+ 'content-type': 'application/json'
+ },// 设置请求的 header
+ success: function (res) {
+
+
+ wx.hideLoading();
+ if (res.statusCode == 200) {
+ var data = res.data;
+ if (data.code == 0) {
+ console.log(th.data.is_b_now);
+ //如果是购物车结算,还要删除购物车
+ if (th.data.is_b_now == 0) {
+ console.log(th.data.cartlist_y);
+ var list = th.data.cartlist_y;
+ for (var i = 0; i < list.length; i++) {
+ //删除购物车
+ a.delete("/api/weshop/cart/del/" + oo.stoid + "/" + list[i].id, {});
+ }
+ }
+ var order_amount = 0;
+ pdata.forEach(function (em, ind) {
+ order_amount += em.order_amount;
+ })
+ //要进行判断,如果是用微信支付,就要跳转到支付界面
+ if (order_amount > 0) {
+ th.setData({isclose: 0});
+ //void e.jumpToCart4({
+ // order_sn: data.data,
+ //}, 1);
+ util_pay.pay(data.data, function () {
+ //app.my_warnning("支付成功",1,th);
+ //setTimeout(function () {
+ wx.redirectTo({
+ url: "/pages/payment/pay_success/pay_success?type=2&order_sn=" + data.data
+ })
+ //},1000)
+
+ }, function () {
+ //支付失败
+ setTimeout(function () {
+ wx.navigateBack({delta: 1})
+ }, 1000)
+ }, oo.stoid);
+
+ } else {
+ var dd = {
+ parent_sn: data.data,
+ store_id: oo.stoid,
+ type: 2,
+ };
+ a.post("/api/weshop/order/pay/createOrder", {
+ data: dd,
+ success: function (t) {
+ //console.log(t);
+ if (t.data.code == 0) {
+ //app.my_warnning("支付成功",1,th);
+ //setTimeout(function () {
+ th.setData({isclose: 0});
+ wx.redirectTo({
+ url: "/pages/payment/pay_success/pay_success?type=2&order_sn=" + data.data,
+ })
+ //}, 1000)
+ }
+ },
+ fail: function () {
+
+ }
+ });
+ }
+
+ }
+ else {
+ //--内容换行--
+ var msg = data.msg;
+ //赠品活动已经取消,无法赠送,是否继续买单?
+ if (msg.indexOf("是否继续买单") > 0) {
+ wx.showModal({
+ title: "提示",
+ content: data.msg,
+ cancelText: '取消',
+ confirmText: '确定',
+ showCancel: true,
+ success(res){
+ if (res.cancel) {
+ return;
+ } else if (res.confirm) {
+ th.data.is_continue = 1;
+ th.data.is_summit_ing = 0; //是否提交中
+ th.submitForm(sub_value);
+ }
+ }
+ })
+ return;
+ }
+ if (msg.length > 13) {
+ msg = msg.slice(0, 13) + "\r\n" + msg.slice(13);
+ }
+ getApp().confirmBox(msg);
+ th.data.is_summit_ing = 0; //是否提交中
+ }
+ } else {
+ th.data.is_summit_ing = 0; //是否提交中
+ console.log("index.js wx.request CheckCallUser statusCode" + res.statusCode);
+ }
+ },
+ fail: function () {
+ th.data.is_summit_ing = 0;
+ wx.hideLoading();
+ console.log("index.js wx.request CheckCallUser fail");
+ },
+ complete: function () {
+ }
+ })
+
+ },
+ //---确认线下门店的数量足不足---
+ async check_store_num(goods_id, pick, goods_num, func){
+ var lock = 0, pick_no, plist, erpwareid;
+ //先读取门店的lock
+ await getApp().request.promiseGet("/api/weshop/order/ware/lock/page", {
+ data: {store_id: os.stoid, wareId: goods_id, storageId: pick, pageSize: 1000}
+ }).then(res => {
+ if (res.data.code == 0 && res.data.data.total > 0) {
+ for (var i in res.data.data.pageData)
+ lock += res.data.data.pageData[i].outQty;
+ }
+ })
+ //先获取门店的编号
+ await getApp().request.promiseGet("/api/weshop/pickup/get/" + os.stoid + "/" + pick, {
+ data: {storeId: os.stoid, goodsId: t.goods_id, pickupId: pick}
+ }).then(res => {
+ if (res.data.code == 0) {
+ pick_no = res.data.data.pickup_no;
+ }
+ })
+ //先获取商品的线下库存
+ await getApp().request.promiseGet("/api/weshop/goods/get/" + os.stoid + "/" + goods_id, {
+ data: {storeId: os.stoid, goodsId: t.goods_id, pickupId: pick}
+ }).then(res => {
+ if (res.data.code == 0) {
+ erpwareid = res.data.data.erpwareid;
+ }
+ })
+ //读取线下的门店库存
+ await getApp().request.promiseGet("/api/weshop/goods/getWareStorages", {
+ data: {storageNos: pick_no, wareIds: encodeURIComponent(erpwareid), storeId: os.stoid, pageSize: 2000}
+ }).then(res => {
+ if (res.data.code == 0) {
+ plist = res.data.data.pageData[0];
+ }
+ })
+ var isok = 1;
+ if (goods_num > plist.CanOutQty - lock) {
+ isok = 0;
+ }
+ func(isok);
+ },
+
+ useCoupon: function () {
+ if (this.data.order.couponNum <= 0) {
+ getApp().my_warnning("无可用优惠券", 0, this);
+ return;
+ }
+
+ var a = {
+ lid: this.data.coupon ? this.data.coupon.id : "0"
+ };
+ wx.navigateTo({
+ url: "/pages/user/checkcoupon/checkcoupon?" + s.Obj2Str(a)
+ });
+ },
+ enterAddressPage: function () {
+ getApp().globalData.is_cart_old = 1;
+ this.data.isget_by_quan = {};
+ this.data.enterAddressPage = !0, wx.navigateTo({
+ url: "/pages/user/address_list/address_list"
+ });
+ },
+
+ //--------购物车购买时,选择自提和物流-----------
+ setexptype_w: function (t) {
+
+ var def_exp_code = getApp().globalData.userInfo.def_exp_code, th = this;
+ var ty = t.currentTarget.dataset.t, txt = t.currentTarget.dataset.txt,
+ wl_txt = t.currentTarget.dataset.wl_txt,
+ ont = t.currentTarget.dataset.ont;
+
+ th.setData({[txt]: ty});
+ var iszt = 1;
+
+ if (ty == 0) {
+ th.setData({is_all_zt: 0});
+ } else {
+ for (var i = 0; i < th.data.cartlist.length; i++) {
+ var item = th.data.cartlist[i];
+ if (item.exp_type == 0) {
+ iszt = 0;
+ break;
+ }
+ }
+
+ th.setData({is_all_zt: iszt});
+
+ var ind = t.currentTarget.dataset.ind;
+ var c_item = th.data.cartlist[ind];
+ var pickid = c_item.pickup_id;
+
+ if (th.data.using_quan[pickid] && th.data.using_quan[pickid].isby == 1) {
+ th.data.using_quan[pickid] = {};
+ th.setData({using_quan: th.data.using_quan});
+ }
+
+
+ }
+ //判断有没有默认的物流地址值
+ if (def_exp_code != "" && def_exp_code != null && def_exp_code != undefined) {
+ var wu_arr = this.data.wu_arr;
+ if (wu_arr != null && wu_arr != "") {
+ for (var i = 0; i < wu_arr.length; i++) {
+ if (wu_arr[i].shipping_code == def_exp_code) {
+ var set_txt = "cartlist"
+ th.setData({wl_txt: i});
+ }
+ }
+ }
+ }
+ //----计算此时购物车的价格----
+ th.calculatePrice();
+ },
+
+ //--------立即购买时,选择自提和物流----------
+ setexptype: function (t) {
+ var th = this;
+ var ty = t.currentTarget.dataset.t, def_exp_code = getApp().globalData.userInfo.def_exp_code;
+ th.setData({bn_exp_type: ty});
+ if (ty == 0) {
+ th.setData({is_all_zt: 0});
+ }
+
+ //当物流为空的时候。
+ if (ty == 0 && th.data.wu_arr == null) {
+ th.data.isget_by_quan = {};
+ return th.get_wuliu(th.calculatePrice2());
+ }
-Page({
- data: {
- url: t.globalData.setting.url,
- resourceUrl: t.globalData.setting.resourceUrl,
- imgUrl: t.globalData.setting.imghost,
- goods: null,
- order: null,
- orderPrices: null,
- coupons: null,
- coupon: null,
- invoiceToggle: !0,
- payWithUserMoney: !0,
- payWithPoints: !0,
- maxWord: 0,
- enterAddressPage: !1,
- firstEnter: !0,
- //页面获取的参数
- param:null,
- //提交订单的格式
- formData: {
- order_amount:0,//支付金额
- total_amount:0,//总价
- all_price:0,//商品卖的总价
- pay_points: 0,//使用积分
- user_money: 0,//使用余额
- couponCode: "",//使用优惠券(多单就用逗号隔开)
- shipping_price:0,//物流费用
- },
- /*-----------当是购物车结算的时候-------------*/
- cartlist:null,
- old_cartlist:null,
- cartlist_y:null, //购物车原始列表
- js_use_money: 0, //是否使用余额
- is_all_zt:1, //是否全部都是自提
-
- /*----------------立即购买---------------------*/
- is_b_now:0, //0是购物车结算 1立即购买
- bn_goods:null, //立即购买时候的调用商品
- bn_use_money:0,//是否使用余额
- bn_exp_type:1, //0是物流 1自提
- bn_pick:0, //选择的门店
- bn_pickname: "", //选择的门店名称
- bn_t_exp_t:0, //判断商品和门店一起决定的物流自提的方式0 都可以 1自提 2物流
-
- bn_plus_cut_price:0, //显示等级卡会优惠多少钱
- /*------------------------*/
- user_addr:null,//物流
- userinfo:null, //获取会员
- /*----------物流选择--------*/
- wu_arr:null,
- index:0,
- w_sele_index:0,
-
- //判断页面是返回回来的还是 首次进入的
- isclose:1,
- //申请提现的金额
- txmon:0,
- yuer:0,
- //提交中,不重复提交
- is_summit_ing:0,
- //--更优惠券抵用有关,立即购买的,如果是购物车,就要把相应的值,写入cartlist数组中--
- ckeck_quan_price:0,
- check_quan_price_list:'',
- check_quan_ware_list:'',
-
- // 设计一个数组来存放已经选择了的券编号,coupon_no是券号,money是面值,coupon_price是真正优惠的价格,数组的下标是pickid
- //using_quan[11]={coupon_no:"1212121",money:"20",coupon_price:"45"}
- using_quan:{},
- open_quan:0,
- //选择的券列表
- selected_quan_list:null,
- //选择的券的门店
- selected_quan_pick:null,
- is_close_quan:0,
- disabled:0,
- open_express:0,//控制选择物流名列表 的属性
-
- is_express:0, //选中物流的属性
- expres_name:"", //点击选定
- isopen:0, //券的说明
- is_coupon:null, //选择券的控制属性
- is_shipping_code:"",//插入用户默认地址
- wu_arr_txt:"", //要更新的物流的字段
-
- sales_rules:1, //默认是显示线上库存
- isget_by_quan:{}, //是否调用了接口获取包邮券
- get_by_quan_list:null, //立即购买的
- get_by_quan_list_cart:{}, //购物车的
- by_quan_list_cart:null, //点击选择的包邮列表
-
- //如果是全场包邮了,或者是全场不包邮了,就不要选包邮券
- is_no_by:{},
- is_by:{},
- is_quan_by:{},
- //--购买赠送的商品--
- buy_now_gift_goods:null,
- //--订单优惠--
- order_prom:{},
- //-- 购物车优惠活动 --
- prom_goods_map:{},
- //-- order_prom_list --
- order_prom_list_cart:null,
-
- ispt_goods:0, //是否平摊至单品,0要平摊 1不平摊
-
- rank_switch:0, //是不是开同等级卡
- show_card:null, //显示的等级卡
- card_name:'', //显示的卡的名称
- card_cut_price:null,//减价多少钱
-
- show_submit:0, //提交按钮变正常显示
- is_get_offline:1,
-
- tabs: ['门店自提','快递邮寄'],
- currentTabIndex: 1,
- },
- onLoad: function(t) {
- wx.setNavigationBarTitle({ title: "填写订单",})
- var th = this; this.setData({ is_b_now: t.is_bnow == undefined ? 0 : t.is_bnow,});
- th.data.param=t;
- //清理一下,确保最新的系统配置
- getApp().globalData.config2=null;
- //清空is_pick_up
- getApp().request.put("/api/weshop/useraddress/updatePickUp", {
- data: {user_id: getApp().globalData.user_id, is_pickup: 0},
- success: function (s) {
- }
- });
-
-
- },
- onUnload: function () { this.setData({ isclose: 1 })},
- onHide: function () {
- this.setData({
- isget_by_quan:{},
- is_no_by:{},
- is_by:{}
- })
- },
-
- //----------子页返回父页触发----------
- onShow: function() {
- var th=this;
- th.setData({show_submit:0}); //让提交先掩藏
- th.data.g_cart_q_time=null;
-
- if (th.data.isclose==0){
- wx.navigateTo({
- url: "/pages/index/index/index"
- })
-
- }else{
- this.getuser_addr(function(ie){
-
- console.log("getuser_addr")
- console.log(ie)
-
- //地址切换要把包邮券清空
- if( !th.data.user_addr || !ie || th.data.user_addr.address_id!=ie.address_id){
- var using_quan=th.data.using_quan;
- for(var i in using_quan){
- var item=using_quan[i];
- if(item.isby==1){
- var ob={},txt="using_quan["+i+"]";ob[txt]={};
- th.setData(ob);
- }
- }
- th.data.isget_by_quan={};
- }
-
-
- th.data.prom_goods_map={};
- th.data.is_summit_ing=0;
- //更换地址回来要重新调用计算价钱的接口
- if(!th.data.user_addr || th.data.user_addr.address_id!=ie.address_id){
- th.setData({user_addr: ie });
- if (th.data.is_b_now == 1) {
- if(th.data.bn_goods) {
- th.setData({add_back:1});
- //th.calculatePrice2();
- }
- }else{
- if (th.data.cartlist){
- th.setData({add_back:1});
- //th.calculatePrice();
- }
- }
- }else{
- th.setData({user_addr: ie });
- }
- var going=0;
-
-
- //使用计时器,避免空现象
- /*---
- var jishi= setInterval(function () {
- if (th.data.is_b_now == 1 && going==0) {
- if(th.data.bn_goods) {
- th.calculatePrice2();going=1;clearInterval(jishi);
- }
- }else if(going==0) {
- if (th.data.cartlist){
- th.calculatePrice();going = 1; clearInterval(jishi);
- }
- }
- },500)--*/
-
- });
- var is_card_back=getApp().globalData.is_card_back;
- //--更新默认地址--,看一下是不是跳到地址页面,同时也不是购买等级卡返回的,这里很重要,否则会重新更新收货物流公司
- if(!getApp().globalData.is_cart_old && !is_card_back && !getApp().globalData.plus_buy_back){
- this.update_code();
- }else{
- getApp().globalData.is_cart_old=0;
- getApp().globalData.plus_buy_back=0;
- }
- }
-
- //先获取是否有关闭使用优惠券
- getApp().getConfig2(function (ee) {
- var json_d = JSON.parse(ee.switch_list);
- th.data.json_d=json_d;
- th.data.ispt_goods=json_d.ispt_goods; //是不是平摊到单品的控制参数赋值
- var is_default_logistics=json_d.is_default_logistics;
-
- th.setData({ is_close_quan: json_d.is_close_quan,sales_rules:ee.sales_rules,rank_switch:json_d.rank_switch,is_default_logistics:is_default_logistics});
-
- var rank_switch=json_d.rank_switch;
- var max_price=-1;
- var show_card=null;
- var name="";
- //如果有开等级卡的时候,
- //因为都是调接口,要返回在计算
- if(rank_switch==2){
- //-- 获取所有的等级卡, --
- getApp().request.promiseGet("/api/weshop/plus/vip/mem/bership/list?storeId=" + os.stoid,
- {}).then(res => {
- if(res.data.code==0){
- var plusCard = res.data.data;
- //-- 循环判断,拿到最贵的那张卡 --
- for(var ih in plusCard){
- if(plusCard[ih].IsStopBuy == true){ continue; }
- if(max_price<0){
- max_price=plusCard[ih].CardFee;
- name='card'+plusCard[ih]['CorrPrice'];
- show_card=plusCard[ih];
- }else{
- if(max_price0?th.data.userinfo.frozen_money:0) - su.data.data.summoney).toFixed(2);
- th.setData({ txmon: su.data.data.summoney, yuer: yuer });
- }
- }
- });
-
-
- },
- });
-
- },
-
-
- //-----真的获取购物车,入口--------
- get_cart: function () {
- var th = this,app=getApp();
- a.get("/api/weshop/cart/list", {
- data: {
- user_id: to.globalData.user_id, selected:1,state:0,
- store_id: oo.stoid, pageSize: 600 },
- success:async function (su) {
- //按门店分类的数组
- var arr = new Array();
- var carr = su.data.data.pageData;
- th.data.cartlist_y = carr; //存储原始购物车列表
-
- //---是不是购买等级卡成功的返回---等级卡显示的判断---
- var is_card_back=getApp().globalData.is_card_back;
-
- for (var i = 0; i < carr.length; i++) {
- var item1 = carr[i];
- //要把优惠活动加入,prom_goods_map中,赠品不要运算
- if(item1.prom_type==3 && item1.is_gift!=1){
- await th.add_prom_goods_map(item1);
- }
-
- }
-
- //在分组的时候,就不要再调用接口,await
- for (var i = 0; i < carr.length; i++) {
- var item = carr[i];
-
- //-- 如果是等级会员注册返回 --
- if(is_card_back){
- th.data.card_name=th.data.userinfo.card_field;
- //如果是秒杀的返回,就要把活动弄回0
- if(item['prom_type']==1){
- item['prom_type']=0;
- item['prom_id']=0;
- }
- // 拼团,搭配购不计算,赠品也不计算
- if( item['prom_type']!=5 && item['prom_type']!=6 && !item.is_gift && !item['is_collocation'] && item.goods_price>item[th.data.card_name] ){
- item.goods_price=item[th.data.card_name];
- carr[i].goods_price=item[th.data.card_name];
-
- }
- }else{
- // 拼团,搭配购不计算,赠品也不计算,同时会员还未购买等级会员
- if(item[th.data.card_name]>0 && item['prom_type']!=5 && item['prom_type']!=6 && !th.data.userinfo.card_field
- && !item.is_gift && !item['is_collocation'] && item.goods_price>item[th.data.card_name] ){
- item.cut_price1= item.goods_price-item[th.data.card_name];
- carr[i].cut_price1=(item.goods_price-item[th.data.card_name])*item.goods_num;
- }
-
- }
-
- item.original_img = oo.imghost + item.original_img;
- /*----接口要弄出来的,先顶着-----*/
- var pcid = item.pick_id;
- var find = 0;
- //----如果有就加进去,没有就新增一个----
- //-----------循环查找门店-------------
- if (arr.length > 0) {
- for (var j = 0; j < arr.length; j++) {
- if (arr[j].pickup_id == pcid) {
- arr[j].goods.push(item);
- //if(item.is_gift!=1){
- //确定配送方式
- if(arr[j].distr_t==0){
- arr[j].distr_t=item.distr_type;
- }
- var e_t=0
- switch (arr[j].distr_t) {
- case 0:
- e_t = 1;
- if(th.data.json_d.pickupway && th.data.json_d.pickupway==1) e_t=0;
- break;
- case 1: e_t = 1; break;
- case 2: e_t = 0; break;
- }
- arr[j].exp_type=e_t;
- if (e_t == 0) th.setData({ is_all_zt:0});
- //}
-
- //-- 把等级卡会优惠多少钱装进去 --
- if(item.cut_price) arr[j].card_cut_price+=item.cut_price;
- find = 1;break;
- }
- }
- }
- //------如果没有找到-----
- if (find == 0) {
- var pikname = '',sto=null;
- //----找到门店名称-----
- for (var k = 0; k < th.data.allsto.length; k++) {
- if (pcid == th.data.allsto[k].pickup_id) {
- pikname = th.data.allsto[k].pickup_name; sto = th.data.allsto[k]; break;
- }
- }
- var e_t=0,dis_t=0;//物流方式,配送方式
- if (item.distr_type == 0) {
- dis_t = sto.distr_type;
+ //--自提就要把包邮券清理掉--
+ if (ty == 1) {
+ th.data.isget_by_quan = {};
+ if (th.data.using_quan[th.data.bn_pick] && th.data.using_quan[th.data.bn_pick].isby == 1) {
+ th.setData({using_quan: {}});
+ }
+ }
+
+ //判断有没有默认的物流地址值
+ if (def_exp_code != "" && def_exp_code != null && def_exp_code != undefined) {
+ var wu_arr = this.data.wu_arr;
+ if (wu_arr != null && wu_arr != "") {
+ for (var i = 0; i < wu_arr.length; i++) {
+ if (wu_arr[i].shipping_code == def_exp_code) {
+ th.setData({index: i});
+ }
+ }
+ }
+ }
+ th.calculatePrice2()
+
+ },
+
+ //--------立即购买时,使用余额--------
+ set_bn_useyuer: function () {
+ var th = this;
+ th.setData({bn_use_money: !th.data.bn_use_money});
+ th.calculatePrice2();
+ },
+ set_js_useyuer: function () {
+ var th = this;
+ th.setData({js_use_money: !th.data.js_use_money});
+ th.calculatePrice();
+ },
+ //-------------------计算物流---------------
+ calculatewuliu: function (code, o_shipping_price, goods_weight,
+ goods_piece, user_addr, freight_free, o_price, rs) {
+ var price = 0, th = this;
+ price += parseFloat(o_shipping_price);
+ //如果是包邮
+ if (freight_free > 0 && o_price >= freight_free) {
+ return 0;
+ }
+ if (user_addr == null) {
+ return 0;
+ }
+ //计算物流的config item;
+ var item = null;
+ //先根据 镇 县 区找计算的config
+ item = th.get_wuliu_config(user_addr.district, code, rs);
+ if (item == null) item = th.get_wuliu_config(user_addr.city, code, rs);
+ if (item == null) item = th.get_wuliu_config(user_addr.province, code, rs);
+ if (item == null) item = th.get_wuliu_default(code, rs);
+ if (item == null) return o_shipping_price;
+ var fw_price = 0, fp_price = 0;
+ item = item.config;
+ if (item == null) return o_shipping_price;
+ //------按重量----------
+ if (goods_weight >= 0 && item['money']) {
+ fw_price = parseFloat(item['money']);
+ if (goods_weight > item['first_weight']) {
+ var fw = goods_weight - item['first_weight'];
+ var n = Math.ceil(fw / item['second_weight'])
+ fw_price = fw_price + n * parseFloat(item['add_money']);
+ }
+ }
+ //------按件数----------
+ if (goods_piece > 0 && item['piecemoney']) {
+ fp_price = parseFloat(item['piecemoney']);
+ if (goods_piece > item['first_piece']) {
+ var fp = goods_piece - item['first_piece'];
+ var m = Math.ceil(fp / item['second_piece'])
+ fp_price = fp_price + m * parseFloat(item['add_piecemoney']);
+ }
+ }
+ var rspice = parseFloat(price + fw_price + fp_price);
+ return rspice;
+ },
+
+ //------------循环获取config-----------
+ get_wuliu_config: function (region_id, code, rs) {
+ var item = null, rslist = rs.pageData;
+ for (var i = 0; i < rslist.length; i++) {
+ if (rslist[i].code == code && rslist[i].region_id == region_id) {
+ item = rslist[i];
+ }
+ }
+ return item;
+ },
+ //-------循环获取config,code default-------
+ get_wuliu_default: function (code, rs) {
+ var item = null, rslist = rs.pageData;
+ for (var i = 0; i < rslist.length; i++) {
+ if (rslist[i].shipping_code == code && rslist[i].is_default == 1) {
+ item = rslist[i];
+ }
+ }
+ return item;
+ },
+
+ //----------立即购买,选择物流-------------
+ bindPickerChange: function (e) {
+ var ind = e.detail.value
+ this.setData({index: ind});
+ this.calculatePrice2();
+ },
+ //----------购物车结算,选择物流-------------
+ bindPickerChange_w: function (e) {
+ var ind = e.detail.value, txt = e.currentTarget.dataset.txt;
+ this.setData({[txt]: ind});
+ this.calculatePrice();
+ },
+
+ /*----券的所有操作----*/
+ open_coupon_list: function (e) {
+ var th = this;
+ var pickid = e.currentTarget.dataset.pickid;
+ var bn = e.currentTarget.dataset.bn;
+ var cindx = e.currentTarget.dataset.cind;
+ var get_by_quan_list_cart = th.data.get_by_quan_list_cart[pickid];
+
+
+ if (bn == 1) {
+ th.setData({open_quan: 1, selected_quan_pick: pickid, disabled: 1});
+ } else {
+ //---多单打开券的时候,就要判断券在其他门店是否有使用---
+ var quanlist = th.data.cartlist[cindx].quan_list;
+ var exp_type = th.data.cartlist[cindx].exp_type;
+
+
+ //对于在其他门店已经选择了的券 要判断是否显示到界面
+ var t_user = th.data.using_quan[pickid];
+
+ for (var i in quanlist) {
+ quanlist[i].is_using = th.check_in_sele(quanlist[i].CashRepNo, pickid);
+ if (t_user && quanlist[i].CashRepNo == t_user.coupon_no)
+ quanlist[i].show_red = 1;
+ else
+ quanlist[i].show_red = 0;
+ }
+
+ if (get_by_quan_list_cart) {
+ for (var i in get_by_quan_list_cart) {
+ get_by_quan_list_cart[i].is_using = th.check_in_sele(get_by_quan_list_cart[i].no, pickid);
+ if (t_user && get_by_quan_list_cart[i].no == t_user.coupon_no)
+ get_by_quan_list_cart[i].show_red = 1;
+ else
+ get_by_quan_list_cart[i].show_red = 0;
+ }
+ th.setData({by_quan_list_cart: get_by_quan_list_cart});
} else {
- dis_t = item.distr_type ;
- }
- switch (dis_t) {
- case 0:
- e_t = 1;
- //-- 系统后台有设置要默认的 --
- if(th.data.json_d.pickupway && th.data.json_d.pickupway==1) e_t=0;
- break;
- case 1: e_t = 1; break;
- case 2: e_t = 0; break;
- }
- //如果是物流的话,全部自提的控制要弄成0
- if (e_t == 0) th.setData({ is_all_zt:0});
-
- var narr = new Array(); narr.push(item);
-
- //-----------拼装购物车结算的数组,如果有默认物流时要用默认物流编号,计算默认的物流,不管是不是自提都算一下-----------------
- var m_wind=0,def_exp_code=getApp().globalData.userInfo.def_exp_code;
- if(def_exp_code){
- for(var k=0;k0) {
- for(var kj in th.data.cartlist){
- for(var ih in arr){
- var ie=arr[ih];
- if(ie.pickup_id==th.data.cartlist[kj].pickup_id){
- ie.exp_type=parseInt(th.data.cartlist[kj].exp_type);
- ie.wind=parseInt(th.data.cartlist[kj].wind);
- break;
- }
- }
- }
- }
-
- //-- 循环计算一下线下取价 --
- for (var k = 0; k < arr.length; k++) {
- var c_item=arr[k];
- var item = arr[k].goods;
- var offline_price=0;
- var offline_num=0;
- for (var c = 0; c < item.length; c++) {
- //-- 如果这个商品是线下取价的时候 --
- if(item[c].offline_price>0){
- offline_price+= (item[c].goods_price-item[c].offline_price)*item[c].goods_num;
- offline_num+=item[c].goods_num;
- }
- }
- if(offline_price>0){
- c_item.offline_price=offline_price;
- c_item.offline_num=offline_num;
- c_item.is_offline=1;
- }
- }
-
- //深拷贝
- th.data.old_cartlist= JSON.parse(JSON.stringify(arr));
- th.setData({
- cartlist: arr,
- });
- //--- 获取一下看有没有优惠券 ----
- setTimeout(function () {
- var frozenQuan=null;
- var url0="/api/weshop/users/frozenQuan/listFrozenQuan/"+app.globalData.user_id;
- app.request.promiseGet(url0,{1:1}).then(res=>{
- if(res.data.code==0){ frozenQuan=res.data.data; th.data.frozenQuan=frozenQuan; }
- th.calculatePrice();
- th.get_cart_quan();
- })
+ console.log("2222222券的列表", quanlist);
+ th.setData({
+ sele_cart_ind: cindx,
+ sele_exp_type: exp_type,
+ open_quan: 1,
+ selected_quan_pick: pickid,
+ selected_quan_list: quanlist,
+ disabled: 1
+ });
+ }
+ },
+ close_coupon: function (e) {
+ var th = this;
+ th.setData({open_quan: 0, disabled: 0});
+ },
- },500)
-
- }
- });
- },
-
- //-----获取立即购买的商品信息,入口----
- get_buy_goods: function (e){
- var th=this;
- var gg = to.get_b_now();
- //--------如果goods_id一样,就是要立即购买-----
- if(e==gg.goods_id){
- a.get("/api/weshop/goods/get/" + oo.stoid+"/"+e, {
- success:async function (t) {
- var gd = t.data.data;
- if(!gd) return false;
-
- t.data.data.original_img = oo.imghost + t.data.data.original_img;
- t.data.data['buynum'] = gg.goods_num;
- var distr_t=0,et=0
- if (t.data.data.distr_type==0){
- distr_t = gg.pick_dis;
- }else{
- distr_t = t.data.data.distr_type;
- }
-
- switch (distr_t){
- case 0:
- et=1;
- //-- 系统后台有设置要默认的 --
- if(th.data.json_d.pickupway && th.data.json_d.pickupway==1) et=0;
- break;
- case 1: et = 1; break;
- case 2: et = 0; break;
- }
-
-
- var m_wind=0,def_exp_code=getApp().globalData.userInfo.def_exp_code;
- if(et==0 && def_exp_code){
- for(var k=0;k0 && gg.goods_price>gd[th.data.card_name] && !th.data.userinfo.card_field){
- var cut_p= (gg.goods_price-gd[th.data.card_name])*gg.goods_num;
- th.setData({card_cut_price:cut_p});
- }
- }
-
-
-
- switch (gd.prom_type){
- case 0:
- case 2:
- case 3:
- case 4:
- case 5:
- case 6:
- //--此时开始计算商品的使用券相关,如果有等级价还要计算和等级价相关的,
- // 如果有优惠促销,还要把促销的部分计算在内,因为促销还有不能使用优惠券--
- t.data.data.shop_price=gg.goods_price;
- t.data.data.goods_price=gg.goods_price;
- t.data.data.goods_num=gg.goods_num;
- th.data.ckeck_quan_price=t.data.data.shop_price*gg.goods_num;
- th.data.check_quan_price_list=t.data.data.shop_price*gg.goods_num+"";
- th.data.check_quan_ware_list=t.data.data.erpwareid+"";
-
- //-- 如果有线下取价的时候 --
- if(gg.offline_price){
- t.data.data.offline_price=gg.offline_price;
- t.data.data.pricing_type=gg.pricing_type;
- t.data.data.is_offline=1;
-
- th.data.ckeck_quan_price=t.data.data.offline_price*gg.goods_num;
- th.data.check_quan_price_list=t.data.data.offline_price*gg.goods_num+"";
- th.data.check_quan_ware_list=t.data.data.erpwareid+"";
- }
-
- t.data.data.prom_id = 0;
- t.data.data.prom_type = 0;
-
- //如果立即购买那边过来,就要读取接口,查看活动的优惠内容
- if(gg.prom_type==3){
- t.data.data.prom_id = gg.prom_id ;
- t.data.data.prom_type =3;
- //如果是优惠活动,就要调用活动,计算价格
- th.buy_now_prom_goods(gg.prom_id, t.data.data,function (data) {
- //判断一下购买商品的数量是不是超过
- if(data.gift_goods_id){
- var num=1;
- if(data.is_bz==1){
- num=data.bs;
- if (num > data.gift_limit_num) num = 0;
- }
- //如果赠品数量超出礼品库存,就取消
- if(num>data['gift_storecount']) num=0;
- if(num>0){
- var ob={};
- ob.is_gift=1;
- ob.prom_id=data.prom_id;
- ob.goods_id=data.gift_goods_id;
- ob.goods_name=data.gift_goods_name;
- ob.goods_color=data.gift_goods_color;
- ob.goods_spec=data.gift_goods_spec;
- ob.original_img=os.imghost+data.gift_original_img;
- ob.market_price=data.gift_market_price;
- ob.gift_id=data.gift_id;
- ob.shop_price=0;
- ob.buynum=num;
- ob.weight=data.gift_weight; //商品的重量
- ob.exp_sum_type=data.gift_exp_sum_type; //商品的物流计算方式
- ob.uniform_exp_sum=data.gift_uniform_exp_sum //统一运费的金额
-
- th.setData({buy_now_gift_goods:ob});
- }
- }
-
- th.setData({
- bn_goods: data, bn_pickname: gg.pick_name,index:m_wind,
- bn_pick: gg.pick_id, bn_t_exp_t: distr_t,bn_exp_type: et
- });
-
- //计算价格
- th.calculatePrice2();
- //获取优惠券
- th.get_buy_now_quan();
-
- })
- }else{
- //--看是不是搭配促销--
- if(gg.prom_type==5){
- t.data.data.prom_id = gg.prom_id ;
- t.data.data.prom_type =5;
- if(gg.room_id){
- t.data.data.room_id=gg.room_id;
- }
- //--主商品要有导购id和导购类型--
- if(gg.guide_id){
- t.data.data.guide_id=gg.guide_id;
- t.data.data.guide_type=gg.guide_type;
- }
- th.setData({collocation_goods:gg.collocation_goods});
-
- var cart_arr=new Array();
- //var narr=gg.collocation_goods;
- //修改成深拷贝,确保返回是数据正确
- var narr=JSON.parse(JSON.stringify(gg.collocation_goods));
-
- narr.push(t.data.data);
-
- //-- 搭配促销的门店配送方式的修复 --
- et=1;distr_t=0;
- for(var hi in narr){
- var dis_t=narr[hi].distr_type;
- if(dis_t==2){
- th.setData({ is_all_zt:0});et=0;
- }
- if(dis_t>0){
- distr_t=dis_t;
- }
- }
-
- //自选的时候,系统配置了默认的配送方式是物流的时候
- if(distr_t==0 && th.data.json_d.pickupway && th.data.json_d.pickupway==1 ){
- et=0;
- }
-
-
- var ie = {
- pickup_id: gg.pick_id, pname: gg.pick_name, goods: narr, exp_type: et, wind: m_wind, distr_t: distr_t,bn_t_exp_t: distr_t,
- goods_price: 0, shipping_price: 0, user_money: 0, total_amount: 0, order_amount: 0, user_note:0};
- cart_arr.push(ie);
- th.data.old_cartlist=cart_arr;
+ //---判断券时候在已经选择的列表中---
+ check_in_sele: function (no, pick_id) {
+ var th = this;
+ if (th.data.using_quan.length <= 0) return false;
+ for (var i in th.data.using_quan) {
+ //--如果键值等于本身就要跳出--
+ if (parseInt(i) == parseInt(pick_id)) continue;
+ var item = th.data.using_quan[i];
+ if (item.coupon_no == no) {
+ return true;
+ }
+ }
+ return false;
+ },
+
+ /*--点击选择券--*/
+ sele_quan_item: function (e) {
+
+ var ind = e.currentTarget.dataset.ind;
+ var quan_item = this.data.selected_quan_list[ind];
+ var pickid = this.data.selected_quan_pick; //现在选择的是哪一个门店
+ //--如果券是单品使用的时候--
+ if (quan_item && quan_item.UseObjectType && quan_item.UseObjectType == "20") {
+ //---只有多件购买的时候才要计算,//购物车购买和搭配勾的时候---
+ var gg = getApp().get_b_now();
+ if (this.data.is_b_now == 0 || gg.prom_type == 5) {
+ var arr = this.data.order_prom_list_cart;
+ var t_pk_item = null;
+ for (var ii in arr) {
+ var ep = arr[ii];
+ if (pickid == ep.pickup_id) {
+ t_pk_item = ep;
+ break;
+ }
+ }
+ //--寻找券指定的商品--
+ var gd = null;
+ if (t_pk_item) {
+ var goods = t_pk_item.goods;
+ for (var gid in goods) {
+ if (quan_item.UseObjectID == goods[gid].erpwareid) {
+ gd = goods[gid];
+ }
+ }
+ }
+ if (!gd) {
+ getApp().my_warnning("未找到指定商品使用", 0, this, 600);
+ return false;
+ }
+ //计算价格,如果有平摊的实收要计算实收的金额
+ var item_price = gd.goods_price * gd.goods_num;
+ //-- 如果有平摊下去,有实收价格的时候,就要用account_fir来计算价格 --
+ if (gd.account_fir != null && gd.account_fir != undefined) {
+ item_price = gd.account_fir * gd.goods_num;
}
- th.setData({
- bn_goods: t.data.data, bn_pickname: gg.pick_name,index:m_wind,
- bn_pick: gg.pick_id, bn_t_exp_t: distr_t,bn_exp_type: et
- });
-
-
- //--搭配促销也是按照购物车的方式来计算优惠券--
- if(gg.prom_type==5){
- var frozenQuan=null;
- var url0="/api/weshop/users/frozenQuan/listFrozenQuan/"+app.globalData.user_id;
- app.request.promiseGet(url0,{1:1}).then(res=> {
- if(res.data.code==0){ frozenQuan=res.data.data; th.data.frozenQuan=frozenQuan; }
- //计算价格
- th.calculatePrice2();
- th.get_cart_quan();
- });
- }else{
- //计算价格
- th.calculatePrice2();
- //获取优惠券,
- th.get_buy_now_quan();
- }
- }
-
- break;
- case 1: //---秒杀-----
- var quanlist=null;
- getApp().request.get("/api/weshop/activitylist/getSJGoodsPrice/"+gd.store_id
- + "/" + gd.goods_id + "/1/" + gd.prom_id,{
- success: async function (tt) {
- if(tt.data.code==0){
- t.data.data.shop_price=tt.data.data.prom_price;
- }else{
- t.data.data.prom_id = 0; t.data.data.prom_type = 0;
-
- th.data.ckeck_quan_price=t.data.data.shop_price*gg.goods_num;
- th.data.check_quan_price_list=t.data.data.shop_price*gg.goods_num+"";
- th.data.check_quan_ware_list=t.data.data.erpwareid+"";
- }
-
- th.setData({
- bn_goods: t.data.data, bn_pickname: gg.pick_name, bn_exp_type: et,index:m_wind,
- bn_pick: gg.pick_id, bn_t_exp_t: distr_t,bn_exp_type: et
- });
-
- //计算价格
- th.calculatePrice2();
- //获取优惠券
- th.get_buy_now_quan();
- }
- });
-
- break;
- }
- },
- });
- }
- },
-
- //---------------检查是否有收货地址-------------------
- checkAddressList: function() {
- var t = this;
- return !(!this.data.order || null == this.data.order.userAddress) || (wx.showModal({
- title: "请先填写或选择收货地址~",
- success: function(a) {
- a.confirm ? t.enterAddressPage() : wx.navigateBack();
- },
- fail: function() {
- wx.navigateBack();
- }
- }), !1);
- },
- showInvoice: function() {
- this.setData({
- invoiceToggle: !this.data.invoiceToggle
- });
- },
- keyUpChangePay1: function(t) {
- this.setData({
- payWithUserMoney: !(t.detail.value.length > 0)
- });
- },
- keyUpChangePay2: function(t) {
- this.setData({
- payWithPoints: !(t.detail.value.length > 0)
- });
- },
- keyUpChangeNum: function(t) {
- this.setData({
- maxWord: t.detail.value.length
- });
- },
-
- calc_per:async function(c_arr){
- var th=this;
- //-- 循环处理 --
- for(var i in c_arr){
- var cart_item=c_arr[i]; //就是每一单的意思
- var pickid=cart_item.pickup_id;
- var ord_goods=c_arr[i].goods; //就是每一单的从表的意思
- var o_price=0,q_conditin=0;
- //--------循环计算总价-----------
- for(var j=0;j {
- if (res.data.code == 0 && res.data.data.condition) {
- var get_data = res.data.data;
- item_map.is_bz = get_data.is_bz; //是不是倍增
- item_map.bs = get_data.bs; //是不是倍数
- item_map.is_past = get_data.is_past; //是不是包邮
- item_map.prom_price = get_data.price>=0?get_data.price:item_map.price;
- item_map.s_intValue = get_data.intValue;
- item_map.s_coupon_id = get_data.coupon_id;
- item_map.s_coupon_num = get_data.coupon_num;
- if(get_data.gift_id && get_data.goodsinfo) {
- item_map.gift_id = get_data.gift_id;
- item_map.gift_goods_id = get_data.goods_id;
- item_map.gift_goods_name = get_data.goods_name;
- item_map.gift_goods_color = get_data.goodsinfo.goods_color ? get_data.goodsinfo.goods_color : '';
- item_map.gift_goods_spec = get_data.goodsinfo.goods_spec ? get_data.goodsinfo.goods_spec : '';
- item_map.gift_original_img = get_data.goodsinfo.original_img;
- item_map.gift_limit_num = get_data.limit_num;
- item_map.gift_storecount = get_data.gift_storecount;
- item_map.gift_weight = get_data.goodsinfo.weight;
- item_map.gift_exp_sum_type = get_data.goodsinfo.exp_sum_type;
- item_map.uniform_exp_sum = get_data.goodsinfo.uniform_exp_sum;
-
- }
- item_map.s_libao = get_data.libao;
- item_map.s_lb_num = get_data.lb_num;
- }
- })
- }
-
- //有活动,且优惠活动并没有限制使用优惠券,且有减价
- //--看有没有减价--
- //if(item_map.prom_price>=0 && item_map.price-item_map.prom_price){
- if(item_map.price-item_map.prom_price && item_map.prom_price!==null){
- if(cart_item.prom_pt_json){
- cart_item.prom_pt_json.push({"prom_id":item_map.prom_id,"dis":(item_map.price-item_map.prom_price).toFixed(2),"ispt":0})
- }else{
- cart_item.prom_pt_json=[{"prom_id":item_map.prom_id,"dis":(item_map.price-item_map.prom_price).toFixed(2),"ispt":0}];
- }
-
- //-- 如果系统要平摊到单品 --
- //if(!th.data.ispt_goods){
- var pt_data={
- 'prom_id':item_map.prom_id,
- 'dis': parseFloat((item_map.price-item_map.prom_price).toFixed(2)),
- 'goods':item_map.goods
- }
-
- var pt_res=null;
- await getApp().request.promisePost("/api/weshop/order/getGoodsSplit",{is_json:1,data:pt_data}).then(res=>{
- if(res.data.code==0){ pt_res=res.data.data; }
- })
- if(pt_res){
- for (var io in item_map.goods){
- //平摊赋值
- item_map.goods[io].account_fir=th.arr_get_goods(item_map.goods[io].goods_id,pt_res).fisrt_account;
- item_map.goods[io].account_yu_fir=th.arr_get_goods(item_map.goods[io].goods_id,pt_res).fisrt_account_yu;
- if(!th.data.ispt_goods){
- item_map.goods[io].account=item_map.goods[io].account_fir;
- item_map.goods[io].account_yu=item_map.goods[io].account_yu_fir;
- }
- }
- }
- // }
-
- o_price-=(item_map.price-item_map.prom_price);
- //如果有限制使用优惠券,就要减掉参与的活动商品的钱
- if(!item_map.is_xz_yh) q_conditin=o_price;
- }
-
- //--------循环计算商品是不是包邮,是不是使用优惠券,此时循环是商品从表-----------
- for(var j=0;j0){
- //-----------获取不包邮区域,不包邮商品-------
- await getApp().request.promiseGet("/api/weshop/areaFeemail/getAreaGoods",{
- data:{store_id:os.stoid,id:no_ex_id}
- }).then(res=>{
- if(res.data.code==0 && res.data.data && res.data.data.length>0){
- by_qc=res.data.data[0];
- }
- })
- };
- var c_arr=JSON.parse(JSON.stringify(th.data.old_cartlist));
-
-
- if(th.data.cartlist && th.data.cartlist.length>0){
- for(var i =0;i {
- if (res.data.code == 0 && res.data.data && res.data.data.length > 0) {
- var q_data = res.data.data;
- //--存储商品优惠的内容--
- cart_item.quan_youhui_list = q_data;
- for (var k in q_data)
- quan_price += q_data[k].WareCashSum;
- }
- })
- }
-
-
- //--------循环计算总价-----------
- for(var j=0;j0) o_price-=c_arr[i].cut_price;
-
- //-- 计算线下取价的功能 --
- if(cart_item.is_offline==1){
- o_price=o_price-cart_item.offline_price;
- }
-
- //判断包邮券的钱
- var q_conditin=0;
- q_conditin=o_price-quan_price;
-
- cart_item.goods_price = f_o_price.toFixed(2); //商品总费用,用f_o_price来计算
- //计算物流费用
- cart_item.shipping_price = 0;
-
-
-
- //--有不包邮区域,且不免运费,全场的计算,要减到优惠金额 和券的金额--
- if(no_ex_id && freight_free>0 && (o_price-quan_price)>=freight_free && cart_item.exp_type == 0 && (by_qc.region_list || by_qc.goods_list) ){
- //如果有设置不包邮区域的时候
- if(by_qc.region_list!="" && by_qc.region_list!=null && by_qc.region_list!=undefined ){
- if(th.check_by_area(by_qc.region_list)){
- freight_free=0;
- th.data.is_no_by[pickid]=1;
- }
- }
- //如果有设置不包邮区商品
- if(by_qc.goods_list!="" && by_qc.goods_list!=undefined && by_qc!=null && freight_free>0){
- freight_free=0;
- no_ex_good=by_qc.goods_list;
- }
- }
-
- //--如果是物流,且选择了地址,就要开始显示包邮券,且包邮券也已经优惠了优惠活动的金额--
- if (cart_item.exp_type == 0 && th.data.user_addr != null) {
- //看是不是有调用过包邮券
- if(!th.data.isget_by_quan[pickid]){
- //--判断要不要显示包邮券,调用接口,因为有for循环---
- await getApp().request.promiseGet("/api/weshop/userfeemail/pageAndArea",{
- data:{store_id:os.stoid,isuse:0,condition:q_conditin,user_id:getApp().globalData.user_id,pageSize:2000}
- }).then(res=>{
- if(res.data.code==0 && res.data.data.total>0){
- //此时要循环判断包邮的地区,不包邮商品是不是符合
- var arr=[],quanlist=res.data.data.pageData;
- quanlist = th.check_is_frozenQuan(quanlist, th.data.frozenQuan,1);
- for(var i in quanlist){
- var item=quanlist[i];
- var goods=cart_item.goods;
- var g_arr=[];
- for(var ii in goods){
- g_arr.push(goods[ii].goods_id);
- }
- if(item.region_list && th.check_by_area(item.region_list)) continue; //如果是不包邮区域
- if(item.goods_list){
- var no_goods_arr=item.goods_list.split(",");
- if(ut.isContained(no_goods_arr,g_arr)) continue; //如果是不包邮商品
- }
- arr.push(item);
- }
- if(arr){
- th.data.get_by_quan_list_cart[pickid]=arr;
- //th.setData({get_by_quan_list_cart:th.data.get_by_quan_list_cart});
- if(th.data.is_b_now){
- th.setData({get_by_quan_list:arr});
- }
- }
- th.data.isget_by_quan[pickid]=1;
- }
- })
- }
- }
-
- //如果是包邮券的时候,要看看券的情况
- if(quan_no && th.data.using_quan[pickid].isby==1){
- var quan=th.data.using_quan[pickid];
- if(!quan.goods_list){
- th.data.is_quan_by[pickid]=1; //专门给券的判断用的
- }else{
- th.data.is_quan_by[pickid]=0;
- //看有没有模板的包邮
- if(no_ex_good){
- var arr=no_ex_good.split(",");
- var arr2=quan.goods_list.split(",");
- if(ut.isContained(arr,arr2)){
- getApp().my_warnning("全场不包邮商品和包邮券的重复",0,th);
- th.data.using_quan[pickid]={};
- th.setData({using_quan:th.data.using_quan})
- return false;
- }
- var n_arr=ut.mergeArray(arr,arr2);
- no_ex_good=n_arr.join(",");
- }else{
- no_ex_good=quan.goods_list;
- }
- }
- }else{
- th.data.is_quan_by[pickid]=0; //专门给券的判断用的
- }
-
- //--------循环计算总价-----------
- for(var j=0;j=freight_free && freight_free>0 && !is_good_no_by && th.data.is_no_by[pickid]!=1){
- continue;
- }
-
- //--如果是包邮券使用的情况下,如果商品是包邮的,那么就不进行计算--
- if(th.data.using_quan[pickid] && th.data.using_quan[pickid].isby==1 && !is_good_no_by){
- continue;
- }
-
-
- var no_ex_good_arr=null;
- if(no_ex_good) no_ex_good_arr=no_ex_good.split(',');
-
- //----------------如果是选择了物流---------------------
- if(cart_item.exp_type == 0 && item[j].is_free_shipping==0 && (!no_ex_good_arr || no_ex_good_arr.indexOf(item[j].goods_id+'')>-1 )){
-
-
- //如果地址不为空
- if (th.data.user_addr!=null){
- switch (item[j]['exp_sum_type']) {
- case 1:
- //统一运费
- o_shipping_price += item[j]['uniform_exp_sum'];break;
- case 2:+''
- if (goods_weight < 0) goods_weight = 0;
- //累积商品重量 每种商品的重量 * 数量
- goods_weight += item[j]['weight'] * item[j]['goods_num'];
-
- break;
- case 3:
- if (goods_piece < 0) goods_piece = 0;
- //累积商品数量
- goods_piece += item[j]['goods_num'];
- break;
- }
- }
-
- }
- }
-
- //计算物流价格
- if (cart_item.exp_type == 0) {
- //freight_free=0; //后面不在进行判断
- var code = "";
- if(th.data.wu_arr && th.data.wu_arr[cart_item.wind])
- code=th.data.wu_arr[cart_item.wind].code;
- cart_item.shipping_price =
- th.calculatewuliu(code, o_shipping_price, goods_weight,
- goods_piece,th.data.user_addr, freight_free, o_price-quan_price, rs);
-
- if(!th.data.using_quan[pickid] || th.data.using_quan[pickid].isby!=1){
- if( cart_item.shipping_price ==0) th.data.is_by[pickid]=1; //已经全场包邮,就不要选择券了
- }
- }else{
- cart_item.shipping_price=0;
- }
-
- cart_item.shipping_price=cart_item.shipping_price.toFixed(2);
-
- //总价计算,总价不包含运费
- cart_item.order_amount= (o_price -quan_price).toFixed(2);
- cart_item.total_amount= f_o_price.toFixed(2);
-
- var order_prom_amount=0; var order_prom_id=0; var o_condition=cart_item.order_amount;
- var order_m=0;
- //---判断是不是有订单优惠---
- await getApp().request.promiseGet("/api/weshop/promorder/getOrderPromotion",{
- data:{store_id:os.stoid,orderAmount:cart_item.order_amount}
- }).then(res=>{
- if(res.data.code==0){
- var ord_prom=res.data.data;
- order_prom_id = ord_prom['id'];
- switch (ord_prom['type']) {
- case 0:
- order_m = Math.round(o_condition * ord_prom['expression'])/100;//满额打折
- order_prom_amount=(o_condition -order_m).toFixed(2);
- break;
- case 1:
- //order_m = o_condition - ord_prom['expression'];//满额优惠金额
- order_prom_amount= ord_prom['expression'];
- break;
- }
- }
- })
-
- cart_item.order_prom_amount=0;
- //--订单优惠的显示--
- if(order_prom_id>0){
- cart_item.order_amount= (o_price -quan_price-order_prom_amount).toFixed(2);
- cart_item.order_prom_id=order_prom_id;
- cart_item.order_prom_amount=order_prom_amount;
- }
- coupon_price=quan_price;
- if( cart_item.order_amount<0){
- cart_item.order_amount=0;
- coupon_price=o_price;
- }
-
- cart_item.total_amount= parseFloat(cart_item.total_amount)+parseFloat(cart_item.shipping_price); //总金额
- cart_item.order_amount=parseFloat(cart_item.order_amount)+parseFloat(cart_item.shipping_price); //总金额
- cart_item.total_amount= cart_item.total_amount.toFixed(2);
- cart_item.order_amount=cart_item.order_amount.toFixed(2);
-
- //搭配购在使用余额
- if(th.data.bn_use_money==1 && th.data.is_b_now==1){
-
- if (umoney > cart_item.order_amount) {
- cart_item.user_money = cart_item.order_amount;
- umoney = umoney - cart_item.order_amount;
- }else {
- cart_item.user_money = umoney;
- umoney=0;
- }
-
- }else{
- //--------------如果使用余额,购物车购买---------------------
- if (th.data.js_use_money == 1) {
- if (umoney > cart_item.order_amount) {
- cart_item.user_money = cart_item.order_amount;
- umoney = umoney - cart_item.order_amount;
- }else {
- cart_item.user_money = umoney;
- umoney=0;
- }
- }else{
- cart_item.user_money=0;
- }
- }
-
-
-
- cart_item.user_money = parseFloat(cart_item.user_money).toFixed(2);
-
- if (coupon_price>0) cart_item.coupon_price=coupon_price.toFixed(2);
- else cart_item.coupon_price = coupon_price
- if(quan_no) cart_item.quan_no = quan_no;
-
-
- //cart_item.goods_price = o_price.toFixed(2);
- cart_item.order_amount= cart_item.order_amount- cart_item.user_money; //会员使用余额
-
-
- all_price += parseFloat(f_o_price);
- all_total_m += parseFloat(cart_item.total_amount);
- all_shipping_m += parseFloat(cart_item.shipping_price);
- all_order_m += parseFloat(cart_item.order_amount);
- all_user_m += parseFloat(cart_item.user_money);
- all_coupon_price_m+= parseFloat(cart_item.coupon_price);
- all_cutprice+=parseFloat(cart_item.cut_price);
- all_order_prom+=parseFloat(cart_item.order_prom_amount);
- }
-
- all_shipping_m=parseFloat(all_shipping_m).toFixed(2);
- all_total_m = parseFloat(all_total_m).toFixed(2);
- all_order_m = parseFloat(all_order_m).toFixed(2);
- all_price = parseFloat(all_price).toFixed(2);
- all_user_m = parseFloat(all_user_m).toFixed(2);
- all_total_m = parseFloat(all_total_m).toFixed(2);
- all_coupon_price_m = parseFloat(all_coupon_price_m).toFixed(2);
- all_cutprice=all_cutprice.toFixed(2);
- all_order_prom=all_order_prom.toFixed(2);
-
- var atxt = "formData.total_amount";
- var atxt1 = "formData.order_amount";
- var atxt2 = "formData.all_price";
- var atxt3 = "formData.user_money";
- var atxt4 = "formData.shipping_price";
- var atxt5 = "formData.coupon_price";
- var atxt6 = "formData.cut_price";
- var atxt7 = "formData.order_prom_amount";
-
- th.setData({ [atxt]: all_total_m, [atxt1]: all_order_m,
- [atxt2]: all_price, [atxt3]: all_user_m, [atxt4]: all_shipping_m,
- [atxt5]: all_coupon_price_m,[atxt6]: all_cutprice,
- [atxt7]: all_order_prom, show_submit:1
- })
- th.data.order_prom_list_cart=c_arr;
- th.set_can_num();
- wx.hideLoading();
-
- });
- });
- },
-
- set_can_num:function(){
- var th=this;
- //-- 这个地方,循环计算几张优惠券可用--
- for ( var iter in th.data.cartlist){
- var num=0;
- var c_item=th.data.cartlist[iter];
- var pkid=c_item.pickup_id;
- //-- 普通券 --
- if(c_item.quan_list){
- for (var iter1 in c_item.quan_list){
- //判断是不是其他订单有选用
- var is_other_is_use=th.check_other_use(c_item.quan_list[iter1],pkid);
- if(!is_other_is_use) num++;
- }
- }
- //-- 包邮券 --
- var by_quan=th.data.get_by_quan_list_cart[pkid];
- if(by_quan){
- for (var iter2 in by_quan){
- //判断是不是其他订单有选用
- var is_other_is_use=th.check_other_use_by(by_quan[iter2],pkid);
- if(!is_other_is_use) num++;
- }
- }
- var set_txt="cartlist["+iter+"].can_num";
- th.setData({ [set_txt]: num});
- }
- },
-
-
- //---------计算立即购买----------
- calculatePrice2: function () {
- var th = this, good = this.data.bn_goods;
-
- if(!good) return false;
-
- //搭配的计算要用购物的车计算方法
- if(good.prom_type==5){
- th.calculatePrice();
- return false;
- }
-
- wx.showLoading({
- title:"处理中."
- })
- //-----------计算商品总价--------------
- var allpice = good.shop_price * good.buynum;
- var cut_price=0;
- var allpice1=allpice;
-
-
- if(good.prom_type==3 && good.prom_price!==null){
- cut_price=allpice-good.prom_price;
- }
-
- allpice=parseFloat(allpice).toFixed(2);
- var txt = "formData.all_price";
- th.setData({ [txt]: allpice, });
- if(cut_price){
- var c_txt="formData.cut_price";
- th.setData({ [c_txt]: cut_price, });
-
- }
-
- //如果有线下取价的时候
- if(good.is_offline){
- allpice = good.offline_price * good.buynum;
- }
-
-
- to.getConfig2(function (ee) {
- to.getwuliuprice(async function (rs) {
-
- var o_shipping_price = 0, goods_weight = -1, goods_piece = -1;
-
- //---如果有选择优惠券的情况下---
- var quan_price=0,bn_pick=th.data.bn_pick;
- var quan_no=null;
- if(th.data.using_quan[bn_pick]!=null && th.data.using_quan[bn_pick]!=undefined)
- quan_no=th.data.using_quan[bn_pick].coupon_no;
-
- if(quan_no){
- if(th.data.using_quan[bn_pick].isby!=1){
- //---获取优惠券优惠---
- await getApp().request.promiseGet("/api/weshop/couponList/getUseCouponPrice",{
- data:{storeId:oo.stoid,CashRepNo:quan_no, WaresSum:th.data.ckeck_quan_price, WareIds:th.data.check_quan_ware_list}
- }).then(res=>{
- if(res.data.code==0 && res.data.data && res.data.data.length>0 ){
- quan_price=res.data.data[0].WareCashSum;
- }
- })
- }
- }
-
- //-----------当地址不为空,且是物流时,计算物流费用,并同时商品不是优惠活动的包邮----------
- if (th.data.user_addr != null && th.data.bn_exp_type == 0 && good.is_free_shipping == 0 && good.is_past!=1 ){
- //看是不是有调用过包邮券
- if(!th.data.isget_by_quan[th.data.bn_pick] && good.is_xz_yh!=1){
- var condition=allpice-cut_price-quan_price;
- //--判断要不要显示包邮券,链式调用接口,调取包邮券,已经是减了优惠的金额,见到优惠券的钱---
- getApp().request.promiseGet("/api/weshop/userfeemail/pageAndArea",{
- data:{store_id:os.stoid,isuse:0,condition:condition,user_id:getApp().globalData.user_id,pageSize:2000}
- }).then(res=>{
- if(res.data.code==0 && res.data.data.total>0){
- //此时要循环判断包邮的地区,不包邮商品是不是符合
- var arr=[],quanlist=res.data.data.pageData;
- quanlist = th.check_is_frozenQuan(quanlist, th.data.frozenQuan,1);
- for(var i in quanlist){
- var item=quanlist[i];
- if(item.region_list && th.check_by_area(item.region_list)) continue; //如果是不包邮区域
- if(item.goods_list && th.check_by_goods(item.goods_list)) continue; //如果是不包邮商品
- arr.push(item);
- }
- if(arr){
- th.setData({get_by_quan_list:arr});
- }
- th.data.isget_by_quan[th.data.bn_pick]=1;
- }
- })
- }
-
- switch (good['exp_sum_type']) {
- case 1:
- //统一运费
- o_shipping_price += good['uniform_exp_sum']; break;
- case 2:
- if (goods_weight < 0) goods_weight = 0;
- //累积商品重量 每种商品的重量 * 数量
- goods_weight += good['weight'] * good['buynum'];break;
- case 3:
- if (goods_piece < 0) goods_piece = 0;
- //累积商品数量
- goods_piece += good['buynum']; break;
- }
-
- var code ="";
- if(th.data.wu_arr && th.data.wu_arr[th.data.index]) code=th.data.wu_arr[th.data.index].code;
- var freight_free = ee.freight_free; //全场满多少包邮
- var no_ex_id=ee.no_ex_id;
- th.data.is_no_by[th.data.bn_pick]=0;
-
- var no_by_data=null;
- var gift_freight_free=freight_free;
-
-
- //有不包邮区域,且不免运费
- if(no_ex_id && freight_free>0 && freight_free<= parseFloat(allpice)-cut_price-quan_price){
- //-----------获取不包邮区域,不包邮商品-------
- await getApp().request.promiseGet("/api/weshop/areaFeemail/getAreaGoods",{
- data:{store_id:os.stoid,id:no_ex_id}
- }).then(res=>{
- if(res.data.code==0 && res.data.data && res.data.data.length>0){
- no_by_data=res.data.data[0];
- //如果有设置不包邮区域的时候
- if(res.data.data[0].region_list){
- if(th.check_by_area(res.data.data[0].region_list)){
- freight_free=0;
- th.data.is_no_by[th.data.bn_pick]=1;
- }
- }
- //如果有设置不包邮商品
- if(res.data.data[0].goods_list && freight_free){
- if(th.check_by_goods(res.data.data[0].goods_list)){
- freight_free=0;
- th.data.is_no_by[th.data.bn_pick]=1;
- }
- }
- }
- })
- }
-
- th.data.is_by[th.data.bn_pick]=0;
- //--------------开始计算物流------------------
- var shipping_price=
- th.calculatewuliu(code, o_shipping_price, goods_weight,
- goods_piece, th.data.user_addr, freight_free, parseFloat(allpice)-cut_price-quan_price, rs);
-
- //如果有赠品的时候,也要计算赠品的物流费用
- if(th.data.buy_now_gift_goods){
- shipping_price=th.get_now_gift_goods_wuliu(code, o_shipping_price, th.data.user_addr, gift_freight_free,
- parseFloat(allpice)-cut_price-quan_price, rs,shipping_price,no_by_data,goods_weight,goods_piece);
- }
-
- if(shipping_price<=0){
- th.data.is_by[th.data.bn_pick]=1; //已经是包邮了,就不要选择包邮券
- }
-
- shipping_price = parseFloat(shipping_price).toFixed(2);
- var wl_txt = "formData.shipping_price";
- th.setData({ [wl_txt]: shipping_price, })
-
- }else{
- var wl_txt = "formData.shipping_price";
- th.setData({ [wl_txt]: 0, })
- }
-
- if(quan_no){
- if(th.data.using_quan[bn_pick].isby==1){
- shipping_price=0;
- var wl_txt = "formData.shipping_price";
- th.setData({ [wl_txt]: 0, })
- }
- }
- //-----------------支付价,优惠券不减物流-----------------
- var total_m = (parseFloat(allpice1)).toFixed(2);
- var order_m = (parseFloat(allpice-cut_price)-quan_price).toFixed(2);
- var coupon_price=quan_price; //优惠券优惠了多少钱
- if(order_m<0) {
- order_m=0;coupon_price=parseFloat(order_m).toFixed(2);
- }
- //--看一下有没有订单优惠--
- var o_condition=parseFloat(order_m);
- if(o_condition>0){
- th.check_is_order_prom(o_condition,function () {
- var order_prom_amount=0; var order_prom_id=0;
- if(th.data.order_prom[th.data.bn_pick]){
- var ord_prom=th.data.order_prom[th.data.bn_pick];
- order_prom_id = ord_prom['id'];
- switch (ord_prom['type']) {
- case 0:
- order_m = Math.round(o_condition * ord_prom['expression'])/100;//满额打折
- order_prom_amount=(o_condition -order_m).toFixed(2);
- break;
- case 1:
- order_m = o_condition - ord_prom['expression'];//满额优惠金额
- order_prom_amount= ord_prom['expression'];
- break;
- }
- }
- //--订单优惠的显示--
- if(order_prom_id>0){
- var order_prom_txt1="formData.order_prom_id";
- var order_prom_txt2="formData.order_prom_amount";
- th.setData({ [order_prom_txt1]: order_prom_id,[order_prom_txt2]: order_prom_amount})
- }
-
- total_m= parseFloat( total_m)+ parseFloat( th.data.formData.shipping_price);
- order_m = parseFloat(order_m)+ parseFloat( th.data.formData.shipping_price);
-
- total_m=total_m.toFixed(2);
- order_m=order_m.toFixed(2);
-
- var atxt= "formData.total_amount";
- th.setData({ [atxt]: total_m, })
-
- var txt = "formData.user_money";
- var txt2 = "formData.order_amount";
- var txt3="formData.coupon_price";
- var amoney = parseFloat(th.data.userinfo.user_money - th.data.txmon - th.data.userinfo.frozen_money);
- //--------------如果使用余额---------------------
- if (th.data.bn_use_money == 1) {
- if (amoney> order_m) {
- order_m = parseFloat(order_m).toFixed(2);
- th.setData({ [txt]: order_m, [txt2]:0,[txt3]:coupon_price,show_submit:1 })
- }else{
- order_m =parseFloat(order_m) - parseFloat(amoney);
- order_m = order_m.toFixed(2);
- th.setData({ [txt]: amoney, [txt2]: order_m,[txt3]:coupon_price,show_submit:1 })
- }
- }else{
- th.setData({ [txt]: 0, [txt2]: order_m,[txt3]:coupon_price,show_submit:1})
- }
- //优惠活动送积分
- if(good.s_intValue){
- txt = "formData.give_integral";
- th.setData({ [txt]:good.s_intValue });
- }
- //优惠送券
- if(good.s_coupon_id){
- var i_txt = "formData.give_coupon_id";
- //这个是json格式的
- var i_txt1 = "formData.g_coupon_num";
- var ob=[{"num":good.s_coupon_num,"c_id":good.s_coupon_id}];
- ob=JSON.stringify(ob);
- th.setData({ [i_txt]:good.s_coupon_id,[i_txt1]:ob });
- }
- //优惠礼包
- if(good.s_libao){
- var l_txt = "formData.give_lb_id";
- //这个是json格式的
- var l_txt1 = "formData.g_lb_num";
- var ob=[{"num":good.s_lb_num,"l_id":good.s_libao}];
- ob=JSON.stringify(ob);
- th.setData({ [l_txt]:good.s_libao,[l_txt1]:ob });
- }
- })
- }else{
- total_m= parseFloat( total_m)+ parseFloat( th.data.formData.shipping_price);
- order_m = parseFloat(order_m)+ parseFloat( th.data.formData.shipping_price);
- var atxt= "formData.total_amount";
-
- total_m=total_m.toFixed(2);
- order_m=order_m.toFixed(2);
-
- th.setData({ [atxt]: total_m, })
-
- var txt = "formData.user_money";
- var txt2 = "formData.order_amount";
- var txt3="formData.coupon_price";
- var amoney = parseFloat(th.data.userinfo.user_money - th.data.txmon - th.data.userinfo.frozen_money);
- //--------------如果使用余额---------------------
- if (th.data.bn_use_money == 1) {
- if (amoney> order_m) {
- order_m = parseFloat(order_m).toFixed(2);
- th.setData({ [txt]: order_m, [txt2]:0,[txt3]:coupon_price,show_submit:1 })
- }else{
- order_m =parseFloat(order_m) - parseFloat(amoney);
- order_m = order_m.toFixed(2);
- th.setData({ [txt]: amoney, [txt2]: order_m,[txt3]:coupon_price,show_submit:1 })
- }
- }else{
- th.setData({ [txt]: 0, [txt2]: order_m,[txt3]:coupon_price, show_submit:1 })
- }
- //优惠活动送积分
- if(good.s_intValue){
- txt = "formData.give_integral";
- th.setData({ [txt]:good.s_intValue });
- }
- //优惠送券
- if(good.s_coupon_id){
- var i_txt = "formData.give_coupon_id";
- //这个是json格式的
- var i_txt1 = "formData.g_coupon_num";
- var ob=[{"num":good.s_coupon_num,"c_id":good.s_coupon_id}];
- ob=JSON.stringify(ob);
- th.setData({ [i_txt]:good.s_coupon_id,[i_txt1]:ob });
- }
- //优惠礼包
- if(good.s_libao){
- var l_txt = "formData.give_lb_id";
- //这个是json格式的
- var l_txt1 = "formData.g_lb_num";
- var ob=[{"num":good.s_lb_num,"l_id":good.s_libao}];
- ob=JSON.stringify(ob);
- th.setData({ [l_txt]:good.s_coupon_id,[l_txt1]:ob });
- }
- }
-
- wx.hideLoading();
-
- });
- });
- },
-
- //--------------------提交订单-----------------------
- async submitForm(t){
- var sub_value=t;
-
- if(this.data.is_summit_ing==1) return false; //--提交中退出--
- this.data.is_summit_ing=1;
- var th=this,pdata=new Array();
- var ff=true;
- //------------立即购买-------------
- if (th.data.is_b_now==1 && th.data.bn_goods.prom_type!=5){
-
- if(th.data.bn_exp_type == 0 && th.data.user_addr==null ){
- ff = false; getApp().my_warnning("请选择收货地址",0,th);
- th.data.is_summit_ing = 0;
- }
- if (!ff) return false;
- var addr = th.data.user_addr;
- if (th.data.bn_exp_type == 1) addr=null;
-
- if(th.data.bn_exp_type==0)
- if(th.data.wu_arr==null || th.data.wu_arr.length<=0){
- getApp().my_warnning("读取物流失败",0,th);
- th.data.is_summit_ing = 0;
- return false;
- }
-
- var item={
- 'user_id': to.globalData.user_id,
- 'consignee': addr == null ? "" : addr.consignee,
- 'province': addr == null ? 0 : addr.province,
- 'city': addr == null ? 0 : addr.city,
- 'district': addr == null ? 0 : addr.district,
- 'twon': addr == null ? 0 : addr.twon,
- 'address': addr == null ? "": addr.address,
- 'more_address': addr == null ? "" : addr.more_address,
- //'mobile': th.data.userinfo.mobile,
- 'mobile': addr == null ? th.data.userinfo.mobile : addr.mobile,
- 'email':'',
- 'shipping_code': th.data.bn_exp_type == 1 ? 0 : th.data.wu_arr[th.data.index].code,
- 'shipping_name': th.data.bn_exp_type == 1 ? '' : th.data.wu_arr[th.data.index].name,
- 'invoice_title':'',
- 'goods_price': th.data.formData.all_price, //商品总价
- 'shipping_price': th.data.formData.shipping_price, //物流金额
- 'user_money': th.data.formData.user_money, //使用余额
- 'total_amount': th.data.formData.total_amount, //订单总价
- 'order_amount': th.data.formData.order_amount, //应付
- 'user_note': t.detail.value.user_note, //用户备注
- 'store_id':oo.stoid, //商家
- 'pickup_id': th.data.bn_pick, //门店
- 'exp_type': th.data.bn_exp_type, //配送方式
- 'order_goods':new Array(),
- };
- //是不是重新提交
- if(th.data.is_continue==1) item.is_continue=1;
-
- //获取立即购买的商品的信息
- var gg = to.get_b_now();
- //--商品的房间号--
- if(gg.room_id && gg.room_id>0){
- item.room_ids=gg.room_id;
- }
-
- var order_prom_list={};
- //--判断有没有优惠活动--
- if(th.data.order_prom[item.pickup_id]){
- if(th.data.formData.order_prom_amount>0){
- order_prom_list.order_prom_id=th.data.formData.order_prom_id;
- order_prom_list.order_prom_amount=th.data.formData.order_prom_amount;
- }
- }
-
- //--判断优惠活动的提交--
- if(th.data.formData.cut_price>0){
- order_prom_list.discount_amount=th.data.formData.cut_price.toFixed(2);
- var ob=[{"prom_id":th.data.bn_goods.prom_id,"dis":th.data.formData.cut_price.toFixed(2),"ispt":0}]
- order_prom_list.prom_pt_json=JSON.stringify(ob);
- }
- if(th.data.formData.give_integral>0){
- order_prom_list.give_integral=th.data.formData.give_integral;
- }
- if(th.data.formData.give_coupon_id>0){
- order_prom_list.give_coupon_id=th.data.formData.give_coupon_id;
- order_prom_list.g_coupon_num=th.data.formData.g_coupon_num;
- }
- if(th.data.formData.give_lb_id>0){
- order_prom_list.give_lb_id=th.data.formData.give_lb_id;
- order_prom_list.g_lb_num=th.data.formData.g_lb_num;
- }
- item.order_prom_list=order_prom_list;
-
- //组装优惠券的钱
- if(parseFloat(th.data.formData.coupon_price)>0){
- item.coupon_price=th.data.formData.coupon_price;
- item.coupon_no=th.data.using_quan[th.data.bn_pick].coupon_no;
- }
- if(th.data.using_quan[th.data.bn_pick] && th.data.using_quan[th.data.bn_pick].coupon_no && th.data.using_quan[th.data.bn_pick].isby){
- item.coupon_no=th.data.using_quan[th.data.bn_pick].coupon_no;
- item.coupon_price=0;
- }
-
- //老会员成为分销下线需要的参数
- if(getApp().globalData.first_leader && !getApp().globalData.userInfo.first_leader){
- //判断一下分享人是不是分享商
- await app.request.promiseGet("/api/weshop/users/get/" + os.stoid+"/"+getApp().globalData.first_leader,{}).then(res=>{
- if(res.data.code==0){
- var user= res.data.data;
- if(user.is_distribut==1){
- item.first_leader=parseInt(getApp().globalData.first_leader);
- }
- }
- })
- }
-
- var goods={
- 'goods_id': gg.goods_id,
- 'goods_name': gg.goods_name,
- 'goods_sn': gg.goods_sn,
- 'goods_num': gg.goods_num,
- 'market_price': th.data.bn_goods.market_price,
- 'goods_price': th.data.bn_goods.shop_price,
- 'member_goods_price': th.data.bn_goods.shop_price,
- 'store_id': oo.stoid,
- 'prom_type':th.data.bn_goods.prom_type, //促销活动类型
- 'prom_id': th.data.bn_goods.prom_id, //促销活动id
- };
-
- //-- 把导购的信息填入--
- if(gg.guide_id){
- goods.guide_id=gg.guide_id;
- goods.guide_type=gg.guide_type;
- //调用接口判断是不是会员
- await getApp().request.promiseGet("/api/weshop/shoppingGuide/getId/"+oo.stoid+"/"+gg.guide_id,{}).then(res=>{
- if(res.data.code==0){
- goods.guide_name=res.data.data.salesman;
- goods.guide_sn=res.data.data.salesman_no;
- }
- })
- }
-
- //--商品的房间号--
- if(gg.room_id && gg.room_id>0){
- goods.room_id=gg.room_id;
- }
-
- //积分购,先要带is_integral_normal=1
- if(gg.is_integral_normal) goods.is_integral_normal=1;
-
- //先要带is_pd_normal=1
- if(gg.is_pd_normal) goods.is_pd_normal=1;
-
- //如果不立即购买或者秒杀,如果是线下库存购买的时候
- if(goods.prom_type!=1 && goods.prom_type!=6 && th.data.sales_rules==2){
- var isok=1;
- await th.check_store_num(goods.goods_id,th.data.bn_pick, gg.goods_num,function(res){
- isok=res;
- });
- if(!isok){
- getApp().confirmBox("商品的门店库存不足");
- th.data.is_summit_ing=0;
- return false;
- }
- }
-
- //-- 如果有线下取价的话 --
- if(th.data.bn_goods.is_offline){
- item.sum_offline_cut= (th.data.bn_goods.shop_price- th.data.bn_goods.offline_price).toFixed(2);
- goods.offline_cut=item.sum_offline_cut;
- goods.pricing_type=th.data.bn_goods.pricing_type;
- goods.goods_price=th.data.bn_goods.offline_price;
- goods.member_goods_price=th.data.bn_goods.offline_price;
- }
-
- //--- 如果有优惠促销的金额,要把金额先平摊下去 ---
- if(th.data.formData.cut_price>0 && !th.data.ispt_goods){
- var g_arr=new Array();
- g_arr.push(goods);
- var pt_data={
- 'prom_id':goods.prom_id,
- 'dis': parseFloat(th.data.formData.cut_price),
- 'goods':g_arr,
- }
-
- var pt_res=null;
- await getApp().request.promisePost("/api/weshop/order/getGoodsSplit",{is_json:1,data:pt_data}).then(res=>{
- if(res.data.code==0){ pt_res=res.data.data; }
- })
- if(pt_res){
- //平摊赋值
- goods.account=pt_res[0].fisrt_account;
- goods.account_yu=pt_res[0].fisrt_account_yu;
- item.is_discount_amount=1;
- }
- }
-
- //--组装优惠券的钱--
- if(th.data.formData.coupon_price){
- item.coupon_price=th.data.formData.coupon_price;
- item.coupon_no=th.data.using_quan[th.data.bn_pick].coupon_no;
- goods.quan_num=th.data.formData.coupon_price;
- goods.quan_no= item.coupon_no;
- }
-
- item.order_goods.push(goods);
-
- //--如果有赠品的时候,赠品也要提交---
- if(th.data.buy_now_gift_goods){
- var gift_gg=th.data.buy_now_gift_goods;
- var g_goods={
- 'goods_id': gift_gg.goods_id,
- 'goods_name': gift_gg.goods_name,
- 'goods_sn': gift_gg.goods_sn,
- 'goods_num': gift_gg.buynum,
- 'market_price': gift_gg.market_price,
- 'goods_price': 0,
- 'member_goods_price': 0,
- 'store_id': oo.stoid,
- 'is_gift':1,
- 'gift_id':gift_gg.gift_id,
- 'prom_id':gift_gg.prom_id,
- };
- item.order_goods.push(g_goods);
- }
- pdata.push(item);
-
- console.log(pdata);
- }else{
- //---------购物车的结算---------
- if (th.data.is_all_zt == 0 && th.data.user_addr == null) {
- th.data.is_summit_ing = 0;
- ff = false; getApp().confirmBox("请新建收货地址");}
- if (!ff) return false;
-
- var addr = th.data.user_addr;
- if (th.data.is_all_zt == 1) addr = null;
- var val_arr= t.detail.value;
-
-
- if(th.data.is_all_zt !=1)
- if(th.data.wu_arr==null || th.data.wu_arr.length<=0 ){
- th.data.is_summit_ing = 0;
- getApp().confirmBox("读取物流失败");
- return false;
- }
-
- var order_prom_list_cart=th.data.order_prom_list_cart;
-
- //--组装推送数据--
- for (var i = 0; i < order_prom_list_cart.length;i++){
- var t_item = order_prom_list_cart[i];
- var item = {
- 'user_id': to.globalData.user_id,
- 'consignee': addr == null ? th.data.userinfo.mobile : addr.consignee,
- 'province': addr == null ? 0 : addr.province,
- 'city': addr == null ? 0 : addr.city,
- 'district': addr == null ? 0 : addr.district,
- 'twon': addr == null ? 0 : addr.twon,
- 'address': addr == null ? "" : addr.address,
- 'more_address': addr == null ? "" : addr.more_address,
- 'mobile': addr == null ? th.data.userinfo.mobile : addr.mobile,
- 'email': '',
- 'shipping_code': th.data.is_all_zt == 1 ? 0 : th.data.wu_arr[t_item.wind].code,
- 'shipping_name': th.data.is_all_zt == 1 ? '' : th.data.wu_arr[t_item.wind].name,
- 'invoice_title': '',
- 'goods_price': t_item.goods_price, //商品总价
- 'shipping_price': t_item.shipping_price, //物流金额
- 'user_money': t_item.user_money, //使用余额
- 'total_amount': t_item.total_amount, //订单总价
- 'order_amount': t_item.order_amount, //应付
- 'user_note': val_arr['user_note_' + t_item.pickup_id], //用户备注
- 'store_id': oo.stoid, //商家
- 'pickup_id': t_item.pickup_id, //门店
- 'exp_type': t_item.exp_type, //配送方式
- 'order_goods': new Array(),
- };
- //是不是重新提交
- if(th.data.is_continue==1) item.is_continue=1;
- //----- 如果有线下取价的话 ----
- if(t_item.is_offline==1){
- item.sum_offline_cut=t_item.offline_price.toFixed(2);
- }
-
- //组装优惠券的钱
- if(t_item.coupon_price) {
- item.coupon_price = t_item.coupon_price;
- item.coupon_no = th.data.using_quan[t_item.pickup_id].coupon_no;
- }else if(t_item.quan_no) {
- item.coupon_no = t_item.quan_no;
- item.coupon_price = 0;
- }
-
- var order_prom_list={};
- //--判断有没有优惠活动--
- if(t_item.order_prom_amount>0){
- order_prom_list.order_prom_id=t_item.order_prom_id;
- order_prom_list.order_prom_amount=t_item.order_prom_amount;
- }
- //--判断优惠活动的提交--
- if(t_item.cut_price>0){
- order_prom_list.discount_amount=t_item.cut_price.toFixed(2);
- order_prom_list.prom_pt_json=JSON.stringify(t_item.prom_pt_json);
- }
- if(t_item.s_intValue>0){
- order_prom_list.give_integral=t_item.s_intValue;
- }
- if(t_item.s_coupon_id){
- order_prom_list.give_coupon_id=t_item.s_coupon_id;
- order_prom_list.g_coupon_num= JSON.stringify(t_item.g_coupon_num);
- }
- if(t_item.s_libao){
- order_prom_list.give_lb_id=t_item.s_libao;
- order_prom_list.g_lb_num=JSON.stringify(t_item.g_lb_num);
- }
- if(Object.keys(order_prom_list).length>0)
- item.order_prom_list=order_prom_list;
-
- //老会员成为分销下线需要的参数
- if(getApp().globalData.first_leader && !getApp().globalData.userInfo.first_leader){
- //判断一下分享人是不是分享商
- await app.request.promiseGet("/api/weshop/users/get/" + os.stoid+"/"+getApp().globalData.first_leader,{}).then(res=>{
- if(res.data.code==0){
- var user= res.data.data;
- if(user.is_distribut==1){
- item.first_leader=parseInt(getApp().globalData.first_leader);
- }
- }
- })
- }
-
-
- //房间号的ids
- var room_ids="";
- //-------------让商品添加到商品列表--------------------
- for (var k = 0; k < t_item.goods.length;k++){
- var g_item = t_item.goods[k];
- var goods = {
- 'goods_id': g_item.goods_id,
- 'goods_name': g_item.goods_name,
- 'goods_sn': g_item.goods_sn,
- 'goods_num': g_item.goods_num,
- 'market_price': g_item.market_price,
- 'goods_price': g_item.goods_price,
- 'member_goods_price': g_item.goods_price,
- 'store_id': oo.stoid,
- };
-
- //-- 线下取价也要写入 --
- if(g_item.offline_price && t_item.is_offline==1){
- goods.goods_price=g_item.offline_price;
- goods.member_goods_price=g_item.offline_price;
- goods.offline_cut=(g_item.goods_price-g_item.offline_price).toFixed(2);
- goods.pricing_type=g_item.pricing_type;
- }
-
- //--把券的钱,写入从表---
- if(t_item.quan_youhui_list && t_item.coupon_price ){
- for(var kk in t_item.quan_youhui_list ){
- var you_item=t_item.quan_youhui_list[kk];
- if(g_item.erpwareid==you_item.WareId){
- goods.quan_num=you_item.WareCashSum;
- goods.quan_no=you_item.CashRepNo;
- }
- }
- }
-
- //--判断活动的类型--
- switch (g_item.prom_type) {
- case 1:
- goods.prom_type = g_item.prom_type;
- goods.prom_id = g_item.prom_id;
- break;
- case 3:
- goods.prom_type=3;
- goods.prom_id=g_item.prom_id;
- if(g_item.is_gift){
- goods.is_gift=g_item.is_gift;
- goods.gift_id=g_item.gift_id;
- }
- break;
- case 5:
- goods.prom_type=5;
- goods.prom_id=g_item.prom_id;
- if(g_item.is_collocation){
- goods.is_collocation=g_item.is_collocation;
- }
- break
- default:
- goods.prom_type = 0;goods.prom_id =0;
- }
-
- //如果不立即购买或者秒杀,如果是线下库存购买的时候
- if(goods.prom_type==0 && th.data.sales_rules==2){
- var isok=1;
- await th.check_store_num(goods.goods_id, t_item.pickup_id,goods.goods_num,function(res){
- isok=res;
- });
- if(!isok){
- getApp().confirmBox( goods.goods_name+"的门店库存不足");
- th.data.is_summit_ing=0;
- return false;
- }
- }
-
- //把优惠的平摊结果写进去
- if(g_item.account>=0 || g_item.account_yu!=0){
- if(g_item.account>=0) goods.account=g_item.account;
- if(g_item.account_yu!=0) goods.account_yu=g_item.account_yu;
- item.is_discount_amount=1;
- }
-
- //导购ID
- if(g_item.guide_id){
- goods.guide_id=g_item.guide_id;
- goods.guide_type=g_item.guide_type;
- //调用接口判断是不是会员
- await getApp().request.promiseGet("/api/weshop/shoppingGuide/getId/"+oo.stoid+"/"+g_item.guide_id,{}).then(res=>{
- if(res.data.code==0){
- goods.guide_name=res.data.data.salesman;
- goods.guide_sn=res.data.data.salesman_no;
- }
- })
- }
- //如果房间号不为空的时候
- if(g_item.room_id){
- goods.room_id=g_item.room_id;
- room_ids+=g_item.room_id+",";
- }
- item.order_goods.push(goods);
- }
-
- //如果房间号不为空的时候
- if(room_ids!="") item.room_ids= ut.sub_last(room_ids);
- pdata.push(item);
- }
-
-
- }
-
- if (pdata.length==0) return;
- var str = JSON.stringify(pdata);
-
- wx.showLoading({title: "加载中"});
- wx.request({
- url: oo.url + '/api/weshop/order/createWxdOrder',
- data: str,
- method: 'POST',
- header: {
- 'content-type': 'application/json'
- },// 设置请求的 header
- success: function (res) {
-
-
- wx.hideLoading();
- if (res.statusCode == 200) {
- var data=res.data;
- if(data.code==0){
- console.log(th.data.is_b_now);
- //如果是购物车结算,还要删除购物车
- if (th.data.is_b_now == 0) {
- console.log(th.data.cartlist_y);
- var list = th.data.cartlist_y;
- for (var i = 0; i < list.length; i++) {
- //删除购物车
- a.delete("/api/weshop/cart/del/" + oo.stoid + "/" + list[i].id, {});
- }
- }
- var order_amount = 0;
- pdata.forEach(function (em, ind) {
- order_amount += em.order_amount;
- })
- //要进行判断,如果是用微信支付,就要跳转到支付界面
- if (order_amount > 0) {
- th.setData({ isclose: 0 });
- //void e.jumpToCart4({
- // order_sn: data.data,
- //}, 1);
- util_pay.pay(data.data, function() {
- //app.my_warnning("支付成功",1,th);
- //setTimeout(function () {
- wx.redirectTo({
- url: "/pages/payment/pay_success/pay_success?type=2&order_sn="+data.data
- })
- //},1000)
- }, function () {
- //支付失败
- setTimeout(function () {
- wx.navigateBack({ delta: 1 })
- },1000)
- },oo.stoid);
+ if (item_price < parseFloat(quan_item.BuySum)) {
+ getApp().my_warnning("该单品金额没有大于等于" + quan_item.BuySum + "元时不能使用优惠券", 0, this, 600);
+ return false;
+ }
+ }
+ }
- } else {
- var dd = {
- parent_sn: data.data,
- store_id: oo.stoid,
- type: 2,
- };
- a.post("/api/weshop/order/pay/createOrder", {
- data: dd,
- success: function (t) {
- //console.log(t);
- if(t.data.code==0){
- //app.my_warnning("支付成功",1,th);
- //setTimeout(function () {
- th.setData({ isclose: 0 });
- wx.redirectTo({
- url: "/pages/payment/pay_success/pay_success?type=2&order_sn="+data.data,
- })
- //}, 1000)
- }
- },
- fail:function () {
-
- }
- });
- }
-
- }
- else{
- //--内容换行--
- var msg=data.msg;
- //赠品活动已经取消,无法赠送,是否继续买单?
- if(msg.indexOf("是否继续买单")>0){
- wx.showModal({
- title:"提示",
- content: data.msg,
- cancelText:'取消',
- confirmText:'确定',
- showCancel: true,
- success(res){
- if(res.cancel){
- return;
- }else if(res.confirm){
- th.data.is_continue=1;
- th.data.is_summit_ing=0; //是否提交中
- th.submitForm(sub_value);
- }
- }
- })
- return;
- }
- if(msg.length>13){
- msg=msg.slice(0, 13) + "\r\n"+ msg.slice(13);
- }
- getApp().confirmBox(msg);
- th.data.is_summit_ing=0; //是否提交中
- }
- }else{
- th.data.is_summit_ing=0; //是否提交中
- console.log("index.js wx.request CheckCallUser statusCode" + res.statusCode);
- }
- },
- fail: function () {
- th.data.is_summit_ing=0;
- wx.hideLoading();
- console.log("index.js wx.request CheckCallUser fail");
- },
- complete: function () {}
- })
-
- },
- //---确认线下门店的数量足不足---
- async check_store_num(goods_id,pick,goods_num,func){
- var lock=0,pick_no,plist,erpwareid;
- //先读取门店的lock
- await getApp().request.promiseGet("/api/weshop/order/ware/lock/page",{
- data:{store_id:os.stoid,wareId:goods_id,storageId:pick,pageSize:1000}
- }).then(res=>{
- if(res.data.code==0 && res.data.data.total>0){
- for(var i in res.data.data.pageData)
- lock+=res.data.data.pageData[i].outQty;
- }
- })
- //先获取门店的编号
- await getApp().request.promiseGet("/api/weshop/pickup/get/"+os.stoid+"/"+pick,{
- data:{storeId:os.stoid,goodsId:t.goods_id,pickupId:pick}
- }).then(res=>{
- if(res.data.code==0){
- pick_no=res.data.data.pickup_no;
- }
- })
- //先获取商品的线下库存
- await getApp().request.promiseGet("/api/weshop/goods/get/"+os.stoid+"/"+goods_id,{
- data:{storeId:os.stoid,goodsId:t.goods_id,pickupId:pick}
- }).then(res=>{
- if(res.data.code==0){
- erpwareid=res.data.data.erpwareid;
- }
- })
- //读取线下的门店库存
- await getApp().request.promiseGet("/api/weshop/goods/getWareStorages",{
- data:{storageNos:pick_no,wareIds:encodeURIComponent(erpwareid),storeId:os.stoid,pageSize:2000}
- }).then(res=>{
- if(res.data.code==0){
- plist=res.data.data.pageData[0];
- }
- })
- var isok=1;
- if(goods_num>plist.CanOutQty-lock){
- isok=0;
- }
- func(isok);
- },
-
- useCoupon: function() {
- if (this.data.order.couponNum <= 0) {
- getApp().my_warnning("无可用优惠券",0,this);
- return;
- }
-
- var a = {
- lid: this.data.coupon ? this.data.coupon.id : "0"
- };
- wx.navigateTo({
- url: "/pages/user/checkcoupon/checkcoupon?" + s.Obj2Str(a)
- });
- },
- enterAddressPage: function() {
- getApp().globalData.is_cart_old=1;
- this.data.isget_by_quan={};
- this.data.enterAddressPage = !0, wx.navigateTo({
- url: "/pages/user/address_list/address_list"
- });
- },
-
- //--------购物车购买时,选择自提和物流-----------
- setexptype_w:function(t){
-
- var def_exp_code= getApp().globalData.userInfo.def_exp_code,th=this;
- var ty = t.currentTarget.dataset.t, txt = t.currentTarget.dataset.txt,
- wl_txt = t.currentTarget.dataset.wl_txt,
- ont = t.currentTarget.dataset.ont;
-
- th.setData({ [txt]: ty });
- var iszt=1;
-
- if(ty==0){
- th.setData({ is_all_zt: 0 });
- }else{
- for(var i=0;i 0 && o_price >= freight_free){ return 0;}
- if (user_addr==null) { return 0; }
- //计算物流的config item;
- var item=null;
- //先根据 镇 县 区找计算的config
- item = th.get_wuliu_config(user_addr.district,code,rs);
- if (item==null) item = th.get_wuliu_config(user_addr.city, code, rs);
- if (item==null) item = th.get_wuliu_config(user_addr.province, code, rs);
- if (item == null) item = th.get_wuliu_default(code,rs);
- if (item == null) return o_shipping_price;
- var fw_price = 0, fp_price=0;
- item=item.config;
- if (item == null) return o_shipping_price;
- //------按重量----------
- if (goods_weight>=0 && item['money']) {
- fw_price =parseFloat(item['money']);
- if (goods_weight > item['first_weight']){
- var fw = goods_weight - item['first_weight'];
- var n = Math.ceil(fw/item['second_weight'])
- fw_price = fw_price + n * parseFloat(item['add_money']);
- }
- }
- //------按件数----------
- if (goods_piece > 0 && item['piecemoney']) {
- fp_price = parseFloat(item['piecemoney']);
- if (goods_piece > item['first_piece']) {
- var fp = goods_piece - item['first_piece'];
- var m = Math.ceil(fp / item['second_piece'])
- fp_price = fp_price + m * parseFloat(item['add_piecemoney']);
- }
- }
- var rspice =parseFloat(price + fw_price + fp_price);
- return rspice;
- },
-
- //------------循环获取config-----------
- get_wuliu_config:function(region_id,code,rs){
- var item=null,rslist = rs.pageData;
- for (var i = 0; i < rslist.length;i++){
- if (rslist[i].code == code && rslist[i].region_id == region_id) { item = rslist[i];}
- }
- return item;
- },
- //-------循环获取config,code default-------
- get_wuliu_default: function (code, rs) {
- var item = null, rslist=rs.pageData;
- for (var i = 0; i < rslist.length; i++) {
- if (rslist[i].shipping_code == code && rslist[i].is_default == 1) { item = rslist[i]; }
- }
- return item;
- },
-
- //----------立即购买,选择物流-------------
- bindPickerChange:function(e){
- var ind = e.detail.value
- this.setData({ index: ind });
- this.calculatePrice2();
- },
- //----------购物车结算,选择物流-------------
- bindPickerChange_w: function (e) {
- var ind=e.detail.value, txt = e.currentTarget.dataset.txt;
- this.setData({ [txt]: ind });
- this.calculatePrice();
- },
-
- /*----券的所有操作----*/
- open_coupon_list:function (e) {
- var th=this;
- var pickid=e.currentTarget.dataset.pickid;
- var bn=e.currentTarget.dataset.bn;
- var cindx=e.currentTarget.dataset.cind;
- var get_by_quan_list_cart=th.data.get_by_quan_list_cart[pickid];
-
-
- if(bn==1){
- th.setData({open_quan:1,selected_quan_pick:pickid, disabled:1});
- }else{
- //---多单打开券的时候,就要判断券在其他门店是否有使用---
- var quanlist=th.data.cartlist[cindx].quan_list;
- var exp_type=th.data.cartlist[cindx].exp_type;
-
-
- //对于在其他门店已经选择了的券 要判断是否显示到界面
- var t_user=th.data.using_quan[pickid];
-
- for(var i in quanlist){
- quanlist[i].is_using= th.check_in_sele(quanlist[i].CashRepNo,pickid);
- if(t_user && quanlist[i].CashRepNo==t_user.coupon_no)
- quanlist[i].show_red=1;
- else
- quanlist[i].show_red=0;
- }
-
- if(get_by_quan_list_cart){
- for(var i in get_by_quan_list_cart){
- get_by_quan_list_cart[i].is_using= th.check_in_sele(get_by_quan_list_cart[i].no,pickid);
- if(t_user && get_by_quan_list_cart[i].no==t_user.coupon_no)
- get_by_quan_list_cart[i].show_red=1;
- else
- get_by_quan_list_cart[i].show_red=0;
- }
- th.setData({by_quan_list_cart:get_by_quan_list_cart});
- }else {
- th.setData({by_quan_list_cart:null});
- }
-
- console.log("2222222券的列表", quanlist);
- th.setData({ sele_cart_ind:cindx,sele_exp_type:exp_type,open_quan:1,selected_quan_pick:pickid,selected_quan_list:quanlist,disabled:1});
- }
- },
- close_coupon:function (e) {
- var th=this;
- th.setData({open_quan:0,disabled:0});
- },
-
- //---判断券时候在已经选择的列表中---
- check_in_sele:function (no,pick_id) {
- var th=this;
- if(th.data.using_quan.length<=0) return false;
- for(var i in th.data.using_quan){
- //--如果键值等于本身就要跳出--
- if(parseInt(i)==parseInt(pick_id)) continue;
- var item=th.data.using_quan[i];
- if(item.coupon_no==no){
- return true;
- }
- }
- return false;
- },
-
- /*--点击选择券--*/
- sele_quan_item:function(e) {
-
- var ind = e.currentTarget.dataset.ind;
- var quan_item=this.data.selected_quan_list[ind];
- var pickid=this.data.selected_quan_pick; //现在选择的是哪一个门店
- //--如果券是单品使用的时候--
- if( quan_item && quan_item.UseObjectType && quan_item.UseObjectType=="20"){
- //---只有多件购买的时候才要计算,//购物车购买和搭配勾的时候---
- var gg=getApp().get_b_now();
- if(this.data.is_b_now==0 || gg.prom_type==5){
- var arr=this.data.order_prom_list_cart;
- var t_pk_item=null;
- for(var ii in arr){
- var ep=arr[ii];
- if(pickid==ep.pickup_id){
- t_pk_item=ep; break;
- }
- }
- //--寻找券指定的商品--
- var gd=null;
- if(t_pk_item){
- var goods=t_pk_item.goods;
- for(var gid in goods){
- if(quan_item.UseObjectID==goods[gid].erpwareid){ gd=goods[gid]; }
- }
- }
- if(!gd){
- getApp().my_warnning("未找到指定商品使用",0,this,600);
- return false;
- }
- //计算价格,如果有平摊的实收要计算实收的金额
- var item_price=gd.goods_price*gd.goods_num;
- //-- 如果有平摊下去,有实收价格的时候,就要用account_fir来计算价格 --
- if(gd.account_fir!=null && gd.account_fir!=undefined){
- item_price=gd.account_fir*gd.goods_num;
- }
-
- if(item_price< parseFloat(quan_item.BuySum)){
- getApp().my_warnning("该单品金额没有大于等于"+quan_item.BuySum+"元时不能使用优惠券",0,this,600);
- return false;
- }
- }
- }
-
- var no_use=e.currentTarget.dataset.no, quanlist=this.data.selected_quan_list;
- //---所有的券的显示红色选择都清理一遍---
- for(var i in quanlist){
- quanlist[i].show_red=0;
- }
- this.setData({selected_quan_list:quanlist});
- var by_quanlist=this.data.get_by_quan_list;
- if(by_quanlist){
- //---所有的券的显示红色选择都清理一遍---
- for(var inb in by_quanlist){
- by_quanlist[inb].show_red=0;
- }
- this.setData({get_by_quan_list:by_quanlist});
- }
-
- var by_cart_list=this.data.by_quan_list_cart;
- if(by_cart_list){
- //---所有的券的显示红色选择都清理一遍---
- for(var inc in by_cart_list){
- by_cart_list[inc].show_red=0;
- }
- this.setData({by_quan_list_cart:by_cart_list});
- }
-
- var using_quan=this.data.using_quan;
- var th=this;
- //---如果是不使用优惠券---
- if(no_use==1){
- console.log("有进来吗券", no_use);
- if(using_quan[th.data.selected_quan_pick]){
- using_quan[th.data.selected_quan_pick].is_nouse_red=1;
- }
- else{
- using_quan[th.data.selected_quan_pick] ={is_nouse_red:1};
- }
- this.setData({ using_quan: using_quan, is_coupon:2222});
- return;
- }
-
-
-
- var txt = "selected_quan_list[" + ind + "].show_red";
- var obj = {};
- obj[txt] = 1;
- if (quan_item.show_red) {
- obj[txt] = 0;
- }
- this.setData(obj);
- console.log(this.data.selected_quan_list, "选中的券的下标", quan_item, "数据都在这里", txt);
- if(using_quan[th.data.selected_quan_pick]){
- using_quan[th.data.selected_quan_pick].is_nouse_red=0;
- }
- else{
- using_quan[th.data.selected_quan_pick] ={is_nouse_red:0};
- }
- this.setData({using_quan:using_quan});
-
- },
-
-
- /*----- 点击选择包邮券 -----*/
- sele_quan_item_by:function(e) {
- var no_use=e.currentTarget.dataset.no;
- //立即购买的包邮券
- var by_quanlist=this.data.get_by_quan_list;
- if(by_quanlist) {
- //---所有的券的显示红色选择都清理一遍---
- for (var ind in by_quanlist) {
- by_quanlist[ind].show_red = 0;
- }
- this.setData({get_by_quan_list: by_quanlist});
- }
-
- //--购物车过来的包邮券--
- var by_cart_list=this.data.by_quan_list_cart;
- if(by_cart_list){
- //---所有的券的显示红色选择都清理一遍---
- for(var ind in by_cart_list){
- by_cart_list[ind].show_red=0;
- }
- this.setData({by_quan_list_cart:by_cart_list});
- }
- //普通券
- var quanlist=this.data.selected_quan_list;
- if(quanlist){
- //---所有的券的显示红色选择都清理一遍---
- for(var ind in quanlist){
- quanlist[ind].show_red=0;
- }
- this.setData({selected_quan_list:quanlist});
- }
-
- var th=this;
- var using_quan=this.data.using_quan;
- //---如果是不使用优惠券---
- if(no_use==1){
- if(using_quan[th.data.selected_quan_pick]){
- using_quan[th.data.selected_quan_pick].is_nouse_red=1;
- }
- else{
- using_quan[th.data.selected_quan_pick] ={is_nouse_red:1};
- }
- this.setData({ using_quan: using_quan, is_coupon:2222});
- return;
- }
-
- var pickid=th.data.selected_quan_pick; //现在选择的是哪一个门店
- var ind = e.currentTarget.dataset.ind;
- //--如果是立即购买的部分--
- var txt="";var txt1=""; var quan_item=null;
- if(th.data.is_b_now){
- quan_item = this.data.get_by_quan_list[ind];
- txt = "get_by_quan_list[" + ind + "].show_red";
- var obj = {}; obj[txt] = 1;
- this.setData(obj);
- }else{
- txt= "by_quan_list_cart[" + ind + "].show_red";
- quan_item = th.data.by_quan_list_cart[ind];
- var obj = {}; obj[txt] = 1;
+ var no_use = e.currentTarget.dataset.no, quanlist = this.data.selected_quan_list;
+ //---所有的券的显示红色选择都清理一遍---
+ for (var i in quanlist) {
+ quanlist[i].show_red = 0;
+ }
+ this.setData({selected_quan_list: quanlist});
+ var by_quanlist = this.data.get_by_quan_list;
+ if (by_quanlist) {
+ //---所有的券的显示红色选择都清理一遍---
+ for (var inb in by_quanlist) {
+ by_quanlist[inb].show_red = 0;
+ }
+ this.setData({get_by_quan_list: by_quanlist});
+ }
+
+ var by_cart_list = this.data.by_quan_list_cart;
+ if (by_cart_list) {
+ //---所有的券的显示红色选择都清理一遍---
+ for (var inc in by_cart_list) {
+ by_cart_list[inc].show_red = 0;
+ }
+ this.setData({by_quan_list_cart: by_cart_list});
+ }
+
+ var using_quan = this.data.using_quan;
+ var th = this;
+ //---如果是不使用优惠券---
+ if (no_use == 1) {
+ console.log("有进来吗券", no_use);
+ if (using_quan[th.data.selected_quan_pick]) {
+ using_quan[th.data.selected_quan_pick].is_nouse_red = 1;
+ }
+ else {
+ using_quan[th.data.selected_quan_pick] = {is_nouse_red: 1};
+ }
+ this.setData({using_quan: using_quan, is_coupon: 2222});
+ return;
+ }
+
+
+ var txt = "selected_quan_list[" + ind + "].show_red";
+ var obj = {};
+ obj[txt] = 1;
+ if (quan_item.show_red) {
+ obj[txt] = 0;
+ }
this.setData(obj);
- th.data.get_by_quan_list_cart[pickid]=JSON.parse(JSON.stringify(th.data.by_quan_list_cart)); //要把选中的弄回数组
- }
-
- if(using_quan[th.data.selected_quan_pick]){
- using_quan[th.data.selected_quan_pick].is_nouse_red=0;
- }
- else{
- using_quan[th.data.selected_quan_pick] ={is_nouse_red:0};
- }
- this.setData({using_quan:using_quan});
- },
-
- //--确认使用券---
- confirm_quan:function () {
- var using_quan=this.data.using_quan; //正在使用中的券列表
- var pickid=this.data.selected_quan_pick; //选中的门店ID
- var th=this;
- var selected_quan_list=this.data.selected_quan_list; //选择了那个门店的券列表
- var get_by_quan_list=this.data.get_by_quan_list; //立即购买的包邮券列表
- var by_quan_list_cart=this.data.by_quan_list_cart; //购物车购买的包邮券列表
- //选择了的券
- var sele_quan=null;
-
- //循环普通的券
- for(var i in selected_quan_list){
- var item=selected_quan_list[i];
- if(item.show_red) {
- th.insert_into_using_quan(item,using_quan,pickid);
- return;
- }
- }
- //循环包邮的券,立即购买的
- for(var i in get_by_quan_list){
- var item=get_by_quan_list[i];
- if(item.show_red) {
- if(th.data.is_no_by[pickid]==1){
- getApp().my_warnning("已全场不能包邮,不能选择包邮券",0,th);return false;
- }
- if(th.data.is_by[pickid]==1){
- getApp().my_warnning("已全场包邮,不能选择包邮券",0,th);return false;
- }
-
- th.insert_into_using_quan(item,using_quan,pickid,1);
- return;
- }
- }
-
- //循环包邮的券
- for(var i in by_quan_list_cart){
- var item=by_quan_list_cart[i];
- if(item.show_red) {
- if(th.data.is_no_by[pickid]==1){
- getApp().my_warnning("已全场不能包邮,不能选择包邮券",0,th);return false;
- }
- if(th.data.is_by[pickid]==1){
- getApp().my_warnning("已全场包邮,不能选择包邮券",0,th);return false;
- }
- th.insert_into_using_quan(item,using_quan,pickid,1);
- return;
- }
- }
-
- //选择了的券,看是不是点击了不使用券,点击了不使用优惠券
- if(using_quan[pickid]){
- if(using_quan[pickid].is_nouse_red==1){
- using_quan[pickid] ={is_nouse_red:1};
- th.setData({using_quan:using_quan});
- if(th.data.is_b_now==1){
+ console.log(this.data.selected_quan_list, "选中的券的下标", quan_item, "数据都在这里", txt);
+ if (using_quan[th.data.selected_quan_pick]) {
+ using_quan[th.data.selected_quan_pick].is_nouse_red = 0;
+ }
+ else {
+ using_quan[th.data.selected_quan_pick] = {is_nouse_red: 0};
+ }
+ this.setData({using_quan: using_quan});
+
+ },
+
+
+ /*----- 点击选择包邮券 -----*/
+ sele_quan_item_by: function (e) {
+ var no_use = e.currentTarget.dataset.no;
+ //立即购买的包邮券
+ var by_quanlist = this.data.get_by_quan_list;
+ if (by_quanlist) {
+ //---所有的券的显示红色选择都清理一遍---
+ for (var ind in by_quanlist) {
+ by_quanlist[ind].show_red = 0;
+ }
+ this.setData({get_by_quan_list: by_quanlist});
+ }
+
+ //--购物车过来的包邮券--
+ var by_cart_list = this.data.by_quan_list_cart;
+ if (by_cart_list) {
+ //---所有的券的显示红色选择都清理一遍---
+ for (var ind in by_cart_list) {
+ by_cart_list[ind].show_red = 0;
+ }
+ this.setData({by_quan_list_cart: by_cart_list});
+ }
+ //普通券
+ var quanlist = this.data.selected_quan_list;
+ if (quanlist) {
+ //---所有的券的显示红色选择都清理一遍---
+ for (var ind in quanlist) {
+ quanlist[ind].show_red = 0;
+ }
+ this.setData({selected_quan_list: quanlist});
+ }
+
+ var th = this;
+ var using_quan = this.data.using_quan;
+ //---如果是不使用优惠券---
+ if (no_use == 1) {
+ if (using_quan[th.data.selected_quan_pick]) {
+ using_quan[th.data.selected_quan_pick].is_nouse_red = 1;
+ }
+ else {
+ using_quan[th.data.selected_quan_pick] = {is_nouse_red: 1};
+ }
+ this.setData({using_quan: using_quan, is_coupon: 2222});
+ return;
+ }
+
+ var pickid = th.data.selected_quan_pick; //现在选择的是哪一个门店
+ var ind = e.currentTarget.dataset.ind;
+ //--如果是立即购买的部分--
+ var txt = "";
+ var txt1 = "";
+ var quan_item = null;
+ if (th.data.is_b_now) {
+ quan_item = this.data.get_by_quan_list[ind];
+ txt = "get_by_quan_list[" + ind + "].show_red";
+ var obj = {};
+ obj[txt] = 1;
+ this.setData(obj);
+ } else {
+ txt = "by_quan_list_cart[" + ind + "].show_red";
+ quan_item = th.data.by_quan_list_cart[ind];
+ var obj = {};
+ obj[txt] = 1;
+ this.setData(obj);
+ th.data.get_by_quan_list_cart[pickid] = JSON.parse(JSON.stringify(th.data.by_quan_list_cart)); //要把选中的弄回数组
+ }
+
+ if (using_quan[th.data.selected_quan_pick]) {
+ using_quan[th.data.selected_quan_pick].is_nouse_red = 0;
+ }
+ else {
+ using_quan[th.data.selected_quan_pick] = {is_nouse_red: 0};
+ }
+ this.setData({using_quan: using_quan});
+ },
+
+ //--确认使用券---
+ confirm_quan: function () {
+ var using_quan = this.data.using_quan; //正在使用中的券列表
+ var pickid = this.data.selected_quan_pick; //选中的门店ID
+ var th = this;
+ var selected_quan_list = this.data.selected_quan_list; //选择了那个门店的券列表
+ var get_by_quan_list = this.data.get_by_quan_list; //立即购买的包邮券列表
+ var by_quan_list_cart = this.data.by_quan_list_cart; //购物车购买的包邮券列表
+ //选择了的券
+ var sele_quan = null;
+
+ //循环普通的券
+ for (var i in selected_quan_list) {
+ var item = selected_quan_list[i];
+ if (item.show_red) {
+ th.insert_into_using_quan(item, using_quan, pickid);
+ return;
+ }
+ }
+ //循环包邮的券,立即购买的
+ for (var i in get_by_quan_list) {
+ var item = get_by_quan_list[i];
+ if (item.show_red) {
+ if (th.data.is_no_by[pickid] == 1) {
+ getApp().my_warnning("已全场不能包邮,不能选择包邮券", 0, th);
+ return false;
+ }
+ if (th.data.is_by[pickid] == 1) {
+ getApp().my_warnning("已全场包邮,不能选择包邮券", 0, th);
+ return false;
+ }
+
+ th.insert_into_using_quan(item, using_quan, pickid, 1);
+ return;
+ }
+ }
+
+ //循环包邮的券
+ for (var i in by_quan_list_cart) {
+ var item = by_quan_list_cart[i];
+ if (item.show_red) {
+ if (th.data.is_no_by[pickid] == 1) {
+ getApp().my_warnning("已全场不能包邮,不能选择包邮券", 0, th);
+ return false;
+ }
+ if (th.data.is_by[pickid] == 1) {
+ getApp().my_warnning("已全场包邮,不能选择包邮券", 0, th);
+ return false;
+ }
+ th.insert_into_using_quan(item, using_quan, pickid, 1);
+ return;
+ }
+ }
+
+ //选择了的券,看是不是点击了不使用券,点击了不使用优惠券
+ if (using_quan[pickid]) {
+ if (using_quan[pickid].is_nouse_red == 1) {
+ using_quan[pickid] = {is_nouse_red: 1};
+ th.setData({using_quan: using_quan});
+ if (th.data.is_b_now == 1) {
th.calculatePrice2();
- }else{
- th.calculatePrice();
+ } else {
+ th.calculatePrice();
}
- th.setData({open_quan:0});
+ th.setData({open_quan: 0});
return;
- }
- }
- },
-
- //----把券插入之后的操作,同时还要重新计算价格----
- insert_into_using_quan:function (item,using_quan,pickid,isby) {
- var th=this;
- if(isby==1){
- using_quan[pickid]={coupon_no:item.no,money:0,is_nouse_red:0,region_list:item.region_list,goods_list:item.goods_list};
- using_quan[pickid].isby=1;
- }else{
- using_quan[pickid]={coupon_no:item.CashRepNo,money:item.Sum,is_nouse_red:0};
- using_quan[pickid].isby=0;
- }
- this.setData({using_quan:using_quan});
- if(th.data.is_b_now==1){
- th.calculatePrice2();
- }else{
- th.calculatePrice();
- }
- th.setData({open_quan:0});
- },
-
- cart_set_err:function(e){
- var txt = e.currentTarget.dataset.err;
- var ob={};
- ob[txt] = this.data.imgUrl + "/miniapp/images/default_g_img.gif";
- this.setData(ob);
- },
- //--验证是否已经冻结--
- check_is_frozenQuan:function(quanlist,frozenQuan,isby){
- console.log("券列表",quanlist);
- if(!quanlist) return null;
- if(!frozenQuan) return quanlist;
- var arr=[];
- for(var i=0;i{
- if (res.data.code == 0) {
- var quan_list = res.data.data.pageData;
- arr[ind].quan_list = th.check_is_frozenQuan(quan_list, th.data.frozenQuan);
- }
- })
- }
- }
-
- //如果是搭配购的立即购买的时候
- if(th.data.is_b_now){
- if(arr && arr.length>0){
- var quanlist=arr[0].quan_list;
- th.setData({selected_quan_list:quanlist,cartlist:arr})
- }
- }else{
- th.setData({cartlist:arr })
- th.set_can_num();
- }
-
- //})
- },
-
- //------ 获取立即购买的购物车的劵 --------
- get_buy_now_quan:function () {
- var quanlist=null,th=this,frozenQuan = null;
- var good = this.data.bn_goods;
- if(good.prom_price){
- th.data.ckeck_quan_price=good.prom_price; //如果有优惠价,就用优惠价
- }else if(good.is_offline){
- th.data.ckeck_quan_price=good.offline_price; //如果有线下取价,就用线下价
- }
- //--如果商家后台没有限制使用优惠券,同时商品的优惠活动没有限制使用优惠券--
- if(th.data.is_close_quan != 1 && th.data.bn_goods.is_xz_yh!=1)
- {
- var url0 = "/api/weshop/users/frozenQuan/listFrozenQuan/" + app.globalData.user_id;
- var url="/api/weshop/couponList/getUseCouponList";
- app.request.promiseGet(url0, {1: 1}).then(res => {
- if (res.data.code == 0) {
- frozenQuan = res.data.data;th.data.frozenQuan=frozenQuan;
- }
- app.request.time_limit_get(6, url, {
- data: {
- storeId: oo.stoid,
- userId: app.globalData.user_id,
- BuySum: th.data.ckeck_quan_price,
- WareIds: encodeURIComponent(th.data.check_quan_ware_list),
- pageSize: 100
- },
- success: function (res) {
- if (res.data.code == 0) {
- quanlist = res.data.data.pageData;
- if (quanlist) {
- quanlist = th.check_is_frozenQuan(quanlist, frozenQuan);
- th.setData({selected_quan_list:quanlist })
- }
- }
- }
- })
- })
- }
- },
-
- //检查区域是不是包邮
- check_area:function(arr){
- var user_addr=this.data.user_addr;
- if(!user_addr) return 0;
- for(var i in arr){
- var item=arr[i];
- if(user_addr.twon==item || user_addr.district==item
- || user_addr.city==item|| user_addr.province==item ){
- return 0;
- }
- }
- return 1;
- },
-
- //检查立即购买的商品是不是不包邮
- check_good:function(arr,goods_id){
- if(!goods_id) goods_id=this.data.bn_goods.goods_id;
- for(var i in arr){
- var item=arr[i];
- if(goods_id==item) return 0;
- }
- return 1;
- },
- check_by_area:function(region_list){
- var arr=region_list.split(",");
- var check=this.check_area(arr);
- return !check;
- },
- check_by_goods:function(goods_list,goods_id){
- var arr=goods_list.split(",");
- var check=this.check_good(arr,goods_id);
- return !check;
- },
- //立即购买获取优惠活动的内容
- buy_now_prom_goods:function (prom_id,arr,func) {
- var price=arr.shop_price*arr.goods_num;
- var prom=null;
- getApp().request.promiseGet("/api/weshop/promgoods/get/"+os.stoid+"/"+prom_id,{}).then(res=>{
- if(res.data.code==0){
- prom=res.data.data;
- return getApp().request.promiseGet("/api/weshop/goods/getDiscount", {
- data: {
- price: price,
- prom_id: prom_id,
- goods_num: arr.goods_num,
- user_id: getApp().globalData.user_id,
- is_bz: prom.is_bz
- }
- })
- }else {
- func(arr);
- }
- }).then(res=>{
- if(res.data.code==0){
- var get_data=res.data.data;
- arr.is_bz=prom.is_bz; //是不是倍增
- arr.is_xz_yh=prom.is_xz_yh; //是不是优惠
- arr.bs=get_data.bs; //是不是倍数
- arr.is_past=get_data.is_past; //是不是包邮
- arr.prom_price=get_data.price>=0?get_data.price:price;
- arr.s_intValue=get_data.intValue;
- arr.s_coupon_id=get_data.coupon_id;
- arr.s_coupon_num=get_data.coupon_num;
- //-- 看是不是有赠品 --
- if(get_data.gift_id) {
- arr.gift_id = get_data.gift_id;
- arr.gift_goods_id = get_data.goods_id;
- arr.gift_goods_name = get_data.goods_name;
- arr.gift_goods_color = get_data.goodsinfo.goods_color;
- arr.gift_goods_spec = get_data.goodsinfo.goods_spec;
- arr.gift_original_img = get_data.goodsinfo.original_img;
- arr.gift_weight = get_data.goodsinfo.weight;
- arr.gift_exp_sum_type = get_data.goodsinfo.exp_sum_type;
- arr.gift_uniform_exp_sum = get_data.goodsinfo.uniform_exp_sum;
- arr.gift_limit_num = get_data.limit_num;
- arr.gift_storecount = get_data.gift_storecount;
- }
- arr.s_libao=get_data.libao;
- arr.s_lb_num=get_data.lb_num;
- arr.prom_id=prom_id;
- }
- func(arr);
- })
- },
- //--检查订单优惠--
- check_is_order_prom:function (condition,func,pick) {
- var th=this;
- if(this.data.is_b_now==1) pick=this.data.bn_pick;
- //---获取订单优惠---
- getApp().request.promiseGet("/api/weshop/promorder/getOrderPromotion",{
- data:{store_id:os.stoid,orderAmount:condition}
- }).then(res=>{
- if(res.data.code==0) {
- var data = res.data.data;
- th.data.order_prom[pick]=data;
- }
- func();
- })
- },
-
- //--- 加入优惠活动的映射中,同时要有一个good列表 ---
- add_prom_goods_map:async function (item) {
- var th=this;
- var pickid=item.pick_id;
- var map=th.data.prom_goods_map;
- var obj=map[pickid];
-
- if(map[pickid]){
- if(map[pickid][item.prom_id]){
- var ob=map[pickid][item.prom_id];
- ob.price+=item.goods_price*item.goods_num;
- ob.goods_num+=item.goods_num;
- ob.goods.push({goods_id:item.goods_id,goods_price:item.goods_price,goods_num:item.goods_num});
-
- }else{
- var prom=null;
- await getApp().request.promiseGet("/api/weshop/promgoods/get/"+os.stoid+"/"+item.prom_id,{}).then(res=>{
- if(res.data.code==0){ prom=res.data.data; }
+ determine_expres: function (e) {
+ this.setData({open_express: 0});
+ if (this.data.is_b_now == 1)
+ this.calculatePrice2();
+ else
+ this.calculatePrice();
+ },
+
+ //点击打开优惠券使用说明
+ clik_coupons: function (e) {
+ var ind = e.currentTarget.dataset.idx;
+ var is_open = this.data.selected_quan_list[ind].is_open;
+
+ if (is_open == 1) is_open = 0;
+ else is_open = 1;
+
+ var txt = "selected_quan_list[" + ind + "].is_open"
+ var obj = {};
+ obj[txt] = is_open;
+
+ this.setData(obj);
+ this.setData({disabled: 1})
+ },
+
+ clik_coupons2: function (e) {
+ var ind = e.currentTarget.dataset.idx;
+ var is_open = this.data.get_by_quan_list[ind].is_open;
+
+ if (is_open == 1) is_open = 0;
+ else is_open = 1;
+
+ var txt = "get_by_quan_list[" + ind + "].is_open"
+ var obj = {};
+ obj[txt] = is_open;
+
+ this.setData(obj);
+ this.setData({disabled: 1})
+ },
+
+
+ //设置默认物流
+ select_default_logistics: function () {
+ var th = this;
+ var is_shipping_code = this.data.is_shipping_code
+ getApp().request.put("/api/weshop/users/update", {
+ data: {user_id: getApp().globalData.user_id, store_id: oo.stoid, def_exp_code: is_shipping_code},
+ success: function (rse) {
+ if (rse.data.code == 0) {
+ getApp().globalData.userInfo.def_exp_code = is_shipping_code;
+ th.setData({open_express: 0});
+ //----计算此时购物车的价格----
+ if (th.data.is_b_now == 1) th.calculatePrice2();
+ else th.calculatePrice();
+ }
+ }
+ })
+ },
+
+ //更新下默认,在onshow里面
+ update_code(){
+ var th = this, m_wind = 0, def_exp_code = getApp().globalData.userInfo.def_exp_code;
+ //--定时器,判断wu_arr不未空--
+ var uii = setInterval(function () {
+ if (th.data.wu_arr) {
+ clearInterval(uii);
+ for (var k = 0; k < th.data.wu_arr.length; k++) {
+ var item = th.data.wu_arr[k];
+ if (def_exp_code == item.code) {
+ m_wind = k;
+ }
+ }
+ //--如果是立即购买--
+ if (th.data.is_b_now == 1) {
+ th.setData({index: m_wind, is_express: m_wind});
+ } else {
+ var ui = setInterval(function () {
+ if (th.data.cartlist) {
+ var c_arr = th.data.cartlist;
+ for (var i in c_arr) {
+ c_arr[i].wind = m_wind;
+ }
+ th.setData({cartlist: c_arr, is_express: m_wind})
+ clearInterval(ui);
+ }
+ }, 500)
+ }
+ }
+ }, 500);
+ },
+ //-----获取购物车进来的劵-------
+ get_cart_quan: async function (order_prom_list_cart) {
+ var th = this;
+ var is_xz_yh = 1;
+ //等待值的出现
+ //getApp().waitfor2(this,"g_cart_q_time","order_prom_list_cart",async function () {
+ //var arr=th.data.order_prom_list_cart;
+ var arr = order_prom_list_cart;
+ if (!arr) arr = [];
+ //如果系统有限制使用优惠券
+ if (th.data.is_close_quan) return false;
+
+ //------------开始计算使用优惠券相关------------
+ for (var ind in arr) {
+ var ep = arr[ind];
+ var goodlist = ep.goods;
+ var pickup_id = ep.pickup_id;
+ //--更优惠券抵用有关,立即购买的,如果是购物车,如果有等级价还有考虑等级价的东西
+ //就要把相应的值,写入cartlist数组中--
+ var ckeck_quan_price = 0,
+ check_quan_price_list = '',
+ check_quan_ware_list = '';
+
+ for (var i in goodlist) {
+ var gd = goodlist[i];
+ //--如果是秒杀就跳出,如果是赠品,如果是组合购,如果是限制使用优惠券--
+ if (gd.prom_type == 1 || gd.is_gift || gd.prom_type == 7) {
+ continue;
+ }
+ //如果有限制使用优惠券,就要返回
+ if (gd.prom_type == 3) {
+ if (th.data.prom_goods_map[pickup_id][gd.prom_id].is_xz_yh) continue;
+ th.data.prom_goods_map[pickup_id][gd.prom_id].coupon_sele = 1;
+ }
+ is_xz_yh = 0;
+ var item_price = gd.goods_price * gd.goods_num;
+ //-- 如果有平摊下去,有实收价格的时候,就要用account来计算价格 --
+ if (gd.account_fir != null && gd.account_fir != undefined) {
+ item_price = gd.account_fir * gd.goods_num;
+ }
+ ckeck_quan_price += item_price;
+
+ //--组装价格list--
+ if (check_quan_price_list) {
+ check_quan_price_list += "," + item_price;
+ } else {
+ check_quan_price_list = item_price;
+ }
+ //--组装商品的线下erpwareid--
+ if (check_quan_ware_list) {
+ check_quan_ware_list += "," + encodeURIComponent(gd['erpwareid']);
+ } else {
+ check_quan_ware_list = encodeURIComponent(gd['erpwareid']);
+ }
+ }
+ //优惠券优惠的金额要控制到优惠券的选择条件
+ var cut_price = 0;
+ for (var i in th.data.prom_goods_map[pickup_id]) {
+ var obj = th.data.prom_goods_map[pickup_id][i];
+ if (obj.coupon_sele) {
+ cut_price += obj.price - obj.prom_price;
+ }
+ }
+
+ arr[ind].ckeck_quan_price = ckeck_quan_price - cut_price;
+ arr[ind].check_quan_ware_list = check_quan_ware_list;
+ arr[ind].check_quan_price_list = check_quan_price_list;
+
+ //是否关闭使用优惠券
+ if (th.data.is_close_quan != 1 && !is_xz_yh) {
+ //--调用接口,获取优惠券的列表,3秒钟内控制接口请求--
+ var url = "/api/weshop/couponList/getUseCouponList";
+ await app.request.promiseGet(url, {
+ data: {
+ storeId: oo.stoid,
+ userId: app.globalData.user_id,
+ BuySum: ckeck_quan_price,
+ WareIds: check_quan_ware_list,
+ pageSize: 100
+ }
+ }).then(res => {
+ if (res.data.code == 0) {
+ var quan_list = res.data.data.pageData;
+ arr[ind].quan_list = th.check_is_frozenQuan(quan_list, th.data.frozenQuan);
+ }
+ })
+ }
+ }
+
+ //如果是搭配购的立即购买的时候
+ if (th.data.is_b_now) {
+ if (arr && arr.length > 0) {
+ var quanlist = arr[0].quan_list;
+ th.setData({selected_quan_list: quanlist, cartlist: arr})
+ }
+ } else {
+ th.setData({cartlist: arr})
+ th.set_can_num();
+ }
+
+ //})
+ },
+
+ //------ 获取立即购买的购物车的劵 --------
+ get_buy_now_quan: function () {
+ var quanlist = null, th = this, frozenQuan = null;
+ var good = this.data.bn_goods;
+ if (good.prom_price) {
+ th.data.ckeck_quan_price = good.prom_price; //如果有优惠价,就用优惠价
+ } else if (good.is_offline) {
+ th.data.ckeck_quan_price = good.offline_price; //如果有线下取价,就用线下价
+ }
+ //--如果商家后台没有限制使用优惠券,同时商品的优惠活动没有限制使用优惠券--
+ if (th.data.is_close_quan != 1 && th.data.bn_goods.is_xz_yh != 1) {
+ var url0 = "/api/weshop/users/frozenQuan/listFrozenQuan/" + app.globalData.user_id;
+ var url = "/api/weshop/couponList/getUseCouponList";
+ app.request.promiseGet(url0, {1: 1}).then(res => {
+ if (res.data.code == 0) {
+ frozenQuan = res.data.data;
+ th.data.frozenQuan = frozenQuan;
+ }
+ app.request.time_limit_get(6, url, {
+ data: {
+ storeId: oo.stoid,
+ userId: app.globalData.user_id,
+ BuySum: th.data.ckeck_quan_price,
+ WareIds: encodeURIComponent(th.data.check_quan_ware_list),
+ pageSize: 100
+ },
+ success: function (res) {
+ if (res.data.code == 0) {
+ quanlist = res.data.data.pageData;
+ if (quanlist) {
+ quanlist = th.check_is_frozenQuan(quanlist, frozenQuan);
+ th.setData({selected_quan_list: quanlist})
+ }
+ }
+ }
})
- var ob={};
- ob.prom_id=item.prom_id;
- ob.price=item.goods_price*item.goods_num;
- ob.goods_num=item.goods_num;
- ob.is_bz=prom.is_bz;
- ob.is_xz_yh=prom.is_xz_yh;
- ob.goods=new Array();
- ob.goods.push({goods_id:item.goods_id,goods_price:item.goods_price,goods_num:item.goods_num});
- map[pickid][item.prom_id]=ob;
- }
- }else{
- var ob={};
- var prom=null;
- await getApp().request.promiseGet("/api/weshop/promgoods/get/"+os.stoid+"/"+item.prom_id,{}).then(res=>{
- if(res.data.code==0){ prom=res.data.data; }
})
- ob.prom_id=item.prom_id;
- ob.price=item.goods_price*item.goods_num;
- ob.goods_num=item.goods_num;
- ob.is_bz=prom.is_bz;
- ob.is_xz_yh=prom.is_xz_yh;
- ob.goods=new Array();
- ob.goods.push({goods_id:item.goods_id,goods_price:item.goods_price,goods_num:item.goods_num});
+ }
+ },
+
+ //检查区域是不是包邮
+ check_area: function (arr) {
+ var user_addr = this.data.user_addr;
+ if (!user_addr) return 0;
+ for (var i in arr) {
+ var item = arr[i];
+ if (user_addr.twon == item || user_addr.district == item
+ || user_addr.city == item || user_addr.province == item) {
+ return 0;
+ }
+ }
+ return 1;
+ },
+
+ //检查立即购买的商品是不是不包邮
+ check_good: function (arr, goods_id) {
+ if (!goods_id) goods_id = this.data.bn_goods.goods_id;
+ for (var i in arr) {
+ var item = arr[i];
+ if (goods_id == item) return 0;
+ }
+ return 1;
+ },
+ check_by_area: function (region_list) {
+ var arr = region_list.split(",");
+ var check = this.check_area(arr);
+ return !check;
+ },
+ check_by_goods: function (goods_list, goods_id) {
+ var arr = goods_list.split(",");
+ var check = this.check_good(arr, goods_id);
+ return !check;
+ },
+ //立即购买获取优惠活动的内容
+ buy_now_prom_goods: function (prom_id, arr, func) {
+ var price = arr.shop_price * arr.goods_num;
+ var prom = null;
+ getApp().request.promiseGet("/api/weshop/promgoods/get/" + os.stoid + "/" + prom_id, {}).then(res => {
+ if (res.data.code == 0) {
+ prom = res.data.data;
+ return getApp().request.promiseGet("/api/weshop/goods/getDiscount", {
+ data: {
+ price: price,
+ prom_id: prom_id,
+ goods_num: arr.goods_num,
+ user_id: getApp().globalData.user_id,
+ is_bz: prom.is_bz
+ }
+ })
+ } else {
+ func(arr);
+ }
+ }).then(res => {
+ if (res.data.code == 0) {
+ var get_data = res.data.data;
+ arr.is_bz = prom.is_bz; //是不是倍增
+ arr.is_xz_yh = prom.is_xz_yh; //是不是优惠
+ arr.bs = get_data.bs; //是不是倍数
+ arr.is_past = get_data.is_past; //是不是包邮
+ arr.prom_price = get_data.price >= 0 ? get_data.price : price;
+ arr.s_intValue = get_data.intValue;
+ arr.s_coupon_id = get_data.coupon_id;
+ arr.s_coupon_num = get_data.coupon_num;
+ //-- 看是不是有赠品 --
+ if (get_data.gift_id) {
+ arr.gift_id = get_data.gift_id;
+ arr.gift_goods_id = get_data.goods_id;
+ arr.gift_goods_name = get_data.goods_name;
+ arr.gift_goods_color = get_data.goodsinfo.goods_color;
+ arr.gift_goods_spec = get_data.goodsinfo.goods_spec;
+ arr.gift_original_img = get_data.goodsinfo.original_img;
+ arr.gift_weight = get_data.goodsinfo.weight;
+ arr.gift_exp_sum_type = get_data.goodsinfo.exp_sum_type;
+ arr.gift_uniform_exp_sum = get_data.goodsinfo.uniform_exp_sum;
+ arr.gift_limit_num = get_data.limit_num;
+ arr.gift_storecount = get_data.gift_storecount;
+ }
+ arr.s_libao = get_data.libao;
+ arr.s_lb_num = get_data.lb_num;
+ arr.prom_id = prom_id;
+ }
+ func(arr);
+ })
+ },
+ //--检查订单优惠--
+ check_is_order_prom: function (condition, func, pick) {
+ var th = this;
+ if (this.data.is_b_now == 1) pick = this.data.bn_pick;
+ //---获取订单优惠---
+ getApp().request.promiseGet("/api/weshop/promorder/getOrderPromotion", {
+ data: {store_id: os.stoid, orderAmount: condition}
+ }).then(res => {
+ if (res.data.code == 0) {
+ var data = res.data.data;
+ th.data.order_prom[pick] = data;
+ }
+ func();
+ })
+ },
+
+ //--- 加入优惠活动的映射中,同时要有一个good列表 ---
+ add_prom_goods_map: async function (item) {
+ var th = this;
+ var pickid = item.pick_id;
+ var map = th.data.prom_goods_map;
+ var obj = map[pickid];
+
+ if (map[pickid]) {
+ if (map[pickid][item.prom_id]) {
+ var ob = map[pickid][item.prom_id];
+ ob.price += item.goods_price * item.goods_num;
+ ob.goods_num += item.goods_num;
+ ob.goods.push({goods_id: item.goods_id, goods_price: item.goods_price, goods_num: item.goods_num});
- var obj={};
- obj[item.prom_id]=ob;
- map[pickid]=obj;
+ } else {
+ var prom = null;
+ await getApp().request.promiseGet("/api/weshop/promgoods/get/" + os.stoid + "/" + item.prom_id, {}).then(res => {
+ if (res.data.code == 0) {
+ prom = res.data.data;
+ }
+ })
+ var ob = {};
+ ob.prom_id = item.prom_id;
+ ob.price = item.goods_price * item.goods_num;
+ ob.goods_num = item.goods_num;
+ ob.is_bz = prom.is_bz;
+ ob.is_xz_yh = prom.is_xz_yh;
+ ob.goods = new Array();
+ ob.goods.push({goods_id: item.goods_id, goods_price: item.goods_price, goods_num: item.goods_num});
+ map[pickid][item.prom_id] = ob;
+ }
+ } else {
+ var ob = {};
+ var prom = null;
+ await getApp().request.promiseGet("/api/weshop/promgoods/get/" + os.stoid + "/" + item.prom_id, {}).then(res => {
+ if (res.data.code == 0) {
+ prom = res.data.data;
+ }
+ })
+ ob.prom_id = item.prom_id;
+ ob.price = item.goods_price * item.goods_num;
+ ob.goods_num = item.goods_num;
+ ob.is_bz = prom.is_bz;
+ ob.is_xz_yh = prom.is_xz_yh;
+ ob.goods = new Array();
+ ob.goods.push({goods_id: item.goods_id, goods_price: item.goods_price, goods_num: item.goods_num});
+
+ var obj = {};
+ obj[item.prom_id] = ob;
+ map[pickid] = obj;
}
},
- //计算立即购买赠品的物流费用
- get_now_gift_goods_wuliu:function (code, o_shipping_price, user_addr, gift_freight_free,allpice, rs,shipping_price,no_by_data,goods_weight1,goods_piece1) {
- var good=this.data.buy_now_gift_goods;
- var goods_weight=-1, goods_piece=-1;
- var gift_shipping_price=0;
- var th=this;
+ //计算立即购买赠品的物流费用
+ get_now_gift_goods_wuliu: function (code, o_shipping_price, user_addr, gift_freight_free, allpice, rs, shipping_price, no_by_data, goods_weight1, goods_piece1) {
+ var good = this.data.buy_now_gift_goods;
+ var goods_weight = -1, goods_piece = -1;
+ var gift_shipping_price = 0;
+ var th = this;
switch (good['exp_sum_type']) {
case 1:
//统一运费
- gift_shipping_price += good['uniform_exp_sum'];
- gift_shipping_price+=o_shipping_price;
- break;
+ gift_shipping_price += good['uniform_exp_sum'];
+ gift_shipping_price += o_shipping_price;
+ break;
case 2:
if (goods_weight < 0) goods_weight = 0;
//累积商品重量 每种商品的重量 * 数量
goods_weight += good['weight'] * good['buynum'];
- if(goods_weight1>0){
- goods_weight+=goods_weight1;
- }
- break;
+ if (goods_weight1 > 0) {
+ goods_weight += goods_weight1;
+ }
+ break;
case 3:
if (goods_piece < 0) goods_piece = 0;
//累积商品数量
- goods_piece += good['buynum'];
- if(goods_piece1){
- goods_piece+=goods_piece1;
- }
- break;
- }
-
-
+ goods_piece += good['buynum'];
+ if (goods_piece1) {
+ goods_piece += goods_piece1;
+ }
+ break;
+ }
+
+
//如果有设置不包邮区域的时候
- if(no_by_data && no_by_data.region_list){
- if(th.check_by_area(no_by_data.region_list)){
- gift_freight_free=0;
- th.data.is_no_by[th.data.bn_pick]=1;
+ if (no_by_data && no_by_data.region_list) {
+ if (th.check_by_area(no_by_data.region_list)) {
+ gift_freight_free = 0;
+ th.data.is_no_by[th.data.bn_pick] = 1;
}
}
//如果有设置不包邮商品
- if(no_by_data && no_by_data.goods_list && gift_freight_free){
- if(th.check_by_goods(no_by_data.goods_list,good.goods_id)){
- gift_freight_free=0;
+ if (no_by_data && no_by_data.goods_list && gift_freight_free) {
+ if (th.check_by_goods(no_by_data.goods_list, good.goods_id)) {
+ gift_freight_free = 0;
//th.data.is_no_by[th.data.bn_pick]=1;
}
}
-
- var t_shipping_price=
+
+ var t_shipping_price =
this.calculatewuliu(code, gift_shipping_price, goods_weight,
goods_piece, user_addr, gift_freight_free, allpice, rs);
return t_shipping_price;
},
- //从优惠的映射中拿出商品从表的item
- item_map_get_goods:function(goods_id,map){
- for(var i in map.goods){
- if(map.goods[i].goods_id==goods_id) return map.goods[i];
+ //从优惠的映射中拿出商品从表的item
+ item_map_get_goods: function (goods_id, map) {
+ for (var i in map.goods) {
+ if (map.goods[i].goods_id == goods_id) return map.goods[i];
}
},
//从优惠的映射中拿出商品从表的item
- arr_get_goods:function(goods_id,arr){
- for(var i in arr){
- if(arr[i].goods_id==goods_id) return arr[i];
+ arr_get_goods: function (goods_id, arr) {
+ for (var i in arr) {
+ if (arr[i].goods_id == goods_id) return arr[i];
}
},
-
+
//检查是不是有其他门店的订单在选择了券
- check_other_use:function (iter,pkid) {
- var using=this.data.using_quan;
- var is_use=0;
- if(using){
- for(var i in using){
- if(i==pkid) continue;
- if(iter.CashRepNo==using[i].coupon_no){
- is_use=1; break;
+ check_other_use: function (iter, pkid) {
+ var using = this.data.using_quan;
+ var is_use = 0;
+ if (using) {
+ for (var i in using) {
+ if (i == pkid) continue;
+ if (iter.CashRepNo == using[i].coupon_no) {
+ is_use = 1;
+ break;
}
}
}
return is_use;
},
//检查是不是有其他门店的订单在选择了包邮券
- check_other_use_by:function (iter,pkid) {
- var using=this.data.using_quan;
- var is_use=0;
- if(using){
- for(var i in using){
- if(i==pkid) continue;
- if(iter.no==using[i].coupon_no){
- is_use=1; break;
+ check_other_use_by: function (iter, pkid) {
+ var using = this.data.using_quan;
+ var is_use = 0;
+ if (using) {
+ for (var i in using) {
+ if (i == pkid) continue;
+ if (iter.no == using[i].coupon_no) {
+ is_use = 1;
+ break;
}
}
}
return is_use;
},
-
- //跳转到购买卡
- buycard:function(){
- getApp().goto("/pages/user/plus/plus");
- getApp().globalData.plus_buy_back=1;
- },
+
+ //跳转到购买卡
+ buycard: function () {
+ getApp().goto("/pages/user/plus/plus");
+ getApp().globalData.plus_buy_back = 1;
+ },
//跳转关闭弹出框的显示
- close_offline:function(){
- this.setData({is_offline_show:0});
- },
-
- //立即购买显示弹出框
- bn_pop_offline:function(){
- var off_price=this.data.bn_goods.shop_price-this.data.bn_goods.offline_price;
- //是不是线下
- var is_get_offline=this.data.bn_goods.is_offline;
- this.setData({is_offline_show:1,show_off_price:off_price.toFixed(2),is_get_offline:is_get_offline});
- },
-
- //确定使用线下取价
- sure_offline:function(){
- var bn_goods=this.data.bn_goods;
- if(bn_goods && bn_goods.prom_type==0){
- bn_goods.is_offline=1;
- this.setData({is_offline_show:0,bn_goods:bn_goods});
- this.calculatePrice2();
- }
- //就是购物车结算时的
- else{
- var index=this.data.pop_offline_index;
- var txt="cartlist["+index+"].is_offline";
- this.setData({[txt]:1,is_offline_show:0,});
- this.data.old_cartlist[index].is_offline=1;
- this.calculatePrice();
- }
- },
-
-
- //取消使用线下取价
- cancle_offline:function(){
- //判断是不是立即购买
- var bn_goods=this.data.bn_goods;
- if(bn_goods && bn_goods.prom_type==0){
- bn_goods.is_offline=0;
- this.setData({is_offline_show:0,bn_goods:bn_goods});
- this.calculatePrice2();
- }
- //就是购物车结算时的
- else{
- var index=this.data.pop_offline_index;
- var txt="cartlist["+index+"].is_offline";
- this.setData({[txt]:0,is_offline_show:0,})
- this.data.old_cartlist[index].is_offline=0;
+ close_offline: function () {
+ this.setData({is_offline_show: 0});
+ },
+
+ //立即购买显示弹出框
+ bn_pop_offline: function () {
+ var off_price = this.data.bn_goods.shop_price - this.data.bn_goods.offline_price;
+ //是不是线下
+ var is_get_offline = this.data.bn_goods.is_offline;
+ this.setData({is_offline_show: 1, show_off_price: off_price.toFixed(2), is_get_offline: is_get_offline});
+ },
+
+ //确定使用线下取价
+ sure_offline: function () {
+ var bn_goods = this.data.bn_goods;
+ if (bn_goods && bn_goods.prom_type == 0) {
+ bn_goods.is_offline = 1;
+ this.setData({is_offline_show: 0, bn_goods: bn_goods});
+ this.calculatePrice2();
+ }
+ //就是购物车结算时的
+ else {
+ var index = this.data.pop_offline_index;
+ var txt = "cartlist[" + index + "].is_offline";
+ this.setData({[txt]: 1, is_offline_show: 0,});
+ this.data.old_cartlist[index].is_offline = 1;
+ this.calculatePrice();
+ }
+ },
+
+
+ //取消使用线下取价
+ cancle_offline: function () {
+ //判断是不是立即购买
+ var bn_goods = this.data.bn_goods;
+ if (bn_goods && bn_goods.prom_type == 0) {
+ bn_goods.is_offline = 0;
+ this.setData({is_offline_show: 0, bn_goods: bn_goods});
+ this.calculatePrice2();
+ }
+ //就是购物车结算时的
+ else {
+ var index = this.data.pop_offline_index;
+ var txt = "cartlist[" + index + "].is_offline";
+ this.setData({[txt]: 0, is_offline_show: 0,})
+ this.data.old_cartlist[index].is_offline = 0;
this.calculatePrice();
- }
- },
+ }
+ },
//-- 弹出购物车选择是不是要店铺优惠 --
- cart_pop_offline:function (e){
- var index=e.currentTarget.dataset.index;
- var item=this.data.cartlist[index];
- var off_price=item.offline_price;
+ cart_pop_offline: function (e) {
+ var index = e.currentTarget.dataset.index;
+ var item = this.data.cartlist[index];
+ var off_price = item.offline_price;
//是不是线下
- var is_get_offline=item.is_offline;
- this.setData({pop_offline_index:index,is_offline_show:1,show_off_price:off_price.toFixed(2),is_get_offline:is_get_offline});
+ var is_get_offline = item.is_offline;
+ this.setData({
+ pop_offline_index: index,
+ is_offline_show: 1,
+ show_off_price: off_price.toFixed(2),
+ is_get_offline: is_get_offline
+ });
},
-
-
-
});
diff --git a/pages/cart/cart2/cart2.wxml b/pages/cart/cart2/cart2.wxml
index f3dd606..cc11c39 100644
--- a/pages/cart/cart2/cart2.wxml
+++ b/pages/cart/cart2/cart2.wxml
@@ -427,6 +427,12 @@
优惠活动
- ¥ {{filters.toFix(formData.cut_price,2)}}元
+
+
+ 优惠活动
+ - ¥ {{filters.toFix(formData.zh_cut_price,2)}}元
+
+
订单优惠
diff --git a/pages/cart/cart2/zh_calculate.js b/pages/cart/cart2/zh_calculate.js
new file mode 100644
index 0000000..4824f9a
--- /dev/null
+++ b/pages/cart/cart2/zh_calculate.js
@@ -0,0 +1,320 @@
+var regeneratorRuntime = require('../../../utils/runtime.js');
+module.exports = {
+ //主要的作用,就是把组合购多余的商品进行拆分,
+ //如果没有达成组合购的要求,所有的商品都打回原价购买
+ fir_set_arr: function (c_item) {
+ //组合活动,以及组合活动从表的商品
+ let zh_prom_goods = c_item.zh_prom_goods;
+ let goods = c_item.goods; //一个门店中所有的商品
+ let tfeel = 0,cut_price=0, offline_price = 0, offline_num = 0;
+ let txt_ite = c_item.need_list;
+ //多个活动要拿来循环一下
+ for (let i in zh_prom_goods) {
+ let title = ""; //提示语;
+ //其中的一个活动
+ let act_item = zh_prom_goods[i];
+ let act_goos = act_item.gdlist;
+ let act = act_item.act;
+
+ let all_num = 0; //商品数量之和
+ let all_price0 = 0; //商品数量之和
+ let aprice=0; //达到活动条件的购买价格
+ let need_to_buy = 0;
+ let all_zhqty = 0; //所有商品要求起购数之和
+ let no_in_arr = []; //剩余的未加入组合购
+
+ for (let j in act_goos) {
+ let item_j = goods.find(function (ele) {
+ return ele.goods_id == act_goos[j].goods_id;
+ })
+ if(!item_j) continue;
+ act_goos[j].num = item_j.goods_num;
+ act_goos[j].goods_price = item_j.goods_price;
+ let item = act_goos[j];
+ if (item.num) {
+ all_num += item.num;
+ //当有起购数的控制的时候
+ if (item.zhqty) {
+ all_zhqty += item.zhqty;
+ if (item.num < item.zhqty) {
+ need_to_buy += item.zhqty - item.num;
+ }
+ if (item.num > item.zhqty) {
+ for (let i = 0; i < item.num - item.zhqty; i++) {
+ no_in_arr.push({
+ price: item.goods_price, goods_id: item.goods_id, offline_price: item.offline_price
+ })
+ }
+ }
+ } else {
+ for (let j = 0; j < item.num; j++) {
+ no_in_arr.push({
+ price: item.goods_price, goods_id: item.goods_id, offline_price: item.offline_price
+ })
+ }
+ }
+ } else {
+ if (item.zhqty) {
+ title = "必买商品未加购,下单立享【" + act.zhprice + "元任选" + act.zhbuyqty + "件】";
+ need_to_buy += item.zhqty;
+ }
+ }
+
+ }
+
+ //当满足组合的要求:总数要满足,起购数要满足
+ if (all_num >= act.zhbuyqty && !need_to_buy) {
+ function sortData(a, b) {
+ return a.price - b.price
+ }
+ no_in_arr.sort(sortData);
+ aprice = act.zhprice;
+ if (act.zhbuyqty > all_zhqty) {
+ for (let n = 0; n < act.zhbuyqty; n++) {
+ no_in_arr.pop();
+ }
+ }
+ //看一下剩下的数量有没有满足组合购的要求,以及要不要倍增
+ if (act.is_bz && no_in_arr.length > act.zhbuyqty) {
+ //看一下是几倍
+ let be = parseInt(no_in_arr / act.zhbuyqty);
+ aprice += be * act.zhprice;
+ for (let m = 0; m < be * act.zhbuyqty; m++) {
+ no_in_arr.pop();
+ }
+ }
+
+ //算一下剩余的商品
+ if (no_in_arr.length) {
+ let goods_map = {};
+ for (let ii in no_in_arr) {
+ let item = no_in_arr[ii];
+ if (item.offline_price) {
+ offline_price += item.goods_price - item.offline_price;
+ offline_num += 1;
+ }
+ if (goods_map[item.goods_id]) {
+ var num = goods_map[item.goods_id];
+ goods_map[item.goods_id] = ++num;
+ } else {
+ goods_map[item.goods_id] = 1;
+ }
+ }
+ //这里就开始拆分提交订单时的列表
+ for (let j in goods_map) {
+ //map中存的就是商品的数量
+ let num = goods_map[j];
+ //找到相应的商品
+ let idx = goods.findIndex(function (ele) {
+ return ele.goods_id == j;
+ })
+ goods[idx].goods_num -= num;
+ let new_g = JSON.parse(JSON.stringify(goods[idx]));
+ new_g.goods_num = num;
+ new_g.prom_type = 0;
+ new_g.prom_id = 0;
+ goods.push(new_g);
+ }
+ }
+ //-- 只统计是参与活动的商品 --
+ for(var ij in goods){
+ var iter=goods[ij];
+ if(iter.prom_type!=7 || iter.prom_id!=act.id){ continue; }
+ all_price0+=iter.goods_num*iter.goods_price;
+ }
+ //-- 活动的条件已经满足 --
+ c_item.zh_prom_goods[act.id].is_has_zh = 1;
+ c_item.is_has_zh = 1;
+ c_item.zh_prom_goods[act.id].actual_price = aprice;
+ c_item.zh_prom_goods[act.id].cut_price =all_price0-aprice;
+
+ //-- 设置还需要购买多少件,享受活动,前段显示 --
+ let need_to = c_item.need_list;
+ let index = this.find_need_to(need_to, act);
+ if (index > -1) {
+ need_to.splice(index, 1);
+ txt_ite = need_to
+ }
+
+
+ } else {
+ for (let ii in goods) {
+ let item = goods[ii];
+ if (item.prom_type != 7) continue;
+ if (item.prom_id != act.id) continue;
+ if (item.offline_price) {
+ offline_price += item.goods_price - item.offline_price;
+ offline_num += 1;
+ }
+ item.prom_type = 0;
+ item.prom_id = 0;
+ }
+ if (act.zhbuyqty - all_num > need_to_buy) {
+ need_to_buy = act.zhbuyqty - all_num;
+ }
+ //-- 设置还需要购买多少件享受活动,前端显示 --
+ let need_to = c_item.need_list;
+ let index = this.find_need_to(need_to, act);
+ if (title == '') title = "再买" + need_to_buy + "件,下单立享【" + act.zhprice + "元任选" + act.zhbuyqty + "件】";
+ if (index != -1) {
+ need_to[index].title = title;
+ } else {
+ if (!need_to) need_to = [];
+ let it = {
+ id: act.id,
+ pickup_id: c_item.pickup_id,
+ title: title
+ };
+ need_to.push(it);
+ }
+ txt_ite = need_to;
+ }
+ tfeel += aprice;
+ cut_price+=all_price0-aprice;;
+ }
+
+ c_item.zh_all_price = tfeel;
+ c_item.zh_cut_price = cut_price;
+
+ if (c_item.is_offline == 1) {
+ c_item.offline_price += offline_price;
+ c_item.offline_num += offline_num;
+ } else {
+ c_item.is_offline == 1;
+ c_item.offline_price = offline_price;
+ c_item.offline_num = offline_num;
+ }
+
+ },
+ //筛选组合购,纯粹的数组按活动id分组
+ find_split: function (arr) {
+ //过滤只有团购的商品
+ let oarr = arr.goods.filter(function (ele) {
+ return ele.prom_type == 7
+ })
+ if (!oarr || oarr.length == 0) return null;
+ //看一下有多少个不同的团购
+ let map = {},
+ dest = [];
+ for (let i = 0; i < oarr.length; i++) {
+ let ai = oarr[i];
+ let index = map[ai.prom_id]
+ if (!index) {
+ dest.push({
+ prom_id: ai.prom_id,
+ act: ai.act,
+ data: [ai]
+ });
+ map[ai.prom_id] = dest.length; //存储下标
+ } else {
+ let dj = dest[index - 1];
+ dj.data.push(ai);
+ }
+ }
+ return dest;
+ },
+
+ find_need_to: function (list, iter) {
+ if (!list || list.length <= 0) return -1;
+ for (var i in list) {
+ var item = list[i];
+ if (item.id == iter.id) {
+ return i;
+ }
+ }
+ return -1;
+ },
+ //-- 平摊组合购的价格 --
+ calc_zh_split_price: async function (c_arr, th) {
+ //-- 循环处理 --
+ for (var k in c_arr) {
+ var cart_item = c_arr[k]; //就是每一单的意思
+ var ord_goods = c_arr[k].goods; //就是每一单的从表的意思
+
+ var zh_prom_goods = cart_item.zh_prom_goods; //一单中所有的组合购的集合
+ var item_map = {};
+ for (let i in zh_prom_goods) {
+ let item = zh_prom_goods[i];
+ let prom_id = i;
+ //如果这个活动还没有达到要求,继续下一个计算
+ if (!item.is_has_zh) continue;
+ //过滤出相应组合购活动的商品
+ let glist = ord_goods.filter(function (ele) {
+ return ele.prom_type == 7 && ele.prom_id == i;
+ })
+ var all_good_price = 0;
+ var post_gd=[];
+ for (let j in glist) {
+ let item = glist[j];
+ all_good_price += item.goods_price * item.goods_num;
+ var gitem={
+ goods_id:item.goods_id,
+ goods_num:item.goods_num,
+ goods_price:item.goods_price
+ }
+ post_gd.push(gitem);
+ }
+ //要进行优惠的计算
+ if (all_good_price - item.actual_price) {
+ if (cart_item.prom_pt_json) {
+ cart_item.prom_pt_json.push({
+ "zhprom_id": prom_id,
+ "dis": (all_good_price - item.actual_price).toFixed(2),
+ "ispt": 0
+ })
+ } else {
+ cart_item.prom_pt_json = [{
+ "zhprom_id": prom_id,
+ "dis": (all_good_price - item.actual_price).toFixed(2),
+ "ispt": 0
+ }];
+ }
+ }
+
+ //-- 如果系统要平摊到单品 --
+ var pt_data = {
+ 'prom_id': prom_id,
+ 'dis': parseFloat(all_good_price - item.actual_price).toFixed(2),
+ 'goods': post_gd
+ }
+ var pt_res = null;
+ await getApp().request.promisePost("/api/weshop/order/getGoodsSplit", {
+ is_json: 1,
+ data: pt_data
+ }).then(res => {
+ if (res.data.code == 0) {
+ pt_res = res.data.data;
+ }
+ })
+ if (pt_res) {
+ for (var io in glist) {
+ var goods_id = glist[io].goods_id;
+ item_map[goods_id]={};
+ //平摊赋值
+ item_map[goods_id].account_fir = th.arr_get_goods(goods_id, pt_res).fisrt_account;
+ item_map[goods_id].account_yu_fir = th.arr_get_goods(goods_id, pt_res).fisrt_account_yu;
+ if (!th.data.ispt_goods) {
+ item_map[goods_id].account = item_map[goods_id].account_fir;
+ item_map[goods_id].account_yu = item_map[goods_id].account_yu_fir;
+ }
+ }
+ }
+ }
+
+ //--------循环计算商品是不是包邮,是不是使用优惠券,此时循环是商品从表-----------
+ for (var jj = 0; jj < ord_goods.length; jj++) {
+ if (ord_goods[jj].is_gift) continue;
+ if (ord_goods[jj].prom_type == 7 && item_map[ord_goods[jj].goods_id]) {
+ ord_goods[jj].account_fir = item_map[ord_goods[jj].goods_id].account_fir;
+ ord_goods[jj].account_yu_fir = item_map[ord_goods[jj].goods_id].account_yu_fir;
+ ord_goods[jj].account = item_map[ord_goods[jj].goods_id].account;
+ ord_goods[jj].account_yu = item_map[ord_goods[jj].goods_id].account_yu;
+ }
+ }
+ }
+
+
+ }
+
+
+}
diff --git a/pages/goods/goodsInfo/goodsInfo.js b/pages/goods/goodsInfo/goodsInfo.js
index fdc243a..996dfb2 100644
--- a/pages/goods/goodsInfo/goodsInfo.js
+++ b/pages/goods/goodsInfo/goodsInfo.js
@@ -776,7 +776,28 @@ Page({
//动态获取商品名称
wx.setNavigationBarTitle({
title: t.data.data.goods_name,
- })
+ });
+
+ //-- 判断是不是组合购活动,必须要登录后才能判断 --
+ if(getApp().globalData.userInfo && t.data.data.prom_type==7 ){
+ //获取活动信息
+ var url = "/api/weshop/prom/zhbuy/get/" + os.stoid + "/" +
+ t.data.data.prom_id+"/"+getApp().globalData.userInfo.user_id;
+ getApp().request.get(url, {
+ success:function (e) {
+ if (e.data.code == 0 && e.data.data) {
+ if(ut.gettimestamp()
+
+
+
促销
-
- 消费满{{item.condition}}件元
-
- 减价{{item.money}}元;
- 打{{item.sale}}折;
- 包邮;
- 送{{tem.intValue}}积分;
- 送{{item.couponMoney}}元优惠券;
- 送商品{{item.goods_name}};
- 送{{item.lbtitle}};
-
-
+
+ 消费满{{item.condition}}件元
+
+ 减价{{item.money}}元;
+ 打{{item.sale}}折;
+ 包邮;
+ 送{{tem.intValue}}积分;
+ 送{{item.couponMoney}}元优惠券;
+ 送商品{{item.goods_name}};
+ 送{{item.lbtitle}};
+
+
@@ -507,6 +510,25 @@
+
+
+
+ 组合购
+
+
+
+
+
+ {{order_prom.name}}
+ (活动时间:{{tool.format_tt(zh_act.start_time)}} - {{tool.format_tt(zh_act.end_time)}})
+
+
+
+
+
+
+
+