Commit 4ef8f9cc294bd6379b905453ca94e3a1ba4d7a7d
1 parent
316ca131
组合购~~
Showing
13 changed files
with
4750 additions
and
3589 deletions
packageB/components/catch/catch.js
| @@ -10,9 +10,7 @@ Component({ | @@ -10,9 +10,7 @@ Component({ | ||
| 10 | object:null, | 10 | object:null, |
| 11 | index:0, | 11 | index:0, |
| 12 | is_fw:0, | 12 | is_fw:0, |
| 13 | - | ||
| 14 | - barcode_canvas:null, | ||
| 15 | - qrcode_canvas:null, | 13 | + |
| 16 | }, | 14 | }, |
| 17 | properties: { | 15 | properties: { |
| 18 | // 这里定义了innerText属性,属性值可以在组件使用时指定 | 16 | // 这里定义了innerText属性,属性值可以在组件使用时指定 |
| @@ -21,23 +19,10 @@ Component({ | @@ -21,23 +19,10 @@ Component({ | ||
| 21 | }, | 19 | }, |
| 22 | 20 | ||
| 23 | methods: { | 21 | methods: { |
| 24 | - //关闭 | ||
| 25 | - close: function (e) { | ||
| 26 | - this.setData({q_show: 0,barcode_canvas:null,qrcode_canvas:null }); | ||
| 27 | - this.triggerEvent('close',{},{bubbles: true}); | ||
| 28 | - }, | ||
| 29 | - | ||
| 30 | - //打开 | ||
| 31 | - open:function (e) { | ||
| 32 | - this.data.index++; | ||
| 33 | - var list=[{index:this.data.index }]; | ||
| 34 | - | ||
| 35 | - this.setData({q_show: 1,object:e,barcode_canvas:list,qrcode_canvas:list,is_fw:e.is_fw }); | ||
| 36 | - var val=e.val; | ||
| 37 | - | ||
| 38 | - // barcode('barcode'+this.data.index,val, 620, 160,this); | ||
| 39 | - qrcode('qrcode'+this.data.index, val, 520, 520,this); | ||
| 40 | - } | 22 | + go_url:function (e) { |
| 23 | + var url=e.currentTarget.dataset.url; | ||
| 24 | + getApp().goto(url); | ||
| 25 | + } | ||
| 41 | }, | 26 | }, |
| 42 | 27 | ||
| 43 | 28 |
packageB/components/catch/catch.wxml
| @@ -4,7 +4,7 @@ | @@ -4,7 +4,7 @@ | ||
| 4 | <text class="t-icon t-icon-gowudai mgb20"></text> | 4 | <text class="t-icon t-icon-gowudai mgb20"></text> |
| 5 | <view class="fs28"><slot></slot></view> | 5 | <view class="fs28"><slot></slot></view> |
| 6 | </view> | 6 | </view> |
| 7 | - <view class="mgt60"> | 7 | + <view class="mgt60" bindtap="go_url" data-url="/pages/index/index/index"> |
| 8 | <text class="btn">进店逛逛</text> | 8 | <text class="btn">进店逛逛</text> |
| 9 | </view> | 9 | </view> |
| 10 | </view> | 10 | </view> |
packageB/pages/zuhegou/index/index.js
| @@ -125,27 +125,12 @@ Page({ | @@ -125,27 +125,12 @@ Page({ | ||
| 125 | onLoad: function (options) { | 125 | onLoad: function (options) { |
| 126 | self = this; | 126 | self = this; |
| 127 | this.data.id = options.id; | 127 | this.data.id = options.id; |
| 128 | - | ||
| 129 | - //获取活动信息 | ||
| 130 | - var url = "/api/weshop/prom/zhbuy/get/" + os.stoid + "/" + options.id; | ||
| 131 | - getApp().request.get(url, { | ||
| 132 | - success: function (e) { | ||
| 133 | - if (e.data.code == 0 && e.data.data) { | ||
| 134 | - self.setData({act: e.data.data}); | ||
| 135 | - if (e.data.data.is_end == 0) { | ||
| 136 | - //-- 获取商品列表 -- | ||
| 137 | - self.get_list(); | ||
| 138 | - self.countDown(); | ||
| 139 | - } | ||
| 140 | - } else { | ||
| 141 | - wx.showToast({ | ||
| 142 | - title: e.data.msg, | ||
| 143 | - icon: 'none', | ||
| 144 | - duration: 2000 | ||
| 145 | - }) | ||
| 146 | - } | ||
| 147 | - } | ||
| 148 | - }); | 128 | + //如果有会员的时候 |
| 129 | + var userInfo = getApp().globalData.userInfo; | ||
| 130 | + if(!userInfo){ | ||
| 131 | + getApp().goto("/pages/togoin/togoin"); | ||
| 132 | + return false; | ||
| 133 | + } | ||
| 149 | }, | 134 | }, |
| 150 | 135 | ||
| 151 | /** | 136 | /** |
| @@ -158,8 +143,50 @@ Page({ | @@ -158,8 +143,50 @@ Page({ | ||
| 158 | //如果有会员的时候 | 143 | //如果有会员的时候 |
| 159 | var userInfo = getApp().globalData.userInfo; | 144 | var userInfo = getApp().globalData.userInfo; |
| 160 | if (userInfo) { | 145 | if (userInfo) { |
| 146 | + if(!th.data.is_get_act){ | ||
| 147 | + //获取活动信息 | ||
| 148 | + var url = "/api/weshop/prom/zhbuy/get/" + os.stoid + "/" + th.data.id+"/"+userInfo.user_id; | ||
| 149 | + getApp().request.get(url, { | ||
| 150 | + success: function (e) { | ||
| 151 | + th.data.is_get_act=1; | ||
| 152 | + if (e.data.code == 0 && e.data.data) { | ||
| 153 | + self.setData({act: e.data.data}); | ||
| 154 | + if(e.data.data.is_show!=1){ | ||
| 155 | + th.setData({error:'活动未开启'}); | ||
| 156 | + return false; | ||
| 157 | + } | ||
| 158 | + | ||
| 159 | + if(ut.gettimestamp()<e.data.data.start_time){ | ||
| 160 | + th.setData({error:'活动还未开始'}); | ||
| 161 | + return false; | ||
| 162 | + } | ||
| 163 | + if (e.data.data.is_end == 0 && ut.gettimestamp()<e.data.data.end_time ) { | ||
| 164 | + //-- 获取商品列表 -- | ||
| 165 | + self.get_list(); | ||
| 166 | + self.countDown(); | ||
| 167 | + } | ||
| 168 | + else{ | ||
| 169 | + th.setData({error:'活动已经过期'}); | ||
| 170 | + return false; | ||
| 171 | + } | ||
| 172 | + } else { | ||
| 173 | + th.data.is_get_act=0; | ||
| 174 | + th.setData({error:e.data.msg}); | ||
| 175 | + return false; | ||
| 176 | + } | ||
| 177 | + } | ||
| 178 | + }); | ||
| 179 | + } | ||
| 180 | + | ||
| 161 | //等待活动值 | 181 | //等待活动值 |
| 162 | - this.waitfor(10, th.data.act, function () { | 182 | + this.waitfor2(10, 'act', function () { |
| 183 | + if(!th.data.act) return false; | ||
| 184 | + if(ut.gettimestamp()<th.data.act.start_time){ | ||
| 185 | + return false; | ||
| 186 | + } | ||
| 187 | + if (th.data.act.is_end == 10 || ut.gettimestamp()>=th.data.act.end_time ) { | ||
| 188 | + return false; | ||
| 189 | + } | ||
| 163 | //获取头像的分享 | 190 | //获取头像的分享 |
| 164 | th.get_head_temp(function () { | 191 | th.get_head_temp(function () { |
| 165 | var txt = th.data.act.zhprice + "元任选" + th.data.act.zhbuyqty + "件"; | 192 | var txt = th.data.act.zhprice + "元任选" + th.data.act.zhbuyqty + "件"; |
| @@ -172,7 +199,7 @@ Page({ | @@ -172,7 +199,7 @@ Page({ | ||
| 172 | txt = "活动时间:" + start + " - " + end; | 199 | txt = "活动时间:" + start + " - " + end; |
| 173 | imgDraw.views[3].text = txt; | 200 | imgDraw.views[3].text = txt; |
| 174 | 201 | ||
| 175 | - var scene = th.data.gid + ""; | 202 | + var scene = th.data.id + ""; |
| 176 | var user_id = getApp().globalData.user_id; | 203 | var user_id = getApp().globalData.user_id; |
| 177 | scene += "_" + user_id; | 204 | scene += "_" + user_id; |
| 178 | ///二微码 | 205 | ///二微码 |
| @@ -187,105 +214,113 @@ Page({ | @@ -187,105 +214,113 @@ Page({ | ||
| 187 | } | 214 | } |
| 188 | }) | 215 | }) |
| 189 | }) | 216 | }) |
| 190 | - }) | ||
| 191 | - //获取用户的默认门店 | ||
| 192 | - getApp().get_user_store(function (e) { | ||
| 193 | - if (!e) { | ||
| 194 | - th.data.fir_def_store = {}; //赋值空对象 | ||
| 195 | - return false; | ||
| 196 | - } | ||
| 197 | - var ee = JSON.parse(JSON.stringify(e)); | ||
| 198 | - var appd = getApp().globalData; | ||
| 199 | - //-- 等待定位系统的开启 -- | ||
| 200 | - th.waitfor(15, th.data.is_get_local_ok, function () { | ||
| 201 | - var e = JSON.parse(JSON.stringify(ee)); | ||
| 202 | - //如果有开启近距离的话,同时距离优不一样了 | ||
| 203 | - if (that.data.lat != null) { | ||
| 204 | - //如果经纬度有变化的话 | ||
| 205 | - if (e && appd.lat == that.data.lat && appd.lon == that.data.lon && e.distance > 0) { | ||
| 206 | - that.set_def_storage(e); | ||
| 207 | - } else { | ||
| 208 | - //要用接口是获取距离,js的计算不准 | ||
| 209 | - getApp().request.promiseGet("/api/weshop/pickup/list", { | ||
| 210 | - data: { | ||
| 211 | - store_id: os.stoid, | ||
| 212 | - pickup_id: e.pickup_id, | ||
| 213 | - lat: th.data.lat, | ||
| 214 | - lon: th.data.lon | ||
| 215 | - }, | ||
| 216 | - }).then(res => { | ||
| 217 | - if (res.data.code == 0) { | ||
| 218 | - e = res.data.data.pageData[0]; | ||
| 219 | - if (e) { | ||
| 220 | - e.is_no_dis = ee.is_no_dis; | ||
| 221 | - appd.pk_store = e; | ||
| 222 | - that.set_def_storage(e); | 217 | + |
| 218 | + //获取用户的默认门店 | ||
| 219 | + getApp().get_user_store(function (e) { | ||
| 220 | + if (!e) { | ||
| 221 | + th.data.fir_def_store = {}; //赋值空对象 | ||
| 222 | + return false; | ||
| 223 | + } | ||
| 224 | + var ee = JSON.parse(JSON.stringify(e)); | ||
| 225 | + var appd = getApp().globalData; | ||
| 226 | + //-- 等待定位系统的开启 -- | ||
| 227 | + th.waitfor2(15, 'is_get_local_ok', function () { | ||
| 228 | + | ||
| 229 | + if(!th.data.is_get_local_ok) return false; | ||
| 230 | + | ||
| 231 | + var e = JSON.parse(JSON.stringify(ee)); | ||
| 232 | + //如果有开启近距离的话,同时距离优不一样了 | ||
| 233 | + if (that.data.lat != null) { | ||
| 234 | + //如果经纬度有变化的话 | ||
| 235 | + if (e && appd.lat == that.data.lat && appd.lon == that.data.lon && e.distance > 0) { | ||
| 236 | + that.set_def_storage(e); | ||
| 237 | + } else { | ||
| 238 | + //要用接口是获取距离,js的计算不准 | ||
| 239 | + getApp().request.promiseGet("/api/weshop/pickup/list", { | ||
| 240 | + data: { | ||
| 241 | + store_id: os.stoid, | ||
| 242 | + pickup_id: e.pickup_id, | ||
| 243 | + lat: th.data.lat, | ||
| 244 | + lon: th.data.lon | ||
| 245 | + }, | ||
| 246 | + }).then(res => { | ||
| 247 | + if (res.data.code == 0) { | ||
| 248 | + e = res.data.data.pageData[0]; | ||
| 249 | + if (e) { | ||
| 250 | + e.is_no_dis = ee.is_no_dis; | ||
| 251 | + appd.pk_store = e; | ||
| 252 | + that.set_def_storage(e); | ||
| 253 | + } | ||
| 254 | + | ||
| 223 | } | 255 | } |
| 256 | + }) | ||
| 257 | + } | ||
| 258 | + appd.lat = that.data.lat; | ||
| 259 | + appd.lon = that.data.lon; | ||
| 260 | + } else { | ||
| 261 | + if (e) { | ||
| 262 | + e.distance = null; | ||
| 263 | + that.set_def_storage(e); | ||
| 264 | + } | ||
| 265 | + } | ||
| 266 | + }) | ||
| 267 | + }); | ||
| 268 | + | ||
| 269 | + //----获取系统参数----- | ||
| 270 | + getApp().getConfig2(function (e) { | ||
| 271 | + ee.setData({ | ||
| 272 | + bconfig: e, | ||
| 273 | + sales_rules: e.sales_rules, | ||
| 274 | + }); | ||
| 275 | + //设置基本参数 | ||
| 276 | + th.wait_for_store_config(e); | ||
| 277 | + | ||
| 278 | + var json_d = JSON.parse(e.switch_list); | ||
| 279 | + ee.setData({ | ||
| 280 | + store_config: e, | ||
| 281 | + sys_switch: json_d, | ||
| 282 | + is_closecoupon: json_d.is_closecoupon, | ||
| 283 | + is_newsales_rules: json_d.is_newsales_rules, | ||
| 284 | + is_open_offline: json_d.is_pricing_open, | ||
| 285 | + sales_rules: e.sales_rules | ||
| 286 | + }); | ||
| 224 | 287 | ||
| 288 | + //-- 计算等级价相关 -- | ||
| 289 | + var swithc_list = e.switch_list; | ||
| 290 | + var sw_arr = JSON.parse(swithc_list); | ||
| 291 | + //---如果后台又开等级卡的开关--- | ||
| 292 | + if (sw_arr.rank_switch && sw_arr.rank_switch == "2") { | ||
| 293 | + th.setData({rank_switch: true}); | ||
| 294 | + //---回调卡的列表--- | ||
| 295 | + th.getPlusCardType(function (ob) { | ||
| 296 | + th.setData({card_list: ob.card_list}); | ||
| 297 | + var user = getApp().globalData.userInfo; | ||
| 298 | + if (!user) return false; | ||
| 299 | + if (user.card_field && user['card_expiredate']) { | ||
| 300 | + var str = user['card_expiredate'].replace(/-/g, '/'); | ||
| 301 | + var end = new Date(str); | ||
| 302 | + end = Date.parse(end) / 1000; | ||
| 303 | + var now = ut.gettimestamp(); | ||
| 304 | + //--- 判断是等级会员,且在有效期范围内 --- | ||
| 305 | + if (user.card_field && now < end) { | ||
| 306 | + var card_name = ob.name_map.get(user.card_field); | ||
| 307 | + th.setData({ | ||
| 308 | + card_field: user.card_field, | ||
| 309 | + card_name: card_name, | ||
| 310 | + card_list: ob.card_list | ||
| 311 | + }); | ||
| 225 | } | 312 | } |
| 226 | - }) | ||
| 227 | - } | ||
| 228 | - appd.lat = that.data.lat; | ||
| 229 | - appd.lon = that.data.lon; | ||
| 230 | - } else { | ||
| 231 | - if (e) { | ||
| 232 | - e.distance = null; | ||
| 233 | - that.set_def_storage(e); | ||
| 234 | - } | 313 | + } |
| 314 | + | ||
| 315 | + }) | ||
| 235 | } | 316 | } |
| 236 | - }) | ||
| 237 | - }); | ||
| 238 | - } | 317 | + }, 1); |
| 239 | 318 | ||
| 240 | - //----获取系统参数----- | ||
| 241 | - getApp().getConfig2(function (e) { | ||
| 242 | - ee.setData({ | ||
| 243 | - bconfig: e, | ||
| 244 | - sales_rules: e.sales_rules, | ||
| 245 | - }); | ||
| 246 | - //设置基本参数 | ||
| 247 | - th.wait_for_store_config(e); | ||
| 248 | - | ||
| 249 | - var json_d = JSON.parse(e.switch_list); | ||
| 250 | - ee.setData({ | ||
| 251 | - store_config: e, | ||
| 252 | - sys_switch: json_d, | ||
| 253 | - is_closecoupon: json_d.is_closecoupon, | ||
| 254 | - is_newsales_rules: json_d.is_newsales_rules, | ||
| 255 | - is_open_offline: json_d.is_pricing_open, | ||
| 256 | - sales_rules: e.sales_rules | ||
| 257 | - }); | 319 | + }) |
| 320 | + | ||
| 321 | + } | ||
| 258 | 322 | ||
| 259 | - //-- 计算等级价相关 -- | ||
| 260 | - var swithc_list = e.switch_list; | ||
| 261 | - var sw_arr = JSON.parse(swithc_list); | ||
| 262 | - //---如果后台又开等级卡的开关--- | ||
| 263 | - if (sw_arr.rank_switch && sw_arr.rank_switch == "2") { | ||
| 264 | - th.setData({rank_switch: true}); | ||
| 265 | - //---回调卡的列表--- | ||
| 266 | - th.getPlusCardType(function (ob) { | ||
| 267 | - th.setData({card_list: ob.card_list}); | ||
| 268 | - var user = getApp().globalData.userInfo; | ||
| 269 | - if (!user) return false; | ||
| 270 | - if (user.card_field && user['card_expiredate']) { | ||
| 271 | - var str = user['card_expiredate'].replace(/-/g, '/'); | ||
| 272 | - var end = new Date(str); | ||
| 273 | - end = Date.parse(end) / 1000; | ||
| 274 | - var now = ut.gettimestamp(); | ||
| 275 | - //--- 判断是等级会员,且在有效期范围内 --- | ||
| 276 | - if (user.card_field && now < end) { | ||
| 277 | - var card_name = ob.name_map.get(user.card_field); | ||
| 278 | - th.setData({ | ||
| 279 | - card_field: user.card_field, | ||
| 280 | - card_name: card_name, | ||
| 281 | - card_list: ob.card_list | ||
| 282 | - }); | ||
| 283 | - } | ||
| 284 | - } | ||
| 285 | 323 | ||
| 286 | - }) | ||
| 287 | - } | ||
| 288 | - }, 1); | ||
| 289 | 324 | ||
| 290 | }, | 325 | }, |
| 291 | 326 | ||
| @@ -426,24 +461,44 @@ Page({ | @@ -426,24 +461,44 @@ Page({ | ||
| 426 | return false; | 461 | return false; |
| 427 | } else { | 462 | } else { |
| 428 | th.setData({is_no_pipei: 0}); | 463 | th.setData({is_no_pipei: 0}); |
| 429 | - th.add_cart_func(); | 464 | + th.check_is_in_cart(function () { |
| 465 | + th.add_cart_func(); | ||
| 466 | + }) | ||
| 430 | } | 467 | } |
| 431 | } else { | 468 | } else { |
| 469 | + | ||
| 470 | + var txt = "list[" + index + "].haveAdded"; | ||
| 471 | + var txt1 = "list[" + index + "].num"; | ||
| 472 | + var txt2 = "list[" + index + "].showNum"; | ||
| 473 | + th.data.sele_g = this.data.list[index]; | ||
| 474 | + | ||
| 475 | + | ||
| 432 | wx.showModal({ | 476 | wx.showModal({ |
| 433 | title: '温馨提示', | 477 | title: '温馨提示', |
| 434 | content: '确定将该商品移出购物车?', | 478 | content: '确定将该商品移出购物车?', |
| 435 | success (res) { | 479 | success (res) { |
| 436 | if (res.confirm) { | 480 | if (res.confirm) { |
| 437 | console.log('用户点击确定'); | 481 | console.log('用户点击确定'); |
| 438 | - title = '移除购物车成功'; | ||
| 439 | - th.setData({ | ||
| 440 | - [txt1]: 1, | ||
| 441 | - [txt2]: false, | ||
| 442 | - [txt]: !haveAdded, | ||
| 443 | - }); | ||
| 444 | - wx.showToast({ | ||
| 445 | - title: title, | ||
| 446 | - icon: 'success', | 482 | + |
| 483 | + var url = '/api/weshop/cart/del/' + os.stoid + '/' + th.data.sele_g.cart_id; | ||
| 484 | + getApp().request.delete(url, { | ||
| 485 | + success:function (res) { | ||
| 486 | + | ||
| 487 | + if(res.data.code==0) { | ||
| 488 | + title = '移除购物车成功'; | ||
| 489 | + th.setData({ | ||
| 490 | + [txt1]: 1, | ||
| 491 | + [txt2]: false, | ||
| 492 | + [txt]: false, | ||
| 493 | + }); | ||
| 494 | + wx.showToast({ | ||
| 495 | + title: title, | ||
| 496 | + icon: 'success', | ||
| 497 | + }); | ||
| 498 | + | ||
| 499 | + th.re_sum_price(); | ||
| 500 | + } | ||
| 501 | + } | ||
| 447 | }); | 502 | }); |
| 448 | } else if (res.cancel) { | 503 | } else if (res.cancel) { |
| 449 | console.log('用户点击取消') | 504 | console.log('用户点击取消') |
| @@ -469,6 +524,9 @@ Page({ | @@ -469,6 +524,9 @@ Page({ | ||
| 469 | return false; | 524 | return false; |
| 470 | } | 525 | } |
| 471 | 526 | ||
| 527 | + if(this.data.changing) return false; | ||
| 528 | + this.data.changing=1; | ||
| 529 | + | ||
| 472 | var index = e.currentTarget.dataset.index; | 530 | var index = e.currentTarget.dataset.index; |
| 473 | this.data.sele_g = this.data.list[index]; | 531 | this.data.sele_g = this.data.list[index]; |
| 474 | this.data.sele_index=index; | 532 | this.data.sele_index=index; |
| @@ -503,6 +561,8 @@ Page({ | @@ -503,6 +561,8 @@ Page({ | ||
| 503 | return false; | 561 | return false; |
| 504 | } | 562 | } |
| 505 | 563 | ||
| 564 | + if(th.data.changing) return false; | ||
| 565 | + th.data.changing=1; | ||
| 506 | th.data.sele_g = item; | 566 | th.data.sele_g = item; |
| 507 | th.data.sele_index = index; | 567 | th.data.sele_index = index; |
| 508 | th.data.goodsInputNum = check_num; | 568 | th.data.goodsInputNum = check_num; |
| @@ -510,21 +570,34 @@ Page({ | @@ -510,21 +570,34 @@ Page({ | ||
| 510 | return false; | 570 | return false; |
| 511 | } | 571 | } |
| 512 | 572 | ||
| 573 | + var txt = "list[" + index + "].haveAdded"; | ||
| 574 | + var txt1 = "list[" + index + "].num"; | ||
| 575 | + var txt2 = "list[" + index + "].showNum"; | ||
| 576 | + | ||
| 513 | wx.showModal({ | 577 | wx.showModal({ |
| 514 | title: '温馨提示', | 578 | title: '温馨提示', |
| 515 | content: '确定将该商品移出购物车?', | 579 | content: '确定将该商品移出购物车?', |
| 516 | success (res) { | 580 | success (res) { |
| 517 | if (res.confirm) { | 581 | if (res.confirm) { |
| 518 | - | ||
| 519 | - self.setData({ | ||
| 520 | - showNum: false, | ||
| 521 | - haveAdded: false, | ||
| 522 | - }); | ||
| 523 | - wx.showToast({ | ||
| 524 | - title: '移除购物车成功', | ||
| 525 | - icon: 'success', | 582 | + var url = '/api/weshop/cart/del/' + os.stoid + '/' + item.cart_id; |
| 583 | + getApp().request.delete(url, { | ||
| 584 | + success:function (res) { | ||
| 585 | + if(res.data.code==0) { | ||
| 586 | + var title = '移除购物车成功'; | ||
| 587 | + th.setData({ | ||
| 588 | + [txt1]: 1, | ||
| 589 | + [txt2]: false, | ||
| 590 | + [txt]: false, | ||
| 591 | + }); | ||
| 592 | + wx.showToast({ | ||
| 593 | + title: title, | ||
| 594 | + icon: 'success', | ||
| 595 | + }); | ||
| 596 | + th.re_sum_price();//重新统计数量和总金额 | ||
| 597 | + } | ||
| 598 | + } | ||
| 526 | }); | 599 | }); |
| 527 | - th.re_sum_price();//重新统计数量和总金额 | 600 | + |
| 528 | } else if (res.cancel) { | 601 | } else if (res.cancel) { |
| 529 | console.log('用户点击取消') | 602 | console.log('用户点击取消') |
| 530 | self.setData({ | 603 | self.setData({ |
| @@ -639,19 +712,19 @@ Page({ | @@ -639,19 +712,19 @@ Page({ | ||
| 639 | 712 | ||
| 640 | 713 | ||
| 641 | //------定时等待某个值,有值才进行运算-------- | 714 | //------定时等待某个值,有值才进行运算-------- |
| 642 | - waitfor: function (n, pop_value, func) { | 715 | + waitfor2: function (n, pop_value, func) { |
| 643 | var th = this; | 716 | var th = this; |
| 644 | if (n <= 0) { | 717 | if (n <= 0) { |
| 645 | func() | 718 | func() |
| 646 | return false | 719 | return false |
| 647 | } | 720 | } |
| 648 | - if (pop_value) { | 721 | + if (th.data[pop_value]) { |
| 649 | func(); | 722 | func(); |
| 650 | return false; | 723 | return false; |
| 651 | } | 724 | } |
| 652 | setTimeout(function () { | 725 | setTimeout(function () { |
| 653 | --n; | 726 | --n; |
| 654 | - th.waitfor(n, pop_value, func) | 727 | + th.waitfor2(n, pop_value, func) |
| 655 | }, 1000); | 728 | }, 1000); |
| 656 | }, | 729 | }, |
| 657 | 730 | ||
| @@ -808,7 +881,7 @@ Page({ | @@ -808,7 +881,7 @@ Page({ | ||
| 808 | th.data.adding = 0; | 881 | th.data.adding = 0; |
| 809 | return getApp().my_warnning("库存不足!", 0, th); | 882 | return getApp().my_warnning("库存不足!", 0, th); |
| 810 | } | 883 | } |
| 811 | - if (th.data.goodsInputNum > o.buyqty) { | 884 | + if (th.data.goodsInputNum > o.buyqty && o.buyqty>0) { |
| 812 | th.data.adding = 0; | 885 | th.data.adding = 0; |
| 813 | return getApp().my_warnning("超出商品活动限购!", 0, th); | 886 | return getApp().my_warnning("超出商品活动限购!", 0, th); |
| 814 | } | 887 | } |
| @@ -953,10 +1026,11 @@ Page({ | @@ -953,10 +1026,11 @@ Page({ | ||
| 953 | //---------拿出门店分类和门店------------ | 1026 | //---------拿出门店分类和门店------------ |
| 954 | get_sto(e) { | 1027 | get_sto(e) { |
| 955 | var th = this; | 1028 | var th = this; |
| 956 | - this.waitfor(15, th.data.is_get_local_ok, function () { | 1029 | + this.waitfor2(15, 'is_get_local_ok', function () { |
| 957 | if (!th.data.sele_g) return false; | 1030 | if (!th.data.sele_g) return false; |
| 958 | var dd = null; | 1031 | var dd = null; |
| 959 | - var g_distr_type = th.data.sele_g.distr_type; | 1032 | + var g_distr_type =0; |
| 1033 | + if(th.data.sele_g) g_distr_type=th.data.sele_g.distr_type; | ||
| 960 | if (g_distr_type != 0) { | 1034 | if (g_distr_type != 0) { |
| 961 | dd = { | 1035 | dd = { |
| 962 | store_id: os.stoid, | 1036 | store_id: os.stoid, |
| @@ -1452,8 +1526,6 @@ Page({ | @@ -1452,8 +1526,6 @@ Page({ | ||
| 1452 | var txt3 = "list[" + index + "].cart_id"; | 1526 | var txt3 = "list[" + index + "].cart_id"; |
| 1453 | var txt4 = "list[" + index + "].current_price"; | 1527 | var txt4 = "list[" + index + "].current_price"; |
| 1454 | 1528 | ||
| 1455 | - | ||
| 1456 | - | ||
| 1457 | //----先看会员在购物车中是否加入了该商品----- | 1529 | //----先看会员在购物车中是否加入了该商品----- |
| 1458 | getApp().request.get("/api/weshop/cart/page", { | 1530 | getApp().request.get("/api/weshop/cart/page", { |
| 1459 | data: { | 1531 | data: { |
| @@ -1573,12 +1645,17 @@ Page({ | @@ -1573,12 +1645,17 @@ Page({ | ||
| 1573 | } | 1645 | } |
| 1574 | all_price = aprice; | 1646 | all_price = aprice; |
| 1575 | } | 1647 | } |
| 1576 | - | 1648 | + this.data.changing=0; |
| 1577 | this.setData({ | 1649 | this.setData({ |
| 1578 | all_price: all_price, | 1650 | all_price: all_price, |
| 1579 | need_to_buy: need_to_buy, | 1651 | need_to_buy: need_to_buy, |
| 1580 | all_num: all_num | 1652 | all_num: all_num |
| 1581 | }) | 1653 | }) |
| 1654 | + | ||
| 1655 | + if(all_num<=0){ | ||
| 1656 | + th.data.sele_store = 0; //什么都没有选,就没有选择了门店 | ||
| 1657 | + } | ||
| 1658 | + | ||
| 1582 | }, | 1659 | }, |
| 1583 | 1660 | ||
| 1584 | go_cart:function () { | 1661 | go_cart:function () { |
packageB/pages/zuhegou/index/index.wxml
| 1 | <wxs module="filters" src="../../../../utils/filter.wxs"></wxs> | 1 | <wxs module="filters" src="../../../../utils/filter.wxs"></wxs> |
| 2 | -<view class="container"> | 2 | +<view wx:if="{{act}}" class="container"> |
| 3 | <view class="flex jc_sb"> | 3 | <view class="flex jc_sb"> |
| 4 | <view class="white">以下商品{{act.zhprice}}元任选{{act.zhbuyqty}}件</view> | 4 | <view class="white">以下商品{{act.zhprice}}元任选{{act.zhbuyqty}}件</view> |
| 5 | <view class="rule-container" bindtap="showRule">规则详情 | 5 | <view class="rule-container" bindtap="showRule">规则详情 |
| @@ -149,7 +149,7 @@ | @@ -149,7 +149,7 @@ | ||
| 149 | 149 | ||
| 150 | <painter style="position: absolute; top: -9999rpx;" palette="{{imgDraw}}" bind:imgOK="onImgOK"/> | 150 | <painter style="position: absolute; top: -9999rpx;" palette="{{imgDraw}}" bind:imgOK="onImgOK"/> |
| 151 | <!-- 活动异常提醒 --> | 151 | <!-- 活动异常提醒 --> |
| 152 | -<!-- <catch>当前活动已结束</catch> --> | 152 | +<catch wx:if="{{error}}">{{error}}</catch> |
| 153 | <warn id="warn"></warn> | 153 | <warn id="warn"></warn> |
| 154 | <!-- 选择门店的弹框,1.1版最新的 --> | 154 | <!-- 选择门店的弹框,1.1版最新的 --> |
| 155 | <block wx:if="{{store==1}}"> | 155 | <block wx:if="{{store==1}}"> |
pages/cart/cart/cart.js
| @@ -4,8 +4,9 @@ var t = getApp(), | @@ -4,8 +4,9 @@ var t = getApp(), | ||
| 4 | os=oo, | 4 | os=oo, |
| 5 | app = getApp(), | 5 | app = getApp(), |
| 6 | rq = t.request, | 6 | rq = t.request, |
| 7 | - ut = require("../../../utils/util.js"); | ||
| 8 | -var regeneratorRuntime = require('../../../utils/runtime.js'); | 7 | + ut = require("../../../utils/util.js"), |
| 8 | + zh_calc = require("zh_calculate.js"); | ||
| 9 | + var regeneratorRuntime = require('../../../utils/runtime.js'); | ||
| 9 | 10 | ||
| 10 | Page({ | 11 | Page({ |
| 11 | data: { | 12 | data: { |
| @@ -32,6 +33,8 @@ Page({ | @@ -32,6 +33,8 @@ Page({ | ||
| 32 | 33 | ||
| 33 | service_data:null, | 34 | service_data:null, |
| 34 | max_sw_height:200, | 35 | max_sw_height:200, |
| 36 | + | ||
| 37 | + zhhe_prom:[], //组合活动需要显示差多少件 | ||
| 35 | }, | 38 | }, |
| 36 | onLoad: function() { | 39 | onLoad: function() { |
| 37 | var a = this,ee=a; | 40 | var a = this,ee=a; |
| @@ -49,7 +52,7 @@ Page({ | @@ -49,7 +52,7 @@ Page({ | ||
| 49 | 52 | ||
| 50 | //判断是否有登录 | 53 | //判断是否有登录 |
| 51 | t.auth.hadAuth() && t.getUserInfo(function() { | 54 | t.auth.hadAuth() && t.getUserInfo(function() { |
| 52 | - a.getCardList(); | 55 | + //a.getCardList(); |
| 53 | }); | 56 | }); |
| 54 | 57 | ||
| 55 | }, | 58 | }, |
| @@ -139,7 +142,9 @@ Page({ | @@ -139,7 +142,9 @@ Page({ | ||
| 139 | clearInterval(i); | 142 | clearInterval(i); |
| 140 | } | 143 | } |
| 141 | }, | 144 | }, |
| 142 | - | 145 | + onUnLoad(){ |
| 146 | + getApp().globalData.cart_zh_act=null; | ||
| 147 | + }, | ||
| 143 | //-------------获取购物车列表,要安装门店进行分类订单----------- | 148 | //-------------获取购物车列表,要安装门店进行分类订单----------- |
| 144 | getCardList: function() { | 149 | getCardList: function() { |
| 145 | var th = this; | 150 | var th = this; |
| @@ -291,7 +296,42 @@ Page({ | @@ -291,7 +296,42 @@ Page({ | ||
| 291 | } | 296 | } |
| 292 | }) | 297 | }) |
| 293 | if (!isok) continue; | 298 | if (!isok) continue; |
| 294 | - } else if(item.prom_type == 0) { | 299 | + } |
| 300 | + else if (item.prom_type == 7) { | ||
| 301 | + var isok = 1; | ||
| 302 | + //如果有组合购 | ||
| 303 | + var url="/api/weshop/prom/zhbuy/get/"+os.stoid+"/"+item.prom_id+"/"+getApp().globalData.userInfo.user_id; | ||
| 304 | + await getApp().request.promiseGet(url, {}).then(res => { | ||
| 305 | + if(res.data.code==0 && res.data.data){ | ||
| 306 | + if(res.data.data.is_show!=1){ | ||
| 307 | + return false; | ||
| 308 | + } | ||
| 309 | + //如果活动已经结束 | ||
| 310 | + if(res.data.data.is_end==1){ | ||
| 311 | + isok=0; | ||
| 312 | + } | ||
| 313 | + //已经结束 | ||
| 314 | + if(ut.gettimestamp()>res.data.data.end_time){ | ||
| 315 | + isok=0; | ||
| 316 | + } | ||
| 317 | + //还未开始 | ||
| 318 | + if(ut.gettimestamp()<res.data.data.start_time){ | ||
| 319 | + isok=0; | ||
| 320 | + } | ||
| 321 | + | ||
| 322 | + }else{ | ||
| 323 | + //未找到商品的活动 | ||
| 324 | + isok = 0; | ||
| 325 | + } | ||
| 326 | + item.act=res.data.data; | ||
| 327 | + }) | ||
| 328 | + if (!isok){ | ||
| 329 | + var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; | ||
| 330 | + getApp().request.delete(url, {}); | ||
| 331 | + continue; | ||
| 332 | + } | ||
| 333 | + } | ||
| 334 | + else if(item.prom_type == 0) { | ||
| 295 | //如果有优惠活动,要更新活动 | 335 | //如果有优惠活动,要更新活动 |
| 296 | await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromList/" + os.stoid + "/" + item.goods_id + "/1", {}).then(res => { | 336 | await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromList/" + os.stoid + "/" + item.goods_id + "/1", {}).then(res => { |
| 297 | if (res.data.code == 0) { | 337 | if (res.data.code == 0) { |
| @@ -306,7 +346,6 @@ Page({ | @@ -306,7 +346,6 @@ Page({ | ||
| 306 | } | 346 | } |
| 307 | } | 347 | } |
| 308 | }) | 348 | }) |
| 309 | - | ||
| 310 | } | 349 | } |
| 311 | 350 | ||
| 312 | all_num += item.goods_num; | 351 | all_num += item.goods_num; |
| @@ -351,9 +390,7 @@ Page({ | @@ -351,9 +390,7 @@ Page({ | ||
| 351 | } | 390 | } |
| 352 | } | 391 | } |
| 353 | 392 | ||
| 354 | - | ||
| 355 | - | ||
| 356 | - if(th.data.is_open_offline && th.data.is_open_offline>0){ | 393 | + if(th.data.is_open_offline && th.data.is_open_offline>0 && th.data.sales_rules==2){ |
| 357 | //-- 此时要实时更新线下取价价格 -- | 394 | //-- 此时要实时更新线下取价价格 -- |
| 358 | for(var i=0;i<arr.length;i++){ | 395 | for(var i=0;i<arr.length;i++){ |
| 359 | //每个门店都去看下线下取价 | 396 | //每个门店都去看下线下取价 |
| @@ -361,8 +398,38 @@ Page({ | @@ -361,8 +398,38 @@ Page({ | ||
| 361 | await th.set_offline(list); | 398 | await th.set_offline(list); |
| 362 | } | 399 | } |
| 363 | } | 400 | } |
| 401 | + | ||
| 402 | + for (let u1 in arr) { | ||
| 403 | + var u_item=arr[u1]; | ||
| 404 | + //把组合购进行分组 | ||
| 405 | + var obj=zh_calc.find_split(u_item); | ||
| 406 | + if(!obj) continue; | ||
| 407 | + //存储不同活动的商品列表 | ||
| 408 | + u_item.zh_prom_goods={}; | ||
| 409 | + for (let var1 in obj) { | ||
| 410 | + var h_item=obj[var1]; | ||
| 411 | + var gdlist=null; | ||
| 412 | + var url1 = "/api/weshop/prom/zhbuyGoods/page"; | ||
| 413 | + var req_data = { | ||
| 414 | + page: 1, | ||
| 415 | + pageSize: 2000, | ||
| 416 | + store_id: os.stoid, | ||
| 417 | + zh_id: h_item.prom_id, | ||
| 418 | + } | ||
| 419 | + await getApp().request.promiseGet(url1, { | ||
| 420 | + data: req_data | ||
| 421 | + }).then(res => { | ||
| 422 | + if (ut.ajax_ok(res)) { | ||
| 423 | + gdlist = res.data.data.pageData; | ||
| 424 | + } | ||
| 425 | + }) | ||
| 426 | + //获取活动需要的商品列表 | ||
| 427 | + u_item.zh_prom_goods[h_item.prom_id]=gdlist; | ||
| 428 | + } | ||
| 429 | + } | ||
| 364 | 430 | ||
| 365 | - th.setData({ | 431 | + |
| 432 | + th.setData({ | ||
| 366 | requestData: arr, | 433 | requestData: arr, |
| 367 | all_num: all_num, | 434 | all_num: all_num, |
| 368 | is_load: 1, | 435 | is_load: 1, |
| @@ -407,8 +474,7 @@ Page({ | @@ -407,8 +474,7 @@ Page({ | ||
| 407 | }); | 474 | }); |
| 408 | continue; | 475 | continue; |
| 409 | } | 476 | } |
| 410 | - | ||
| 411 | - | 477 | + |
| 412 | //如果商品下架了,或者商品是赠品,一开始都要清除 | 478 | //如果商品下架了,或者商品是赠品,一开始都要清除 |
| 413 | if (good.is_show == 0) { | 479 | if (good.is_show == 0) { |
| 414 | var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; | 480 | var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; |
| @@ -482,7 +548,7 @@ Page({ | @@ -482,7 +548,7 @@ Page({ | ||
| 482 | var wlist=""; | 548 | var wlist=""; |
| 483 | for(var i in list.goods){ | 549 | for(var i in list.goods){ |
| 484 | //如果商品有促销活动 | 550 | //如果商品有促销活动 |
| 485 | - if(list.goods[i].prom_type>0) continue; | 551 | + if(list.goods[i].prom_type>0 || list.goods[i].prom_type==7 ) continue; |
| 486 | wlist+= encodeURIComponent(list.goods[i].erpwareid)+","; | 552 | wlist+= encodeURIComponent(list.goods[i].erpwareid)+","; |
| 487 | } | 553 | } |
| 488 | wlist=ut.sub_last(wlist); | 554 | wlist=ut.sub_last(wlist); |
| @@ -712,6 +778,7 @@ Page({ | @@ -712,6 +778,7 @@ Page({ | ||
| 712 | if(dda && dda.length>0){ | 778 | if(dda && dda.length>0){ |
| 713 | for (var i = 0; i < dda.length; i++) { | 779 | for (var i = 0; i < dda.length; i++) { |
| 714 | var item = dda[i].goods; | 780 | var item = dda[i].goods; |
| 781 | + | ||
| 715 | if (!e.data.checkAllToggle) { | 782 | if (!e.data.checkAllToggle) { |
| 716 | var txt = "requestData[" + i + "].selected"; | 783 | var txt = "requestData[" + i + "].selected"; |
| 717 | e.setData({ | 784 | e.setData({ |
| @@ -721,6 +788,12 @@ Page({ | @@ -721,6 +788,12 @@ Page({ | ||
| 721 | var fir = 0; | 788 | var fir = 0; |
| 722 | for (var j = 0; j < item.length; j++) { | 789 | for (var j = 0; j < item.length; j++) { |
| 723 | if(item[j].is_gift) continue; | 790 | if(item[j].is_gift) continue; |
| 791 | + | ||
| 792 | + var obj=JSON.parse(JSON.stringify(item[j])); | ||
| 793 | + //计算之前先移除 | ||
| 794 | + zh_calc.remove_zhprom(dda,i,obj); | ||
| 795 | + | ||
| 796 | + | ||
| 724 | if (fir == 0) { | 797 | if (fir == 0) { |
| 725 | fir = item[j].distr_type; | 798 | fir = item[j].distr_type; |
| 726 | } else { | 799 | } else { |
| @@ -730,16 +803,24 @@ Page({ | @@ -730,16 +803,24 @@ Page({ | ||
| 730 | break; | 803 | break; |
| 731 | } | 804 | } |
| 732 | } | 805 | } |
| 733 | - var txt = "requestData[" + i + "].goods[" + j + "].selected" | ||
| 734 | - e.setData({ | 806 | + var txt = "requestData[" + i + "].goods[" + j + "].selected"; |
| 807 | + | ||
| 808 | + if(e.data.checkAllToggle) obj.goods_num=0; | ||
| 809 | + zh_calc.add_zhprom(dda,i,obj); | ||
| 810 | + | ||
| 811 | + e.setData({ | ||
| 735 | [txt]: !e.data.checkAllToggle, | 812 | [txt]: !e.data.checkAllToggle, |
| 736 | }) | 813 | }) |
| 814 | + | ||
| 737 | if (!e.data.checkAllToggle) { | 815 | if (!e.data.checkAllToggle) { |
| 738 | - tfeel += item[j].goods_num * item[j].goods_price; | 816 | + //组合购的金额要另外算 |
| 817 | + if(item[j].prom_type!=7) | ||
| 818 | + tfeel += item[j].goods_num * item[j].goods_price; | ||
| 739 | t_num += item[j].goods_num; | 819 | t_num += item[j].goods_num; |
| 740 | } | 820 | } |
| 741 | - } | ||
| 742 | - } | 821 | + } |
| 822 | + } | ||
| 823 | + | ||
| 743 | 824 | ||
| 744 | if (text_arr != "") { | 825 | if (text_arr != "") { |
| 745 | wx.showModal({ | 826 | wx.showModal({ |
| @@ -748,6 +829,13 @@ Page({ | @@ -748,6 +829,13 @@ Page({ | ||
| 748 | }); | 829 | }); |
| 749 | return false; | 830 | return false; |
| 750 | } else { | 831 | } else { |
| 832 | + | ||
| 833 | + for (var i = 0; i < dda.length; i++) { | ||
| 834 | + //总的价格,把组合商品的价格拿出来 | ||
| 835 | + var zh_calc_res=zh_calc.calculate_zh(dda,i,this); | ||
| 836 | + tfeel+=zh_calc_res.tfeel; | ||
| 837 | + } | ||
| 838 | + | ||
| 751 | e.setData({ | 839 | e.setData({ |
| 752 | checkAllToggle: !e.data.checkAllToggle, | 840 | checkAllToggle: !e.data.checkAllToggle, |
| 753 | total_fee: tfeel.toFixed(2), | 841 | total_fee: tfeel.toFixed(2), |
| @@ -1031,7 +1119,6 @@ Page({ | @@ -1031,7 +1119,6 @@ Page({ | ||
| 1031 | //-- 购物车 -- | 1119 | //-- 购物车 -- |
| 1032 | if(car && car.length>0){ | 1120 | if(car && car.length>0){ |
| 1033 | for (var a = 0; a < car.length; a++) { | 1121 | for (var a = 0; a < car.length; a++) { |
| 1034 | - var c_item=car[a]; | ||
| 1035 | var item = car[a].goods, | 1122 | var item = car[a].goods, |
| 1036 | is_s_sele = 1; | 1123 | is_s_sele = 1; |
| 1037 | var offline_price=0; | 1124 | var offline_price=0; |
| @@ -1039,21 +1126,38 @@ Page({ | @@ -1039,21 +1126,38 @@ Page({ | ||
| 1039 | for (var c = 0; c < item.length; c++) { | 1126 | for (var c = 0; c < item.length; c++) { |
| 1040 | if(item[c].is_gift) continue; | 1127 | if(item[c].is_gift) continue; |
| 1041 | all_num += item[c].goods_num; | 1128 | all_num += item[c].goods_num; |
| 1129 | + | ||
| 1130 | + //不管怎么样都要移出去 | ||
| 1131 | + var obj=JSON.parse(JSON.stringify(item[c])); | ||
| 1132 | + zh_calc.remove_zhprom(car,a,obj); | ||
| 1042 | if (item[c].selected == 0) { | 1133 | if (item[c].selected == 0) { |
| 1043 | ischeck = 0; | 1134 | ischeck = 0; |
| 1044 | is_s_sele = 0; | 1135 | is_s_sele = 0; |
| 1136 | + if(item[c].prom_type==7) { | ||
| 1137 | + obj.goods_num=0; | ||
| 1138 | + zh_calc.add_zhprom(car,a,obj); | ||
| 1139 | + } | ||
| 1045 | } else { | 1140 | } else { |
| 1046 | - tfeel += item[c].goods_num * item[c].goods_price; | 1141 | + if(item[c].prom_type==7){ |
| 1142 | + //先把商品放入组合计算的专用的区域 | ||
| 1143 | + zh_calc.add_zhprom(car,a,obj); | ||
| 1144 | + }else{ | ||
| 1145 | + tfeel += item[c].goods_num * item[c].goods_price; | ||
| 1146 | + } | ||
| 1047 | t_num += item[c].goods_num; | 1147 | t_num += item[c].goods_num; |
| 1048 | } | 1148 | } |
| 1049 | 1149 | ||
| 1050 | //-- 如果这个商品是线下取价的时候 -- | 1150 | //-- 如果这个商品是线下取价的时候 -- |
| 1051 | - if(item[c].is_offline){ | 1151 | + if(item[c].is_offline && item[c].prom_type!=7){ |
| 1052 | offline_price+= (item[c].goods_price-item[c].offline_price)*item[c].goods_num; | 1152 | offline_price+= (item[c].goods_price-item[c].offline_price)*item[c].goods_num; |
| 1053 | offline_num+=item[c].goods_num; | 1153 | offline_num+=item[c].goods_num; |
| 1054 | } | 1154 | } |
| 1055 | - | ||
| 1056 | } | 1155 | } |
| 1156 | + //总的价格,把组合商品的价格拿出来 | ||
| 1157 | + var zh_calc_res=zh_calc.calculate_zh(car,a,th); | ||
| 1158 | + tfeel+=zh_calc_res.tfeel; | ||
| 1159 | + offline_price+=zh_calc_res.offline_price; | ||
| 1160 | + offline_num+=zh_calc_res.offline_num; | ||
| 1057 | 1161 | ||
| 1058 | var txt = "requestData[" + a + "].selected"; | 1162 | var txt = "requestData[" + a + "].selected"; |
| 1059 | th.setData({ | 1163 | th.setData({ |
| @@ -1358,7 +1462,10 @@ Page({ | @@ -1358,7 +1462,10 @@ Page({ | ||
| 1358 | ob.code=-1;ob.CanOutQty=0;func(ob); return false; | 1462 | ob.code=-1;ob.CanOutQty=0;func(ob); return false; |
| 1359 | } | 1463 | } |
| 1360 | 1464 | ||
| 1361 | - if( t.goods_num>plist.CanOutQty-lock){ | 1465 | + var c_num=t.goods_num; |
| 1466 | + if(t.need_downlow_num) c_num=t.need_downlow_num; | ||
| 1467 | + | ||
| 1468 | + if( c_num>plist.CanOutQty-lock){ | ||
| 1362 | ob.code=-1; | 1469 | ob.code=-1; |
| 1363 | ob.CanOutQty=plist.CanOutQty-lock | 1470 | ob.CanOutQty=plist.CanOutQty-lock |
| 1364 | if(ob.CanOutQty<0) ob.CanOutQty=0; | 1471 | if(ob.CanOutQty<0) ob.CanOutQty=0; |
| @@ -1480,7 +1587,7 @@ Page({ | @@ -1480,7 +1587,7 @@ Page({ | ||
| 1480 | glist += i_arr[j].goods_id + ","; | 1587 | glist += i_arr[j].goods_id + ","; |
| 1481 | ab = 1; | 1588 | ab = 1; |
| 1482 | //--普通商品,如果有开启线下库存的功能,要调用线下库存进行计算,赠品不要进行调用线下库存--- | 1589 | //--普通商品,如果有开启线下库存的功能,要调用线下库存进行计算,赠品不要进行调用线下库存--- |
| 1483 | - 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) { | 1590 | + 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) { |
| 1484 | //--获取商品的线下商品ID-- | 1591 | //--获取商品的线下商品ID-- |
| 1485 | var gd = null; | 1592 | var gd = null; |
| 1486 | await getApp().request.promiseGet("/api/weshop/goods/get/" + oo.stoid + "/" + i_arr[j].goods_id, {}).then(res => { | 1593 | await getApp().request.promiseGet("/api/weshop/goods/get/" + oo.stoid + "/" + i_arr[j].goods_id, {}).then(res => { |
| @@ -2072,4 +2179,5 @@ Page({ | @@ -2072,4 +2179,5 @@ Page({ | ||
| 2072 | var url=e.currentTarget.dataset.url; | 2179 | var url=e.currentTarget.dataset.url; |
| 2073 | getApp().goto(url); | 2180 | getApp().goto(url); |
| 2074 | } | 2181 | } |
| 2182 | + | ||
| 2075 | }); | 2183 | }); |
| 2076 | \ No newline at end of file | 2184 | \ No newline at end of file |
pages/cart/cart/cart.wxml
| @@ -88,6 +88,16 @@ | @@ -88,6 +88,16 @@ | ||
| 88 | <view class="abs flex-center fs26" wx:if="{{items.distr_type==2}}">物流</view> | 88 | <view class="abs flex-center fs26" wx:if="{{items.distr_type==2}}">物流</view> |
| 89 | </block> | 89 | </block> |
| 90 | 90 | ||
| 91 | + <block wx:if="{{items.prom_type==7 && items.zhqty}}"> | ||
| 92 | + <block wx:if="{{items.selected}}"> | ||
| 93 | + <text wx:if="{{items.zhqty>items.goods_num}}" class="abs2">还需购买{{items.zhqty-items.goods_num}}件</text> | ||
| 94 | + </block> | ||
| 95 | + <block wx:else> | ||
| 96 | + <text class="abs2">需购买{{items.zhqty}}件</text> | ||
| 97 | + </block> | ||
| 98 | + </block> | ||
| 99 | + | ||
| 100 | + | ||
| 91 | </navigator> | 101 | </navigator> |
| 92 | <view class="goods-cont"> | 102 | <view class="goods-cont"> |
| 93 | <view class="goods-name"> | 103 | <view class="goods-name"> |
| @@ -144,6 +154,15 @@ | @@ -144,6 +154,15 @@ | ||
| 144 | </view> | 154 | </view> |
| 145 | </view> | 155 | </view> |
| 146 | 156 | ||
| 157 | + <!-- 还差多少件立即享受组合购 --> | ||
| 158 | + <block wx:if="{{item.need_list && item.need_list.length>0 && !is_edit}}"> | ||
| 159 | + <view class="fs28 pdr20 pdl20 pdb20 c-red2 flex jc_sb" wx:for="{{item.need_list}}"> | ||
| 160 | + <text>{{item.title}}</text> | ||
| 161 | + <text data-url="/packageB/pages/zuhegou/index/index?id={{item.id}}" bindtap="go_url">去凑单</text> | ||
| 162 | + </view> | ||
| 163 | + </block> | ||
| 164 | + | ||
| 165 | + | ||
| 147 | <!-- 线下取价 --> | 166 | <!-- 线下取价 --> |
| 148 | <view style="margin:10rpx 0; padding: 0 30rpx;color: #999" wx:if="{{item.offline_price}}" class="fs28"> | 167 | <view style="margin:10rpx 0; padding: 0 30rpx;color: #999" wx:if="{{item.offline_price}}" class="fs28"> |
| 149 | 当前<text class="red_c">{{item.offline_num}}</text>件商品,可使用<text class="red_c">{{item.offline_price}}</text>元店铺优惠 | 168 | 当前<text class="red_c">{{item.offline_num}}</text>件商品,可使用<text class="red_c">{{item.offline_price}}</text>元店铺优惠 |
pages/cart/cart/cart.wxss
| @@ -378,3 +378,10 @@ page { | @@ -378,3 +378,10 @@ page { | ||
| 378 | /* background-color: #ddd; */ | 378 | /* background-color: #ddd; */ |
| 379 | color: #ccc; | 379 | color: #ccc; |
| 380 | } | 380 | } |
| 381 | + | ||
| 382 | +.abs2{ | ||
| 383 | + position: absolute; z-index: 1000; | ||
| 384 | + width: 100%;height: 30rpx; background-color: rgba(9,9,9,0.5); | ||
| 385 | + text-align: center; line-height: 30rpx; | ||
| 386 | + left: 0;bottom: 0;color: #fff; font-size: 20rpx; | ||
| 387 | +} |
pages/cart/cart/zh_calculate.js
0 → 100644
| 1 | +module.exports = { | ||
| 2 | + //辅助数组添加元素功能 | ||
| 3 | + find_in_add: function(list, ele) { | ||
| 4 | + for (var i in list) { | ||
| 5 | + var item = list[i]; | ||
| 6 | + if (item.goods_id == ele.goods_id) { | ||
| 7 | + return false; | ||
| 8 | + } | ||
| 9 | + } | ||
| 10 | + list.push(ele); | ||
| 11 | + }, | ||
| 12 | + //辅助数组添加元素功能 | ||
| 13 | + find_in_remove: function(list, ele) { | ||
| 14 | + for (var i in list) { | ||
| 15 | + var item = list[i]; | ||
| 16 | + if (item.goods_id == ele.goods_id) { | ||
| 17 | + list.splice(i, 1); | ||
| 18 | + } | ||
| 19 | + } | ||
| 20 | + }, | ||
| 21 | + | ||
| 22 | + //主要是把组合购的商品分离出来 | ||
| 23 | + add_zhprom: function(car, a, ele) { | ||
| 24 | + var point = car[a]; | ||
| 25 | + if (point.zh_map) { | ||
| 26 | + if (point.zh_map[ele.prom_id]) { | ||
| 27 | + this.find_in_add(point.zh_map[ele.prom_id].goods, ele); | ||
| 28 | + } else { | ||
| 29 | + point.zh_map[ele.prom_id] = { | ||
| 30 | + goods: [], | ||
| 31 | + act: ele.act | ||
| 32 | + }; | ||
| 33 | + point.zh_map[ele.prom_id].goods.push(ele); | ||
| 34 | + } | ||
| 35 | + } else { | ||
| 36 | + point.zh_map = {}; | ||
| 37 | + point.zh_map[ele.prom_id] = { | ||
| 38 | + goods: [], | ||
| 39 | + act: ele.act | ||
| 40 | + }; | ||
| 41 | + point.zh_map[ele.prom_id].goods.push(ele); | ||
| 42 | + } | ||
| 43 | + }, | ||
| 44 | + //未选中的商品,要从中剔除 | ||
| 45 | + remove_zhprom: function(car, a, ele) { | ||
| 46 | + var point = car[a]; | ||
| 47 | + if (point.zh_map) { | ||
| 48 | + if (point.zh_map[ele.prom_id]) { | ||
| 49 | + this.find_in_remove(point.zh_map[ele.prom_id].goods, ele); | ||
| 50 | + } | ||
| 51 | + } | ||
| 52 | + }, | ||
| 53 | + | ||
| 54 | + //把组合购的商品价格计算出来 | ||
| 55 | + calculate_zh: function(car, a, th) { | ||
| 56 | + var car_item = car[a]; | ||
| 57 | + var tfeel = 0, | ||
| 58 | + offline_price = 0, | ||
| 59 | + offline_num = 0; | ||
| 60 | + var txt = "requestData[" + a + "].need_list"; | ||
| 61 | + if (!car_item.zh_map) { | ||
| 62 | + var res = { | ||
| 63 | + tfeel: tfeel, | ||
| 64 | + offline_price: offline_price, | ||
| 65 | + offline_num: offline_num | ||
| 66 | + }; | ||
| 67 | + th.setData({ | ||
| 68 | + [txt]: null | ||
| 69 | + }); | ||
| 70 | + return res; | ||
| 71 | + } | ||
| 72 | + | ||
| 73 | + //活动的列表都存储在这里面,可以快速查询 | ||
| 74 | + var zh_prom_goods=car_item.zh_prom_goods; | ||
| 75 | + //因为可能有多个组合购的活动 | ||
| 76 | + for (var i in car_item.zh_map) { | ||
| 77 | + var bitem = car_item.zh_map[i]; | ||
| 78 | + var act = bitem.act; //获取到组合购的详情 | ||
| 79 | + var all_num = 0; //商品数量之和 | ||
| 80 | + var all_price = 0; | ||
| 81 | + var need_to_buy = 0; | ||
| 82 | + var all_zhqty = 0; //所有商品要求起购数之和 | ||
| 83 | + var no_in_arr = []; //剩余的未加入组合购 | ||
| 84 | + | ||
| 85 | + var title =""; //提示语; | ||
| 86 | + //var goods = bitem.goods; | ||
| 87 | + var goods = zh_prom_goods[act.id]; | ||
| 88 | + //寻找一下 | ||
| 89 | + function get_num(ite) { | ||
| 90 | + for (let v1 in car_item.goods) { | ||
| 91 | + var vh = car_item.goods[v1]; | ||
| 92 | + if (vh.goods_id == ite.goods_id) { | ||
| 93 | + return vh; | ||
| 94 | + } | ||
| 95 | + } | ||
| 96 | + return 0; | ||
| 97 | + } | ||
| 98 | + | ||
| 99 | + for (var i in goods) { | ||
| 100 | + var item = goods[i]; | ||
| 101 | + item.num = get_num(item).goods_num; | ||
| 102 | + item.goods_price=get_num(item).goods_price; | ||
| 103 | + item.offline_price=get_num(item).offline_price; | ||
| 104 | + | ||
| 105 | + if (item.num) { | ||
| 106 | + all_num += item.num; | ||
| 107 | + all_price += item.num * item.goods_price; | ||
| 108 | + //当有起购数的控制的时候 | ||
| 109 | + if (item.zhqty) { | ||
| 110 | + all_zhqty += item.zhqty; | ||
| 111 | + if (item.num < item.zhqty) { | ||
| 112 | + need_to_buy += item.zhqty - item.num; | ||
| 113 | + } | ||
| 114 | + if (item.num > item.zhqty) { | ||
| 115 | + for (var i = 0; i < item.num - item.zhqty; i++) { | ||
| 116 | + no_in_arr.push({ | ||
| 117 | + price: item.goods_price,offline_price:item.offline_price | ||
| 118 | + }) | ||
| 119 | + } | ||
| 120 | + } | ||
| 121 | + } else { | ||
| 122 | + for (var j = 0; j < item.num; j++) { | ||
| 123 | + no_in_arr.push({ | ||
| 124 | + price: item.goods_price,offline_price:item.offline_price | ||
| 125 | + }) | ||
| 126 | + } | ||
| 127 | + } | ||
| 128 | + } else { | ||
| 129 | + if (item.zhqty) { | ||
| 130 | + title="必买商品未加购,下单立享【"+act.zhprice+"元任选"+act.zhbuyqty+"件】"; | ||
| 131 | + need_to_buy += item.zhqty; | ||
| 132 | + } | ||
| 133 | + } | ||
| 134 | + } | ||
| 135 | + | ||
| 136 | + //当满足组合的要求:总数要满足,起购数要满足 | ||
| 137 | + if (all_num >= act.zhbuyqty && !need_to_buy) { | ||
| 138 | + function sortData(a, b) { | ||
| 139 | + return a.price - b.price | ||
| 140 | + } | ||
| 141 | + | ||
| 142 | + no_in_arr.sort(sortData); | ||
| 143 | + var aprice = act.zhprice; | ||
| 144 | + if (act.zhbuyqty > all_zhqty) { | ||
| 145 | + for (var n = 0; n < act.zhbuyqty; n++) { | ||
| 146 | + no_in_arr.pop(); | ||
| 147 | + } | ||
| 148 | + } | ||
| 149 | + //看一下剩下的数量有没有满足组合购的要求,以及要不要倍增 | ||
| 150 | + if (act.is_bz && no_in_arr.length > act.zhbuyqty) { | ||
| 151 | + //看一下是几倍 | ||
| 152 | + var be = parseInt(no_in_arr / act.zhbuyqty); | ||
| 153 | + aprice += be * act.zhprice; | ||
| 154 | + for (var m = 0; m < be * act.zhbuyqty; m++) { | ||
| 155 | + no_in_arr.pop(); | ||
| 156 | + } | ||
| 157 | + } | ||
| 158 | + //算一下剩余的钱 | ||
| 159 | + if (no_in_arr.length) { | ||
| 160 | + for (var ii in no_in_arr) { | ||
| 161 | + var item = no_in_arr[ii]; | ||
| 162 | + var gitem=get_num(item); | ||
| 163 | + if(gitem) { | ||
| 164 | + if (!gitem.need_downlow_num) { | ||
| 165 | + gitem.need_downlow_num = 1; | ||
| 166 | + } | ||
| 167 | + else { | ||
| 168 | + gitem.need_downlow_num++; | ||
| 169 | + } | ||
| 170 | + aprice += item.price; | ||
| 171 | + if (item.offline_price) { | ||
| 172 | + offline_price += item.goods_price - item.offline_price; | ||
| 173 | + offline_num += 1; | ||
| 174 | + } | ||
| 175 | + } | ||
| 176 | + } | ||
| 177 | + } | ||
| 178 | + all_price = aprice; | ||
| 179 | + | ||
| 180 | + //-- 设置还需要购买多少件,享受活动,前段显示 -- | ||
| 181 | + var need_to = car_item.need_list; | ||
| 182 | + var index = this.find_need_to(need_to, act); | ||
| 183 | + if (index > -1) { | ||
| 184 | + need_to.splice(index, 1); | ||
| 185 | + th.setData({ | ||
| 186 | + [txt]: need_to | ||
| 187 | + }); | ||
| 188 | + } | ||
| 189 | + | ||
| 190 | + } else { | ||
| 191 | + for (var ii in goods) { | ||
| 192 | + var item = goods[ii]; | ||
| 193 | + | ||
| 194 | + | ||
| 195 | + var gitem=get_num(item); | ||
| 196 | + if(gitem) { | ||
| 197 | + gitem.need_downlow_num = item.num; | ||
| 198 | + | ||
| 199 | + if (item.offline_price) { | ||
| 200 | + offline_price += (item[ii].goods_price - item[ii].offline_price) * item[ii] | ||
| 201 | + .goods_num; | ||
| 202 | + offline_num += item[ii].goods_num; | ||
| 203 | + } | ||
| 204 | + } | ||
| 205 | + } | ||
| 206 | + if (act.zhbuyqty - all_num > need_to_buy) { | ||
| 207 | + need_to_buy = act.zhbuyqty - all_num; | ||
| 208 | + } | ||
| 209 | + //-- 设置还需要购买多少件,享受活动,前段显示 -- | ||
| 210 | + var need_to = car_item.need_list; | ||
| 211 | + if (all_num <= 0) { | ||
| 212 | + var index = this.find_need_to(need_to, act); | ||
| 213 | + if (index > -1) { | ||
| 214 | + need_to.splice(index, 1); | ||
| 215 | + th.setData({ | ||
| 216 | + [txt]: need_to | ||
| 217 | + }); | ||
| 218 | + } | ||
| 219 | + } else { | ||
| 220 | + var index = this.find_need_to(need_to, act); | ||
| 221 | + if(title=='') | ||
| 222 | + title = "再买" + need_to_buy + "件,下单立享【" + act.zhprice + "元任选" + act.zhbuyqty + "件】"; | ||
| 223 | + if (index != -1) { | ||
| 224 | + need_to[index].title = title; | ||
| 225 | + } else { | ||
| 226 | + if (!need_to) need_to = []; | ||
| 227 | + var it = { | ||
| 228 | + id: act.id, | ||
| 229 | + pickup_id: car_item.pickup_id, | ||
| 230 | + title: title | ||
| 231 | + }; | ||
| 232 | + need_to.push(it); | ||
| 233 | + } | ||
| 234 | + th.setData({ | ||
| 235 | + [txt]: need_to | ||
| 236 | + }); | ||
| 237 | + } | ||
| 238 | + | ||
| 239 | + } | ||
| 240 | + tfeel += all_price; | ||
| 241 | + } | ||
| 242 | + | ||
| 243 | + console.log('nyf111'); | ||
| 244 | + console.log(car_item); | ||
| 245 | + | ||
| 246 | + | ||
| 247 | + var res = { | ||
| 248 | + tfeel: tfeel, | ||
| 249 | + offline_price: offline_price, | ||
| 250 | + offline_num: offline_num | ||
| 251 | + }; | ||
| 252 | + return res; | ||
| 253 | + | ||
| 254 | + | ||
| 255 | + }, | ||
| 256 | + | ||
| 257 | + find_need_to: function(list, iter) { | ||
| 258 | + if (!list || list.length <= 0) return -1; | ||
| 259 | + for (var i in list) { | ||
| 260 | + var item = list[i]; | ||
| 261 | + if (item.id == iter.id) { | ||
| 262 | + return i; | ||
| 263 | + } | ||
| 264 | + } | ||
| 265 | + return -1; | ||
| 266 | + }, | ||
| 267 | + | ||
| 268 | + //筛选组合购,纯粹的数组按活动id分组 | ||
| 269 | + find_split: function(arr) { | ||
| 270 | + //过滤只有团购的商品 | ||
| 271 | + var oarr = arr.goods.filter(function(ele) { | ||
| 272 | + return ele.prom_type == 7 | ||
| 273 | + }) | ||
| 274 | + if(!oarr || oarr.length==0) return null; | ||
| 275 | + //看一下有多少个不同的团购 | ||
| 276 | + var map = {},dest = []; | ||
| 277 | + for (var i = 0; i < oarr.length; i++) { | ||
| 278 | + var ai = oarr[i]; | ||
| 279 | + var index=map[ai.prom_id] | ||
| 280 | + if (!index) { | ||
| 281 | + dest.push({ | ||
| 282 | + prom_id: ai.prom_id, | ||
| 283 | + data: [ai] | ||
| 284 | + }); | ||
| 285 | + map[ai.prom_id]=dest.length; //存储下标 | ||
| 286 | + } else { | ||
| 287 | + var dj = dest[index-1]; | ||
| 288 | + dj.data.push(ai); | ||
| 289 | + } | ||
| 290 | + } | ||
| 291 | + return dest; | ||
| 292 | + } | ||
| 293 | + | ||
| 294 | + | ||
| 295 | +} |
pages/cart/cart2/cart2.js
| 1 | -var t = getApp(),app=t, a = t.request, e = require("../../../utils/common.js"), | ||
| 2 | - s = require("../../../utils/util.js"),ut=s, o = require("../../../utils/md5.js"), to = getApp(); | ||
| 3 | -var oo=t.globalData.setting,os=oo; | 1 | +var t = getApp(), app = t, a = t.request, e = require("../../../utils/common.js"), |
| 2 | + s = require("../../../utils/util.js"), ut = s, o = require("../../../utils/md5.js"), to = getApp(); | ||
| 3 | +var oo = t.globalData.setting, os = oo; | ||
| 4 | var regeneratorRuntime = require('../../../utils/runtime.js'); | 4 | var regeneratorRuntime = require('../../../utils/runtime.js'); |
| 5 | var util_pay = require("../../../utils/pay.js"); | 5 | var util_pay = require("../../../utils/pay.js"); |
| 6 | +var zh_calc = require("zh_calculate.js"); | ||
| 7 | + | ||
| 8 | +Page({ | ||
| 9 | + data: { | ||
| 10 | + url: t.globalData.setting.url, | ||
| 11 | + resourceUrl: t.globalData.setting.resourceUrl, | ||
| 12 | + imgUrl: t.globalData.setting.imghost, | ||
| 13 | + goods: null, | ||
| 14 | + order: null, | ||
| 15 | + orderPrices: null, | ||
| 16 | + coupons: null, | ||
| 17 | + coupon: null, | ||
| 18 | + invoiceToggle: !0, | ||
| 19 | + payWithUserMoney: !0, | ||
| 20 | + payWithPoints: !0, | ||
| 21 | + maxWord: 0, | ||
| 22 | + enterAddressPage: !1, | ||
| 23 | + firstEnter: !0, | ||
| 24 | + //页面获取的参数 | ||
| 25 | + param: null, | ||
| 26 | + //提交订单的格式 | ||
| 27 | + formData: { | ||
| 28 | + order_amount: 0,//支付金额 | ||
| 29 | + total_amount: 0,//总价 | ||
| 30 | + all_price: 0,//商品卖的总价 | ||
| 31 | + pay_points: 0,//使用积分 | ||
| 32 | + user_money: 0,//使用余额 | ||
| 33 | + couponCode: "",//使用优惠券(多单就用逗号隔开) | ||
| 34 | + shipping_price: 0,//物流费用 | ||
| 35 | + }, | ||
| 36 | + /*-----------当是购物车结算的时候-------------*/ | ||
| 37 | + cartlist: null, | ||
| 38 | + old_cartlist: null, | ||
| 39 | + cartlist_y: null, //购物车原始列表 | ||
| 40 | + js_use_money: 0, //是否使用余额 | ||
| 41 | + is_all_zt: 1, //是否全部都是自提 | ||
| 42 | + | ||
| 43 | + /*----------------立即购买---------------------*/ | ||
| 44 | + is_b_now: 0, //0是购物车结算 1立即购买 | ||
| 45 | + bn_goods: null, //立即购买时候的调用商品 | ||
| 46 | + bn_use_money: 0,//是否使用余额 | ||
| 47 | + bn_exp_type: 1, //0是物流 1自提 | ||
| 48 | + bn_pick: 0, //选择的门店 | ||
| 49 | + bn_pickname: "", //选择的门店名称 | ||
| 50 | + bn_t_exp_t: 0, //判断商品和门店一起决定的物流自提的方式0 都可以 1自提 2物流 | ||
| 51 | + | ||
| 52 | + bn_plus_cut_price: 0, //显示等级卡会优惠多少钱 | ||
| 53 | + /*------------------------*/ | ||
| 54 | + user_addr: null,//物流 | ||
| 55 | + userinfo: null, //获取会员 | ||
| 56 | + /*----------物流选择--------*/ | ||
| 57 | + wu_arr: null, | ||
| 58 | + index: 0, | ||
| 59 | + w_sele_index: 0, | ||
| 60 | + | ||
| 61 | + //判断页面是返回回来的还是 首次进入的 | ||
| 62 | + isclose: 1, | ||
| 63 | + //申请提现的金额 | ||
| 64 | + txmon: 0, | ||
| 65 | + yuer: 0, | ||
| 66 | + //提交中,不重复提交 | ||
| 67 | + is_summit_ing: 0, | ||
| 68 | + //--更优惠券抵用有关,立即购买的,如果是购物车,就要把相应的值,写入cartlist数组中-- | ||
| 69 | + ckeck_quan_price: 0, | ||
| 70 | + check_quan_price_list: '', | ||
| 71 | + check_quan_ware_list: '', | ||
| 72 | + | ||
| 73 | + // 设计一个数组来存放已经选择了的券编号,coupon_no是券号,money是面值,coupon_price是真正优惠的价格,数组的下标是pickid | ||
| 74 | + //using_quan[11]={coupon_no:"1212121",money:"20",coupon_price:"45"} | ||
| 75 | + using_quan: {}, | ||
| 76 | + open_quan: 0, | ||
| 77 | + //选择的券列表 | ||
| 78 | + selected_quan_list: null, | ||
| 79 | + //选择的券的门店 | ||
| 80 | + selected_quan_pick: null, | ||
| 81 | + is_close_quan: 0, | ||
| 82 | + disabled: 0, | ||
| 83 | + open_express: 0,//控制选择物流名列表 的属性 | ||
| 84 | + | ||
| 85 | + is_express: 0, //选中物流的属性 | ||
| 86 | + expres_name: "", //点击选定 | ||
| 87 | + isopen: 0, //券的说明 | ||
| 88 | + is_coupon: null, //选择券的控制属性 | ||
| 89 | + is_shipping_code: "",//插入用户默认地址 | ||
| 90 | + wu_arr_txt: "", //要更新的物流的字段 | ||
| 91 | + | ||
| 92 | + sales_rules: 1, //默认是显示线上库存 | ||
| 93 | + isget_by_quan: {}, //是否调用了接口获取包邮券 | ||
| 94 | + get_by_quan_list: null, //立即购买的 | ||
| 95 | + get_by_quan_list_cart: {}, //购物车的 | ||
| 96 | + by_quan_list_cart: null, //点击选择的包邮列表 | ||
| 97 | + | ||
| 98 | + //如果是全场包邮了,或者是全场不包邮了,就不要选包邮券 | ||
| 99 | + is_no_by: {}, | ||
| 100 | + is_by: {}, | ||
| 101 | + is_quan_by: {}, | ||
| 102 | + //--购买赠送的商品-- | ||
| 103 | + buy_now_gift_goods: null, | ||
| 104 | + //--订单优惠-- | ||
| 105 | + order_prom: {}, | ||
| 106 | + //-- 购物车优惠活动 -- | ||
| 107 | + prom_goods_map: {}, | ||
| 108 | + //-- order_prom_list -- | ||
| 109 | + order_prom_list_cart: null, | ||
| 110 | + | ||
| 111 | + ispt_goods: 0, //是否平摊至单品,0要平摊 1不平摊 | ||
| 112 | + | ||
| 113 | + rank_switch: 0, //是不是开同等级卡 | ||
| 114 | + show_card: null, //显示的等级卡 | ||
| 115 | + card_name: '', //显示的卡的名称 | ||
| 116 | + card_cut_price: null,//减价多少钱 | ||
| 117 | + | ||
| 118 | + show_submit: 0, //提交按钮变正常显示 | ||
| 119 | + is_get_offline: 1, | ||
| 120 | + | ||
| 121 | + tabs: ['门店自提', '快递邮寄'], | ||
| 122 | + currentTabIndex: 1, | ||
| 123 | + }, | ||
| 124 | + onLoad: function (t) { | ||
| 125 | + wx.setNavigationBarTitle({title: "填写订单",}) | ||
| 126 | + var th = this; | ||
| 127 | + this.setData({is_b_now: t.is_bnow == undefined ? 0 : t.is_bnow,}); | ||
| 128 | + th.data.param = t; | ||
| 129 | + //清理一下,确保最新的系统配置 | ||
| 130 | + getApp().globalData.config2 = null; | ||
| 131 | + //清空is_pick_up | ||
| 132 | + getApp().request.put("/api/weshop/useraddress/updatePickUp", { | ||
| 133 | + data: {user_id: getApp().globalData.user_id, is_pickup: 0}, | ||
| 134 | + success: function (s) { | ||
| 135 | + } | ||
| 136 | + }); | ||
| 137 | + | ||
| 138 | + | ||
| 139 | + }, | ||
| 140 | + onUnload: function () { | ||
| 141 | + this.setData({isclose: 1}) | ||
| 142 | + }, | ||
| 143 | + onHide: function () { | ||
| 144 | + this.setData({ | ||
| 145 | + isget_by_quan: {}, | ||
| 146 | + is_no_by: {}, | ||
| 147 | + is_by: {} | ||
| 148 | + }) | ||
| 149 | + }, | ||
| 150 | + | ||
| 151 | + //----------子页返回父页触发---------- | ||
| 152 | + onShow: function () { | ||
| 153 | + var th = this; | ||
| 154 | + th.setData({show_submit: 0}); //让提交先掩藏 | ||
| 155 | + th.data.g_cart_q_time = null; | ||
| 156 | + | ||
| 157 | + if (th.data.isclose == 0) { | ||
| 158 | + wx.navigateTo({ | ||
| 159 | + url: "/pages/index/index/index" | ||
| 160 | + }) | ||
| 161 | + | ||
| 162 | + } else { | ||
| 163 | + this.getuser_addr(function (ie) { | ||
| 164 | + | ||
| 165 | + console.log("getuser_addr") | ||
| 166 | + console.log(ie) | ||
| 167 | + | ||
| 168 | + //地址切换要把包邮券清空 | ||
| 169 | + if (!th.data.user_addr || !ie || th.data.user_addr.address_id != ie.address_id) { | ||
| 170 | + var using_quan = th.data.using_quan; | ||
| 171 | + for (var i in using_quan) { | ||
| 172 | + var item = using_quan[i]; | ||
| 173 | + if (item.isby == 1) { | ||
| 174 | + var ob = {}, txt = "using_quan[" + i + "]"; | ||
| 175 | + ob[txt] = {}; | ||
| 176 | + th.setData(ob); | ||
| 177 | + } | ||
| 178 | + } | ||
| 179 | + th.data.isget_by_quan = {}; | ||
| 180 | + } | ||
| 181 | + | ||
| 182 | + | ||
| 183 | + th.data.prom_goods_map = {}; | ||
| 184 | + th.data.is_summit_ing = 0; | ||
| 185 | + //更换地址回来要重新调用计算价钱的接口 | ||
| 186 | + if (!th.data.user_addr || th.data.user_addr.address_id != ie.address_id) { | ||
| 187 | + th.setData({user_addr: ie}); | ||
| 188 | + if (th.data.is_b_now == 1) { | ||
| 189 | + if (th.data.bn_goods) { | ||
| 190 | + th.setData({add_back: 1}); | ||
| 191 | + //th.calculatePrice2(); | ||
| 192 | + } | ||
| 193 | + } else { | ||
| 194 | + if (th.data.cartlist) { | ||
| 195 | + th.setData({add_back: 1}); | ||
| 196 | + //th.calculatePrice(); | ||
| 197 | + } | ||
| 198 | + } | ||
| 199 | + } else { | ||
| 200 | + th.setData({user_addr: ie}); | ||
| 201 | + } | ||
| 202 | + var going = 0; | ||
| 203 | + | ||
| 204 | + | ||
| 205 | + //使用计时器,避免空现象 | ||
| 206 | + /*--- | ||
| 207 | + var jishi= setInterval(function () { | ||
| 208 | + if (th.data.is_b_now == 1 && going==0) { | ||
| 209 | + if(th.data.bn_goods) { | ||
| 210 | + th.calculatePrice2();going=1;clearInterval(jishi); | ||
| 211 | + } | ||
| 212 | + }else if(going==0) { | ||
| 213 | + if (th.data.cartlist){ | ||
| 214 | + th.calculatePrice();going = 1; clearInterval(jishi); | ||
| 215 | + } | ||
| 216 | + } | ||
| 217 | + },500)--*/ | ||
| 218 | + | ||
| 219 | + }); | ||
| 220 | + var is_card_back = getApp().globalData.is_card_back; | ||
| 221 | + //--更新默认地址--,看一下是不是跳到地址页面,同时也不是购买等级卡返回的,这里很重要,否则会重新更新收货物流公司 | ||
| 222 | + if (!getApp().globalData.is_cart_old && !is_card_back && !getApp().globalData.plus_buy_back) { | ||
| 223 | + this.update_code(); | ||
| 224 | + } else { | ||
| 225 | + getApp().globalData.is_cart_old = 0; | ||
| 226 | + getApp().globalData.plus_buy_back = 0; | ||
| 227 | + } | ||
| 228 | + } | ||
| 229 | + | ||
| 230 | + //先获取是否有关闭使用优惠券 | ||
| 231 | + getApp().getConfig2(function (ee) { | ||
| 232 | + var json_d = JSON.parse(ee.switch_list); | ||
| 233 | + th.data.json_d = json_d; | ||
| 234 | + th.data.ispt_goods = json_d.ispt_goods; //是不是平摊到单品的控制参数赋值 | ||
| 235 | + var is_default_logistics = json_d.is_default_logistics; | ||
| 236 | + | ||
| 237 | + th.setData({ | ||
| 238 | + is_close_quan: json_d.is_close_quan, | ||
| 239 | + sales_rules: ee.sales_rules, | ||
| 240 | + rank_switch: json_d.rank_switch, | ||
| 241 | + is_default_logistics: is_default_logistics | ||
| 242 | + }); | ||
| 243 | + | ||
| 244 | + var rank_switch = json_d.rank_switch; | ||
| 245 | + var max_price = -1; | ||
| 246 | + var show_card = null; | ||
| 247 | + var name = ""; | ||
| 248 | + //如果有开等级卡的时候, | ||
| 249 | + //因为都是调接口,要返回在计算 | ||
| 250 | + if (rank_switch == 2) { | ||
| 251 | + //-- 获取所有的等级卡, -- | ||
| 252 | + getApp().request.promiseGet("/api/weshop/plus/vip/mem/bership/list?storeId=" + os.stoid, | ||
| 253 | + {}).then(res => { | ||
| 254 | + if (res.data.code == 0) { | ||
| 255 | + var plusCard = res.data.data; | ||
| 256 | + //-- 循环判断,拿到最贵的那张卡 -- | ||
| 257 | + for (var ih in plusCard) { | ||
| 258 | + if (plusCard[ih].IsStopBuy == true) { | ||
| 259 | + continue; | ||
| 260 | + } | ||
| 261 | + if (max_price < 0) { | ||
| 262 | + max_price = plusCard[ih].CardFee; | ||
| 263 | + name = 'card' + plusCard[ih]['CorrPrice']; | ||
| 264 | + show_card = plusCard[ih]; | ||
| 265 | + } else { | ||
| 266 | + if (max_price < plusCard[ih].CardFee) { | ||
| 267 | + max_price = plusCard[ih].CardFee; | ||
| 268 | + name = 'card' + plusCard[ih]['CorrPrice']; | ||
| 269 | + show_card = plusCard[ih]; | ||
| 270 | + } | ||
| 271 | + } | ||
| 272 | + } | ||
| 273 | + | ||
| 274 | + if (show_card) { | ||
| 275 | + name = name.toLowerCase(); | ||
| 276 | + th.setData({card_name: name, show_card: show_card}) | ||
| 277 | + } | ||
| 278 | + } | ||
| 279 | + //-----先获取物流,再获取用户信息,再展示页面----- | ||
| 280 | + th.get_wuliu(th.get_info(th.show_page)); | ||
| 281 | + }) | ||
| 282 | + } else { | ||
| 283 | + //-----先获取物流,再获取用户信息,再展示页面----- | ||
| 284 | + th.get_wuliu(th.get_info(th.show_page)); | ||
| 285 | + } | ||
| 286 | + | ||
| 287 | + }, 1); | ||
| 288 | + | ||
| 289 | + //值在这里换 | ||
| 290 | + getApp().globalData.plus_buy_back = 0; | ||
| 291 | + }, | ||
| 292 | + | ||
| 293 | + //-------------------获取物流--------------- | ||
| 294 | + get_wuliu(func) { | ||
| 295 | + var th = this; | ||
| 296 | + to.getwuliu(function (e) { | ||
| 297 | + //系统是是否开启了默认的物流 | ||
| 298 | + if (th.data.is_default_logistics) { | ||
| 299 | + //如果第一个不是开启默认,说明要让用户自己选 | ||
| 300 | + if (!e[0].is_default) { | ||
| 301 | + th.setData({is_default_logistics: 0}); | ||
| 302 | + } | ||
| 303 | + } | ||
| 304 | + th.setData({wu_arr: e}) | ||
| 305 | + typeof func == "function" && func(); | ||
| 306 | + }) | ||
| 307 | + }, | ||
| 308 | + //------获取会员信息-----先获取用户信息,在进行下一步--- | ||
| 309 | + get_info: function (func) { | ||
| 310 | + var user_id = t.globalData.user_id; | ||
| 311 | + to.auth.get_u(func); | ||
| 312 | + }, | ||
| 313 | + | ||
| 314 | + //------获取会员收货地址----- | ||
| 315 | + getuser_addr: function (func) { | ||
| 316 | + var th = this; | ||
| 317 | + a.get("/api/weshop/useraddress/page", { | ||
| 318 | + data: {user_id: to.globalData.user_id, store_id: oo.stoid, pageSize: 600, t: Math.random()}, | ||
| 319 | + success: function (su) { | ||
| 320 | + /*--- | ||
| 321 | + var user_addr=[ | ||
| 322 | + { 'address_id': 882, 'user_id': 2661, 'consignee': '测试测试测', 'province': 3102, 'city': 3431, 'district': 3466, | ||
| 323 | + 'address': 'ed', 'more_address': '山西-长治市-襄垣县-虎(音si)亭镇', 'mobile': 13012345678,'is_default':1}, | ||
| 324 | + ];---*/ | ||
| 325 | + var item = null; | ||
| 326 | + if (su.data.code == 0 && su.data.data && su.data.data.pageData) { | ||
| 327 | + var user_addr = su.data.data.pageData; | ||
| 328 | + var def_item = null; | ||
| 329 | + for (var i = 0; i < user_addr.length; i++) { | ||
| 330 | + if (user_addr[i]['is_default'] == 1) { | ||
| 331 | + def_item = user_addr[i]; | ||
| 332 | + } | ||
| 333 | + if (user_addr[i]['is_pickup'] == 1) { | ||
| 334 | + item = user_addr[i]; | ||
| 335 | + } | ||
| 336 | + } | ||
| 337 | + | ||
| 338 | + if (item == null) item = def_item; | ||
| 339 | + if (item == null) item = user_addr[0]; | ||
| 340 | + } | ||
| 341 | + | ||
| 342 | + if (item == undefined) item = null; | ||
| 343 | + if (!item) th.setData({user_addr: null}); //地址为空的时候,要清空,因为返回的时候,有缓存 | ||
| 344 | + | ||
| 345 | + func(item); | ||
| 346 | + } | ||
| 347 | + }); | ||
| 348 | + }, | ||
| 349 | + | ||
| 350 | + //----------------展示页面,是再获取用户信息之后-------------- | ||
| 351 | + show_page: function () { | ||
| 352 | + var th = this, ta = this.data.param; | ||
| 353 | + //th.setData({ userinfo: getApp().globalData.userInfo,}); //这个余额被缓存了 | ||
| 354 | + | ||
| 355 | + //会员的信息,要获取最新 | ||
| 356 | + var user = getApp().globalData.userInfo; | ||
| 357 | + getApp().request.get("/api/weshop/users/get/" + oo.stoid + "/" + user.user_id, { | ||
| 358 | + data: {r: Math.random()}, | ||
| 359 | + success: function (e) { | ||
| 360 | + getApp().globalData.userInfo = e.data.data; | ||
| 361 | + th.setData({userinfo: e.data.data}); | ||
| 362 | + | ||
| 363 | + //选获取地址 | ||
| 364 | + th.getuser_addr(function (addr) { | ||
| 365 | + th.setData({user_addr: addr}); | ||
| 366 | + //--------------------------立即购买------------------ | ||
| 367 | + if (ta.is_bnow == 1) { | ||
| 368 | + //读取门店 | ||
| 369 | + to.get_allsto(function (e) { | ||
| 370 | + th.setData({allsto: e}); | ||
| 371 | + //获取立即购买的商品信息 | ||
| 372 | + th.get_buy_goods(ta.goods_id); | ||
| 373 | + }); | ||
| 374 | + } else { | ||
| 375 | + //------------------------购物车结算---------------------- | ||
| 376 | + //读取门店 | ||
| 377 | + to.get_allsto(function (e) { | ||
| 378 | + th.setData({allsto: e}); | ||
| 379 | + //-------获取购物车已经选择的商品-------- | ||
| 380 | + th.get_cart(); | ||
| 381 | + }) | ||
| 382 | + } | ||
| 383 | + }); | ||
| 384 | + | ||
| 385 | + //获取提现金额 | ||
| 386 | + getApp().request.get("/api/weshop/withdrawals/summoney", { | ||
| 387 | + data: {user_id: to.globalData.user_id, store_id: oo.stoid, status: 0}, | ||
| 388 | + success: function (su) { | ||
| 389 | + if (su.data.code == 0) { | ||
| 390 | + var yuer = parseFloat(th.data.userinfo.user_money - | ||
| 391 | + (th.data.userinfo.frozen_money > 0 ? th.data.userinfo.frozen_money : 0) - su.data.data.summoney).toFixed(2); | ||
| 392 | + th.setData({txmon: su.data.data.summoney, yuer: yuer}); | ||
| 393 | + } | ||
| 394 | + } | ||
| 395 | + }); | ||
| 396 | + | ||
| 397 | + }, | ||
| 398 | + }); | ||
| 399 | + | ||
| 400 | + }, | ||
| 401 | + | ||
| 402 | + | ||
| 403 | + //-----真的获取购物车,入口-------- | ||
| 404 | + get_cart: function () { | ||
| 405 | + var th = this, app = getApp(); | ||
| 406 | + a.get("/api/weshop/cart/list", { | ||
| 407 | + data: { | ||
| 408 | + user_id: to.globalData.user_id, selected: 1, state: 0, | ||
| 409 | + store_id: oo.stoid, pageSize: 600 | ||
| 410 | + }, | ||
| 411 | + success: async function (su) { | ||
| 412 | + //按门店分类的数组 | ||
| 413 | + var arr = new Array(); | ||
| 414 | + var carr = su.data.data.pageData; | ||
| 415 | + th.data.cartlist_y = carr; //存储原始购物车列表 | ||
| 416 | + | ||
| 417 | + //---是不是购买等级卡成功的返回---等级卡显示的判断--- | ||
| 418 | + var is_card_back = getApp().globalData.is_card_back; | ||
| 419 | + | ||
| 420 | + for (var i = 0; i < carr.length; i++) { | ||
| 421 | + var item1 = carr[i]; | ||
| 422 | + //要把优惠活动加入,prom_goods_map中,赠品不要运算 | ||
| 423 | + if (item1.prom_type == 3 && item1.is_gift != 1) { | ||
| 424 | + await th.add_prom_goods_map(item1); | ||
| 425 | + } | ||
| 426 | + | ||
| 427 | + //要把组合购的东西拿出来算一下 | ||
| 428 | + if (item1.prom_type == 7) { | ||
| 429 | + var isok = 1; | ||
| 430 | + //如果有组合购 | ||
| 431 | + var url = "/api/weshop/prom/zhbuy/get/" + os.stoid + "/" + item1.prom_id+'/'+getApp().globalData.userInfo.user_id; | ||
| 432 | + await getApp().request.promiseGet(url, {}).then(res => { | ||
| 433 | + if (res.data.code == 0 && res.data.data) { | ||
| 434 | + //如果活动已经结束 | ||
| 435 | + if (res.data.data.is_end == 1) { | ||
| 436 | + isok = 0; | ||
| 437 | + } | ||
| 438 | + if (ut.gettimestamp() > res.data.data.end_time) { | ||
| 439 | + isok = 0; | ||
| 440 | + } | ||
| 441 | + } else { | ||
| 442 | + //未找到商品的活动 | ||
| 443 | + isok = 0; | ||
| 444 | + } | ||
| 445 | + item1.act = res.data.data; | ||
| 446 | + }) | ||
| 447 | + | ||
| 448 | + if (!isok) { | ||
| 449 | + getApp().my_warnning("组合购的活动已经过期", 0, th); | ||
| 450 | + return false; | ||
| 451 | + } | ||
| 452 | + | ||
| 453 | + } | ||
| 454 | + } | ||
| 455 | + | ||
| 456 | + //在分组的时候,就不要再调用接口,await | ||
| 457 | + for (var i = 0; i < carr.length; i++) { | ||
| 458 | + var item = carr[i]; | ||
| 459 | + | ||
| 460 | + //-- 如果是等级会员注册返回 -- | ||
| 461 | + if (is_card_back) { | ||
| 462 | + th.data.card_name = th.data.userinfo.card_field; | ||
| 463 | + //如果是秒杀的返回,就要把活动弄回0 | ||
| 464 | + if (item['prom_type'] == 1) { | ||
| 465 | + item['prom_type'] = 0; | ||
| 466 | + item['prom_id'] = 0; | ||
| 467 | + } | ||
| 468 | + // 拼团,搭配购不计算,赠品也不计算 | ||
| 469 | + if (item['prom_type'] != 5 && item['prom_type'] != 6 && !item.is_gift && !item['is_collocation'] && item.goods_price > item[th.data.card_name]) { | ||
| 470 | + item.goods_price = item[th.data.card_name]; | ||
| 471 | + carr[i].goods_price = item[th.data.card_name]; | ||
| 472 | + | ||
| 473 | + } | ||
| 474 | + } else { | ||
| 475 | + // 拼团,搭配购不计算,赠品也不计算,同时会员还未购买等级会员 | ||
| 476 | + if (item[th.data.card_name] > 0 && item['prom_type'] != 5 && item['prom_type'] != 6 && !th.data.userinfo.card_field | ||
| 477 | + && !item.is_gift && !item['is_collocation'] && item.goods_price > item[th.data.card_name]) { | ||
| 478 | + item.cut_price1 = item.goods_price - item[th.data.card_name]; | ||
| 479 | + carr[i].cut_price1 = (item.goods_price - item[th.data.card_name]) * item.goods_num; | ||
| 480 | + } | ||
| 481 | + | ||
| 482 | + } | ||
| 483 | + | ||
| 484 | + item.original_img = oo.imghost + item.original_img; | ||
| 485 | + /*----接口要弄出来的,先顶着-----*/ | ||
| 486 | + var pcid = item.pick_id; | ||
| 487 | + var find = 0; | ||
| 488 | + //----如果有就加进去,没有就新增一个---- | ||
| 489 | + //-----------循环查找门店------------- | ||
| 490 | + if (arr.length > 0) { | ||
| 491 | + for (var j = 0; j < arr.length; j++) { | ||
| 492 | + if (arr[j].pickup_id == pcid) { | ||
| 493 | + arr[j].goods.push(item); | ||
| 494 | + //if(item.is_gift!=1){ | ||
| 495 | + //确定配送方式 | ||
| 496 | + if (arr[j].distr_t == 0) { | ||
| 497 | + arr[j].distr_t = item.distr_type; | ||
| 498 | + } | ||
| 499 | + var e_t = 0 | ||
| 500 | + switch (arr[j].distr_t) { | ||
| 501 | + case 0: | ||
| 502 | + e_t = 1; | ||
| 503 | + if (th.data.json_d.pickupway && th.data.json_d.pickupway == 1) e_t = 0; | ||
| 504 | + break; | ||
| 505 | + case 1: | ||
| 506 | + e_t = 1; | ||
| 507 | + break; | ||
| 508 | + case 2: | ||
| 509 | + e_t = 0; | ||
| 510 | + break; | ||
| 511 | + } | ||
| 512 | + arr[j].exp_type = e_t; | ||
| 513 | + if (e_t == 0) th.setData({is_all_zt: 0}); | ||
| 514 | + //} | ||
| 515 | + | ||
| 516 | + //-- 把等级卡会优惠多少钱装进去 -- | ||
| 517 | + if (item.cut_price) arr[j].card_cut_price += item.cut_price; | ||
| 518 | + find = 1; | ||
| 519 | + break; | ||
| 520 | + } | ||
| 521 | + } | ||
| 522 | + } | ||
| 523 | + //------如果没有找到----- | ||
| 524 | + if (find == 0) { | ||
| 525 | + var pikname = '', sto = null; | ||
| 526 | + //----找到门店名称----- | ||
| 527 | + for (var k = 0; k < th.data.allsto.length; k++) { | ||
| 528 | + if (pcid == th.data.allsto[k].pickup_id) { | ||
| 529 | + pikname = th.data.allsto[k].pickup_name; | ||
| 530 | + sto = th.data.allsto[k]; | ||
| 531 | + break; | ||
| 532 | + } | ||
| 533 | + } | ||
| 534 | + var e_t = 0, dis_t = 0;//物流方式,配送方式 | ||
| 535 | + if (item.distr_type == 0) { | ||
| 536 | + dis_t = sto.distr_type; | ||
| 537 | + } else { | ||
| 538 | + dis_t = item.distr_type; | ||
| 539 | + } | ||
| 540 | + switch (dis_t) { | ||
| 541 | + case 0: | ||
| 542 | + e_t = 1; | ||
| 543 | + //-- 系统后台有设置要默认的 -- | ||
| 544 | + if (th.data.json_d.pickupway && th.data.json_d.pickupway == 1) e_t = 0; | ||
| 545 | + break; | ||
| 546 | + case 1: | ||
| 547 | + e_t = 1; | ||
| 548 | + break; | ||
| 549 | + case 2: | ||
| 550 | + e_t = 0; | ||
| 551 | + break; | ||
| 552 | + } | ||
| 553 | + //如果是物流的话,全部自提的控制要弄成0 | ||
| 554 | + if (e_t == 0) th.setData({is_all_zt: 0}); | ||
| 555 | + | ||
| 556 | + var narr = new Array(); | ||
| 557 | + narr.push(item); | ||
| 558 | + | ||
| 559 | + //-----------拼装购物车结算的数组,如果有默认物流时要用默认物流编号,计算默认的物流,不管是不是自提都算一下----------------- | ||
| 560 | + var m_wind = 0, def_exp_code = getApp().globalData.userInfo.def_exp_code; | ||
| 561 | + if (def_exp_code) { | ||
| 562 | + for (var k = 0; k < th.data.wu_arr.length; k++) { | ||
| 563 | + var item = th.data.wu_arr[k]; | ||
| 564 | + if (def_exp_code == item.code) { | ||
| 565 | + m_wind = k; | ||
| 566 | + } | ||
| 567 | + } | ||
| 568 | + } | ||
| 569 | + | ||
| 570 | + var ie = { | ||
| 571 | + pickup_id: pcid, | ||
| 572 | + pname: pikname, | ||
| 573 | + goods: narr, | ||
| 574 | + wind: m_wind, | ||
| 575 | + distr_t: dis_t, | ||
| 576 | + card_cut_price: 0, | ||
| 577 | + exp_type: e_t, | ||
| 578 | + goods_price: 0, | ||
| 579 | + shipping_price: 0, | ||
| 580 | + user_money: 0, | ||
| 581 | + total_amount: 0, | ||
| 582 | + order_amount: 0, | ||
| 583 | + user_note: 0 | ||
| 584 | + }; | ||
| 585 | + | ||
| 586 | + //-- 把等级卡会优惠多少钱装进去 -- | ||
| 587 | + if (item.cut_price1) ie.card_cut_price += item.cut_price1; | ||
| 588 | + arr.push(ie); | ||
| 589 | + | ||
| 590 | + } | ||
| 591 | + } | ||
| 592 | + //-- 如果是回退回来的情况 -- | ||
| 593 | + if (th.data.cartlist && th.data.cartlist.length > 0) { | ||
| 594 | + for (var kj in th.data.cartlist) { | ||
| 595 | + for (var ih in arr) { | ||
| 596 | + var ie = arr[ih]; | ||
| 597 | + if (ie.pickup_id == th.data.cartlist[kj].pickup_id) { | ||
| 598 | + ie.exp_type = parseInt(th.data.cartlist[kj].exp_type); | ||
| 599 | + ie.wind = parseInt(th.data.cartlist[kj].wind); | ||
| 600 | + break; | ||
| 601 | + } | ||
| 602 | + } | ||
| 603 | + } | ||
| 604 | + } | ||
| 605 | + | ||
| 606 | + //-- 循环计算一下线下取价 -- | ||
| 607 | + for (var k = 0; k < arr.length; k++) { | ||
| 608 | + var c_item = arr[k]; | ||
| 609 | + var item = arr[k].goods; | ||
| 610 | + var offline_price = 0; | ||
| 611 | + var offline_num = 0; | ||
| 612 | + for (var c = 0; c < item.length; c++) { | ||
| 613 | + //-- 如果这个商品是线下取价的时候 -- | ||
| 614 | + if (item[c].offline_price > 0 && item[c].prom_type != 7) { | ||
| 615 | + offline_price += (item[c].goods_price - item[c].offline_price) * item[c].goods_num; | ||
| 616 | + offline_num += item[c].goods_num; | ||
| 617 | + } | ||
| 618 | + } | ||
| 619 | + if (offline_price > 0) { | ||
| 620 | + c_item.offline_price = offline_price; | ||
| 621 | + c_item.offline_num = offline_num; | ||
| 622 | + c_item.is_offline = 1; | ||
| 623 | + } | ||
| 624 | + } | ||
| 625 | + | ||
| 626 | + //每一个门店内的组合购要进行拆分, | ||
| 627 | + //还得把组合商品的多余商品的线下价格算一算 | ||
| 628 | + for (let var1 in arr) { | ||
| 629 | + var u_item = arr[var1]; | ||
| 630 | + //把组合购进行分组 | ||
| 631 | + var obj = zh_calc.find_split(u_item); | ||
| 632 | + if (!obj) continue; | ||
| 633 | + //存储不同活动的商品列表 | ||
| 634 | + u_item.zh_prom_goods = {}; | ||
| 635 | + for (let var1 in obj) { | ||
| 636 | + var h_item = obj[var1]; | ||
| 637 | + var gdlist = null; | ||
| 638 | + var url1 = "/api/weshop/prom/zhbuyGoods/page"; | ||
| 639 | + var req_data = { | ||
| 640 | + page: 1, | ||
| 641 | + pageSize: 2000, | ||
| 642 | + store_id: os.stoid, | ||
| 643 | + zh_id: h_item.prom_id, | ||
| 644 | + } | ||
| 645 | + await getApp().request.promiseGet(url1, { | ||
| 646 | + data: req_data | ||
| 647 | + }).then(res => { | ||
| 648 | + if (ut.ajax_ok(res)) { | ||
| 649 | + gdlist = res.data.data.pageData; | ||
| 650 | + } | ||
| 651 | + }) | ||
| 652 | + //获取活动需要的商品列表 | ||
| 653 | + u_item.zh_prom_goods[h_item.prom_id] = {gdlist: gdlist, act: h_item.act}; | ||
| 654 | + } | ||
| 655 | + zh_calc.fir_set_arr(u_item, th); | ||
| 656 | + } | ||
| 657 | + //深拷贝 | ||
| 658 | + th.data.old_cartlist = JSON.parse(JSON.stringify(arr)); | ||
| 659 | + th.setData({ | ||
| 660 | + cartlist: arr, | ||
| 661 | + }); | ||
| 662 | + //--- 获取一下看有没有优惠券 ---- | ||
| 663 | + setTimeout(function () { | ||
| 664 | + var frozenQuan = null; | ||
| 665 | + var url0 = "/api/weshop/users/frozenQuan/listFrozenQuan/" + app.globalData.user_id; | ||
| 666 | + app.request.promiseGet(url0, {1: 1}).then(res => { | ||
| 667 | + if (res.data.code == 0) { | ||
| 668 | + frozenQuan = res.data.data; | ||
| 669 | + th.data.frozenQuan = frozenQuan; | ||
| 670 | + } | ||
| 671 | + th.calculatePrice(); | ||
| 672 | + th.get_cart_quan(); | ||
| 673 | + }) | ||
| 674 | + | ||
| 675 | + }, 500) | ||
| 676 | + | ||
| 677 | + } | ||
| 678 | + }); | ||
| 679 | + }, | ||
| 680 | + | ||
| 681 | + //-----获取立即购买的商品信息,入口---- | ||
| 682 | + get_buy_goods: function (e) { | ||
| 683 | + var th = this; | ||
| 684 | + var gg = to.get_b_now(); | ||
| 685 | + //--------如果goods_id一样,就是要立即购买----- | ||
| 686 | + if (e == gg.goods_id) { | ||
| 687 | + a.get("/api/weshop/goods/get/" + oo.stoid + "/" + e, { | ||
| 688 | + success: async function (t) { | ||
| 689 | + var gd = t.data.data; | ||
| 690 | + if (!gd) return false; | ||
| 691 | + | ||
| 692 | + t.data.data.original_img = oo.imghost + t.data.data.original_img; | ||
| 693 | + t.data.data['buynum'] = gg.goods_num; | ||
| 694 | + var distr_t = 0, et = 0 | ||
| 695 | + if (t.data.data.distr_type == 0) { | ||
| 696 | + distr_t = gg.pick_dis; | ||
| 697 | + } else { | ||
| 698 | + distr_t = t.data.data.distr_type; | ||
| 699 | + } | ||
| 700 | + | ||
| 701 | + switch (distr_t) { | ||
| 702 | + case 0: | ||
| 703 | + et = 1; | ||
| 704 | + //-- 系统后台有设置要默认的 -- | ||
| 705 | + if (th.data.json_d.pickupway && th.data.json_d.pickupway == 1) et = 0; | ||
| 706 | + break; | ||
| 707 | + case 1: | ||
| 708 | + et = 1; | ||
| 709 | + break; | ||
| 710 | + case 2: | ||
| 711 | + et = 0; | ||
| 712 | + break; | ||
| 713 | + } | ||
| 714 | + | ||
| 715 | + | ||
| 716 | + var m_wind = 0, def_exp_code = getApp().globalData.userInfo.def_exp_code; | ||
| 717 | + if (et == 0 && def_exp_code) { | ||
| 718 | + for (var k = 0; k < th.data.wu_arr.length; k++) { | ||
| 719 | + var item = th.data.wu_arr[k]; | ||
| 720 | + if (def_exp_code == item.code) { | ||
| 721 | + m_wind = k; | ||
| 722 | + } | ||
| 723 | + } | ||
| 724 | + } | ||
| 725 | + | ||
| 726 | + if (th.data.bn_goods) { | ||
| 727 | + et = th.data.bn_exp_type; | ||
| 728 | + m_wind = th.data.index; | ||
| 729 | + } | ||
| 730 | + | ||
| 731 | + //---是不是购买等级卡成功的返回---等级卡显示的判断--- | ||
| 732 | + var is_card_back = getApp().globalData.is_card_back; | ||
| 733 | + if (is_card_back) { | ||
| 734 | + th.data.card_name = th.data.userinfo.card_field; | ||
| 735 | + gg.goods_price = gd[th.data.card_name]; | ||
| 736 | + getApp().globalData.is_card_back = 0; | ||
| 737 | + th.setData({card_cut_price: 0}); | ||
| 738 | + //如果是秒杀的返回 | ||
| 739 | + if (gd.prom_type == 1) gd.prom_type = 0; | ||
| 740 | + } else { | ||
| 741 | + //--- 商家等级卡开通的情况下, 会员不是等级会员的情况, 商品有设置等级卡价格,同时等级卡价格小于商品的价格 | ||
| 742 | + //-- 搭配购的商品也可以单独购买,所以此时搭配购的商品要进行计算优惠 -- | ||
| 743 | + 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) { | ||
| 744 | + var cut_p = (gg.goods_price - gd[th.data.card_name]) * gg.goods_num; | ||
| 745 | + th.setData({card_cut_price: cut_p}); | ||
| 746 | + } | ||
| 747 | + } | ||
| 748 | + | ||
| 749 | + switch (gd.prom_type) { | ||
| 750 | + case 0: | ||
| 751 | + case 2: | ||
| 752 | + case 3: | ||
| 753 | + case 4: | ||
| 754 | + case 5: | ||
| 755 | + case 6: | ||
| 756 | + case 7: | ||
| 757 | + //--此时开始计算商品的使用券相关,如果有等级价还要计算和等级价相关的, | ||
| 758 | + // 如果有优惠促销,还要把促销的部分计算在内,因为促销还有不能使用优惠券-- | ||
| 759 | + t.data.data.shop_price = gg.goods_price; | ||
| 760 | + t.data.data.goods_price = gg.goods_price; | ||
| 761 | + t.data.data.goods_num = gg.goods_num; | ||
| 762 | + th.data.ckeck_quan_price = t.data.data.shop_price * gg.goods_num; | ||
| 763 | + th.data.check_quan_price_list = t.data.data.shop_price * gg.goods_num + ""; | ||
| 764 | + th.data.check_quan_ware_list = t.data.data.erpwareid + ""; | ||
| 765 | + | ||
| 766 | + //-- 如果有线下取价的时候 -- | ||
| 767 | + if (gg.offline_price) { | ||
| 768 | + t.data.data.offline_price = gg.offline_price; | ||
| 769 | + t.data.data.pricing_type = gg.pricing_type; | ||
| 770 | + t.data.data.is_offline = 1; | ||
| 771 | + | ||
| 772 | + th.data.ckeck_quan_price = t.data.data.offline_price * gg.goods_num; | ||
| 773 | + th.data.check_quan_price_list = t.data.data.offline_price * gg.goods_num + ""; | ||
| 774 | + th.data.check_quan_ware_list = t.data.data.erpwareid + ""; | ||
| 775 | + } | ||
| 776 | + | ||
| 777 | + t.data.data.prom_id = 0; | ||
| 778 | + t.data.data.prom_type = 0; | ||
| 779 | + | ||
| 780 | + //如果立即购买那边过来,就要读取接口,查看活动的优惠内容 | ||
| 781 | + if (gg.prom_type == 3) { | ||
| 782 | + t.data.data.prom_id = gg.prom_id; | ||
| 783 | + t.data.data.prom_type = 3; | ||
| 784 | + //如果是优惠活动,就要调用活动,计算价格 | ||
| 785 | + th.buy_now_prom_goods(gg.prom_id, t.data.data, function (data) { | ||
| 786 | + //判断一下购买商品的数量是不是超过 | ||
| 787 | + if (data.gift_goods_id) { | ||
| 788 | + var num = 1; | ||
| 789 | + if (data.is_bz == 1) { | ||
| 790 | + num = data.bs; | ||
| 791 | + if (num > data.gift_limit_num) num = 0; | ||
| 792 | + } | ||
| 793 | + //如果赠品数量超出礼品库存,就取消 | ||
| 794 | + if (num > data['gift_storecount']) num = 0; | ||
| 795 | + if (num > 0) { | ||
| 796 | + var ob = {}; | ||
| 797 | + ob.is_gift = 1; | ||
| 798 | + ob.prom_id = data.prom_id; | ||
| 799 | + ob.goods_id = data.gift_goods_id; | ||
| 800 | + ob.goods_name = data.gift_goods_name; | ||
| 801 | + ob.goods_color = data.gift_goods_color; | ||
| 802 | + ob.goods_spec = data.gift_goods_spec; | ||
| 803 | + ob.original_img = os.imghost + data.gift_original_img; | ||
| 804 | + ob.market_price = data.gift_market_price; | ||
| 805 | + ob.gift_id = data.gift_id; | ||
| 806 | + ob.shop_price = 0; | ||
| 807 | + ob.buynum = num; | ||
| 808 | + ob.weight = data.gift_weight; //商品的重量 | ||
| 809 | + ob.exp_sum_type = data.gift_exp_sum_type; //商品的物流计算方式 | ||
| 810 | + ob.uniform_exp_sum = data.gift_uniform_exp_sum //统一运费的金额 | ||
| 811 | + | ||
| 812 | + th.setData({buy_now_gift_goods: ob}); | ||
| 813 | + } | ||
| 814 | + } | ||
| 815 | + | ||
| 816 | + th.setData({ | ||
| 817 | + bn_goods: data, bn_pickname: gg.pick_name, index: m_wind, | ||
| 818 | + bn_pick: gg.pick_id, bn_t_exp_t: distr_t, bn_exp_type: et | ||
| 819 | + }); | ||
| 820 | + | ||
| 821 | + //计算价格 | ||
| 822 | + th.calculatePrice2(); | ||
| 823 | + //获取优惠券 | ||
| 824 | + th.get_buy_now_quan(); | ||
| 825 | + | ||
| 826 | + }) | ||
| 827 | + } else { | ||
| 828 | + //--看是不是搭配促销-- | ||
| 829 | + if (gg.prom_type == 5) { | ||
| 830 | + t.data.data.prom_id = gg.prom_id; | ||
| 831 | + t.data.data.prom_type = 5; | ||
| 832 | + if (gg.room_id) { | ||
| 833 | + t.data.data.room_id = gg.room_id; | ||
| 834 | + } | ||
| 835 | + //--主商品要有导购id和导购类型-- | ||
| 836 | + if (gg.guide_id) { | ||
| 837 | + t.data.data.guide_id = gg.guide_id; | ||
| 838 | + t.data.data.guide_type = gg.guide_type; | ||
| 839 | + } | ||
| 840 | + th.setData({collocation_goods: gg.collocation_goods}); | ||
| 841 | + | ||
| 842 | + var cart_arr = new Array(); | ||
| 843 | + //var narr=gg.collocation_goods; | ||
| 844 | + //修改成深拷贝,确保返回是数据正确 | ||
| 845 | + var narr = JSON.parse(JSON.stringify(gg.collocation_goods)); | ||
| 846 | + | ||
| 847 | + narr.push(t.data.data); | ||
| 848 | + | ||
| 849 | + //-- 搭配促销的门店配送方式的修复 -- | ||
| 850 | + et = 1; | ||
| 851 | + distr_t = 0; | ||
| 852 | + for (var hi in narr) { | ||
| 853 | + var dis_t = narr[hi].distr_type; | ||
| 854 | + if (dis_t == 2) { | ||
| 855 | + th.setData({is_all_zt: 0}); | ||
| 856 | + et = 0; | ||
| 857 | + } | ||
| 858 | + if (dis_t > 0) { | ||
| 859 | + distr_t = dis_t; | ||
| 860 | + } | ||
| 861 | + } | ||
| 862 | + | ||
| 863 | + //自选的时候,系统配置了默认的配送方式是物流的时候 | ||
| 864 | + if (distr_t == 0 && th.data.json_d.pickupway && th.data.json_d.pickupway == 1) { | ||
| 865 | + et = 0; | ||
| 866 | + } | ||
| 867 | + | ||
| 868 | + | ||
| 869 | + var ie = { | ||
| 870 | + pickup_id: gg.pick_id, | ||
| 871 | + pname: gg.pick_name, | ||
| 872 | + goods: narr, | ||
| 873 | + exp_type: et, | ||
| 874 | + wind: m_wind, | ||
| 875 | + distr_t: distr_t, | ||
| 876 | + bn_t_exp_t: distr_t, | ||
| 877 | + goods_price: 0, | ||
| 878 | + shipping_price: 0, | ||
| 879 | + user_money: 0, | ||
| 880 | + total_amount: 0, | ||
| 881 | + order_amount: 0, | ||
| 882 | + user_note: 0 | ||
| 883 | + }; | ||
| 884 | + cart_arr.push(ie); | ||
| 885 | + th.data.old_cartlist = cart_arr; | ||
| 886 | + } | ||
| 887 | + th.setData({ | ||
| 888 | + bn_goods: t.data.data, bn_pickname: gg.pick_name, index: m_wind, | ||
| 889 | + bn_pick: gg.pick_id, bn_t_exp_t: distr_t, bn_exp_type: et | ||
| 890 | + }); | ||
| 891 | + | ||
| 892 | + | ||
| 893 | + //--搭配促销也是按照购物车的方式来计算优惠券-- | ||
| 894 | + if (gg.prom_type == 5) { | ||
| 895 | + var frozenQuan = null; | ||
| 896 | + var url0 = "/api/weshop/users/frozenQuan/listFrozenQuan/" + app.globalData.user_id; | ||
| 897 | + app.request.promiseGet(url0, {1: 1}).then(res => { | ||
| 898 | + if (res.data.code == 0) { | ||
| 899 | + frozenQuan = res.data.data; | ||
| 900 | + th.data.frozenQuan = frozenQuan; | ||
| 901 | + } | ||
| 902 | + //计算价格 | ||
| 903 | + th.calculatePrice2(); | ||
| 904 | + th.get_cart_quan(); | ||
| 905 | + }); | ||
| 906 | + } else { | ||
| 907 | + //计算价格 | ||
| 908 | + th.calculatePrice2(); | ||
| 909 | + //获取优惠券, | ||
| 910 | + th.get_buy_now_quan(); | ||
| 911 | + } | ||
| 912 | + } | ||
| 913 | + | ||
| 914 | + break; | ||
| 915 | + case 1: //---秒杀----- | ||
| 916 | + var quanlist = null; | ||
| 917 | + getApp().request.get("/api/weshop/activitylist/getSJGoodsPrice/" + gd.store_id | ||
| 918 | + + "/" + gd.goods_id + "/1/" + gd.prom_id, { | ||
| 919 | + success: async function (tt) { | ||
| 920 | + if (tt.data.code == 0) { | ||
| 921 | + t.data.data.shop_price = tt.data.data.prom_price; | ||
| 922 | + } else { | ||
| 923 | + t.data.data.prom_id = 0; | ||
| 924 | + t.data.data.prom_type = 0; | ||
| 925 | + | ||
| 926 | + th.data.ckeck_quan_price = t.data.data.shop_price * gg.goods_num; | ||
| 927 | + th.data.check_quan_price_list = t.data.data.shop_price * gg.goods_num + ""; | ||
| 928 | + th.data.check_quan_ware_list = t.data.data.erpwareid + ""; | ||
| 929 | + } | ||
| 930 | + | ||
| 931 | + th.setData({ | ||
| 932 | + bn_goods: t.data.data, | ||
| 933 | + bn_pickname: gg.pick_name, | ||
| 934 | + bn_exp_type: et, | ||
| 935 | + index: m_wind, | ||
| 936 | + bn_pick: gg.pick_id, | ||
| 937 | + bn_t_exp_t: distr_t, | ||
| 938 | + bn_exp_type: et | ||
| 939 | + }); | ||
| 940 | + | ||
| 941 | + //计算价格 | ||
| 942 | + th.calculatePrice2(); | ||
| 943 | + //获取优惠券 | ||
| 944 | + th.get_buy_now_quan(); | ||
| 945 | + } | ||
| 946 | + }); | ||
| 947 | + | ||
| 948 | + break; | ||
| 949 | + } | ||
| 950 | + }, | ||
| 951 | + }); | ||
| 952 | + } | ||
| 953 | + }, | ||
| 954 | + | ||
| 955 | + //---------------检查是否有收货地址------------------- | ||
| 956 | + checkAddressList: function () { | ||
| 957 | + var t = this; | ||
| 958 | + return !(!this.data.order || null == this.data.order.userAddress) || (wx.showModal({ | ||
| 959 | + title: "请先填写或选择收货地址~", | ||
| 960 | + success: function (a) { | ||
| 961 | + a.confirm ? t.enterAddressPage() : wx.navigateBack(); | ||
| 962 | + }, | ||
| 963 | + fail: function () { | ||
| 964 | + wx.navigateBack(); | ||
| 965 | + } | ||
| 966 | + }), !1); | ||
| 967 | + }, | ||
| 968 | + showInvoice: function () { | ||
| 969 | + this.setData({ | ||
| 970 | + invoiceToggle: !this.data.invoiceToggle | ||
| 971 | + }); | ||
| 972 | + }, | ||
| 973 | + keyUpChangePay1: function (t) { | ||
| 974 | + this.setData({ | ||
| 975 | + payWithUserMoney: !(t.detail.value.length > 0) | ||
| 976 | + }); | ||
| 977 | + }, | ||
| 978 | + keyUpChangePay2: function (t) { | ||
| 979 | + this.setData({ | ||
| 980 | + payWithPoints: !(t.detail.value.length > 0) | ||
| 981 | + }); | ||
| 982 | + }, | ||
| 983 | + keyUpChangeNum: function (t) { | ||
| 984 | + this.setData({ | ||
| 985 | + maxWord: t.detail.value.length | ||
| 986 | + }); | ||
| 987 | + }, | ||
| 988 | + | ||
| 989 | + calc_per: async function (c_arr) { | ||
| 990 | + var th = this; | ||
| 991 | + //-- 循环处理 -- | ||
| 992 | + for (var i in c_arr) { | ||
| 993 | + var cart_item = c_arr[i]; //就是每一单的意思 | ||
| 994 | + var pickid = cart_item.pickup_id; | ||
| 995 | + var ord_goods = c_arr[i].goods; //就是每一单的从表的意思 | ||
| 996 | + var o_price = 0, q_conditin = 0; | ||
| 997 | + //--------循环计算总价----------- | ||
| 998 | + for (var j = 0; j < ord_goods.length; j++) { | ||
| 999 | + o_price += ord_goods[j].goods_price * ord_goods[j].goods_num; | ||
| 1000 | + } | ||
| 1001 | + | ||
| 1002 | + //---如果该门店的相关活动,就要算一下减价-- | ||
| 1003 | + if (th.data.prom_goods_map[pickid]) { | ||
| 1004 | + var ob = th.data.prom_goods_map[pickid]; | ||
| 1005 | + for (var ii in ob) { | ||
| 1006 | + var item_map = ob[ii]; | ||
| 1007 | + if (item_map.bs == undefined || item_map.bs == null) { | ||
| 1008 | + //等待,获取一下优惠活动的信息 | ||
| 1009 | + await getApp().request.promiseGet("/api/weshop/goods/getDiscount", { | ||
| 1010 | + data: { | ||
| 1011 | + price: item_map.price, prom_id: item_map.prom_id, | ||
| 1012 | + goods_num: item_map.goods_num, user_id: getApp().globalData.user_id, | ||
| 1013 | + is_bz: item_map.is_bz | ||
| 1014 | + } | ||
| 1015 | + }).then(res => { | ||
| 1016 | + if (res.data.code == 0 && res.data.data.condition) { | ||
| 1017 | + var get_data = res.data.data; | ||
| 1018 | + item_map.is_bz = get_data.is_bz; //是不是倍增 | ||
| 1019 | + item_map.bs = get_data.bs; //是不是倍数 | ||
| 1020 | + item_map.is_past = get_data.is_past; //是不是包邮 | ||
| 1021 | + item_map.prom_price = get_data.price >= 0 ? get_data.price : item_map.price; | ||
| 1022 | + item_map.s_intValue = get_data.intValue; | ||
| 1023 | + item_map.s_coupon_id = get_data.coupon_id; | ||
| 1024 | + item_map.s_coupon_num = get_data.coupon_num; | ||
| 1025 | + if (get_data.gift_id && get_data.goodsinfo) { | ||
| 1026 | + item_map.gift_id = get_data.gift_id; | ||
| 1027 | + item_map.gift_goods_id = get_data.goods_id; | ||
| 1028 | + item_map.gift_goods_name = get_data.goods_name; | ||
| 1029 | + item_map.gift_goods_color = get_data.goodsinfo.goods_color ? get_data.goodsinfo.goods_color : ''; | ||
| 1030 | + item_map.gift_goods_spec = get_data.goodsinfo.goods_spec ? get_data.goodsinfo.goods_spec : ''; | ||
| 1031 | + item_map.gift_original_img = get_data.goodsinfo.original_img; | ||
| 1032 | + item_map.gift_limit_num = get_data.limit_num; | ||
| 1033 | + item_map.gift_storecount = get_data.gift_storecount; | ||
| 1034 | + item_map.gift_weight = get_data.goodsinfo.weight; | ||
| 1035 | + item_map.gift_exp_sum_type = get_data.goodsinfo.exp_sum_type; | ||
| 1036 | + item_map.uniform_exp_sum = get_data.goodsinfo.uniform_exp_sum; | ||
| 1037 | + | ||
| 1038 | + } | ||
| 1039 | + item_map.s_libao = get_data.libao; | ||
| 1040 | + item_map.s_lb_num = get_data.lb_num; | ||
| 1041 | + } | ||
| 1042 | + }) | ||
| 1043 | + } | ||
| 1044 | + | ||
| 1045 | + //有活动,且优惠活动并没有限制使用优惠券,且有减价 | ||
| 1046 | + //--看有没有减价-- | ||
| 1047 | + //if(item_map.prom_price>=0 && item_map.price-item_map.prom_price){ | ||
| 1048 | + if (item_map.price - item_map.prom_price && item_map.prom_price !== null) { | ||
| 1049 | + if (cart_item.prom_pt_json) { | ||
| 1050 | + cart_item.prom_pt_json.push({ | ||
| 1051 | + "prom_id": item_map.prom_id, | ||
| 1052 | + "dis": (item_map.price - item_map.prom_price).toFixed(2), | ||
| 1053 | + "ispt": 0 | ||
| 1054 | + }) | ||
| 1055 | + } else { | ||
| 1056 | + cart_item.prom_pt_json = [{ | ||
| 1057 | + "prom_id": item_map.prom_id, | ||
| 1058 | + "dis": (item_map.price - item_map.prom_price).toFixed(2), | ||
| 1059 | + "ispt": 0 | ||
| 1060 | + }]; | ||
| 1061 | + } | ||
| 1062 | + | ||
| 1063 | + //-- 如果系统要平摊到单品 -- | ||
| 1064 | + | ||
| 1065 | + var pt_data = { | ||
| 1066 | + 'prom_id': item_map.prom_id, | ||
| 1067 | + 'dis': parseFloat((item_map.price - item_map.prom_price).toFixed(2)), | ||
| 1068 | + 'goods': item_map.goods | ||
| 1069 | + } | ||
| 1070 | + | ||
| 1071 | + var pt_res = null; | ||
| 1072 | + await getApp().request.promisePost("/api/weshop/order/getGoodsSplit", { | ||
| 1073 | + is_json: 1, | ||
| 1074 | + data: pt_data | ||
| 1075 | + }).then(res => { | ||
| 1076 | + if (res.data.code == 0) { | ||
| 1077 | + pt_res = res.data.data; | ||
| 1078 | + } | ||
| 1079 | + }) | ||
| 1080 | + if (pt_res) { | ||
| 1081 | + for (var io in item_map.goods) { | ||
| 1082 | + //平摊赋值 | ||
| 1083 | + item_map.goods[io].account_fir = th.arr_get_goods(item_map.goods[io].goods_id, pt_res).fisrt_account; | ||
| 1084 | + item_map.goods[io].account_yu_fir = th.arr_get_goods(item_map.goods[io].goods_id, pt_res).fisrt_account_yu; | ||
| 1085 | + if (!th.data.ispt_goods) { | ||
| 1086 | + item_map.goods[io].account = item_map.goods[io].account_fir; | ||
| 1087 | + item_map.goods[io].account_yu = item_map.goods[io].account_yu_fir; | ||
| 1088 | + } | ||
| 1089 | + } | ||
| 1090 | + } | ||
| 1091 | + | ||
| 1092 | + | ||
| 1093 | + o_price -= (item_map.price - item_map.prom_price); | ||
| 1094 | + //如果有限制使用优惠券,就要减掉参与的活动商品的钱 | ||
| 1095 | + if (!item_map.is_xz_yh) q_conditin = o_price; | ||
| 1096 | + } | ||
| 1097 | + | ||
| 1098 | + //--------循环计算商品是不是包邮,是不是使用优惠券,此时循环是商品从表----------- | ||
| 1099 | + for (var j = 0; j < ord_goods.length; j++) { | ||
| 1100 | + if (ord_goods[j].is_gift) continue; | ||
| 1101 | + if (ord_goods[j].prom_type == 3 && ord_goods[j].prom_id == item_map.prom_id) { | ||
| 1102 | + ord_goods[j].is_xz_yh = item_map.is_xz_yh; | ||
| 1103 | + ord_goods[j].is_past = item_map.is_past; | ||
| 1104 | + ord_goods[j].account_fir = th.item_map_get_goods(ord_goods[j].goods_id, item_map).account_fir; | ||
| 1105 | + ord_goods[j].account_yu_fir = th.item_map_get_goods(ord_goods[j].goods_id, item_map).account_yu_fir; | ||
| 1106 | + ord_goods[j].account = th.item_map_get_goods(ord_goods[j].goods_id, item_map).account; | ||
| 1107 | + ord_goods[j].account_yu = th.item_map_get_goods(ord_goods[j].goods_id, item_map).account_yu; | ||
| 1108 | + } | ||
| 1109 | + } | ||
| 1110 | + | ||
| 1111 | + | ||
| 1112 | + //--优惠多少钱-- | ||
| 1113 | + if (!cart_item.cut_price) cart_item.cut_price = 0; | ||
| 1114 | + //-- -- | ||
| 1115 | + if (item_map.price != undefined && item_map.price != null | ||
| 1116 | + && item_map.prom_price != undefined && item_map.prom_price != null) | ||
| 1117 | + cart_item.cut_price += (item_map.price - item_map.prom_price); | ||
| 1118 | + //---如果有送积分--- | ||
| 1119 | + if (item_map.s_intValue) { | ||
| 1120 | + if (!cart_item.s_intValue) cart_item.s_intValue = 0; | ||
| 1121 | + cart_item.s_intValue += item_map.s_intValue; | ||
| 1122 | + } | ||
| 1123 | + //-- 如果有送优惠券的情况 -- | ||
| 1124 | + if (item_map.s_coupon_id) { | ||
| 1125 | + if (!cart_item.s_coupon_id) { | ||
| 1126 | + cart_item.s_coupon_id = item_map.s_coupon_id + ""; | ||
| 1127 | + cart_item.g_coupon_num = [{'c_id': item_map.s_coupon_id, "num": item_map.s_coupon_num}]; | ||
| 1128 | + } | ||
| 1129 | + else { | ||
| 1130 | + cart_item.s_coupon_id += "," + item_map.s_coupon_id; | ||
| 1131 | + cart_item.g_coupon_num.push({'c_id': item_map.s_coupon_id, "num": item_map.s_coupon_num}) | ||
| 1132 | + } | ||
| 1133 | + } | ||
| 1134 | + | ||
| 1135 | + //-- 如果有送优包邮券的情况 -- | ||
| 1136 | + if (item_map.s_libao) { | ||
| 1137 | + if (!cart_item.s_libao) { | ||
| 1138 | + cart_item.s_libao = item_map.s_libao + ""; | ||
| 1139 | + cart_item.g_lb_num = [{'l_id': item_map.s_libao, "num": item_map.s_lb_num}]; | ||
| 1140 | + } | ||
| 1141 | + else { | ||
| 1142 | + cart_item.s_libao += "," + item_map.s_libao; | ||
| 1143 | + cart_item.g_lb_num.push({'l_id': item_map.s_libao, "num": item_map.s_lb_num}) | ||
| 1144 | + } | ||
| 1145 | + } | ||
| 1146 | + } | ||
| 1147 | + } | ||
| 1148 | + } | ||
| 1149 | + }, | ||
| 1150 | + | ||
| 1151 | + //-------------------计算订单价格------------------- | ||
| 1152 | + calculatePrice: function (t, s) { | ||
| 1153 | + var th = this; | ||
| 1154 | + to.getConfig2(function (ee) { | ||
| 1155 | + to.getwuliuprice(async function (rs) { | ||
| 1156 | + wx.showLoading({ | ||
| 1157 | + title: "处理中." | ||
| 1158 | + }) | ||
| 1159 | + var all_price = 0; //所有的商品总价 | ||
| 1160 | + var all_shipping_m = 0; //所有的物流总价 | ||
| 1161 | + var all_total_m = 0; //所有的订单应付总价 | ||
| 1162 | + var all_order_m = 0; //所有的订单应付总价 | ||
| 1163 | + var all_user_m = 0; //所有的订单用户使用金额 | ||
| 1164 | + var all_coupon_price_m = 0; //所有的订单用户使用优惠券价格 | ||
| 1165 | + var all_cutprice = 0; //所有的优惠减 | ||
| 1166 | + var all_zh_cutprice = 0; //所有的组合优惠减 | ||
| 1167 | + var all_order_prom = 0; //所有的订单优惠 | ||
| 1168 | + | ||
| 1169 | + var umoney = th.data.userinfo.user_money - th.data.txmon - (th.data.userinfo.frozen_money ? th.data.userinfo.frozen_money : 0); | ||
| 1170 | + var freight_free = ee.freight_free; //全场满多少包邮 | ||
| 1171 | + var no_ex_id = ee.no_ex_id; | ||
| 1172 | + var no_ex_good = null; | ||
| 1173 | + var by_qc = {}; | ||
| 1174 | + | ||
| 1175 | + if (no_ex_id && freight_free > 0) { | ||
| 1176 | + //-----------获取不包邮区域,不包邮商品------- | ||
| 1177 | + await getApp().request.promiseGet("/api/weshop/areaFeemail/getAreaGoods", { | ||
| 1178 | + data: {store_id: os.stoid, id: no_ex_id} | ||
| 1179 | + }).then(res => { | ||
| 1180 | + if (res.data.code == 0 && res.data.data && res.data.data.length > 0) { | ||
| 1181 | + by_qc = res.data.data[0]; | ||
| 1182 | + } | ||
| 1183 | + }) | ||
| 1184 | + } | ||
| 1185 | + ; | ||
| 1186 | + var c_arr = JSON.parse(JSON.stringify(th.data.old_cartlist)); | ||
| 1187 | + | ||
| 1188 | + if (th.data.cartlist && th.data.cartlist.length > 0) { | ||
| 1189 | + for (var i = 0; i < c_arr.length; i++) { | ||
| 1190 | + c_arr[i].exp_type = th.data.cartlist[i].exp_type; | ||
| 1191 | + c_arr[i].wind = th.data.cartlist[i].wind; | ||
| 1192 | + } | ||
| 1193 | + } | ||
| 1194 | + | ||
| 1195 | + //调用函数计算每件商品的单价 | ||
| 1196 | + await th.calc_per(c_arr); | ||
| 1197 | + //调用函数计算每件组合购商品的单价, | ||
| 1198 | + await zh_calc.calc_zh_split_price(c_arr,th); | ||
| 1199 | + //调用函数计算,优惠券优惠什么商品价格,优惠券优惠什么商品 | ||
| 1200 | + await th.get_cart_quan(c_arr); | ||
| 1201 | + //---循环购物车--- | ||
| 1202 | + for (var i in c_arr) { | ||
| 1203 | + //因为搭配购买也是再这里计算,搭配购的is_b_now==1 | ||
| 1204 | + if (th.data.is_b_now == 0) { | ||
| 1205 | + //此时物流的选择方式要用th.data.cartlist; | ||
| 1206 | + c_arr[i].exp_type = th.data.cartlist[i].exp_type; | ||
| 1207 | + c_arr[i].wind = th.data.cartlist[i].wind; | ||
| 1208 | + if (th.data.cartlist[i].check_quan_price_list) c_arr[i].check_quan_price_list = th.data.cartlist[i].check_quan_price_list; //优惠券优惠什么商品价格 | ||
| 1209 | + if (th.data.cartlist[i].check_quan_ware_list) c_arr[i].check_quan_ware_list = th.data.cartlist[i].check_quan_ware_list; //优惠券优惠什么商品 | ||
| 1210 | + } else { | ||
| 1211 | + c_arr[i].exp_type = th.data.bn_exp_type; //配送方式 | ||
| 1212 | + c_arr[i].wind = th.data.index; //立即购买选择的物流 | ||
| 1213 | + //c_arr[i].=th.data. //立即购买的使用余额 | ||
| 1214 | + if (th.data.cartlist) c_arr[i].check_quan_price_list = th.data.cartlist[i].check_quan_price_list; //优惠券优惠什么商品价格 | ||
| 1215 | + if (th.data.cartlist) c_arr[i].check_quan_ware_list = th.data.cartlist[i].check_quan_ware_list; //优惠券优惠什么商品 | ||
| 1216 | + } | ||
| 1217 | + | ||
| 1218 | + var cart_item = c_arr[i]; //就是每一单的意思 | ||
| 1219 | + var pickid = cart_item.pickup_id; | ||
| 1220 | + var o_price = 0; | ||
| 1221 | + var o_price_no_zh=0; //不包含限制优惠叠加组合购的金额汇总 | ||
| 1222 | + var o_shipping_price = 0, goods_weight = -1, goods_piece = -1; | ||
| 1223 | + var item = c_arr[i].goods; //就是每一单的从表的意思 | ||
| 1224 | + | ||
| 1225 | + //---如果有选择优惠券的情况下--- | ||
| 1226 | + var quan_price = 0; | ||
| 1227 | + var coupon_price = 0; | ||
| 1228 | + var quan_no = null; | ||
| 1229 | + var is_has_zh=c_arr[i].is_has_zh; | ||
| 1230 | + var zh_prom_goods=c_arr[i].zh_prom_goods; //组合购计算的原始数据存储空间 | ||
| 1231 | + | ||
| 1232 | + if (th.data.using_quan[pickid] != null && th.data.using_quan[pickid] != undefined) | ||
| 1233 | + quan_no = th.data.using_quan[pickid].coupon_no; | ||
| 1234 | + | ||
| 1235 | + //普通券的时候 | ||
| 1236 | + if (quan_no && th.data.using_quan[pickid].isby != 1) { | ||
| 1237 | + //---获取优惠券优惠--- | ||
| 1238 | + await getApp().request.promiseGet("/api/weshop/couponList/getUseCouponPrice", { | ||
| 1239 | + data: { | ||
| 1240 | + storeId: oo.stoid, | ||
| 1241 | + CashRepNo: quan_no, | ||
| 1242 | + WaresSum: cart_item.check_quan_price_list, | ||
| 1243 | + WareIds: cart_item.check_quan_ware_list | ||
| 1244 | + } | ||
| 1245 | + }).then(res => { | ||
| 1246 | + if (res.data.code == 0 && res.data.data && res.data.data.length > 0) { | ||
| 1247 | + var q_data = res.data.data; | ||
| 1248 | + //--存储商品优惠的内容-- | ||
| 1249 | + cart_item.quan_youhui_list = q_data; | ||
| 1250 | + for (var k in q_data) | ||
| 1251 | + quan_price += q_data[k].WareCashSum; | ||
| 1252 | + } | ||
| 1253 | + }) | ||
| 1254 | + } | ||
| 1255 | + | ||
| 1256 | + //--------循环计算总价----------- | ||
| 1257 | + for (var j = 0; j < item.length; j++) { | ||
| 1258 | + if(item[j].prom_type!=7){ | ||
| 1259 | + o_price_no_zh += item[j].goods_price * item[j].goods_num; | ||
| 1260 | + } | ||
| 1261 | + //组合购的商品,且没有订单优惠的叠加,is_orderyh就是优惠叠加 | ||
| 1262 | + if(zh_prom_goods[item[j].prom_id] && !zh_prom_goods[item[j].prom_id].act.is_orderyh ) | ||
| 1263 | + { | ||
| 1264 | + o_price_no_zh += item[j].goods_price * item[j].goods_num; | ||
| 1265 | + } | ||
| 1266 | + o_price += item[j].goods_price * item[j].goods_num; | ||
| 1267 | + } | ||
| 1268 | + //判断是不是有组合购的金额 | ||
| 1269 | + var f_o_price = o_price; | ||
| 1270 | + //如果又优惠的钱,就要减价 | ||
| 1271 | + if (c_arr[i].cut_price > 0){ | ||
| 1272 | + o_price -= c_arr[i].cut_price; | ||
| 1273 | + o_price_no_zh-=c_arr[i].cut_price; | ||
| 1274 | + } | ||
| 1275 | + //如果有组合购优惠的钱,就要减价 | ||
| 1276 | + if (c_arr[i].zh_cut_price > 0){ | ||
| 1277 | + o_price -= c_arr[i].zh_cut_price; | ||
| 1278 | + if(o_price_no_zh>0){ | ||
| 1279 | + //找到那些可以订单优惠叠加的 | ||
| 1280 | + for(let ij in zh_prom_goods){ | ||
| 1281 | + let kitem=zh_prom_goods[ij]; | ||
| 1282 | + if(kitem.act.is_orderyh) continue; | ||
| 1283 | + o_price_no_zh-=kitem.cut_price; | ||
| 1284 | + } | ||
| 1285 | + } | ||
| 1286 | + } | ||
| 1287 | + | ||
| 1288 | + //-- 计算线下取价的功能 -- | ||
| 1289 | + if (cart_item.is_offline == 1) { | ||
| 1290 | + o_price = o_price - cart_item.offline_price; | ||
| 1291 | + o_price_no_zh-=c_arr[i].offline_price; | ||
| 1292 | + } | ||
| 1293 | + //判断包邮券的钱,组合购的商品不使用优惠券 | ||
| 1294 | + var q_conditin = 0; | ||
| 1295 | + q_conditin = o_price - quan_price; | ||
| 1296 | + if(is_has_zh){ | ||
| 1297 | + q_conditin = o_price_no_zh - quan_price; | ||
| 1298 | + } | ||
| 1299 | + cart_item.goods_price = f_o_price.toFixed(2); //商品总费用,用f_o_price来计算 | ||
| 1300 | + //计算物流费用 | ||
| 1301 | + cart_item.shipping_price = 0; | ||
| 1302 | + | ||
| 1303 | + | ||
| 1304 | + //--有不包邮区域,且不免运费,全场的计算,要减到优惠金额 和券的金额-- | ||
| 1305 | + 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)) { | ||
| 1306 | + //如果有设置不包邮区域的时候 | ||
| 1307 | + if (by_qc.region_list != "" && by_qc.region_list != null && by_qc.region_list != undefined) { | ||
| 1308 | + if (th.check_by_area(by_qc.region_list)) { | ||
| 1309 | + freight_free = 0; | ||
| 1310 | + th.data.is_no_by[pickid] = 1; | ||
| 1311 | + } | ||
| 1312 | + } | ||
| 1313 | + //如果有设置不包邮区商品 | ||
| 1314 | + if (by_qc.goods_list != "" && by_qc.goods_list != undefined && by_qc != null && freight_free > 0) { | ||
| 1315 | + freight_free = 0; | ||
| 1316 | + no_ex_good = by_qc.goods_list; | ||
| 1317 | + } | ||
| 1318 | + } | ||
| 1319 | + | ||
| 1320 | + //--如果是物流,且选择了地址,就要开始显示包邮券,且包邮券也已经优惠了优惠活动的金额-- | ||
| 1321 | + if (cart_item.exp_type == 0 && th.data.user_addr != null) { | ||
| 1322 | + //看是不是有调用过包邮券 | ||
| 1323 | + if (!th.data.isget_by_quan[pickid]) { | ||
| 1324 | + //--判断要不要显示包邮券,调用接口,因为有for循环--- | ||
| 1325 | + await getApp().request.promiseGet("/api/weshop/userfeemail/pageAndArea", { | ||
| 1326 | + data: { | ||
| 1327 | + store_id: os.stoid, | ||
| 1328 | + isuse: 0, | ||
| 1329 | + condition: q_conditin, | ||
| 1330 | + user_id: getApp().globalData.user_id, | ||
| 1331 | + pageSize: 2000 | ||
| 1332 | + } | ||
| 1333 | + }).then(res => { | ||
| 1334 | + if (res.data.code == 0 && res.data.data.total > 0) { | ||
| 1335 | + //此时要循环判断包邮的地区,不包邮商品是不是符合 | ||
| 1336 | + var arr = [], quanlist = res.data.data.pageData; | ||
| 1337 | + quanlist = th.check_is_frozenQuan(quanlist, th.data.frozenQuan, 1); | ||
| 1338 | + for (var i in quanlist) { | ||
| 1339 | + var item = quanlist[i]; | ||
| 1340 | + var goods = cart_item.goods; | ||
| 1341 | + var g_arr = []; | ||
| 1342 | + for (var ii in goods) { | ||
| 1343 | + g_arr.push(goods[ii].goods_id); | ||
| 1344 | + } | ||
| 1345 | + if (item.region_list && th.check_by_area(item.region_list)) continue; //如果是不包邮区域 | ||
| 1346 | + if (item.goods_list) { | ||
| 1347 | + var no_goods_arr = item.goods_list.split(","); | ||
| 1348 | + if (ut.isContained(no_goods_arr, g_arr)) continue; //如果是不包邮商品 | ||
| 1349 | + } | ||
| 1350 | + arr.push(item); | ||
| 1351 | + } | ||
| 1352 | + if (arr) { | ||
| 1353 | + th.data.get_by_quan_list_cart[pickid] = arr; | ||
| 1354 | + //th.setData({get_by_quan_list_cart:th.data.get_by_quan_list_cart}); | ||
| 1355 | + if (th.data.is_b_now) { | ||
| 1356 | + th.setData({get_by_quan_list: arr}); | ||
| 1357 | + } | ||
| 1358 | + } | ||
| 1359 | + th.data.isget_by_quan[pickid] = 1; | ||
| 1360 | + } | ||
| 1361 | + }) | ||
| 1362 | + } | ||
| 1363 | + } | ||
| 1364 | + | ||
| 1365 | + //如果是包邮券的时候,要看看券的情况 | ||
| 1366 | + if (quan_no && th.data.using_quan[pickid].isby == 1) { | ||
| 1367 | + var quan = th.data.using_quan[pickid]; | ||
| 1368 | + if (!quan.goods_list) { | ||
| 1369 | + th.data.is_quan_by[pickid] = 1; //专门给券的判断用的 | ||
| 1370 | + } else { | ||
| 1371 | + th.data.is_quan_by[pickid] = 0; | ||
| 1372 | + //看有没有模板的包邮 | ||
| 1373 | + if (no_ex_good) { | ||
| 1374 | + var arr = no_ex_good.split(","); | ||
| 1375 | + var arr2 = quan.goods_list.split(","); | ||
| 1376 | + if (ut.isContained(arr, arr2)) { | ||
| 1377 | + getApp().my_warnning("全场不包邮商品和包邮券的重复", 0, th); | ||
| 1378 | + th.data.using_quan[pickid] = {}; | ||
| 1379 | + th.setData({using_quan: th.data.using_quan}) | ||
| 1380 | + return false; | ||
| 1381 | + } | ||
| 1382 | + var n_arr = ut.mergeArray(arr, arr2); | ||
| 1383 | + no_ex_good = n_arr.join(","); | ||
| 1384 | + } else { | ||
| 1385 | + no_ex_good = quan.goods_list; | ||
| 1386 | + } | ||
| 1387 | + } | ||
| 1388 | + } else { | ||
| 1389 | + th.data.is_quan_by[pickid] = 0; //专门给券的判断用的 | ||
| 1390 | + } | ||
| 1391 | + | ||
| 1392 | + //--------循环计算总价----------- | ||
| 1393 | + for (var j = 0; j < item.length; j++) { | ||
| 1394 | + //如果都包邮,都没必要等级数量了 | ||
| 1395 | + if (th.data.is_quan_by[pickid]) continue; | ||
| 1396 | + //如果是优惠活动是包邮,就不用计算包邮的费用了 | ||
| 1397 | + if (item[j].is_past) continue; | ||
| 1398 | + //是不是不包邮的商品 | ||
| 1399 | + var is_good_no_by = 0; | ||
| 1400 | + if (no_ex_good) { | ||
| 1401 | + is_good_no_by = th.check_by_goods(no_ex_good, item[j].goods_id); | ||
| 1402 | + } | ||
| 1403 | + | ||
| 1404 | + //如果达到全场包邮的条件,同时,没有地区不包邮,或者商品不包邮 | ||
| 1405 | + if (o_price - quan_price >= freight_free && freight_free > 0 && !is_good_no_by && th.data.is_no_by[pickid] != 1) { | ||
| 1406 | + continue; | ||
| 1407 | + } | ||
| 1408 | + | ||
| 1409 | + //--如果是包邮券使用的情况下,如果商品是包邮的,那么就不进行计算-- | ||
| 1410 | + if (th.data.using_quan[pickid] && th.data.using_quan[pickid].isby == 1 && !is_good_no_by) { | ||
| 1411 | + continue; | ||
| 1412 | + } | ||
| 1413 | + | ||
| 1414 | + var no_ex_good_arr = null; | ||
| 1415 | + if (no_ex_good) no_ex_good_arr = no_ex_good.split(','); | ||
| 1416 | + | ||
| 1417 | + //----------------如果是选择了物流--------------------- | ||
| 1418 | + 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 )) { | ||
| 1419 | + | ||
| 1420 | + //如果地址不为空 | ||
| 1421 | + if (th.data.user_addr != null) { | ||
| 1422 | + switch (item[j]['exp_sum_type']) { | ||
| 1423 | + case 1: | ||
| 1424 | + //统一运费 | ||
| 1425 | + o_shipping_price += item[j]['uniform_exp_sum']; | ||
| 1426 | + break; | ||
| 1427 | + case 2: | ||
| 1428 | + +'' | ||
| 1429 | + if (goods_weight < 0) goods_weight = 0; | ||
| 1430 | + //累积商品重量 每种商品的重量 * 数量 | ||
| 1431 | + goods_weight += item[j]['weight'] * item[j]['goods_num']; | ||
| 1432 | + | ||
| 1433 | + break; | ||
| 1434 | + case 3: | ||
| 1435 | + if (goods_piece < 0) goods_piece = 0; | ||
| 1436 | + //累积商品数量 | ||
| 1437 | + goods_piece += item[j]['goods_num']; | ||
| 1438 | + break; | ||
| 1439 | + } | ||
| 1440 | + } | ||
| 1441 | + | ||
| 1442 | + } | ||
| 1443 | + } | ||
| 1444 | + | ||
| 1445 | + //计算物流价格 | ||
| 1446 | + if (cart_item.exp_type == 0) { | ||
| 1447 | + //freight_free=0; //后面不在进行判断 | ||
| 1448 | + var code = ""; | ||
| 1449 | + if (th.data.wu_arr && th.data.wu_arr[cart_item.wind]) | ||
| 1450 | + code = th.data.wu_arr[cart_item.wind].code; | ||
| 1451 | + cart_item.shipping_price = | ||
| 1452 | + th.calculatewuliu(code, o_shipping_price, goods_weight, | ||
| 1453 | + goods_piece, th.data.user_addr, freight_free, o_price - quan_price, rs); | ||
| 1454 | + | ||
| 1455 | + if (!th.data.using_quan[pickid] || th.data.using_quan[pickid].isby != 1) { | ||
| 1456 | + if (cart_item.shipping_price == 0) th.data.is_by[pickid] = 1; //已经全场包邮,就不要选择券了 | ||
| 1457 | + } | ||
| 1458 | + } else { | ||
| 1459 | + cart_item.shipping_price = 0; | ||
| 1460 | + } | ||
| 1461 | + | ||
| 1462 | + cart_item.shipping_price = cart_item.shipping_price.toFixed(2); | ||
| 1463 | + | ||
| 1464 | + //总价计算,总价不包含运费 | ||
| 1465 | + cart_item.order_amount = (o_price - quan_price).toFixed(2); | ||
| 1466 | + cart_item.total_amount = f_o_price.toFixed(2); | ||
| 1467 | + | ||
| 1468 | + var order_prom_amount = 0; | ||
| 1469 | + var order_prom_id = 0; | ||
| 1470 | + var o_condition = cart_item.order_amount; | ||
| 1471 | + //看一下是不是不用组合购的订单优惠的叠加 | ||
| 1472 | + if(o_price_no_zh>0){ | ||
| 1473 | + o_condition=o_price_no_zh-quan_price; | ||
| 1474 | + } | ||
| 1475 | + | ||
| 1476 | + var order_m = 0; | ||
| 1477 | + //---判断是不是有订单优惠--- | ||
| 1478 | + await getApp().request.promiseGet("/api/weshop/promorder/getOrderPromotion", { | ||
| 1479 | + data: {store_id: os.stoid, orderAmount: o_condition} | ||
| 1480 | + }).then(res => { | ||
| 1481 | + if (res.data.code == 0) { | ||
| 1482 | + var ord_prom = res.data.data; | ||
| 1483 | + order_prom_id = ord_prom['id']; | ||
| 1484 | + switch (ord_prom['type']) { | ||
| 1485 | + case 0: | ||
| 1486 | + order_m = Math.round(o_condition * ord_prom['expression']) / 100;//满额打折 | ||
| 1487 | + order_prom_amount = (o_condition - order_m).toFixed(2); | ||
| 1488 | + break; | ||
| 1489 | + case 1: | ||
| 1490 | + //order_m = o_condition - ord_prom['expression'];//满额优惠金额 | ||
| 1491 | + order_prom_amount = ord_prom['expression']; | ||
| 1492 | + break; | ||
| 1493 | + } | ||
| 1494 | + } | ||
| 1495 | + }) | ||
| 1496 | + | ||
| 1497 | + cart_item.order_prom_amount = 0; | ||
| 1498 | + //--订单优惠的显示-- | ||
| 1499 | + if (order_prom_id > 0) { | ||
| 1500 | + cart_item.order_amount = (o_price - quan_price - order_prom_amount).toFixed(2); | ||
| 1501 | + cart_item.order_prom_id = order_prom_id; | ||
| 1502 | + cart_item.order_prom_amount = order_prom_amount; | ||
| 1503 | + } | ||
| 1504 | + coupon_price = quan_price; | ||
| 1505 | + if (cart_item.order_amount < 0) { | ||
| 1506 | + cart_item.order_amount = 0; | ||
| 1507 | + coupon_price = o_price; | ||
| 1508 | + } | ||
| 1509 | + | ||
| 1510 | + cart_item.total_amount = parseFloat(cart_item.total_amount) + parseFloat(cart_item.shipping_price); //总金额 | ||
| 1511 | + cart_item.order_amount = parseFloat(cart_item.order_amount) + parseFloat(cart_item.shipping_price); //总金额 | ||
| 1512 | + cart_item.total_amount = cart_item.total_amount.toFixed(2); | ||
| 1513 | + cart_item.order_amount = cart_item.order_amount.toFixed(2); | ||
| 1514 | + | ||
| 1515 | + //搭配购在使用余额 | ||
| 1516 | + if (th.data.bn_use_money == 1 && th.data.is_b_now == 1) { | ||
| 1517 | + | ||
| 1518 | + if (umoney > cart_item.order_amount) { | ||
| 1519 | + cart_item.user_money = cart_item.order_amount; | ||
| 1520 | + umoney = umoney - cart_item.order_amount; | ||
| 1521 | + } else { | ||
| 1522 | + cart_item.user_money = umoney; | ||
| 1523 | + umoney = 0; | ||
| 1524 | + } | ||
| 1525 | + | ||
| 1526 | + } else { | ||
| 1527 | + //--------------如果使用余额,购物车购买--------------------- | ||
| 1528 | + if (th.data.js_use_money == 1) { | ||
| 1529 | + if (umoney > cart_item.order_amount) { | ||
| 1530 | + cart_item.user_money = cart_item.order_amount; | ||
| 1531 | + umoney = umoney - cart_item.order_amount; | ||
| 1532 | + } else { | ||
| 1533 | + cart_item.user_money = umoney; | ||
| 1534 | + umoney = 0; | ||
| 1535 | + } | ||
| 1536 | + } else { | ||
| 1537 | + cart_item.user_money = 0; | ||
| 1538 | + } | ||
| 1539 | + } | ||
| 1540 | + | ||
| 1541 | + cart_item.user_money = parseFloat(cart_item.user_money).toFixed(2); | ||
| 1542 | + if (coupon_price > 0) cart_item.coupon_price = coupon_price.toFixed(2); | ||
| 1543 | + else cart_item.coupon_price = coupon_price | ||
| 1544 | + if (quan_no) cart_item.quan_no = quan_no; | ||
| 1545 | + | ||
| 1546 | + | ||
| 1547 | + //cart_item.goods_price = o_price.toFixed(2); | ||
| 1548 | + cart_item.order_amount = cart_item.order_amount - cart_item.user_money; //会员使用余额 | ||
| 1549 | + | ||
| 1550 | + | ||
| 1551 | + all_price += parseFloat(f_o_price); | ||
| 1552 | + all_total_m += parseFloat(cart_item.total_amount); | ||
| 1553 | + all_shipping_m += parseFloat(cart_item.shipping_price); | ||
| 1554 | + all_order_m += parseFloat(cart_item.order_amount); | ||
| 1555 | + all_user_m += parseFloat(cart_item.user_money); | ||
| 1556 | + all_coupon_price_m += parseFloat(cart_item.coupon_price); | ||
| 1557 | + all_cutprice += parseFloat(cart_item.cut_price); | ||
| 1558 | + all_zh_cutprice += parseFloat(cart_item.zh_cut_price); | ||
| 1559 | + all_order_prom += parseFloat(cart_item.order_prom_amount); | ||
| 1560 | + } | ||
| 1561 | + | ||
| 1562 | + all_shipping_m = parseFloat(all_shipping_m).toFixed(2); | ||
| 1563 | + all_total_m = parseFloat(all_total_m).toFixed(2); | ||
| 1564 | + all_order_m = parseFloat(all_order_m).toFixed(2); | ||
| 1565 | + all_price = parseFloat(all_price).toFixed(2); | ||
| 1566 | + all_user_m = parseFloat(all_user_m).toFixed(2); | ||
| 1567 | + all_total_m = parseFloat(all_total_m).toFixed(2); | ||
| 1568 | + all_coupon_price_m = parseFloat(all_coupon_price_m).toFixed(2); | ||
| 1569 | + all_cutprice = all_cutprice.toFixed(2); | ||
| 1570 | + all_order_prom = all_order_prom.toFixed(2); | ||
| 1571 | + all_zh_cutprice = parseFloat(all_zh_cutprice).toFixed(2); | ||
| 1572 | + | ||
| 1573 | + var atxt = "formData.total_amount"; | ||
| 1574 | + var atxt1 = "formData.order_amount"; | ||
| 1575 | + var atxt2 = "formData.all_price"; | ||
| 1576 | + var atxt3 = "formData.user_money"; | ||
| 1577 | + var atxt4 = "formData.shipping_price"; | ||
| 1578 | + var atxt5 = "formData.coupon_price"; | ||
| 1579 | + var atxt6 = "formData.cut_price"; | ||
| 1580 | + var atxt7 = "formData.order_prom_amount"; | ||
| 1581 | + var atxt8 = "formData.zh_cut_price"; | ||
| 1582 | + | ||
| 1583 | + th.setData({ | ||
| 1584 | + [atxt]: all_total_m, [atxt1]: all_order_m, | ||
| 1585 | + [atxt2]: all_price, [atxt3]: all_user_m, [atxt4]: all_shipping_m, | ||
| 1586 | + [atxt5]: all_coupon_price_m, [atxt6]: all_cutprice, | ||
| 1587 | + [atxt7]: all_order_prom, show_submit: 1, [atxt8]: all_zh_cutprice | ||
| 1588 | + }) | ||
| 1589 | + th.data.order_prom_list_cart = c_arr; | ||
| 1590 | + th.set_can_num(); | ||
| 1591 | + wx.hideLoading(); | ||
| 1592 | + | ||
| 1593 | + }); | ||
| 1594 | + }); | ||
| 1595 | + }, | ||
| 1596 | + | ||
| 1597 | + set_can_num: function () { | ||
| 1598 | + var th = this; | ||
| 1599 | + //-- 这个地方,循环计算几张优惠券可用-- | ||
| 1600 | + for (var iter in th.data.cartlist) { | ||
| 1601 | + var num = 0; | ||
| 1602 | + var c_item = th.data.cartlist[iter]; | ||
| 1603 | + var pkid = c_item.pickup_id; | ||
| 1604 | + //-- 普通券 -- | ||
| 1605 | + if (c_item.quan_list) { | ||
| 1606 | + for (var iter1 in c_item.quan_list) { | ||
| 1607 | + //判断是不是其他订单有选用 | ||
| 1608 | + var is_other_is_use = th.check_other_use(c_item.quan_list[iter1], pkid); | ||
| 1609 | + if (!is_other_is_use) num++; | ||
| 1610 | + } | ||
| 1611 | + } | ||
| 1612 | + //-- 包邮券 -- | ||
| 1613 | + var by_quan = th.data.get_by_quan_list_cart[pkid]; | ||
| 1614 | + if (by_quan) { | ||
| 1615 | + for (var iter2 in by_quan) { | ||
| 1616 | + //判断是不是其他订单有选用 | ||
| 1617 | + var is_other_is_use = th.check_other_use_by(by_quan[iter2], pkid); | ||
| 1618 | + if (!is_other_is_use) num++; | ||
| 1619 | + } | ||
| 1620 | + } | ||
| 1621 | + var set_txt = "cartlist[" + iter + "].can_num"; | ||
| 1622 | + th.setData({[set_txt]: num}); | ||
| 1623 | + } | ||
| 1624 | + }, | ||
| 1625 | + | ||
| 1626 | + | ||
| 1627 | + //---------计算立即购买---------- | ||
| 1628 | + calculatePrice2: function () { | ||
| 1629 | + var th = this, good = this.data.bn_goods; | ||
| 1630 | + | ||
| 1631 | + if (!good) return false; | ||
| 1632 | + | ||
| 1633 | + //搭配的计算要用购物的车计算方法 | ||
| 1634 | + if (good.prom_type == 5) { | ||
| 1635 | + th.calculatePrice(); | ||
| 1636 | + return false; | ||
| 1637 | + } | ||
| 1638 | + | ||
| 1639 | + wx.showLoading({ | ||
| 1640 | + title: "处理中." | ||
| 1641 | + }) | ||
| 1642 | + //-----------计算商品总价-------------- | ||
| 1643 | + var allpice = good.shop_price * good.buynum; | ||
| 1644 | + var cut_price = 0; | ||
| 1645 | + var allpice1 = allpice; | ||
| 1646 | + | ||
| 1647 | + | ||
| 1648 | + if (good.prom_type == 3 && good.prom_price !== null) { | ||
| 1649 | + cut_price = allpice - good.prom_price; | ||
| 1650 | + } | ||
| 1651 | + | ||
| 1652 | + allpice = parseFloat(allpice).toFixed(2); | ||
| 1653 | + var txt = "formData.all_price"; | ||
| 1654 | + th.setData({[txt]: allpice,}); | ||
| 1655 | + if (cut_price) { | ||
| 1656 | + var c_txt = "formData.cut_price"; | ||
| 1657 | + th.setData({[c_txt]: cut_price,}); | ||
| 1658 | + | ||
| 1659 | + } | ||
| 1660 | + | ||
| 1661 | + //如果有线下取价的时候 | ||
| 1662 | + if (good.is_offline) { | ||
| 1663 | + allpice = good.offline_price * good.buynum; | ||
| 1664 | + } | ||
| 1665 | + | ||
| 1666 | + | ||
| 1667 | + to.getConfig2(function (ee) { | ||
| 1668 | + to.getwuliuprice(async function (rs) { | ||
| 1669 | + | ||
| 1670 | + var o_shipping_price = 0, goods_weight = -1, goods_piece = -1; | ||
| 1671 | + | ||
| 1672 | + //---如果有选择优惠券的情况下--- | ||
| 1673 | + var quan_price = 0, bn_pick = th.data.bn_pick; | ||
| 1674 | + var quan_no = null; | ||
| 1675 | + if (th.data.using_quan[bn_pick] != null && th.data.using_quan[bn_pick] != undefined) | ||
| 1676 | + quan_no = th.data.using_quan[bn_pick].coupon_no; | ||
| 1677 | + | ||
| 1678 | + if (quan_no) { | ||
| 1679 | + if (th.data.using_quan[bn_pick].isby != 1) { | ||
| 1680 | + //---获取优惠券优惠--- | ||
| 1681 | + await getApp().request.promiseGet("/api/weshop/couponList/getUseCouponPrice", { | ||
| 1682 | + data: { | ||
| 1683 | + storeId: oo.stoid, | ||
| 1684 | + CashRepNo: quan_no, | ||
| 1685 | + WaresSum: th.data.ckeck_quan_price, | ||
| 1686 | + WareIds: th.data.check_quan_ware_list | ||
| 1687 | + } | ||
| 1688 | + }).then(res => { | ||
| 1689 | + if (res.data.code == 0 && res.data.data && res.data.data.length > 0) { | ||
| 1690 | + quan_price = res.data.data[0].WareCashSum; | ||
| 1691 | + } | ||
| 1692 | + }) | ||
| 1693 | + } | ||
| 1694 | + } | ||
| 1695 | + | ||
| 1696 | + //-----------当地址不为空,且是物流时,计算物流费用,并同时商品不是优惠活动的包邮---------- | ||
| 1697 | + if (th.data.user_addr != null && th.data.bn_exp_type == 0 && good.is_free_shipping == 0 && good.is_past != 1) { | ||
| 1698 | + //看是不是有调用过包邮券 | ||
| 1699 | + if (!th.data.isget_by_quan[th.data.bn_pick] && good.is_xz_yh != 1) { | ||
| 1700 | + var condition = allpice - cut_price - quan_price; | ||
| 1701 | + //--判断要不要显示包邮券,链式调用接口,调取包邮券,已经是减了优惠的金额,见到优惠券的钱--- | ||
| 1702 | + getApp().request.promiseGet("/api/weshop/userfeemail/pageAndArea", { | ||
| 1703 | + data: { | ||
| 1704 | + store_id: os.stoid, | ||
| 1705 | + isuse: 0, | ||
| 1706 | + condition: condition, | ||
| 1707 | + user_id: getApp().globalData.user_id, | ||
| 1708 | + pageSize: 2000 | ||
| 1709 | + } | ||
| 1710 | + }).then(res => { | ||
| 1711 | + if (res.data.code == 0 && res.data.data.total > 0) { | ||
| 1712 | + //此时要循环判断包邮的地区,不包邮商品是不是符合 | ||
| 1713 | + var arr = [], quanlist = res.data.data.pageData; | ||
| 1714 | + quanlist = th.check_is_frozenQuan(quanlist, th.data.frozenQuan, 1); | ||
| 1715 | + for (var i in quanlist) { | ||
| 1716 | + var item = quanlist[i]; | ||
| 1717 | + if (item.region_list && th.check_by_area(item.region_list)) continue; //如果是不包邮区域 | ||
| 1718 | + if (item.goods_list && th.check_by_goods(item.goods_list)) continue; //如果是不包邮商品 | ||
| 1719 | + arr.push(item); | ||
| 1720 | + } | ||
| 1721 | + if (arr) { | ||
| 1722 | + th.setData({get_by_quan_list: arr}); | ||
| 1723 | + } | ||
| 1724 | + th.data.isget_by_quan[th.data.bn_pick] = 1; | ||
| 1725 | + } | ||
| 1726 | + }) | ||
| 1727 | + } | ||
| 1728 | + | ||
| 1729 | + switch (good['exp_sum_type']) { | ||
| 1730 | + case 1: | ||
| 1731 | + //统一运费 | ||
| 1732 | + o_shipping_price += good['uniform_exp_sum']; | ||
| 1733 | + break; | ||
| 1734 | + case 2: | ||
| 1735 | + if (goods_weight < 0) goods_weight = 0; | ||
| 1736 | + //累积商品重量 每种商品的重量 * 数量 | ||
| 1737 | + goods_weight += good['weight'] * good['buynum']; | ||
| 1738 | + break; | ||
| 1739 | + case 3: | ||
| 1740 | + if (goods_piece < 0) goods_piece = 0; | ||
| 1741 | + //累积商品数量 | ||
| 1742 | + goods_piece += good['buynum']; | ||
| 1743 | + break; | ||
| 1744 | + } | ||
| 1745 | + | ||
| 1746 | + var code = ""; | ||
| 1747 | + if (th.data.wu_arr && th.data.wu_arr[th.data.index]) code = th.data.wu_arr[th.data.index].code; | ||
| 1748 | + var freight_free = ee.freight_free; //全场满多少包邮 | ||
| 1749 | + var no_ex_id = ee.no_ex_id; | ||
| 1750 | + th.data.is_no_by[th.data.bn_pick] = 0; | ||
| 1751 | + | ||
| 1752 | + var no_by_data = null; | ||
| 1753 | + var gift_freight_free = freight_free; | ||
| 1754 | + | ||
| 1755 | + | ||
| 1756 | + //有不包邮区域,且不免运费 | ||
| 1757 | + if (no_ex_id && freight_free > 0 && freight_free <= parseFloat(allpice) - cut_price - quan_price) { | ||
| 1758 | + //-----------获取不包邮区域,不包邮商品------- | ||
| 1759 | + await getApp().request.promiseGet("/api/weshop/areaFeemail/getAreaGoods", { | ||
| 1760 | + data: {store_id: os.stoid, id: no_ex_id} | ||
| 1761 | + }).then(res => { | ||
| 1762 | + if (res.data.code == 0 && res.data.data && res.data.data.length > 0) { | ||
| 1763 | + no_by_data = res.data.data[0]; | ||
| 1764 | + //如果有设置不包邮区域的时候 | ||
| 1765 | + if (res.data.data[0].region_list) { | ||
| 1766 | + if (th.check_by_area(res.data.data[0].region_list)) { | ||
| 1767 | + freight_free = 0; | ||
| 1768 | + th.data.is_no_by[th.data.bn_pick] = 1; | ||
| 1769 | + } | ||
| 1770 | + } | ||
| 1771 | + //如果有设置不包邮商品 | ||
| 1772 | + if (res.data.data[0].goods_list && freight_free) { | ||
| 1773 | + if (th.check_by_goods(res.data.data[0].goods_list)) { | ||
| 1774 | + freight_free = 0; | ||
| 1775 | + th.data.is_no_by[th.data.bn_pick] = 1; | ||
| 1776 | + } | ||
| 1777 | + } | ||
| 1778 | + } | ||
| 1779 | + }) | ||
| 1780 | + } | ||
| 1781 | + | ||
| 1782 | + th.data.is_by[th.data.bn_pick] = 0; | ||
| 1783 | + //--------------开始计算物流------------------ | ||
| 1784 | + var shipping_price = | ||
| 1785 | + th.calculatewuliu(code, o_shipping_price, goods_weight, | ||
| 1786 | + goods_piece, th.data.user_addr, freight_free, parseFloat(allpice) - cut_price - quan_price, rs); | ||
| 1787 | + | ||
| 1788 | + //如果有赠品的时候,也要计算赠品的物流费用 | ||
| 1789 | + if (th.data.buy_now_gift_goods) { | ||
| 1790 | + shipping_price = th.get_now_gift_goods_wuliu(code, o_shipping_price, th.data.user_addr, gift_freight_free, | ||
| 1791 | + parseFloat(allpice) - cut_price - quan_price, rs, shipping_price, no_by_data, goods_weight, goods_piece); | ||
| 1792 | + } | ||
| 1793 | + | ||
| 1794 | + if (shipping_price <= 0) { | ||
| 1795 | + th.data.is_by[th.data.bn_pick] = 1; //已经是包邮了,就不要选择包邮券 | ||
| 1796 | + } | ||
| 1797 | + | ||
| 1798 | + shipping_price = parseFloat(shipping_price).toFixed(2); | ||
| 1799 | + var wl_txt = "formData.shipping_price"; | ||
| 1800 | + th.setData({[wl_txt]: shipping_price,}) | ||
| 1801 | + | ||
| 1802 | + } else { | ||
| 1803 | + var wl_txt = "formData.shipping_price"; | ||
| 1804 | + th.setData({[wl_txt]: 0,}) | ||
| 1805 | + } | ||
| 1806 | + | ||
| 1807 | + if (quan_no) { | ||
| 1808 | + if (th.data.using_quan[bn_pick].isby == 1) { | ||
| 1809 | + shipping_price = 0; | ||
| 1810 | + var wl_txt = "formData.shipping_price"; | ||
| 1811 | + th.setData({[wl_txt]: 0,}) | ||
| 1812 | + } | ||
| 1813 | + } | ||
| 1814 | + //-----------------支付价,优惠券不减物流----------------- | ||
| 1815 | + var total_m = (parseFloat(allpice1)).toFixed(2); | ||
| 1816 | + var order_m = (parseFloat(allpice - cut_price) - quan_price).toFixed(2); | ||
| 1817 | + var coupon_price = quan_price; //优惠券优惠了多少钱 | ||
| 1818 | + if (order_m < 0) { | ||
| 1819 | + order_m = 0; | ||
| 1820 | + coupon_price = parseFloat(order_m).toFixed(2); | ||
| 1821 | + } | ||
| 1822 | + //--看一下有没有订单优惠-- | ||
| 1823 | + var o_condition = parseFloat(order_m); | ||
| 1824 | + if (o_condition > 0) { | ||
| 1825 | + th.check_is_order_prom(o_condition, function () { | ||
| 1826 | + var order_prom_amount = 0; | ||
| 1827 | + var order_prom_id = 0; | ||
| 1828 | + if (th.data.order_prom[th.data.bn_pick]) { | ||
| 1829 | + var ord_prom = th.data.order_prom[th.data.bn_pick]; | ||
| 1830 | + order_prom_id = ord_prom['id']; | ||
| 1831 | + switch (ord_prom['type']) { | ||
| 1832 | + case 0: | ||
| 1833 | + order_m = Math.round(o_condition * ord_prom['expression']) / 100;//满额打折 | ||
| 1834 | + order_prom_amount = (o_condition - order_m).toFixed(2); | ||
| 1835 | + break; | ||
| 1836 | + case 1: | ||
| 1837 | + order_m = o_condition - ord_prom['expression'];//满额优惠金额 | ||
| 1838 | + order_prom_amount = ord_prom['expression']; | ||
| 1839 | + break; | ||
| 1840 | + } | ||
| 1841 | + } | ||
| 1842 | + //--订单优惠的显示-- | ||
| 1843 | + if (order_prom_id > 0) { | ||
| 1844 | + var order_prom_txt1 = "formData.order_prom_id"; | ||
| 1845 | + var order_prom_txt2 = "formData.order_prom_amount"; | ||
| 1846 | + th.setData({[order_prom_txt1]: order_prom_id, [order_prom_txt2]: order_prom_amount}) | ||
| 1847 | + } | ||
| 1848 | + | ||
| 1849 | + total_m = parseFloat(total_m) + parseFloat(th.data.formData.shipping_price); | ||
| 1850 | + order_m = parseFloat(order_m) + parseFloat(th.data.formData.shipping_price); | ||
| 1851 | + | ||
| 1852 | + total_m = total_m.toFixed(2); | ||
| 1853 | + order_m = order_m.toFixed(2); | ||
| 1854 | + | ||
| 1855 | + var atxt = "formData.total_amount"; | ||
| 1856 | + th.setData({[atxt]: total_m,}) | ||
| 1857 | + | ||
| 1858 | + var txt = "formData.user_money"; | ||
| 1859 | + var txt2 = "formData.order_amount"; | ||
| 1860 | + var txt3 = "formData.coupon_price"; | ||
| 1861 | + var amoney = parseFloat(th.data.userinfo.user_money - th.data.txmon - th.data.userinfo.frozen_money); | ||
| 1862 | + //--------------如果使用余额--------------------- | ||
| 1863 | + if (th.data.bn_use_money == 1) { | ||
| 1864 | + if (amoney > order_m) { | ||
| 1865 | + order_m = parseFloat(order_m).toFixed(2); | ||
| 1866 | + th.setData({[txt]: order_m, [txt2]: 0, [txt3]: coupon_price, show_submit: 1}) | ||
| 1867 | + } else { | ||
| 1868 | + order_m = parseFloat(order_m) - parseFloat(amoney); | ||
| 1869 | + order_m = order_m.toFixed(2); | ||
| 1870 | + th.setData({[txt]: amoney, [txt2]: order_m, [txt3]: coupon_price, show_submit: 1}) | ||
| 1871 | + } | ||
| 1872 | + } else { | ||
| 1873 | + th.setData({[txt]: 0, [txt2]: order_m, [txt3]: coupon_price, show_submit: 1}) | ||
| 1874 | + } | ||
| 1875 | + //优惠活动送积分 | ||
| 1876 | + if (good.s_intValue) { | ||
| 1877 | + txt = "formData.give_integral"; | ||
| 1878 | + th.setData({[txt]: good.s_intValue}); | ||
| 1879 | + } | ||
| 1880 | + //优惠送券 | ||
| 1881 | + if (good.s_coupon_id) { | ||
| 1882 | + var i_txt = "formData.give_coupon_id"; | ||
| 1883 | + //这个是json格式的 | ||
| 1884 | + var i_txt1 = "formData.g_coupon_num"; | ||
| 1885 | + var ob = [{"num": good.s_coupon_num, "c_id": good.s_coupon_id}]; | ||
| 1886 | + ob = JSON.stringify(ob); | ||
| 1887 | + th.setData({[i_txt]: good.s_coupon_id, [i_txt1]: ob}); | ||
| 1888 | + } | ||
| 1889 | + //优惠礼包 | ||
| 1890 | + if (good.s_libao) { | ||
| 1891 | + var l_txt = "formData.give_lb_id"; | ||
| 1892 | + //这个是json格式的 | ||
| 1893 | + var l_txt1 = "formData.g_lb_num"; | ||
| 1894 | + var ob = [{"num": good.s_lb_num, "l_id": good.s_libao}]; | ||
| 1895 | + ob = JSON.stringify(ob); | ||
| 1896 | + th.setData({[l_txt]: good.s_libao, [l_txt1]: ob}); | ||
| 1897 | + } | ||
| 1898 | + }) | ||
| 1899 | + } else { | ||
| 1900 | + total_m = parseFloat(total_m) + parseFloat(th.data.formData.shipping_price); | ||
| 1901 | + order_m = parseFloat(order_m) + parseFloat(th.data.formData.shipping_price); | ||
| 1902 | + var atxt = "formData.total_amount"; | ||
| 1903 | + | ||
| 1904 | + total_m = total_m.toFixed(2); | ||
| 1905 | + order_m = order_m.toFixed(2); | ||
| 1906 | + | ||
| 1907 | + th.setData({[atxt]: total_m,}) | ||
| 1908 | + | ||
| 1909 | + var txt = "formData.user_money"; | ||
| 1910 | + var txt2 = "formData.order_amount"; | ||
| 1911 | + var txt3 = "formData.coupon_price"; | ||
| 1912 | + var amoney = parseFloat(th.data.userinfo.user_money - th.data.txmon - th.data.userinfo.frozen_money); | ||
| 1913 | + //--------------如果使用余额--------------------- | ||
| 1914 | + if (th.data.bn_use_money == 1) { | ||
| 1915 | + if (amoney > order_m) { | ||
| 1916 | + order_m = parseFloat(order_m).toFixed(2); | ||
| 1917 | + th.setData({[txt]: order_m, [txt2]: 0, [txt3]: coupon_price, show_submit: 1}) | ||
| 1918 | + } else { | ||
| 1919 | + order_m = parseFloat(order_m) - parseFloat(amoney); | ||
| 1920 | + order_m = order_m.toFixed(2); | ||
| 1921 | + th.setData({[txt]: amoney, [txt2]: order_m, [txt3]: coupon_price, show_submit: 1}) | ||
| 1922 | + } | ||
| 1923 | + } else { | ||
| 1924 | + th.setData({[txt]: 0, [txt2]: order_m, [txt3]: coupon_price, show_submit: 1}) | ||
| 1925 | + } | ||
| 1926 | + //优惠活动送积分 | ||
| 1927 | + if (good.s_intValue) { | ||
| 1928 | + txt = "formData.give_integral"; | ||
| 1929 | + th.setData({[txt]: good.s_intValue}); | ||
| 1930 | + } | ||
| 1931 | + //优惠送券 | ||
| 1932 | + if (good.s_coupon_id) { | ||
| 1933 | + var i_txt = "formData.give_coupon_id"; | ||
| 1934 | + //这个是json格式的 | ||
| 1935 | + var i_txt1 = "formData.g_coupon_num"; | ||
| 1936 | + var ob = [{"num": good.s_coupon_num, "c_id": good.s_coupon_id}]; | ||
| 1937 | + ob = JSON.stringify(ob); | ||
| 1938 | + th.setData({[i_txt]: good.s_coupon_id, [i_txt1]: ob}); | ||
| 1939 | + } | ||
| 1940 | + //优惠礼包 | ||
| 1941 | + if (good.s_libao) { | ||
| 1942 | + var l_txt = "formData.give_lb_id"; | ||
| 1943 | + //这个是json格式的 | ||
| 1944 | + var l_txt1 = "formData.g_lb_num"; | ||
| 1945 | + var ob = [{"num": good.s_lb_num, "l_id": good.s_libao}]; | ||
| 1946 | + ob = JSON.stringify(ob); | ||
| 1947 | + th.setData({[l_txt]: good.s_coupon_id, [l_txt1]: ob}); | ||
| 1948 | + } | ||
| 1949 | + } | ||
| 1950 | + | ||
| 1951 | + wx.hideLoading(); | ||
| 1952 | + | ||
| 1953 | + }); | ||
| 1954 | + }); | ||
| 1955 | + }, | ||
| 1956 | + | ||
| 1957 | + //--------------------提交订单----------------------- | ||
| 1958 | + async submitForm(t){ | ||
| 1959 | + var sub_value = t; | ||
| 1960 | + | ||
| 1961 | + if (this.data.is_summit_ing == 1) return false; //--提交中退出-- | ||
| 1962 | + this.data.is_summit_ing = 1; | ||
| 1963 | + var th = this, pdata = new Array(); | ||
| 1964 | + var ff = true; | ||
| 1965 | + //------------立即购买------------- | ||
| 1966 | + if (th.data.is_b_now == 1 && th.data.bn_goods.prom_type != 5) { | ||
| 1967 | + | ||
| 1968 | + if (th.data.bn_exp_type == 0 && th.data.user_addr == null) { | ||
| 1969 | + ff = false; | ||
| 1970 | + getApp().my_warnning("请选择收货地址", 0, th); | ||
| 1971 | + th.data.is_summit_ing = 0; | ||
| 1972 | + } | ||
| 1973 | + if (!ff) return false; | ||
| 1974 | + var addr = th.data.user_addr; | ||
| 1975 | + if (th.data.bn_exp_type == 1) addr = null; | ||
| 1976 | + | ||
| 1977 | + if (th.data.bn_exp_type == 0) | ||
| 1978 | + if (th.data.wu_arr == null || th.data.wu_arr.length <= 0) { | ||
| 1979 | + getApp().my_warnning("读取物流失败", 0, th); | ||
| 1980 | + th.data.is_summit_ing = 0; | ||
| 1981 | + return false; | ||
| 1982 | + } | ||
| 1983 | + | ||
| 1984 | + var item = { | ||
| 1985 | + 'user_id': to.globalData.user_id, | ||
| 1986 | + 'consignee': addr == null ? "" : addr.consignee, | ||
| 1987 | + 'province': addr == null ? 0 : addr.province, | ||
| 1988 | + 'city': addr == null ? 0 : addr.city, | ||
| 1989 | + 'district': addr == null ? 0 : addr.district, | ||
| 1990 | + 'twon': addr == null ? 0 : addr.twon, | ||
| 1991 | + 'address': addr == null ? "" : addr.address, | ||
| 1992 | + 'more_address': addr == null ? "" : addr.more_address, | ||
| 1993 | + //'mobile': th.data.userinfo.mobile, | ||
| 1994 | + 'mobile': addr == null ? th.data.userinfo.mobile : addr.mobile, | ||
| 1995 | + 'email': '', | ||
| 1996 | + 'shipping_code': th.data.bn_exp_type == 1 ? 0 : th.data.wu_arr[th.data.index].code, | ||
| 1997 | + 'shipping_name': th.data.bn_exp_type == 1 ? '' : th.data.wu_arr[th.data.index].name, | ||
| 1998 | + 'invoice_title': '', | ||
| 1999 | + 'goods_price': th.data.formData.all_price, //商品总价 | ||
| 2000 | + 'shipping_price': th.data.formData.shipping_price, //物流金额 | ||
| 2001 | + 'user_money': th.data.formData.user_money, //使用余额 | ||
| 2002 | + 'total_amount': th.data.formData.total_amount, //订单总价 | ||
| 2003 | + 'order_amount': th.data.formData.order_amount, //应付 | ||
| 2004 | + 'user_note': t.detail.value.user_note, //用户备注 | ||
| 2005 | + 'store_id': oo.stoid, //商家 | ||
| 2006 | + 'pickup_id': th.data.bn_pick, //门店 | ||
| 2007 | + 'exp_type': th.data.bn_exp_type, //配送方式 | ||
| 2008 | + 'order_goods': new Array(), | ||
| 2009 | + }; | ||
| 2010 | + //是不是重新提交 | ||
| 2011 | + if (th.data.is_continue == 1) item.is_continue = 1; | ||
| 2012 | + | ||
| 2013 | + //获取立即购买的商品的信息 | ||
| 2014 | + var gg = to.get_b_now(); | ||
| 2015 | + //--商品的房间号-- | ||
| 2016 | + if (gg.room_id && gg.room_id > 0) { | ||
| 2017 | + item.room_ids = gg.room_id; | ||
| 2018 | + } | ||
| 2019 | + | ||
| 2020 | + var order_prom_list = {}; | ||
| 2021 | + //--判断有没有优惠活动-- | ||
| 2022 | + if (th.data.order_prom[item.pickup_id]) { | ||
| 2023 | + if (th.data.formData.order_prom_amount > 0) { | ||
| 2024 | + order_prom_list.order_prom_id = th.data.formData.order_prom_id; | ||
| 2025 | + order_prom_list.order_prom_amount = th.data.formData.order_prom_amount; | ||
| 2026 | + } | ||
| 2027 | + } | ||
| 2028 | + | ||
| 2029 | + //--判断优惠活动的提交-- | ||
| 2030 | + if (th.data.formData.cut_price > 0) { | ||
| 2031 | + order_prom_list.discount_amount = th.data.formData.cut_price.toFixed(2); | ||
| 2032 | + var ob = [{ | ||
| 2033 | + "prom_id": th.data.bn_goods.prom_id, | ||
| 2034 | + "dis": th.data.formData.cut_price.toFixed(2), | ||
| 2035 | + "ispt": 0 | ||
| 2036 | + }] | ||
| 2037 | + order_prom_list.prom_pt_json = JSON.stringify(ob); | ||
| 2038 | + } | ||
| 2039 | + if (th.data.formData.give_integral > 0) { | ||
| 2040 | + order_prom_list.give_integral = th.data.formData.give_integral; | ||
| 2041 | + } | ||
| 2042 | + if (th.data.formData.give_coupon_id > 0) { | ||
| 2043 | + order_prom_list.give_coupon_id = th.data.formData.give_coupon_id; | ||
| 2044 | + order_prom_list.g_coupon_num = th.data.formData.g_coupon_num; | ||
| 2045 | + } | ||
| 2046 | + if (th.data.formData.give_lb_id > 0) { | ||
| 2047 | + order_prom_list.give_lb_id = th.data.formData.give_lb_id; | ||
| 2048 | + order_prom_list.g_lb_num = th.data.formData.g_lb_num; | ||
| 2049 | + } | ||
| 2050 | + item.order_prom_list = order_prom_list; | ||
| 2051 | + | ||
| 2052 | + //组装优惠券的钱 | ||
| 2053 | + if (parseFloat(th.data.formData.coupon_price) > 0) { | ||
| 2054 | + item.coupon_price = th.data.formData.coupon_price; | ||
| 2055 | + item.coupon_no = th.data.using_quan[th.data.bn_pick].coupon_no; | ||
| 2056 | + } | ||
| 2057 | + 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) { | ||
| 2058 | + item.coupon_no = th.data.using_quan[th.data.bn_pick].coupon_no; | ||
| 2059 | + item.coupon_price = 0; | ||
| 2060 | + } | ||
| 2061 | + | ||
| 2062 | + //老会员成为分销下线需要的参数 | ||
| 2063 | + if (getApp().globalData.first_leader && !getApp().globalData.userInfo.first_leader) { | ||
| 2064 | + //判断一下分享人是不是分享商 | ||
| 2065 | + await app.request.promiseGet("/api/weshop/users/get/" + os.stoid + "/" + getApp().globalData.first_leader, {}).then(res => { | ||
| 2066 | + if (res.data.code == 0) { | ||
| 2067 | + var user = res.data.data; | ||
| 2068 | + if (user.is_distribut == 1) { | ||
| 2069 | + item.first_leader = parseInt(getApp().globalData.first_leader); | ||
| 2070 | + } | ||
| 2071 | + } | ||
| 2072 | + }) | ||
| 2073 | + } | ||
| 2074 | + | ||
| 2075 | + var goods = { | ||
| 2076 | + 'goods_id': gg.goods_id, | ||
| 2077 | + 'goods_name': gg.goods_name, | ||
| 2078 | + 'goods_sn': gg.goods_sn, | ||
| 2079 | + 'goods_num': gg.goods_num, | ||
| 2080 | + 'market_price': th.data.bn_goods.market_price, | ||
| 2081 | + 'goods_price': th.data.bn_goods.shop_price, | ||
| 2082 | + 'member_goods_price': th.data.bn_goods.shop_price, | ||
| 2083 | + 'store_id': oo.stoid, | ||
| 2084 | + 'prom_type': th.data.bn_goods.prom_type, //促销活动类型 | ||
| 2085 | + 'prom_id': th.data.bn_goods.prom_id, //促销活动id | ||
| 2086 | + }; | ||
| 2087 | + | ||
| 2088 | + //-- 把导购的信息填入-- | ||
| 2089 | + if (gg.guide_id) { | ||
| 2090 | + goods.guide_id = gg.guide_id; | ||
| 2091 | + goods.guide_type = gg.guide_type; | ||
| 2092 | + //调用接口判断是不是会员 | ||
| 2093 | + await getApp().request.promiseGet("/api/weshop/shoppingGuide/getId/" + oo.stoid + "/" + gg.guide_id, {}).then(res => { | ||
| 2094 | + if (res.data.code == 0) { | ||
| 2095 | + goods.guide_name = res.data.data.salesman; | ||
| 2096 | + goods.guide_sn = res.data.data.salesman_no; | ||
| 2097 | + } | ||
| 2098 | + }) | ||
| 2099 | + } | ||
| 2100 | + | ||
| 2101 | + //--商品的房间号-- | ||
| 2102 | + if (gg.room_id && gg.room_id > 0) { | ||
| 2103 | + goods.room_id = gg.room_id; | ||
| 2104 | + } | ||
| 2105 | + | ||
| 2106 | + //积分购,先要带is_integral_normal=1 | ||
| 2107 | + if (gg.is_integral_normal) goods.is_integral_normal = 1; | ||
| 2108 | + | ||
| 2109 | + //先要带is_pd_normal=1 | ||
| 2110 | + if (gg.is_pd_normal) goods.is_pd_normal = 1; | ||
| 2111 | + | ||
| 2112 | + //如果不立即购买或者秒杀,如果是线下库存购买的时候 | ||
| 2113 | + if (goods.prom_type != 1 && goods.prom_type != 6 && th.data.sales_rules == 2) { | ||
| 2114 | + var isok = 1; | ||
| 2115 | + await th.check_store_num(goods.goods_id, th.data.bn_pick, gg.goods_num, function (res) { | ||
| 2116 | + isok = res; | ||
| 2117 | + }); | ||
| 2118 | + if (!isok) { | ||
| 2119 | + getApp().confirmBox("商品的门店库存不足"); | ||
| 2120 | + th.data.is_summit_ing = 0; | ||
| 2121 | + return false; | ||
| 2122 | + } | ||
| 2123 | + } | ||
| 2124 | + | ||
| 2125 | + //-- 如果有线下取价的话 -- | ||
| 2126 | + if (th.data.bn_goods.is_offline) { | ||
| 2127 | + item.sum_offline_cut = (th.data.bn_goods.shop_price - th.data.bn_goods.offline_price).toFixed(2); | ||
| 2128 | + goods.offline_cut = item.sum_offline_cut; | ||
| 2129 | + goods.pricing_type = th.data.bn_goods.pricing_type; | ||
| 2130 | + goods.goods_price = th.data.bn_goods.offline_price; | ||
| 2131 | + goods.member_goods_price = th.data.bn_goods.offline_price; | ||
| 2132 | + } | ||
| 2133 | + | ||
| 2134 | + //--- 如果有优惠促销的金额,要把金额先平摊下去 --- | ||
| 2135 | + if (th.data.formData.cut_price > 0 && !th.data.ispt_goods) { | ||
| 2136 | + var g_arr = new Array(); | ||
| 2137 | + g_arr.push(goods); | ||
| 2138 | + var pt_data = { | ||
| 2139 | + 'prom_id': goods.prom_id, | ||
| 2140 | + 'dis': parseFloat(th.data.formData.cut_price), | ||
| 2141 | + 'goods': g_arr, | ||
| 2142 | + } | ||
| 2143 | + | ||
| 2144 | + var pt_res = null; | ||
| 2145 | + await getApp().request.promisePost("/api/weshop/order/getGoodsSplit", { | ||
| 2146 | + is_json: 1, | ||
| 2147 | + data: pt_data | ||
| 2148 | + }).then(res => { | ||
| 2149 | + if (res.data.code == 0) { | ||
| 2150 | + pt_res = res.data.data; | ||
| 2151 | + } | ||
| 2152 | + }) | ||
| 2153 | + if (pt_res) { | ||
| 2154 | + //平摊赋值 | ||
| 2155 | + goods.account = pt_res[0].fisrt_account; | ||
| 2156 | + goods.account_yu = pt_res[0].fisrt_account_yu; | ||
| 2157 | + item.is_discount_amount = 1; | ||
| 2158 | + } | ||
| 2159 | + } | ||
| 2160 | + | ||
| 2161 | + //--组装优惠券的钱-- | ||
| 2162 | + if (th.data.formData.coupon_price) { | ||
| 2163 | + item.coupon_price = th.data.formData.coupon_price; | ||
| 2164 | + item.coupon_no = th.data.using_quan[th.data.bn_pick].coupon_no; | ||
| 2165 | + goods.quan_num = th.data.formData.coupon_price; | ||
| 2166 | + goods.quan_no = item.coupon_no; | ||
| 2167 | + } | ||
| 2168 | + | ||
| 2169 | + item.order_goods.push(goods); | ||
| 2170 | + | ||
| 2171 | + //--如果有赠品的时候,赠品也要提交--- | ||
| 2172 | + if (th.data.buy_now_gift_goods) { | ||
| 2173 | + var gift_gg = th.data.buy_now_gift_goods; | ||
| 2174 | + var g_goods = { | ||
| 2175 | + 'goods_id': gift_gg.goods_id, | ||
| 2176 | + 'goods_name': gift_gg.goods_name, | ||
| 2177 | + 'goods_sn': gift_gg.goods_sn, | ||
| 2178 | + 'goods_num': gift_gg.buynum, | ||
| 2179 | + 'market_price': gift_gg.market_price, | ||
| 2180 | + 'goods_price': 0, | ||
| 2181 | + 'member_goods_price': 0, | ||
| 2182 | + 'store_id': oo.stoid, | ||
| 2183 | + 'is_gift': 1, | ||
| 2184 | + 'gift_id': gift_gg.gift_id, | ||
| 2185 | + 'prom_id': gift_gg.prom_id, | ||
| 2186 | + }; | ||
| 2187 | + item.order_goods.push(g_goods); | ||
| 2188 | + } | ||
| 2189 | + pdata.push(item); | ||
| 2190 | + | ||
| 2191 | + console.log(pdata); | ||
| 2192 | + } else { | ||
| 2193 | + //---------购物车的结算--------- | ||
| 2194 | + if (th.data.is_all_zt == 0 && th.data.user_addr == null) { | ||
| 2195 | + th.data.is_summit_ing = 0; | ||
| 2196 | + ff = false; | ||
| 2197 | + getApp().confirmBox("请新建收货地址"); | ||
| 2198 | + } | ||
| 2199 | + if (!ff) return false; | ||
| 2200 | + | ||
| 2201 | + var addr = th.data.user_addr; | ||
| 2202 | + if (th.data.is_all_zt == 1) addr = null; | ||
| 2203 | + var val_arr = t.detail.value; | ||
| 2204 | + | ||
| 2205 | + | ||
| 2206 | + if (th.data.is_all_zt != 1) | ||
| 2207 | + if (th.data.wu_arr == null || th.data.wu_arr.length <= 0) { | ||
| 2208 | + th.data.is_summit_ing = 0; | ||
| 2209 | + getApp().confirmBox("读取物流失败"); | ||
| 2210 | + return false; | ||
| 2211 | + } | ||
| 2212 | + | ||
| 2213 | + var order_prom_list_cart = th.data.order_prom_list_cart; | ||
| 2214 | + | ||
| 2215 | + //--组装推送数据-- | ||
| 2216 | + for (var i = 0; i < order_prom_list_cart.length; i++) { | ||
| 2217 | + var t_item = order_prom_list_cart[i]; | ||
| 2218 | + var item = { | ||
| 2219 | + 'user_id': to.globalData.user_id, | ||
| 2220 | + 'consignee': addr == null ? th.data.userinfo.mobile : addr.consignee, | ||
| 2221 | + 'province': addr == null ? 0 : addr.province, | ||
| 2222 | + 'city': addr == null ? 0 : addr.city, | ||
| 2223 | + 'district': addr == null ? 0 : addr.district, | ||
| 2224 | + 'twon': addr == null ? 0 : addr.twon, | ||
| 2225 | + 'address': addr == null ? "" : addr.address, | ||
| 2226 | + 'more_address': addr == null ? "" : addr.more_address, | ||
| 2227 | + 'mobile': addr == null ? th.data.userinfo.mobile : addr.mobile, | ||
| 2228 | + 'email': '', | ||
| 2229 | + 'shipping_code': th.data.is_all_zt == 1 ? 0 : th.data.wu_arr[t_item.wind].code, | ||
| 2230 | + 'shipping_name': th.data.is_all_zt == 1 ? '' : th.data.wu_arr[t_item.wind].name, | ||
| 2231 | + 'invoice_title': '', | ||
| 2232 | + 'goods_price': t_item.goods_price, //商品总价 | ||
| 2233 | + 'shipping_price': t_item.shipping_price, //物流金额 | ||
| 2234 | + 'user_money': t_item.user_money, //使用余额 | ||
| 2235 | + 'total_amount': t_item.total_amount, //订单总价 | ||
| 2236 | + 'order_amount': t_item.order_amount, //应付 | ||
| 2237 | + 'user_note': val_arr['user_note_' + t_item.pickup_id], //用户备注 | ||
| 2238 | + 'store_id': oo.stoid, //商家 | ||
| 2239 | + 'pickup_id': t_item.pickup_id, //门店 | ||
| 2240 | + 'exp_type': t_item.exp_type, //配送方式 | ||
| 2241 | + 'order_goods': new Array(), | ||
| 2242 | + }; | ||
| 2243 | + //是不是重新提交 | ||
| 2244 | + if (th.data.is_continue == 1) item.is_continue = 1; | ||
| 2245 | + //----- 如果有线下取价的话 ---- | ||
| 2246 | + if (t_item.is_offline == 1) { | ||
| 2247 | + item.sum_offline_cut = t_item.offline_price.toFixed(2); | ||
| 2248 | + } | ||
| 2249 | + | ||
| 2250 | + //组装优惠券的钱 | ||
| 2251 | + if (t_item.coupon_price) { | ||
| 2252 | + item.coupon_price = t_item.coupon_price; | ||
| 2253 | + item.coupon_no = th.data.using_quan[t_item.pickup_id].coupon_no; | ||
| 2254 | + } else if (t_item.quan_no) { | ||
| 2255 | + item.coupon_no = t_item.quan_no; | ||
| 2256 | + item.coupon_price = 0; | ||
| 2257 | + } | ||
| 2258 | + | ||
| 2259 | + var order_prom_list = {}; | ||
| 2260 | + //--判断有没有优惠活动-- | ||
| 2261 | + if (t_item.order_prom_amount > 0) { | ||
| 2262 | + order_prom_list.order_prom_id = t_item.order_prom_id; | ||
| 2263 | + order_prom_list.order_prom_amount = t_item.order_prom_amount; | ||
| 2264 | + } | ||
| 2265 | + | ||
| 2266 | + order_prom_list.discount_amount =0; | ||
| 2267 | + //--判断优惠活动的提交-- | ||
| 2268 | + if (t_item.cut_price > 0) { | ||
| 2269 | + order_prom_list.discount_amount += t_item.cut_price.toFixed(2); | ||
| 2270 | + order_prom_list.prom_pt_json = JSON.stringify(t_item.prom_pt_json); | ||
| 2271 | + } | ||
| 2272 | + //--判断组合优惠活动的提交-- | ||
| 2273 | + if (t_item.zh_cut_price > 0) { | ||
| 2274 | + order_prom_list.discount_amount += t_item.zh_cut_price.toFixed(2); | ||
| 2275 | + order_prom_list.zh_pt_json = JSON.stringify(t_item.zh_pt_json); | ||
| 2276 | + } | ||
| 2277 | + if (t_item.s_intValue > 0) { | ||
| 2278 | + order_prom_list.give_integral = t_item.s_intValue; | ||
| 2279 | + } | ||
| 2280 | + if (t_item.s_coupon_id) { | ||
| 2281 | + order_prom_list.give_coupon_id = t_item.s_coupon_id; | ||
| 2282 | + order_prom_list.g_coupon_num = JSON.stringify(t_item.g_coupon_num); | ||
| 2283 | + } | ||
| 2284 | + if (t_item.s_libao) { | ||
| 2285 | + order_prom_list.give_lb_id = t_item.s_libao; | ||
| 2286 | + order_prom_list.g_lb_num = JSON.stringify(t_item.g_lb_num); | ||
| 2287 | + } | ||
| 2288 | + if (Object.keys(order_prom_list).length > 0) | ||
| 2289 | + item.order_prom_list = order_prom_list; | ||
| 2290 | + | ||
| 2291 | + //老会员成为分销下线需要的参数 | ||
| 2292 | + if (getApp().globalData.first_leader && !getApp().globalData.userInfo.first_leader) { | ||
| 2293 | + //判断一下分享人是不是分享商 | ||
| 2294 | + await app.request.promiseGet("/api/weshop/users/get/" + os.stoid + "/" + getApp().globalData.first_leader, {}).then(res => { | ||
| 2295 | + if (res.data.code == 0) { | ||
| 2296 | + var user = res.data.data; | ||
| 2297 | + if (user.is_distribut == 1) { | ||
| 2298 | + item.first_leader = parseInt(getApp().globalData.first_leader); | ||
| 2299 | + } | ||
| 2300 | + } | ||
| 2301 | + }) | ||
| 2302 | + } | ||
| 2303 | + | ||
| 2304 | + | ||
| 2305 | + //房间号的ids | ||
| 2306 | + var room_ids = ""; | ||
| 2307 | + //-------------让商品添加到商品列表-------------------- | ||
| 2308 | + for (var k = 0; k < t_item.goods.length; k++) { | ||
| 2309 | + var g_item = t_item.goods[k]; | ||
| 2310 | + var goods = { | ||
| 2311 | + 'goods_id': g_item.goods_id, | ||
| 2312 | + 'goods_name': g_item.goods_name, | ||
| 2313 | + 'goods_sn': g_item.goods_sn, | ||
| 2314 | + 'goods_num': g_item.goods_num, | ||
| 2315 | + 'market_price': g_item.market_price, | ||
| 2316 | + 'goods_price': g_item.goods_price, | ||
| 2317 | + 'member_goods_price': g_item.goods_price, | ||
| 2318 | + 'store_id': oo.stoid, | ||
| 2319 | + }; | ||
| 2320 | + | ||
| 2321 | + //-- 线下取价也要写入 -- | ||
| 2322 | + if (g_item.offline_price && t_item.is_offline == 1) { | ||
| 2323 | + goods.goods_price = g_item.offline_price; | ||
| 2324 | + goods.member_goods_price = g_item.offline_price; | ||
| 2325 | + goods.offline_cut = (g_item.goods_price - g_item.offline_price).toFixed(2); | ||
| 2326 | + goods.pricing_type = g_item.pricing_type; | ||
| 2327 | + } | ||
| 2328 | + | ||
| 2329 | + //--把券的钱,写入从表--- | ||
| 2330 | + if (t_item.quan_youhui_list && t_item.coupon_price) { | ||
| 2331 | + for (var kk in t_item.quan_youhui_list) { | ||
| 2332 | + var you_item = t_item.quan_youhui_list[kk]; | ||
| 2333 | + if (g_item.prom_type!=7 && g_item.erpwareid == you_item.WareId) { | ||
| 2334 | + goods.quan_num = you_item.WareCashSum; | ||
| 2335 | + goods.quan_no = you_item.CashRepNo; | ||
| 2336 | + } | ||
| 2337 | + } | ||
| 2338 | + } | ||
| 2339 | + | ||
| 2340 | + //--判断活动的类型-- | ||
| 2341 | + switch (g_item.prom_type) { | ||
| 2342 | + case 1: | ||
| 2343 | + goods.prom_type = g_item.prom_type; | ||
| 2344 | + goods.prom_id = g_item.prom_id; | ||
| 2345 | + break; | ||
| 2346 | + case 3: | ||
| 2347 | + goods.prom_type = 3; | ||
| 2348 | + goods.prom_id = g_item.prom_id; | ||
| 2349 | + if (g_item.is_gift) { | ||
| 2350 | + goods.is_gift = g_item.is_gift; | ||
| 2351 | + goods.gift_id = g_item.gift_id; | ||
| 2352 | + } | ||
| 2353 | + break; | ||
| 2354 | + case 5: | ||
| 2355 | + goods.prom_type = 5; | ||
| 2356 | + goods.prom_id = g_item.prom_id; | ||
| 2357 | + if (g_item.is_collocation) { | ||
| 2358 | + goods.is_collocation = g_item.is_collocation; | ||
| 2359 | + } | ||
| 2360 | + break | ||
| 2361 | + case 7: | ||
| 2362 | + goods.prom_type = 7; | ||
| 2363 | + goods.prom_id = g_item.prom_id; | ||
| 2364 | + break | ||
| 2365 | + default: | ||
| 2366 | + goods.prom_type = 0; | ||
| 2367 | + goods.prom_id = 0; | ||
| 2368 | + } | ||
| 2369 | + | ||
| 2370 | + //如果不立即购买或者秒杀,如果是线下库存购买的时候 | ||
| 2371 | + if (goods.prom_type == 0 && th.data.sales_rules == 2) { | ||
| 2372 | + var isok = 1; | ||
| 2373 | + await th.check_store_num(goods.goods_id, t_item.pickup_id, goods.goods_num, function (res) { | ||
| 2374 | + isok = res; | ||
| 2375 | + }); | ||
| 2376 | + if (!isok) { | ||
| 2377 | + getApp().confirmBox(goods.goods_name + "的门店库存不足"); | ||
| 2378 | + th.data.is_summit_ing = 0; | ||
| 2379 | + return false; | ||
| 2380 | + } | ||
| 2381 | + } | ||
| 2382 | + | ||
| 2383 | + //把优惠的平摊结果写进去 | ||
| 2384 | + if (g_item.account >= 0 || g_item.account_yu != 0) { | ||
| 2385 | + if (g_item.account >= 0) goods.account = g_item.account; | ||
| 2386 | + if (g_item.account_yu != 0) goods.account_yu = g_item.account_yu; | ||
| 2387 | + item.is_discount_amount = 1; | ||
| 2388 | + } | ||
| 2389 | + | ||
| 2390 | + //导购ID | ||
| 2391 | + if (g_item.guide_id) { | ||
| 2392 | + goods.guide_id = g_item.guide_id; | ||
| 2393 | + goods.guide_type = g_item.guide_type; | ||
| 2394 | + //调用接口判断是不是会员 | ||
| 2395 | + await getApp().request.promiseGet("/api/weshop/shoppingGuide/getId/" + oo.stoid + "/" + g_item.guide_id, {}).then(res => { | ||
| 2396 | + if (res.data.code == 0) { | ||
| 2397 | + goods.guide_name = res.data.data.salesman; | ||
| 2398 | + goods.guide_sn = res.data.data.salesman_no; | ||
| 2399 | + } | ||
| 2400 | + }) | ||
| 2401 | + } | ||
| 2402 | + //如果房间号不为空的时候 | ||
| 2403 | + if (g_item.room_id) { | ||
| 2404 | + goods.room_id = g_item.room_id; | ||
| 2405 | + room_ids += g_item.room_id + ","; | ||
| 2406 | + } | ||
| 2407 | + item.order_goods.push(goods); | ||
| 2408 | + } | ||
| 2409 | + | ||
| 2410 | + //如果房间号不为空的时候 | ||
| 2411 | + if (room_ids != "") item.room_ids = ut.sub_last(room_ids); | ||
| 2412 | + pdata.push(item); | ||
| 2413 | + } | ||
| 2414 | + | ||
| 2415 | + | ||
| 2416 | + } | ||
| 2417 | + | ||
| 2418 | + if (pdata.length == 0) return; | ||
| 2419 | + var str = JSON.stringify(pdata); | ||
| 2420 | + | ||
| 2421 | + wx.showLoading({title: "加载中"}); | ||
| 2422 | + wx.request({ | ||
| 2423 | + url: oo.url + '/api/weshop/order/createWxdOrder', | ||
| 2424 | + data: str, | ||
| 2425 | + method: 'POST', | ||
| 2426 | + header: { | ||
| 2427 | + 'content-type': 'application/json' | ||
| 2428 | + },// 设置请求的 header | ||
| 2429 | + success: function (res) { | ||
| 2430 | + | ||
| 2431 | + | ||
| 2432 | + wx.hideLoading(); | ||
| 2433 | + if (res.statusCode == 200) { | ||
| 2434 | + var data = res.data; | ||
| 2435 | + if (data.code == 0) { | ||
| 2436 | + console.log(th.data.is_b_now); | ||
| 2437 | + //如果是购物车结算,还要删除购物车 | ||
| 2438 | + if (th.data.is_b_now == 0) { | ||
| 2439 | + console.log(th.data.cartlist_y); | ||
| 2440 | + var list = th.data.cartlist_y; | ||
| 2441 | + for (var i = 0; i < list.length; i++) { | ||
| 2442 | + //删除购物车 | ||
| 2443 | + a.delete("/api/weshop/cart/del/" + oo.stoid + "/" + list[i].id, {}); | ||
| 2444 | + } | ||
| 2445 | + } | ||
| 2446 | + var order_amount = 0; | ||
| 2447 | + pdata.forEach(function (em, ind) { | ||
| 2448 | + order_amount += em.order_amount; | ||
| 2449 | + }) | ||
| 2450 | + //要进行判断,如果是用微信支付,就要跳转到支付界面 | ||
| 2451 | + if (order_amount > 0) { | ||
| 2452 | + th.setData({isclose: 0}); | ||
| 2453 | + //void e.jumpToCart4({ | ||
| 2454 | + // order_sn: data.data, | ||
| 2455 | + //}, 1); | ||
| 2456 | + util_pay.pay(data.data, function () { | ||
| 2457 | + //app.my_warnning("支付成功",1,th); | ||
| 2458 | + //setTimeout(function () { | ||
| 2459 | + wx.redirectTo({ | ||
| 2460 | + url: "/pages/payment/pay_success/pay_success?type=2&order_sn=" + data.data | ||
| 2461 | + }) | ||
| 2462 | + //},1000) | ||
| 2463 | + | ||
| 2464 | + }, function () { | ||
| 2465 | + //支付失败 | ||
| 2466 | + setTimeout(function () { | ||
| 2467 | + wx.navigateBack({delta: 1}) | ||
| 2468 | + }, 1000) | ||
| 2469 | + }, oo.stoid); | ||
| 2470 | + | ||
| 2471 | + } else { | ||
| 2472 | + var dd = { | ||
| 2473 | + parent_sn: data.data, | ||
| 2474 | + store_id: oo.stoid, | ||
| 2475 | + type: 2, | ||
| 2476 | + }; | ||
| 2477 | + a.post("/api/weshop/order/pay/createOrder", { | ||
| 2478 | + data: dd, | ||
| 2479 | + success: function (t) { | ||
| 2480 | + //console.log(t); | ||
| 2481 | + if (t.data.code == 0) { | ||
| 2482 | + //app.my_warnning("支付成功",1,th); | ||
| 2483 | + //setTimeout(function () { | ||
| 2484 | + th.setData({isclose: 0}); | ||
| 2485 | + wx.redirectTo({ | ||
| 2486 | + url: "/pages/payment/pay_success/pay_success?type=2&order_sn=" + data.data, | ||
| 2487 | + }) | ||
| 2488 | + //}, 1000) | ||
| 2489 | + } | ||
| 2490 | + }, | ||
| 2491 | + fail: function () { | ||
| 2492 | + | ||
| 2493 | + } | ||
| 2494 | + }); | ||
| 2495 | + } | ||
| 2496 | + | ||
| 2497 | + } | ||
| 2498 | + else { | ||
| 2499 | + //--内容换行-- | ||
| 2500 | + var msg = data.msg; | ||
| 2501 | + //赠品活动已经取消,无法赠送,是否继续买单? | ||
| 2502 | + if (msg.indexOf("是否继续买单") > 0) { | ||
| 2503 | + wx.showModal({ | ||
| 2504 | + title: "提示", | ||
| 2505 | + content: data.msg, | ||
| 2506 | + cancelText: '取消', | ||
| 2507 | + confirmText: '确定', | ||
| 2508 | + showCancel: true, | ||
| 2509 | + success(res){ | ||
| 2510 | + if (res.cancel) { | ||
| 2511 | + return; | ||
| 2512 | + } else if (res.confirm) { | ||
| 2513 | + th.data.is_continue = 1; | ||
| 2514 | + th.data.is_summit_ing = 0; //是否提交中 | ||
| 2515 | + th.submitForm(sub_value); | ||
| 2516 | + } | ||
| 2517 | + } | ||
| 2518 | + }) | ||
| 2519 | + return; | ||
| 2520 | + } | ||
| 2521 | + if (msg.length > 13) { | ||
| 2522 | + msg = msg.slice(0, 13) + "\r\n" + msg.slice(13); | ||
| 2523 | + } | ||
| 2524 | + getApp().confirmBox(msg); | ||
| 2525 | + th.data.is_summit_ing = 0; //是否提交中 | ||
| 2526 | + } | ||
| 2527 | + } else { | ||
| 2528 | + th.data.is_summit_ing = 0; //是否提交中 | ||
| 2529 | + console.log("index.js wx.request CheckCallUser statusCode" + res.statusCode); | ||
| 2530 | + } | ||
| 2531 | + }, | ||
| 2532 | + fail: function () { | ||
| 2533 | + th.data.is_summit_ing = 0; | ||
| 2534 | + wx.hideLoading(); | ||
| 2535 | + console.log("index.js wx.request CheckCallUser fail"); | ||
| 2536 | + }, | ||
| 2537 | + complete: function () { | ||
| 2538 | + } | ||
| 2539 | + }) | ||
| 2540 | + | ||
| 2541 | + }, | ||
| 2542 | + //---确认线下门店的数量足不足--- | ||
| 2543 | + async check_store_num(goods_id, pick, goods_num, func){ | ||
| 2544 | + var lock = 0, pick_no, plist, erpwareid; | ||
| 2545 | + //先读取门店的lock | ||
| 2546 | + await getApp().request.promiseGet("/api/weshop/order/ware/lock/page", { | ||
| 2547 | + data: {store_id: os.stoid, wareId: goods_id, storageId: pick, pageSize: 1000} | ||
| 2548 | + }).then(res => { | ||
| 2549 | + if (res.data.code == 0 && res.data.data.total > 0) { | ||
| 2550 | + for (var i in res.data.data.pageData) | ||
| 2551 | + lock += res.data.data.pageData[i].outQty; | ||
| 2552 | + } | ||
| 2553 | + }) | ||
| 2554 | + //先获取门店的编号 | ||
| 2555 | + await getApp().request.promiseGet("/api/weshop/pickup/get/" + os.stoid + "/" + pick, { | ||
| 2556 | + data: {storeId: os.stoid, goodsId: t.goods_id, pickupId: pick} | ||
| 2557 | + }).then(res => { | ||
| 2558 | + if (res.data.code == 0) { | ||
| 2559 | + pick_no = res.data.data.pickup_no; | ||
| 2560 | + } | ||
| 2561 | + }) | ||
| 2562 | + //先获取商品的线下库存 | ||
| 2563 | + await getApp().request.promiseGet("/api/weshop/goods/get/" + os.stoid + "/" + goods_id, { | ||
| 2564 | + data: {storeId: os.stoid, goodsId: t.goods_id, pickupId: pick} | ||
| 2565 | + }).then(res => { | ||
| 2566 | + if (res.data.code == 0) { | ||
| 2567 | + erpwareid = res.data.data.erpwareid; | ||
| 2568 | + } | ||
| 2569 | + }) | ||
| 2570 | + //读取线下的门店库存 | ||
| 2571 | + await getApp().request.promiseGet("/api/weshop/goods/getWareStorages", { | ||
| 2572 | + data: {storageNos: pick_no, wareIds: encodeURIComponent(erpwareid), storeId: os.stoid, pageSize: 2000} | ||
| 2573 | + }).then(res => { | ||
| 2574 | + if (res.data.code == 0) { | ||
| 2575 | + plist = res.data.data.pageData[0]; | ||
| 2576 | + } | ||
| 2577 | + }) | ||
| 2578 | + var isok = 1; | ||
| 2579 | + if (goods_num > plist.CanOutQty - lock) { | ||
| 2580 | + isok = 0; | ||
| 2581 | + } | ||
| 2582 | + func(isok); | ||
| 2583 | + }, | ||
| 2584 | + | ||
| 2585 | + useCoupon: function () { | ||
| 2586 | + if (this.data.order.couponNum <= 0) { | ||
| 2587 | + getApp().my_warnning("无可用优惠券", 0, this); | ||
| 2588 | + return; | ||
| 2589 | + } | ||
| 2590 | + | ||
| 2591 | + var a = { | ||
| 2592 | + lid: this.data.coupon ? this.data.coupon.id : "0" | ||
| 2593 | + }; | ||
| 2594 | + wx.navigateTo({ | ||
| 2595 | + url: "/pages/user/checkcoupon/checkcoupon?" + s.Obj2Str(a) | ||
| 2596 | + }); | ||
| 2597 | + }, | ||
| 2598 | + enterAddressPage: function () { | ||
| 2599 | + getApp().globalData.is_cart_old = 1; | ||
| 2600 | + this.data.isget_by_quan = {}; | ||
| 2601 | + this.data.enterAddressPage = !0, wx.navigateTo({ | ||
| 2602 | + url: "/pages/user/address_list/address_list" | ||
| 2603 | + }); | ||
| 2604 | + }, | ||
| 2605 | + | ||
| 2606 | + //--------购物车购买时,选择自提和物流----------- | ||
| 2607 | + setexptype_w: function (t) { | ||
| 2608 | + | ||
| 2609 | + var def_exp_code = getApp().globalData.userInfo.def_exp_code, th = this; | ||
| 2610 | + var ty = t.currentTarget.dataset.t, txt = t.currentTarget.dataset.txt, | ||
| 2611 | + wl_txt = t.currentTarget.dataset.wl_txt, | ||
| 2612 | + ont = t.currentTarget.dataset.ont; | ||
| 2613 | + | ||
| 2614 | + th.setData({[txt]: ty}); | ||
| 2615 | + var iszt = 1; | ||
| 2616 | + | ||
| 2617 | + if (ty == 0) { | ||
| 2618 | + th.setData({is_all_zt: 0}); | ||
| 2619 | + } else { | ||
| 2620 | + for (var i = 0; i < th.data.cartlist.length; i++) { | ||
| 2621 | + var item = th.data.cartlist[i]; | ||
| 2622 | + if (item.exp_type == 0) { | ||
| 2623 | + iszt = 0; | ||
| 2624 | + break; | ||
| 2625 | + } | ||
| 2626 | + } | ||
| 2627 | + | ||
| 2628 | + th.setData({is_all_zt: iszt}); | ||
| 2629 | + | ||
| 2630 | + var ind = t.currentTarget.dataset.ind; | ||
| 2631 | + var c_item = th.data.cartlist[ind]; | ||
| 2632 | + var pickid = c_item.pickup_id; | ||
| 2633 | + | ||
| 2634 | + if (th.data.using_quan[pickid] && th.data.using_quan[pickid].isby == 1) { | ||
| 2635 | + th.data.using_quan[pickid] = {}; | ||
| 2636 | + th.setData({using_quan: th.data.using_quan}); | ||
| 2637 | + } | ||
| 2638 | + | ||
| 2639 | + | ||
| 2640 | + } | ||
| 2641 | + //判断有没有默认的物流地址值 | ||
| 2642 | + if (def_exp_code != "" && def_exp_code != null && def_exp_code != undefined) { | ||
| 2643 | + var wu_arr = this.data.wu_arr; | ||
| 2644 | + if (wu_arr != null && wu_arr != "") { | ||
| 2645 | + for (var i = 0; i < wu_arr.length; i++) { | ||
| 2646 | + if (wu_arr[i].shipping_code == def_exp_code) { | ||
| 2647 | + var set_txt = "cartlist" | ||
| 2648 | + th.setData({wl_txt: i}); | ||
| 2649 | + } | ||
| 2650 | + } | ||
| 2651 | + } | ||
| 2652 | + } | ||
| 2653 | + //----计算此时购物车的价格---- | ||
| 2654 | + th.calculatePrice(); | ||
| 2655 | + }, | ||
| 2656 | + | ||
| 2657 | + //--------立即购买时,选择自提和物流---------- | ||
| 2658 | + setexptype: function (t) { | ||
| 2659 | + var th = this; | ||
| 2660 | + var ty = t.currentTarget.dataset.t, def_exp_code = getApp().globalData.userInfo.def_exp_code; | ||
| 2661 | + th.setData({bn_exp_type: ty}); | ||
| 2662 | + if (ty == 0) { | ||
| 2663 | + th.setData({is_all_zt: 0}); | ||
| 2664 | + } | ||
| 2665 | + | ||
| 2666 | + //当物流为空的时候。 | ||
| 2667 | + if (ty == 0 && th.data.wu_arr == null) { | ||
| 2668 | + th.data.isget_by_quan = {}; | ||
| 2669 | + return th.get_wuliu(th.calculatePrice2()); | ||
| 2670 | + } | ||
| 6 | 2671 | ||
| 7 | -Page({ | ||
| 8 | - data: { | ||
| 9 | - url: t.globalData.setting.url, | ||
| 10 | - resourceUrl: t.globalData.setting.resourceUrl, | ||
| 11 | - imgUrl: t.globalData.setting.imghost, | ||
| 12 | - goods: null, | ||
| 13 | - order: null, | ||
| 14 | - orderPrices: null, | ||
| 15 | - coupons: null, | ||
| 16 | - coupon: null, | ||
| 17 | - invoiceToggle: !0, | ||
| 18 | - payWithUserMoney: !0, | ||
| 19 | - payWithPoints: !0, | ||
| 20 | - maxWord: 0, | ||
| 21 | - enterAddressPage: !1, | ||
| 22 | - firstEnter: !0, | ||
| 23 | - //页面获取的参数 | ||
| 24 | - param:null, | ||
| 25 | - //提交订单的格式 | ||
| 26 | - formData: { | ||
| 27 | - order_amount:0,//支付金额 | ||
| 28 | - total_amount:0,//总价 | ||
| 29 | - all_price:0,//商品卖的总价 | ||
| 30 | - pay_points: 0,//使用积分 | ||
| 31 | - user_money: 0,//使用余额 | ||
| 32 | - couponCode: "",//使用优惠券(多单就用逗号隔开) | ||
| 33 | - shipping_price:0,//物流费用 | ||
| 34 | - }, | ||
| 35 | - /*-----------当是购物车结算的时候-------------*/ | ||
| 36 | - cartlist:null, | ||
| 37 | - old_cartlist:null, | ||
| 38 | - cartlist_y:null, //购物车原始列表 | ||
| 39 | - js_use_money: 0, //是否使用余额 | ||
| 40 | - is_all_zt:1, //是否全部都是自提 | ||
| 41 | - | ||
| 42 | - /*----------------立即购买---------------------*/ | ||
| 43 | - is_b_now:0, //0是购物车结算 1立即购买 | ||
| 44 | - bn_goods:null, //立即购买时候的调用商品 | ||
| 45 | - bn_use_money:0,//是否使用余额 | ||
| 46 | - bn_exp_type:1, //0是物流 1自提 | ||
| 47 | - bn_pick:0, //选择的门店 | ||
| 48 | - bn_pickname: "", //选择的门店名称 | ||
| 49 | - bn_t_exp_t:0, //判断商品和门店一起决定的物流自提的方式0 都可以 1自提 2物流 | ||
| 50 | - | ||
| 51 | - bn_plus_cut_price:0, //显示等级卡会优惠多少钱 | ||
| 52 | - /*------------------------*/ | ||
| 53 | - user_addr:null,//物流 | ||
| 54 | - userinfo:null, //获取会员 | ||
| 55 | - /*----------物流选择--------*/ | ||
| 56 | - wu_arr:null, | ||
| 57 | - index:0, | ||
| 58 | - w_sele_index:0, | ||
| 59 | - | ||
| 60 | - //判断页面是返回回来的还是 首次进入的 | ||
| 61 | - isclose:1, | ||
| 62 | - //申请提现的金额 | ||
| 63 | - txmon:0, | ||
| 64 | - yuer:0, | ||
| 65 | - //提交中,不重复提交 | ||
| 66 | - is_summit_ing:0, | ||
| 67 | - //--更优惠券抵用有关,立即购买的,如果是购物车,就要把相应的值,写入cartlist数组中-- | ||
| 68 | - ckeck_quan_price:0, | ||
| 69 | - check_quan_price_list:'', | ||
| 70 | - check_quan_ware_list:'', | ||
| 71 | - | ||
| 72 | - // 设计一个数组来存放已经选择了的券编号,coupon_no是券号,money是面值,coupon_price是真正优惠的价格,数组的下标是pickid | ||
| 73 | - //using_quan[11]={coupon_no:"1212121",money:"20",coupon_price:"45"} | ||
| 74 | - using_quan:{}, | ||
| 75 | - open_quan:0, | ||
| 76 | - //选择的券列表 | ||
| 77 | - selected_quan_list:null, | ||
| 78 | - //选择的券的门店 | ||
| 79 | - selected_quan_pick:null, | ||
| 80 | - is_close_quan:0, | ||
| 81 | - disabled:0, | ||
| 82 | - open_express:0,//控制选择物流名列表 的属性 | ||
| 83 | - | ||
| 84 | - is_express:0, //选中物流的属性 | ||
| 85 | - expres_name:"", //点击选定 | ||
| 86 | - isopen:0, //券的说明 | ||
| 87 | - is_coupon:null, //选择券的控制属性 | ||
| 88 | - is_shipping_code:"",//插入用户默认地址 | ||
| 89 | - wu_arr_txt:"", //要更新的物流的字段 | ||
| 90 | - | ||
| 91 | - sales_rules:1, //默认是显示线上库存 | ||
| 92 | - isget_by_quan:{}, //是否调用了接口获取包邮券 | ||
| 93 | - get_by_quan_list:null, //立即购买的 | ||
| 94 | - get_by_quan_list_cart:{}, //购物车的 | ||
| 95 | - by_quan_list_cart:null, //点击选择的包邮列表 | ||
| 96 | - | ||
| 97 | - //如果是全场包邮了,或者是全场不包邮了,就不要选包邮券 | ||
| 98 | - is_no_by:{}, | ||
| 99 | - is_by:{}, | ||
| 100 | - is_quan_by:{}, | ||
| 101 | - //--购买赠送的商品-- | ||
| 102 | - buy_now_gift_goods:null, | ||
| 103 | - //--订单优惠-- | ||
| 104 | - order_prom:{}, | ||
| 105 | - //-- 购物车优惠活动 -- | ||
| 106 | - prom_goods_map:{}, | ||
| 107 | - //-- order_prom_list -- | ||
| 108 | - order_prom_list_cart:null, | ||
| 109 | - | ||
| 110 | - ispt_goods:0, //是否平摊至单品,0要平摊 1不平摊 | ||
| 111 | - | ||
| 112 | - rank_switch:0, //是不是开同等级卡 | ||
| 113 | - show_card:null, //显示的等级卡 | ||
| 114 | - card_name:'', //显示的卡的名称 | ||
| 115 | - card_cut_price:null,//减价多少钱 | ||
| 116 | - | ||
| 117 | - show_submit:0, //提交按钮变正常显示 | ||
| 118 | - is_get_offline:1, | ||
| 119 | - | ||
| 120 | - tabs: ['门店自提','快递邮寄'], | ||
| 121 | - currentTabIndex: 1, | ||
| 122 | - }, | ||
| 123 | - onLoad: function(t) { | ||
| 124 | - wx.setNavigationBarTitle({ title: "填写订单",}) | ||
| 125 | - var th = this; this.setData({ is_b_now: t.is_bnow == undefined ? 0 : t.is_bnow,}); | ||
| 126 | - th.data.param=t; | ||
| 127 | - //清理一下,确保最新的系统配置 | ||
| 128 | - getApp().globalData.config2=null; | ||
| 129 | - //清空is_pick_up | ||
| 130 | - getApp().request.put("/api/weshop/useraddress/updatePickUp", { | ||
| 131 | - data: {user_id: getApp().globalData.user_id, is_pickup: 0}, | ||
| 132 | - success: function (s) { | ||
| 133 | - } | ||
| 134 | - }); | ||
| 135 | - | ||
| 136 | - | ||
| 137 | - }, | ||
| 138 | - onUnload: function () { this.setData({ isclose: 1 })}, | ||
| 139 | - onHide: function () { | ||
| 140 | - this.setData({ | ||
| 141 | - isget_by_quan:{}, | ||
| 142 | - is_no_by:{}, | ||
| 143 | - is_by:{} | ||
| 144 | - }) | ||
| 145 | - }, | ||
| 146 | - | ||
| 147 | - //----------子页返回父页触发---------- | ||
| 148 | - onShow: function() { | ||
| 149 | - var th=this; | ||
| 150 | - th.setData({show_submit:0}); //让提交先掩藏 | ||
| 151 | - th.data.g_cart_q_time=null; | ||
| 152 | - | ||
| 153 | - if (th.data.isclose==0){ | ||
| 154 | - wx.navigateTo({ | ||
| 155 | - url: "/pages/index/index/index" | ||
| 156 | - }) | ||
| 157 | - | ||
| 158 | - }else{ | ||
| 159 | - this.getuser_addr(function(ie){ | ||
| 160 | - | ||
| 161 | - console.log("getuser_addr") | ||
| 162 | - console.log(ie) | ||
| 163 | - | ||
| 164 | - //地址切换要把包邮券清空 | ||
| 165 | - if( !th.data.user_addr || !ie || th.data.user_addr.address_id!=ie.address_id){ | ||
| 166 | - var using_quan=th.data.using_quan; | ||
| 167 | - for(var i in using_quan){ | ||
| 168 | - var item=using_quan[i]; | ||
| 169 | - if(item.isby==1){ | ||
| 170 | - var ob={},txt="using_quan["+i+"]";ob[txt]={}; | ||
| 171 | - th.setData(ob); | ||
| 172 | - } | ||
| 173 | - } | ||
| 174 | - th.data.isget_by_quan={}; | ||
| 175 | - } | ||
| 176 | - | ||
| 177 | - | ||
| 178 | - th.data.prom_goods_map={}; | ||
| 179 | - th.data.is_summit_ing=0; | ||
| 180 | - //更换地址回来要重新调用计算价钱的接口 | ||
| 181 | - if(!th.data.user_addr || th.data.user_addr.address_id!=ie.address_id){ | ||
| 182 | - th.setData({user_addr: ie }); | ||
| 183 | - if (th.data.is_b_now == 1) { | ||
| 184 | - if(th.data.bn_goods) { | ||
| 185 | - th.setData({add_back:1}); | ||
| 186 | - //th.calculatePrice2(); | ||
| 187 | - } | ||
| 188 | - }else{ | ||
| 189 | - if (th.data.cartlist){ | ||
| 190 | - th.setData({add_back:1}); | ||
| 191 | - //th.calculatePrice(); | ||
| 192 | - } | ||
| 193 | - } | ||
| 194 | - }else{ | ||
| 195 | - th.setData({user_addr: ie }); | ||
| 196 | - } | ||
| 197 | - var going=0; | ||
| 198 | - | ||
| 199 | - | ||
| 200 | - //使用计时器,避免空现象 | ||
| 201 | - /*--- | ||
| 202 | - var jishi= setInterval(function () { | ||
| 203 | - if (th.data.is_b_now == 1 && going==0) { | ||
| 204 | - if(th.data.bn_goods) { | ||
| 205 | - th.calculatePrice2();going=1;clearInterval(jishi); | ||
| 206 | - } | ||
| 207 | - }else if(going==0) { | ||
| 208 | - if (th.data.cartlist){ | ||
| 209 | - th.calculatePrice();going = 1; clearInterval(jishi); | ||
| 210 | - } | ||
| 211 | - } | ||
| 212 | - },500)--*/ | ||
| 213 | - | ||
| 214 | - }); | ||
| 215 | - var is_card_back=getApp().globalData.is_card_back; | ||
| 216 | - //--更新默认地址--,看一下是不是跳到地址页面,同时也不是购买等级卡返回的,这里很重要,否则会重新更新收货物流公司 | ||
| 217 | - if(!getApp().globalData.is_cart_old && !is_card_back && !getApp().globalData.plus_buy_back){ | ||
| 218 | - this.update_code(); | ||
| 219 | - }else{ | ||
| 220 | - getApp().globalData.is_cart_old=0; | ||
| 221 | - getApp().globalData.plus_buy_back=0; | ||
| 222 | - } | ||
| 223 | - } | ||
| 224 | - | ||
| 225 | - //先获取是否有关闭使用优惠券 | ||
| 226 | - getApp().getConfig2(function (ee) { | ||
| 227 | - var json_d = JSON.parse(ee.switch_list); | ||
| 228 | - th.data.json_d=json_d; | ||
| 229 | - th.data.ispt_goods=json_d.ispt_goods; //是不是平摊到单品的控制参数赋值 | ||
| 230 | - var is_default_logistics=json_d.is_default_logistics; | ||
| 231 | - | ||
| 232 | - 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}); | ||
| 233 | - | ||
| 234 | - var rank_switch=json_d.rank_switch; | ||
| 235 | - var max_price=-1; | ||
| 236 | - var show_card=null; | ||
| 237 | - var name=""; | ||
| 238 | - //如果有开等级卡的时候, | ||
| 239 | - //因为都是调接口,要返回在计算 | ||
| 240 | - if(rank_switch==2){ | ||
| 241 | - //-- 获取所有的等级卡, -- | ||
| 242 | - getApp().request.promiseGet("/api/weshop/plus/vip/mem/bership/list?storeId=" + os.stoid, | ||
| 243 | - {}).then(res => { | ||
| 244 | - if(res.data.code==0){ | ||
| 245 | - var plusCard = res.data.data; | ||
| 246 | - //-- 循环判断,拿到最贵的那张卡 -- | ||
| 247 | - for(var ih in plusCard){ | ||
| 248 | - if(plusCard[ih].IsStopBuy == true){ continue; } | ||
| 249 | - if(max_price<0){ | ||
| 250 | - max_price=plusCard[ih].CardFee; | ||
| 251 | - name='card'+plusCard[ih]['CorrPrice']; | ||
| 252 | - show_card=plusCard[ih]; | ||
| 253 | - }else{ | ||
| 254 | - if(max_price<plusCard[ih].CardFee){ | ||
| 255 | - max_price=plusCard[ih].CardFee; | ||
| 256 | - name='card'+plusCard[ih]['CorrPrice']; | ||
| 257 | - show_card=plusCard[ih]; | ||
| 258 | - } | ||
| 259 | - } | ||
| 260 | - } | ||
| 261 | - | ||
| 262 | - if(show_card){ | ||
| 263 | - name=name.toLowerCase(); | ||
| 264 | - th.setData({card_name:name,show_card:show_card}) | ||
| 265 | - } | ||
| 266 | - } | ||
| 267 | - //-----先获取物流,再获取用户信息,再展示页面----- | ||
| 268 | - th.get_wuliu(th.get_info(th.show_page)); | ||
| 269 | - }) | ||
| 270 | - }else{ | ||
| 271 | - //-----先获取物流,再获取用户信息,再展示页面----- | ||
| 272 | - th.get_wuliu(th.get_info(th.show_page)); | ||
| 273 | - } | ||
| 274 | - | ||
| 275 | - },1); | ||
| 276 | - | ||
| 277 | - //值在这里换 | ||
| 278 | - getApp().globalData.plus_buy_back=0; | ||
| 279 | - }, | ||
| 280 | - | ||
| 281 | - //-------------------获取物流--------------- | ||
| 282 | - get_wuliu(func) { | ||
| 283 | - var th = this; | ||
| 284 | - to.getwuliu(function (e) { | ||
| 285 | - //系统是是否开启了默认的物流 | ||
| 286 | - if(th.data.is_default_logistics){ | ||
| 287 | - //如果第一个不是开启默认,说明要让用户自己选 | ||
| 288 | - if(!e[0].is_default){ | ||
| 289 | - th.setData({is_default_logistics:0}); | ||
| 290 | - } | ||
| 291 | - } | ||
| 292 | - th.setData({ wu_arr: e }) | ||
| 293 | - typeof func == "function" && func(); | ||
| 294 | - }) | ||
| 295 | - }, | ||
| 296 | - //------获取会员信息-----先获取用户信息,在进行下一步--- | ||
| 297 | - get_info:function(func){ | ||
| 298 | - var user_id = t.globalData.user_id; | ||
| 299 | - to.auth.get_u(func); | ||
| 300 | - }, | ||
| 301 | - | ||
| 302 | - //------获取会员收货地址----- | ||
| 303 | - getuser_addr:function(func){ | ||
| 304 | - var th=this; | ||
| 305 | - a.get("/api/weshop/useraddress/page", { | ||
| 306 | - data: { user_id: to.globalData.user_id, store_id: oo.stoid, pageSize: 600,t:Math.random()}, | ||
| 307 | - success: function (su) { | ||
| 308 | - /*--- | ||
| 309 | - var user_addr=[ | ||
| 310 | - { 'address_id': 882, 'user_id': 2661, 'consignee': '测试测试测', 'province': 3102, 'city': 3431, 'district': 3466, | ||
| 311 | - 'address': 'ed', 'more_address': '山西-长治市-襄垣县-虎(音si)亭镇', 'mobile': 13012345678,'is_default':1}, | ||
| 312 | - ];---*/ | ||
| 313 | - var item = null; | ||
| 314 | - if(su.data.code==0 && su.data.data && su.data.data.pageData){ | ||
| 315 | - var user_addr = su.data.data.pageData; | ||
| 316 | - var def_item=null; | ||
| 317 | - for (var i = 0; i < user_addr.length; i++) { | ||
| 318 | - if (user_addr[i]['is_default'] == 1) { def_item = user_addr[i];} | ||
| 319 | - if (user_addr[i]['is_pickup'] == 1) { item = user_addr[i]; } | ||
| 320 | - } | ||
| 321 | - | ||
| 322 | - if (item == null) item = def_item; | ||
| 323 | - if (item == null) item = user_addr[0]; | ||
| 324 | - } | ||
| 325 | - | ||
| 326 | - if(item==undefined) item=null; | ||
| 327 | - if(!item) th.setData({user_addr:null}); //地址为空的时候,要清空,因为返回的时候,有缓存 | ||
| 328 | - | ||
| 329 | - func(item); | ||
| 330 | - } | ||
| 331 | - }); | ||
| 332 | - }, | ||
| 333 | - | ||
| 334 | - //----------------展示页面,是再获取用户信息之后-------------- | ||
| 335 | - show_page:function(){ | ||
| 336 | - var th=this,ta = this.data.param; | ||
| 337 | - //th.setData({ userinfo: getApp().globalData.userInfo,}); //这个余额被缓存了 | ||
| 338 | - | ||
| 339 | - //会员的信息,要获取最新 | ||
| 340 | - var user=getApp().globalData.userInfo; | ||
| 341 | - getApp().request.get("/api/weshop/users/get/" + oo.stoid + "/" + user.user_id, { | ||
| 342 | - data:{r:Math.random()}, | ||
| 343 | - success: function (e) { | ||
| 344 | - getApp().globalData.userInfo = e.data.data; | ||
| 345 | - th.setData({userinfo:e.data.data}); | ||
| 346 | - | ||
| 347 | - //选获取地址 | ||
| 348 | - th.getuser_addr(function(addr){ | ||
| 349 | - th.setData({user_addr: addr}); | ||
| 350 | - //--------------------------立即购买------------------ | ||
| 351 | - if(ta.is_bnow== 1){ | ||
| 352 | - //读取门店 | ||
| 353 | - to.get_allsto(function (e) { | ||
| 354 | - th.setData({ allsto: e }); | ||
| 355 | - //获取立即购买的商品信息 | ||
| 356 | - th.get_buy_goods(ta.goods_id); | ||
| 357 | - }); | ||
| 358 | - }else { | ||
| 359 | - //------------------------购物车结算---------------------- | ||
| 360 | - //读取门店 | ||
| 361 | - to.get_allsto(function (e) { | ||
| 362 | - th.setData({ allsto: e }); | ||
| 363 | - //-------获取购物车已经选择的商品-------- | ||
| 364 | - th.get_cart(); | ||
| 365 | - }) | ||
| 366 | - } | ||
| 367 | - }); | ||
| 368 | - | ||
| 369 | - //获取提现金额 | ||
| 370 | - getApp().request.get("/api/weshop/withdrawals/summoney", { | ||
| 371 | - data: { user_id: to.globalData.user_id, store_id: oo.stoid, status: 0 }, | ||
| 372 | - success: function (su) { | ||
| 373 | - if (su.data.code == 0) { | ||
| 374 | - var yuer = parseFloat(th.data.userinfo.user_money - | ||
| 375 | - (th.data.userinfo.frozen_money>0?th.data.userinfo.frozen_money:0) - su.data.data.summoney).toFixed(2); | ||
| 376 | - th.setData({ txmon: su.data.data.summoney, yuer: yuer }); | ||
| 377 | - } | ||
| 378 | - } | ||
| 379 | - }); | ||
| 380 | - | ||
| 381 | - | ||
| 382 | - }, | ||
| 383 | - }); | ||
| 384 | - | ||
| 385 | - }, | ||
| 386 | - | ||
| 387 | - | ||
| 388 | - //-----真的获取购物车,入口-------- | ||
| 389 | - get_cart: function () { | ||
| 390 | - var th = this,app=getApp(); | ||
| 391 | - a.get("/api/weshop/cart/list", { | ||
| 392 | - data: { | ||
| 393 | - user_id: to.globalData.user_id, selected:1,state:0, | ||
| 394 | - store_id: oo.stoid, pageSize: 600 }, | ||
| 395 | - success:async function (su) { | ||
| 396 | - //按门店分类的数组 | ||
| 397 | - var arr = new Array(); | ||
| 398 | - var carr = su.data.data.pageData; | ||
| 399 | - th.data.cartlist_y = carr; //存储原始购物车列表 | ||
| 400 | - | ||
| 401 | - //---是不是购买等级卡成功的返回---等级卡显示的判断--- | ||
| 402 | - var is_card_back=getApp().globalData.is_card_back; | ||
| 403 | - | ||
| 404 | - for (var i = 0; i < carr.length; i++) { | ||
| 405 | - var item1 = carr[i]; | ||
| 406 | - //要把优惠活动加入,prom_goods_map中,赠品不要运算 | ||
| 407 | - if(item1.prom_type==3 && item1.is_gift!=1){ | ||
| 408 | - await th.add_prom_goods_map(item1); | ||
| 409 | - } | ||
| 410 | - | ||
| 411 | - } | ||
| 412 | - | ||
| 413 | - //在分组的时候,就不要再调用接口,await | ||
| 414 | - for (var i = 0; i < carr.length; i++) { | ||
| 415 | - var item = carr[i]; | ||
| 416 | - | ||
| 417 | - //-- 如果是等级会员注册返回 -- | ||
| 418 | - if(is_card_back){ | ||
| 419 | - th.data.card_name=th.data.userinfo.card_field; | ||
| 420 | - //如果是秒杀的返回,就要把活动弄回0 | ||
| 421 | - if(item['prom_type']==1){ | ||
| 422 | - item['prom_type']=0; | ||
| 423 | - item['prom_id']=0; | ||
| 424 | - } | ||
| 425 | - // 拼团,搭配购不计算,赠品也不计算 | ||
| 426 | - if( item['prom_type']!=5 && item['prom_type']!=6 && !item.is_gift && !item['is_collocation'] && item.goods_price>item[th.data.card_name] ){ | ||
| 427 | - item.goods_price=item[th.data.card_name]; | ||
| 428 | - carr[i].goods_price=item[th.data.card_name]; | ||
| 429 | - | ||
| 430 | - } | ||
| 431 | - }else{ | ||
| 432 | - // 拼团,搭配购不计算,赠品也不计算,同时会员还未购买等级会员 | ||
| 433 | - if(item[th.data.card_name]>0 && item['prom_type']!=5 && item['prom_type']!=6 && !th.data.userinfo.card_field | ||
| 434 | - && !item.is_gift && !item['is_collocation'] && item.goods_price>item[th.data.card_name] ){ | ||
| 435 | - item.cut_price1= item.goods_price-item[th.data.card_name]; | ||
| 436 | - carr[i].cut_price1=(item.goods_price-item[th.data.card_name])*item.goods_num; | ||
| 437 | - } | ||
| 438 | - | ||
| 439 | - } | ||
| 440 | - | ||
| 441 | - item.original_img = oo.imghost + item.original_img; | ||
| 442 | - /*----接口要弄出来的,先顶着-----*/ | ||
| 443 | - var pcid = item.pick_id; | ||
| 444 | - var find = 0; | ||
| 445 | - //----如果有就加进去,没有就新增一个---- | ||
| 446 | - //-----------循环查找门店------------- | ||
| 447 | - if (arr.length > 0) { | ||
| 448 | - for (var j = 0; j < arr.length; j++) { | ||
| 449 | - if (arr[j].pickup_id == pcid) { | ||
| 450 | - arr[j].goods.push(item); | ||
| 451 | - //if(item.is_gift!=1){ | ||
| 452 | - //确定配送方式 | ||
| 453 | - if(arr[j].distr_t==0){ | ||
| 454 | - arr[j].distr_t=item.distr_type; | ||
| 455 | - } | ||
| 456 | - var e_t=0 | ||
| 457 | - switch (arr[j].distr_t) { | ||
| 458 | - case 0: | ||
| 459 | - e_t = 1; | ||
| 460 | - if(th.data.json_d.pickupway && th.data.json_d.pickupway==1) e_t=0; | ||
| 461 | - break; | ||
| 462 | - case 1: e_t = 1; break; | ||
| 463 | - case 2: e_t = 0; break; | ||
| 464 | - } | ||
| 465 | - arr[j].exp_type=e_t; | ||
| 466 | - if (e_t == 0) th.setData({ is_all_zt:0}); | ||
| 467 | - //} | ||
| 468 | - | ||
| 469 | - //-- 把等级卡会优惠多少钱装进去 -- | ||
| 470 | - if(item.cut_price) arr[j].card_cut_price+=item.cut_price; | ||
| 471 | - find = 1;break; | ||
| 472 | - } | ||
| 473 | - } | ||
| 474 | - } | ||
| 475 | - //------如果没有找到----- | ||
| 476 | - if (find == 0) { | ||
| 477 | - var pikname = '',sto=null; | ||
| 478 | - //----找到门店名称----- | ||
| 479 | - for (var k = 0; k < th.data.allsto.length; k++) { | ||
| 480 | - if (pcid == th.data.allsto[k].pickup_id) { | ||
| 481 | - pikname = th.data.allsto[k].pickup_name; sto = th.data.allsto[k]; break; | ||
| 482 | - } | ||
| 483 | - } | ||
| 484 | - var e_t=0,dis_t=0;//物流方式,配送方式 | ||
| 485 | - if (item.distr_type == 0) { | ||
| 486 | - dis_t = sto.distr_type; | 2672 | + //--自提就要把包邮券清理掉-- |
| 2673 | + if (ty == 1) { | ||
| 2674 | + th.data.isget_by_quan = {}; | ||
| 2675 | + if (th.data.using_quan[th.data.bn_pick] && th.data.using_quan[th.data.bn_pick].isby == 1) { | ||
| 2676 | + th.setData({using_quan: {}}); | ||
| 2677 | + } | ||
| 2678 | + } | ||
| 2679 | + | ||
| 2680 | + //判断有没有默认的物流地址值 | ||
| 2681 | + if (def_exp_code != "" && def_exp_code != null && def_exp_code != undefined) { | ||
| 2682 | + var wu_arr = this.data.wu_arr; | ||
| 2683 | + if (wu_arr != null && wu_arr != "") { | ||
| 2684 | + for (var i = 0; i < wu_arr.length; i++) { | ||
| 2685 | + if (wu_arr[i].shipping_code == def_exp_code) { | ||
| 2686 | + th.setData({index: i}); | ||
| 2687 | + } | ||
| 2688 | + } | ||
| 2689 | + } | ||
| 2690 | + } | ||
| 2691 | + th.calculatePrice2() | ||
| 2692 | + | ||
| 2693 | + }, | ||
| 2694 | + | ||
| 2695 | + //--------立即购买时,使用余额-------- | ||
| 2696 | + set_bn_useyuer: function () { | ||
| 2697 | + var th = this; | ||
| 2698 | + th.setData({bn_use_money: !th.data.bn_use_money}); | ||
| 2699 | + th.calculatePrice2(); | ||
| 2700 | + }, | ||
| 2701 | + set_js_useyuer: function () { | ||
| 2702 | + var th = this; | ||
| 2703 | + th.setData({js_use_money: !th.data.js_use_money}); | ||
| 2704 | + th.calculatePrice(); | ||
| 2705 | + }, | ||
| 2706 | + //-------------------计算物流--------------- | ||
| 2707 | + calculatewuliu: function (code, o_shipping_price, goods_weight, | ||
| 2708 | + goods_piece, user_addr, freight_free, o_price, rs) { | ||
| 2709 | + var price = 0, th = this; | ||
| 2710 | + price += parseFloat(o_shipping_price); | ||
| 2711 | + //如果是包邮 | ||
| 2712 | + if (freight_free > 0 && o_price >= freight_free) { | ||
| 2713 | + return 0; | ||
| 2714 | + } | ||
| 2715 | + if (user_addr == null) { | ||
| 2716 | + return 0; | ||
| 2717 | + } | ||
| 2718 | + //计算物流的config item; | ||
| 2719 | + var item = null; | ||
| 2720 | + //先根据 镇 县 区找计算的config | ||
| 2721 | + item = th.get_wuliu_config(user_addr.district, code, rs); | ||
| 2722 | + if (item == null) item = th.get_wuliu_config(user_addr.city, code, rs); | ||
| 2723 | + if (item == null) item = th.get_wuliu_config(user_addr.province, code, rs); | ||
| 2724 | + if (item == null) item = th.get_wuliu_default(code, rs); | ||
| 2725 | + if (item == null) return o_shipping_price; | ||
| 2726 | + var fw_price = 0, fp_price = 0; | ||
| 2727 | + item = item.config; | ||
| 2728 | + if (item == null) return o_shipping_price; | ||
| 2729 | + //------按重量---------- | ||
| 2730 | + if (goods_weight >= 0 && item['money']) { | ||
| 2731 | + fw_price = parseFloat(item['money']); | ||
| 2732 | + if (goods_weight > item['first_weight']) { | ||
| 2733 | + var fw = goods_weight - item['first_weight']; | ||
| 2734 | + var n = Math.ceil(fw / item['second_weight']) | ||
| 2735 | + fw_price = fw_price + n * parseFloat(item['add_money']); | ||
| 2736 | + } | ||
| 2737 | + } | ||
| 2738 | + //------按件数---------- | ||
| 2739 | + if (goods_piece > 0 && item['piecemoney']) { | ||
| 2740 | + fp_price = parseFloat(item['piecemoney']); | ||
| 2741 | + if (goods_piece > item['first_piece']) { | ||
| 2742 | + var fp = goods_piece - item['first_piece']; | ||
| 2743 | + var m = Math.ceil(fp / item['second_piece']) | ||
| 2744 | + fp_price = fp_price + m * parseFloat(item['add_piecemoney']); | ||
| 2745 | + } | ||
| 2746 | + } | ||
| 2747 | + var rspice = parseFloat(price + fw_price + fp_price); | ||
| 2748 | + return rspice; | ||
| 2749 | + }, | ||
| 2750 | + | ||
| 2751 | + //------------循环获取config----------- | ||
| 2752 | + get_wuliu_config: function (region_id, code, rs) { | ||
| 2753 | + var item = null, rslist = rs.pageData; | ||
| 2754 | + for (var i = 0; i < rslist.length; i++) { | ||
| 2755 | + if (rslist[i].code == code && rslist[i].region_id == region_id) { | ||
| 2756 | + item = rslist[i]; | ||
| 2757 | + } | ||
| 2758 | + } | ||
| 2759 | + return item; | ||
| 2760 | + }, | ||
| 2761 | + //-------循环获取config,code default------- | ||
| 2762 | + get_wuliu_default: function (code, rs) { | ||
| 2763 | + var item = null, rslist = rs.pageData; | ||
| 2764 | + for (var i = 0; i < rslist.length; i++) { | ||
| 2765 | + if (rslist[i].shipping_code == code && rslist[i].is_default == 1) { | ||
| 2766 | + item = rslist[i]; | ||
| 2767 | + } | ||
| 2768 | + } | ||
| 2769 | + return item; | ||
| 2770 | + }, | ||
| 2771 | + | ||
| 2772 | + //----------立即购买,选择物流------------- | ||
| 2773 | + bindPickerChange: function (e) { | ||
| 2774 | + var ind = e.detail.value | ||
| 2775 | + this.setData({index: ind}); | ||
| 2776 | + this.calculatePrice2(); | ||
| 2777 | + }, | ||
| 2778 | + //----------购物车结算,选择物流------------- | ||
| 2779 | + bindPickerChange_w: function (e) { | ||
| 2780 | + var ind = e.detail.value, txt = e.currentTarget.dataset.txt; | ||
| 2781 | + this.setData({[txt]: ind}); | ||
| 2782 | + this.calculatePrice(); | ||
| 2783 | + }, | ||
| 2784 | + | ||
| 2785 | + /*----券的所有操作----*/ | ||
| 2786 | + open_coupon_list: function (e) { | ||
| 2787 | + var th = this; | ||
| 2788 | + var pickid = e.currentTarget.dataset.pickid; | ||
| 2789 | + var bn = e.currentTarget.dataset.bn; | ||
| 2790 | + var cindx = e.currentTarget.dataset.cind; | ||
| 2791 | + var get_by_quan_list_cart = th.data.get_by_quan_list_cart[pickid]; | ||
| 2792 | + | ||
| 2793 | + | ||
| 2794 | + if (bn == 1) { | ||
| 2795 | + th.setData({open_quan: 1, selected_quan_pick: pickid, disabled: 1}); | ||
| 2796 | + } else { | ||
| 2797 | + //---多单打开券的时候,就要判断券在其他门店是否有使用--- | ||
| 2798 | + var quanlist = th.data.cartlist[cindx].quan_list; | ||
| 2799 | + var exp_type = th.data.cartlist[cindx].exp_type; | ||
| 2800 | + | ||
| 2801 | + | ||
| 2802 | + //对于在其他门店已经选择了的券 要判断是否显示到界面 | ||
| 2803 | + var t_user = th.data.using_quan[pickid]; | ||
| 2804 | + | ||
| 2805 | + for (var i in quanlist) { | ||
| 2806 | + quanlist[i].is_using = th.check_in_sele(quanlist[i].CashRepNo, pickid); | ||
| 2807 | + if (t_user && quanlist[i].CashRepNo == t_user.coupon_no) | ||
| 2808 | + quanlist[i].show_red = 1; | ||
| 2809 | + else | ||
| 2810 | + quanlist[i].show_red = 0; | ||
| 2811 | + } | ||
| 2812 | + | ||
| 2813 | + if (get_by_quan_list_cart) { | ||
| 2814 | + for (var i in get_by_quan_list_cart) { | ||
| 2815 | + get_by_quan_list_cart[i].is_using = th.check_in_sele(get_by_quan_list_cart[i].no, pickid); | ||
| 2816 | + if (t_user && get_by_quan_list_cart[i].no == t_user.coupon_no) | ||
| 2817 | + get_by_quan_list_cart[i].show_red = 1; | ||
| 2818 | + else | ||
| 2819 | + get_by_quan_list_cart[i].show_red = 0; | ||
| 2820 | + } | ||
| 2821 | + th.setData({by_quan_list_cart: get_by_quan_list_cart}); | ||
| 487 | } else { | 2822 | } else { |
| 488 | - dis_t = item.distr_type ; | ||
| 489 | - } | ||
| 490 | - switch (dis_t) { | ||
| 491 | - case 0: | ||
| 492 | - e_t = 1; | ||
| 493 | - //-- 系统后台有设置要默认的 -- | ||
| 494 | - if(th.data.json_d.pickupway && th.data.json_d.pickupway==1) e_t=0; | ||
| 495 | - break; | ||
| 496 | - case 1: e_t = 1; break; | ||
| 497 | - case 2: e_t = 0; break; | ||
| 498 | - } | ||
| 499 | - //如果是物流的话,全部自提的控制要弄成0 | ||
| 500 | - if (e_t == 0) th.setData({ is_all_zt:0}); | ||
| 501 | - | ||
| 502 | - var narr = new Array(); narr.push(item); | ||
| 503 | - | ||
| 504 | - //-----------拼装购物车结算的数组,如果有默认物流时要用默认物流编号,计算默认的物流,不管是不是自提都算一下----------------- | ||
| 505 | - var m_wind=0,def_exp_code=getApp().globalData.userInfo.def_exp_code; | ||
| 506 | - if(def_exp_code){ | ||
| 507 | - for(var k=0;k<th.data.wu_arr.length;k++){ | ||
| 508 | - var item=th.data.wu_arr[k]; if(def_exp_code==item.code){ m_wind=k; } | ||
| 509 | - } | 2823 | + th.setData({by_quan_list_cart: null}); |
| 510 | } | 2824 | } |
| 511 | 2825 | ||
| 512 | - var ie = { | ||
| 513 | - pickup_id: pcid, pname: pikname, goods: narr, wind: m_wind, distr_t: dis_t,card_cut_price:0,exp_type:e_t, | ||
| 514 | - goods_price: 0, shipping_price: 0, user_money: 0, total_amount: 0, order_amount: 0, user_note:0}; | ||
| 515 | - | ||
| 516 | - //-- 把等级卡会优惠多少钱装进去 -- | ||
| 517 | - if(item.cut_price1) ie.card_cut_price+=item.cut_price1; | ||
| 518 | - arr.push(ie); | ||
| 519 | - | ||
| 520 | - } | ||
| 521 | - } | ||
| 522 | - //-- 如果是回退回来的情况 -- | ||
| 523 | - if(th.data.cartlist && th.data.cartlist.length>0) { | ||
| 524 | - for(var kj in th.data.cartlist){ | ||
| 525 | - for(var ih in arr){ | ||
| 526 | - var ie=arr[ih]; | ||
| 527 | - if(ie.pickup_id==th.data.cartlist[kj].pickup_id){ | ||
| 528 | - ie.exp_type=parseInt(th.data.cartlist[kj].exp_type); | ||
| 529 | - ie.wind=parseInt(th.data.cartlist[kj].wind); | ||
| 530 | - break; | ||
| 531 | - } | ||
| 532 | - } | ||
| 533 | - } | ||
| 534 | - } | ||
| 535 | - | ||
| 536 | - //-- 循环计算一下线下取价 -- | ||
| 537 | - for (var k = 0; k < arr.length; k++) { | ||
| 538 | - var c_item=arr[k]; | ||
| 539 | - var item = arr[k].goods; | ||
| 540 | - var offline_price=0; | ||
| 541 | - var offline_num=0; | ||
| 542 | - for (var c = 0; c < item.length; c++) { | ||
| 543 | - //-- 如果这个商品是线下取价的时候 -- | ||
| 544 | - if(item[c].offline_price>0){ | ||
| 545 | - offline_price+= (item[c].goods_price-item[c].offline_price)*item[c].goods_num; | ||
| 546 | - offline_num+=item[c].goods_num; | ||
| 547 | - } | ||
| 548 | - } | ||
| 549 | - if(offline_price>0){ | ||
| 550 | - c_item.offline_price=offline_price; | ||
| 551 | - c_item.offline_num=offline_num; | ||
| 552 | - c_item.is_offline=1; | ||
| 553 | - } | ||
| 554 | - } | ||
| 555 | - | ||
| 556 | - //深拷贝 | ||
| 557 | - th.data.old_cartlist= JSON.parse(JSON.stringify(arr)); | ||
| 558 | - th.setData({ | ||
| 559 | - cartlist: arr, | ||
| 560 | - }); | ||
| 561 | - //--- 获取一下看有没有优惠券 ---- | ||
| 562 | - setTimeout(function () { | ||
| 563 | - var frozenQuan=null; | ||
| 564 | - var url0="/api/weshop/users/frozenQuan/listFrozenQuan/"+app.globalData.user_id; | ||
| 565 | - app.request.promiseGet(url0,{1:1}).then(res=>{ | ||
| 566 | - if(res.data.code==0){ frozenQuan=res.data.data; th.data.frozenQuan=frozenQuan; } | ||
| 567 | - th.calculatePrice(); | ||
| 568 | - th.get_cart_quan(); | ||
| 569 | - }) | 2826 | + console.log("2222222券的列表", quanlist); |
| 2827 | + th.setData({ | ||
| 2828 | + sele_cart_ind: cindx, | ||
| 2829 | + sele_exp_type: exp_type, | ||
| 2830 | + open_quan: 1, | ||
| 2831 | + selected_quan_pick: pickid, | ||
| 2832 | + selected_quan_list: quanlist, | ||
| 2833 | + disabled: 1 | ||
| 2834 | + }); | ||
| 2835 | + } | ||
| 2836 | + }, | ||
| 2837 | + close_coupon: function (e) { | ||
| 2838 | + var th = this; | ||
| 2839 | + th.setData({open_quan: 0, disabled: 0}); | ||
| 2840 | + }, | ||
| 570 | 2841 | ||
| 571 | - },500) | ||
| 572 | - | ||
| 573 | - } | ||
| 574 | - }); | ||
| 575 | - }, | ||
| 576 | - | ||
| 577 | - //-----获取立即购买的商品信息,入口---- | ||
| 578 | - get_buy_goods: function (e){ | ||
| 579 | - var th=this; | ||
| 580 | - var gg = to.get_b_now(); | ||
| 581 | - //--------如果goods_id一样,就是要立即购买----- | ||
| 582 | - if(e==gg.goods_id){ | ||
| 583 | - a.get("/api/weshop/goods/get/" + oo.stoid+"/"+e, { | ||
| 584 | - success:async function (t) { | ||
| 585 | - var gd = t.data.data; | ||
| 586 | - if(!gd) return false; | ||
| 587 | - | ||
| 588 | - t.data.data.original_img = oo.imghost + t.data.data.original_img; | ||
| 589 | - t.data.data['buynum'] = gg.goods_num; | ||
| 590 | - var distr_t=0,et=0 | ||
| 591 | - if (t.data.data.distr_type==0){ | ||
| 592 | - distr_t = gg.pick_dis; | ||
| 593 | - }else{ | ||
| 594 | - distr_t = t.data.data.distr_type; | ||
| 595 | - } | ||
| 596 | - | ||
| 597 | - switch (distr_t){ | ||
| 598 | - case 0: | ||
| 599 | - et=1; | ||
| 600 | - //-- 系统后台有设置要默认的 -- | ||
| 601 | - if(th.data.json_d.pickupway && th.data.json_d.pickupway==1) et=0; | ||
| 602 | - break; | ||
| 603 | - case 1: et = 1; break; | ||
| 604 | - case 2: et = 0; break; | ||
| 605 | - } | ||
| 606 | - | ||
| 607 | - | ||
| 608 | - var m_wind=0,def_exp_code=getApp().globalData.userInfo.def_exp_code; | ||
| 609 | - if(et==0 && def_exp_code){ | ||
| 610 | - for(var k=0;k<th.data.wu_arr.length;k++){ | ||
| 611 | - var item=th.data.wu_arr[k]; if(def_exp_code==item.code){ m_wind=k; } | ||
| 612 | - } | ||
| 613 | - } | ||
| 614 | - | ||
| 615 | - | ||
| 616 | - if(th.data.bn_goods){ | ||
| 617 | - et=th.data.bn_exp_type; | ||
| 618 | - m_wind=th.data.index; | ||
| 619 | - } | ||
| 620 | - | ||
| 621 | - //---是不是购买等级卡成功的返回---等级卡显示的判断--- | ||
| 622 | - var is_card_back=getApp().globalData.is_card_back; | ||
| 623 | - if(is_card_back){ | ||
| 624 | - th.data.card_name=th.data.userinfo.card_field; | ||
| 625 | - gg.goods_price=gd[th.data.card_name]; | ||
| 626 | - getApp().globalData.is_card_back=0; | ||
| 627 | - th.setData({card_cut_price:0}); | ||
| 628 | - //如果是秒杀的返回 | ||
| 629 | - if(gd.prom_type==1) gd.prom_type=0; | ||
| 630 | - }else{ | ||
| 631 | - //--- 商家等级卡开通的情况下, 会员不是等级会员的情况, 商品有设置等级卡价格,同时等级卡价格小于商品的价格 | ||
| 632 | - //-- 搭配购的商品也可以单独购买,所以此时搭配购的商品要进行计算优惠 -- | ||
| 633 | - 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){ | ||
| 634 | - var cut_p= (gg.goods_price-gd[th.data.card_name])*gg.goods_num; | ||
| 635 | - th.setData({card_cut_price:cut_p}); | ||
| 636 | - } | ||
| 637 | - } | ||
| 638 | - | ||
| 639 | - | ||
| 640 | - | ||
| 641 | - switch (gd.prom_type){ | ||
| 642 | - case 0: | ||
| 643 | - case 2: | ||
| 644 | - case 3: | ||
| 645 | - case 4: | ||
| 646 | - case 5: | ||
| 647 | - case 6: | ||
| 648 | - //--此时开始计算商品的使用券相关,如果有等级价还要计算和等级价相关的, | ||
| 649 | - // 如果有优惠促销,还要把促销的部分计算在内,因为促销还有不能使用优惠券-- | ||
| 650 | - t.data.data.shop_price=gg.goods_price; | ||
| 651 | - t.data.data.goods_price=gg.goods_price; | ||
| 652 | - t.data.data.goods_num=gg.goods_num; | ||
| 653 | - th.data.ckeck_quan_price=t.data.data.shop_price*gg.goods_num; | ||
| 654 | - th.data.check_quan_price_list=t.data.data.shop_price*gg.goods_num+""; | ||
| 655 | - th.data.check_quan_ware_list=t.data.data.erpwareid+""; | ||
| 656 | - | ||
| 657 | - //-- 如果有线下取价的时候 -- | ||
| 658 | - if(gg.offline_price){ | ||
| 659 | - t.data.data.offline_price=gg.offline_price; | ||
| 660 | - t.data.data.pricing_type=gg.pricing_type; | ||
| 661 | - t.data.data.is_offline=1; | ||
| 662 | - | ||
| 663 | - th.data.ckeck_quan_price=t.data.data.offline_price*gg.goods_num; | ||
| 664 | - th.data.check_quan_price_list=t.data.data.offline_price*gg.goods_num+""; | ||
| 665 | - th.data.check_quan_ware_list=t.data.data.erpwareid+""; | ||
| 666 | - } | ||
| 667 | - | ||
| 668 | - t.data.data.prom_id = 0; | ||
| 669 | - t.data.data.prom_type = 0; | ||
| 670 | - | ||
| 671 | - //如果立即购买那边过来,就要读取接口,查看活动的优惠内容 | ||
| 672 | - if(gg.prom_type==3){ | ||
| 673 | - t.data.data.prom_id = gg.prom_id ; | ||
| 674 | - t.data.data.prom_type =3; | ||
| 675 | - //如果是优惠活动,就要调用活动,计算价格 | ||
| 676 | - th.buy_now_prom_goods(gg.prom_id, t.data.data,function (data) { | ||
| 677 | - //判断一下购买商品的数量是不是超过 | ||
| 678 | - if(data.gift_goods_id){ | ||
| 679 | - var num=1; | ||
| 680 | - if(data.is_bz==1){ | ||
| 681 | - num=data.bs; | ||
| 682 | - if (num > data.gift_limit_num) num = 0; | ||
| 683 | - } | ||
| 684 | - //如果赠品数量超出礼品库存,就取消 | ||
| 685 | - if(num>data['gift_storecount']) num=0; | ||
| 686 | - if(num>0){ | ||
| 687 | - var ob={}; | ||
| 688 | - ob.is_gift=1; | ||
| 689 | - ob.prom_id=data.prom_id; | ||
| 690 | - ob.goods_id=data.gift_goods_id; | ||
| 691 | - ob.goods_name=data.gift_goods_name; | ||
| 692 | - ob.goods_color=data.gift_goods_color; | ||
| 693 | - ob.goods_spec=data.gift_goods_spec; | ||
| 694 | - ob.original_img=os.imghost+data.gift_original_img; | ||
| 695 | - ob.market_price=data.gift_market_price; | ||
| 696 | - ob.gift_id=data.gift_id; | ||
| 697 | - ob.shop_price=0; | ||
| 698 | - ob.buynum=num; | ||
| 699 | - ob.weight=data.gift_weight; //商品的重量 | ||
| 700 | - ob.exp_sum_type=data.gift_exp_sum_type; //商品的物流计算方式 | ||
| 701 | - ob.uniform_exp_sum=data.gift_uniform_exp_sum //统一运费的金额 | ||
| 702 | - | ||
| 703 | - th.setData({buy_now_gift_goods:ob}); | ||
| 704 | - } | ||
| 705 | - } | ||
| 706 | - | ||
| 707 | - th.setData({ | ||
| 708 | - bn_goods: data, bn_pickname: gg.pick_name,index:m_wind, | ||
| 709 | - bn_pick: gg.pick_id, bn_t_exp_t: distr_t,bn_exp_type: et | ||
| 710 | - }); | ||
| 711 | - | ||
| 712 | - //计算价格 | ||
| 713 | - th.calculatePrice2(); | ||
| 714 | - //获取优惠券 | ||
| 715 | - th.get_buy_now_quan(); | ||
| 716 | - | ||
| 717 | - }) | ||
| 718 | - }else{ | ||
| 719 | - //--看是不是搭配促销-- | ||
| 720 | - if(gg.prom_type==5){ | ||
| 721 | - t.data.data.prom_id = gg.prom_id ; | ||
| 722 | - t.data.data.prom_type =5; | ||
| 723 | - if(gg.room_id){ | ||
| 724 | - t.data.data.room_id=gg.room_id; | ||
| 725 | - } | ||
| 726 | - //--主商品要有导购id和导购类型-- | ||
| 727 | - if(gg.guide_id){ | ||
| 728 | - t.data.data.guide_id=gg.guide_id; | ||
| 729 | - t.data.data.guide_type=gg.guide_type; | ||
| 730 | - } | ||
| 731 | - th.setData({collocation_goods:gg.collocation_goods}); | ||
| 732 | - | ||
| 733 | - var cart_arr=new Array(); | ||
| 734 | - //var narr=gg.collocation_goods; | ||
| 735 | - //修改成深拷贝,确保返回是数据正确 | ||
| 736 | - var narr=JSON.parse(JSON.stringify(gg.collocation_goods)); | ||
| 737 | - | ||
| 738 | - narr.push(t.data.data); | ||
| 739 | - | ||
| 740 | - //-- 搭配促销的门店配送方式的修复 -- | ||
| 741 | - et=1;distr_t=0; | ||
| 742 | - for(var hi in narr){ | ||
| 743 | - var dis_t=narr[hi].distr_type; | ||
| 744 | - if(dis_t==2){ | ||
| 745 | - th.setData({ is_all_zt:0});et=0; | ||
| 746 | - } | ||
| 747 | - if(dis_t>0){ | ||
| 748 | - distr_t=dis_t; | ||
| 749 | - } | ||
| 750 | - } | ||
| 751 | - | ||
| 752 | - //自选的时候,系统配置了默认的配送方式是物流的时候 | ||
| 753 | - if(distr_t==0 && th.data.json_d.pickupway && th.data.json_d.pickupway==1 ){ | ||
| 754 | - et=0; | ||
| 755 | - } | ||
| 756 | - | ||
| 757 | - | ||
| 758 | - var ie = { | ||
| 759 | - 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, | ||
| 760 | - goods_price: 0, shipping_price: 0, user_money: 0, total_amount: 0, order_amount: 0, user_note:0}; | ||
| 761 | - cart_arr.push(ie); | ||
| 762 | - th.data.old_cartlist=cart_arr; | 2842 | + //---判断券时候在已经选择的列表中--- |
| 2843 | + check_in_sele: function (no, pick_id) { | ||
| 2844 | + var th = this; | ||
| 2845 | + if (th.data.using_quan.length <= 0) return false; | ||
| 2846 | + for (var i in th.data.using_quan) { | ||
| 2847 | + //--如果键值等于本身就要跳出-- | ||
| 2848 | + if (parseInt(i) == parseInt(pick_id)) continue; | ||
| 2849 | + var item = th.data.using_quan[i]; | ||
| 2850 | + if (item.coupon_no == no) { | ||
| 2851 | + return true; | ||
| 2852 | + } | ||
| 2853 | + } | ||
| 2854 | + return false; | ||
| 2855 | + }, | ||
| 2856 | + | ||
| 2857 | + /*--点击选择券--*/ | ||
| 2858 | + sele_quan_item: function (e) { | ||
| 2859 | + | ||
| 2860 | + var ind = e.currentTarget.dataset.ind; | ||
| 2861 | + var quan_item = this.data.selected_quan_list[ind]; | ||
| 2862 | + var pickid = this.data.selected_quan_pick; //现在选择的是哪一个门店 | ||
| 2863 | + //--如果券是单品使用的时候-- | ||
| 2864 | + if (quan_item && quan_item.UseObjectType && quan_item.UseObjectType == "20") { | ||
| 2865 | + //---只有多件购买的时候才要计算,//购物车购买和搭配勾的时候--- | ||
| 2866 | + var gg = getApp().get_b_now(); | ||
| 2867 | + if (this.data.is_b_now == 0 || gg.prom_type == 5) { | ||
| 2868 | + var arr = this.data.order_prom_list_cart; | ||
| 2869 | + var t_pk_item = null; | ||
| 2870 | + for (var ii in arr) { | ||
| 2871 | + var ep = arr[ii]; | ||
| 2872 | + if (pickid == ep.pickup_id) { | ||
| 2873 | + t_pk_item = ep; | ||
| 2874 | + break; | ||
| 2875 | + } | ||
| 2876 | + } | ||
| 2877 | + //--寻找券指定的商品-- | ||
| 2878 | + var gd = null; | ||
| 2879 | + if (t_pk_item) { | ||
| 2880 | + var goods = t_pk_item.goods; | ||
| 2881 | + for (var gid in goods) { | ||
| 2882 | + if (quan_item.UseObjectID == goods[gid].erpwareid) { | ||
| 2883 | + gd = goods[gid]; | ||
| 2884 | + } | ||
| 2885 | + } | ||
| 2886 | + } | ||
| 2887 | + if (!gd) { | ||
| 2888 | + getApp().my_warnning("未找到指定商品使用", 0, this, 600); | ||
| 2889 | + return false; | ||
| 2890 | + } | ||
| 2891 | + //计算价格,如果有平摊的实收要计算实收的金额 | ||
| 2892 | + var item_price = gd.goods_price * gd.goods_num; | ||
| 2893 | + //-- 如果有平摊下去,有实收价格的时候,就要用account_fir来计算价格 -- | ||
| 2894 | + if (gd.account_fir != null && gd.account_fir != undefined) { | ||
| 2895 | + item_price = gd.account_fir * gd.goods_num; | ||
| 763 | } | 2896 | } |
| 764 | - th.setData({ | ||
| 765 | - bn_goods: t.data.data, bn_pickname: gg.pick_name,index:m_wind, | ||
| 766 | - bn_pick: gg.pick_id, bn_t_exp_t: distr_t,bn_exp_type: et | ||
| 767 | - }); | ||
| 768 | - | ||
| 769 | - | ||
| 770 | - //--搭配促销也是按照购物车的方式来计算优惠券-- | ||
| 771 | - if(gg.prom_type==5){ | ||
| 772 | - var frozenQuan=null; | ||
| 773 | - var url0="/api/weshop/users/frozenQuan/listFrozenQuan/"+app.globalData.user_id; | ||
| 774 | - app.request.promiseGet(url0,{1:1}).then(res=> { | ||
| 775 | - if(res.data.code==0){ frozenQuan=res.data.data; th.data.frozenQuan=frozenQuan; } | ||
| 776 | - //计算价格 | ||
| 777 | - th.calculatePrice2(); | ||
| 778 | - th.get_cart_quan(); | ||
| 779 | - }); | ||
| 780 | - }else{ | ||
| 781 | - //计算价格 | ||
| 782 | - th.calculatePrice2(); | ||
| 783 | - //获取优惠券, | ||
| 784 | - th.get_buy_now_quan(); | ||
| 785 | - } | ||
| 786 | - } | ||
| 787 | - | ||
| 788 | - break; | ||
| 789 | - case 1: //---秒杀----- | ||
| 790 | - var quanlist=null; | ||
| 791 | - getApp().request.get("/api/weshop/activitylist/getSJGoodsPrice/"+gd.store_id | ||
| 792 | - + "/" + gd.goods_id + "/1/" + gd.prom_id,{ | ||
| 793 | - success: async function (tt) { | ||
| 794 | - if(tt.data.code==0){ | ||
| 795 | - t.data.data.shop_price=tt.data.data.prom_price; | ||
| 796 | - }else{ | ||
| 797 | - t.data.data.prom_id = 0; t.data.data.prom_type = 0; | ||
| 798 | - | ||
| 799 | - th.data.ckeck_quan_price=t.data.data.shop_price*gg.goods_num; | ||
| 800 | - th.data.check_quan_price_list=t.data.data.shop_price*gg.goods_num+""; | ||
| 801 | - th.data.check_quan_ware_list=t.data.data.erpwareid+""; | ||
| 802 | - } | ||
| 803 | - | ||
| 804 | - th.setData({ | ||
| 805 | - bn_goods: t.data.data, bn_pickname: gg.pick_name, bn_exp_type: et,index:m_wind, | ||
| 806 | - bn_pick: gg.pick_id, bn_t_exp_t: distr_t,bn_exp_type: et | ||
| 807 | - }); | ||
| 808 | - | ||
| 809 | - //计算价格 | ||
| 810 | - th.calculatePrice2(); | ||
| 811 | - //获取优惠券 | ||
| 812 | - th.get_buy_now_quan(); | ||
| 813 | - } | ||
| 814 | - }); | ||
| 815 | - | ||
| 816 | - break; | ||
| 817 | - } | ||
| 818 | - }, | ||
| 819 | - }); | ||
| 820 | - } | ||
| 821 | - }, | ||
| 822 | - | ||
| 823 | - //---------------检查是否有收货地址------------------- | ||
| 824 | - checkAddressList: function() { | ||
| 825 | - var t = this; | ||
| 826 | - return !(!this.data.order || null == this.data.order.userAddress) || (wx.showModal({ | ||
| 827 | - title: "请先填写或选择收货地址~", | ||
| 828 | - success: function(a) { | ||
| 829 | - a.confirm ? t.enterAddressPage() : wx.navigateBack(); | ||
| 830 | - }, | ||
| 831 | - fail: function() { | ||
| 832 | - wx.navigateBack(); | ||
| 833 | - } | ||
| 834 | - }), !1); | ||
| 835 | - }, | ||
| 836 | - showInvoice: function() { | ||
| 837 | - this.setData({ | ||
| 838 | - invoiceToggle: !this.data.invoiceToggle | ||
| 839 | - }); | ||
| 840 | - }, | ||
| 841 | - keyUpChangePay1: function(t) { | ||
| 842 | - this.setData({ | ||
| 843 | - payWithUserMoney: !(t.detail.value.length > 0) | ||
| 844 | - }); | ||
| 845 | - }, | ||
| 846 | - keyUpChangePay2: function(t) { | ||
| 847 | - this.setData({ | ||
| 848 | - payWithPoints: !(t.detail.value.length > 0) | ||
| 849 | - }); | ||
| 850 | - }, | ||
| 851 | - keyUpChangeNum: function(t) { | ||
| 852 | - this.setData({ | ||
| 853 | - maxWord: t.detail.value.length | ||
| 854 | - }); | ||
| 855 | - }, | ||
| 856 | - | ||
| 857 | - calc_per:async function(c_arr){ | ||
| 858 | - var th=this; | ||
| 859 | - //-- 循环处理 -- | ||
| 860 | - for(var i in c_arr){ | ||
| 861 | - var cart_item=c_arr[i]; //就是每一单的意思 | ||
| 862 | - var pickid=cart_item.pickup_id; | ||
| 863 | - var ord_goods=c_arr[i].goods; //就是每一单的从表的意思 | ||
| 864 | - var o_price=0,q_conditin=0; | ||
| 865 | - //--------循环计算总价----------- | ||
| 866 | - for(var j=0;j<ord_goods.length;j++){ | ||
| 867 | - o_price += ord_goods[j].goods_price * ord_goods[j].goods_num; | ||
| 868 | - } | ||
| 869 | - | ||
| 870 | - //---如果该门店的相关活动,就要算一下减价-- | ||
| 871 | - if(th.data.prom_goods_map[pickid]){ | ||
| 872 | - var ob=th.data.prom_goods_map[pickid]; | ||
| 873 | - for(var ii in ob){ | ||
| 874 | - var item_map=ob[ii]; | ||
| 875 | - if(item_map.bs==undefined || item_map.bs==null) { | ||
| 876 | - //等待,获取一下优惠活动的信息 | ||
| 877 | - await getApp().request.promiseGet("/api/weshop/goods/getDiscount", { | ||
| 878 | - data: { | ||
| 879 | - price: item_map.price, prom_id: item_map.prom_id, | ||
| 880 | - goods_num: item_map.goods_num, user_id: getApp().globalData.user_id, | ||
| 881 | - is_bz: item_map.is_bz | ||
| 882 | - } | ||
| 883 | - }).then(res => { | ||
| 884 | - if (res.data.code == 0 && res.data.data.condition) { | ||
| 885 | - var get_data = res.data.data; | ||
| 886 | - item_map.is_bz = get_data.is_bz; //是不是倍增 | ||
| 887 | - item_map.bs = get_data.bs; //是不是倍数 | ||
| 888 | - item_map.is_past = get_data.is_past; //是不是包邮 | ||
| 889 | - item_map.prom_price = get_data.price>=0?get_data.price:item_map.price; | ||
| 890 | - item_map.s_intValue = get_data.intValue; | ||
| 891 | - item_map.s_coupon_id = get_data.coupon_id; | ||
| 892 | - item_map.s_coupon_num = get_data.coupon_num; | ||
| 893 | - if(get_data.gift_id && get_data.goodsinfo) { | ||
| 894 | - item_map.gift_id = get_data.gift_id; | ||
| 895 | - item_map.gift_goods_id = get_data.goods_id; | ||
| 896 | - item_map.gift_goods_name = get_data.goods_name; | ||
| 897 | - item_map.gift_goods_color = get_data.goodsinfo.goods_color ? get_data.goodsinfo.goods_color : ''; | ||
| 898 | - item_map.gift_goods_spec = get_data.goodsinfo.goods_spec ? get_data.goodsinfo.goods_spec : ''; | ||
| 899 | - item_map.gift_original_img = get_data.goodsinfo.original_img; | ||
| 900 | - item_map.gift_limit_num = get_data.limit_num; | ||
| 901 | - item_map.gift_storecount = get_data.gift_storecount; | ||
| 902 | - item_map.gift_weight = get_data.goodsinfo.weight; | ||
| 903 | - item_map.gift_exp_sum_type = get_data.goodsinfo.exp_sum_type; | ||
| 904 | - item_map.uniform_exp_sum = get_data.goodsinfo.uniform_exp_sum; | ||
| 905 | - | ||
| 906 | - } | ||
| 907 | - item_map.s_libao = get_data.libao; | ||
| 908 | - item_map.s_lb_num = get_data.lb_num; | ||
| 909 | - } | ||
| 910 | - }) | ||
| 911 | - } | ||
| 912 | - | ||
| 913 | - //有活动,且优惠活动并没有限制使用优惠券,且有减价 | ||
| 914 | - //--看有没有减价-- | ||
| 915 | - //if(item_map.prom_price>=0 && item_map.price-item_map.prom_price){ | ||
| 916 | - if(item_map.price-item_map.prom_price && item_map.prom_price!==null){ | ||
| 917 | - if(cart_item.prom_pt_json){ | ||
| 918 | - cart_item.prom_pt_json.push({"prom_id":item_map.prom_id,"dis":(item_map.price-item_map.prom_price).toFixed(2),"ispt":0}) | ||
| 919 | - }else{ | ||
| 920 | - cart_item.prom_pt_json=[{"prom_id":item_map.prom_id,"dis":(item_map.price-item_map.prom_price).toFixed(2),"ispt":0}]; | ||
| 921 | - } | ||
| 922 | - | ||
| 923 | - //-- 如果系统要平摊到单品 -- | ||
| 924 | - //if(!th.data.ispt_goods){ | ||
| 925 | - var pt_data={ | ||
| 926 | - 'prom_id':item_map.prom_id, | ||
| 927 | - 'dis': parseFloat((item_map.price-item_map.prom_price).toFixed(2)), | ||
| 928 | - 'goods':item_map.goods | ||
| 929 | - } | ||
| 930 | - | ||
| 931 | - var pt_res=null; | ||
| 932 | - await getApp().request.promisePost("/api/weshop/order/getGoodsSplit",{is_json:1,data:pt_data}).then(res=>{ | ||
| 933 | - if(res.data.code==0){ pt_res=res.data.data; } | ||
| 934 | - }) | ||
| 935 | - if(pt_res){ | ||
| 936 | - for (var io in item_map.goods){ | ||
| 937 | - //平摊赋值 | ||
| 938 | - item_map.goods[io].account_fir=th.arr_get_goods(item_map.goods[io].goods_id,pt_res).fisrt_account; | ||
| 939 | - item_map.goods[io].account_yu_fir=th.arr_get_goods(item_map.goods[io].goods_id,pt_res).fisrt_account_yu; | ||
| 940 | - if(!th.data.ispt_goods){ | ||
| 941 | - item_map.goods[io].account=item_map.goods[io].account_fir; | ||
| 942 | - item_map.goods[io].account_yu=item_map.goods[io].account_yu_fir; | ||
| 943 | - } | ||
| 944 | - } | ||
| 945 | - } | ||
| 946 | - // } | ||
| 947 | - | ||
| 948 | - o_price-=(item_map.price-item_map.prom_price); | ||
| 949 | - //如果有限制使用优惠券,就要减掉参与的活动商品的钱 | ||
| 950 | - if(!item_map.is_xz_yh) q_conditin=o_price; | ||
| 951 | - } | ||
| 952 | - | ||
| 953 | - //--------循环计算商品是不是包邮,是不是使用优惠券,此时循环是商品从表----------- | ||
| 954 | - for(var j=0;j<ord_goods.length;j++){ | ||
| 955 | - if(ord_goods[j].is_gift) continue; | ||
| 956 | - if(ord_goods[j].prom_type==3 && ord_goods[j].prom_id==item_map.prom_id){ | ||
| 957 | - ord_goods[j].is_xz_yh= item_map.is_xz_yh; | ||
| 958 | - ord_goods[j].is_past= item_map.is_past; | ||
| 959 | - ord_goods[j].account_fir= th.item_map_get_goods(ord_goods[j].goods_id,item_map).account_fir; | ||
| 960 | - ord_goods[j].account_yu_fir= th.item_map_get_goods(ord_goods[j].goods_id,item_map).account_yu_fir; | ||
| 961 | - ord_goods[j].account= th.item_map_get_goods(ord_goods[j].goods_id,item_map).account; | ||
| 962 | - ord_goods[j].account_yu= th.item_map_get_goods(ord_goods[j].goods_id,item_map).account_yu; | ||
| 963 | - } | ||
| 964 | - } | ||
| 965 | - | ||
| 966 | - | ||
| 967 | - //--优惠多少钱-- | ||
| 968 | - if(!cart_item.cut_price) cart_item.cut_price=0; | ||
| 969 | - //-- -- | ||
| 970 | - if(item_map.price!=undefined && item_map.price!=null | ||
| 971 | - && item_map.prom_price!=undefined && item_map.prom_price!=null) | ||
| 972 | - cart_item.cut_price+=(item_map.price-item_map.prom_price); | ||
| 973 | - //---如果有送积分--- | ||
| 974 | - if(item_map.s_intValue){ | ||
| 975 | - if(!cart_item.s_intValue) cart_item.s_intValue=0; | ||
| 976 | - cart_item.s_intValue+=item_map.s_intValue; | ||
| 977 | - } | ||
| 978 | - //-- 如果有送优惠券的情况 -- | ||
| 979 | - if(item_map.s_coupon_id){ | ||
| 980 | - if(!cart_item.s_coupon_id) { | ||
| 981 | - cart_item.s_coupon_id=item_map.s_coupon_id+""; | ||
| 982 | - cart_item.g_coupon_num=[{'c_id':item_map.s_coupon_id,"num": item_map.s_coupon_num}]; | ||
| 983 | - } | ||
| 984 | - else{ | ||
| 985 | - cart_item.s_coupon_id+=","+item_map.s_coupon_id; | ||
| 986 | - cart_item.g_coupon_num.push({'c_id':item_map.s_coupon_id,"num": item_map.s_coupon_num}) | ||
| 987 | - } | ||
| 988 | - } | ||
| 989 | - | ||
| 990 | - //-- 如果有送优包邮券的情况 -- | ||
| 991 | - if(item_map.s_libao){ | ||
| 992 | - if(!cart_item.s_libao) { | ||
| 993 | - cart_item.s_libao=item_map.s_libao+""; | ||
| 994 | - cart_item.g_lb_num=[{'l_id':item_map.s_libao,"num": item_map.s_lb_num}]; | ||
| 995 | - } | ||
| 996 | - else{ | ||
| 997 | - cart_item.s_libao+=","+item_map.s_libao; | ||
| 998 | - cart_item.g_lb_num.push({'l_id':item_map.s_libao,"num": item_map.s_lb_num}) | ||
| 999 | - } | ||
| 1000 | - } | ||
| 1001 | - } | ||
| 1002 | - } | ||
| 1003 | - } | ||
| 1004 | - }, | ||
| 1005 | - | ||
| 1006 | - //-------------------计算订单价格------------------- | ||
| 1007 | - calculatePrice: function(t, s) { | ||
| 1008 | - var th = this; | ||
| 1009 | - to.getConfig2(function(ee){ | ||
| 1010 | - to.getwuliuprice( async function (rs) { | ||
| 1011 | - wx.showLoading({ | ||
| 1012 | - title:"处理中." | ||
| 1013 | - }) | ||
| 1014 | - var all_price=0; //所有的商品总价 | ||
| 1015 | - var all_shipping_m= 0; //所有的物流总价 | ||
| 1016 | - var all_total_m = 0; //所有的订单应付总价 | ||
| 1017 | - var all_order_m = 0; //所有的订单应付总价 | ||
| 1018 | - var all_user_m=0; //所有的订单用户使用金额 | ||
| 1019 | - var all_coupon_price_m=0; //所有的订单用户使用优惠券价格 | ||
| 1020 | - var all_cutprice=0; //所有的优惠减件 | ||
| 1021 | - var all_order_prom=0; //所有的订单优惠 | ||
| 1022 | - | ||
| 1023 | - var umoney = th.data.userinfo.user_money - th.data.txmon - (th.data.userinfo.frozen_money?th.data.userinfo.frozen_money:0); | ||
| 1024 | - var freight_free = ee.freight_free; //全场满多少包邮 | ||
| 1025 | - var no_ex_id=ee.no_ex_id; | ||
| 1026 | - var no_ex_good=null; | ||
| 1027 | - var by_qc={}; | ||
| 1028 | - | ||
| 1029 | - if(no_ex_id && freight_free>0){ | ||
| 1030 | - //-----------获取不包邮区域,不包邮商品------- | ||
| 1031 | - await getApp().request.promiseGet("/api/weshop/areaFeemail/getAreaGoods",{ | ||
| 1032 | - data:{store_id:os.stoid,id:no_ex_id} | ||
| 1033 | - }).then(res=>{ | ||
| 1034 | - if(res.data.code==0 && res.data.data && res.data.data.length>0){ | ||
| 1035 | - by_qc=res.data.data[0]; | ||
| 1036 | - } | ||
| 1037 | - }) | ||
| 1038 | - }; | ||
| 1039 | - var c_arr=JSON.parse(JSON.stringify(th.data.old_cartlist)); | ||
| 1040 | - | ||
| 1041 | - | ||
| 1042 | - if(th.data.cartlist && th.data.cartlist.length>0){ | ||
| 1043 | - for(var i =0;i<c_arr.length;i++){ | ||
| 1044 | - c_arr[i].exp_type=th.data.cartlist[i].exp_type; | ||
| 1045 | - c_arr[i].wind=th.data.cartlist[i].wind; | ||
| 1046 | - } | ||
| 1047 | - } | ||
| 1048 | - | ||
| 1049 | - //调用函数计算每件商品的单价 | ||
| 1050 | - await th.calc_per(c_arr); | ||
| 1051 | - //调用函数计算,优惠券优惠什么商品价格,优惠券优惠什么商品 | ||
| 1052 | - await th.get_cart_quan(c_arr); | ||
| 1053 | - //---循环购物车--- | ||
| 1054 | - for(var i in c_arr){ | ||
| 1055 | - //因为搭配购买也是再这里计算,搭配购的is_b_now==1 | ||
| 1056 | - if(th.data.is_b_now==0) { | ||
| 1057 | - //此时物流的选择方式要用th.data.cartlist; | ||
| 1058 | - c_arr[i].exp_type = th.data.cartlist[i].exp_type; | ||
| 1059 | - c_arr[i].wind = th.data.cartlist[i].wind; | ||
| 1060 | - if(th.data.cartlist[i].check_quan_price_list) c_arr[i].check_quan_price_list= th.data.cartlist[i].check_quan_price_list; //优惠券优惠什么商品价格 | ||
| 1061 | - if(th.data.cartlist[i].check_quan_ware_list) c_arr[i].check_quan_ware_list= th.data.cartlist[i].check_quan_ware_list; //优惠券优惠什么商品 | ||
| 1062 | - }else{ | ||
| 1063 | - c_arr[i].exp_type = th.data.bn_exp_type; //配送方式 | ||
| 1064 | - c_arr[i].wind = th.data.index; //立即购买选择的物流 | ||
| 1065 | - //c_arr[i].=th.data. //立即购买的使用余额 | ||
| 1066 | - if(th.data.cartlist) c_arr[i].check_quan_price_list= th.data.cartlist[i].check_quan_price_list; //优惠券优惠什么商品价格 | ||
| 1067 | - if(th.data.cartlist) c_arr[i].check_quan_ware_list= th.data.cartlist[i].check_quan_ware_list; //优惠券优惠什么商品 | ||
| 1068 | - } | ||
| 1069 | - | ||
| 1070 | - var cart_item=c_arr[i]; //就是每一单的意思 | ||
| 1071 | - var pickid=cart_item.pickup_id; | ||
| 1072 | - var o_price=0; | ||
| 1073 | - var o_shipping_price=0,goods_weight=-1, goods_piece=-1; | ||
| 1074 | - var item=c_arr[i].goods; //就是每一单的从表的意思 | ||
| 1075 | - | ||
| 1076 | - //---如果有选择优惠券的情况下--- | ||
| 1077 | - var quan_price=0; | ||
| 1078 | - var coupon_price=0; | ||
| 1079 | - var quan_no= null; | ||
| 1080 | - | ||
| 1081 | - if(th.data.using_quan[pickid]!=null && th.data.using_quan[pickid]!=undefined) | ||
| 1082 | - quan_no=th.data.using_quan[pickid].coupon_no; | ||
| 1083 | - | ||
| 1084 | - //普通券的时候 | ||
| 1085 | - if(quan_no && th.data.using_quan[pickid].isby!=1){ | ||
| 1086 | - //---获取优惠券优惠--- | ||
| 1087 | - await getApp().request.promiseGet("/api/weshop/couponList/getUseCouponPrice", { | ||
| 1088 | - data: { | ||
| 1089 | - storeId: oo.stoid, | ||
| 1090 | - CashRepNo: quan_no, | ||
| 1091 | - WaresSum: cart_item.check_quan_price_list, | ||
| 1092 | - WareIds: cart_item.check_quan_ware_list | ||
| 1093 | - } | ||
| 1094 | - }).then(res => { | ||
| 1095 | - if (res.data.code == 0 && res.data.data && res.data.data.length > 0) { | ||
| 1096 | - var q_data = res.data.data; | ||
| 1097 | - //--存储商品优惠的内容-- | ||
| 1098 | - cart_item.quan_youhui_list = q_data; | ||
| 1099 | - for (var k in q_data) | ||
| 1100 | - quan_price += q_data[k].WareCashSum; | ||
| 1101 | - } | ||
| 1102 | - }) | ||
| 1103 | - } | ||
| 1104 | - | ||
| 1105 | - | ||
| 1106 | - //--------循环计算总价----------- | ||
| 1107 | - for(var j=0;j<item.length;j++){ | ||
| 1108 | - o_price += item[j].goods_price * item[j].goods_num; | ||
| 1109 | - } | ||
| 1110 | - | ||
| 1111 | - var f_o_price=o_price; | ||
| 1112 | - //如果又优惠的钱,就要减价 | ||
| 1113 | - if(c_arr[i].cut_price>0) o_price-=c_arr[i].cut_price; | ||
| 1114 | - | ||
| 1115 | - //-- 计算线下取价的功能 -- | ||
| 1116 | - if(cart_item.is_offline==1){ | ||
| 1117 | - o_price=o_price-cart_item.offline_price; | ||
| 1118 | - } | ||
| 1119 | - | ||
| 1120 | - //判断包邮券的钱 | ||
| 1121 | - var q_conditin=0; | ||
| 1122 | - q_conditin=o_price-quan_price; | ||
| 1123 | - | ||
| 1124 | - cart_item.goods_price = f_o_price.toFixed(2); //商品总费用,用f_o_price来计算 | ||
| 1125 | - //计算物流费用 | ||
| 1126 | - cart_item.shipping_price = 0; | ||
| 1127 | - | ||
| 1128 | - | ||
| 1129 | - | ||
| 1130 | - //--有不包邮区域,且不免运费,全场的计算,要减到优惠金额 和券的金额-- | ||
| 1131 | - 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) ){ | ||
| 1132 | - //如果有设置不包邮区域的时候 | ||
| 1133 | - if(by_qc.region_list!="" && by_qc.region_list!=null && by_qc.region_list!=undefined ){ | ||
| 1134 | - if(th.check_by_area(by_qc.region_list)){ | ||
| 1135 | - freight_free=0; | ||
| 1136 | - th.data.is_no_by[pickid]=1; | ||
| 1137 | - } | ||
| 1138 | - } | ||
| 1139 | - //如果有设置不包邮区商品 | ||
| 1140 | - if(by_qc.goods_list!="" && by_qc.goods_list!=undefined && by_qc!=null && freight_free>0){ | ||
| 1141 | - freight_free=0; | ||
| 1142 | - no_ex_good=by_qc.goods_list; | ||
| 1143 | - } | ||
| 1144 | - } | ||
| 1145 | - | ||
| 1146 | - //--如果是物流,且选择了地址,就要开始显示包邮券,且包邮券也已经优惠了优惠活动的金额-- | ||
| 1147 | - if (cart_item.exp_type == 0 && th.data.user_addr != null) { | ||
| 1148 | - //看是不是有调用过包邮券 | ||
| 1149 | - if(!th.data.isget_by_quan[pickid]){ | ||
| 1150 | - //--判断要不要显示包邮券,调用接口,因为有for循环--- | ||
| 1151 | - await getApp().request.promiseGet("/api/weshop/userfeemail/pageAndArea",{ | ||
| 1152 | - data:{store_id:os.stoid,isuse:0,condition:q_conditin,user_id:getApp().globalData.user_id,pageSize:2000} | ||
| 1153 | - }).then(res=>{ | ||
| 1154 | - if(res.data.code==0 && res.data.data.total>0){ | ||
| 1155 | - //此时要循环判断包邮的地区,不包邮商品是不是符合 | ||
| 1156 | - var arr=[],quanlist=res.data.data.pageData; | ||
| 1157 | - quanlist = th.check_is_frozenQuan(quanlist, th.data.frozenQuan,1); | ||
| 1158 | - for(var i in quanlist){ | ||
| 1159 | - var item=quanlist[i]; | ||
| 1160 | - var goods=cart_item.goods; | ||
| 1161 | - var g_arr=[]; | ||
| 1162 | - for(var ii in goods){ | ||
| 1163 | - g_arr.push(goods[ii].goods_id); | ||
| 1164 | - } | ||
| 1165 | - if(item.region_list && th.check_by_area(item.region_list)) continue; //如果是不包邮区域 | ||
| 1166 | - if(item.goods_list){ | ||
| 1167 | - var no_goods_arr=item.goods_list.split(","); | ||
| 1168 | - if(ut.isContained(no_goods_arr,g_arr)) continue; //如果是不包邮商品 | ||
| 1169 | - } | ||
| 1170 | - arr.push(item); | ||
| 1171 | - } | ||
| 1172 | - if(arr){ | ||
| 1173 | - th.data.get_by_quan_list_cart[pickid]=arr; | ||
| 1174 | - //th.setData({get_by_quan_list_cart:th.data.get_by_quan_list_cart}); | ||
| 1175 | - if(th.data.is_b_now){ | ||
| 1176 | - th.setData({get_by_quan_list:arr}); | ||
| 1177 | - } | ||
| 1178 | - } | ||
| 1179 | - th.data.isget_by_quan[pickid]=1; | ||
| 1180 | - } | ||
| 1181 | - }) | ||
| 1182 | - } | ||
| 1183 | - } | ||
| 1184 | - | ||
| 1185 | - //如果是包邮券的时候,要看看券的情况 | ||
| 1186 | - if(quan_no && th.data.using_quan[pickid].isby==1){ | ||
| 1187 | - var quan=th.data.using_quan[pickid]; | ||
| 1188 | - if(!quan.goods_list){ | ||
| 1189 | - th.data.is_quan_by[pickid]=1; //专门给券的判断用的 | ||
| 1190 | - }else{ | ||
| 1191 | - th.data.is_quan_by[pickid]=0; | ||
| 1192 | - //看有没有模板的包邮 | ||
| 1193 | - if(no_ex_good){ | ||
| 1194 | - var arr=no_ex_good.split(","); | ||
| 1195 | - var arr2=quan.goods_list.split(","); | ||
| 1196 | - if(ut.isContained(arr,arr2)){ | ||
| 1197 | - getApp().my_warnning("全场不包邮商品和包邮券的重复",0,th); | ||
| 1198 | - th.data.using_quan[pickid]={}; | ||
| 1199 | - th.setData({using_quan:th.data.using_quan}) | ||
| 1200 | - return false; | ||
| 1201 | - } | ||
| 1202 | - var n_arr=ut.mergeArray(arr,arr2); | ||
| 1203 | - no_ex_good=n_arr.join(","); | ||
| 1204 | - }else{ | ||
| 1205 | - no_ex_good=quan.goods_list; | ||
| 1206 | - } | ||
| 1207 | - } | ||
| 1208 | - }else{ | ||
| 1209 | - th.data.is_quan_by[pickid]=0; //专门给券的判断用的 | ||
| 1210 | - } | ||
| 1211 | - | ||
| 1212 | - //--------循环计算总价----------- | ||
| 1213 | - for(var j=0;j<item.length;j++){ | ||
| 1214 | - //如果都包邮,都没必要等级数量了 | ||
| 1215 | - if(th.data.is_quan_by[pickid]) continue; | ||
| 1216 | - //如果是优惠活动是包邮,就不用计算包邮的费用了 | ||
| 1217 | - if(item[j].is_past) continue; | ||
| 1218 | - //是不是不包邮的商品 | ||
| 1219 | - var is_good_no_by=0; | ||
| 1220 | - if(no_ex_good){ | ||
| 1221 | - is_good_no_by=th.check_by_goods(no_ex_good,item[j].goods_id); | ||
| 1222 | - } | ||
| 1223 | - | ||
| 1224 | - //如果达到全场包邮的条件,同时,没有地区不包邮,或者商品不包邮 | ||
| 1225 | - if(o_price-quan_price>=freight_free && freight_free>0 && !is_good_no_by && th.data.is_no_by[pickid]!=1){ | ||
| 1226 | - continue; | ||
| 1227 | - } | ||
| 1228 | - | ||
| 1229 | - //--如果是包邮券使用的情况下,如果商品是包邮的,那么就不进行计算-- | ||
| 1230 | - if(th.data.using_quan[pickid] && th.data.using_quan[pickid].isby==1 && !is_good_no_by){ | ||
| 1231 | - continue; | ||
| 1232 | - } | ||
| 1233 | - | ||
| 1234 | - | ||
| 1235 | - var no_ex_good_arr=null; | ||
| 1236 | - if(no_ex_good) no_ex_good_arr=no_ex_good.split(','); | ||
| 1237 | - | ||
| 1238 | - //----------------如果是选择了物流--------------------- | ||
| 1239 | - 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 )){ | ||
| 1240 | - | ||
| 1241 | - | ||
| 1242 | - //如果地址不为空 | ||
| 1243 | - if (th.data.user_addr!=null){ | ||
| 1244 | - switch (item[j]['exp_sum_type']) { | ||
| 1245 | - case 1: | ||
| 1246 | - //统一运费 | ||
| 1247 | - o_shipping_price += item[j]['uniform_exp_sum'];break; | ||
| 1248 | - case 2:+'' | ||
| 1249 | - if (goods_weight < 0) goods_weight = 0; | ||
| 1250 | - //累积商品重量 每种商品的重量 * 数量 | ||
| 1251 | - goods_weight += item[j]['weight'] * item[j]['goods_num']; | ||
| 1252 | - | ||
| 1253 | - break; | ||
| 1254 | - case 3: | ||
| 1255 | - if (goods_piece < 0) goods_piece = 0; | ||
| 1256 | - //累积商品数量 | ||
| 1257 | - goods_piece += item[j]['goods_num']; | ||
| 1258 | - break; | ||
| 1259 | - } | ||
| 1260 | - } | ||
| 1261 | - | ||
| 1262 | - } | ||
| 1263 | - } | ||
| 1264 | - | ||
| 1265 | - //计算物流价格 | ||
| 1266 | - if (cart_item.exp_type == 0) { | ||
| 1267 | - //freight_free=0; //后面不在进行判断 | ||
| 1268 | - var code = ""; | ||
| 1269 | - if(th.data.wu_arr && th.data.wu_arr[cart_item.wind]) | ||
| 1270 | - code=th.data.wu_arr[cart_item.wind].code; | ||
| 1271 | - cart_item.shipping_price = | ||
| 1272 | - th.calculatewuliu(code, o_shipping_price, goods_weight, | ||
| 1273 | - goods_piece,th.data.user_addr, freight_free, o_price-quan_price, rs); | ||
| 1274 | - | ||
| 1275 | - if(!th.data.using_quan[pickid] || th.data.using_quan[pickid].isby!=1){ | ||
| 1276 | - if( cart_item.shipping_price ==0) th.data.is_by[pickid]=1; //已经全场包邮,就不要选择券了 | ||
| 1277 | - } | ||
| 1278 | - }else{ | ||
| 1279 | - cart_item.shipping_price=0; | ||
| 1280 | - } | ||
| 1281 | - | ||
| 1282 | - cart_item.shipping_price=cart_item.shipping_price.toFixed(2); | ||
| 1283 | - | ||
| 1284 | - //总价计算,总价不包含运费 | ||
| 1285 | - cart_item.order_amount= (o_price -quan_price).toFixed(2); | ||
| 1286 | - cart_item.total_amount= f_o_price.toFixed(2); | ||
| 1287 | - | ||
| 1288 | - var order_prom_amount=0; var order_prom_id=0; var o_condition=cart_item.order_amount; | ||
| 1289 | - var order_m=0; | ||
| 1290 | - //---判断是不是有订单优惠--- | ||
| 1291 | - await getApp().request.promiseGet("/api/weshop/promorder/getOrderPromotion",{ | ||
| 1292 | - data:{store_id:os.stoid,orderAmount:cart_item.order_amount} | ||
| 1293 | - }).then(res=>{ | ||
| 1294 | - if(res.data.code==0){ | ||
| 1295 | - var ord_prom=res.data.data; | ||
| 1296 | - order_prom_id = ord_prom['id']; | ||
| 1297 | - switch (ord_prom['type']) { | ||
| 1298 | - case 0: | ||
| 1299 | - order_m = Math.round(o_condition * ord_prom['expression'])/100;//满额打折 | ||
| 1300 | - order_prom_amount=(o_condition -order_m).toFixed(2); | ||
| 1301 | - break; | ||
| 1302 | - case 1: | ||
| 1303 | - //order_m = o_condition - ord_prom['expression'];//满额优惠金额 | ||
| 1304 | - order_prom_amount= ord_prom['expression']; | ||
| 1305 | - break; | ||
| 1306 | - } | ||
| 1307 | - } | ||
| 1308 | - }) | ||
| 1309 | - | ||
| 1310 | - cart_item.order_prom_amount=0; | ||
| 1311 | - //--订单优惠的显示-- | ||
| 1312 | - if(order_prom_id>0){ | ||
| 1313 | - cart_item.order_amount= (o_price -quan_price-order_prom_amount).toFixed(2); | ||
| 1314 | - cart_item.order_prom_id=order_prom_id; | ||
| 1315 | - cart_item.order_prom_amount=order_prom_amount; | ||
| 1316 | - } | ||
| 1317 | - coupon_price=quan_price; | ||
| 1318 | - if( cart_item.order_amount<0){ | ||
| 1319 | - cart_item.order_amount=0; | ||
| 1320 | - coupon_price=o_price; | ||
| 1321 | - } | ||
| 1322 | - | ||
| 1323 | - cart_item.total_amount= parseFloat(cart_item.total_amount)+parseFloat(cart_item.shipping_price); //总金额 | ||
| 1324 | - cart_item.order_amount=parseFloat(cart_item.order_amount)+parseFloat(cart_item.shipping_price); //总金额 | ||
| 1325 | - cart_item.total_amount= cart_item.total_amount.toFixed(2); | ||
| 1326 | - cart_item.order_amount=cart_item.order_amount.toFixed(2); | ||
| 1327 | - | ||
| 1328 | - //搭配购在使用余额 | ||
| 1329 | - if(th.data.bn_use_money==1 && th.data.is_b_now==1){ | ||
| 1330 | - | ||
| 1331 | - if (umoney > cart_item.order_amount) { | ||
| 1332 | - cart_item.user_money = cart_item.order_amount; | ||
| 1333 | - umoney = umoney - cart_item.order_amount; | ||
| 1334 | - }else { | ||
| 1335 | - cart_item.user_money = umoney; | ||
| 1336 | - umoney=0; | ||
| 1337 | - } | ||
| 1338 | - | ||
| 1339 | - }else{ | ||
| 1340 | - //--------------如果使用余额,购物车购买--------------------- | ||
| 1341 | - if (th.data.js_use_money == 1) { | ||
| 1342 | - if (umoney > cart_item.order_amount) { | ||
| 1343 | - cart_item.user_money = cart_item.order_amount; | ||
| 1344 | - umoney = umoney - cart_item.order_amount; | ||
| 1345 | - }else { | ||
| 1346 | - cart_item.user_money = umoney; | ||
| 1347 | - umoney=0; | ||
| 1348 | - } | ||
| 1349 | - }else{ | ||
| 1350 | - cart_item.user_money=0; | ||
| 1351 | - } | ||
| 1352 | - } | ||
| 1353 | - | ||
| 1354 | - | ||
| 1355 | - | ||
| 1356 | - cart_item.user_money = parseFloat(cart_item.user_money).toFixed(2); | ||
| 1357 | - | ||
| 1358 | - if (coupon_price>0) cart_item.coupon_price=coupon_price.toFixed(2); | ||
| 1359 | - else cart_item.coupon_price = coupon_price | ||
| 1360 | - if(quan_no) cart_item.quan_no = quan_no; | ||
| 1361 | - | ||
| 1362 | - | ||
| 1363 | - //cart_item.goods_price = o_price.toFixed(2); | ||
| 1364 | - cart_item.order_amount= cart_item.order_amount- cart_item.user_money; //会员使用余额 | ||
| 1365 | - | ||
| 1366 | - | ||
| 1367 | - all_price += parseFloat(f_o_price); | ||
| 1368 | - all_total_m += parseFloat(cart_item.total_amount); | ||
| 1369 | - all_shipping_m += parseFloat(cart_item.shipping_price); | ||
| 1370 | - all_order_m += parseFloat(cart_item.order_amount); | ||
| 1371 | - all_user_m += parseFloat(cart_item.user_money); | ||
| 1372 | - all_coupon_price_m+= parseFloat(cart_item.coupon_price); | ||
| 1373 | - all_cutprice+=parseFloat(cart_item.cut_price); | ||
| 1374 | - all_order_prom+=parseFloat(cart_item.order_prom_amount); | ||
| 1375 | - } | ||
| 1376 | - | ||
| 1377 | - all_shipping_m=parseFloat(all_shipping_m).toFixed(2); | ||
| 1378 | - all_total_m = parseFloat(all_total_m).toFixed(2); | ||
| 1379 | - all_order_m = parseFloat(all_order_m).toFixed(2); | ||
| 1380 | - all_price = parseFloat(all_price).toFixed(2); | ||
| 1381 | - all_user_m = parseFloat(all_user_m).toFixed(2); | ||
| 1382 | - all_total_m = parseFloat(all_total_m).toFixed(2); | ||
| 1383 | - all_coupon_price_m = parseFloat(all_coupon_price_m).toFixed(2); | ||
| 1384 | - all_cutprice=all_cutprice.toFixed(2); | ||
| 1385 | - all_order_prom=all_order_prom.toFixed(2); | ||
| 1386 | - | ||
| 1387 | - var atxt = "formData.total_amount"; | ||
| 1388 | - var atxt1 = "formData.order_amount"; | ||
| 1389 | - var atxt2 = "formData.all_price"; | ||
| 1390 | - var atxt3 = "formData.user_money"; | ||
| 1391 | - var atxt4 = "formData.shipping_price"; | ||
| 1392 | - var atxt5 = "formData.coupon_price"; | ||
| 1393 | - var atxt6 = "formData.cut_price"; | ||
| 1394 | - var atxt7 = "formData.order_prom_amount"; | ||
| 1395 | - | ||
| 1396 | - th.setData({ [atxt]: all_total_m, [atxt1]: all_order_m, | ||
| 1397 | - [atxt2]: all_price, [atxt3]: all_user_m, [atxt4]: all_shipping_m, | ||
| 1398 | - [atxt5]: all_coupon_price_m,[atxt6]: all_cutprice, | ||
| 1399 | - [atxt7]: all_order_prom, show_submit:1 | ||
| 1400 | - }) | ||
| 1401 | - th.data.order_prom_list_cart=c_arr; | ||
| 1402 | - th.set_can_num(); | ||
| 1403 | - wx.hideLoading(); | ||
| 1404 | - | ||
| 1405 | - }); | ||
| 1406 | - }); | ||
| 1407 | - }, | ||
| 1408 | - | ||
| 1409 | - set_can_num:function(){ | ||
| 1410 | - var th=this; | ||
| 1411 | - //-- 这个地方,循环计算几张优惠券可用-- | ||
| 1412 | - for ( var iter in th.data.cartlist){ | ||
| 1413 | - var num=0; | ||
| 1414 | - var c_item=th.data.cartlist[iter]; | ||
| 1415 | - var pkid=c_item.pickup_id; | ||
| 1416 | - //-- 普通券 -- | ||
| 1417 | - if(c_item.quan_list){ | ||
| 1418 | - for (var iter1 in c_item.quan_list){ | ||
| 1419 | - //判断是不是其他订单有选用 | ||
| 1420 | - var is_other_is_use=th.check_other_use(c_item.quan_list[iter1],pkid); | ||
| 1421 | - if(!is_other_is_use) num++; | ||
| 1422 | - } | ||
| 1423 | - } | ||
| 1424 | - //-- 包邮券 -- | ||
| 1425 | - var by_quan=th.data.get_by_quan_list_cart[pkid]; | ||
| 1426 | - if(by_quan){ | ||
| 1427 | - for (var iter2 in by_quan){ | ||
| 1428 | - //判断是不是其他订单有选用 | ||
| 1429 | - var is_other_is_use=th.check_other_use_by(by_quan[iter2],pkid); | ||
| 1430 | - if(!is_other_is_use) num++; | ||
| 1431 | - } | ||
| 1432 | - } | ||
| 1433 | - var set_txt="cartlist["+iter+"].can_num"; | ||
| 1434 | - th.setData({ [set_txt]: num}); | ||
| 1435 | - } | ||
| 1436 | - }, | ||
| 1437 | - | ||
| 1438 | - | ||
| 1439 | - //---------计算立即购买---------- | ||
| 1440 | - calculatePrice2: function () { | ||
| 1441 | - var th = this, good = this.data.bn_goods; | ||
| 1442 | - | ||
| 1443 | - if(!good) return false; | ||
| 1444 | - | ||
| 1445 | - //搭配的计算要用购物的车计算方法 | ||
| 1446 | - if(good.prom_type==5){ | ||
| 1447 | - th.calculatePrice(); | ||
| 1448 | - return false; | ||
| 1449 | - } | ||
| 1450 | - | ||
| 1451 | - wx.showLoading({ | ||
| 1452 | - title:"处理中." | ||
| 1453 | - }) | ||
| 1454 | - //-----------计算商品总价-------------- | ||
| 1455 | - var allpice = good.shop_price * good.buynum; | ||
| 1456 | - var cut_price=0; | ||
| 1457 | - var allpice1=allpice; | ||
| 1458 | - | ||
| 1459 | - | ||
| 1460 | - if(good.prom_type==3 && good.prom_price!==null){ | ||
| 1461 | - cut_price=allpice-good.prom_price; | ||
| 1462 | - } | ||
| 1463 | - | ||
| 1464 | - allpice=parseFloat(allpice).toFixed(2); | ||
| 1465 | - var txt = "formData.all_price"; | ||
| 1466 | - th.setData({ [txt]: allpice, }); | ||
| 1467 | - if(cut_price){ | ||
| 1468 | - var c_txt="formData.cut_price"; | ||
| 1469 | - th.setData({ [c_txt]: cut_price, }); | ||
| 1470 | - | ||
| 1471 | - } | ||
| 1472 | - | ||
| 1473 | - //如果有线下取价的时候 | ||
| 1474 | - if(good.is_offline){ | ||
| 1475 | - allpice = good.offline_price * good.buynum; | ||
| 1476 | - } | ||
| 1477 | - | ||
| 1478 | - | ||
| 1479 | - to.getConfig2(function (ee) { | ||
| 1480 | - to.getwuliuprice(async function (rs) { | ||
| 1481 | - | ||
| 1482 | - var o_shipping_price = 0, goods_weight = -1, goods_piece = -1; | ||
| 1483 | - | ||
| 1484 | - //---如果有选择优惠券的情况下--- | ||
| 1485 | - var quan_price=0,bn_pick=th.data.bn_pick; | ||
| 1486 | - var quan_no=null; | ||
| 1487 | - if(th.data.using_quan[bn_pick]!=null && th.data.using_quan[bn_pick]!=undefined) | ||
| 1488 | - quan_no=th.data.using_quan[bn_pick].coupon_no; | ||
| 1489 | - | ||
| 1490 | - if(quan_no){ | ||
| 1491 | - if(th.data.using_quan[bn_pick].isby!=1){ | ||
| 1492 | - //---获取优惠券优惠--- | ||
| 1493 | - await getApp().request.promiseGet("/api/weshop/couponList/getUseCouponPrice",{ | ||
| 1494 | - data:{storeId:oo.stoid,CashRepNo:quan_no, WaresSum:th.data.ckeck_quan_price, WareIds:th.data.check_quan_ware_list} | ||
| 1495 | - }).then(res=>{ | ||
| 1496 | - if(res.data.code==0 && res.data.data && res.data.data.length>0 ){ | ||
| 1497 | - quan_price=res.data.data[0].WareCashSum; | ||
| 1498 | - } | ||
| 1499 | - }) | ||
| 1500 | - } | ||
| 1501 | - } | ||
| 1502 | - | ||
| 1503 | - //-----------当地址不为空,且是物流时,计算物流费用,并同时商品不是优惠活动的包邮---------- | ||
| 1504 | - if (th.data.user_addr != null && th.data.bn_exp_type == 0 && good.is_free_shipping == 0 && good.is_past!=1 ){ | ||
| 1505 | - //看是不是有调用过包邮券 | ||
| 1506 | - if(!th.data.isget_by_quan[th.data.bn_pick] && good.is_xz_yh!=1){ | ||
| 1507 | - var condition=allpice-cut_price-quan_price; | ||
| 1508 | - //--判断要不要显示包邮券,链式调用接口,调取包邮券,已经是减了优惠的金额,见到优惠券的钱--- | ||
| 1509 | - getApp().request.promiseGet("/api/weshop/userfeemail/pageAndArea",{ | ||
| 1510 | - data:{store_id:os.stoid,isuse:0,condition:condition,user_id:getApp().globalData.user_id,pageSize:2000} | ||
| 1511 | - }).then(res=>{ | ||
| 1512 | - if(res.data.code==0 && res.data.data.total>0){ | ||
| 1513 | - //此时要循环判断包邮的地区,不包邮商品是不是符合 | ||
| 1514 | - var arr=[],quanlist=res.data.data.pageData; | ||
| 1515 | - quanlist = th.check_is_frozenQuan(quanlist, th.data.frozenQuan,1); | ||
| 1516 | - for(var i in quanlist){ | ||
| 1517 | - var item=quanlist[i]; | ||
| 1518 | - if(item.region_list && th.check_by_area(item.region_list)) continue; //如果是不包邮区域 | ||
| 1519 | - if(item.goods_list && th.check_by_goods(item.goods_list)) continue; //如果是不包邮商品 | ||
| 1520 | - arr.push(item); | ||
| 1521 | - } | ||
| 1522 | - if(arr){ | ||
| 1523 | - th.setData({get_by_quan_list:arr}); | ||
| 1524 | - } | ||
| 1525 | - th.data.isget_by_quan[th.data.bn_pick]=1; | ||
| 1526 | - } | ||
| 1527 | - }) | ||
| 1528 | - } | ||
| 1529 | - | ||
| 1530 | - switch (good['exp_sum_type']) { | ||
| 1531 | - case 1: | ||
| 1532 | - //统一运费 | ||
| 1533 | - o_shipping_price += good['uniform_exp_sum']; break; | ||
| 1534 | - case 2: | ||
| 1535 | - if (goods_weight < 0) goods_weight = 0; | ||
| 1536 | - //累积商品重量 每种商品的重量 * 数量 | ||
| 1537 | - goods_weight += good['weight'] * good['buynum'];break; | ||
| 1538 | - case 3: | ||
| 1539 | - if (goods_piece < 0) goods_piece = 0; | ||
| 1540 | - //累积商品数量 | ||
| 1541 | - goods_piece += good['buynum']; break; | ||
| 1542 | - } | ||
| 1543 | - | ||
| 1544 | - var code =""; | ||
| 1545 | - if(th.data.wu_arr && th.data.wu_arr[th.data.index]) code=th.data.wu_arr[th.data.index].code; | ||
| 1546 | - var freight_free = ee.freight_free; //全场满多少包邮 | ||
| 1547 | - var no_ex_id=ee.no_ex_id; | ||
| 1548 | - th.data.is_no_by[th.data.bn_pick]=0; | ||
| 1549 | - | ||
| 1550 | - var no_by_data=null; | ||
| 1551 | - var gift_freight_free=freight_free; | ||
| 1552 | - | ||
| 1553 | - | ||
| 1554 | - //有不包邮区域,且不免运费 | ||
| 1555 | - if(no_ex_id && freight_free>0 && freight_free<= parseFloat(allpice)-cut_price-quan_price){ | ||
| 1556 | - //-----------获取不包邮区域,不包邮商品------- | ||
| 1557 | - await getApp().request.promiseGet("/api/weshop/areaFeemail/getAreaGoods",{ | ||
| 1558 | - data:{store_id:os.stoid,id:no_ex_id} | ||
| 1559 | - }).then(res=>{ | ||
| 1560 | - if(res.data.code==0 && res.data.data && res.data.data.length>0){ | ||
| 1561 | - no_by_data=res.data.data[0]; | ||
| 1562 | - //如果有设置不包邮区域的时候 | ||
| 1563 | - if(res.data.data[0].region_list){ | ||
| 1564 | - if(th.check_by_area(res.data.data[0].region_list)){ | ||
| 1565 | - freight_free=0; | ||
| 1566 | - th.data.is_no_by[th.data.bn_pick]=1; | ||
| 1567 | - } | ||
| 1568 | - } | ||
| 1569 | - //如果有设置不包邮商品 | ||
| 1570 | - if(res.data.data[0].goods_list && freight_free){ | ||
| 1571 | - if(th.check_by_goods(res.data.data[0].goods_list)){ | ||
| 1572 | - freight_free=0; | ||
| 1573 | - th.data.is_no_by[th.data.bn_pick]=1; | ||
| 1574 | - } | ||
| 1575 | - } | ||
| 1576 | - } | ||
| 1577 | - }) | ||
| 1578 | - } | ||
| 1579 | - | ||
| 1580 | - th.data.is_by[th.data.bn_pick]=0; | ||
| 1581 | - //--------------开始计算物流------------------ | ||
| 1582 | - var shipping_price= | ||
| 1583 | - th.calculatewuliu(code, o_shipping_price, goods_weight, | ||
| 1584 | - goods_piece, th.data.user_addr, freight_free, parseFloat(allpice)-cut_price-quan_price, rs); | ||
| 1585 | - | ||
| 1586 | - //如果有赠品的时候,也要计算赠品的物流费用 | ||
| 1587 | - if(th.data.buy_now_gift_goods){ | ||
| 1588 | - shipping_price=th.get_now_gift_goods_wuliu(code, o_shipping_price, th.data.user_addr, gift_freight_free, | ||
| 1589 | - parseFloat(allpice)-cut_price-quan_price, rs,shipping_price,no_by_data,goods_weight,goods_piece); | ||
| 1590 | - } | ||
| 1591 | - | ||
| 1592 | - if(shipping_price<=0){ | ||
| 1593 | - th.data.is_by[th.data.bn_pick]=1; //已经是包邮了,就不要选择包邮券 | ||
| 1594 | - } | ||
| 1595 | - | ||
| 1596 | - shipping_price = parseFloat(shipping_price).toFixed(2); | ||
| 1597 | - var wl_txt = "formData.shipping_price"; | ||
| 1598 | - th.setData({ [wl_txt]: shipping_price, }) | ||
| 1599 | - | ||
| 1600 | - }else{ | ||
| 1601 | - var wl_txt = "formData.shipping_price"; | ||
| 1602 | - th.setData({ [wl_txt]: 0, }) | ||
| 1603 | - } | ||
| 1604 | - | ||
| 1605 | - if(quan_no){ | ||
| 1606 | - if(th.data.using_quan[bn_pick].isby==1){ | ||
| 1607 | - shipping_price=0; | ||
| 1608 | - var wl_txt = "formData.shipping_price"; | ||
| 1609 | - th.setData({ [wl_txt]: 0, }) | ||
| 1610 | - } | ||
| 1611 | - } | ||
| 1612 | - //-----------------支付价,优惠券不减物流----------------- | ||
| 1613 | - var total_m = (parseFloat(allpice1)).toFixed(2); | ||
| 1614 | - var order_m = (parseFloat(allpice-cut_price)-quan_price).toFixed(2); | ||
| 1615 | - var coupon_price=quan_price; //优惠券优惠了多少钱 | ||
| 1616 | - if(order_m<0) { | ||
| 1617 | - order_m=0;coupon_price=parseFloat(order_m).toFixed(2); | ||
| 1618 | - } | ||
| 1619 | - //--看一下有没有订单优惠-- | ||
| 1620 | - var o_condition=parseFloat(order_m); | ||
| 1621 | - if(o_condition>0){ | ||
| 1622 | - th.check_is_order_prom(o_condition,function () { | ||
| 1623 | - var order_prom_amount=0; var order_prom_id=0; | ||
| 1624 | - if(th.data.order_prom[th.data.bn_pick]){ | ||
| 1625 | - var ord_prom=th.data.order_prom[th.data.bn_pick]; | ||
| 1626 | - order_prom_id = ord_prom['id']; | ||
| 1627 | - switch (ord_prom['type']) { | ||
| 1628 | - case 0: | ||
| 1629 | - order_m = Math.round(o_condition * ord_prom['expression'])/100;//满额打折 | ||
| 1630 | - order_prom_amount=(o_condition -order_m).toFixed(2); | ||
| 1631 | - break; | ||
| 1632 | - case 1: | ||
| 1633 | - order_m = o_condition - ord_prom['expression'];//满额优惠金额 | ||
| 1634 | - order_prom_amount= ord_prom['expression']; | ||
| 1635 | - break; | ||
| 1636 | - } | ||
| 1637 | - } | ||
| 1638 | - //--订单优惠的显示-- | ||
| 1639 | - if(order_prom_id>0){ | ||
| 1640 | - var order_prom_txt1="formData.order_prom_id"; | ||
| 1641 | - var order_prom_txt2="formData.order_prom_amount"; | ||
| 1642 | - th.setData({ [order_prom_txt1]: order_prom_id,[order_prom_txt2]: order_prom_amount}) | ||
| 1643 | - } | ||
| 1644 | - | ||
| 1645 | - total_m= parseFloat( total_m)+ parseFloat( th.data.formData.shipping_price); | ||
| 1646 | - order_m = parseFloat(order_m)+ parseFloat( th.data.formData.shipping_price); | ||
| 1647 | - | ||
| 1648 | - total_m=total_m.toFixed(2); | ||
| 1649 | - order_m=order_m.toFixed(2); | ||
| 1650 | - | ||
| 1651 | - var atxt= "formData.total_amount"; | ||
| 1652 | - th.setData({ [atxt]: total_m, }) | ||
| 1653 | - | ||
| 1654 | - var txt = "formData.user_money"; | ||
| 1655 | - var txt2 = "formData.order_amount"; | ||
| 1656 | - var txt3="formData.coupon_price"; | ||
| 1657 | - var amoney = parseFloat(th.data.userinfo.user_money - th.data.txmon - th.data.userinfo.frozen_money); | ||
| 1658 | - //--------------如果使用余额--------------------- | ||
| 1659 | - if (th.data.bn_use_money == 1) { | ||
| 1660 | - if (amoney> order_m) { | ||
| 1661 | - order_m = parseFloat(order_m).toFixed(2); | ||
| 1662 | - th.setData({ [txt]: order_m, [txt2]:0,[txt3]:coupon_price,show_submit:1 }) | ||
| 1663 | - }else{ | ||
| 1664 | - order_m =parseFloat(order_m) - parseFloat(amoney); | ||
| 1665 | - order_m = order_m.toFixed(2); | ||
| 1666 | - th.setData({ [txt]: amoney, [txt2]: order_m,[txt3]:coupon_price,show_submit:1 }) | ||
| 1667 | - } | ||
| 1668 | - }else{ | ||
| 1669 | - th.setData({ [txt]: 0, [txt2]: order_m,[txt3]:coupon_price,show_submit:1}) | ||
| 1670 | - } | ||
| 1671 | - //优惠活动送积分 | ||
| 1672 | - if(good.s_intValue){ | ||
| 1673 | - txt = "formData.give_integral"; | ||
| 1674 | - th.setData({ [txt]:good.s_intValue }); | ||
| 1675 | - } | ||
| 1676 | - //优惠送券 | ||
| 1677 | - if(good.s_coupon_id){ | ||
| 1678 | - var i_txt = "formData.give_coupon_id"; | ||
| 1679 | - //这个是json格式的 | ||
| 1680 | - var i_txt1 = "formData.g_coupon_num"; | ||
| 1681 | - var ob=[{"num":good.s_coupon_num,"c_id":good.s_coupon_id}]; | ||
| 1682 | - ob=JSON.stringify(ob); | ||
| 1683 | - th.setData({ [i_txt]:good.s_coupon_id,[i_txt1]:ob }); | ||
| 1684 | - } | ||
| 1685 | - //优惠礼包 | ||
| 1686 | - if(good.s_libao){ | ||
| 1687 | - var l_txt = "formData.give_lb_id"; | ||
| 1688 | - //这个是json格式的 | ||
| 1689 | - var l_txt1 = "formData.g_lb_num"; | ||
| 1690 | - var ob=[{"num":good.s_lb_num,"l_id":good.s_libao}]; | ||
| 1691 | - ob=JSON.stringify(ob); | ||
| 1692 | - th.setData({ [l_txt]:good.s_libao,[l_txt1]:ob }); | ||
| 1693 | - } | ||
| 1694 | - }) | ||
| 1695 | - }else{ | ||
| 1696 | - total_m= parseFloat( total_m)+ parseFloat( th.data.formData.shipping_price); | ||
| 1697 | - order_m = parseFloat(order_m)+ parseFloat( th.data.formData.shipping_price); | ||
| 1698 | - var atxt= "formData.total_amount"; | ||
| 1699 | - | ||
| 1700 | - total_m=total_m.toFixed(2); | ||
| 1701 | - order_m=order_m.toFixed(2); | ||
| 1702 | - | ||
| 1703 | - th.setData({ [atxt]: total_m, }) | ||
| 1704 | - | ||
| 1705 | - var txt = "formData.user_money"; | ||
| 1706 | - var txt2 = "formData.order_amount"; | ||
| 1707 | - var txt3="formData.coupon_price"; | ||
| 1708 | - var amoney = parseFloat(th.data.userinfo.user_money - th.data.txmon - th.data.userinfo.frozen_money); | ||
| 1709 | - //--------------如果使用余额--------------------- | ||
| 1710 | - if (th.data.bn_use_money == 1) { | ||
| 1711 | - if (amoney> order_m) { | ||
| 1712 | - order_m = parseFloat(order_m).toFixed(2); | ||
| 1713 | - th.setData({ [txt]: order_m, [txt2]:0,[txt3]:coupon_price,show_submit:1 }) | ||
| 1714 | - }else{ | ||
| 1715 | - order_m =parseFloat(order_m) - parseFloat(amoney); | ||
| 1716 | - order_m = order_m.toFixed(2); | ||
| 1717 | - th.setData({ [txt]: amoney, [txt2]: order_m,[txt3]:coupon_price,show_submit:1 }) | ||
| 1718 | - } | ||
| 1719 | - }else{ | ||
| 1720 | - th.setData({ [txt]: 0, [txt2]: order_m,[txt3]:coupon_price, show_submit:1 }) | ||
| 1721 | - } | ||
| 1722 | - //优惠活动送积分 | ||
| 1723 | - if(good.s_intValue){ | ||
| 1724 | - txt = "formData.give_integral"; | ||
| 1725 | - th.setData({ [txt]:good.s_intValue }); | ||
| 1726 | - } | ||
| 1727 | - //优惠送券 | ||
| 1728 | - if(good.s_coupon_id){ | ||
| 1729 | - var i_txt = "formData.give_coupon_id"; | ||
| 1730 | - //这个是json格式的 | ||
| 1731 | - var i_txt1 = "formData.g_coupon_num"; | ||
| 1732 | - var ob=[{"num":good.s_coupon_num,"c_id":good.s_coupon_id}]; | ||
| 1733 | - ob=JSON.stringify(ob); | ||
| 1734 | - th.setData({ [i_txt]:good.s_coupon_id,[i_txt1]:ob }); | ||
| 1735 | - } | ||
| 1736 | - //优惠礼包 | ||
| 1737 | - if(good.s_libao){ | ||
| 1738 | - var l_txt = "formData.give_lb_id"; | ||
| 1739 | - //这个是json格式的 | ||
| 1740 | - var l_txt1 = "formData.g_lb_num"; | ||
| 1741 | - var ob=[{"num":good.s_lb_num,"l_id":good.s_libao}]; | ||
| 1742 | - ob=JSON.stringify(ob); | ||
| 1743 | - th.setData({ [l_txt]:good.s_coupon_id,[l_txt1]:ob }); | ||
| 1744 | - } | ||
| 1745 | - } | ||
| 1746 | - | ||
| 1747 | - wx.hideLoading(); | ||
| 1748 | - | ||
| 1749 | - }); | ||
| 1750 | - }); | ||
| 1751 | - }, | ||
| 1752 | - | ||
| 1753 | - //--------------------提交订单----------------------- | ||
| 1754 | - async submitForm(t){ | ||
| 1755 | - var sub_value=t; | ||
| 1756 | - | ||
| 1757 | - if(this.data.is_summit_ing==1) return false; //--提交中退出-- | ||
| 1758 | - this.data.is_summit_ing=1; | ||
| 1759 | - var th=this,pdata=new Array(); | ||
| 1760 | - var ff=true; | ||
| 1761 | - //------------立即购买------------- | ||
| 1762 | - if (th.data.is_b_now==1 && th.data.bn_goods.prom_type!=5){ | ||
| 1763 | - | ||
| 1764 | - if(th.data.bn_exp_type == 0 && th.data.user_addr==null ){ | ||
| 1765 | - ff = false; getApp().my_warnning("请选择收货地址",0,th); | ||
| 1766 | - th.data.is_summit_ing = 0; | ||
| 1767 | - } | ||
| 1768 | - if (!ff) return false; | ||
| 1769 | - var addr = th.data.user_addr; | ||
| 1770 | - if (th.data.bn_exp_type == 1) addr=null; | ||
| 1771 | - | ||
| 1772 | - if(th.data.bn_exp_type==0) | ||
| 1773 | - if(th.data.wu_arr==null || th.data.wu_arr.length<=0){ | ||
| 1774 | - getApp().my_warnning("读取物流失败",0,th); | ||
| 1775 | - th.data.is_summit_ing = 0; | ||
| 1776 | - return false; | ||
| 1777 | - } | ||
| 1778 | - | ||
| 1779 | - var item={ | ||
| 1780 | - 'user_id': to.globalData.user_id, | ||
| 1781 | - 'consignee': addr == null ? "" : addr.consignee, | ||
| 1782 | - 'province': addr == null ? 0 : addr.province, | ||
| 1783 | - 'city': addr == null ? 0 : addr.city, | ||
| 1784 | - 'district': addr == null ? 0 : addr.district, | ||
| 1785 | - 'twon': addr == null ? 0 : addr.twon, | ||
| 1786 | - 'address': addr == null ? "": addr.address, | ||
| 1787 | - 'more_address': addr == null ? "" : addr.more_address, | ||
| 1788 | - //'mobile': th.data.userinfo.mobile, | ||
| 1789 | - 'mobile': addr == null ? th.data.userinfo.mobile : addr.mobile, | ||
| 1790 | - 'email':'', | ||
| 1791 | - 'shipping_code': th.data.bn_exp_type == 1 ? 0 : th.data.wu_arr[th.data.index].code, | ||
| 1792 | - 'shipping_name': th.data.bn_exp_type == 1 ? '' : th.data.wu_arr[th.data.index].name, | ||
| 1793 | - 'invoice_title':'', | ||
| 1794 | - 'goods_price': th.data.formData.all_price, //商品总价 | ||
| 1795 | - 'shipping_price': th.data.formData.shipping_price, //物流金额 | ||
| 1796 | - 'user_money': th.data.formData.user_money, //使用余额 | ||
| 1797 | - 'total_amount': th.data.formData.total_amount, //订单总价 | ||
| 1798 | - 'order_amount': th.data.formData.order_amount, //应付 | ||
| 1799 | - 'user_note': t.detail.value.user_note, //用户备注 | ||
| 1800 | - 'store_id':oo.stoid, //商家 | ||
| 1801 | - 'pickup_id': th.data.bn_pick, //门店 | ||
| 1802 | - 'exp_type': th.data.bn_exp_type, //配送方式 | ||
| 1803 | - 'order_goods':new Array(), | ||
| 1804 | - }; | ||
| 1805 | - //是不是重新提交 | ||
| 1806 | - if(th.data.is_continue==1) item.is_continue=1; | ||
| 1807 | - | ||
| 1808 | - //获取立即购买的商品的信息 | ||
| 1809 | - var gg = to.get_b_now(); | ||
| 1810 | - //--商品的房间号-- | ||
| 1811 | - if(gg.room_id && gg.room_id>0){ | ||
| 1812 | - item.room_ids=gg.room_id; | ||
| 1813 | - } | ||
| 1814 | - | ||
| 1815 | - var order_prom_list={}; | ||
| 1816 | - //--判断有没有优惠活动-- | ||
| 1817 | - if(th.data.order_prom[item.pickup_id]){ | ||
| 1818 | - if(th.data.formData.order_prom_amount>0){ | ||
| 1819 | - order_prom_list.order_prom_id=th.data.formData.order_prom_id; | ||
| 1820 | - order_prom_list.order_prom_amount=th.data.formData.order_prom_amount; | ||
| 1821 | - } | ||
| 1822 | - } | ||
| 1823 | - | ||
| 1824 | - //--判断优惠活动的提交-- | ||
| 1825 | - if(th.data.formData.cut_price>0){ | ||
| 1826 | - order_prom_list.discount_amount=th.data.formData.cut_price.toFixed(2); | ||
| 1827 | - var ob=[{"prom_id":th.data.bn_goods.prom_id,"dis":th.data.formData.cut_price.toFixed(2),"ispt":0}] | ||
| 1828 | - order_prom_list.prom_pt_json=JSON.stringify(ob); | ||
| 1829 | - } | ||
| 1830 | - if(th.data.formData.give_integral>0){ | ||
| 1831 | - order_prom_list.give_integral=th.data.formData.give_integral; | ||
| 1832 | - } | ||
| 1833 | - if(th.data.formData.give_coupon_id>0){ | ||
| 1834 | - order_prom_list.give_coupon_id=th.data.formData.give_coupon_id; | ||
| 1835 | - order_prom_list.g_coupon_num=th.data.formData.g_coupon_num; | ||
| 1836 | - } | ||
| 1837 | - if(th.data.formData.give_lb_id>0){ | ||
| 1838 | - order_prom_list.give_lb_id=th.data.formData.give_lb_id; | ||
| 1839 | - order_prom_list.g_lb_num=th.data.formData.g_lb_num; | ||
| 1840 | - } | ||
| 1841 | - item.order_prom_list=order_prom_list; | ||
| 1842 | - | ||
| 1843 | - //组装优惠券的钱 | ||
| 1844 | - if(parseFloat(th.data.formData.coupon_price)>0){ | ||
| 1845 | - item.coupon_price=th.data.formData.coupon_price; | ||
| 1846 | - item.coupon_no=th.data.using_quan[th.data.bn_pick].coupon_no; | ||
| 1847 | - } | ||
| 1848 | - 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){ | ||
| 1849 | - item.coupon_no=th.data.using_quan[th.data.bn_pick].coupon_no; | ||
| 1850 | - item.coupon_price=0; | ||
| 1851 | - } | ||
| 1852 | - | ||
| 1853 | - //老会员成为分销下线需要的参数 | ||
| 1854 | - if(getApp().globalData.first_leader && !getApp().globalData.userInfo.first_leader){ | ||
| 1855 | - //判断一下分享人是不是分享商 | ||
| 1856 | - await app.request.promiseGet("/api/weshop/users/get/" + os.stoid+"/"+getApp().globalData.first_leader,{}).then(res=>{ | ||
| 1857 | - if(res.data.code==0){ | ||
| 1858 | - var user= res.data.data; | ||
| 1859 | - if(user.is_distribut==1){ | ||
| 1860 | - item.first_leader=parseInt(getApp().globalData.first_leader); | ||
| 1861 | - } | ||
| 1862 | - } | ||
| 1863 | - }) | ||
| 1864 | - } | ||
| 1865 | - | ||
| 1866 | - var goods={ | ||
| 1867 | - 'goods_id': gg.goods_id, | ||
| 1868 | - 'goods_name': gg.goods_name, | ||
| 1869 | - 'goods_sn': gg.goods_sn, | ||
| 1870 | - 'goods_num': gg.goods_num, | ||
| 1871 | - 'market_price': th.data.bn_goods.market_price, | ||
| 1872 | - 'goods_price': th.data.bn_goods.shop_price, | ||
| 1873 | - 'member_goods_price': th.data.bn_goods.shop_price, | ||
| 1874 | - 'store_id': oo.stoid, | ||
| 1875 | - 'prom_type':th.data.bn_goods.prom_type, //促销活动类型 | ||
| 1876 | - 'prom_id': th.data.bn_goods.prom_id, //促销活动id | ||
| 1877 | - }; | ||
| 1878 | - | ||
| 1879 | - //-- 把导购的信息填入-- | ||
| 1880 | - if(gg.guide_id){ | ||
| 1881 | - goods.guide_id=gg.guide_id; | ||
| 1882 | - goods.guide_type=gg.guide_type; | ||
| 1883 | - //调用接口判断是不是会员 | ||
| 1884 | - await getApp().request.promiseGet("/api/weshop/shoppingGuide/getId/"+oo.stoid+"/"+gg.guide_id,{}).then(res=>{ | ||
| 1885 | - if(res.data.code==0){ | ||
| 1886 | - goods.guide_name=res.data.data.salesman; | ||
| 1887 | - goods.guide_sn=res.data.data.salesman_no; | ||
| 1888 | - } | ||
| 1889 | - }) | ||
| 1890 | - } | ||
| 1891 | - | ||
| 1892 | - //--商品的房间号-- | ||
| 1893 | - if(gg.room_id && gg.room_id>0){ | ||
| 1894 | - goods.room_id=gg.room_id; | ||
| 1895 | - } | ||
| 1896 | - | ||
| 1897 | - //积分购,先要带is_integral_normal=1 | ||
| 1898 | - if(gg.is_integral_normal) goods.is_integral_normal=1; | ||
| 1899 | - | ||
| 1900 | - //先要带is_pd_normal=1 | ||
| 1901 | - if(gg.is_pd_normal) goods.is_pd_normal=1; | ||
| 1902 | - | ||
| 1903 | - //如果不立即购买或者秒杀,如果是线下库存购买的时候 | ||
| 1904 | - if(goods.prom_type!=1 && goods.prom_type!=6 && th.data.sales_rules==2){ | ||
| 1905 | - var isok=1; | ||
| 1906 | - await th.check_store_num(goods.goods_id,th.data.bn_pick, gg.goods_num,function(res){ | ||
| 1907 | - isok=res; | ||
| 1908 | - }); | ||
| 1909 | - if(!isok){ | ||
| 1910 | - getApp().confirmBox("商品的门店库存不足"); | ||
| 1911 | - th.data.is_summit_ing=0; | ||
| 1912 | - return false; | ||
| 1913 | - } | ||
| 1914 | - } | ||
| 1915 | - | ||
| 1916 | - //-- 如果有线下取价的话 -- | ||
| 1917 | - if(th.data.bn_goods.is_offline){ | ||
| 1918 | - item.sum_offline_cut= (th.data.bn_goods.shop_price- th.data.bn_goods.offline_price).toFixed(2); | ||
| 1919 | - goods.offline_cut=item.sum_offline_cut; | ||
| 1920 | - goods.pricing_type=th.data.bn_goods.pricing_type; | ||
| 1921 | - goods.goods_price=th.data.bn_goods.offline_price; | ||
| 1922 | - goods.member_goods_price=th.data.bn_goods.offline_price; | ||
| 1923 | - } | ||
| 1924 | - | ||
| 1925 | - //--- 如果有优惠促销的金额,要把金额先平摊下去 --- | ||
| 1926 | - if(th.data.formData.cut_price>0 && !th.data.ispt_goods){ | ||
| 1927 | - var g_arr=new Array(); | ||
| 1928 | - g_arr.push(goods); | ||
| 1929 | - var pt_data={ | ||
| 1930 | - 'prom_id':goods.prom_id, | ||
| 1931 | - 'dis': parseFloat(th.data.formData.cut_price), | ||
| 1932 | - 'goods':g_arr, | ||
| 1933 | - } | ||
| 1934 | - | ||
| 1935 | - var pt_res=null; | ||
| 1936 | - await getApp().request.promisePost("/api/weshop/order/getGoodsSplit",{is_json:1,data:pt_data}).then(res=>{ | ||
| 1937 | - if(res.data.code==0){ pt_res=res.data.data; } | ||
| 1938 | - }) | ||
| 1939 | - if(pt_res){ | ||
| 1940 | - //平摊赋值 | ||
| 1941 | - goods.account=pt_res[0].fisrt_account; | ||
| 1942 | - goods.account_yu=pt_res[0].fisrt_account_yu; | ||
| 1943 | - item.is_discount_amount=1; | ||
| 1944 | - } | ||
| 1945 | - } | ||
| 1946 | - | ||
| 1947 | - //--组装优惠券的钱-- | ||
| 1948 | - if(th.data.formData.coupon_price){ | ||
| 1949 | - item.coupon_price=th.data.formData.coupon_price; | ||
| 1950 | - item.coupon_no=th.data.using_quan[th.data.bn_pick].coupon_no; | ||
| 1951 | - goods.quan_num=th.data.formData.coupon_price; | ||
| 1952 | - goods.quan_no= item.coupon_no; | ||
| 1953 | - } | ||
| 1954 | - | ||
| 1955 | - item.order_goods.push(goods); | ||
| 1956 | - | ||
| 1957 | - //--如果有赠品的时候,赠品也要提交--- | ||
| 1958 | - if(th.data.buy_now_gift_goods){ | ||
| 1959 | - var gift_gg=th.data.buy_now_gift_goods; | ||
| 1960 | - var g_goods={ | ||
| 1961 | - 'goods_id': gift_gg.goods_id, | ||
| 1962 | - 'goods_name': gift_gg.goods_name, | ||
| 1963 | - 'goods_sn': gift_gg.goods_sn, | ||
| 1964 | - 'goods_num': gift_gg.buynum, | ||
| 1965 | - 'market_price': gift_gg.market_price, | ||
| 1966 | - 'goods_price': 0, | ||
| 1967 | - 'member_goods_price': 0, | ||
| 1968 | - 'store_id': oo.stoid, | ||
| 1969 | - 'is_gift':1, | ||
| 1970 | - 'gift_id':gift_gg.gift_id, | ||
| 1971 | - 'prom_id':gift_gg.prom_id, | ||
| 1972 | - }; | ||
| 1973 | - item.order_goods.push(g_goods); | ||
| 1974 | - } | ||
| 1975 | - pdata.push(item); | ||
| 1976 | - | ||
| 1977 | - console.log(pdata); | ||
| 1978 | - }else{ | ||
| 1979 | - //---------购物车的结算--------- | ||
| 1980 | - if (th.data.is_all_zt == 0 && th.data.user_addr == null) { | ||
| 1981 | - th.data.is_summit_ing = 0; | ||
| 1982 | - ff = false; getApp().confirmBox("请新建收货地址");} | ||
| 1983 | - if (!ff) return false; | ||
| 1984 | - | ||
| 1985 | - var addr = th.data.user_addr; | ||
| 1986 | - if (th.data.is_all_zt == 1) addr = null; | ||
| 1987 | - var val_arr= t.detail.value; | ||
| 1988 | - | ||
| 1989 | - | ||
| 1990 | - if(th.data.is_all_zt !=1) | ||
| 1991 | - if(th.data.wu_arr==null || th.data.wu_arr.length<=0 ){ | ||
| 1992 | - th.data.is_summit_ing = 0; | ||
| 1993 | - getApp().confirmBox("读取物流失败"); | ||
| 1994 | - return false; | ||
| 1995 | - } | ||
| 1996 | - | ||
| 1997 | - var order_prom_list_cart=th.data.order_prom_list_cart; | ||
| 1998 | - | ||
| 1999 | - //--组装推送数据-- | ||
| 2000 | - for (var i = 0; i < order_prom_list_cart.length;i++){ | ||
| 2001 | - var t_item = order_prom_list_cart[i]; | ||
| 2002 | - var item = { | ||
| 2003 | - 'user_id': to.globalData.user_id, | ||
| 2004 | - 'consignee': addr == null ? th.data.userinfo.mobile : addr.consignee, | ||
| 2005 | - 'province': addr == null ? 0 : addr.province, | ||
| 2006 | - 'city': addr == null ? 0 : addr.city, | ||
| 2007 | - 'district': addr == null ? 0 : addr.district, | ||
| 2008 | - 'twon': addr == null ? 0 : addr.twon, | ||
| 2009 | - 'address': addr == null ? "" : addr.address, | ||
| 2010 | - 'more_address': addr == null ? "" : addr.more_address, | ||
| 2011 | - 'mobile': addr == null ? th.data.userinfo.mobile : addr.mobile, | ||
| 2012 | - 'email': '', | ||
| 2013 | - 'shipping_code': th.data.is_all_zt == 1 ? 0 : th.data.wu_arr[t_item.wind].code, | ||
| 2014 | - 'shipping_name': th.data.is_all_zt == 1 ? '' : th.data.wu_arr[t_item.wind].name, | ||
| 2015 | - 'invoice_title': '', | ||
| 2016 | - 'goods_price': t_item.goods_price, //商品总价 | ||
| 2017 | - 'shipping_price': t_item.shipping_price, //物流金额 | ||
| 2018 | - 'user_money': t_item.user_money, //使用余额 | ||
| 2019 | - 'total_amount': t_item.total_amount, //订单总价 | ||
| 2020 | - 'order_amount': t_item.order_amount, //应付 | ||
| 2021 | - 'user_note': val_arr['user_note_' + t_item.pickup_id], //用户备注 | ||
| 2022 | - 'store_id': oo.stoid, //商家 | ||
| 2023 | - 'pickup_id': t_item.pickup_id, //门店 | ||
| 2024 | - 'exp_type': t_item.exp_type, //配送方式 | ||
| 2025 | - 'order_goods': new Array(), | ||
| 2026 | - }; | ||
| 2027 | - //是不是重新提交 | ||
| 2028 | - if(th.data.is_continue==1) item.is_continue=1; | ||
| 2029 | - //----- 如果有线下取价的话 ---- | ||
| 2030 | - if(t_item.is_offline==1){ | ||
| 2031 | - item.sum_offline_cut=t_item.offline_price.toFixed(2); | ||
| 2032 | - } | ||
| 2033 | - | ||
| 2034 | - //组装优惠券的钱 | ||
| 2035 | - if(t_item.coupon_price) { | ||
| 2036 | - item.coupon_price = t_item.coupon_price; | ||
| 2037 | - item.coupon_no = th.data.using_quan[t_item.pickup_id].coupon_no; | ||
| 2038 | - }else if(t_item.quan_no) { | ||
| 2039 | - item.coupon_no = t_item.quan_no; | ||
| 2040 | - item.coupon_price = 0; | ||
| 2041 | - } | ||
| 2042 | - | ||
| 2043 | - var order_prom_list={}; | ||
| 2044 | - //--判断有没有优惠活动-- | ||
| 2045 | - if(t_item.order_prom_amount>0){ | ||
| 2046 | - order_prom_list.order_prom_id=t_item.order_prom_id; | ||
| 2047 | - order_prom_list.order_prom_amount=t_item.order_prom_amount; | ||
| 2048 | - } | ||
| 2049 | - //--判断优惠活动的提交-- | ||
| 2050 | - if(t_item.cut_price>0){ | ||
| 2051 | - order_prom_list.discount_amount=t_item.cut_price.toFixed(2); | ||
| 2052 | - order_prom_list.prom_pt_json=JSON.stringify(t_item.prom_pt_json); | ||
| 2053 | - } | ||
| 2054 | - if(t_item.s_intValue>0){ | ||
| 2055 | - order_prom_list.give_integral=t_item.s_intValue; | ||
| 2056 | - } | ||
| 2057 | - if(t_item.s_coupon_id){ | ||
| 2058 | - order_prom_list.give_coupon_id=t_item.s_coupon_id; | ||
| 2059 | - order_prom_list.g_coupon_num= JSON.stringify(t_item.g_coupon_num); | ||
| 2060 | - } | ||
| 2061 | - if(t_item.s_libao){ | ||
| 2062 | - order_prom_list.give_lb_id=t_item.s_libao; | ||
| 2063 | - order_prom_list.g_lb_num=JSON.stringify(t_item.g_lb_num); | ||
| 2064 | - } | ||
| 2065 | - if(Object.keys(order_prom_list).length>0) | ||
| 2066 | - item.order_prom_list=order_prom_list; | ||
| 2067 | - | ||
| 2068 | - //老会员成为分销下线需要的参数 | ||
| 2069 | - if(getApp().globalData.first_leader && !getApp().globalData.userInfo.first_leader){ | ||
| 2070 | - //判断一下分享人是不是分享商 | ||
| 2071 | - await app.request.promiseGet("/api/weshop/users/get/" + os.stoid+"/"+getApp().globalData.first_leader,{}).then(res=>{ | ||
| 2072 | - if(res.data.code==0){ | ||
| 2073 | - var user= res.data.data; | ||
| 2074 | - if(user.is_distribut==1){ | ||
| 2075 | - item.first_leader=parseInt(getApp().globalData.first_leader); | ||
| 2076 | - } | ||
| 2077 | - } | ||
| 2078 | - }) | ||
| 2079 | - } | ||
| 2080 | - | ||
| 2081 | - | ||
| 2082 | - //房间号的ids | ||
| 2083 | - var room_ids=""; | ||
| 2084 | - //-------------让商品添加到商品列表-------------------- | ||
| 2085 | - for (var k = 0; k < t_item.goods.length;k++){ | ||
| 2086 | - var g_item = t_item.goods[k]; | ||
| 2087 | - var goods = { | ||
| 2088 | - 'goods_id': g_item.goods_id, | ||
| 2089 | - 'goods_name': g_item.goods_name, | ||
| 2090 | - 'goods_sn': g_item.goods_sn, | ||
| 2091 | - 'goods_num': g_item.goods_num, | ||
| 2092 | - 'market_price': g_item.market_price, | ||
| 2093 | - 'goods_price': g_item.goods_price, | ||
| 2094 | - 'member_goods_price': g_item.goods_price, | ||
| 2095 | - 'store_id': oo.stoid, | ||
| 2096 | - }; | ||
| 2097 | - | ||
| 2098 | - //-- 线下取价也要写入 -- | ||
| 2099 | - if(g_item.offline_price && t_item.is_offline==1){ | ||
| 2100 | - goods.goods_price=g_item.offline_price; | ||
| 2101 | - goods.member_goods_price=g_item.offline_price; | ||
| 2102 | - goods.offline_cut=(g_item.goods_price-g_item.offline_price).toFixed(2); | ||
| 2103 | - goods.pricing_type=g_item.pricing_type; | ||
| 2104 | - } | ||
| 2105 | - | ||
| 2106 | - //--把券的钱,写入从表--- | ||
| 2107 | - if(t_item.quan_youhui_list && t_item.coupon_price ){ | ||
| 2108 | - for(var kk in t_item.quan_youhui_list ){ | ||
| 2109 | - var you_item=t_item.quan_youhui_list[kk]; | ||
| 2110 | - if(g_item.erpwareid==you_item.WareId){ | ||
| 2111 | - goods.quan_num=you_item.WareCashSum; | ||
| 2112 | - goods.quan_no=you_item.CashRepNo; | ||
| 2113 | - } | ||
| 2114 | - } | ||
| 2115 | - } | ||
| 2116 | - | ||
| 2117 | - //--判断活动的类型-- | ||
| 2118 | - switch (g_item.prom_type) { | ||
| 2119 | - case 1: | ||
| 2120 | - goods.prom_type = g_item.prom_type; | ||
| 2121 | - goods.prom_id = g_item.prom_id; | ||
| 2122 | - break; | ||
| 2123 | - case 3: | ||
| 2124 | - goods.prom_type=3; | ||
| 2125 | - goods.prom_id=g_item.prom_id; | ||
| 2126 | - if(g_item.is_gift){ | ||
| 2127 | - goods.is_gift=g_item.is_gift; | ||
| 2128 | - goods.gift_id=g_item.gift_id; | ||
| 2129 | - } | ||
| 2130 | - break; | ||
| 2131 | - case 5: | ||
| 2132 | - goods.prom_type=5; | ||
| 2133 | - goods.prom_id=g_item.prom_id; | ||
| 2134 | - if(g_item.is_collocation){ | ||
| 2135 | - goods.is_collocation=g_item.is_collocation; | ||
| 2136 | - } | ||
| 2137 | - break | ||
| 2138 | - default: | ||
| 2139 | - goods.prom_type = 0;goods.prom_id =0; | ||
| 2140 | - } | ||
| 2141 | - | ||
| 2142 | - //如果不立即购买或者秒杀,如果是线下库存购买的时候 | ||
| 2143 | - if(goods.prom_type==0 && th.data.sales_rules==2){ | ||
| 2144 | - var isok=1; | ||
| 2145 | - await th.check_store_num(goods.goods_id, t_item.pickup_id,goods.goods_num,function(res){ | ||
| 2146 | - isok=res; | ||
| 2147 | - }); | ||
| 2148 | - if(!isok){ | ||
| 2149 | - getApp().confirmBox( goods.goods_name+"的门店库存不足"); | ||
| 2150 | - th.data.is_summit_ing=0; | ||
| 2151 | - return false; | ||
| 2152 | - } | ||
| 2153 | - } | ||
| 2154 | - | ||
| 2155 | - //把优惠的平摊结果写进去 | ||
| 2156 | - if(g_item.account>=0 || g_item.account_yu!=0){ | ||
| 2157 | - if(g_item.account>=0) goods.account=g_item.account; | ||
| 2158 | - if(g_item.account_yu!=0) goods.account_yu=g_item.account_yu; | ||
| 2159 | - item.is_discount_amount=1; | ||
| 2160 | - } | ||
| 2161 | - | ||
| 2162 | - //导购ID | ||
| 2163 | - if(g_item.guide_id){ | ||
| 2164 | - goods.guide_id=g_item.guide_id; | ||
| 2165 | - goods.guide_type=g_item.guide_type; | ||
| 2166 | - //调用接口判断是不是会员 | ||
| 2167 | - await getApp().request.promiseGet("/api/weshop/shoppingGuide/getId/"+oo.stoid+"/"+g_item.guide_id,{}).then(res=>{ | ||
| 2168 | - if(res.data.code==0){ | ||
| 2169 | - goods.guide_name=res.data.data.salesman; | ||
| 2170 | - goods.guide_sn=res.data.data.salesman_no; | ||
| 2171 | - } | ||
| 2172 | - }) | ||
| 2173 | - } | ||
| 2174 | - //如果房间号不为空的时候 | ||
| 2175 | - if(g_item.room_id){ | ||
| 2176 | - goods.room_id=g_item.room_id; | ||
| 2177 | - room_ids+=g_item.room_id+","; | ||
| 2178 | - } | ||
| 2179 | - item.order_goods.push(goods); | ||
| 2180 | - } | ||
| 2181 | - | ||
| 2182 | - //如果房间号不为空的时候 | ||
| 2183 | - if(room_ids!="") item.room_ids= ut.sub_last(room_ids); | ||
| 2184 | - pdata.push(item); | ||
| 2185 | - } | ||
| 2186 | - | ||
| 2187 | - | ||
| 2188 | - } | ||
| 2189 | - | ||
| 2190 | - if (pdata.length==0) return; | ||
| 2191 | - var str = JSON.stringify(pdata); | ||
| 2192 | - | ||
| 2193 | - wx.showLoading({title: "加载中"}); | ||
| 2194 | - wx.request({ | ||
| 2195 | - url: oo.url + '/api/weshop/order/createWxdOrder', | ||
| 2196 | - data: str, | ||
| 2197 | - method: 'POST', | ||
| 2198 | - header: { | ||
| 2199 | - 'content-type': 'application/json' | ||
| 2200 | - },// 设置请求的 header | ||
| 2201 | - success: function (res) { | ||
| 2202 | - | ||
| 2203 | - | ||
| 2204 | - wx.hideLoading(); | ||
| 2205 | - if (res.statusCode == 200) { | ||
| 2206 | - var data=res.data; | ||
| 2207 | - if(data.code==0){ | ||
| 2208 | - console.log(th.data.is_b_now); | ||
| 2209 | - //如果是购物车结算,还要删除购物车 | ||
| 2210 | - if (th.data.is_b_now == 0) { | ||
| 2211 | - console.log(th.data.cartlist_y); | ||
| 2212 | - var list = th.data.cartlist_y; | ||
| 2213 | - for (var i = 0; i < list.length; i++) { | ||
| 2214 | - //删除购物车 | ||
| 2215 | - a.delete("/api/weshop/cart/del/" + oo.stoid + "/" + list[i].id, {}); | ||
| 2216 | - } | ||
| 2217 | - } | ||
| 2218 | - var order_amount = 0; | ||
| 2219 | - pdata.forEach(function (em, ind) { | ||
| 2220 | - order_amount += em.order_amount; | ||
| 2221 | - }) | ||
| 2222 | - //要进行判断,如果是用微信支付,就要跳转到支付界面 | ||
| 2223 | - if (order_amount > 0) { | ||
| 2224 | - th.setData({ isclose: 0 }); | ||
| 2225 | - //void e.jumpToCart4({ | ||
| 2226 | - // order_sn: data.data, | ||
| 2227 | - //}, 1); | ||
| 2228 | - util_pay.pay(data.data, function() { | ||
| 2229 | - //app.my_warnning("支付成功",1,th); | ||
| 2230 | - //setTimeout(function () { | ||
| 2231 | - wx.redirectTo({ | ||
| 2232 | - url: "/pages/payment/pay_success/pay_success?type=2&order_sn="+data.data | ||
| 2233 | - }) | ||
| 2234 | - //},1000) | ||
| 2235 | 2897 | ||
| 2236 | - }, function () { | ||
| 2237 | - //支付失败 | ||
| 2238 | - setTimeout(function () { | ||
| 2239 | - wx.navigateBack({ delta: 1 }) | ||
| 2240 | - },1000) | ||
| 2241 | - },oo.stoid); | 2898 | + if (item_price < parseFloat(quan_item.BuySum)) { |
| 2899 | + getApp().my_warnning("该单品金额没有大于等于" + quan_item.BuySum + "元时不能使用优惠券", 0, this, 600); | ||
| 2900 | + return false; | ||
| 2901 | + } | ||
| 2902 | + } | ||
| 2903 | + } | ||
| 2242 | 2904 | ||
| 2243 | - } else { | ||
| 2244 | - var dd = { | ||
| 2245 | - parent_sn: data.data, | ||
| 2246 | - store_id: oo.stoid, | ||
| 2247 | - type: 2, | ||
| 2248 | - }; | ||
| 2249 | - a.post("/api/weshop/order/pay/createOrder", { | ||
| 2250 | - data: dd, | ||
| 2251 | - success: function (t) { | ||
| 2252 | - //console.log(t); | ||
| 2253 | - if(t.data.code==0){ | ||
| 2254 | - //app.my_warnning("支付成功",1,th); | ||
| 2255 | - //setTimeout(function () { | ||
| 2256 | - th.setData({ isclose: 0 }); | ||
| 2257 | - wx.redirectTo({ | ||
| 2258 | - url: "/pages/payment/pay_success/pay_success?type=2&order_sn="+data.data, | ||
| 2259 | - }) | ||
| 2260 | - //}, 1000) | ||
| 2261 | - } | ||
| 2262 | - }, | ||
| 2263 | - fail:function () { | ||
| 2264 | - | ||
| 2265 | - } | ||
| 2266 | - }); | ||
| 2267 | - } | ||
| 2268 | - | ||
| 2269 | - } | ||
| 2270 | - else{ | ||
| 2271 | - //--内容换行-- | ||
| 2272 | - var msg=data.msg; | ||
| 2273 | - //赠品活动已经取消,无法赠送,是否继续买单? | ||
| 2274 | - if(msg.indexOf("是否继续买单")>0){ | ||
| 2275 | - wx.showModal({ | ||
| 2276 | - title:"提示", | ||
| 2277 | - content: data.msg, | ||
| 2278 | - cancelText:'取消', | ||
| 2279 | - confirmText:'确定', | ||
| 2280 | - showCancel: true, | ||
| 2281 | - success(res){ | ||
| 2282 | - if(res.cancel){ | ||
| 2283 | - return; | ||
| 2284 | - }else if(res.confirm){ | ||
| 2285 | - th.data.is_continue=1; | ||
| 2286 | - th.data.is_summit_ing=0; //是否提交中 | ||
| 2287 | - th.submitForm(sub_value); | ||
| 2288 | - } | ||
| 2289 | - } | ||
| 2290 | - }) | ||
| 2291 | - return; | ||
| 2292 | - } | ||
| 2293 | - if(msg.length>13){ | ||
| 2294 | - msg=msg.slice(0, 13) + "\r\n"+ msg.slice(13); | ||
| 2295 | - } | ||
| 2296 | - getApp().confirmBox(msg); | ||
| 2297 | - th.data.is_summit_ing=0; //是否提交中 | ||
| 2298 | - } | ||
| 2299 | - }else{ | ||
| 2300 | - th.data.is_summit_ing=0; //是否提交中 | ||
| 2301 | - console.log("index.js wx.request CheckCallUser statusCode" + res.statusCode); | ||
| 2302 | - } | ||
| 2303 | - }, | ||
| 2304 | - fail: function () { | ||
| 2305 | - th.data.is_summit_ing=0; | ||
| 2306 | - wx.hideLoading(); | ||
| 2307 | - console.log("index.js wx.request CheckCallUser fail"); | ||
| 2308 | - }, | ||
| 2309 | - complete: function () {} | ||
| 2310 | - }) | ||
| 2311 | - | ||
| 2312 | - }, | ||
| 2313 | - //---确认线下门店的数量足不足--- | ||
| 2314 | - async check_store_num(goods_id,pick,goods_num,func){ | ||
| 2315 | - var lock=0,pick_no,plist,erpwareid; | ||
| 2316 | - //先读取门店的lock | ||
| 2317 | - await getApp().request.promiseGet("/api/weshop/order/ware/lock/page",{ | ||
| 2318 | - data:{store_id:os.stoid,wareId:goods_id,storageId:pick,pageSize:1000} | ||
| 2319 | - }).then(res=>{ | ||
| 2320 | - if(res.data.code==0 && res.data.data.total>0){ | ||
| 2321 | - for(var i in res.data.data.pageData) | ||
| 2322 | - lock+=res.data.data.pageData[i].outQty; | ||
| 2323 | - } | ||
| 2324 | - }) | ||
| 2325 | - //先获取门店的编号 | ||
| 2326 | - await getApp().request.promiseGet("/api/weshop/pickup/get/"+os.stoid+"/"+pick,{ | ||
| 2327 | - data:{storeId:os.stoid,goodsId:t.goods_id,pickupId:pick} | ||
| 2328 | - }).then(res=>{ | ||
| 2329 | - if(res.data.code==0){ | ||
| 2330 | - pick_no=res.data.data.pickup_no; | ||
| 2331 | - } | ||
| 2332 | - }) | ||
| 2333 | - //先获取商品的线下库存 | ||
| 2334 | - await getApp().request.promiseGet("/api/weshop/goods/get/"+os.stoid+"/"+goods_id,{ | ||
| 2335 | - data:{storeId:os.stoid,goodsId:t.goods_id,pickupId:pick} | ||
| 2336 | - }).then(res=>{ | ||
| 2337 | - if(res.data.code==0){ | ||
| 2338 | - erpwareid=res.data.data.erpwareid; | ||
| 2339 | - } | ||
| 2340 | - }) | ||
| 2341 | - //读取线下的门店库存 | ||
| 2342 | - await getApp().request.promiseGet("/api/weshop/goods/getWareStorages",{ | ||
| 2343 | - data:{storageNos:pick_no,wareIds:encodeURIComponent(erpwareid),storeId:os.stoid,pageSize:2000} | ||
| 2344 | - }).then(res=>{ | ||
| 2345 | - if(res.data.code==0){ | ||
| 2346 | - plist=res.data.data.pageData[0]; | ||
| 2347 | - } | ||
| 2348 | - }) | ||
| 2349 | - var isok=1; | ||
| 2350 | - if(goods_num>plist.CanOutQty-lock){ | ||
| 2351 | - isok=0; | ||
| 2352 | - } | ||
| 2353 | - func(isok); | ||
| 2354 | - }, | ||
| 2355 | - | ||
| 2356 | - useCoupon: function() { | ||
| 2357 | - if (this.data.order.couponNum <= 0) { | ||
| 2358 | - getApp().my_warnning("无可用优惠券",0,this); | ||
| 2359 | - return; | ||
| 2360 | - } | ||
| 2361 | - | ||
| 2362 | - var a = { | ||
| 2363 | - lid: this.data.coupon ? this.data.coupon.id : "0" | ||
| 2364 | - }; | ||
| 2365 | - wx.navigateTo({ | ||
| 2366 | - url: "/pages/user/checkcoupon/checkcoupon?" + s.Obj2Str(a) | ||
| 2367 | - }); | ||
| 2368 | - }, | ||
| 2369 | - enterAddressPage: function() { | ||
| 2370 | - getApp().globalData.is_cart_old=1; | ||
| 2371 | - this.data.isget_by_quan={}; | ||
| 2372 | - this.data.enterAddressPage = !0, wx.navigateTo({ | ||
| 2373 | - url: "/pages/user/address_list/address_list" | ||
| 2374 | - }); | ||
| 2375 | - }, | ||
| 2376 | - | ||
| 2377 | - //--------购物车购买时,选择自提和物流----------- | ||
| 2378 | - setexptype_w:function(t){ | ||
| 2379 | - | ||
| 2380 | - var def_exp_code= getApp().globalData.userInfo.def_exp_code,th=this; | ||
| 2381 | - var ty = t.currentTarget.dataset.t, txt = t.currentTarget.dataset.txt, | ||
| 2382 | - wl_txt = t.currentTarget.dataset.wl_txt, | ||
| 2383 | - ont = t.currentTarget.dataset.ont; | ||
| 2384 | - | ||
| 2385 | - th.setData({ [txt]: ty }); | ||
| 2386 | - var iszt=1; | ||
| 2387 | - | ||
| 2388 | - if(ty==0){ | ||
| 2389 | - th.setData({ is_all_zt: 0 }); | ||
| 2390 | - }else{ | ||
| 2391 | - for(var i=0;i<th.data.cartlist.length;i++){ | ||
| 2392 | - var item = th.data.cartlist[i]; | ||
| 2393 | - if (item.exp_type==0){ iszt=0;break;} | ||
| 2394 | - } | ||
| 2395 | - | ||
| 2396 | - th.setData({ is_all_zt: iszt }); | ||
| 2397 | - | ||
| 2398 | - var ind=t.currentTarget.dataset.ind; | ||
| 2399 | - var c_item=th.data.cartlist[ind]; | ||
| 2400 | - var pickid=c_item.pickup_id; | ||
| 2401 | - | ||
| 2402 | - if(th.data.using_quan[pickid] && th.data.using_quan[pickid].isby==1){ | ||
| 2403 | - th.data.using_quan[pickid]={}; | ||
| 2404 | - th.setData({using_quan:th.data.using_quan}); | ||
| 2405 | - } | ||
| 2406 | - | ||
| 2407 | - | ||
| 2408 | - } | ||
| 2409 | - //判断有没有默认的物流地址值 | ||
| 2410 | - if (def_exp_code != "" && def_exp_code != null && def_exp_code !=undefined) { | ||
| 2411 | - var wu_arr=this.data.wu_arr; | ||
| 2412 | - if (wu_arr!= null && wu_arr!=""){ | ||
| 2413 | - for(var i=0;i<wu_arr.length;i++){ | ||
| 2414 | - if (wu_arr[i].shipping_code == def_exp_code){ | ||
| 2415 | - var set_txt="cartlist" | ||
| 2416 | - th.setData({wl_txt:i}); | ||
| 2417 | - } | ||
| 2418 | - } | ||
| 2419 | - } | ||
| 2420 | - } | ||
| 2421 | - //----计算此时购物车的价格---- | ||
| 2422 | - th.calculatePrice(); | ||
| 2423 | - }, | ||
| 2424 | - | ||
| 2425 | - //--------立即购买时,选择自提和物流---------- | ||
| 2426 | - setexptype:function(t){ | ||
| 2427 | - var th=this; | ||
| 2428 | - var ty = t.currentTarget.dataset.t,def_exp_code= getApp().globalData.userInfo.def_exp_code; | ||
| 2429 | - th.setData({ bn_exp_type:ty}); | ||
| 2430 | - if(ty==0){ | ||
| 2431 | - th.setData({ is_all_zt: 0 }); | ||
| 2432 | - } | ||
| 2433 | - | ||
| 2434 | - //当物流为空的时候。 | ||
| 2435 | - if (ty == 0 && th.data.wu_arr==null){ | ||
| 2436 | - th.data.isget_by_quan={}; | ||
| 2437 | - return th.get_wuliu(th.calculatePrice2()); | ||
| 2438 | - } | ||
| 2439 | - | ||
| 2440 | - //--自提就要把包邮券清理掉-- | ||
| 2441 | - if(ty==1){ | ||
| 2442 | - th.data.isget_by_quan={}; | ||
| 2443 | - if(th.data.using_quan[th.data.bn_pick] && th.data.using_quan[th.data.bn_pick].isby==1){ | ||
| 2444 | - th.setData({using_quan:{}}); | ||
| 2445 | - } | ||
| 2446 | - } | ||
| 2447 | - | ||
| 2448 | - //判断有没有默认的物流地址值 | ||
| 2449 | - if (def_exp_code != "" && def_exp_code != null && def_exp_code !=undefined) { | ||
| 2450 | - var wu_arr=this.data.wu_arr; | ||
| 2451 | - if (wu_arr!= null && wu_arr!=""){ | ||
| 2452 | - for(var i=0;i<wu_arr.length;i++){ | ||
| 2453 | - if (wu_arr[i].shipping_code == def_exp_code){ | ||
| 2454 | - th.setData({index:i}); | ||
| 2455 | - } | ||
| 2456 | - } | ||
| 2457 | - } | ||
| 2458 | - } | ||
| 2459 | - th.calculatePrice2() | ||
| 2460 | - | ||
| 2461 | - }, | ||
| 2462 | - | ||
| 2463 | - //--------立即购买时,使用余额-------- | ||
| 2464 | - set_bn_useyuer:function(){ | ||
| 2465 | - var th=this; | ||
| 2466 | - th.setData({ bn_use_money: !th.data.bn_use_money}); | ||
| 2467 | - th.calculatePrice2(); | ||
| 2468 | - }, | ||
| 2469 | - set_js_useyuer:function(){ | ||
| 2470 | - var th = this; | ||
| 2471 | - th.setData({ js_use_money: !th.data.js_use_money }); | ||
| 2472 | - th.calculatePrice(); | ||
| 2473 | - }, | ||
| 2474 | - //-------------------计算物流--------------- | ||
| 2475 | - calculatewuliu:function(code, o_shipping_price, goods_weight, | ||
| 2476 | - goods_piece,user_addr, freight_free, o_price, rs){ | ||
| 2477 | - var price =0,th=this; | ||
| 2478 | - price +=parseFloat(o_shipping_price); | ||
| 2479 | - //如果是包邮 | ||
| 2480 | - if (freight_free > 0 && o_price >= freight_free){ return 0;} | ||
| 2481 | - if (user_addr==null) { return 0; } | ||
| 2482 | - //计算物流的config item; | ||
| 2483 | - var item=null; | ||
| 2484 | - //先根据 镇 县 区找计算的config | ||
| 2485 | - item = th.get_wuliu_config(user_addr.district,code,rs); | ||
| 2486 | - if (item==null) item = th.get_wuliu_config(user_addr.city, code, rs); | ||
| 2487 | - if (item==null) item = th.get_wuliu_config(user_addr.province, code, rs); | ||
| 2488 | - if (item == null) item = th.get_wuliu_default(code,rs); | ||
| 2489 | - if (item == null) return o_shipping_price; | ||
| 2490 | - var fw_price = 0, fp_price=0; | ||
| 2491 | - item=item.config; | ||
| 2492 | - if (item == null) return o_shipping_price; | ||
| 2493 | - //------按重量---------- | ||
| 2494 | - if (goods_weight>=0 && item['money']) { | ||
| 2495 | - fw_price =parseFloat(item['money']); | ||
| 2496 | - if (goods_weight > item['first_weight']){ | ||
| 2497 | - var fw = goods_weight - item['first_weight']; | ||
| 2498 | - var n = Math.ceil(fw/item['second_weight']) | ||
| 2499 | - fw_price = fw_price + n * parseFloat(item['add_money']); | ||
| 2500 | - } | ||
| 2501 | - } | ||
| 2502 | - //------按件数---------- | ||
| 2503 | - if (goods_piece > 0 && item['piecemoney']) { | ||
| 2504 | - fp_price = parseFloat(item['piecemoney']); | ||
| 2505 | - if (goods_piece > item['first_piece']) { | ||
| 2506 | - var fp = goods_piece - item['first_piece']; | ||
| 2507 | - var m = Math.ceil(fp / item['second_piece']) | ||
| 2508 | - fp_price = fp_price + m * parseFloat(item['add_piecemoney']); | ||
| 2509 | - } | ||
| 2510 | - } | ||
| 2511 | - var rspice =parseFloat(price + fw_price + fp_price); | ||
| 2512 | - return rspice; | ||
| 2513 | - }, | ||
| 2514 | - | ||
| 2515 | - //------------循环获取config----------- | ||
| 2516 | - get_wuliu_config:function(region_id,code,rs){ | ||
| 2517 | - var item=null,rslist = rs.pageData; | ||
| 2518 | - for (var i = 0; i < rslist.length;i++){ | ||
| 2519 | - if (rslist[i].code == code && rslist[i].region_id == region_id) { item = rslist[i];} | ||
| 2520 | - } | ||
| 2521 | - return item; | ||
| 2522 | - }, | ||
| 2523 | - //-------循环获取config,code default------- | ||
| 2524 | - get_wuliu_default: function (code, rs) { | ||
| 2525 | - var item = null, rslist=rs.pageData; | ||
| 2526 | - for (var i = 0; i < rslist.length; i++) { | ||
| 2527 | - if (rslist[i].shipping_code == code && rslist[i].is_default == 1) { item = rslist[i]; } | ||
| 2528 | - } | ||
| 2529 | - return item; | ||
| 2530 | - }, | ||
| 2531 | - | ||
| 2532 | - //----------立即购买,选择物流------------- | ||
| 2533 | - bindPickerChange:function(e){ | ||
| 2534 | - var ind = e.detail.value | ||
| 2535 | - this.setData({ index: ind }); | ||
| 2536 | - this.calculatePrice2(); | ||
| 2537 | - }, | ||
| 2538 | - //----------购物车结算,选择物流------------- | ||
| 2539 | - bindPickerChange_w: function (e) { | ||
| 2540 | - var ind=e.detail.value, txt = e.currentTarget.dataset.txt; | ||
| 2541 | - this.setData({ [txt]: ind }); | ||
| 2542 | - this.calculatePrice(); | ||
| 2543 | - }, | ||
| 2544 | - | ||
| 2545 | - /*----券的所有操作----*/ | ||
| 2546 | - open_coupon_list:function (e) { | ||
| 2547 | - var th=this; | ||
| 2548 | - var pickid=e.currentTarget.dataset.pickid; | ||
| 2549 | - var bn=e.currentTarget.dataset.bn; | ||
| 2550 | - var cindx=e.currentTarget.dataset.cind; | ||
| 2551 | - var get_by_quan_list_cart=th.data.get_by_quan_list_cart[pickid]; | ||
| 2552 | - | ||
| 2553 | - | ||
| 2554 | - if(bn==1){ | ||
| 2555 | - th.setData({open_quan:1,selected_quan_pick:pickid, disabled:1}); | ||
| 2556 | - }else{ | ||
| 2557 | - //---多单打开券的时候,就要判断券在其他门店是否有使用--- | ||
| 2558 | - var quanlist=th.data.cartlist[cindx].quan_list; | ||
| 2559 | - var exp_type=th.data.cartlist[cindx].exp_type; | ||
| 2560 | - | ||
| 2561 | - | ||
| 2562 | - //对于在其他门店已经选择了的券 要判断是否显示到界面 | ||
| 2563 | - var t_user=th.data.using_quan[pickid]; | ||
| 2564 | - | ||
| 2565 | - for(var i in quanlist){ | ||
| 2566 | - quanlist[i].is_using= th.check_in_sele(quanlist[i].CashRepNo,pickid); | ||
| 2567 | - if(t_user && quanlist[i].CashRepNo==t_user.coupon_no) | ||
| 2568 | - quanlist[i].show_red=1; | ||
| 2569 | - else | ||
| 2570 | - quanlist[i].show_red=0; | ||
| 2571 | - } | ||
| 2572 | - | ||
| 2573 | - if(get_by_quan_list_cart){ | ||
| 2574 | - for(var i in get_by_quan_list_cart){ | ||
| 2575 | - get_by_quan_list_cart[i].is_using= th.check_in_sele(get_by_quan_list_cart[i].no,pickid); | ||
| 2576 | - if(t_user && get_by_quan_list_cart[i].no==t_user.coupon_no) | ||
| 2577 | - get_by_quan_list_cart[i].show_red=1; | ||
| 2578 | - else | ||
| 2579 | - get_by_quan_list_cart[i].show_red=0; | ||
| 2580 | - } | ||
| 2581 | - th.setData({by_quan_list_cart:get_by_quan_list_cart}); | ||
| 2582 | - }else { | ||
| 2583 | - th.setData({by_quan_list_cart:null}); | ||
| 2584 | - } | ||
| 2585 | - | ||
| 2586 | - console.log("2222222券的列表", quanlist); | ||
| 2587 | - th.setData({ sele_cart_ind:cindx,sele_exp_type:exp_type,open_quan:1,selected_quan_pick:pickid,selected_quan_list:quanlist,disabled:1}); | ||
| 2588 | - } | ||
| 2589 | - }, | ||
| 2590 | - close_coupon:function (e) { | ||
| 2591 | - var th=this; | ||
| 2592 | - th.setData({open_quan:0,disabled:0}); | ||
| 2593 | - }, | ||
| 2594 | - | ||
| 2595 | - //---判断券时候在已经选择的列表中--- | ||
| 2596 | - check_in_sele:function (no,pick_id) { | ||
| 2597 | - var th=this; | ||
| 2598 | - if(th.data.using_quan.length<=0) return false; | ||
| 2599 | - for(var i in th.data.using_quan){ | ||
| 2600 | - //--如果键值等于本身就要跳出-- | ||
| 2601 | - if(parseInt(i)==parseInt(pick_id)) continue; | ||
| 2602 | - var item=th.data.using_quan[i]; | ||
| 2603 | - if(item.coupon_no==no){ | ||
| 2604 | - return true; | ||
| 2605 | - } | ||
| 2606 | - } | ||
| 2607 | - return false; | ||
| 2608 | - }, | ||
| 2609 | - | ||
| 2610 | - /*--点击选择券--*/ | ||
| 2611 | - sele_quan_item:function(e) { | ||
| 2612 | - | ||
| 2613 | - var ind = e.currentTarget.dataset.ind; | ||
| 2614 | - var quan_item=this.data.selected_quan_list[ind]; | ||
| 2615 | - var pickid=this.data.selected_quan_pick; //现在选择的是哪一个门店 | ||
| 2616 | - //--如果券是单品使用的时候-- | ||
| 2617 | - if( quan_item && quan_item.UseObjectType && quan_item.UseObjectType=="20"){ | ||
| 2618 | - //---只有多件购买的时候才要计算,//购物车购买和搭配勾的时候--- | ||
| 2619 | - var gg=getApp().get_b_now(); | ||
| 2620 | - if(this.data.is_b_now==0 || gg.prom_type==5){ | ||
| 2621 | - var arr=this.data.order_prom_list_cart; | ||
| 2622 | - var t_pk_item=null; | ||
| 2623 | - for(var ii in arr){ | ||
| 2624 | - var ep=arr[ii]; | ||
| 2625 | - if(pickid==ep.pickup_id){ | ||
| 2626 | - t_pk_item=ep; break; | ||
| 2627 | - } | ||
| 2628 | - } | ||
| 2629 | - //--寻找券指定的商品-- | ||
| 2630 | - var gd=null; | ||
| 2631 | - if(t_pk_item){ | ||
| 2632 | - var goods=t_pk_item.goods; | ||
| 2633 | - for(var gid in goods){ | ||
| 2634 | - if(quan_item.UseObjectID==goods[gid].erpwareid){ gd=goods[gid]; } | ||
| 2635 | - } | ||
| 2636 | - } | ||
| 2637 | - if(!gd){ | ||
| 2638 | - getApp().my_warnning("未找到指定商品使用",0,this,600); | ||
| 2639 | - return false; | ||
| 2640 | - } | ||
| 2641 | - //计算价格,如果有平摊的实收要计算实收的金额 | ||
| 2642 | - var item_price=gd.goods_price*gd.goods_num; | ||
| 2643 | - //-- 如果有平摊下去,有实收价格的时候,就要用account_fir来计算价格 -- | ||
| 2644 | - if(gd.account_fir!=null && gd.account_fir!=undefined){ | ||
| 2645 | - item_price=gd.account_fir*gd.goods_num; | ||
| 2646 | - } | ||
| 2647 | - | ||
| 2648 | - if(item_price< parseFloat(quan_item.BuySum)){ | ||
| 2649 | - getApp().my_warnning("该单品金额没有大于等于"+quan_item.BuySum+"元时不能使用优惠券",0,this,600); | ||
| 2650 | - return false; | ||
| 2651 | - } | ||
| 2652 | - } | ||
| 2653 | - } | ||
| 2654 | - | ||
| 2655 | - var no_use=e.currentTarget.dataset.no, quanlist=this.data.selected_quan_list; | ||
| 2656 | - //---所有的券的显示红色选择都清理一遍--- | ||
| 2657 | - for(var i in quanlist){ | ||
| 2658 | - quanlist[i].show_red=0; | ||
| 2659 | - } | ||
| 2660 | - this.setData({selected_quan_list:quanlist}); | ||
| 2661 | - var by_quanlist=this.data.get_by_quan_list; | ||
| 2662 | - if(by_quanlist){ | ||
| 2663 | - //---所有的券的显示红色选择都清理一遍--- | ||
| 2664 | - for(var inb in by_quanlist){ | ||
| 2665 | - by_quanlist[inb].show_red=0; | ||
| 2666 | - } | ||
| 2667 | - this.setData({get_by_quan_list:by_quanlist}); | ||
| 2668 | - } | ||
| 2669 | - | ||
| 2670 | - var by_cart_list=this.data.by_quan_list_cart; | ||
| 2671 | - if(by_cart_list){ | ||
| 2672 | - //---所有的券的显示红色选择都清理一遍--- | ||
| 2673 | - for(var inc in by_cart_list){ | ||
| 2674 | - by_cart_list[inc].show_red=0; | ||
| 2675 | - } | ||
| 2676 | - this.setData({by_quan_list_cart:by_cart_list}); | ||
| 2677 | - } | ||
| 2678 | - | ||
| 2679 | - var using_quan=this.data.using_quan; | ||
| 2680 | - var th=this; | ||
| 2681 | - //---如果是不使用优惠券--- | ||
| 2682 | - if(no_use==1){ | ||
| 2683 | - console.log("有进来吗券", no_use); | ||
| 2684 | - if(using_quan[th.data.selected_quan_pick]){ | ||
| 2685 | - using_quan[th.data.selected_quan_pick].is_nouse_red=1; | ||
| 2686 | - } | ||
| 2687 | - else{ | ||
| 2688 | - using_quan[th.data.selected_quan_pick] ={is_nouse_red:1}; | ||
| 2689 | - } | ||
| 2690 | - this.setData({ using_quan: using_quan, is_coupon:2222}); | ||
| 2691 | - return; | ||
| 2692 | - } | ||
| 2693 | - | ||
| 2694 | - | ||
| 2695 | - | ||
| 2696 | - var txt = "selected_quan_list[" + ind + "].show_red"; | ||
| 2697 | - var obj = {}; | ||
| 2698 | - obj[txt] = 1; | ||
| 2699 | - if (quan_item.show_red) { | ||
| 2700 | - obj[txt] = 0; | ||
| 2701 | - } | ||
| 2702 | - this.setData(obj); | ||
| 2703 | - console.log(this.data.selected_quan_list, "选中的券的下标", quan_item, "数据都在这里", txt); | ||
| 2704 | - if(using_quan[th.data.selected_quan_pick]){ | ||
| 2705 | - using_quan[th.data.selected_quan_pick].is_nouse_red=0; | ||
| 2706 | - } | ||
| 2707 | - else{ | ||
| 2708 | - using_quan[th.data.selected_quan_pick] ={is_nouse_red:0}; | ||
| 2709 | - } | ||
| 2710 | - this.setData({using_quan:using_quan}); | ||
| 2711 | - | ||
| 2712 | - }, | ||
| 2713 | - | ||
| 2714 | - | ||
| 2715 | - /*----- 点击选择包邮券 -----*/ | ||
| 2716 | - sele_quan_item_by:function(e) { | ||
| 2717 | - var no_use=e.currentTarget.dataset.no; | ||
| 2718 | - //立即购买的包邮券 | ||
| 2719 | - var by_quanlist=this.data.get_by_quan_list; | ||
| 2720 | - if(by_quanlist) { | ||
| 2721 | - //---所有的券的显示红色选择都清理一遍--- | ||
| 2722 | - for (var ind in by_quanlist) { | ||
| 2723 | - by_quanlist[ind].show_red = 0; | ||
| 2724 | - } | ||
| 2725 | - this.setData({get_by_quan_list: by_quanlist}); | ||
| 2726 | - } | ||
| 2727 | - | ||
| 2728 | - //--购物车过来的包邮券-- | ||
| 2729 | - var by_cart_list=this.data.by_quan_list_cart; | ||
| 2730 | - if(by_cart_list){ | ||
| 2731 | - //---所有的券的显示红色选择都清理一遍--- | ||
| 2732 | - for(var ind in by_cart_list){ | ||
| 2733 | - by_cart_list[ind].show_red=0; | ||
| 2734 | - } | ||
| 2735 | - this.setData({by_quan_list_cart:by_cart_list}); | ||
| 2736 | - } | ||
| 2737 | - //普通券 | ||
| 2738 | - var quanlist=this.data.selected_quan_list; | ||
| 2739 | - if(quanlist){ | ||
| 2740 | - //---所有的券的显示红色选择都清理一遍--- | ||
| 2741 | - for(var ind in quanlist){ | ||
| 2742 | - quanlist[ind].show_red=0; | ||
| 2743 | - } | ||
| 2744 | - this.setData({selected_quan_list:quanlist}); | ||
| 2745 | - } | ||
| 2746 | - | ||
| 2747 | - var th=this; | ||
| 2748 | - var using_quan=this.data.using_quan; | ||
| 2749 | - //---如果是不使用优惠券--- | ||
| 2750 | - if(no_use==1){ | ||
| 2751 | - if(using_quan[th.data.selected_quan_pick]){ | ||
| 2752 | - using_quan[th.data.selected_quan_pick].is_nouse_red=1; | ||
| 2753 | - } | ||
| 2754 | - else{ | ||
| 2755 | - using_quan[th.data.selected_quan_pick] ={is_nouse_red:1}; | ||
| 2756 | - } | ||
| 2757 | - this.setData({ using_quan: using_quan, is_coupon:2222}); | ||
| 2758 | - return; | ||
| 2759 | - } | ||
| 2760 | - | ||
| 2761 | - var pickid=th.data.selected_quan_pick; //现在选择的是哪一个门店 | ||
| 2762 | - var ind = e.currentTarget.dataset.ind; | ||
| 2763 | - //--如果是立即购买的部分-- | ||
| 2764 | - var txt="";var txt1=""; var quan_item=null; | ||
| 2765 | - if(th.data.is_b_now){ | ||
| 2766 | - quan_item = this.data.get_by_quan_list[ind]; | ||
| 2767 | - txt = "get_by_quan_list[" + ind + "].show_red"; | ||
| 2768 | - var obj = {}; obj[txt] = 1; | ||
| 2769 | - this.setData(obj); | ||
| 2770 | - }else{ | ||
| 2771 | - txt= "by_quan_list_cart[" + ind + "].show_red"; | ||
| 2772 | - quan_item = th.data.by_quan_list_cart[ind]; | ||
| 2773 | - var obj = {}; obj[txt] = 1; | 2905 | + var no_use = e.currentTarget.dataset.no, quanlist = this.data.selected_quan_list; |
| 2906 | + //---所有的券的显示红色选择都清理一遍--- | ||
| 2907 | + for (var i in quanlist) { | ||
| 2908 | + quanlist[i].show_red = 0; | ||
| 2909 | + } | ||
| 2910 | + this.setData({selected_quan_list: quanlist}); | ||
| 2911 | + var by_quanlist = this.data.get_by_quan_list; | ||
| 2912 | + if (by_quanlist) { | ||
| 2913 | + //---所有的券的显示红色选择都清理一遍--- | ||
| 2914 | + for (var inb in by_quanlist) { | ||
| 2915 | + by_quanlist[inb].show_red = 0; | ||
| 2916 | + } | ||
| 2917 | + this.setData({get_by_quan_list: by_quanlist}); | ||
| 2918 | + } | ||
| 2919 | + | ||
| 2920 | + var by_cart_list = this.data.by_quan_list_cart; | ||
| 2921 | + if (by_cart_list) { | ||
| 2922 | + //---所有的券的显示红色选择都清理一遍--- | ||
| 2923 | + for (var inc in by_cart_list) { | ||
| 2924 | + by_cart_list[inc].show_red = 0; | ||
| 2925 | + } | ||
| 2926 | + this.setData({by_quan_list_cart: by_cart_list}); | ||
| 2927 | + } | ||
| 2928 | + | ||
| 2929 | + var using_quan = this.data.using_quan; | ||
| 2930 | + var th = this; | ||
| 2931 | + //---如果是不使用优惠券--- | ||
| 2932 | + if (no_use == 1) { | ||
| 2933 | + console.log("有进来吗券", no_use); | ||
| 2934 | + if (using_quan[th.data.selected_quan_pick]) { | ||
| 2935 | + using_quan[th.data.selected_quan_pick].is_nouse_red = 1; | ||
| 2936 | + } | ||
| 2937 | + else { | ||
| 2938 | + using_quan[th.data.selected_quan_pick] = {is_nouse_red: 1}; | ||
| 2939 | + } | ||
| 2940 | + this.setData({using_quan: using_quan, is_coupon: 2222}); | ||
| 2941 | + return; | ||
| 2942 | + } | ||
| 2943 | + | ||
| 2944 | + | ||
| 2945 | + var txt = "selected_quan_list[" + ind + "].show_red"; | ||
| 2946 | + var obj = {}; | ||
| 2947 | + obj[txt] = 1; | ||
| 2948 | + if (quan_item.show_red) { | ||
| 2949 | + obj[txt] = 0; | ||
| 2950 | + } | ||
| 2774 | this.setData(obj); | 2951 | this.setData(obj); |
| 2775 | - th.data.get_by_quan_list_cart[pickid]=JSON.parse(JSON.stringify(th.data.by_quan_list_cart)); //要把选中的弄回数组 | ||
| 2776 | - } | ||
| 2777 | - | ||
| 2778 | - if(using_quan[th.data.selected_quan_pick]){ | ||
| 2779 | - using_quan[th.data.selected_quan_pick].is_nouse_red=0; | ||
| 2780 | - } | ||
| 2781 | - else{ | ||
| 2782 | - using_quan[th.data.selected_quan_pick] ={is_nouse_red:0}; | ||
| 2783 | - } | ||
| 2784 | - this.setData({using_quan:using_quan}); | ||
| 2785 | - }, | ||
| 2786 | - | ||
| 2787 | - //--确认使用券--- | ||
| 2788 | - confirm_quan:function () { | ||
| 2789 | - var using_quan=this.data.using_quan; //正在使用中的券列表 | ||
| 2790 | - var pickid=this.data.selected_quan_pick; //选中的门店ID | ||
| 2791 | - var th=this; | ||
| 2792 | - var selected_quan_list=this.data.selected_quan_list; //选择了那个门店的券列表 | ||
| 2793 | - var get_by_quan_list=this.data.get_by_quan_list; //立即购买的包邮券列表 | ||
| 2794 | - var by_quan_list_cart=this.data.by_quan_list_cart; //购物车购买的包邮券列表 | ||
| 2795 | - //选择了的券 | ||
| 2796 | - var sele_quan=null; | ||
| 2797 | - | ||
| 2798 | - //循环普通的券 | ||
| 2799 | - for(var i in selected_quan_list){ | ||
| 2800 | - var item=selected_quan_list[i]; | ||
| 2801 | - if(item.show_red) { | ||
| 2802 | - th.insert_into_using_quan(item,using_quan,pickid); | ||
| 2803 | - return; | ||
| 2804 | - } | ||
| 2805 | - } | ||
| 2806 | - //循环包邮的券,立即购买的 | ||
| 2807 | - for(var i in get_by_quan_list){ | ||
| 2808 | - var item=get_by_quan_list[i]; | ||
| 2809 | - if(item.show_red) { | ||
| 2810 | - if(th.data.is_no_by[pickid]==1){ | ||
| 2811 | - getApp().my_warnning("已全场不能包邮,不能选择包邮券",0,th);return false; | ||
| 2812 | - } | ||
| 2813 | - if(th.data.is_by[pickid]==1){ | ||
| 2814 | - getApp().my_warnning("已全场包邮,不能选择包邮券",0,th);return false; | ||
| 2815 | - } | ||
| 2816 | - | ||
| 2817 | - th.insert_into_using_quan(item,using_quan,pickid,1); | ||
| 2818 | - return; | ||
| 2819 | - } | ||
| 2820 | - } | ||
| 2821 | - | ||
| 2822 | - //循环包邮的券 | ||
| 2823 | - for(var i in by_quan_list_cart){ | ||
| 2824 | - var item=by_quan_list_cart[i]; | ||
| 2825 | - if(item.show_red) { | ||
| 2826 | - if(th.data.is_no_by[pickid]==1){ | ||
| 2827 | - getApp().my_warnning("已全场不能包邮,不能选择包邮券",0,th);return false; | ||
| 2828 | - } | ||
| 2829 | - if(th.data.is_by[pickid]==1){ | ||
| 2830 | - getApp().my_warnning("已全场包邮,不能选择包邮券",0,th);return false; | ||
| 2831 | - } | ||
| 2832 | - th.insert_into_using_quan(item,using_quan,pickid,1); | ||
| 2833 | - return; | ||
| 2834 | - } | ||
| 2835 | - } | ||
| 2836 | - | ||
| 2837 | - //选择了的券,看是不是点击了不使用券,点击了不使用优惠券 | ||
| 2838 | - if(using_quan[pickid]){ | ||
| 2839 | - if(using_quan[pickid].is_nouse_red==1){ | ||
| 2840 | - using_quan[pickid] ={is_nouse_red:1}; | ||
| 2841 | - th.setData({using_quan:using_quan}); | ||
| 2842 | - if(th.data.is_b_now==1){ | 2952 | + console.log(this.data.selected_quan_list, "选中的券的下标", quan_item, "数据都在这里", txt); |
| 2953 | + if (using_quan[th.data.selected_quan_pick]) { | ||
| 2954 | + using_quan[th.data.selected_quan_pick].is_nouse_red = 0; | ||
| 2955 | + } | ||
| 2956 | + else { | ||
| 2957 | + using_quan[th.data.selected_quan_pick] = {is_nouse_red: 0}; | ||
| 2958 | + } | ||
| 2959 | + this.setData({using_quan: using_quan}); | ||
| 2960 | + | ||
| 2961 | + }, | ||
| 2962 | + | ||
| 2963 | + | ||
| 2964 | + /*----- 点击选择包邮券 -----*/ | ||
| 2965 | + sele_quan_item_by: function (e) { | ||
| 2966 | + var no_use = e.currentTarget.dataset.no; | ||
| 2967 | + //立即购买的包邮券 | ||
| 2968 | + var by_quanlist = this.data.get_by_quan_list; | ||
| 2969 | + if (by_quanlist) { | ||
| 2970 | + //---所有的券的显示红色选择都清理一遍--- | ||
| 2971 | + for (var ind in by_quanlist) { | ||
| 2972 | + by_quanlist[ind].show_red = 0; | ||
| 2973 | + } | ||
| 2974 | + this.setData({get_by_quan_list: by_quanlist}); | ||
| 2975 | + } | ||
| 2976 | + | ||
| 2977 | + //--购物车过来的包邮券-- | ||
| 2978 | + var by_cart_list = this.data.by_quan_list_cart; | ||
| 2979 | + if (by_cart_list) { | ||
| 2980 | + //---所有的券的显示红色选择都清理一遍--- | ||
| 2981 | + for (var ind in by_cart_list) { | ||
| 2982 | + by_cart_list[ind].show_red = 0; | ||
| 2983 | + } | ||
| 2984 | + this.setData({by_quan_list_cart: by_cart_list}); | ||
| 2985 | + } | ||
| 2986 | + //普通券 | ||
| 2987 | + var quanlist = this.data.selected_quan_list; | ||
| 2988 | + if (quanlist) { | ||
| 2989 | + //---所有的券的显示红色选择都清理一遍--- | ||
| 2990 | + for (var ind in quanlist) { | ||
| 2991 | + quanlist[ind].show_red = 0; | ||
| 2992 | + } | ||
| 2993 | + this.setData({selected_quan_list: quanlist}); | ||
| 2994 | + } | ||
| 2995 | + | ||
| 2996 | + var th = this; | ||
| 2997 | + var using_quan = this.data.using_quan; | ||
| 2998 | + //---如果是不使用优惠券--- | ||
| 2999 | + if (no_use == 1) { | ||
| 3000 | + if (using_quan[th.data.selected_quan_pick]) { | ||
| 3001 | + using_quan[th.data.selected_quan_pick].is_nouse_red = 1; | ||
| 3002 | + } | ||
| 3003 | + else { | ||
| 3004 | + using_quan[th.data.selected_quan_pick] = {is_nouse_red: 1}; | ||
| 3005 | + } | ||
| 3006 | + this.setData({using_quan: using_quan, is_coupon: 2222}); | ||
| 3007 | + return; | ||
| 3008 | + } | ||
| 3009 | + | ||
| 3010 | + var pickid = th.data.selected_quan_pick; //现在选择的是哪一个门店 | ||
| 3011 | + var ind = e.currentTarget.dataset.ind; | ||
| 3012 | + //--如果是立即购买的部分-- | ||
| 3013 | + var txt = ""; | ||
| 3014 | + var txt1 = ""; | ||
| 3015 | + var quan_item = null; | ||
| 3016 | + if (th.data.is_b_now) { | ||
| 3017 | + quan_item = this.data.get_by_quan_list[ind]; | ||
| 3018 | + txt = "get_by_quan_list[" + ind + "].show_red"; | ||
| 3019 | + var obj = {}; | ||
| 3020 | + obj[txt] = 1; | ||
| 3021 | + this.setData(obj); | ||
| 3022 | + } else { | ||
| 3023 | + txt = "by_quan_list_cart[" + ind + "].show_red"; | ||
| 3024 | + quan_item = th.data.by_quan_list_cart[ind]; | ||
| 3025 | + var obj = {}; | ||
| 3026 | + obj[txt] = 1; | ||
| 3027 | + this.setData(obj); | ||
| 3028 | + th.data.get_by_quan_list_cart[pickid] = JSON.parse(JSON.stringify(th.data.by_quan_list_cart)); //要把选中的弄回数组 | ||
| 3029 | + } | ||
| 3030 | + | ||
| 3031 | + if (using_quan[th.data.selected_quan_pick]) { | ||
| 3032 | + using_quan[th.data.selected_quan_pick].is_nouse_red = 0; | ||
| 3033 | + } | ||
| 3034 | + else { | ||
| 3035 | + using_quan[th.data.selected_quan_pick] = {is_nouse_red: 0}; | ||
| 3036 | + } | ||
| 3037 | + this.setData({using_quan: using_quan}); | ||
| 3038 | + }, | ||
| 3039 | + | ||
| 3040 | + //--确认使用券--- | ||
| 3041 | + confirm_quan: function () { | ||
| 3042 | + var using_quan = this.data.using_quan; //正在使用中的券列表 | ||
| 3043 | + var pickid = this.data.selected_quan_pick; //选中的门店ID | ||
| 3044 | + var th = this; | ||
| 3045 | + var selected_quan_list = this.data.selected_quan_list; //选择了那个门店的券列表 | ||
| 3046 | + var get_by_quan_list = this.data.get_by_quan_list; //立即购买的包邮券列表 | ||
| 3047 | + var by_quan_list_cart = this.data.by_quan_list_cart; //购物车购买的包邮券列表 | ||
| 3048 | + //选择了的券 | ||
| 3049 | + var sele_quan = null; | ||
| 3050 | + | ||
| 3051 | + //循环普通的券 | ||
| 3052 | + for (var i in selected_quan_list) { | ||
| 3053 | + var item = selected_quan_list[i]; | ||
| 3054 | + if (item.show_red) { | ||
| 3055 | + th.insert_into_using_quan(item, using_quan, pickid); | ||
| 3056 | + return; | ||
| 3057 | + } | ||
| 3058 | + } | ||
| 3059 | + //循环包邮的券,立即购买的 | ||
| 3060 | + for (var i in get_by_quan_list) { | ||
| 3061 | + var item = get_by_quan_list[i]; | ||
| 3062 | + if (item.show_red) { | ||
| 3063 | + if (th.data.is_no_by[pickid] == 1) { | ||
| 3064 | + getApp().my_warnning("已全场不能包邮,不能选择包邮券", 0, th); | ||
| 3065 | + return false; | ||
| 3066 | + } | ||
| 3067 | + if (th.data.is_by[pickid] == 1) { | ||
| 3068 | + getApp().my_warnning("已全场包邮,不能选择包邮券", 0, th); | ||
| 3069 | + return false; | ||
| 3070 | + } | ||
| 3071 | + | ||
| 3072 | + th.insert_into_using_quan(item, using_quan, pickid, 1); | ||
| 3073 | + return; | ||
| 3074 | + } | ||
| 3075 | + } | ||
| 3076 | + | ||
| 3077 | + //循环包邮的券 | ||
| 3078 | + for (var i in by_quan_list_cart) { | ||
| 3079 | + var item = by_quan_list_cart[i]; | ||
| 3080 | + if (item.show_red) { | ||
| 3081 | + if (th.data.is_no_by[pickid] == 1) { | ||
| 3082 | + getApp().my_warnning("已全场不能包邮,不能选择包邮券", 0, th); | ||
| 3083 | + return false; | ||
| 3084 | + } | ||
| 3085 | + if (th.data.is_by[pickid] == 1) { | ||
| 3086 | + getApp().my_warnning("已全场包邮,不能选择包邮券", 0, th); | ||
| 3087 | + return false; | ||
| 3088 | + } | ||
| 3089 | + th.insert_into_using_quan(item, using_quan, pickid, 1); | ||
| 3090 | + return; | ||
| 3091 | + } | ||
| 3092 | + } | ||
| 3093 | + | ||
| 3094 | + //选择了的券,看是不是点击了不使用券,点击了不使用优惠券 | ||
| 3095 | + if (using_quan[pickid]) { | ||
| 3096 | + if (using_quan[pickid].is_nouse_red == 1) { | ||
| 3097 | + using_quan[pickid] = {is_nouse_red: 1}; | ||
| 3098 | + th.setData({using_quan: using_quan}); | ||
| 3099 | + if (th.data.is_b_now == 1) { | ||
| 2843 | th.calculatePrice2(); | 3100 | th.calculatePrice2(); |
| 2844 | - }else{ | ||
| 2845 | - th.calculatePrice(); | 3101 | + } else { |
| 3102 | + th.calculatePrice(); | ||
| 2846 | } | 3103 | } |
| 2847 | - th.setData({open_quan:0}); | 3104 | + th.setData({open_quan: 0}); |
| 2848 | return; | 3105 | return; |
| 2849 | - } | ||
| 2850 | - } | ||
| 2851 | - }, | ||
| 2852 | - | ||
| 2853 | - //----把券插入之后的操作,同时还要重新计算价格---- | ||
| 2854 | - insert_into_using_quan:function (item,using_quan,pickid,isby) { | ||
| 2855 | - var th=this; | ||
| 2856 | - if(isby==1){ | ||
| 2857 | - using_quan[pickid]={coupon_no:item.no,money:0,is_nouse_red:0,region_list:item.region_list,goods_list:item.goods_list}; | ||
| 2858 | - using_quan[pickid].isby=1; | ||
| 2859 | - }else{ | ||
| 2860 | - using_quan[pickid]={coupon_no:item.CashRepNo,money:item.Sum,is_nouse_red:0}; | ||
| 2861 | - using_quan[pickid].isby=0; | ||
| 2862 | - } | ||
| 2863 | - this.setData({using_quan:using_quan}); | ||
| 2864 | - if(th.data.is_b_now==1){ | ||
| 2865 | - th.calculatePrice2(); | ||
| 2866 | - }else{ | ||
| 2867 | - th.calculatePrice(); | ||
| 2868 | - } | ||
| 2869 | - th.setData({open_quan:0}); | ||
| 2870 | - }, | ||
| 2871 | - | ||
| 2872 | - cart_set_err:function(e){ | ||
| 2873 | - var txt = e.currentTarget.dataset.err; | ||
| 2874 | - var ob={}; | ||
| 2875 | - ob[txt] = this.data.imgUrl + "/miniapp/images/default_g_img.gif"; | ||
| 2876 | - this.setData(ob); | ||
| 2877 | - }, | ||
| 2878 | - //--验证是否已经冻结-- | ||
| 2879 | - check_is_frozenQuan:function(quanlist,frozenQuan,isby){ | ||
| 2880 | - console.log("券列表",quanlist); | ||
| 2881 | - if(!quanlist) return null; | ||
| 2882 | - if(!frozenQuan) return quanlist; | ||
| 2883 | - var arr=[]; | ||
| 2884 | - for(var i=0;i<quanlist.length;i++){ | ||
| 2885 | - var item=quanlist[i]; | ||
| 2886 | - var is_find=0; | ||
| 2887 | - var Q_no=quanlist[i].CashRepNo; | ||
| 2888 | - if(isby) Q_no=quanlist[i].no; | ||
| 2889 | - for(var j=0;j<frozenQuan.length;j++){ | ||
| 2890 | - var q_no=frozenQuan[j].cashRepNo; | ||
| 2891 | - if(Q_no==q_no){ | ||
| 2892 | - is_find=1; break; | ||
| 2893 | - } | ||
| 2894 | } | 3106 | } |
| 2895 | - if(!is_find) arr.push(item); | 3107 | + } |
| 3108 | + }, | ||
| 3109 | + | ||
| 3110 | + //----把券插入之后的操作,同时还要重新计算价格---- | ||
| 3111 | + insert_into_using_quan: function (item, using_quan, pickid, isby) { | ||
| 3112 | + var th = this; | ||
| 3113 | + if (isby == 1) { | ||
| 3114 | + using_quan[pickid] = { | ||
| 3115 | + coupon_no: item.no, | ||
| 3116 | + money: 0, | ||
| 3117 | + is_nouse_red: 0, | ||
| 3118 | + region_list: item.region_list, | ||
| 3119 | + goods_list: item.goods_list | ||
| 3120 | + }; | ||
| 3121 | + using_quan[pickid].isby = 1; | ||
| 3122 | + } else { | ||
| 3123 | + using_quan[pickid] = {coupon_no: item.CashRepNo, money: item.Sum, is_nouse_red: 0}; | ||
| 3124 | + using_quan[pickid].isby = 0; | ||
| 3125 | + } | ||
| 3126 | + this.setData({using_quan: using_quan}); | ||
| 3127 | + if (th.data.is_b_now == 1) { | ||
| 3128 | + th.calculatePrice2(); | ||
| 3129 | + } else { | ||
| 3130 | + th.calculatePrice(); | ||
| 3131 | + } | ||
| 3132 | + th.setData({open_quan: 0}); | ||
| 3133 | + }, | ||
| 3134 | + | ||
| 3135 | + cart_set_err: function (e) { | ||
| 3136 | + var txt = e.currentTarget.dataset.err; | ||
| 3137 | + var ob = {}; | ||
| 3138 | + ob[txt] = this.data.imgUrl + "/miniapp/images/default_g_img.gif"; | ||
| 3139 | + this.setData(ob); | ||
| 3140 | + }, | ||
| 3141 | + //--验证是否已经冻结-- | ||
| 3142 | + check_is_frozenQuan: function (quanlist, frozenQuan, isby) { | ||
| 3143 | + console.log("券列表", quanlist); | ||
| 3144 | + if (!quanlist) return null; | ||
| 3145 | + if (!frozenQuan) return quanlist; | ||
| 3146 | + var arr = []; | ||
| 3147 | + for (var i = 0; i < quanlist.length; i++) { | ||
| 3148 | + var item = quanlist[i]; | ||
| 3149 | + var is_find = 0; | ||
| 3150 | + var Q_no = quanlist[i].CashRepNo; | ||
| 3151 | + if (isby) Q_no = quanlist[i].no; | ||
| 3152 | + for (var j = 0; j < frozenQuan.length; j++) { | ||
| 3153 | + var q_no = frozenQuan[j].cashRepNo; | ||
| 3154 | + if (Q_no == q_no) { | ||
| 3155 | + is_find = 1; | ||
| 3156 | + break; | ||
| 3157 | + } | ||
| 3158 | + } | ||
| 3159 | + if (!is_find) arr.push(item); | ||
| 2896 | } | 3160 | } |
| 2897 | return arr; | 3161 | return arr; |
| 2898 | - }, | ||
| 2899 | - | ||
| 2900 | - //// 开启物流的弹窗 | ||
| 2901 | - show_wu_arr:function(e){ | ||
| 2902 | - var wu_arr_txt=e.currentTarget.dataset.txt; | ||
| 2903 | - var w_sele_index=e.currentTarget.dataset.w_sele_index; | ||
| 2904 | - var is_express=null; | ||
| 2905 | - var ob={open_express: 1,wu_arr_txt:wu_arr_txt,disabled:1}; | ||
| 2906 | - | ||
| 2907 | - //--如果是多个门店的时候-- | ||
| 2908 | - if(w_sele_index!=undefined){ | ||
| 2909 | - is_express=this.data.cartlist[w_sele_index].wind; | ||
| 2910 | - ob['is_express']=is_express; | ||
| 2911 | - } | ||
| 2912 | - this.setData(ob); | ||
| 2913 | - }, | 3162 | + }, |
| 3163 | + | ||
| 3164 | + //// 开启物流的弹窗 | ||
| 3165 | + show_wu_arr: function (e) { | ||
| 3166 | + var wu_arr_txt = e.currentTarget.dataset.txt; | ||
| 3167 | + var w_sele_index = e.currentTarget.dataset.w_sele_index; | ||
| 3168 | + var is_express = null; | ||
| 3169 | + var ob = {open_express: 1, wu_arr_txt: wu_arr_txt, disabled: 1}; | ||
| 3170 | + | ||
| 3171 | + //--如果是多个门店的时候-- | ||
| 3172 | + if (w_sele_index != undefined) { | ||
| 3173 | + is_express = this.data.cartlist[w_sele_index].wind; | ||
| 3174 | + ob['is_express'] = is_express; | ||
| 3175 | + } | ||
| 3176 | + this.setData(ob); | ||
| 3177 | + }, | ||
| 2914 | // 关闭物流的弹窗 | 3178 | // 关闭物流的弹窗 |
| 2915 | - close_express:function(){ | ||
| 2916 | - this.setData({ open_express:0,disabled:0 }); | ||
| 2917 | - }, | 3179 | + close_express: function () { |
| 3180 | + this.setData({open_express: 0, disabled: 0}); | ||
| 3181 | + }, | ||
| 2918 | // 选择物流 | 3182 | // 选择物流 |
| 2919 | - click_express_name:function(e){ | ||
| 2920 | - var express_name = e.currentTarget.dataset.name, shippingcode = e.currentTarget.dataset.shippingcode; | ||
| 2921 | - var index=e.currentTarget.dataset.idxe; | ||
| 2922 | - var ob={ is_express: index, is_shipping_code: shippingcode,disabled:0}; | ||
| 2923 | - ob[this.data.wu_arr_txt]=index; | ||
| 2924 | - this.setData(ob); | 3183 | + click_express_name: function (e) { |
| 3184 | + var express_name = e.currentTarget.dataset.name, shippingcode = e.currentTarget.dataset.shippingcode; | ||
| 3185 | + var index = e.currentTarget.dataset.idxe; | ||
| 3186 | + var ob = {is_express: index, is_shipping_code: shippingcode, disabled: 0}; | ||
| 3187 | + ob[this.data.wu_arr_txt] = index; | ||
| 3188 | + this.setData(ob); | ||
| 2925 | }, | 3189 | }, |
| 2926 | 3190 | ||
| 2927 | //点击确定物流 | 3191 | //点击确定物流 |
| 2928 | - determine_expres:function(e){ | ||
| 2929 | - this.setData({ open_express: 0}); | ||
| 2930 | - if(this.data.is_b_now==1) | ||
| 2931 | - this.calculatePrice2(); | ||
| 2932 | - else | ||
| 2933 | - this.calculatePrice(); | ||
| 2934 | - }, | ||
| 2935 | - | ||
| 2936 | - //点击打开优惠券使用说明 | ||
| 2937 | - clik_coupons:function(e){ | ||
| 2938 | - var ind = e.currentTarget.dataset.idx; | ||
| 2939 | - var is_open = this.data.selected_quan_list[ind].is_open; | ||
| 2940 | - | ||
| 2941 | - if (is_open == 1) is_open = 0; | ||
| 2942 | - else is_open = 1; | ||
| 2943 | - | ||
| 2944 | - var txt = "selected_quan_list[" + ind + "].is_open" | ||
| 2945 | - var obj = {}; obj[txt] = is_open; | ||
| 2946 | - | ||
| 2947 | - this.setData(obj); | ||
| 2948 | - this.setData({disabled:1}) | ||
| 2949 | - }, | ||
| 2950 | - | ||
| 2951 | - clik_coupons2:function(e){ | ||
| 2952 | - var ind = e.currentTarget.dataset.idx; | ||
| 2953 | - var is_open = this.data.get_by_quan_list[ind].is_open; | ||
| 2954 | - | ||
| 2955 | - if (is_open == 1) is_open = 0; | ||
| 2956 | - else is_open = 1; | ||
| 2957 | - | ||
| 2958 | - var txt = "get_by_quan_list[" + ind + "].is_open" | ||
| 2959 | - var obj = {}; obj[txt] = is_open; | ||
| 2960 | - | ||
| 2961 | - this.setData(obj); | ||
| 2962 | - this.setData({disabled:1}) | ||
| 2963 | - }, | ||
| 2964 | - | ||
| 2965 | - | ||
| 2966 | - //设置默认物流 | ||
| 2967 | - select_default_logistics: function () { | ||
| 2968 | - var th=this; | ||
| 2969 | - var is_shipping_code=this.data.is_shipping_code | ||
| 2970 | - getApp().request.put("/api/weshop/users/update",{ | ||
| 2971 | - data: { user_id: getApp().globalData.user_id, store_id: oo.stoid, def_exp_code: is_shipping_code}, | ||
| 2972 | - success:function(rse){ | ||
| 2973 | - if (rse.data.code==0){ | ||
| 2974 | - getApp().globalData.userInfo.def_exp_code=is_shipping_code; | ||
| 2975 | - th.setData({ open_express: 0 }); | ||
| 2976 | - //----计算此时购物车的价格---- | ||
| 2977 | - if(th.data.is_b_now==1) th.calculatePrice2(); | ||
| 2978 | - else th.calculatePrice(); | ||
| 2979 | - } | ||
| 2980 | - } | ||
| 2981 | - }) | ||
| 2982 | - }, | ||
| 2983 | - | ||
| 2984 | - //更新下默认,在onshow里面 | ||
| 2985 | - update_code(){ | ||
| 2986 | - var th=this,m_wind=0,def_exp_code=getApp().globalData.userInfo.def_exp_code; | ||
| 2987 | - //--定时器,判断wu_arr不未空-- | ||
| 2988 | - var uii=setInterval(function () { | ||
| 2989 | - if(th.data.wu_arr) | ||
| 2990 | - { | ||
| 2991 | - clearInterval(uii); | ||
| 2992 | - for (var k = 0; k < th.data.wu_arr.length; k++) { | ||
| 2993 | - var item = th.data.wu_arr[k]; | ||
| 2994 | - if (def_exp_code == item.code) { m_wind = k; } | ||
| 2995 | - } | ||
| 2996 | - //--如果是立即购买-- | ||
| 2997 | - if (th.data.is_b_now == 1) { | ||
| 2998 | - th.setData({index: m_wind,is_express:m_wind}); | ||
| 2999 | - } else { | ||
| 3000 | - var ui = setInterval(function () { | ||
| 3001 | - if (th.data.cartlist) { | ||
| 3002 | - var c_arr = th.data.cartlist; | ||
| 3003 | - for (var i in c_arr) { | ||
| 3004 | - c_arr[i].wind = m_wind; | ||
| 3005 | - } | ||
| 3006 | - th.setData({cartlist: c_arr,is_express:m_wind}) | ||
| 3007 | - clearInterval(ui); | ||
| 3008 | - } | ||
| 3009 | - }, 500) | ||
| 3010 | - } | ||
| 3011 | - } | ||
| 3012 | - },500); | ||
| 3013 | - }, | ||
| 3014 | - //-----获取购物车进来的劵------- | ||
| 3015 | - get_cart_quan:async function (order_prom_list_cart) { | ||
| 3016 | - var th=this; | ||
| 3017 | - var is_xz_yh=1; | ||
| 3018 | - //等待值的出现 | ||
| 3019 | - //getApp().waitfor2(this,"g_cart_q_time","order_prom_list_cart",async function () { | ||
| 3020 | - //var arr=th.data.order_prom_list_cart; | ||
| 3021 | - var arr=order_prom_list_cart; | ||
| 3022 | - if(!arr) arr=[]; | ||
| 3023 | - //如果系统有限制使用优惠券 | ||
| 3024 | - if(th.data.is_close_quan) return false; | ||
| 3025 | - | ||
| 3026 | - //------------开始计算使用优惠券相关------------ | ||
| 3027 | - for(var ind in arr){ | ||
| 3028 | - var ep=arr[ind]; | ||
| 3029 | - var goodlist=ep.goods; | ||
| 3030 | - var pickup_id=ep.pickup_id; | ||
| 3031 | - //--更优惠券抵用有关,立即购买的,如果是购物车,如果有等级价还有考虑等级价的东西 | ||
| 3032 | - //就要把相应的值,写入cartlist数组中-- | ||
| 3033 | - var ckeck_quan_price=0, | ||
| 3034 | - check_quan_price_list='', | ||
| 3035 | - check_quan_ware_list=''; | ||
| 3036 | - | ||
| 3037 | - for(var i in goodlist){ | ||
| 3038 | - var gd=goodlist[i]; | ||
| 3039 | - //--如果是秒杀就跳出,如果是赠品,如果是限制使用优惠券-- | ||
| 3040 | - if(gd.prom_type==1 || gd.is_gift ){ continue; } | ||
| 3041 | - //如果有限制使用优惠券,就要返回 | ||
| 3042 | - if(gd.prom_type==3){ | ||
| 3043 | - if(th.data.prom_goods_map[pickup_id][gd.prom_id].is_xz_yh) continue; | ||
| 3044 | - th.data.prom_goods_map[pickup_id][gd.prom_id].coupon_sele=1; | ||
| 3045 | - } | ||
| 3046 | - is_xz_yh=0; | ||
| 3047 | - var item_price=gd.goods_price*gd.goods_num; | ||
| 3048 | - //-- 如果有平摊下去,有实收价格的时候,就要用account来计算价格 -- | ||
| 3049 | - if(gd.account_fir!=null && gd.account_fir!=undefined){ | ||
| 3050 | - item_price=gd.account_fir*gd.goods_num; | ||
| 3051 | - } | ||
| 3052 | - ckeck_quan_price+=item_price; | ||
| 3053 | - | ||
| 3054 | - //--组装价格list-- | ||
| 3055 | - if (check_quan_price_list) { | ||
| 3056 | - check_quan_price_list += "," +item_price; | ||
| 3057 | - } else { | ||
| 3058 | - check_quan_price_list = item_price; | ||
| 3059 | - } | ||
| 3060 | - //--组装商品的线下erpwareid-- | ||
| 3061 | - if (check_quan_ware_list) { | ||
| 3062 | - check_quan_ware_list += "," + encodeURIComponent(gd['erpwareid']); | ||
| 3063 | - } else { | ||
| 3064 | - check_quan_ware_list = encodeURIComponent(gd['erpwareid']); | ||
| 3065 | - } | ||
| 3066 | - } | ||
| 3067 | - //优惠券优惠的金额要控制到优惠券的选择条件 | ||
| 3068 | - var cut_price=0; | ||
| 3069 | - for(var i in th.data.prom_goods_map[pickup_id]){ | ||
| 3070 | - var obj=th.data.prom_goods_map[pickup_id][i]; | ||
| 3071 | - if(obj.coupon_sele){ | ||
| 3072 | - cut_price+=obj.price-obj.prom_price; | ||
| 3073 | - } | ||
| 3074 | - } | ||
| 3075 | - | ||
| 3076 | - arr[ind].ckeck_quan_price=ckeck_quan_price-cut_price; | ||
| 3077 | - arr[ind].check_quan_ware_list=check_quan_ware_list; | ||
| 3078 | - arr[ind].check_quan_price_list=check_quan_price_list; | ||
| 3079 | - | ||
| 3080 | - //是否关闭使用优惠券 | ||
| 3081 | - if (th.data.is_close_quan != 1 && !is_xz_yh) { | ||
| 3082 | - //--调用接口,获取优惠券的列表,3秒钟内控制接口请求-- | ||
| 3083 | - var url="/api/weshop/couponList/getUseCouponList"; | ||
| 3084 | - 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=>{ | ||
| 3085 | - if (res.data.code == 0) { | ||
| 3086 | - var quan_list = res.data.data.pageData; | ||
| 3087 | - arr[ind].quan_list = th.check_is_frozenQuan(quan_list, th.data.frozenQuan); | ||
| 3088 | - } | ||
| 3089 | - }) | ||
| 3090 | - } | ||
| 3091 | - } | ||
| 3092 | - | ||
| 3093 | - //如果是搭配购的立即购买的时候 | ||
| 3094 | - if(th.data.is_b_now){ | ||
| 3095 | - if(arr && arr.length>0){ | ||
| 3096 | - var quanlist=arr[0].quan_list; | ||
| 3097 | - th.setData({selected_quan_list:quanlist,cartlist:arr}) | ||
| 3098 | - } | ||
| 3099 | - }else{ | ||
| 3100 | - th.setData({cartlist:arr }) | ||
| 3101 | - th.set_can_num(); | ||
| 3102 | - } | ||
| 3103 | - | ||
| 3104 | - //}) | ||
| 3105 | - }, | ||
| 3106 | - | ||
| 3107 | - //------ 获取立即购买的购物车的劵 -------- | ||
| 3108 | - get_buy_now_quan:function () { | ||
| 3109 | - var quanlist=null,th=this,frozenQuan = null; | ||
| 3110 | - var good = this.data.bn_goods; | ||
| 3111 | - if(good.prom_price){ | ||
| 3112 | - th.data.ckeck_quan_price=good.prom_price; //如果有优惠价,就用优惠价 | ||
| 3113 | - }else if(good.is_offline){ | ||
| 3114 | - th.data.ckeck_quan_price=good.offline_price; //如果有线下取价,就用线下价 | ||
| 3115 | - } | ||
| 3116 | - //--如果商家后台没有限制使用优惠券,同时商品的优惠活动没有限制使用优惠券-- | ||
| 3117 | - if(th.data.is_close_quan != 1 && th.data.bn_goods.is_xz_yh!=1) | ||
| 3118 | - { | ||
| 3119 | - var url0 = "/api/weshop/users/frozenQuan/listFrozenQuan/" + app.globalData.user_id; | ||
| 3120 | - var url="/api/weshop/couponList/getUseCouponList"; | ||
| 3121 | - app.request.promiseGet(url0, {1: 1}).then(res => { | ||
| 3122 | - if (res.data.code == 0) { | ||
| 3123 | - frozenQuan = res.data.data;th.data.frozenQuan=frozenQuan; | ||
| 3124 | - } | ||
| 3125 | - app.request.time_limit_get(6, url, { | ||
| 3126 | - data: { | ||
| 3127 | - storeId: oo.stoid, | ||
| 3128 | - userId: app.globalData.user_id, | ||
| 3129 | - BuySum: th.data.ckeck_quan_price, | ||
| 3130 | - WareIds: encodeURIComponent(th.data.check_quan_ware_list), | ||
| 3131 | - pageSize: 100 | ||
| 3132 | - }, | ||
| 3133 | - success: function (res) { | ||
| 3134 | - if (res.data.code == 0) { | ||
| 3135 | - quanlist = res.data.data.pageData; | ||
| 3136 | - if (quanlist) { | ||
| 3137 | - quanlist = th.check_is_frozenQuan(quanlist, frozenQuan); | ||
| 3138 | - th.setData({selected_quan_list:quanlist }) | ||
| 3139 | - } | ||
| 3140 | - } | ||
| 3141 | - } | ||
| 3142 | - }) | ||
| 3143 | - }) | ||
| 3144 | - } | ||
| 3145 | - }, | ||
| 3146 | - | ||
| 3147 | - //检查区域是不是包邮 | ||
| 3148 | - check_area:function(arr){ | ||
| 3149 | - var user_addr=this.data.user_addr; | ||
| 3150 | - if(!user_addr) return 0; | ||
| 3151 | - for(var i in arr){ | ||
| 3152 | - var item=arr[i]; | ||
| 3153 | - if(user_addr.twon==item || user_addr.district==item | ||
| 3154 | - || user_addr.city==item|| user_addr.province==item ){ | ||
| 3155 | - return 0; | ||
| 3156 | - } | ||
| 3157 | - } | ||
| 3158 | - return 1; | ||
| 3159 | - }, | ||
| 3160 | - | ||
| 3161 | - //检查立即购买的商品是不是不包邮 | ||
| 3162 | - check_good:function(arr,goods_id){ | ||
| 3163 | - if(!goods_id) goods_id=this.data.bn_goods.goods_id; | ||
| 3164 | - for(var i in arr){ | ||
| 3165 | - var item=arr[i]; | ||
| 3166 | - if(goods_id==item) return 0; | ||
| 3167 | - } | ||
| 3168 | - return 1; | ||
| 3169 | - }, | ||
| 3170 | - check_by_area:function(region_list){ | ||
| 3171 | - var arr=region_list.split(","); | ||
| 3172 | - var check=this.check_area(arr); | ||
| 3173 | - return !check; | ||
| 3174 | - }, | ||
| 3175 | - check_by_goods:function(goods_list,goods_id){ | ||
| 3176 | - var arr=goods_list.split(","); | ||
| 3177 | - var check=this.check_good(arr,goods_id); | ||
| 3178 | - return !check; | ||
| 3179 | - }, | ||
| 3180 | - //立即购买获取优惠活动的内容 | ||
| 3181 | - buy_now_prom_goods:function (prom_id,arr,func) { | ||
| 3182 | - var price=arr.shop_price*arr.goods_num; | ||
| 3183 | - var prom=null; | ||
| 3184 | - getApp().request.promiseGet("/api/weshop/promgoods/get/"+os.stoid+"/"+prom_id,{}).then(res=>{ | ||
| 3185 | - if(res.data.code==0){ | ||
| 3186 | - prom=res.data.data; | ||
| 3187 | - return getApp().request.promiseGet("/api/weshop/goods/getDiscount", { | ||
| 3188 | - data: { | ||
| 3189 | - price: price, | ||
| 3190 | - prom_id: prom_id, | ||
| 3191 | - goods_num: arr.goods_num, | ||
| 3192 | - user_id: getApp().globalData.user_id, | ||
| 3193 | - is_bz: prom.is_bz | ||
| 3194 | - } | ||
| 3195 | - }) | ||
| 3196 | - }else { | ||
| 3197 | - func(arr); | ||
| 3198 | - } | ||
| 3199 | - }).then(res=>{ | ||
| 3200 | - if(res.data.code==0){ | ||
| 3201 | - var get_data=res.data.data; | ||
| 3202 | - arr.is_bz=prom.is_bz; //是不是倍增 | ||
| 3203 | - arr.is_xz_yh=prom.is_xz_yh; //是不是优惠 | ||
| 3204 | - arr.bs=get_data.bs; //是不是倍数 | ||
| 3205 | - arr.is_past=get_data.is_past; //是不是包邮 | ||
| 3206 | - arr.prom_price=get_data.price>=0?get_data.price:price; | ||
| 3207 | - arr.s_intValue=get_data.intValue; | ||
| 3208 | - arr.s_coupon_id=get_data.coupon_id; | ||
| 3209 | - arr.s_coupon_num=get_data.coupon_num; | ||
| 3210 | - //-- 看是不是有赠品 -- | ||
| 3211 | - if(get_data.gift_id) { | ||
| 3212 | - arr.gift_id = get_data.gift_id; | ||
| 3213 | - arr.gift_goods_id = get_data.goods_id; | ||
| 3214 | - arr.gift_goods_name = get_data.goods_name; | ||
| 3215 | - arr.gift_goods_color = get_data.goodsinfo.goods_color; | ||
| 3216 | - arr.gift_goods_spec = get_data.goodsinfo.goods_spec; | ||
| 3217 | - arr.gift_original_img = get_data.goodsinfo.original_img; | ||
| 3218 | - arr.gift_weight = get_data.goodsinfo.weight; | ||
| 3219 | - arr.gift_exp_sum_type = get_data.goodsinfo.exp_sum_type; | ||
| 3220 | - arr.gift_uniform_exp_sum = get_data.goodsinfo.uniform_exp_sum; | ||
| 3221 | - arr.gift_limit_num = get_data.limit_num; | ||
| 3222 | - arr.gift_storecount = get_data.gift_storecount; | ||
| 3223 | - } | ||
| 3224 | - arr.s_libao=get_data.libao; | ||
| 3225 | - arr.s_lb_num=get_data.lb_num; | ||
| 3226 | - arr.prom_id=prom_id; | ||
| 3227 | - } | ||
| 3228 | - func(arr); | ||
| 3229 | - }) | ||
| 3230 | - }, | ||
| 3231 | - //--检查订单优惠-- | ||
| 3232 | - check_is_order_prom:function (condition,func,pick) { | ||
| 3233 | - var th=this; | ||
| 3234 | - if(this.data.is_b_now==1) pick=this.data.bn_pick; | ||
| 3235 | - //---获取订单优惠--- | ||
| 3236 | - getApp().request.promiseGet("/api/weshop/promorder/getOrderPromotion",{ | ||
| 3237 | - data:{store_id:os.stoid,orderAmount:condition} | ||
| 3238 | - }).then(res=>{ | ||
| 3239 | - if(res.data.code==0) { | ||
| 3240 | - var data = res.data.data; | ||
| 3241 | - th.data.order_prom[pick]=data; | ||
| 3242 | - } | ||
| 3243 | - func(); | ||
| 3244 | - }) | ||
| 3245 | - }, | ||
| 3246 | - | ||
| 3247 | - //--- 加入优惠活动的映射中,同时要有一个good列表 --- | ||
| 3248 | - add_prom_goods_map:async function (item) { | ||
| 3249 | - var th=this; | ||
| 3250 | - var pickid=item.pick_id; | ||
| 3251 | - var map=th.data.prom_goods_map; | ||
| 3252 | - var obj=map[pickid]; | ||
| 3253 | - | ||
| 3254 | - if(map[pickid]){ | ||
| 3255 | - if(map[pickid][item.prom_id]){ | ||
| 3256 | - var ob=map[pickid][item.prom_id]; | ||
| 3257 | - ob.price+=item.goods_price*item.goods_num; | ||
| 3258 | - ob.goods_num+=item.goods_num; | ||
| 3259 | - ob.goods.push({goods_id:item.goods_id,goods_price:item.goods_price,goods_num:item.goods_num}); | ||
| 3260 | - | ||
| 3261 | - }else{ | ||
| 3262 | - var prom=null; | ||
| 3263 | - await getApp().request.promiseGet("/api/weshop/promgoods/get/"+os.stoid+"/"+item.prom_id,{}).then(res=>{ | ||
| 3264 | - if(res.data.code==0){ prom=res.data.data; } | 3192 | + determine_expres: function (e) { |
| 3193 | + this.setData({open_express: 0}); | ||
| 3194 | + if (this.data.is_b_now == 1) | ||
| 3195 | + this.calculatePrice2(); | ||
| 3196 | + else | ||
| 3197 | + this.calculatePrice(); | ||
| 3198 | + }, | ||
| 3199 | + | ||
| 3200 | + //点击打开优惠券使用说明 | ||
| 3201 | + clik_coupons: function (e) { | ||
| 3202 | + var ind = e.currentTarget.dataset.idx; | ||
| 3203 | + var is_open = this.data.selected_quan_list[ind].is_open; | ||
| 3204 | + | ||
| 3205 | + if (is_open == 1) is_open = 0; | ||
| 3206 | + else is_open = 1; | ||
| 3207 | + | ||
| 3208 | + var txt = "selected_quan_list[" + ind + "].is_open" | ||
| 3209 | + var obj = {}; | ||
| 3210 | + obj[txt] = is_open; | ||
| 3211 | + | ||
| 3212 | + this.setData(obj); | ||
| 3213 | + this.setData({disabled: 1}) | ||
| 3214 | + }, | ||
| 3215 | + | ||
| 3216 | + clik_coupons2: function (e) { | ||
| 3217 | + var ind = e.currentTarget.dataset.idx; | ||
| 3218 | + var is_open = this.data.get_by_quan_list[ind].is_open; | ||
| 3219 | + | ||
| 3220 | + if (is_open == 1) is_open = 0; | ||
| 3221 | + else is_open = 1; | ||
| 3222 | + | ||
| 3223 | + var txt = "get_by_quan_list[" + ind + "].is_open" | ||
| 3224 | + var obj = {}; | ||
| 3225 | + obj[txt] = is_open; | ||
| 3226 | + | ||
| 3227 | + this.setData(obj); | ||
| 3228 | + this.setData({disabled: 1}) | ||
| 3229 | + }, | ||
| 3230 | + | ||
| 3231 | + | ||
| 3232 | + //设置默认物流 | ||
| 3233 | + select_default_logistics: function () { | ||
| 3234 | + var th = this; | ||
| 3235 | + var is_shipping_code = this.data.is_shipping_code | ||
| 3236 | + getApp().request.put("/api/weshop/users/update", { | ||
| 3237 | + data: {user_id: getApp().globalData.user_id, store_id: oo.stoid, def_exp_code: is_shipping_code}, | ||
| 3238 | + success: function (rse) { | ||
| 3239 | + if (rse.data.code == 0) { | ||
| 3240 | + getApp().globalData.userInfo.def_exp_code = is_shipping_code; | ||
| 3241 | + th.setData({open_express: 0}); | ||
| 3242 | + //----计算此时购物车的价格---- | ||
| 3243 | + if (th.data.is_b_now == 1) th.calculatePrice2(); | ||
| 3244 | + else th.calculatePrice(); | ||
| 3245 | + } | ||
| 3246 | + } | ||
| 3247 | + }) | ||
| 3248 | + }, | ||
| 3249 | + | ||
| 3250 | + //更新下默认,在onshow里面 | ||
| 3251 | + update_code(){ | ||
| 3252 | + var th = this, m_wind = 0, def_exp_code = getApp().globalData.userInfo.def_exp_code; | ||
| 3253 | + //--定时器,判断wu_arr不未空-- | ||
| 3254 | + var uii = setInterval(function () { | ||
| 3255 | + if (th.data.wu_arr) { | ||
| 3256 | + clearInterval(uii); | ||
| 3257 | + for (var k = 0; k < th.data.wu_arr.length; k++) { | ||
| 3258 | + var item = th.data.wu_arr[k]; | ||
| 3259 | + if (def_exp_code == item.code) { | ||
| 3260 | + m_wind = k; | ||
| 3261 | + } | ||
| 3262 | + } | ||
| 3263 | + //--如果是立即购买-- | ||
| 3264 | + if (th.data.is_b_now == 1) { | ||
| 3265 | + th.setData({index: m_wind, is_express: m_wind}); | ||
| 3266 | + } else { | ||
| 3267 | + var ui = setInterval(function () { | ||
| 3268 | + if (th.data.cartlist) { | ||
| 3269 | + var c_arr = th.data.cartlist; | ||
| 3270 | + for (var i in c_arr) { | ||
| 3271 | + c_arr[i].wind = m_wind; | ||
| 3272 | + } | ||
| 3273 | + th.setData({cartlist: c_arr, is_express: m_wind}) | ||
| 3274 | + clearInterval(ui); | ||
| 3275 | + } | ||
| 3276 | + }, 500) | ||
| 3277 | + } | ||
| 3278 | + } | ||
| 3279 | + }, 500); | ||
| 3280 | + }, | ||
| 3281 | + //-----获取购物车进来的劵------- | ||
| 3282 | + get_cart_quan: async function (order_prom_list_cart) { | ||
| 3283 | + var th = this; | ||
| 3284 | + var is_xz_yh = 1; | ||
| 3285 | + //等待值的出现 | ||
| 3286 | + //getApp().waitfor2(this,"g_cart_q_time","order_prom_list_cart",async function () { | ||
| 3287 | + //var arr=th.data.order_prom_list_cart; | ||
| 3288 | + var arr = order_prom_list_cart; | ||
| 3289 | + if (!arr) arr = []; | ||
| 3290 | + //如果系统有限制使用优惠券 | ||
| 3291 | + if (th.data.is_close_quan) return false; | ||
| 3292 | + | ||
| 3293 | + //------------开始计算使用优惠券相关------------ | ||
| 3294 | + for (var ind in arr) { | ||
| 3295 | + var ep = arr[ind]; | ||
| 3296 | + var goodlist = ep.goods; | ||
| 3297 | + var pickup_id = ep.pickup_id; | ||
| 3298 | + //--更优惠券抵用有关,立即购买的,如果是购物车,如果有等级价还有考虑等级价的东西 | ||
| 3299 | + //就要把相应的值,写入cartlist数组中-- | ||
| 3300 | + var ckeck_quan_price = 0, | ||
| 3301 | + check_quan_price_list = '', | ||
| 3302 | + check_quan_ware_list = ''; | ||
| 3303 | + | ||
| 3304 | + for (var i in goodlist) { | ||
| 3305 | + var gd = goodlist[i]; | ||
| 3306 | + //--如果是秒杀就跳出,如果是赠品,如果是组合购,如果是限制使用优惠券-- | ||
| 3307 | + if (gd.prom_type == 1 || gd.is_gift || gd.prom_type == 7) { | ||
| 3308 | + continue; | ||
| 3309 | + } | ||
| 3310 | + //如果有限制使用优惠券,就要返回 | ||
| 3311 | + if (gd.prom_type == 3) { | ||
| 3312 | + if (th.data.prom_goods_map[pickup_id][gd.prom_id].is_xz_yh) continue; | ||
| 3313 | + th.data.prom_goods_map[pickup_id][gd.prom_id].coupon_sele = 1; | ||
| 3314 | + } | ||
| 3315 | + is_xz_yh = 0; | ||
| 3316 | + var item_price = gd.goods_price * gd.goods_num; | ||
| 3317 | + //-- 如果有平摊下去,有实收价格的时候,就要用account来计算价格 -- | ||
| 3318 | + if (gd.account_fir != null && gd.account_fir != undefined) { | ||
| 3319 | + item_price = gd.account_fir * gd.goods_num; | ||
| 3320 | + } | ||
| 3321 | + ckeck_quan_price += item_price; | ||
| 3322 | + | ||
| 3323 | + //--组装价格list-- | ||
| 3324 | + if (check_quan_price_list) { | ||
| 3325 | + check_quan_price_list += "," + item_price; | ||
| 3326 | + } else { | ||
| 3327 | + check_quan_price_list = item_price; | ||
| 3328 | + } | ||
| 3329 | + //--组装商品的线下erpwareid-- | ||
| 3330 | + if (check_quan_ware_list) { | ||
| 3331 | + check_quan_ware_list += "," + encodeURIComponent(gd['erpwareid']); | ||
| 3332 | + } else { | ||
| 3333 | + check_quan_ware_list = encodeURIComponent(gd['erpwareid']); | ||
| 3334 | + } | ||
| 3335 | + } | ||
| 3336 | + //优惠券优惠的金额要控制到优惠券的选择条件 | ||
| 3337 | + var cut_price = 0; | ||
| 3338 | + for (var i in th.data.prom_goods_map[pickup_id]) { | ||
| 3339 | + var obj = th.data.prom_goods_map[pickup_id][i]; | ||
| 3340 | + if (obj.coupon_sele) { | ||
| 3341 | + cut_price += obj.price - obj.prom_price; | ||
| 3342 | + } | ||
| 3343 | + } | ||
| 3344 | + | ||
| 3345 | + arr[ind].ckeck_quan_price = ckeck_quan_price - cut_price; | ||
| 3346 | + arr[ind].check_quan_ware_list = check_quan_ware_list; | ||
| 3347 | + arr[ind].check_quan_price_list = check_quan_price_list; | ||
| 3348 | + | ||
| 3349 | + //是否关闭使用优惠券 | ||
| 3350 | + if (th.data.is_close_quan != 1 && !is_xz_yh) { | ||
| 3351 | + //--调用接口,获取优惠券的列表,3秒钟内控制接口请求-- | ||
| 3352 | + var url = "/api/weshop/couponList/getUseCouponList"; | ||
| 3353 | + await app.request.promiseGet(url, { | ||
| 3354 | + data: { | ||
| 3355 | + storeId: oo.stoid, | ||
| 3356 | + userId: app.globalData.user_id, | ||
| 3357 | + BuySum: ckeck_quan_price, | ||
| 3358 | + WareIds: check_quan_ware_list, | ||
| 3359 | + pageSize: 100 | ||
| 3360 | + } | ||
| 3361 | + }).then(res => { | ||
| 3362 | + if (res.data.code == 0) { | ||
| 3363 | + var quan_list = res.data.data.pageData; | ||
| 3364 | + arr[ind].quan_list = th.check_is_frozenQuan(quan_list, th.data.frozenQuan); | ||
| 3365 | + } | ||
| 3366 | + }) | ||
| 3367 | + } | ||
| 3368 | + } | ||
| 3369 | + | ||
| 3370 | + //如果是搭配购的立即购买的时候 | ||
| 3371 | + if (th.data.is_b_now) { | ||
| 3372 | + if (arr && arr.length > 0) { | ||
| 3373 | + var quanlist = arr[0].quan_list; | ||
| 3374 | + th.setData({selected_quan_list: quanlist, cartlist: arr}) | ||
| 3375 | + } | ||
| 3376 | + } else { | ||
| 3377 | + th.setData({cartlist: arr}) | ||
| 3378 | + th.set_can_num(); | ||
| 3379 | + } | ||
| 3380 | + | ||
| 3381 | + //}) | ||
| 3382 | + }, | ||
| 3383 | + | ||
| 3384 | + //------ 获取立即购买的购物车的劵 -------- | ||
| 3385 | + get_buy_now_quan: function () { | ||
| 3386 | + var quanlist = null, th = this, frozenQuan = null; | ||
| 3387 | + var good = this.data.bn_goods; | ||
| 3388 | + if (good.prom_price) { | ||
| 3389 | + th.data.ckeck_quan_price = good.prom_price; //如果有优惠价,就用优惠价 | ||
| 3390 | + } else if (good.is_offline) { | ||
| 3391 | + th.data.ckeck_quan_price = good.offline_price; //如果有线下取价,就用线下价 | ||
| 3392 | + } | ||
| 3393 | + //--如果商家后台没有限制使用优惠券,同时商品的优惠活动没有限制使用优惠券-- | ||
| 3394 | + if (th.data.is_close_quan != 1 && th.data.bn_goods.is_xz_yh != 1) { | ||
| 3395 | + var url0 = "/api/weshop/users/frozenQuan/listFrozenQuan/" + app.globalData.user_id; | ||
| 3396 | + var url = "/api/weshop/couponList/getUseCouponList"; | ||
| 3397 | + app.request.promiseGet(url0, {1: 1}).then(res => { | ||
| 3398 | + if (res.data.code == 0) { | ||
| 3399 | + frozenQuan = res.data.data; | ||
| 3400 | + th.data.frozenQuan = frozenQuan; | ||
| 3401 | + } | ||
| 3402 | + app.request.time_limit_get(6, url, { | ||
| 3403 | + data: { | ||
| 3404 | + storeId: oo.stoid, | ||
| 3405 | + userId: app.globalData.user_id, | ||
| 3406 | + BuySum: th.data.ckeck_quan_price, | ||
| 3407 | + WareIds: encodeURIComponent(th.data.check_quan_ware_list), | ||
| 3408 | + pageSize: 100 | ||
| 3409 | + }, | ||
| 3410 | + success: function (res) { | ||
| 3411 | + if (res.data.code == 0) { | ||
| 3412 | + quanlist = res.data.data.pageData; | ||
| 3413 | + if (quanlist) { | ||
| 3414 | + quanlist = th.check_is_frozenQuan(quanlist, frozenQuan); | ||
| 3415 | + th.setData({selected_quan_list: quanlist}) | ||
| 3416 | + } | ||
| 3417 | + } | ||
| 3418 | + } | ||
| 3265 | }) | 3419 | }) |
| 3266 | - var ob={}; | ||
| 3267 | - ob.prom_id=item.prom_id; | ||
| 3268 | - ob.price=item.goods_price*item.goods_num; | ||
| 3269 | - ob.goods_num=item.goods_num; | ||
| 3270 | - ob.is_bz=prom.is_bz; | ||
| 3271 | - ob.is_xz_yh=prom.is_xz_yh; | ||
| 3272 | - ob.goods=new Array(); | ||
| 3273 | - ob.goods.push({goods_id:item.goods_id,goods_price:item.goods_price,goods_num:item.goods_num}); | ||
| 3274 | - map[pickid][item.prom_id]=ob; | ||
| 3275 | - } | ||
| 3276 | - }else{ | ||
| 3277 | - var ob={}; | ||
| 3278 | - var prom=null; | ||
| 3279 | - await getApp().request.promiseGet("/api/weshop/promgoods/get/"+os.stoid+"/"+item.prom_id,{}).then(res=>{ | ||
| 3280 | - if(res.data.code==0){ prom=res.data.data; } | ||
| 3281 | }) | 3420 | }) |
| 3282 | - ob.prom_id=item.prom_id; | ||
| 3283 | - ob.price=item.goods_price*item.goods_num; | ||
| 3284 | - ob.goods_num=item.goods_num; | ||
| 3285 | - ob.is_bz=prom.is_bz; | ||
| 3286 | - ob.is_xz_yh=prom.is_xz_yh; | ||
| 3287 | - ob.goods=new Array(); | ||
| 3288 | - ob.goods.push({goods_id:item.goods_id,goods_price:item.goods_price,goods_num:item.goods_num}); | 3421 | + } |
| 3422 | + }, | ||
| 3423 | + | ||
| 3424 | + //检查区域是不是包邮 | ||
| 3425 | + check_area: function (arr) { | ||
| 3426 | + var user_addr = this.data.user_addr; | ||
| 3427 | + if (!user_addr) return 0; | ||
| 3428 | + for (var i in arr) { | ||
| 3429 | + var item = arr[i]; | ||
| 3430 | + if (user_addr.twon == item || user_addr.district == item | ||
| 3431 | + || user_addr.city == item || user_addr.province == item) { | ||
| 3432 | + return 0; | ||
| 3433 | + } | ||
| 3434 | + } | ||
| 3435 | + return 1; | ||
| 3436 | + }, | ||
| 3437 | + | ||
| 3438 | + //检查立即购买的商品是不是不包邮 | ||
| 3439 | + check_good: function (arr, goods_id) { | ||
| 3440 | + if (!goods_id) goods_id = this.data.bn_goods.goods_id; | ||
| 3441 | + for (var i in arr) { | ||
| 3442 | + var item = arr[i]; | ||
| 3443 | + if (goods_id == item) return 0; | ||
| 3444 | + } | ||
| 3445 | + return 1; | ||
| 3446 | + }, | ||
| 3447 | + check_by_area: function (region_list) { | ||
| 3448 | + var arr = region_list.split(","); | ||
| 3449 | + var check = this.check_area(arr); | ||
| 3450 | + return !check; | ||
| 3451 | + }, | ||
| 3452 | + check_by_goods: function (goods_list, goods_id) { | ||
| 3453 | + var arr = goods_list.split(","); | ||
| 3454 | + var check = this.check_good(arr, goods_id); | ||
| 3455 | + return !check; | ||
| 3456 | + }, | ||
| 3457 | + //立即购买获取优惠活动的内容 | ||
| 3458 | + buy_now_prom_goods: function (prom_id, arr, func) { | ||
| 3459 | + var price = arr.shop_price * arr.goods_num; | ||
| 3460 | + var prom = null; | ||
| 3461 | + getApp().request.promiseGet("/api/weshop/promgoods/get/" + os.stoid + "/" + prom_id, {}).then(res => { | ||
| 3462 | + if (res.data.code == 0) { | ||
| 3463 | + prom = res.data.data; | ||
| 3464 | + return getApp().request.promiseGet("/api/weshop/goods/getDiscount", { | ||
| 3465 | + data: { | ||
| 3466 | + price: price, | ||
| 3467 | + prom_id: prom_id, | ||
| 3468 | + goods_num: arr.goods_num, | ||
| 3469 | + user_id: getApp().globalData.user_id, | ||
| 3470 | + is_bz: prom.is_bz | ||
| 3471 | + } | ||
| 3472 | + }) | ||
| 3473 | + } else { | ||
| 3474 | + func(arr); | ||
| 3475 | + } | ||
| 3476 | + }).then(res => { | ||
| 3477 | + if (res.data.code == 0) { | ||
| 3478 | + var get_data = res.data.data; | ||
| 3479 | + arr.is_bz = prom.is_bz; //是不是倍增 | ||
| 3480 | + arr.is_xz_yh = prom.is_xz_yh; //是不是优惠 | ||
| 3481 | + arr.bs = get_data.bs; //是不是倍数 | ||
| 3482 | + arr.is_past = get_data.is_past; //是不是包邮 | ||
| 3483 | + arr.prom_price = get_data.price >= 0 ? get_data.price : price; | ||
| 3484 | + arr.s_intValue = get_data.intValue; | ||
| 3485 | + arr.s_coupon_id = get_data.coupon_id; | ||
| 3486 | + arr.s_coupon_num = get_data.coupon_num; | ||
| 3487 | + //-- 看是不是有赠品 -- | ||
| 3488 | + if (get_data.gift_id) { | ||
| 3489 | + arr.gift_id = get_data.gift_id; | ||
| 3490 | + arr.gift_goods_id = get_data.goods_id; | ||
| 3491 | + arr.gift_goods_name = get_data.goods_name; | ||
| 3492 | + arr.gift_goods_color = get_data.goodsinfo.goods_color; | ||
| 3493 | + arr.gift_goods_spec = get_data.goodsinfo.goods_spec; | ||
| 3494 | + arr.gift_original_img = get_data.goodsinfo.original_img; | ||
| 3495 | + arr.gift_weight = get_data.goodsinfo.weight; | ||
| 3496 | + arr.gift_exp_sum_type = get_data.goodsinfo.exp_sum_type; | ||
| 3497 | + arr.gift_uniform_exp_sum = get_data.goodsinfo.uniform_exp_sum; | ||
| 3498 | + arr.gift_limit_num = get_data.limit_num; | ||
| 3499 | + arr.gift_storecount = get_data.gift_storecount; | ||
| 3500 | + } | ||
| 3501 | + arr.s_libao = get_data.libao; | ||
| 3502 | + arr.s_lb_num = get_data.lb_num; | ||
| 3503 | + arr.prom_id = prom_id; | ||
| 3504 | + } | ||
| 3505 | + func(arr); | ||
| 3506 | + }) | ||
| 3507 | + }, | ||
| 3508 | + //--检查订单优惠-- | ||
| 3509 | + check_is_order_prom: function (condition, func, pick) { | ||
| 3510 | + var th = this; | ||
| 3511 | + if (this.data.is_b_now == 1) pick = this.data.bn_pick; | ||
| 3512 | + //---获取订单优惠--- | ||
| 3513 | + getApp().request.promiseGet("/api/weshop/promorder/getOrderPromotion", { | ||
| 3514 | + data: {store_id: os.stoid, orderAmount: condition} | ||
| 3515 | + }).then(res => { | ||
| 3516 | + if (res.data.code == 0) { | ||
| 3517 | + var data = res.data.data; | ||
| 3518 | + th.data.order_prom[pick] = data; | ||
| 3519 | + } | ||
| 3520 | + func(); | ||
| 3521 | + }) | ||
| 3522 | + }, | ||
| 3523 | + | ||
| 3524 | + //--- 加入优惠活动的映射中,同时要有一个good列表 --- | ||
| 3525 | + add_prom_goods_map: async function (item) { | ||
| 3526 | + var th = this; | ||
| 3527 | + var pickid = item.pick_id; | ||
| 3528 | + var map = th.data.prom_goods_map; | ||
| 3529 | + var obj = map[pickid]; | ||
| 3530 | + | ||
| 3531 | + if (map[pickid]) { | ||
| 3532 | + if (map[pickid][item.prom_id]) { | ||
| 3533 | + var ob = map[pickid][item.prom_id]; | ||
| 3534 | + ob.price += item.goods_price * item.goods_num; | ||
| 3535 | + ob.goods_num += item.goods_num; | ||
| 3536 | + ob.goods.push({goods_id: item.goods_id, goods_price: item.goods_price, goods_num: item.goods_num}); | ||
| 3289 | 3537 | ||
| 3290 | - var obj={}; | ||
| 3291 | - obj[item.prom_id]=ob; | ||
| 3292 | - map[pickid]=obj; | 3538 | + } else { |
| 3539 | + var prom = null; | ||
| 3540 | + await getApp().request.promiseGet("/api/weshop/promgoods/get/" + os.stoid + "/" + item.prom_id, {}).then(res => { | ||
| 3541 | + if (res.data.code == 0) { | ||
| 3542 | + prom = res.data.data; | ||
| 3543 | + } | ||
| 3544 | + }) | ||
| 3545 | + var ob = {}; | ||
| 3546 | + ob.prom_id = item.prom_id; | ||
| 3547 | + ob.price = item.goods_price * item.goods_num; | ||
| 3548 | + ob.goods_num = item.goods_num; | ||
| 3549 | + ob.is_bz = prom.is_bz; | ||
| 3550 | + ob.is_xz_yh = prom.is_xz_yh; | ||
| 3551 | + ob.goods = new Array(); | ||
| 3552 | + ob.goods.push({goods_id: item.goods_id, goods_price: item.goods_price, goods_num: item.goods_num}); | ||
| 3553 | + map[pickid][item.prom_id] = ob; | ||
| 3554 | + } | ||
| 3555 | + } else { | ||
| 3556 | + var ob = {}; | ||
| 3557 | + var prom = null; | ||
| 3558 | + await getApp().request.promiseGet("/api/weshop/promgoods/get/" + os.stoid + "/" + item.prom_id, {}).then(res => { | ||
| 3559 | + if (res.data.code == 0) { | ||
| 3560 | + prom = res.data.data; | ||
| 3561 | + } | ||
| 3562 | + }) | ||
| 3563 | + ob.prom_id = item.prom_id; | ||
| 3564 | + ob.price = item.goods_price * item.goods_num; | ||
| 3565 | + ob.goods_num = item.goods_num; | ||
| 3566 | + ob.is_bz = prom.is_bz; | ||
| 3567 | + ob.is_xz_yh = prom.is_xz_yh; | ||
| 3568 | + ob.goods = new Array(); | ||
| 3569 | + ob.goods.push({goods_id: item.goods_id, goods_price: item.goods_price, goods_num: item.goods_num}); | ||
| 3570 | + | ||
| 3571 | + var obj = {}; | ||
| 3572 | + obj[item.prom_id] = ob; | ||
| 3573 | + map[pickid] = obj; | ||
| 3293 | 3574 | ||
| 3294 | } | 3575 | } |
| 3295 | }, | 3576 | }, |
| 3296 | 3577 | ||
| 3297 | - //计算立即购买赠品的物流费用 | ||
| 3298 | - 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) { | ||
| 3299 | - var good=this.data.buy_now_gift_goods; | ||
| 3300 | - var goods_weight=-1, goods_piece=-1; | ||
| 3301 | - var gift_shipping_price=0; | ||
| 3302 | - var th=this; | 3578 | + //计算立即购买赠品的物流费用 |
| 3579 | + 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) { | ||
| 3580 | + var good = this.data.buy_now_gift_goods; | ||
| 3581 | + var goods_weight = -1, goods_piece = -1; | ||
| 3582 | + var gift_shipping_price = 0; | ||
| 3583 | + var th = this; | ||
| 3303 | switch (good['exp_sum_type']) { | 3584 | switch (good['exp_sum_type']) { |
| 3304 | case 1: | 3585 | case 1: |
| 3305 | //统一运费 | 3586 | //统一运费 |
| 3306 | - gift_shipping_price += good['uniform_exp_sum']; | ||
| 3307 | - gift_shipping_price+=o_shipping_price; | ||
| 3308 | - break; | 3587 | + gift_shipping_price += good['uniform_exp_sum']; |
| 3588 | + gift_shipping_price += o_shipping_price; | ||
| 3589 | + break; | ||
| 3309 | case 2: | 3590 | case 2: |
| 3310 | if (goods_weight < 0) goods_weight = 0; | 3591 | if (goods_weight < 0) goods_weight = 0; |
| 3311 | //累积商品重量 每种商品的重量 * 数量 | 3592 | //累积商品重量 每种商品的重量 * 数量 |
| 3312 | goods_weight += good['weight'] * good['buynum']; | 3593 | goods_weight += good['weight'] * good['buynum']; |
| 3313 | - if(goods_weight1>0){ | ||
| 3314 | - goods_weight+=goods_weight1; | ||
| 3315 | - } | ||
| 3316 | - break; | 3594 | + if (goods_weight1 > 0) { |
| 3595 | + goods_weight += goods_weight1; | ||
| 3596 | + } | ||
| 3597 | + break; | ||
| 3317 | case 3: | 3598 | case 3: |
| 3318 | if (goods_piece < 0) goods_piece = 0; | 3599 | if (goods_piece < 0) goods_piece = 0; |
| 3319 | //累积商品数量 | 3600 | //累积商品数量 |
| 3320 | - goods_piece += good['buynum']; | ||
| 3321 | - if(goods_piece1){ | ||
| 3322 | - goods_piece+=goods_piece1; | ||
| 3323 | - } | ||
| 3324 | - break; | ||
| 3325 | - } | ||
| 3326 | - | ||
| 3327 | - | 3601 | + goods_piece += good['buynum']; |
| 3602 | + if (goods_piece1) { | ||
| 3603 | + goods_piece += goods_piece1; | ||
| 3604 | + } | ||
| 3605 | + break; | ||
| 3606 | + } | ||
| 3607 | + | ||
| 3608 | + | ||
| 3328 | //如果有设置不包邮区域的时候 | 3609 | //如果有设置不包邮区域的时候 |
| 3329 | - if(no_by_data && no_by_data.region_list){ | ||
| 3330 | - if(th.check_by_area(no_by_data.region_list)){ | ||
| 3331 | - gift_freight_free=0; | ||
| 3332 | - th.data.is_no_by[th.data.bn_pick]=1; | 3610 | + if (no_by_data && no_by_data.region_list) { |
| 3611 | + if (th.check_by_area(no_by_data.region_list)) { | ||
| 3612 | + gift_freight_free = 0; | ||
| 3613 | + th.data.is_no_by[th.data.bn_pick] = 1; | ||
| 3333 | } | 3614 | } |
| 3334 | } | 3615 | } |
| 3335 | //如果有设置不包邮商品 | 3616 | //如果有设置不包邮商品 |
| 3336 | - if(no_by_data && no_by_data.goods_list && gift_freight_free){ | ||
| 3337 | - if(th.check_by_goods(no_by_data.goods_list,good.goods_id)){ | ||
| 3338 | - gift_freight_free=0; | 3617 | + if (no_by_data && no_by_data.goods_list && gift_freight_free) { |
| 3618 | + if (th.check_by_goods(no_by_data.goods_list, good.goods_id)) { | ||
| 3619 | + gift_freight_free = 0; | ||
| 3339 | //th.data.is_no_by[th.data.bn_pick]=1; | 3620 | //th.data.is_no_by[th.data.bn_pick]=1; |
| 3340 | } | 3621 | } |
| 3341 | } | 3622 | } |
| 3342 | - | ||
| 3343 | - var t_shipping_price= | 3623 | + |
| 3624 | + var t_shipping_price = | ||
| 3344 | this.calculatewuliu(code, gift_shipping_price, goods_weight, | 3625 | this.calculatewuliu(code, gift_shipping_price, goods_weight, |
| 3345 | goods_piece, user_addr, gift_freight_free, allpice, rs); | 3626 | goods_piece, user_addr, gift_freight_free, allpice, rs); |
| 3346 | return t_shipping_price; | 3627 | return t_shipping_price; |
| 3347 | 3628 | ||
| 3348 | }, | 3629 | }, |
| 3349 | 3630 | ||
| 3350 | - //从优惠的映射中拿出商品从表的item | ||
| 3351 | - item_map_get_goods:function(goods_id,map){ | ||
| 3352 | - for(var i in map.goods){ | ||
| 3353 | - if(map.goods[i].goods_id==goods_id) return map.goods[i]; | 3631 | + //从优惠的映射中拿出商品从表的item |
| 3632 | + item_map_get_goods: function (goods_id, map) { | ||
| 3633 | + for (var i in map.goods) { | ||
| 3634 | + if (map.goods[i].goods_id == goods_id) return map.goods[i]; | ||
| 3354 | } | 3635 | } |
| 3355 | }, | 3636 | }, |
| 3356 | //从优惠的映射中拿出商品从表的item | 3637 | //从优惠的映射中拿出商品从表的item |
| 3357 | - arr_get_goods:function(goods_id,arr){ | ||
| 3358 | - for(var i in arr){ | ||
| 3359 | - if(arr[i].goods_id==goods_id) return arr[i]; | 3638 | + arr_get_goods: function (goods_id, arr) { |
| 3639 | + for (var i in arr) { | ||
| 3640 | + if (arr[i].goods_id == goods_id) return arr[i]; | ||
| 3360 | } | 3641 | } |
| 3361 | }, | 3642 | }, |
| 3362 | - | 3643 | + |
| 3363 | //检查是不是有其他门店的订单在选择了券 | 3644 | //检查是不是有其他门店的订单在选择了券 |
| 3364 | - check_other_use:function (iter,pkid) { | ||
| 3365 | - var using=this.data.using_quan; | ||
| 3366 | - var is_use=0; | ||
| 3367 | - if(using){ | ||
| 3368 | - for(var i in using){ | ||
| 3369 | - if(i==pkid) continue; | ||
| 3370 | - if(iter.CashRepNo==using[i].coupon_no){ | ||
| 3371 | - is_use=1; break; | 3645 | + check_other_use: function (iter, pkid) { |
| 3646 | + var using = this.data.using_quan; | ||
| 3647 | + var is_use = 0; | ||
| 3648 | + if (using) { | ||
| 3649 | + for (var i in using) { | ||
| 3650 | + if (i == pkid) continue; | ||
| 3651 | + if (iter.CashRepNo == using[i].coupon_no) { | ||
| 3652 | + is_use = 1; | ||
| 3653 | + break; | ||
| 3372 | } | 3654 | } |
| 3373 | } | 3655 | } |
| 3374 | } | 3656 | } |
| 3375 | return is_use; | 3657 | return is_use; |
| 3376 | }, | 3658 | }, |
| 3377 | //检查是不是有其他门店的订单在选择了包邮券 | 3659 | //检查是不是有其他门店的订单在选择了包邮券 |
| 3378 | - check_other_use_by:function (iter,pkid) { | ||
| 3379 | - var using=this.data.using_quan; | ||
| 3380 | - var is_use=0; | ||
| 3381 | - if(using){ | ||
| 3382 | - for(var i in using){ | ||
| 3383 | - if(i==pkid) continue; | ||
| 3384 | - if(iter.no==using[i].coupon_no){ | ||
| 3385 | - is_use=1; break; | 3660 | + check_other_use_by: function (iter, pkid) { |
| 3661 | + var using = this.data.using_quan; | ||
| 3662 | + var is_use = 0; | ||
| 3663 | + if (using) { | ||
| 3664 | + for (var i in using) { | ||
| 3665 | + if (i == pkid) continue; | ||
| 3666 | + if (iter.no == using[i].coupon_no) { | ||
| 3667 | + is_use = 1; | ||
| 3668 | + break; | ||
| 3386 | } | 3669 | } |
| 3387 | } | 3670 | } |
| 3388 | } | 3671 | } |
| 3389 | return is_use; | 3672 | return is_use; |
| 3390 | }, | 3673 | }, |
| 3391 | - | ||
| 3392 | - //跳转到购买卡 | ||
| 3393 | - buycard:function(){ | ||
| 3394 | - getApp().goto("/pages/user/plus/plus"); | ||
| 3395 | - getApp().globalData.plus_buy_back=1; | ||
| 3396 | - }, | 3674 | + |
| 3675 | + //跳转到购买卡 | ||
| 3676 | + buycard: function () { | ||
| 3677 | + getApp().goto("/pages/user/plus/plus"); | ||
| 3678 | + getApp().globalData.plus_buy_back = 1; | ||
| 3679 | + }, | ||
| 3397 | 3680 | ||
| 3398 | //跳转关闭弹出框的显示 | 3681 | //跳转关闭弹出框的显示 |
| 3399 | - close_offline:function(){ | ||
| 3400 | - this.setData({is_offline_show:0}); | ||
| 3401 | - }, | ||
| 3402 | - | ||
| 3403 | - //立即购买显示弹出框 | ||
| 3404 | - bn_pop_offline:function(){ | ||
| 3405 | - var off_price=this.data.bn_goods.shop_price-this.data.bn_goods.offline_price; | ||
| 3406 | - //是不是线下 | ||
| 3407 | - var is_get_offline=this.data.bn_goods.is_offline; | ||
| 3408 | - this.setData({is_offline_show:1,show_off_price:off_price.toFixed(2),is_get_offline:is_get_offline}); | ||
| 3409 | - }, | ||
| 3410 | - | ||
| 3411 | - //确定使用线下取价 | ||
| 3412 | - sure_offline:function(){ | ||
| 3413 | - var bn_goods=this.data.bn_goods; | ||
| 3414 | - if(bn_goods && bn_goods.prom_type==0){ | ||
| 3415 | - bn_goods.is_offline=1; | ||
| 3416 | - this.setData({is_offline_show:0,bn_goods:bn_goods}); | ||
| 3417 | - this.calculatePrice2(); | ||
| 3418 | - } | ||
| 3419 | - //就是购物车结算时的 | ||
| 3420 | - else{ | ||
| 3421 | - var index=this.data.pop_offline_index; | ||
| 3422 | - var txt="cartlist["+index+"].is_offline"; | ||
| 3423 | - this.setData({[txt]:1,is_offline_show:0,}); | ||
| 3424 | - this.data.old_cartlist[index].is_offline=1; | ||
| 3425 | - this.calculatePrice(); | ||
| 3426 | - } | ||
| 3427 | - }, | ||
| 3428 | - | ||
| 3429 | - | ||
| 3430 | - //取消使用线下取价 | ||
| 3431 | - cancle_offline:function(){ | ||
| 3432 | - //判断是不是立即购买 | ||
| 3433 | - var bn_goods=this.data.bn_goods; | ||
| 3434 | - if(bn_goods && bn_goods.prom_type==0){ | ||
| 3435 | - bn_goods.is_offline=0; | ||
| 3436 | - this.setData({is_offline_show:0,bn_goods:bn_goods}); | ||
| 3437 | - this.calculatePrice2(); | ||
| 3438 | - } | ||
| 3439 | - //就是购物车结算时的 | ||
| 3440 | - else{ | ||
| 3441 | - var index=this.data.pop_offline_index; | ||
| 3442 | - var txt="cartlist["+index+"].is_offline"; | ||
| 3443 | - this.setData({[txt]:0,is_offline_show:0,}) | ||
| 3444 | - this.data.old_cartlist[index].is_offline=0; | 3682 | + close_offline: function () { |
| 3683 | + this.setData({is_offline_show: 0}); | ||
| 3684 | + }, | ||
| 3685 | + | ||
| 3686 | + //立即购买显示弹出框 | ||
| 3687 | + bn_pop_offline: function () { | ||
| 3688 | + var off_price = this.data.bn_goods.shop_price - this.data.bn_goods.offline_price; | ||
| 3689 | + //是不是线下 | ||
| 3690 | + var is_get_offline = this.data.bn_goods.is_offline; | ||
| 3691 | + this.setData({is_offline_show: 1, show_off_price: off_price.toFixed(2), is_get_offline: is_get_offline}); | ||
| 3692 | + }, | ||
| 3693 | + | ||
| 3694 | + //确定使用线下取价 | ||
| 3695 | + sure_offline: function () { | ||
| 3696 | + var bn_goods = this.data.bn_goods; | ||
| 3697 | + if (bn_goods && bn_goods.prom_type == 0) { | ||
| 3698 | + bn_goods.is_offline = 1; | ||
| 3699 | + this.setData({is_offline_show: 0, bn_goods: bn_goods}); | ||
| 3700 | + this.calculatePrice2(); | ||
| 3701 | + } | ||
| 3702 | + //就是购物车结算时的 | ||
| 3703 | + else { | ||
| 3704 | + var index = this.data.pop_offline_index; | ||
| 3705 | + var txt = "cartlist[" + index + "].is_offline"; | ||
| 3706 | + this.setData({[txt]: 1, is_offline_show: 0,}); | ||
| 3707 | + this.data.old_cartlist[index].is_offline = 1; | ||
| 3708 | + this.calculatePrice(); | ||
| 3709 | + } | ||
| 3710 | + }, | ||
| 3711 | + | ||
| 3712 | + | ||
| 3713 | + //取消使用线下取价 | ||
| 3714 | + cancle_offline: function () { | ||
| 3715 | + //判断是不是立即购买 | ||
| 3716 | + var bn_goods = this.data.bn_goods; | ||
| 3717 | + if (bn_goods && bn_goods.prom_type == 0) { | ||
| 3718 | + bn_goods.is_offline = 0; | ||
| 3719 | + this.setData({is_offline_show: 0, bn_goods: bn_goods}); | ||
| 3720 | + this.calculatePrice2(); | ||
| 3721 | + } | ||
| 3722 | + //就是购物车结算时的 | ||
| 3723 | + else { | ||
| 3724 | + var index = this.data.pop_offline_index; | ||
| 3725 | + var txt = "cartlist[" + index + "].is_offline"; | ||
| 3726 | + this.setData({[txt]: 0, is_offline_show: 0,}) | ||
| 3727 | + this.data.old_cartlist[index].is_offline = 0; | ||
| 3445 | this.calculatePrice(); | 3728 | this.calculatePrice(); |
| 3446 | - } | ||
| 3447 | - }, | 3729 | + } |
| 3730 | + }, | ||
| 3448 | 3731 | ||
| 3449 | //-- 弹出购物车选择是不是要店铺优惠 -- | 3732 | //-- 弹出购物车选择是不是要店铺优惠 -- |
| 3450 | - cart_pop_offline:function (e){ | ||
| 3451 | - var index=e.currentTarget.dataset.index; | ||
| 3452 | - var item=this.data.cartlist[index]; | ||
| 3453 | - var off_price=item.offline_price; | 3733 | + cart_pop_offline: function (e) { |
| 3734 | + var index = e.currentTarget.dataset.index; | ||
| 3735 | + var item = this.data.cartlist[index]; | ||
| 3736 | + var off_price = item.offline_price; | ||
| 3454 | //是不是线下 | 3737 | //是不是线下 |
| 3455 | - var is_get_offline=item.is_offline; | ||
| 3456 | - this.setData({pop_offline_index:index,is_offline_show:1,show_off_price:off_price.toFixed(2),is_get_offline:is_get_offline}); | 3738 | + var is_get_offline = item.is_offline; |
| 3739 | + this.setData({ | ||
| 3740 | + pop_offline_index: index, | ||
| 3741 | + is_offline_show: 1, | ||
| 3742 | + show_off_price: off_price.toFixed(2), | ||
| 3743 | + is_get_offline: is_get_offline | ||
| 3744 | + }); | ||
| 3457 | }, | 3745 | }, |
| 3458 | - | ||
| 3459 | - | ||
| 3460 | - | ||
| 3461 | 3746 | ||
| 3462 | 3747 | ||
| 3463 | }); | 3748 | }); |
pages/cart/cart2/cart2.wxml
| @@ -427,6 +427,12 @@ | @@ -427,6 +427,12 @@ | ||
| 427 | <view>优惠活动</view> | 427 | <view>优惠活动</view> |
| 428 | <view class="co-red">- ¥ {{filters.toFix(formData.cut_price,2)}}元</view> | 428 | <view class="co-red">- ¥ {{filters.toFix(formData.cut_price,2)}}元</view> |
| 429 | </view> | 429 | </view> |
| 430 | + <!-- 组合购优惠金额 --> | ||
| 431 | + <view class="item" wx:if="{{formData.zh_cut_price>0}}"> | ||
| 432 | + <view>优惠活动</view> | ||
| 433 | + <view class="co-red">- ¥ {{filters.toFix(formData.zh_cut_price,2)}}元</view> | ||
| 434 | + </view> | ||
| 435 | + | ||
| 430 | <!-- 订单优惠优惠金额 --> | 436 | <!-- 订单优惠优惠金额 --> |
| 431 | <view class="item" wx:if="{{formData.order_prom_amount>0}}"> | 437 | <view class="item" wx:if="{{formData.order_prom_amount>0}}"> |
| 432 | <view>订单优惠</view> | 438 | <view>订单优惠</view> |
pages/cart/cart2/zh_calculate.js
0 → 100644
| 1 | +var regeneratorRuntime = require('../../../utils/runtime.js'); | ||
| 2 | +module.exports = { | ||
| 3 | + //主要的作用,就是把组合购多余的商品进行拆分, | ||
| 4 | + //如果没有达成组合购的要求,所有的商品都打回原价购买 | ||
| 5 | + fir_set_arr: function (c_item) { | ||
| 6 | + //组合活动,以及组合活动从表的商品 | ||
| 7 | + let zh_prom_goods = c_item.zh_prom_goods; | ||
| 8 | + let goods = c_item.goods; //一个门店中所有的商品 | ||
| 9 | + let tfeel = 0,cut_price=0, offline_price = 0, offline_num = 0; | ||
| 10 | + let txt_ite = c_item.need_list; | ||
| 11 | + //多个活动要拿来循环一下 | ||
| 12 | + for (let i in zh_prom_goods) { | ||
| 13 | + let title = ""; //提示语; | ||
| 14 | + //其中的一个活动 | ||
| 15 | + let act_item = zh_prom_goods[i]; | ||
| 16 | + let act_goos = act_item.gdlist; | ||
| 17 | + let act = act_item.act; | ||
| 18 | + | ||
| 19 | + let all_num = 0; //商品数量之和 | ||
| 20 | + let all_price0 = 0; //商品数量之和 | ||
| 21 | + let aprice=0; //达到活动条件的购买价格 | ||
| 22 | + let need_to_buy = 0; | ||
| 23 | + let all_zhqty = 0; //所有商品要求起购数之和 | ||
| 24 | + let no_in_arr = []; //剩余的未加入组合购 | ||
| 25 | + | ||
| 26 | + for (let j in act_goos) { | ||
| 27 | + let item_j = goods.find(function (ele) { | ||
| 28 | + return ele.goods_id == act_goos[j].goods_id; | ||
| 29 | + }) | ||
| 30 | + if(!item_j) continue; | ||
| 31 | + act_goos[j].num = item_j.goods_num; | ||
| 32 | + act_goos[j].goods_price = item_j.goods_price; | ||
| 33 | + let item = act_goos[j]; | ||
| 34 | + if (item.num) { | ||
| 35 | + all_num += item.num; | ||
| 36 | + //当有起购数的控制的时候 | ||
| 37 | + if (item.zhqty) { | ||
| 38 | + all_zhqty += item.zhqty; | ||
| 39 | + if (item.num < item.zhqty) { | ||
| 40 | + need_to_buy += item.zhqty - item.num; | ||
| 41 | + } | ||
| 42 | + if (item.num > item.zhqty) { | ||
| 43 | + for (let i = 0; i < item.num - item.zhqty; i++) { | ||
| 44 | + no_in_arr.push({ | ||
| 45 | + price: item.goods_price, goods_id: item.goods_id, offline_price: item.offline_price | ||
| 46 | + }) | ||
| 47 | + } | ||
| 48 | + } | ||
| 49 | + } else { | ||
| 50 | + for (let j = 0; j < item.num; j++) { | ||
| 51 | + no_in_arr.push({ | ||
| 52 | + price: item.goods_price, goods_id: item.goods_id, offline_price: item.offline_price | ||
| 53 | + }) | ||
| 54 | + } | ||
| 55 | + } | ||
| 56 | + } else { | ||
| 57 | + if (item.zhqty) { | ||
| 58 | + title = "必买商品未加购,下单立享【" + act.zhprice + "元任选" + act.zhbuyqty + "件】"; | ||
| 59 | + need_to_buy += item.zhqty; | ||
| 60 | + } | ||
| 61 | + } | ||
| 62 | + | ||
| 63 | + } | ||
| 64 | + | ||
| 65 | + //当满足组合的要求:总数要满足,起购数要满足 | ||
| 66 | + if (all_num >= act.zhbuyqty && !need_to_buy) { | ||
| 67 | + function sortData(a, b) { | ||
| 68 | + return a.price - b.price | ||
| 69 | + } | ||
| 70 | + no_in_arr.sort(sortData); | ||
| 71 | + aprice = act.zhprice; | ||
| 72 | + if (act.zhbuyqty > all_zhqty) { | ||
| 73 | + for (let n = 0; n < act.zhbuyqty; n++) { | ||
| 74 | + no_in_arr.pop(); | ||
| 75 | + } | ||
| 76 | + } | ||
| 77 | + //看一下剩下的数量有没有满足组合购的要求,以及要不要倍增 | ||
| 78 | + if (act.is_bz && no_in_arr.length > act.zhbuyqty) { | ||
| 79 | + //看一下是几倍 | ||
| 80 | + let be = parseInt(no_in_arr / act.zhbuyqty); | ||
| 81 | + aprice += be * act.zhprice; | ||
| 82 | + for (let m = 0; m < be * act.zhbuyqty; m++) { | ||
| 83 | + no_in_arr.pop(); | ||
| 84 | + } | ||
| 85 | + } | ||
| 86 | + | ||
| 87 | + //算一下剩余的商品 | ||
| 88 | + if (no_in_arr.length) { | ||
| 89 | + let goods_map = {}; | ||
| 90 | + for (let ii in no_in_arr) { | ||
| 91 | + let item = no_in_arr[ii]; | ||
| 92 | + if (item.offline_price) { | ||
| 93 | + offline_price += item.goods_price - item.offline_price; | ||
| 94 | + offline_num += 1; | ||
| 95 | + } | ||
| 96 | + if (goods_map[item.goods_id]) { | ||
| 97 | + var num = goods_map[item.goods_id]; | ||
| 98 | + goods_map[item.goods_id] = ++num; | ||
| 99 | + } else { | ||
| 100 | + goods_map[item.goods_id] = 1; | ||
| 101 | + } | ||
| 102 | + } | ||
| 103 | + //这里就开始拆分提交订单时的列表 | ||
| 104 | + for (let j in goods_map) { | ||
| 105 | + //map中存的就是商品的数量 | ||
| 106 | + let num = goods_map[j]; | ||
| 107 | + //找到相应的商品 | ||
| 108 | + let idx = goods.findIndex(function (ele) { | ||
| 109 | + return ele.goods_id == j; | ||
| 110 | + }) | ||
| 111 | + goods[idx].goods_num -= num; | ||
| 112 | + let new_g = JSON.parse(JSON.stringify(goods[idx])); | ||
| 113 | + new_g.goods_num = num; | ||
| 114 | + new_g.prom_type = 0; | ||
| 115 | + new_g.prom_id = 0; | ||
| 116 | + goods.push(new_g); | ||
| 117 | + } | ||
| 118 | + } | ||
| 119 | + //-- 只统计是参与活动的商品 -- | ||
| 120 | + for(var ij in goods){ | ||
| 121 | + var iter=goods[ij]; | ||
| 122 | + if(iter.prom_type!=7 || iter.prom_id!=act.id){ continue; } | ||
| 123 | + all_price0+=iter.goods_num*iter.goods_price; | ||
| 124 | + } | ||
| 125 | + //-- 活动的条件已经满足 -- | ||
| 126 | + c_item.zh_prom_goods[act.id].is_has_zh = 1; | ||
| 127 | + c_item.is_has_zh = 1; | ||
| 128 | + c_item.zh_prom_goods[act.id].actual_price = aprice; | ||
| 129 | + c_item.zh_prom_goods[act.id].cut_price =all_price0-aprice; | ||
| 130 | + | ||
| 131 | + //-- 设置还需要购买多少件,享受活动,前段显示 -- | ||
| 132 | + let need_to = c_item.need_list; | ||
| 133 | + let index = this.find_need_to(need_to, act); | ||
| 134 | + if (index > -1) { | ||
| 135 | + need_to.splice(index, 1); | ||
| 136 | + txt_ite = need_to | ||
| 137 | + } | ||
| 138 | + | ||
| 139 | + | ||
| 140 | + } else { | ||
| 141 | + for (let ii in goods) { | ||
| 142 | + let item = goods[ii]; | ||
| 143 | + if (item.prom_type != 7) continue; | ||
| 144 | + if (item.prom_id != act.id) continue; | ||
| 145 | + if (item.offline_price) { | ||
| 146 | + offline_price += item.goods_price - item.offline_price; | ||
| 147 | + offline_num += 1; | ||
| 148 | + } | ||
| 149 | + item.prom_type = 0; | ||
| 150 | + item.prom_id = 0; | ||
| 151 | + } | ||
| 152 | + if (act.zhbuyqty - all_num > need_to_buy) { | ||
| 153 | + need_to_buy = act.zhbuyqty - all_num; | ||
| 154 | + } | ||
| 155 | + //-- 设置还需要购买多少件享受活动,前端显示 -- | ||
| 156 | + let need_to = c_item.need_list; | ||
| 157 | + let index = this.find_need_to(need_to, act); | ||
| 158 | + if (title == '') title = "再买" + need_to_buy + "件,下单立享【" + act.zhprice + "元任选" + act.zhbuyqty + "件】"; | ||
| 159 | + if (index != -1) { | ||
| 160 | + need_to[index].title = title; | ||
| 161 | + } else { | ||
| 162 | + if (!need_to) need_to = []; | ||
| 163 | + let it = { | ||
| 164 | + id: act.id, | ||
| 165 | + pickup_id: c_item.pickup_id, | ||
| 166 | + title: title | ||
| 167 | + }; | ||
| 168 | + need_to.push(it); | ||
| 169 | + } | ||
| 170 | + txt_ite = need_to; | ||
| 171 | + } | ||
| 172 | + tfeel += aprice; | ||
| 173 | + cut_price+=all_price0-aprice;; | ||
| 174 | + } | ||
| 175 | + | ||
| 176 | + c_item.zh_all_price = tfeel; | ||
| 177 | + c_item.zh_cut_price = cut_price; | ||
| 178 | + | ||
| 179 | + if (c_item.is_offline == 1) { | ||
| 180 | + c_item.offline_price += offline_price; | ||
| 181 | + c_item.offline_num += offline_num; | ||
| 182 | + } else { | ||
| 183 | + c_item.is_offline == 1; | ||
| 184 | + c_item.offline_price = offline_price; | ||
| 185 | + c_item.offline_num = offline_num; | ||
| 186 | + } | ||
| 187 | + | ||
| 188 | + }, | ||
| 189 | + //筛选组合购,纯粹的数组按活动id分组 | ||
| 190 | + find_split: function (arr) { | ||
| 191 | + //过滤只有团购的商品 | ||
| 192 | + let oarr = arr.goods.filter(function (ele) { | ||
| 193 | + return ele.prom_type == 7 | ||
| 194 | + }) | ||
| 195 | + if (!oarr || oarr.length == 0) return null; | ||
| 196 | + //看一下有多少个不同的团购 | ||
| 197 | + let map = {}, | ||
| 198 | + dest = []; | ||
| 199 | + for (let i = 0; i < oarr.length; i++) { | ||
| 200 | + let ai = oarr[i]; | ||
| 201 | + let index = map[ai.prom_id] | ||
| 202 | + if (!index) { | ||
| 203 | + dest.push({ | ||
| 204 | + prom_id: ai.prom_id, | ||
| 205 | + act: ai.act, | ||
| 206 | + data: [ai] | ||
| 207 | + }); | ||
| 208 | + map[ai.prom_id] = dest.length; //存储下标 | ||
| 209 | + } else { | ||
| 210 | + let dj = dest[index - 1]; | ||
| 211 | + dj.data.push(ai); | ||
| 212 | + } | ||
| 213 | + } | ||
| 214 | + return dest; | ||
| 215 | + }, | ||
| 216 | + | ||
| 217 | + find_need_to: function (list, iter) { | ||
| 218 | + if (!list || list.length <= 0) return -1; | ||
| 219 | + for (var i in list) { | ||
| 220 | + var item = list[i]; | ||
| 221 | + if (item.id == iter.id) { | ||
| 222 | + return i; | ||
| 223 | + } | ||
| 224 | + } | ||
| 225 | + return -1; | ||
| 226 | + }, | ||
| 227 | + //-- 平摊组合购的价格 -- | ||
| 228 | + calc_zh_split_price: async function (c_arr, th) { | ||
| 229 | + //-- 循环处理 -- | ||
| 230 | + for (var k in c_arr) { | ||
| 231 | + var cart_item = c_arr[k]; //就是每一单的意思 | ||
| 232 | + var ord_goods = c_arr[k].goods; //就是每一单的从表的意思 | ||
| 233 | + | ||
| 234 | + var zh_prom_goods = cart_item.zh_prom_goods; //一单中所有的组合购的集合 | ||
| 235 | + var item_map = {}; | ||
| 236 | + for (let i in zh_prom_goods) { | ||
| 237 | + let item = zh_prom_goods[i]; | ||
| 238 | + let prom_id = i; | ||
| 239 | + //如果这个活动还没有达到要求,继续下一个计算 | ||
| 240 | + if (!item.is_has_zh) continue; | ||
| 241 | + //过滤出相应组合购活动的商品 | ||
| 242 | + let glist = ord_goods.filter(function (ele) { | ||
| 243 | + return ele.prom_type == 7 && ele.prom_id == i; | ||
| 244 | + }) | ||
| 245 | + var all_good_price = 0; | ||
| 246 | + var post_gd=[]; | ||
| 247 | + for (let j in glist) { | ||
| 248 | + let item = glist[j]; | ||
| 249 | + all_good_price += item.goods_price * item.goods_num; | ||
| 250 | + var gitem={ | ||
| 251 | + goods_id:item.goods_id, | ||
| 252 | + goods_num:item.goods_num, | ||
| 253 | + goods_price:item.goods_price | ||
| 254 | + } | ||
| 255 | + post_gd.push(gitem); | ||
| 256 | + } | ||
| 257 | + //要进行优惠的计算 | ||
| 258 | + if (all_good_price - item.actual_price) { | ||
| 259 | + if (cart_item.prom_pt_json) { | ||
| 260 | + cart_item.prom_pt_json.push({ | ||
| 261 | + "zhprom_id": prom_id, | ||
| 262 | + "dis": (all_good_price - item.actual_price).toFixed(2), | ||
| 263 | + "ispt": 0 | ||
| 264 | + }) | ||
| 265 | + } else { | ||
| 266 | + cart_item.prom_pt_json = [{ | ||
| 267 | + "zhprom_id": prom_id, | ||
| 268 | + "dis": (all_good_price - item.actual_price).toFixed(2), | ||
| 269 | + "ispt": 0 | ||
| 270 | + }]; | ||
| 271 | + } | ||
| 272 | + } | ||
| 273 | + | ||
| 274 | + //-- 如果系统要平摊到单品 -- | ||
| 275 | + var pt_data = { | ||
| 276 | + 'prom_id': prom_id, | ||
| 277 | + 'dis': parseFloat(all_good_price - item.actual_price).toFixed(2), | ||
| 278 | + 'goods': post_gd | ||
| 279 | + } | ||
| 280 | + var pt_res = null; | ||
| 281 | + await getApp().request.promisePost("/api/weshop/order/getGoodsSplit", { | ||
| 282 | + is_json: 1, | ||
| 283 | + data: pt_data | ||
| 284 | + }).then(res => { | ||
| 285 | + if (res.data.code == 0) { | ||
| 286 | + pt_res = res.data.data; | ||
| 287 | + } | ||
| 288 | + }) | ||
| 289 | + if (pt_res) { | ||
| 290 | + for (var io in glist) { | ||
| 291 | + var goods_id = glist[io].goods_id; | ||
| 292 | + item_map[goods_id]={}; | ||
| 293 | + //平摊赋值 | ||
| 294 | + item_map[goods_id].account_fir = th.arr_get_goods(goods_id, pt_res).fisrt_account; | ||
| 295 | + item_map[goods_id].account_yu_fir = th.arr_get_goods(goods_id, pt_res).fisrt_account_yu; | ||
| 296 | + if (!th.data.ispt_goods) { | ||
| 297 | + item_map[goods_id].account = item_map[goods_id].account_fir; | ||
| 298 | + item_map[goods_id].account_yu = item_map[goods_id].account_yu_fir; | ||
| 299 | + } | ||
| 300 | + } | ||
| 301 | + } | ||
| 302 | + } | ||
| 303 | + | ||
| 304 | + //--------循环计算商品是不是包邮,是不是使用优惠券,此时循环是商品从表----------- | ||
| 305 | + for (var jj = 0; jj < ord_goods.length; jj++) { | ||
| 306 | + if (ord_goods[jj].is_gift) continue; | ||
| 307 | + if (ord_goods[jj].prom_type == 7 && item_map[ord_goods[jj].goods_id]) { | ||
| 308 | + ord_goods[jj].account_fir = item_map[ord_goods[jj].goods_id].account_fir; | ||
| 309 | + ord_goods[jj].account_yu_fir = item_map[ord_goods[jj].goods_id].account_yu_fir; | ||
| 310 | + ord_goods[jj].account = item_map[ord_goods[jj].goods_id].account; | ||
| 311 | + ord_goods[jj].account_yu = item_map[ord_goods[jj].goods_id].account_yu; | ||
| 312 | + } | ||
| 313 | + } | ||
| 314 | + } | ||
| 315 | + | ||
| 316 | + | ||
| 317 | + } | ||
| 318 | + | ||
| 319 | + | ||
| 320 | +} |
pages/goods/goodsInfo/goodsInfo.js
| @@ -776,7 +776,28 @@ Page({ | @@ -776,7 +776,28 @@ Page({ | ||
| 776 | //动态获取商品名称 | 776 | //动态获取商品名称 |
| 777 | wx.setNavigationBarTitle({ | 777 | wx.setNavigationBarTitle({ |
| 778 | title: t.data.data.goods_name, | 778 | title: t.data.data.goods_name, |
| 779 | - }) | 779 | + }); |
| 780 | + | ||
| 781 | + //-- 判断是不是组合购活动,必须要登录后才能判断 -- | ||
| 782 | + if(getApp().globalData.userInfo && t.data.data.prom_type==7 ){ | ||
| 783 | + //获取活动信息 | ||
| 784 | + var url = "/api/weshop/prom/zhbuy/get/" + os.stoid + "/" + | ||
| 785 | + t.data.data.prom_id+"/"+getApp().globalData.userInfo.user_id; | ||
| 786 | + getApp().request.get(url, { | ||
| 787 | + success:function (e) { | ||
| 788 | + if (e.data.code == 0 && e.data.data) { | ||
| 789 | + if(ut.gettimestamp()<e.data.data.start_time){ | ||
| 790 | + return false; | ||
| 791 | + } | ||
| 792 | + if (e.data.data.is_end == 0 && ut.gettimestamp()<e.data.data.end_time ) { | ||
| 793 | + //-- 获取商品列表 -- | ||
| 794 | + th.setData({zh_act:e.data.data }); | ||
| 795 | + } | ||
| 796 | + | ||
| 797 | + } | ||
| 798 | + } | ||
| 799 | + }); | ||
| 800 | + } | ||
| 780 | 801 | ||
| 781 | //-- 把商品的赋值 -- | 802 | //-- 把商品的赋值 -- |
| 782 | ee.data.fir_goods=JSON.parse(JSON.stringify(t.data.data)); | 803 | ee.data.fir_goods=JSON.parse(JSON.stringify(t.data.data)); |
| @@ -814,7 +835,7 @@ Page({ | @@ -814,7 +835,7 @@ Page({ | ||
| 814 | 835 | ||
| 815 | 836 | ||
| 816 | //获取统一条形码,普通商品和优惠促销的商品 | 837 | //获取统一条形码,普通商品和优惠促销的商品 |
| 817 | - if (ee.data.data.prom_type == 0 || ee.data.data.prom_type == 2 || ee.data.data.prom_type == 3 || ee.data.data.prom_type == 5){ | 838 | + if (ee.data.data.prom_type == 0 || ee.data.data.prom_type == 2 || ee.data.data.prom_type == 3 || ee.data.data.prom_type == 5 || ee.data.data.prom_type == 7){ |
| 818 | //默认门店要拿下门店库存 | 839 | //默认门店要拿下门店库存 |
| 819 | if(that.data.sales_rules==2 && that.data.is_newsales_rules){ | 840 | if(that.data.sales_rules==2 && that.data.is_newsales_rules){ |
| 820 | //获取门店 | 841 | //获取门店 |
| @@ -1749,6 +1770,12 @@ Page({ | @@ -1749,6 +1770,12 @@ Page({ | ||
| 1749 | 1770 | ||
| 1750 | var ind = t.currentTarget.dataset.ind; | 1771 | var ind = t.currentTarget.dataset.ind; |
| 1751 | 1772 | ||
| 1773 | + if(th.data.zh_act && ind==1){ | ||
| 1774 | + getApp().goto("/packageB/pages/zuhegou/index/index?id="+th.data.zh_act.id); | ||
| 1775 | + return false; | ||
| 1776 | + } | ||
| 1777 | + | ||
| 1778 | + | ||
| 1752 | //回调。判断是不是优惠促销 | 1779 | //回调。判断是不是优惠促销 |
| 1753 | th.check_is_prom_goods(function (){ | 1780 | th.check_is_prom_goods(function (){ |
| 1754 | th.setData({ | 1781 | th.setData({ |
| @@ -2820,7 +2847,7 @@ Page({ | @@ -2820,7 +2847,7 @@ Page({ | ||
| 2820 | async check_prom(gid, prom_type, prom_id) { | 2847 | async check_prom(gid, prom_type, prom_id) { |
| 2821 | var ee = this, | 2848 | var ee = this, |
| 2822 | th = ee; | 2849 | th = ee; |
| 2823 | - if (prom_type == 3 || prom_type == 0 || prom_type == 2 || prom_type == 5) { | 2850 | + if (prom_type == 3 || prom_type == 0 || prom_type == 2 || prom_type == 5 || prom_type == 7) { |
| 2824 | this.setData({ | 2851 | this.setData({ |
| 2825 | prom_type: 0, | 2852 | prom_type: 0, |
| 2826 | isshow: 1, | 2853 | isshow: 1, |
| @@ -4439,6 +4466,11 @@ Page({ | @@ -4439,6 +4466,11 @@ Page({ | ||
| 4439 | 4466 | ||
| 4440 | }); | 4467 | }); |
| 4441 | }); | 4468 | }); |
| 4469 | + }, | ||
| 4470 | + fail: function(res) { | ||
| 4471 | + console.log(res); | ||
| 4472 | + wx.hideLoading(); | ||
| 4473 | + | ||
| 4442 | } | 4474 | } |
| 4443 | }); | 4475 | }); |
| 4444 | }, | 4476 | }, |
| @@ -5429,5 +5461,10 @@ Page({ | @@ -5429,5 +5461,10 @@ Page({ | ||
| 5429 | } | 5461 | } |
| 5430 | } | 5462 | } |
| 5431 | }) | 5463 | }) |
| 5464 | + }, | ||
| 5465 | + | ||
| 5466 | + go_zh:function (e) { | ||
| 5467 | + var id=e.currentTarget.dataset.id; | ||
| 5468 | + getApp().goto("/packageB/pages/zuhegou/index/index?id="+id); | ||
| 5432 | } | 5469 | } |
| 5433 | }); | 5470 | }); |
pages/goods/goodsInfo/goodsInfo.wxml
| @@ -465,25 +465,28 @@ | @@ -465,25 +465,28 @@ | ||
| 465 | </view> | 465 | </view> |
| 466 | </view> | 466 | </view> |
| 467 | 467 | ||
| 468 | + | ||
| 469 | + | ||
| 470 | + | ||
| 468 | <!-- 要判断是不是有促销活动 --> | 471 | <!-- 要判断是不是有促销活动 --> |
| 469 | <block wx:if="{{prom_goods}}"> | 472 | <block wx:if="{{prom_goods}}"> |
| 470 | <view class="cx-frame flex" style="position: relative; height: auto" > | 473 | <view class="cx-frame flex" style="position: relative; height: auto" > |
| 471 | <view class="cx-sizs fs30">促销</view> | 474 | <view class="cx-sizs fs30">促销</view> |
| 472 | <!-- 中间显示层 --> | 475 | <!-- 中间显示层 --> |
| 473 | <view class="f1 pdh20"> | 476 | <view class="f1 pdh20"> |
| 474 | - <view class="cx_show_view flex fs28" wx:for="{{prom_goods}}"> | ||
| 475 | - <view class="prom_condition">消费满{{item.condition}}<text wx:if="{{item.prom_type==1}}">件</text><text wx:else>元</text></view> | ||
| 476 | - <view class="word {{is_more_cx?'':'ellipsis-1'}}"> | ||
| 477 | - <text wx:if="{{item.money>0}}">减价{{item.money}}元;</text> | ||
| 478 | - <text wx:if="{{item.sale>0}}">打{{item.sale}}折;</text> | ||
| 479 | - <text wx:if="{{item.past==1}}">包邮;</text> | ||
| 480 | - <text wx:if="{{item.intValue>0}}">送{{tem.intValue}}积分;</text> | ||
| 481 | - <text wx:if="{{item.couponId>0}}">送{{item.couponMoney}}元优惠券;</text> | ||
| 482 | - <text wx:if="{{item.gift_id>0}}">送商品{{item.goods_name}};</text> | ||
| 483 | - <text wx:if="{{item.lb_id>0}}">送{{item.lbtitle}};</text> | ||
| 484 | - </view> | ||
| 485 | - </view> | ||
| 486 | 477 | ||
| 478 | + <view class="cx_show_view flex fs28" wx:for="{{prom_goods}}"> | ||
| 479 | + <view class="prom_condition">消费满{{item.condition}}<text wx:if="{{item.prom_type==1}}">件</text><text wx:else>元</text></view> | ||
| 480 | + <view class="word {{is_more_cx?'':'ellipsis-1'}}"> | ||
| 481 | + <text wx:if="{{item.money>0}}">减价{{item.money}}元;</text> | ||
| 482 | + <text wx:if="{{item.sale>0}}">打{{item.sale}}折;</text> | ||
| 483 | + <text wx:if="{{item.past==1}}">包邮;</text> | ||
| 484 | + <text wx:if="{{item.intValue>0}}">送{{tem.intValue}}积分;</text> | ||
| 485 | + <text wx:if="{{item.couponId>0}}">送{{item.couponMoney}}元优惠券;</text> | ||
| 486 | + <text wx:if="{{item.gift_id>0}}">送商品{{item.goods_name}};</text> | ||
| 487 | + <text wx:if="{{item.lb_id>0}}">送{{item.lbtitle}};</text> | ||
| 488 | + </view> | ||
| 489 | + </view> | ||
| 487 | </view> | 490 | </view> |
| 488 | <view data-coupon="1" bindtap="show_more_cx" class="cx-obtain-coupon wsize"> | 491 | <view data-coupon="1" bindtap="show_more_cx" class="cx-obtain-coupon wsize"> |
| 489 | <text class="bg_jj {{is_more_cx?'down1':''}}"></text> | 492 | <text class="bg_jj {{is_more_cx?'down1':''}}"></text> |
| @@ -507,6 +510,25 @@ | @@ -507,6 +510,25 @@ | ||
| 507 | </block> | 510 | </block> |
| 508 | 511 | ||
| 509 | 512 | ||
| 513 | + <!-- 要判断是不是有组合优惠 --> | ||
| 514 | + <block wx:if="{{zh_act}}"> | ||
| 515 | + <view class="cx-frame flex" style="position: relative; height: auto" > | ||
| 516 | + <view class="cx-sizs wsize" style="width: 144rpx">组合购</view> | ||
| 517 | + <!-- 中间显示层 --> | ||
| 518 | + <view class="flex ai-center jc_sb" style="width: 570rpx" bindtap="go_zh" data-id="{{zh_act.id}}" > | ||
| 519 | + <view class="flex"> | ||
| 520 | + <image class="hui_img" src="{{iurl}}/miniapp//images/hui.png"></image> | ||
| 521 | + <view class="order_hui"> | ||
| 522 | + <view class="fs28 ellipsis-1">{{order_prom.name}}</view> | ||
| 523 | + <view class="fs26" >(活动时间:{{tool.format_tt(zh_act.start_time)}} - {{tool.format_tt(zh_act.end_time)}})</view> | ||
| 524 | + </view> | ||
| 525 | + </view> | ||
| 526 | + <view><text class="bg_jj is_more_cx" style="position: relative;top:-10rpx"></text></view> | ||
| 527 | + </view> | ||
| 528 | + </view> | ||
| 529 | + </block> | ||
| 530 | + | ||
| 531 | + | ||
| 510 | <view class="bz_view flex bdt16" wx:if="{{bconfig}}" style=""> | 532 | <view class="bz_view flex bdt16" wx:if="{{bconfig}}" style=""> |
| 511 | <image class="bzfu_img" src="{{iurl}}/miniapp/images/bzfu_w.png"></image> | 533 | <image class="bzfu_img" src="{{iurl}}/miniapp/images/bzfu_w.png"></image> |
| 512 | <view class="flex f1 ai_c rel"> | 534 | <view class="flex f1 ai_c rel"> |