Commit d89736172ccc29b7af4f22be495b8d3206474f0c
1 parent
6d3288d9
1、 OA单
2. 5点优化 3. 服务卡项加入购物车购买流程
Showing
18 changed files
with
1488 additions
and
459 deletions
app.json
packageA/pages/cart2_ser/cart2_ser.js
... | ... | @@ -38,8 +38,8 @@ Page({ |
38 | 38 | bn_pickname: "", //选择的门店名称 |
39 | 39 | |
40 | 40 | /*------------------------*/ |
41 | - //判断页面是返回回来的还是 首次进入的 | |
42 | 41 | yuer:0, |
42 | + is_cart:0, //是不是购物车进来的购买 | |
43 | 43 | }, |
44 | 44 | onLoad: function(t) { |
45 | 45 | wx.setNavigationBarTitle({ |
... | ... | @@ -48,7 +48,11 @@ Page({ |
48 | 48 | |
49 | 49 | var appD=getApp().globalData.service_now; |
50 | 50 | this.data.postdata=appD; |
51 | - this.data.param=t; | |
51 | + this.data.param=t; | |
52 | + if(t.is_cart){ | |
53 | + this.setData({is_cart:1}); | |
54 | + } | |
55 | + | |
52 | 56 | var th=this; |
53 | 57 | |
54 | 58 | getApp().promiseGet("/api/wx/weappSendlist/page", { |
... | ... | @@ -71,7 +75,6 @@ Page({ |
71 | 75 | to.auth.get_u(func); |
72 | 76 | }, |
73 | 77 | |
74 | - | |
75 | 78 | //----------------展示页面,是再获取用户信息之后-------------- |
76 | 79 | show_page:function(){ |
77 | 80 | var th=this; |
... | ... | @@ -84,7 +87,15 @@ Page({ |
84 | 87 | getApp().globalData.userInfo = e.data.data; |
85 | 88 | th.setData({userinfo:e.data.data}); |
86 | 89 | //获取立即购买的商品信息 |
87 | - th.get_buy_goods(); | |
90 | + if(th.data.is_cart){ | |
91 | + //读取门店 | |
92 | + to.get_allsto(function (e) { | |
93 | + th.setData({ allsto: e }); | |
94 | + th.get_cart(); | |
95 | + }) | |
96 | + }else{ | |
97 | + th.get_buy_goods(); | |
98 | + } | |
88 | 99 | |
89 | 100 | //获取提现金额 |
90 | 101 | getApp().request.get("/api/weshop/withdrawals/summoney", { |
... | ... | @@ -101,6 +112,75 @@ Page({ |
101 | 112 | }); |
102 | 113 | }, |
103 | 114 | |
115 | + //-----获取购物车,入口-------- | |
116 | + get_cart: function () { | |
117 | + var th = this,app=getApp(); | |
118 | + a.get("/api/weshop/cartService/page", { | |
119 | + data: { | |
120 | + user_id: to.globalData.user_id, selected:1, | |
121 | + store_id: oo.stoid, pageSize: 600 }, | |
122 | + success:async function (su) { | |
123 | + //按门店分类的数组 | |
124 | + var arr = new Array(); | |
125 | + var carr = su.data.data.pageData; | |
126 | + th.data.cartlist_y = carr; //存储原始购物车列表 | |
127 | + | |
128 | + //---是不是购买等级卡成功的返回---等级卡显示的判断--- | |
129 | + var is_card_back=getApp().globalData.is_card_back; | |
130 | + | |
131 | + | |
132 | + //在分组的时候,就不要再调用接口,await | |
133 | + for (var i = 0; i < carr.length; i++) { | |
134 | + var good=null; | |
135 | + var item = carr[i]; | |
136 | + await getApp().request.promiseGet("/api/weshop/serviceCard/get/" + oo.stoid + "/" + item.service_id, {}).then(res => { | |
137 | + good = res.data.data; | |
138 | + }) | |
139 | + | |
140 | + item.img_url = oo.imghost + good.img_url; | |
141 | + item.erpItemID=good.erpItemID; | |
142 | + | |
143 | + /*----接口要弄出来的,先顶着-----*/ | |
144 | + var pcid = item.pick_id; | |
145 | + var find = 0; | |
146 | + //----如果有就加进去,没有就新增一个---- | |
147 | + //-----------循环查找门店------------- | |
148 | + if (arr.length > 0) { | |
149 | + for (var j = 0; j < arr.length; j++) { | |
150 | + if (arr[j].pickup_id == pcid) { | |
151 | + arr[j].goods.push(item); | |
152 | + find = 1;break; | |
153 | + } | |
154 | + } | |
155 | + } | |
156 | + //------如果没有找到----- | |
157 | + if (find == 0) { | |
158 | + var pikname = '',sto=null; | |
159 | + //----找到门店名称----- | |
160 | + for (var k = 0; k < th.data.allsto.length; k++) { | |
161 | + if (pcid == th.data.allsto[k].pickup_id) { | |
162 | + pikname = th.data.allsto[k].pickup_name; sto = th.data.allsto[k]; break; | |
163 | + } | |
164 | + } | |
165 | + var narr = new Array(); narr.push(item); | |
166 | + var ie = { | |
167 | + pickup_id: pcid, pname: pikname, goods: narr,keyid:sto.keyid, | |
168 | + goods_price: 0, shipping_price: 0, user_money: 0, total_amount: 0, order_amount: 0}; | |
169 | + arr.push(ie); | |
170 | + | |
171 | + } | |
172 | + } | |
173 | + | |
174 | + //深拷贝 | |
175 | + th.data.old_cartlist= JSON.parse(JSON.stringify(arr)); | |
176 | + th.setData({ | |
177 | + cartlist: arr, | |
178 | + }); | |
179 | + th.calculatePrice(); | |
180 | + } | |
181 | + }); | |
182 | + }, | |
183 | + | |
104 | 184 | //-----获取立即购买的商品信息---- |
105 | 185 | get_buy_goods: function (){ |
106 | 186 | var th=this,a=getApp().request; |
... | ... | @@ -147,7 +227,117 @@ Page({ |
147 | 227 | invoiceToggle: !this.data.invoiceToggle |
148 | 228 | }); |
149 | 229 | }, |
150 | - | |
230 | + | |
231 | + | |
232 | + //-------------------计算购物车订单价格------------------- | |
233 | + calculatePrice: function() { | |
234 | + var th = this; | |
235 | + to.getConfig2(async function(ee){ | |
236 | + wx.showLoading({ | |
237 | + title:"处理中." | |
238 | + }) | |
239 | + var all_price=0; //所有的商品总价 | |
240 | + var all_shipping_m= 0; //所有的物流总价 | |
241 | + var all_total_m = 0; //所有的订单应付总价 | |
242 | + var all_order_m = 0; //所有的订单应付总价 | |
243 | + var all_user_m=0; //所有的订单用户使用金额 | |
244 | + var all_coupon_price_m=0; //所有的订单用户使用优惠券价格 | |
245 | + var all_cutprice=0; //所有的优惠减件 | |
246 | + var all_order_prom=0; //所有的订单优惠 | |
247 | + | |
248 | + var umoney = th.data.userinfo.user_money - th.data.txmon - (th.data.userinfo.frozen_money?th.data.userinfo.frozen_money:0); | |
249 | + var freight_free = ee.freight_free; //全场满多少包邮 | |
250 | + var no_ex_id=ee.no_ex_id; | |
251 | + var no_ex_good=null; | |
252 | + var by_qc={}; | |
253 | + var c_arr=JSON.parse(JSON.stringify(th.data.old_cartlist)); | |
254 | + | |
255 | + //---循环购物车--- | |
256 | + for(var i in c_arr){ | |
257 | + | |
258 | + var cart_item=c_arr[i]; //就是每一单的意思 | |
259 | + var pickid=cart_item.pickup_id; | |
260 | + var o_price=0; | |
261 | + var o_shipping_price=0,goods_weight=-1, goods_piece=-1; | |
262 | + var item=c_arr[i].goods; //就是每一单的从表的意思 | |
263 | + | |
264 | + //---如果有选择优惠券的情况下--- | |
265 | + var quan_price=0; | |
266 | + var coupon_price=0; | |
267 | + var quan_no= null; | |
268 | + | |
269 | + //--------循环计算总价----------- | |
270 | + for(var j=0;j<item.length;j++){ | |
271 | + o_price += item[j].money * item[j].goods_num; | |
272 | + } | |
273 | + var f_o_price=o_price; | |
274 | + cart_item.goods_price = f_o_price.toFixed(2); //商品总费用,用f_o_price来计算 | |
275 | + //计算物流费用 | |
276 | + cart_item.shipping_price = 0; | |
277 | + | |
278 | + //总价计算,总价不包含运费 | |
279 | + cart_item.order_amount= (o_price -quan_price).toFixed(2); | |
280 | + cart_item.total_amount= f_o_price.toFixed(2); | |
281 | + | |
282 | + var order_prom_amount=0; var order_prom_id=0; var o_condition=cart_item.order_amount; | |
283 | + var order_m=0; | |
284 | + cart_item.order_prom_amount=0; | |
285 | + coupon_price=quan_price; | |
286 | + | |
287 | + | |
288 | + cart_item.total_amount= parseFloat(cart_item.total_amount)+parseFloat(cart_item.shipping_price); //总金额 | |
289 | + cart_item.order_amount=parseFloat(cart_item.order_amount)+parseFloat(cart_item.shipping_price); //总金额 | |
290 | + cart_item.total_amount= cart_item.total_amount.toFixed(2); | |
291 | + cart_item.order_amount=cart_item.order_amount.toFixed(2); | |
292 | + | |
293 | + //搭配购在使用余额 | |
294 | + if(th.data.bn_use_money==1 && th.data.is_b_now==1){ | |
295 | + | |
296 | + if (umoney > cart_item.order_amount) { | |
297 | + cart_item.user_money = cart_item.order_amount; | |
298 | + umoney = umoney - cart_item.order_amount; | |
299 | + }else { | |
300 | + cart_item.user_money = umoney; | |
301 | + umoney=0; | |
302 | + } | |
303 | + | |
304 | + }else{ | |
305 | + //--------------如果使用余额,购物车购买--------------------- | |
306 | + if (th.data.js_use_money == 1) { | |
307 | + if (umoney > cart_item.order_amount) { | |
308 | + cart_item.user_money = cart_item.order_amount; | |
309 | + umoney = umoney - cart_item.order_amount; | |
310 | + }else { | |
311 | + cart_item.user_money = umoney; | |
312 | + umoney=0; | |
313 | + } | |
314 | + }else{ | |
315 | + cart_item.user_money=0; | |
316 | + } | |
317 | + } | |
318 | + all_price += parseFloat(f_o_price); | |
319 | + all_total_m += parseFloat(cart_item.total_amount); | |
320 | + all_shipping_m += parseFloat(cart_item.shipping_price); | |
321 | + all_order_m += parseFloat(cart_item.order_amount); | |
322 | + } | |
323 | + | |
324 | + | |
325 | + all_total_m = parseFloat(all_total_m).toFixed(2); | |
326 | + all_order_m = parseFloat(all_order_m).toFixed(2); | |
327 | + all_price = parseFloat(all_price).toFixed(2); | |
328 | + all_total_m = parseFloat(all_total_m).toFixed(2); | |
329 | + | |
330 | + var atxt = "formData.total_amount"; | |
331 | + var atxt1 = "formData.order_amount"; | |
332 | + var atxt2 = "formData.all_price"; | |
333 | + | |
334 | + th.setData({ [atxt]: all_total_m, [atxt1]: all_order_m, | |
335 | + [atxt2]: all_price,show_submit:1 | |
336 | + }) | |
337 | + th.data.order_prom_list_cart=c_arr; | |
338 | + wx.hideLoading(); | |
339 | + }); | |
340 | + }, | |
151 | 341 | |
152 | 342 | //---------计算立即购买---------- |
153 | 343 | calculatePrice2: function () { |
... | ... | @@ -186,38 +376,73 @@ Page({ |
186 | 376 | if(this.data.is_summit_ing==1) return false; //--提交中退出-- |
187 | 377 | this.data.is_summit_ing=1; |
188 | 378 | var th=this,pdata=new Array(); |
189 | - var ff=true; | |
379 | + | |
190 | 380 | var item={ |
191 | - 'user_id': to.globalData.user_id, | |
192 | - 'account': th.data.formData.order_amount, //使用余额 | |
193 | - 'store_id':oo.stoid, //商家 | |
194 | - 'list':new Array(), | |
195 | - }; | |
196 | - var gg = getApp().globalData.service_now; | |
197 | - var goods={ | |
198 | - 'card_id': th.data.bn_goods.id, | |
199 | - 'itemid': th.data.bn_goods.erpItemID, | |
200 | - 'qty': gg.goods_num, | |
201 | - 'price': th.data.formData.order_amount, | |
202 | - 'pickup_id':gg.pick_id, | |
203 | - 'pickup_keyid':gg.keyid, | |
204 | - }; | |
205 | - | |
206 | - //--导购分享过来的id-- | |
207 | - if(gg.guide_id){ | |
208 | - goods.guide_id=gg.guide_id; | |
209 | - goods.guide_type=gg.guide_type; | |
210 | - //调用接口判断是不是会员 | |
211 | - await getApp().request.promiseGet("/api/weshop/shoppingGuide/getId/"+oo.stoid+"/"+gg.guide_id,{}).then(res=>{ | |
212 | - if(res.data.code==0){ | |
213 | - goods.guide_name=res.data.data.salesman; | |
214 | - goods.guide_sn=res.data.data.salesman_no; | |
215 | - } | |
216 | - }) | |
381 | + 'user_id': to.globalData.user_id, | |
382 | + 'account': th.data.formData.order_amount, //使用余额 | |
383 | + 'store_id':oo.stoid, //商家 | |
384 | + 'list':new Array(), | |
385 | + }; | |
386 | + | |
387 | + //判断是不是购物车购买还是立即购买 | |
388 | + if(this.data.is_cart){ | |
389 | + var list= th.data.cartlist; | |
390 | + for(var i in list){ | |
391 | + var gglist = list[i].goods; | |
392 | + for(var j in gglist){ | |
393 | + var gg=gglist[j]; | |
394 | + var goods={ | |
395 | + 'card_id': gg.service_id, | |
396 | + 'itemid': gg.erpItemID, | |
397 | + 'qty': gg.goods_num, | |
398 | + 'price': gg.money, | |
399 | + 'pickup_id':gg.pick_id, | |
400 | + 'pickup_keyid':list[i].keyid, | |
401 | + }; | |
402 | + //--导购分享过来的id-- | |
403 | + if(gg.guide_id){ | |
404 | + goods.guide_id=gg.guide_id; | |
405 | + goods.guide_type=gg.guide_type; | |
406 | + //调用接口判断是不是会员 | |
407 | + await getApp().request.promiseGet("/api/weshop/shoppingGuide/getId/"+oo.stoid+"/"+gg.guide_id,{}).then(res=>{ | |
408 | + if(res.data.code==0){ | |
409 | + goods.guide_name=res.data.data.salesman; | |
410 | + goods.guide_sn=res.data.data.salesman_no; | |
411 | + } | |
412 | + }) | |
413 | + } | |
414 | + item.list.push(goods); | |
415 | + } | |
416 | + } | |
417 | + }else{ | |
418 | + | |
419 | + var gg = getApp().globalData.service_now; | |
420 | + var goods={ | |
421 | + 'card_id': th.data.bn_goods.id, | |
422 | + 'itemid': th.data.bn_goods.erpItemID, | |
423 | + 'qty': gg.goods_num, | |
424 | + 'price': th.data.formData.order_amount, | |
425 | + 'pickup_id':gg.pick_id, | |
426 | + 'pickup_keyid':gg.keyid, | |
427 | + }; | |
428 | + | |
429 | + //--导购分享过来的id-- | |
430 | + if(gg.guide_id){ | |
431 | + goods.guide_id=gg.guide_id; | |
432 | + goods.guide_type=gg.guide_type; | |
433 | + //调用接口判断是不是会员 | |
434 | + await getApp().request.promiseGet("/api/weshop/shoppingGuide/getId/"+oo.stoid+"/"+gg.guide_id,{}).then(res=>{ | |
435 | + if(res.data.code==0){ | |
436 | + goods.guide_name=res.data.data.salesman; | |
437 | + goods.guide_sn=res.data.data.salesman_no; | |
438 | + } | |
439 | + }) | |
440 | + } | |
441 | + item.list.push(goods); | |
217 | 442 | } |
218 | - item.list.push(goods); | |
443 | + | |
444 | + | |
219 | 445 | pdata=item; |
220 | - | |
221 | 446 | var str = JSON.stringify(pdata); |
222 | 447 | console.log("支付数据"); |
223 | 448 | console.log(str); |
... | ... | @@ -236,7 +461,13 @@ Page({ |
236 | 461 | if (res.statusCode == 200) { |
237 | 462 | var data=res.data; |
238 | 463 | if(data.code==0){ |
239 | - | |
464 | + if(th.data.is_cart){ | |
465 | + var list = th.data.cartlist_y; | |
466 | + for (var i = 0; i < list.length; i++) { | |
467 | + //删除购物车 | |
468 | + a.delete("/api/weshop/cartService/del/" + oo.stoid + "/" + list[i].id, {}); | |
469 | + } | |
470 | + } | |
240 | 471 | var order_amount = pdata.account; |
241 | 472 | //要进行判断,如果是用微信支付,就要跳转到支付界面 |
242 | 473 | if (order_amount > 0) { | ... | ... |
packageA/pages/cart2_ser/cart2_ser.wxml
1 | 1 | <wxs module="filters" src="../../../utils/filter.wxs"></wxs> |
2 | 2 | <form bindsubmit="submitForm"> |
3 | 3 | <view class="container"> |
4 | - | |
4 | + | |
5 | + <!---------------------购物车进来,有可能多单----------------------> | |
6 | + <block wx:if="{{is_cart}}"> | |
7 | + <view wx:for="{{cartlist}}" wx:for-index="pidx"> | |
8 | + <view class="use-item bfff bdr_t-14 mgt20"> | |
9 | + <image class="dp" src='{{imgUrl}}/miniapp/images/goodscategory/new_store.png'></image> | |
10 | + <!-- <view>门店:{{item.pname}}</view> --> | |
11 | + <view>{{item.pname}}</view> | |
12 | + </view> | |
13 | + <view class="order-detail" wx:for="{{item.goods}}" wx:for-index="idx" wx:for-item="items"> | |
14 | + <!----商品图片-----> | |
15 | + <view class="goods-img" style="position: relative"> | |
16 | + <image wx:if="{{items.is_gift}}" src="{{imgUrl}}/miniapp/images/giveaway.png" class="gift_image"></image> | |
17 | + <image class="wh100 bdr14" src="{{items.img_url}}" binderror='cart_set_err' data-err='cartlist[{{pidx}}].goods[{{idx}}].img_url'></image> | |
18 | + </view> | |
19 | + <!----商品名称规格----> | |
20 | + <navigator class="order-cont" url="/packageA/pages/goodsInfo/goodsInfo?goods_id={{items.service_id}}"> | |
21 | + <view class="goods-name ellipsis-2">{{items.service_name}}</view> | |
22 | + <!-----商品名称规格------> | |
23 | + <view class="order-num flex-space-between"> | |
24 | + <view class="co-red">¥<text class="fs36">{{filters.toFix(items.money,2)}}</text></view> | |
25 | + <view class="goods-num">x{{items.goods_num}}</view> | |
26 | + </view> | |
27 | + </navigator> | |
28 | + </view> | |
29 | + </view> | |
30 | + </block> | |
31 | + | |
5 | 32 | <!------立即购买--------> |
6 | - <block> | |
33 | + <block wx:else> | |
7 | 34 | <view class="use-item bfff bdr_t-14 mgt20"> |
8 | 35 | <image class="dp" src='{{imgUrl}}/miniapp/images/goodscategory/new_store.png'> </image> <view>{{bn_pickname}}</view></view> |
9 | 36 | <view class="order-detail"> |
... | ... | @@ -24,14 +51,12 @@ |
24 | 51 | </view> |
25 | 52 | </navigator> |
26 | 53 | </view> |
27 | - </block> | |
28 | - <!-- | |
29 | - <view class="coupon-mes flex-vertical"> | |
30 | - <view>留言</view> | |
31 | - <view class="leave-word"> | |
32 | - <input placeholder-class="fs28" placeholder='给商家留言,最多100字'bindinput="keyUpChangeNum" disabled="{{disabled}}" class="word-box" maxlength="100" name="user_note"></input> | |
33 | - </view> | |
34 | - </view>--> | |
54 | + </block> | |
55 | + | |
56 | + | |
57 | + | |
58 | + | |
59 | + | |
35 | 60 | |
36 | 61 | <view class="information bdr14"> |
37 | 62 | <view class="item"> | ... | ... |
packageA/pages/goodsInfo/goodsInfo.js
... | ... | @@ -400,8 +400,9 @@ Page({ |
400 | 400 | 'data.goods_id': t.data.data.id, |
401 | 401 | 'data.id': t.data.data.id, |
402 | 402 | 'data.sales_sum': t.data.data.sales_sum, |
403 | - 'data.storageId':t.data.data.storageId | |
404 | - }); | |
403 | + 'data.storageId':t.data.data.storageId, | |
404 | + 'data.service_sn':t.data.data.serviceSn, | |
405 | + }); | |
405 | 406 | |
406 | 407 | |
407 | 408 | //-----商品详情--- |
... | ... | @@ -522,9 +523,77 @@ Page({ |
522 | 523 | newd['pick_name'] = th.data.sto_sele_name; |
523 | 524 | newd['guide_id'] = getApp().globalData.guide_id; |
524 | 525 | newd['guide_type']=0; |
525 | - | |
526 | 526 | th.buyNow(newd); |
527 | - } | |
527 | + }else{ | |
528 | + | |
529 | + var newd = { | |
530 | + service_id: th.data.data.id, | |
531 | + service_sn:th.data.data.service_sn, | |
532 | + service_name:th.data.data.goods_name, | |
533 | + goods_num: th.data.goodsInputNum, | |
534 | + pick_id: th.data.sto_sele_id, | |
535 | + user_id:oo.user_id, | |
536 | + store_id:os.stoid, | |
537 | + money:th.data.data.shop_price | |
538 | + }; | |
539 | + if(getApp().globalData.guide_id){ | |
540 | + newd['guide_id'] = getApp().globalData.guide_id; | |
541 | + newd['guide_type']=0; | |
542 | + } | |
543 | + | |
544 | + //----先看会员在购物车中是否加入了该商品----- | |
545 | + getApp().request.get("/api/weshop/cartService/page", { | |
546 | + data: { | |
547 | + store_id: os.stoid, | |
548 | + user_id: oo.user_id, | |
549 | + service_id: th.data.data.id, | |
550 | + pick_id: th.data.sto_sele_id, | |
551 | + }, | |
552 | + success: function(re) { | |
553 | + | |
554 | + //-------如果购物车中有相关的数据--------- | |
555 | + if (re.data.data.total > 0) { | |
556 | + var item = re.data.data.pageData[0]; | |
557 | + var updata = { | |
558 | + id: item.id, | |
559 | + goods_num: th.data.goodsInputNum + item.goods_num, | |
560 | + money: th.data.data.shop_price, | |
561 | + store_id: os.stoid, | |
562 | + }; | |
563 | + | |
564 | + if (getApp().globalData.guide_id) { | |
565 | + updata['guide_id'] = getApp().globalData.guide_id; | |
566 | + updata['guide_type'] = 1; | |
567 | + } | |
568 | + getApp().request.put("/api/weshop/cartService/update", { | |
569 | + data: updata, | |
570 | + success: function(t) { | |
571 | + getApp().my_warnning('加入购物车成功', 1, th, 450); | |
572 | + var c_num = th.data.cartGoodsNum + th.data.goodsInputNum; | |
573 | + th.setData({ | |
574 | + cartGoodsNum: c_num | |
575 | + }); | |
576 | + th.closeSpecModal(); | |
577 | + } | |
578 | + }); | |
579 | + } else { | |
580 | + | |
581 | + getApp().request.post("/api/weshop/cartService/save", { | |
582 | + data: newd, | |
583 | + success: function(t) { | |
584 | + getApp().my_warnning('加入购物车成功', 1, th, 450); | |
585 | + var c_num = th.data.cartGoodsNum + th.data.goodsInputNum; | |
586 | + th.setData({ | |
587 | + cartGoodsNum: c_num | |
588 | + }); | |
589 | + th.closeSpecModal(); | |
590 | + } | |
591 | + }); | |
592 | + } | |
593 | + } | |
594 | + }); | |
595 | + | |
596 | + } | |
528 | 597 | |
529 | 598 | |
530 | 599 | }, | ... | ... |
packageA/pages/goodsInfo/goodsInfo.wxml
... | ... | @@ -160,8 +160,8 @@ |
160 | 160 | </view> |
161 | 161 | |
162 | 162 | <block> |
163 | - <!-- <view bindtap="openSpecModel" data-ind="1" class="join-btn cart-btn">加入购物车</view> --> | |
164 | - <view bindtap="openSpecModel" data-ind="2" class="buy-btn cart-btn" style="width: 64%; border-radius: 56rpx;">立即购买</view> | |
163 | + <view bindtap="openSpecModel" data-ind="1" class="join-btn cart-btn">加入购物车</view> | |
164 | + <view bindtap="openSpecModel" data-ind="2" class="buy-btn cart-btn">立即购买</view> | |
165 | 165 | </block> |
166 | 166 | |
167 | 167 | </view> | ... | ... |
pages/cart/cart/cart.js
... | ... | @@ -29,6 +29,8 @@ Page({ |
29 | 29 | card_field:"", |
30 | 30 | bconf:null, |
31 | 31 | btn_click:1, |
32 | + | |
33 | + service_data:null, | |
32 | 34 | }, |
33 | 35 | onLoad: function() { |
34 | 36 | var a = this,ee=a; |
... | ... | @@ -124,10 +126,7 @@ Page({ |
124 | 126 | } |
125 | 127 | }) |
126 | 128 | |
127 | - | |
128 | - | |
129 | - | |
130 | - | |
129 | + | |
131 | 130 | }, |
132 | 131 | |
133 | 132 | onHide(){ |
... | ... | @@ -147,9 +146,11 @@ Page({ |
147 | 146 | allsto: e |
148 | 147 | }); |
149 | 148 | th.get_cart(); |
149 | + th.get_ser_cart(); | |
150 | 150 | }) |
151 | 151 | } else { |
152 | 152 | th.get_cart(); |
153 | + th.get_ser_cart(); | |
153 | 154 | } |
154 | 155 | |
155 | 156 | //要获取会员是不是等级会员 |
... | ... | @@ -172,10 +173,18 @@ Page({ |
172 | 173 | } |
173 | 174 | } |
174 | 175 | }) |
175 | - | |
176 | - | |
176 | + if( (!this.data.requestData || this.data.requestData.length==0) && (!this.data.service_data || this.data.service_data.length==0)) { | |
177 | + setTimeout(function () { | |
178 | + var goods_list = th.selectComponent("#goods_list"); //组件的id | |
179 | + if(goods_list){ | |
180 | + goods_list.init(); | |
181 | + goods_list.get_list(); | |
182 | + } | |
183 | + }, 800) | |
184 | + } | |
177 | 185 | }, |
178 | - //-----真的获取购物车-------- | |
186 | + | |
187 | + //-----真的获取购物车-------- | |
179 | 188 | get_cart: function() { |
180 | 189 | var th = this; |
181 | 190 | var rd = Math.random().toString(36).substr(2, 15); |
... | ... | @@ -328,13 +337,7 @@ Page({ |
328 | 337 | } |
329 | 338 | } |
330 | 339 | |
331 | - if(arr.length==0) { | |
332 | - setTimeout(function () { | |
333 | - var goods_list = th.selectComponent("#goods_list"); //组件的id | |
334 | - goods_list.init(); | |
335 | - goods_list.get_list(); | |
336 | - }, 800) | |
337 | - } | |
340 | + | |
338 | 341 | |
339 | 342 | if(th.data.is_open_offline && th.data.is_open_offline>0){ |
340 | 343 | //-- 此时要实时更新线下取价价格 -- |
... | ... | @@ -357,6 +360,106 @@ Page({ |
357 | 360 | }); |
358 | 361 | }, |
359 | 362 | |
363 | + //-----真的获取购物车-------- | |
364 | + get_ser_cart: function() { | |
365 | + var th = this; | |
366 | + var rd = Math.random().toString(36).substr(2, 15); | |
367 | + getApp().request.get("/api/weshop/cartService/page", { | |
368 | + data: { | |
369 | + user_id: app.globalData.user_id, | |
370 | + rd: rd, | |
371 | + store_id: oo.stoid, | |
372 | + pageSize: 600, | |
373 | + }, | |
374 | + success:async function(su) { | |
375 | + //按门店分类的数组 | |
376 | + var arr = new Array(), | |
377 | + carr = su.data.data.pageData; | |
378 | + var all_num = 0; | |
379 | + | |
380 | + if(carr && carr.length>0) { | |
381 | + for (var i = 0; i < carr.length; i++) { | |
382 | + var item = carr[i]; | |
383 | + var good = null; | |
384 | + | |
385 | + await getApp().request.promiseGet("/api/weshop/serviceCard/get/" + oo.stoid + "/" + item.service_id, {}).then(res => { | |
386 | + good = res.data.data; | |
387 | + }) | |
388 | + if(!good){ | |
389 | + var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; | |
390 | + getApp().request.delete(url, { | |
391 | + success: function (t) { | |
392 | + } | |
393 | + }); | |
394 | + continue; | |
395 | + } | |
396 | + | |
397 | + | |
398 | + //如果商品下架了,或者商品是赠品,一开始都要清除 | |
399 | + if (good.is_show == 0) { | |
400 | + var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; | |
401 | + getApp().request.delete(url, { | |
402 | + success: function (t) { | |
403 | + } | |
404 | + }); | |
405 | + //商品已经下架 | |
406 | + continue; | |
407 | + } | |
408 | + | |
409 | + all_num += item.goods_num; | |
410 | + item.img_url = oo.imghost + good.imgUrl; | |
411 | + item.selected = 0; | |
412 | + | |
413 | + | |
414 | + var pcid = item.pick_id; | |
415 | + var find = 0; | |
416 | + //---------循环查找门店--- | |
417 | + if (arr.length > 0) { | |
418 | + for (var j = 0; j < arr.length; j++) { | |
419 | + if (arr[j].pid == pcid) { | |
420 | + arr[j].goods.push(item); | |
421 | + find = 1; | |
422 | + break; | |
423 | + } | |
424 | + } | |
425 | + } | |
426 | + | |
427 | + //------如果没有找到----- | |
428 | + if (find == 0) { | |
429 | + var pikname = ''; | |
430 | + //找到门店名称 | |
431 | + for (var k = 0; k < th.data.allsto.length; k++) { | |
432 | + if (pcid == th.data.allsto[k].pickup_id) { | |
433 | + pikname = th.data.allsto[k].pickup_name; | |
434 | + break; | |
435 | + } | |
436 | + } | |
437 | + var narr = new Array(); | |
438 | + narr.push(item); | |
439 | + var ie = { | |
440 | + pid: pcid, | |
441 | + pname: pikname, | |
442 | + goods: narr, | |
443 | + selected: 0 | |
444 | + }; | |
445 | + arr.push(ie); | |
446 | + } | |
447 | + } | |
448 | + } | |
449 | + | |
450 | + | |
451 | + th.setData({ | |
452 | + service_data: arr, | |
453 | + all_num2: all_num, | |
454 | + is_edit: 0 | |
455 | + }), | |
456 | + th.doCheckAll(), wx.stopPullDownRefresh(); | |
457 | + | |
458 | + } | |
459 | + }); | |
460 | + }, | |
461 | + | |
462 | + | |
360 | 463 | //设置莫个门店的所有线下价格 |
361 | 464 | async set_offline(list){ |
362 | 465 | var th=this; |
... | ... | @@ -444,7 +547,6 @@ Page({ |
444 | 547 | }; |
445 | 548 | th.postCardList(s, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems); |
446 | 549 | } |
447 | - | |
448 | 550 | }, |
449 | 551 | |
450 | 552 | //-------------加数量--------------------- |
... | ... | @@ -464,7 +566,6 @@ Page({ |
464 | 566 | goods_id: a.goods_id, |
465 | 567 | store_id: oo.stoid |
466 | 568 | }; |
467 | - isShowLoading: 0; | |
468 | 569 | this.postCardList(e, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems); |
469 | 570 | } else { |
470 | 571 | wx.showModal({ |
... | ... | @@ -500,66 +601,180 @@ Page({ |
500 | 601 | this.postCardList(e, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems); |
501 | 602 | } |
502 | 603 | }, |
503 | - //---------------全选,全选的时候要判断是否门店的匹配方式一致-------------- | |
604 | + | |
605 | + | |
606 | + //-----------------点击输入修改商品数量--------------- | |
607 | + valueToNum_ser: function(t) { | |
608 | + if(!this.data.is_load) return false; | |
609 | + //控制住,避免事件响应冲突,只有input有输入的时候,才刷新 | |
610 | + if(this.data.btn_click){ | |
611 | + return false; | |
612 | + } | |
613 | + this.data.btn_click=1; | |
614 | + | |
615 | + var a = t.currentTarget.dataset.item; | |
616 | + var b = t.currentTarget.dataset.pitems; | |
617 | + a = this.data.service_data[b].goods[a]; | |
618 | + var e = a; | |
619 | + var th=this; | |
620 | + | |
621 | + if (a = isNaN(t.detail.value) || t.detail.value < 1 ? 1 : parseInt(t.detail.value)) { | |
622 | + var s = { | |
623 | + goods_num: a, | |
624 | + goods_id: e.goods_id, | |
625 | + id: e.id, | |
626 | + store_id: oo.stoid | |
627 | + }; | |
628 | + th.postCardList_ser(s, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems); | |
629 | + } | |
630 | + }, | |
631 | + //-------------加数量--------------------- | |
632 | + addNum_ser: function(t) { | |
633 | + if(!this.data.is_load) return false; | |
634 | + if (this.data.up_dating == 1) return false; | |
635 | + this.data.up_dating = 1; | |
636 | + | |
637 | + var a = t.currentTarget.dataset.item; | |
638 | + var b = t.currentTarget.dataset.pitems; | |
639 | + a = this.data.service_data[b].goods[a]; | |
640 | + | |
641 | + var e = { | |
642 | + goods_num: a.goods_num + 1, | |
643 | + id: a.id, | |
644 | + goods_id: a.goods_id, | |
645 | + store_id: oo.stoid | |
646 | + }; | |
647 | + this.postCardList_ser(e, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems); | |
648 | + | |
649 | + }, | |
650 | + //-------------减数量--------------------- | |
651 | + subNum_ser: function(t) { | |
652 | + if(!this.data.is_load) return false; | |
653 | + if (this.data.up_dating == 1) return false; | |
654 | + this.data.up_dating = 1; | |
655 | + | |
656 | + var a = t.currentTarget.dataset.item; | |
657 | + var b = t.currentTarget.dataset.pitems; | |
658 | + a = this.data.service_data[b].goods[a]; | |
659 | + this.data.btn_click=1; | |
660 | + | |
661 | + if (a.goods_num - 1 < 0){ | |
662 | + this.data.up_dating = 0; | |
663 | + return false; | |
664 | + } | |
665 | + | |
666 | + if (1 != a.goods_num) { | |
667 | + var e = { | |
668 | + goods_num: a.goods_num - 1, | |
669 | + id: a.id, | |
670 | + goods_id: a.goods_id, | |
671 | + store_id: oo.stoid | |
672 | + }; | |
673 | + this.postCardList_ser(e, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems); | |
674 | + } | |
675 | + }, | |
676 | + | |
677 | + | |
678 | + //---------------全选,全选的时候要判断是否门店的匹配方式一致-------------- | |
504 | 679 | checkAll: function() { |
505 | 680 | var e = this, |
506 | 681 | dda = e.data.requestData, |
682 | + sdda = e.data.service_data, | |
507 | 683 | tfeel = 0, |
508 | 684 | t_num = 0, |
509 | 685 | text_arr = ""; |
686 | + | |
687 | + if(e.data.requestData && e.data.requestData.length>0 | |
688 | + && e.data.service_data && e.data.service_data.length>0){ | |
689 | + wx.showModal({ | |
690 | + title: '提示', | |
691 | + content: '服务卡项目不能和商品一起选择' | |
692 | + }); | |
693 | + return false; | |
694 | + } | |
695 | + | |
510 | 696 | this.data.btn_click=1; |
511 | 697 | |
512 | - for (var i = 0; i < dda.length; i++) { | |
513 | - var item = dda[i].goods; | |
514 | - if (!e.data.checkAllToggle) { | |
515 | - var txt = "requestData[" + i + "].selected"; | |
516 | - e.setData({ | |
517 | - [txt]: 0, | |
518 | - }); | |
519 | - } | |
520 | - var fir = 0; | |
521 | - for (var j = 0; j < item.length; j++) { | |
522 | - if(item[j].is_gift) continue; | |
523 | - if (fir == 0) { | |
524 | - fir = item[j].distr_type; | |
525 | - } else { | |
526 | - //如果同一门店有不同门店的商品,不能同一配送 | |
527 | - if (fir != item[j].distr_type && !e.data.checkAllToggle && item[j].distr_type != 0) { | |
528 | - text_arr += item[j].goods_name + " "; | |
529 | - break; | |
698 | + if(dda && dda.length>0){ | |
699 | + for (var i = 0; i < dda.length; i++) { | |
700 | + var item = dda[i].goods; | |
701 | + if (!e.data.checkAllToggle) { | |
702 | + var txt = "requestData[" + i + "].selected"; | |
703 | + e.setData({ | |
704 | + [txt]: 0, | |
705 | + }); | |
706 | + } | |
707 | + var fir = 0; | |
708 | + for (var j = 0; j < item.length; j++) { | |
709 | + if(item[j].is_gift) continue; | |
710 | + if (fir == 0) { | |
711 | + fir = item[j].distr_type; | |
712 | + } else { | |
713 | + //如果同一门店有不同门店的商品,不能同一配送 | |
714 | + if (fir != item[j].distr_type && !e.data.checkAllToggle && item[j].distr_type != 0) { | |
715 | + text_arr += item[j].goods_name + " "; | |
716 | + break; | |
717 | + } | |
718 | + } | |
719 | + var txt = "requestData[" + i + "].goods[" + j + "].selected" | |
720 | + e.setData({ | |
721 | + [txt]: !e.data.checkAllToggle, | |
722 | + }) | |
723 | + if (!e.data.checkAllToggle) { | |
724 | + tfeel += item[j].goods_num * item[j].goods_price; | |
725 | + t_num += item[j].goods_num; | |
530 | 726 | } |
531 | 727 | } |
532 | - var txt = "requestData[" + i + "].goods[" + j + "].selected" | |
728 | + } | |
729 | + | |
730 | + if (text_arr != "") { | |
731 | + wx.showModal({ | |
732 | + title: '提示', | |
733 | + content: text_arr + '不能与门店中其他商品一起结算,配送方式不一致' | |
734 | + }); | |
735 | + return false; | |
736 | + } else { | |
533 | 737 | e.setData({ |
534 | - [txt]: !e.data.checkAllToggle, | |
535 | - }) | |
536 | - if (!e.data.checkAllToggle) { | |
537 | - tfeel += item[j].goods_num * item[j].goods_price; | |
538 | - t_num += item[j].goods_num; | |
738 | + checkAllToggle: !e.data.checkAllToggle, | |
739 | + total_fee: tfeel.toFixed(2), | |
740 | + total_num: t_num, | |
741 | + }); | |
742 | + | |
743 | + for(var i in e.data.requestData){ | |
744 | + e.check_prom_activity(i) | |
539 | 745 | } |
540 | 746 | } |
541 | 747 | } |
542 | 748 | |
543 | - if (text_arr != "") { | |
544 | - wx.showModal({ | |
545 | - title: '提示', | |
546 | - content: text_arr + '不能与门店中其他商品一起结算,配送方式不一致' | |
547 | - }); | |
548 | - return false; | |
549 | - } else { | |
749 | + if(sdda && sdda.length>0){ | |
750 | + for (var i = 0; i < sdda.length; i++) { | |
751 | + var item = sdda[i].goods; | |
752 | + if (!e.data.checkAllToggle) { | |
753 | + var txt = "service_data[" + i + "].selected"; | |
754 | + e.setData({ | |
755 | + [txt]: 0, | |
756 | + }); | |
757 | + } | |
758 | + var fir = 0; | |
759 | + for (var j = 0; j < item.length; j++) { | |
760 | + var txt = "service_data[" + i + "].goods[" + j + "].selected" | |
761 | + e.setData({ | |
762 | + [txt]: !e.data.checkAllToggle, | |
763 | + }) | |
764 | + if (!e.data.checkAllToggle) { | |
765 | + tfeel += item[j].goods_num * item[j].money; | |
766 | + t_num += item[j].goods_num; | |
767 | + } | |
768 | + } | |
769 | + } | |
550 | 770 | e.setData({ |
551 | 771 | checkAllToggle: !e.data.checkAllToggle, |
552 | 772 | total_fee: tfeel.toFixed(2), |
553 | 773 | total_num: t_num, |
554 | 774 | }); |
555 | - | |
556 | - for(var i in e.data.requestData){ | |
557 | - e.check_prom_activity(i) | |
558 | - } | |
559 | - | |
560 | 775 | } |
561 | - }, | |
562 | 776 | |
777 | + }, | |
563 | 778 | //------门店全选按钮,要判断是否门店的匹配方式一致--------- |
564 | 779 | check_th_all_item:async function(ele) { |
565 | 780 | var e = this, |
... | ... | @@ -567,10 +782,32 @@ Page({ |
567 | 782 | item = this.data.requestData[pitems].goods, |
568 | 783 | sele = this.data.requestData[pitems].selected; |
569 | 784 | this.data.btn_click=1; |
785 | + var garr=e.data.service_data; | |
570 | 786 | |
571 | 787 | var isok = 1, |
572 | 788 | fir = 0, |
573 | 789 | iarr = item; |
790 | + | |
791 | + if(!sele){ | |
792 | + var check_is_service_selected=0; | |
793 | + for (var ii in garr){ | |
794 | + for (var ij in garr[ii].goods){ | |
795 | + if( garr[ii].goods[ij].selected){ | |
796 | + check_is_service_selected=1; | |
797 | + break; | |
798 | + } | |
799 | + } | |
800 | + } | |
801 | + | |
802 | + if(check_is_service_selected){ | |
803 | + wx.showModal({ | |
804 | + title: '提示', | |
805 | + content: '服务卡项目不能和商品一起选择' | |
806 | + }); | |
807 | + return false; | |
808 | + } | |
809 | + } | |
810 | + | |
574 | 811 | if (!sele && item.length > 0) { |
575 | 812 | for (var i = 0; i < iarr.length; i++) { |
576 | 813 | if(iarr[i].is_gift==1) continue; |
... | ... | @@ -612,7 +849,6 @@ Page({ |
612 | 849 | } |
613 | 850 | this.doCheckAll(); |
614 | 851 | }, |
615 | - | |
616 | 852 | //---------------单选,也要判断门店的配送方式是否一致-------------- |
617 | 853 | check_th_item: async function(t) { |
618 | 854 | var e = this, |
... | ... | @@ -622,13 +858,32 @@ Page({ |
622 | 858 | var isok = 1,fir = 0; |
623 | 859 | var iarr = e.data.requestData[pitems].goods; |
624 | 860 | this.data.btn_click=1; |
625 | - | |
861 | + var garr= e.data.service_data; | |
862 | + | |
863 | + if (!a.selected) { | |
864 | + var check_is_service_selected = 0; | |
865 | + for (var ii in garr) { | |
866 | + for (var ij in garr[ii].goods) { | |
867 | + if (garr[ii].goods[ij].selected) { | |
868 | + check_is_service_selected = 1; | |
869 | + break; | |
870 | + } | |
871 | + } | |
872 | + } | |
873 | + if (check_is_service_selected) { | |
874 | + wx.showModal({ | |
875 | + title: '提示', | |
876 | + content: '服务卡项目不能和商品一起选择' | |
877 | + }); | |
878 | + return false; | |
879 | + } | |
880 | + } | |
626 | 881 | |
627 | 882 | //当数量大于1,且是选择的时候 |
628 | 883 | if (iarr.length > 1 && !a.selected) { |
884 | + | |
629 | 885 | for (var i = 0; i < iarr.length; i++) { |
630 | 886 | if(iarr[i].is_gift==1) continue; |
631 | - | |
632 | 887 | //---当不是本身选择项目---- |
633 | 888 | var sel = iarr[i].selected; |
634 | 889 | if (iarr[i].distr_type != 0 && (sel || iarr[i].id == a.id)) { |
... | ... | @@ -662,10 +917,93 @@ Page({ |
662 | 917 | if(i!=pitems) await e.check_prom_activity(i); |
663 | 918 | } |
664 | 919 | } |
665 | - | |
666 | 920 | this.doCheckAll(); |
667 | 921 | } |
668 | 922 | }, |
923 | + | |
924 | + //------门店全选按钮,要判断是否门店的匹配方式一致--------- | |
925 | + check_th_all_item_ser:async function(ele) { | |
926 | + var e = this, | |
927 | + pitems = ele.currentTarget.dataset.pitems, | |
928 | + item = this.data.service_data[pitems].goods, | |
929 | + sele = this.data.service_data[pitems].selected; | |
930 | + this.data.btn_click=1; | |
931 | + var garr= e.data.requestData; | |
932 | + | |
933 | + var isok = 1, | |
934 | + fir = 0, | |
935 | + iarr = item; | |
936 | + | |
937 | + if(!sele){ | |
938 | + var check_is_goods_selected=0; | |
939 | + for (var ii in garr){ | |
940 | + for (var ij in garr[ii].goods){ | |
941 | + if( garr[ii].goods[ij].selected){ | |
942 | + check_is_goods_selected=1; | |
943 | + break; | |
944 | + } | |
945 | + } | |
946 | + } | |
947 | + if(check_is_goods_selected){ | |
948 | + wx.showModal({ | |
949 | + title: '提示', | |
950 | + content: '服务卡项目不能和商品一起选择' | |
951 | + }); | |
952 | + return false; | |
953 | + } | |
954 | + } | |
955 | + | |
956 | + for (var i = 0; i < item.length; i++) { | |
957 | + var txt = "service_data[" + pitems + "].goods[" + i + "].selected"; | |
958 | + e.setData({ | |
959 | + [txt]: Number(!sele), | |
960 | + }); | |
961 | + } | |
962 | + var txt = "service_data[" + pitems + "].selected"; | |
963 | + e.setData({ | |
964 | + [txt]: Number(!sele), | |
965 | + }); | |
966 | + this.doCheckAll(); | |
967 | + }, | |
968 | + //---------------单选,也要判断门店的配送方式是否一致-------------- | |
969 | + check_th_item_ser: async function(t) { | |
970 | + var e = this, | |
971 | + item = t.currentTarget.dataset.item, | |
972 | + pitems = t.currentTarget.dataset.pitems; | |
973 | + a = this.data.service_data[pitems].goods[item]; | |
974 | + var isok = 1,fir = 0; | |
975 | + var iarr = e.data.service_data[pitems].goods; | |
976 | + this.data.btn_click=1; | |
977 | + | |
978 | + var garr= e.data.requestData; | |
979 | + | |
980 | + if(!a.selected){ | |
981 | + var check_is_goods_selected=0; | |
982 | + for (var ii in garr){ | |
983 | + for (var ij in garr[ii].goods){ | |
984 | + if( garr[ii].goods[ij].selected){ | |
985 | + check_is_goods_selected=1; | |
986 | + break; | |
987 | + } | |
988 | + } | |
989 | + } | |
990 | + | |
991 | + if(check_is_goods_selected){ | |
992 | + wx.showModal({ | |
993 | + title: '提示', | |
994 | + content: '服务卡项目不能和商品一起选择' | |
995 | + }); | |
996 | + return false; | |
997 | + } | |
998 | + } | |
999 | + | |
1000 | + var txt = "service_data[" + pitems + "].goods[" + item + "].selected"; | |
1001 | + e.setData({ | |
1002 | + [txt]: Number(!a.selected), | |
1003 | + }); | |
1004 | + this.doCheckAll(); | |
1005 | + }, | |
1006 | + | |
669 | 1007 | //----------检查是否全选--------- |
670 | 1008 | doCheckAll: function() { |
671 | 1009 | var th = this, |
... | ... | @@ -673,49 +1011,80 @@ Page({ |
673 | 1011 | t_num = 0, |
674 | 1012 | ischeck = 1, |
675 | 1013 | car = this.data.requestData, |
1014 | + car2 = this.data.service_data, | |
676 | 1015 | all_num = 0; |
677 | 1016 | |
678 | - for (var a = 0; a < car.length; a++) { | |
679 | - var c_item=car[a]; | |
680 | - var item = car[a].goods, | |
681 | - is_s_sele = 1; | |
682 | - var offline_price=0; | |
683 | - var offline_num=0; | |
684 | - for (var c = 0; c < item.length; c++) { | |
685 | - if(item[c].is_gift) continue; | |
686 | - all_num += item[c].goods_num; | |
687 | - if (item[c].selected == 0) { | |
688 | - ischeck = 0; | |
689 | - is_s_sele = 0; | |
690 | - } else { | |
691 | - tfeel += item[c].goods_num * item[c].goods_price; | |
692 | - t_num += item[c].goods_num; | |
1017 | + //-- 购物车 -- | |
1018 | + if(car && car.length>0){ | |
1019 | + for (var a = 0; a < car.length; a++) { | |
1020 | + var c_item=car[a]; | |
1021 | + var item = car[a].goods, | |
1022 | + is_s_sele = 1; | |
1023 | + var offline_price=0; | |
1024 | + var offline_num=0; | |
1025 | + for (var c = 0; c < item.length; c++) { | |
1026 | + if(item[c].is_gift) continue; | |
1027 | + all_num += item[c].goods_num; | |
1028 | + if (item[c].selected == 0) { | |
1029 | + ischeck = 0; | |
1030 | + is_s_sele = 0; | |
1031 | + } else { | |
1032 | + tfeel += item[c].goods_num * item[c].goods_price; | |
1033 | + t_num += item[c].goods_num; | |
1034 | + } | |
1035 | + | |
1036 | + //-- 如果这个商品是线下取价的时候 -- | |
1037 | + if(item[c].is_offline){ | |
1038 | + offline_price+= (item[c].goods_price-item[c].offline_price)*item[c].goods_num; | |
1039 | + offline_num+=item[c].goods_num; | |
1040 | + } | |
1041 | + | |
693 | 1042 | } |
694 | 1043 | |
695 | - //-- 如果这个商品是线下取价的时候 -- | |
696 | - if(item[c].is_offline){ | |
697 | - offline_price+= (item[c].goods_price-item[c].offline_price)*item[c].goods_num; | |
698 | - offline_num+=item[c].goods_num; | |
1044 | + var txt = "requestData[" + a + "].selected"; | |
1045 | + th.setData({ | |
1046 | + [txt]: Number(is_s_sele) | |
1047 | + }); | |
1048 | + | |
1049 | + //当有线下取价的时候 | |
1050 | + if(offline_price){ | |
1051 | + var txt1= "requestData[" + a + "].offline_price"; | |
1052 | + var txt2= "requestData[" + a + "].offline_num"; | |
1053 | + th.setData({ | |
1054 | + [txt1]: offline_price.toFixed(2), | |
1055 | + [txt2]: offline_num, | |
1056 | + }); | |
699 | 1057 | } |
700 | 1058 | |
701 | 1059 | } |
1060 | + } | |
702 | 1061 | |
703 | - var txt = "requestData[" + a + "].selected"; | |
704 | - th.setData({ | |
705 | - [txt]: Number(is_s_sele) | |
706 | - }); | |
1062 | + //-- 服务卡 -- | |
1063 | + if(car2 && car2.length>0){ | |
1064 | + for (var a = 0; a < car2.length; a++) { | |
1065 | + var c_item=car2[a]; | |
1066 | + var item = car2[a].goods, is_s_sele = 1; | |
1067 | + | |
1068 | + for (var c = 0; c < item.length; c++) { | |
1069 | + if(item[c].is_gift) continue; | |
1070 | + all_num += item[c].goods_num; | |
1071 | + if (item[c].selected == 0) { | |
1072 | + ischeck = 0; | |
1073 | + is_s_sele = 0; | |
1074 | + } else { | |
1075 | + tfeel += item[c].goods_num * item[c].money; | |
1076 | + t_num += item[c].goods_num; | |
1077 | + } | |
1078 | + | |
1079 | + } | |
707 | 1080 | |
708 | - //当有线下取价的时候 | |
709 | - if(offline_price){ | |
710 | - var txt1= "requestData[" + a + "].offline_price"; | |
711 | - var txt2= "requestData[" + a + "].offline_num"; | |
1081 | + var txt = "service_data[" + a + "].selected"; | |
712 | 1082 | th.setData({ |
713 | - [txt1]: offline_price.toFixed(2), | |
714 | - [txt2]: offline_num, | |
1083 | + [txt]: Number(is_s_sele) | |
715 | 1084 | }); |
716 | 1085 | } |
717 | - | |
718 | 1086 | } |
1087 | + | |
719 | 1088 | this.setData({ |
720 | 1089 | checkAllToggle: ischeck, |
721 | 1090 | total_fee: tfeel.toFixed(2), |
... | ... | @@ -904,6 +1273,20 @@ Page({ |
904 | 1273 | }); |
905 | 1274 | }, |
906 | 1275 | |
1276 | + //----------------------更新购物数量,加减,调用接口--------------------- | |
1277 | + postCardList_ser: function(t, item, pitem) { | |
1278 | + var e = this,th=e; | |
1279 | + var user_id = getApp().globalData.user_id; | |
1280 | + var txt = "service_data[" + pitem + "].goods[" + item + "].goods_num"; | |
1281 | + e.setData({ | |
1282 | + [txt]: t.goods_num | |
1283 | + }); | |
1284 | + e.doCheckAll(); | |
1285 | + e.update_cart_ser(t, pitem, item); | |
1286 | + }, | |
1287 | + | |
1288 | + | |
1289 | + | |
907 | 1290 | //---检验线下库存的数量--- |
908 | 1291 | async check_down_line(t, pitem, item,erpwareid){ |
909 | 1292 | var ob={},th=this; |
... | ... | @@ -993,6 +1376,25 @@ Page({ |
993 | 1376 | }); |
994 | 1377 | }, |
995 | 1378 | |
1379 | + //--更新购物车--- | |
1380 | + update_cart_ser: function(t, pitem, item) { | |
1381 | + var e = this; | |
1382 | + getApp().request.put("/api/weshop/cartService/update", { | |
1383 | + data: t, | |
1384 | + success:async function(ee) { | |
1385 | + var txt = "service_data[" + pitem + "].goods[" + item + "].goods_num"; | |
1386 | + e.setData({ | |
1387 | + [txt]: t.goods_num, | |
1388 | + }); | |
1389 | + e.doCheckAll(); | |
1390 | + getApp().requestCardNum(e); | |
1391 | + } | |
1392 | + }); | |
1393 | + }, | |
1394 | + | |
1395 | + | |
1396 | + | |
1397 | + | |
996 | 1398 | //-------下拉刷新--------- |
997 | 1399 | onPullDownRefresh: function(t) { |
998 | 1400 | this.getCardList(); |
... | ... | @@ -1008,259 +1410,293 @@ Page({ |
1008 | 1410 | }) |
1009 | 1411 | } |
1010 | 1412 | |
1011 | - var glist = ""; //用逗号隔开的 | |
1012 | - var map = new Map(); //使用map值键进行运算 | |
1013 | - var map_limit = new Map(); //使用map值键进行存储限购 | |
1014 | - var g_arr = new Array(); //已选的商品列表 | |
1015 | - var user_id = getApp().globalData.user_id; | |
1016 | - var th = this; | |
1017 | - //用于判断是不是积分购的普通购买 | |
1018 | - var normal_arr={}; | |
1019 | - var ab = 0; //选中 | |
1020 | - wx.showLoading(); | |
1021 | - for (var i = 0; i < this.data.requestData.length; i++) { | |
1022 | - var i_arr = this.data.requestData[i].goods; | |
1023 | - for (var j = 0; j < i_arr.length; j++) { | |
1024 | - if (i_arr[j].selected && i_arr[j].is_gift!=1) { | |
1025 | - | |
1026 | - if(i_arr[j].is_pd_normal) { | |
1027 | - normal_arr[i_arr[j].goods_id]=1; | |
1028 | - } | |
1029 | - //map 的key是不会重复,会覆盖,, | |
1030 | - var ie = { | |
1031 | - goods_id: i_arr[j].goods_id, | |
1032 | - id: i_arr[j].id, | |
1033 | - goods_price: i_arr[j].goods_price, | |
1034 | - }; | |
1035 | - //判断是不是线下取价 | |
1036 | - if(i_arr[j].is_offline){ | |
1037 | - ie.is_offline=i_arr[j].is_offline; | |
1038 | - ie.offline_price=i_arr[j].offline_price; | |
1039 | - ie.pricing_type=i_arr[j].pricing_type; | |
1040 | - } | |
1041 | - g_arr.push(ie); | |
1042 | - | |
1043 | - if (map.has(i_arr[j].goods_id + "")) { | |
1044 | - var num11 = map.get(i_arr[j].goods_id + ""); | |
1045 | - var num22 = parseInt(i_arr[j].goods_num) + parseInt(num11); | |
1046 | - map.set(i_arr[j].goods_id + "", num22); | |
1047 | - } else { | |
1048 | - map.set(i_arr[j].goods_id + "", i_arr[j].goods_num); | |
1413 | + var garr=this.data.requestData; | |
1414 | + var check_is_goods_selected=0; | |
1415 | + if(garr) { | |
1416 | + for (var ii in garr) { | |
1417 | + for (var ij in garr[ii].goods) { | |
1418 | + if (garr[ii].goods[ij].selected) { | |
1419 | + check_is_goods_selected = 1; | |
1420 | + break; | |
1049 | 1421 | } |
1050 | - glist += i_arr[j].goods_id + ","; | |
1051 | - ab = 1; | |
1052 | - //--普通商品,如果有开启线下库存的功能,要调用线下库存进行计算,赠品不要进行调用线下库存--- | |
1053 | - 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){ | |
1054 | - //--获取商品的线下商品ID-- | |
1055 | - var gd=null; | |
1056 | - await getApp().request.promiseGet("/api/weshop/goods/get/" + oo.stoid + "/" + i_arr[j].goods_id,{}).then(res=>{ | |
1057 | - if(res.data.code==0) gd=res.data.data; | |
1058 | - }) | |
1059 | - //--判断商品是线下库存-- | |
1060 | - var ob={} | |
1061 | - await th.check_down_line_next(i_arr[j],i,j,gd.erpwareid,function(rs){ | |
1062 | - ob=rs; | |
1063 | - }); | |
1064 | - if(ob.code==-1){ | |
1065 | - t.my_warnning(gd.goods_name+"门店库存不足", 0, th); | |
1066 | - wx.hideLoading(); | |
1067 | - return false; | |
1422 | + } | |
1423 | + } | |
1424 | + } | |
1425 | + //-- 如果是商品的结算 -- | |
1426 | + if(check_is_goods_selected) { | |
1427 | + var glist = ""; //用逗号隔开的 | |
1428 | + var map = new Map(); //使用map值键进行运算 | |
1429 | + var map_limit = new Map(); //使用map值键进行存储限购 | |
1430 | + var g_arr = new Array(); //已选的商品列表 | |
1431 | + var user_id = getApp().globalData.user_id; | |
1432 | + var th = this; | |
1433 | + //用于判断是不是积分购的普通购买 | |
1434 | + var normal_arr = {}; | |
1435 | + var ab = 0; //选中 | |
1436 | + wx.showLoading(); | |
1437 | + for (var i = 0; i < this.data.requestData.length; i++) { | |
1438 | + var i_arr = this.data.requestData[i].goods; | |
1439 | + for (var j = 0; j < i_arr.length; j++) { | |
1440 | + if (i_arr[j].selected && i_arr[j].is_gift != 1) { | |
1441 | + | |
1442 | + if (i_arr[j].is_pd_normal) { | |
1443 | + normal_arr[i_arr[j].goods_id] = 1; | |
1068 | 1444 | } |
1069 | - | |
1070 | - var is_ok=1; | |
1071 | - //如果是优惠活动话,要看活动有没有过期 | |
1072 | - if(i_arr[j].prom_type==3){ | |
1073 | - //判断有没有活动 | |
1074 | - await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromList/" + os.stoid+"/"+i_arr[j].goods_id+"/1", {}).then(res => { | |
1075 | - if(res.data.code==0){ | |
1076 | - if(!res.data.data.promGoodsLists){ | |
1077 | - t.my_warnning(i_arr[j].goods_name+"优惠活动已经过期", 0, th); | |
1078 | - wx.hideLoading(); | |
1079 | - is_ok=0; | |
1080 | - } | |
1081 | - } | |
1082 | - }) | |
1445 | + //map 的key是不会重复,会覆盖,, | |
1446 | + var ie = { | |
1447 | + goods_id: i_arr[j].goods_id, | |
1448 | + id: i_arr[j].id, | |
1449 | + goods_price: i_arr[j].goods_price, | |
1450 | + }; | |
1451 | + //判断是不是线下取价 | |
1452 | + if (i_arr[j].is_offline) { | |
1453 | + ie.is_offline = i_arr[j].is_offline; | |
1454 | + ie.offline_price = i_arr[j].offline_price; | |
1455 | + ie.pricing_type = i_arr[j].pricing_type; | |
1083 | 1456 | } |
1084 | - if(!is_ok){return false;} | |
1085 | - } | |
1457 | + g_arr.push(ie); | |
1458 | + | |
1459 | + if (map.has(i_arr[j].goods_id + "")) { | |
1460 | + var num11 = map.get(i_arr[j].goods_id + ""); | |
1461 | + var num22 = parseInt(i_arr[j].goods_num) + parseInt(num11); | |
1462 | + map.set(i_arr[j].goods_id + "", num22); | |
1463 | + } else { | |
1464 | + map.set(i_arr[j].goods_id + "", i_arr[j].goods_num); | |
1465 | + } | |
1466 | + glist += i_arr[j].goods_id + ","; | |
1467 | + ab = 1; | |
1468 | + //--普通商品,如果有开启线下库存的功能,要调用线下库存进行计算,赠品不要进行调用线下库存--- | |
1469 | + 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) { | |
1470 | + //--获取商品的线下商品ID-- | |
1471 | + var gd = null; | |
1472 | + await getApp().request.promiseGet("/api/weshop/goods/get/" + oo.stoid + "/" + i_arr[j].goods_id, {}).then(res => { | |
1473 | + if (res.data.code == 0) gd = res.data.data; | |
1474 | + }) | |
1475 | + //--判断商品是线下库存-- | |
1476 | + var ob = {} | |
1477 | + await th.check_down_line_next(i_arr[j], i, j, gd.erpwareid, function (rs) { | |
1478 | + ob = rs; | |
1479 | + }); | |
1480 | + if (ob.code == -1) { | |
1481 | + t.my_warnning(gd.goods_name + "门店库存不足", 0, th); | |
1482 | + wx.hideLoading(); | |
1483 | + return false; | |
1484 | + } | |
1086 | 1485 | |
1087 | - } else { | |
1088 | - if(i_arr[j].is_gift==1) continue; | |
1089 | - rq.put("/api/weshop/cart/update", { | |
1090 | - data: { | |
1091 | - id: i_arr[j].id, | |
1092 | - selected: 0, | |
1093 | - store_id: oo.stoid | |
1094 | - }, | |
1095 | - success: function(ee) { | |
1096 | - console.log(ee); | |
1486 | + var is_ok = 1; | |
1487 | + //如果是优惠活动话,要看活动有没有过期 | |
1488 | + if (i_arr[j].prom_type == 3) { | |
1489 | + //判断有没有活动 | |
1490 | + await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromList/" + os.stoid + "/" + i_arr[j].goods_id + "/1", {}).then(res => { | |
1491 | + if (res.data.code == 0) { | |
1492 | + if (!res.data.data.promGoodsLists) { | |
1493 | + t.my_warnning(i_arr[j].goods_name + "优惠活动已经过期", 0, th); | |
1494 | + wx.hideLoading(); | |
1495 | + is_ok = 0; | |
1496 | + } | |
1497 | + } | |
1498 | + }) | |
1499 | + } | |
1500 | + if (!is_ok) { | |
1501 | + return false; | |
1502 | + } | |
1097 | 1503 | } |
1098 | - }); | |
1099 | - } | |
1100 | - } | |
1101 | - } | |
1102 | - if (ab == 0) { | |
1103 | - t.my_warnning("未选择商品", 0, th); | |
1104 | - wx.hideLoading(); | |
1105 | - return false; | |
1106 | - } | |
1107 | 1504 | |
1108 | - glist = glist.substring(0, glist.length - 1); | |
1109 | - //--取一下商品的限购 以及活动的限购,redis数量-- | |
1110 | - rq.get("/api/weshop/goods/getGoodsListNum", { | |
1111 | - data: { | |
1112 | - goodsidlist: glist, | |
1113 | - store_id: oo.stoid | |
1114 | - }, | |
1115 | - async success(ee) { | |
1116 | - console.log(ee); | |
1117 | - if (ee.data.code == 0) { | |
1118 | - var ddata = ee.data.data, | |
1119 | - isok = 1, | |
1120 | - gname = "", | |
1121 | - err = ""; | |
1122 | - //--组装-- | |
1123 | - for (var ij = 0; ij < ddata.length; ij++) { | |
1124 | - var val = ddata[ij]; | |
1125 | - var obj = map_limit.get(val.goods_id + ""); | |
1126 | - if (obj) continue; | |
1127 | - | |
1128 | - var promgoodsbuynum = 0; | |
1129 | - var goodsbuynum = 0; | |
1130 | - //--要获得商品,该用户买了多少件,同步应用-- | |
1131 | - await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", { | |
1505 | + } else { | |
1506 | + if (i_arr[j].is_gift == 1) continue; | |
1507 | + rq.put("/api/weshop/cart/update", { | |
1132 | 1508 | data: { |
1133 | - store_id: oo.stoid, | |
1134 | - user_id: user_id, | |
1135 | - goods_id: val.goods_id, | |
1136 | - prom_type: val.prom_type, | |
1137 | - prom_id: val.prom_id | |
1509 | + id: i_arr[j].id, | |
1510 | + selected: 0, | |
1511 | + store_id: oo.stoid | |
1138 | 1512 | }, |
1139 | - }).then(res => { | |
1140 | - var buy_num_data = res.data.data; | |
1141 | - if (buy_num_data.promgoodsbuynum) promgoodsbuynum = buy_num_data.promgoodsbuynum; | |
1142 | - goodsbuynum = buy_num_data.goodsbuynum; | |
1143 | - }) | |
1144 | - var ie= { | |
1145 | - promgoodsbuynum: promgoodsbuynum, | |
1146 | - goodsbuynum: goodsbuynum | |
1147 | - }; | |
1148 | - map_limit.set(val.goods_id + "", ie); | |
1513 | + success: function (ee) { | |
1514 | + console.log(ee); | |
1515 | + } | |
1516 | + }); | |
1149 | 1517 | } |
1518 | + } | |
1519 | + } | |
1520 | + if (ab == 0) { | |
1521 | + t.my_warnning("未选择商品", 0, th); | |
1522 | + wx.hideLoading(); | |
1523 | + return false; | |
1524 | + } | |
1150 | 1525 | |
1151 | - try { | |
1152 | - for(var ind in ddata) { | |
1153 | - var val=ddata[ind]; | |
1154 | - var num = map.get(val.goods_id + ""); | |
1155 | - if (num <= 0) { | |
1156 | - isok = 0; | |
1157 | - gname = val.goods_name; | |
1158 | - throw "购买数量不能为0"; | |
1159 | - return false; | |
1160 | - } | |
1526 | + glist = glist.substring(0, glist.length - 1); | |
1527 | + //--取一下商品的限购 以及活动的限购,redis数量-- | |
1528 | + rq.get("/api/weshop/goods/getGoodsListNum", { | |
1529 | + data: { | |
1530 | + goodsidlist: glist, | |
1531 | + store_id: oo.stoid | |
1532 | + }, | |
1533 | + async success(ee) { | |
1534 | + console.log(ee); | |
1535 | + if (ee.data.code == 0) { | |
1536 | + var ddata = ee.data.data, | |
1537 | + isok = 1, | |
1538 | + gname = "", | |
1539 | + err = ""; | |
1540 | + //--组装-- | |
1541 | + for (var ij = 0; ij < ddata.length; ij++) { | |
1542 | + var val = ddata[ij]; | |
1543 | + var obj = map_limit.get(val.goods_id + ""); | |
1544 | + if (obj) continue; | |
1545 | + | |
1546 | + var promgoodsbuynum = 0; | |
1547 | + var goodsbuynum = 0; | |
1548 | + //--要获得商品,该用户买了多少件,同步应用-- | |
1549 | + await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", { | |
1550 | + data: { | |
1551 | + store_id: oo.stoid, | |
1552 | + user_id: user_id, | |
1553 | + goods_id: val.goods_id, | |
1554 | + prom_type: val.prom_type, | |
1555 | + prom_id: val.prom_id | |
1556 | + }, | |
1557 | + }).then(res => { | |
1558 | + var buy_num_data = res.data.data; | |
1559 | + if (buy_num_data.promgoodsbuynum) promgoodsbuynum = buy_num_data.promgoodsbuynum; | |
1560 | + goodsbuynum = buy_num_data.goodsbuynum; | |
1561 | + }) | |
1562 | + var ie = { | |
1563 | + promgoodsbuynum: promgoodsbuynum, | |
1564 | + goodsbuynum: goodsbuynum | |
1565 | + }; | |
1566 | + map_limit.set(val.goods_id + "", ie); | |
1567 | + } | |
1161 | 1568 | |
1162 | - if(val.prom_type==1 || val.prom_type==6){ | |
1163 | - if (num > val.store_count) { | |
1569 | + try { | |
1570 | + for (var ind in ddata) { | |
1571 | + var val = ddata[ind]; | |
1572 | + var num = map.get(val.goods_id + ""); | |
1573 | + if (num <= 0) { | |
1164 | 1574 | isok = 0; |
1165 | 1575 | gname = val.goods_name; |
1166 | - throw "超出库存"; | |
1576 | + throw "购买数量不能为0"; | |
1167 | 1577 | return false; |
1168 | 1578 | } |
1169 | - } | |
1170 | 1579 | |
1171 | - if(th.data.sales_rules!=2){ | |
1172 | - if (num > val.store_count) { | |
1580 | + if (val.prom_type == 1 || val.prom_type == 6) { | |
1581 | + if (num > val.store_count) { | |
1582 | + isok = 0; | |
1583 | + gname = val.goods_name; | |
1584 | + throw "超出库存"; | |
1585 | + return false; | |
1586 | + } | |
1587 | + } | |
1588 | + | |
1589 | + if (th.data.sales_rules != 2) { | |
1590 | + if (num > val.store_count) { | |
1591 | + isok = 0; | |
1592 | + gname = val.goods_name; | |
1593 | + throw "超出库存"; | |
1594 | + return false; | |
1595 | + } | |
1596 | + } | |
1597 | + | |
1598 | + if (num > val.redisnum && val.redisnum && !normal_arr[val.goods_id]) { | |
1173 | 1599 | isok = 0; |
1174 | 1600 | gname = val.goods_name; |
1175 | - throw "超出库存"; | |
1601 | + throw "超出活动库存"; | |
1602 | + return false; | |
1603 | + } | |
1604 | + if (num > val.goods_num - val.buy_num && val.goods_num && !normal_arr[val.goods_id]) { | |
1605 | + isok = 0; | |
1606 | + gname = val.goods_name; | |
1607 | + throw "超出活动库存"; | |
1176 | 1608 | return false; |
1177 | 1609 | } |
1178 | - } | |
1179 | - | |
1180 | - if (num > val.redisnum && val.redisnum && !normal_arr[val.goods_id]) { | |
1181 | - isok = 0; | |
1182 | - gname = val.goods_name; | |
1183 | - throw "超出活动库存"; | |
1184 | - return false; | |
1185 | - } | |
1186 | - if (num > val.goods_num - val.buy_num && val.goods_num && !normal_arr[val.goods_id]) { | |
1187 | - isok = 0; | |
1188 | - gname = val.goods_name; | |
1189 | - throw "超出活动库存"; | |
1190 | - return false; | |
1191 | - } | |
1192 | - | |
1193 | - var buyed = map_limit.get(val.goods_id + ""); | |
1194 | - if (num + buyed.goodsbuynum > val.viplimited && val.viplimited > 0) { | |
1195 | - isok = 0; | |
1196 | - gname = val.goods_name; | |
1197 | - throw "超出商品限购"; | |
1198 | - return false; | |
1199 | - } | |
1200 | - | |
1201 | - if (num + buyed.promgoodsbuynum > val.buy_limit && val.buy_limit > 0 && !normal_arr[val.goods_id]) { | |
1202 | - isok = 0; | |
1203 | - gname = val.goods_name; | |
1204 | - throw "超出活动限购"; | |
1205 | - return false; | |
1206 | - } | |
1207 | 1610 | |
1611 | + var buyed = map_limit.get(val.goods_id + ""); | |
1612 | + if (num + buyed.goodsbuynum > val.viplimited && val.viplimited > 0) { | |
1613 | + isok = 0; | |
1614 | + gname = val.goods_name; | |
1615 | + throw "超出商品限购"; | |
1616 | + return false; | |
1617 | + } | |
1208 | 1618 | |
1209 | - var card_field=th.data.card_field; | |
1210 | - for (var i = 0; i < g_arr.length; i++) { | |
1211 | - if (g_arr[i].goods_id == val.goods_id) { | |
1619 | + if (num + buyed.promgoodsbuynum > val.buy_limit && val.buy_limit > 0 && !normal_arr[val.goods_id]) { | |
1620 | + isok = 0; | |
1621 | + gname = val.goods_name; | |
1622 | + throw "超出活动限购"; | |
1623 | + return false; | |
1624 | + } | |
1212 | 1625 | |
1213 | - //如果会员是等级会员,商品有等级价,且不是活动商品 | |
1214 | - if(card_field && val[card_field]>0 && (val.prom_type==0 || val.prom_type==3 || val.prom_type==4 || val.prom_type==5 || normal_arr[val.goods_id]) ){ | |
1215 | - if (g_arr[i].goods_price != val[card_field]){ | |
1216 | - isok = 0; | |
1217 | - gname = val.goods_name; | |
1218 | - throw "商品价格已经变化"; | |
1219 | - } | |
1220 | - }else{ | |
1221 | - if (g_arr[i].goods_price != val.shop_price && g_arr[i].goods_price != val.prom_price) { | |
1222 | - isok = 0; | |
1223 | - gname = val.goods_name; | |
1224 | - throw "商品价格已经变化"; | |
1626 | + var card_field = th.data.card_field; | |
1627 | + for (var i = 0; i < g_arr.length; i++) { | |
1628 | + if (g_arr[i].goods_id == val.goods_id) { | |
1629 | + | |
1630 | + //如果会员是等级会员,商品有等级价,且不是活动商品 | |
1631 | + if (card_field && val[card_field] > 0 && (val.prom_type == 0 || val.prom_type == 3 || val.prom_type == 4 || val.prom_type == 5 || normal_arr[val.goods_id])) { | |
1632 | + if (g_arr[i].goods_price != val[card_field]) { | |
1633 | + isok = 0; | |
1634 | + gname = val.goods_name; | |
1635 | + throw "商品价格已经变化"; | |
1636 | + } | |
1637 | + } else { | |
1638 | + if (g_arr[i].goods_price != val.shop_price && g_arr[i].goods_price != val.prom_price) { | |
1639 | + isok = 0; | |
1640 | + gname = val.goods_name; | |
1641 | + throw "商品价格已经变化"; | |
1642 | + } | |
1225 | 1643 | } |
1226 | - } | |
1227 | 1644 | |
1228 | - //-- 数据的更新 -- | |
1229 | - var data={ | |
1230 | - id: g_arr[i].id, | |
1231 | - selected: 1, | |
1232 | - store_id: oo.stoid | |
1233 | - }; | |
1234 | - //-- 如果有线下取价的时候 -- | |
1235 | - if(g_arr[i].is_offline){ | |
1236 | - data.pricing_type=g_arr[i].pricing_type; | |
1237 | - data.offline_price=g_arr[i].offline_price; | |
1238 | - } | |
1239 | - rq.put("/api/weshop/cart/update", { | |
1240 | - data: data, | |
1241 | - success: function(ee) { | |
1242 | - console.log(ee); | |
1645 | + //-- 数据的更新 -- | |
1646 | + var data = { | |
1647 | + id: g_arr[i].id, | |
1648 | + selected: 1, | |
1649 | + store_id: oo.stoid | |
1650 | + }; | |
1651 | + //-- 如果有线下取价的时候 -- | |
1652 | + if (g_arr[i].is_offline) { | |
1653 | + data.pricing_type = g_arr[i].pricing_type; | |
1654 | + data.offline_price = g_arr[i].offline_price; | |
1243 | 1655 | } |
1244 | - }); | |
1656 | + rq.put("/api/weshop/cart/update", { | |
1657 | + data: data, | |
1658 | + success: function (ee) { | |
1659 | + console.log(ee); | |
1660 | + } | |
1661 | + }); | |
1662 | + } | |
1245 | 1663 | } |
1246 | - } | |
1247 | 1664 | |
1665 | + } | |
1666 | + } catch (e) { | |
1667 | + err = e; | |
1668 | + } | |
1669 | + if (isok == 0) { | |
1670 | + t.confirmBox(gname + ":" + err); | |
1671 | + wx.hideLoading(); | |
1672 | + return false; | |
1248 | 1673 | } |
1249 | - } catch (e) { | |
1250 | - err = e; | |
1251 | - } | |
1252 | - if (isok == 0) { | |
1253 | - t.confirmBox(gname + ":" + err); | |
1254 | 1674 | wx.hideLoading(); |
1255 | - return false; | |
1675 | + wx.navigateTo({ | |
1676 | + url: "/pages/cart/cart2/cart2" | |
1677 | + }); | |
1678 | + } | |
1679 | + } | |
1680 | + }); | |
1681 | + }else{ | |
1682 | + //-- 开始服务卡的购物车购买 -- | |
1683 | + for (var i = 0; i < this.data.service_data.length; i++) { | |
1684 | + var i_arr = this.data.service_data[i].goods; | |
1685 | + for (var j = 0; j < i_arr.length; j++) { | |
1686 | + if (i_arr[j].selected) { | |
1687 | + await rq.promisePut("/api/weshop/cartService/update", { | |
1688 | + data: { | |
1689 | + id: i_arr[j].id, | |
1690 | + selected: 1, | |
1691 | + store_id: oo.stoid | |
1692 | + } | |
1693 | + }); | |
1256 | 1694 | } |
1257 | - wx.hideLoading(); | |
1258 | - wx.navigateTo({ | |
1259 | - url: "/pages/cart/cart2/cart2" | |
1260 | - }); | |
1261 | 1695 | } |
1262 | 1696 | } |
1263 | - }); | |
1697 | + wx.hideLoading(); | |
1698 | + getApp().goto("/packageA/pages/cart2_ser/cart2_ser?is_cart=1"); | |
1699 | + } | |
1264 | 1700 | }, |
1265 | 1701 | |
1266 | 1702 | //结算到最后一个商品 |
... | ... | @@ -1302,11 +1738,12 @@ Page({ |
1302 | 1738 | |
1303 | 1739 | //--多个删除购物车商品--- |
1304 | 1740 | check_del: function() { |
1305 | - var glist = ""; //用逗号隔开的 | |
1741 | + var glist = "",slist=''; //用逗号隔开的 | |
1306 | 1742 | var user_id = getApp().globalData.user_id; |
1307 | 1743 | var th = this; |
1308 | 1744 | |
1309 | 1745 | var ab = 0; //选中 |
1746 | + var abc=0; // | |
1310 | 1747 | for (var i = 0; i < this.data.requestData.length; i++) { |
1311 | 1748 | var i_arr = this.data.requestData[i].goods; |
1312 | 1749 | for (var j = 0; j < i_arr.length; j++) { |
... | ... | @@ -1317,18 +1754,42 @@ Page({ |
1317 | 1754 | } |
1318 | 1755 | } |
1319 | 1756 | |
1320 | - if (ab == 0) { | |
1321 | - t.my_warnning("未选择商品", 0, th); | |
1757 | + for (var ii = 0; ii < this.data.service_data.length; ii++) { | |
1758 | + var i_arr = this.data.service_data[ii].goods; | |
1759 | + for (var jj = 0; jj < i_arr.length; jj++) { | |
1760 | + if (i_arr[jj].selected) { | |
1761 | + slist += i_arr[jj].id + ","; | |
1762 | + abc = 1; | |
1763 | + } | |
1764 | + } | |
1765 | + } | |
1766 | + | |
1767 | + if (ab == 0 && abc==0) { | |
1768 | + t.my_warnning("未选择商品或者服务卡", 0, th); | |
1322 | 1769 | return false; |
1323 | 1770 | } |
1324 | - glist = glist.substring(0, glist.length - 1); | |
1325 | - //要删除购物车中的商品 | |
1326 | - var url = '/api/weshop/cart/delIds/' + oo.stoid + '/' + user_id + "/" + glist; | |
1327 | - getApp().request.delete(url, { | |
1328 | - success: function(t) { | |
1329 | - th.getCardList(); | |
1330 | - } | |
1331 | - }); | |
1771 | + | |
1772 | + if(ab){ | |
1773 | + glist = glist.substring(0, glist.length - 1); | |
1774 | + //要删除购物车中的商品 | |
1775 | + var url = '/api/weshop/cart/delIds/' + oo.stoid + '/' + user_id + "/" + glist; | |
1776 | + getApp().request.delete(url, { | |
1777 | + success: function(t) { | |
1778 | + th.getCardList(); | |
1779 | + } | |
1780 | + }); | |
1781 | + } | |
1782 | + if(abc){ | |
1783 | + slist = slist.substring(0, slist.length - 1); | |
1784 | + //要删除购物车中的商品 | |
1785 | + var url = '/api/weshop/cartService/delIds/' + oo.stoid + '/' + user_id + "/" + slist; | |
1786 | + getApp().request.delete(url, { | |
1787 | + success: function(t) { | |
1788 | + th.getCardList(); | |
1789 | + } | |
1790 | + }); | |
1791 | + } | |
1792 | + | |
1332 | 1793 | }, |
1333 | 1794 | //跳到首页 |
1334 | 1795 | goto: function(e) { | ... | ... |
pages/cart/cart/cart.wxml
... | ... | @@ -13,19 +13,22 @@ |
13 | 13 | |
14 | 14 | |
15 | 15 | |
16 | -<view class="container" wx:if="{{requestData.length>0}}"> | |
16 | +<view class="container" wx:if="{{(requestData && requestData.length>0) || (service_data && service_data.length>0) }}"> | |
17 | 17 | <!-- 购物车商品框架 --> |
18 | 18 | <view class="login-in"> |
19 | 19 | <!-- 编辑 --> |
20 | 20 | <view class="padding flex-vertical-between fs30 Storenum store"> |
21 | 21 | <view class="flex"> |
22 | - <view>商品数量:</view> | |
22 | + <view>总数量:</view> | |
23 | 23 | <view class="goods_num">{{all_num}}</view> |
24 | 24 | </view> |
25 | 25 | <view wx:if="{{is_edit==0}}" bindtap="edit_cart" data-type="1">编辑</view> |
26 | 26 | <view wx:else bindtap="edit_cart" data-type="0">完成</view> |
27 | 27 | </view> |
28 | - <block wx:for="{{requestData}}" wx:key="{{index}}" wx:for-index="pidx"> | |
28 | + | |
29 | + <!-- 商品的列表 --> | |
30 | + <block wx:if="{{requestData && requestData.length>0}}"> | |
31 | + <block wx:for="{{requestData}}" wx:key="{{index}}" wx:for-index="pidx"> | |
29 | 32 | <!-- 门店底下的商品 --> |
30 | 33 | <view class="store"> |
31 | 34 | <view class="shmd_m"> |
... | ... | @@ -123,8 +126,73 @@ |
123 | 126 | <view style="margin:10rpx 0; padding: 0 30rpx;color: #999" wx:if="{{item.offline_price}}" class="fs28"> |
124 | 127 | 当前<text class="red_c">{{item.offline_num}}</text>件商品,可使用<text class="red_c">{{item.offline_price}}</text>元店铺优惠 |
125 | 128 | </view> |
126 | - | |
129 | + </block> | |
127 | 130 | </block> |
131 | + | |
132 | + <!-- 服务卡项的列表 --> | |
133 | + <block wx:if="{{service_data && service_data.length>0}}"> | |
134 | + <block wx:for="{{service_data}}" wx:key="{{index}}" wx:for-index="pidx"> | |
135 | + <!-- 门店以及门店底下的服务卡 --> | |
136 | + <view class="store"> | |
137 | + <view class="shmd_m"> | |
138 | + | |
139 | + <icon wx:if="{{checkAllToggle||item.selected}}" class="order-raido flex-center" bindtap="check_th_all_item_ser" data-pitems="{{pidx}}" | |
140 | + color="red" size="20" type="success"></icon> | |
141 | + <view wx:else class="icon_no_sele2" bindtap="check_th_all_item_ser" data-pitems="{{pidx}}"></view> | |
142 | + | |
143 | + <view class="flex-center"> | |
144 | + <image src="{{iurl}}miniapp/images/stores/store.png"></image> | |
145 | + <view class="shmd fs30">{{item.pname}}</view> | |
146 | + </view> | |
147 | + | |
148 | + </view> | |
149 | + <view class="order-item" data-item="{{idx}}" wx:for="{{item.goods}}" wx:for-item="items" wx:for-index="idx" wx:key="{{index}}"> | |
150 | + <block> | |
151 | + <view bindtap="check_th_item_ser" class="order-raido flex-vertical " data-check="{{items.selected}}" data-item="{{idx}}" data-pitems="{{pidx}}"> | |
152 | + <!--<radio color="red" checked="{{checkAllToggle||items.selected}}"></radio>--> | |
153 | + <icon wx:if="{{checkAllToggle||items.selected}}" color="red" size="20" type="success"></icon> | |
154 | + <text wx:else class="icon_no_sele"></text> | |
155 | + </view> | |
156 | + </block> | |
157 | + | |
158 | + | |
159 | + <navigator class="goods-img rel" url="/packageA/pages/goodsInfo/goodsInfo?goods_id={{items.service_id}}"> | |
160 | + <image class="wh100" src="{{items.img_url}}" binderror="bind_bnerr2" data-errorimg="service_data[{{pidx}}].goods[{{idx}}].img_url" data-url="{{items.img_url}}"></image> | |
161 | + | |
162 | + </navigator> | |
163 | + <view class="goods-cont"> | |
164 | + <view class="goods-name"> | |
165 | + <navigator class="ellipsis-2 fs30" url="/packageA/pages/goodsInfo/goodsInfo?goods_id={{items.service_id}}">{{items.service_name}}</navigator> | |
166 | + <block wx:if="{{items.is_gift}}"> | |
167 | + <view>{{items.goods_num}}件</view> | |
168 | + </block> | |
169 | + </view> | |
170 | + | |
171 | + <block wx:if="{{!items.is_gift}}"> | |
172 | + <view class="flex alend jc_sb"> | |
173 | + <view class="goods-price co-red baseline ellipsis-1"> | |
174 | + <view class="fs20">¥</view> | |
175 | + <view class="fs28">{{items.money}}</view> | |
176 | + </view> | |
177 | + <view class="count"> | |
178 | + <view bindtap="subNum_ser" class="sub fs28" data-pitems="{{pidx}}" data-item="{{idx}}">一</view> | |
179 | + <input class="goodadd" bindblur="valueToNum_ser" data-pitems="{{pidx}}" data-item="{{idx}}" | |
180 | + bindinput="refresh_input" | |
181 | + type="number" value="{{items.goods_num}}"></input> | |
182 | + <view class="add" bindtap="addNum_ser" data-pitems="{{pidx}}" data-item="{{idx}}">+</view> | |
183 | + </view> | |
184 | + </view> | |
185 | + </block> | |
186 | + | |
187 | + </view> | |
188 | + </view> | |
189 | + </view> | |
190 | + | |
191 | + | |
192 | + </block> | |
193 | + </block> | |
194 | + | |
195 | + | |
128 | 196 | </view> |
129 | 197 | <view class="pay-for flex-vertical-between"> |
130 | 198 | <view class="allradio flex-vertical-between"> |
... | ... | @@ -156,7 +224,7 @@ |
156 | 224 | </view> |
157 | 225 | |
158 | 226 | <!-- 购物车为空 --> |
159 | -<view class="empty_order" wx:if="{{(!requestData|| requestData.length==0) && is_load}}"> | |
227 | +<view class="empty_order" wx:if="{{(!requestData|| requestData.length==0) && (!service_data|| service_data.length==0) && is_load}}"> | |
160 | 228 | <view class="flex-level"> |
161 | 229 | <image src="{{iurl}}miniapp/images/stores/nocart.png"></image> |
162 | 230 | </view> |
... | ... | @@ -169,7 +237,7 @@ |
169 | 237 | </view> |
170 | 238 | |
171 | 239 | <!-- 好物推荐 --> |
172 | -<view class="title" style="margin-top: 60rpx; margin-bottom:{{isTabBar == true ? '50px' : '0'}}" wx:if="{{(!requestData|| requestData.length==0) && is_load}}"> | |
240 | +<view class="title" style="margin-top: 60rpx; margin-bottom:{{isTabBar == true ? '50px' : '0'}}" wx:if="{{(!requestData|| requestData.length==0) && (!service_data|| service_data.length==0) && is_load}}"> | |
173 | 241 | <!-- 标题 --> |
174 | 242 | <view> |
175 | 243 | <!-- 中文名标题 --> | ... | ... |
pages/cart/cart/cart.wxss
pages/goods/goodsInfo/goodsInfo.js
... | ... | @@ -63,7 +63,7 @@ Page({ |
63 | 63 | name: "详情", |
64 | 64 | id: 1 |
65 | 65 | }, { |
66 | - name: "评论", | |
66 | + name: "评价", | |
67 | 67 | id: 2 |
68 | 68 | }], |
69 | 69 | activeCategoryId2: 0, |
... | ... | @@ -1439,6 +1439,7 @@ Page({ |
1439 | 1439 | } |
1440 | 1440 | } |
1441 | 1441 | }); |
1442 | + | |
1442 | 1443 | } |
1443 | 1444 | //else "exchange" == t.currentTarget.dataset.action ? this.exchange(d) : this.buyNow(d); |
1444 | 1445 | else { |
... | ... | @@ -1719,18 +1720,62 @@ Page({ |
1719 | 1720 | } |
1720 | 1721 | |
1721 | 1722 | var ind = t.currentTarget.dataset.ind; |
1722 | - this.setData({ | |
1723 | - openSpecModal: !0, | |
1724 | - openSpecModal_ind: ind, | |
1725 | - }); | |
1726 | - | |
1727 | - var is_open=th.data.config | |
1728 | - | |
1729 | - | |
1730 | - this.get_off_price(); | |
1731 | 1723 | |
1724 | + //回调。判断是不是优惠促销 | |
1725 | + th.check_is_prom_goods(function (){ | |
1726 | + th.setData({ | |
1727 | + openSpecModal: !0, | |
1728 | + openSpecModal_ind: ind, | |
1729 | + }); | |
1730 | + //var is_open=th.data.config | |
1731 | + th.get_off_price(); | |
1732 | + }) | |
1732 | 1733 | }, |
1733 | 1734 | |
1735 | + //判断是不是优惠促销 | |
1736 | + check_is_prom_goods:function(callback){ | |
1737 | + var th=this; | |
1738 | + var usr=getApp().globalData.userInfo; | |
1739 | + if(this.data.sele_g.prom_type!=0 && this.data.sele_g.prom_type!=3){ | |
1740 | + callback(); | |
1741 | + }else{ | |
1742 | + //-- 判断有没有优惠活动 -- | |
1743 | + getApp().request.promiseGet("/api/weshop/goods/getGoodsPromList/" + os.stoid+"/"+th.data.sele_g.goods_id+"/0", {}).then(res => { | |
1744 | + if(res.data.code==0){ | |
1745 | + var r_data=res.data.data; | |
1746 | + th.data.prom_goods=r_data.promGoodsLists; | |
1747 | + if(!th.data.prom_goods){ | |
1748 | + callback(); | |
1749 | + return false; | |
1750 | + } | |
1751 | + ///api/weshop/order/getWPayOrder?store_id=1&user_id=5682366&prom_id=1&goods_id=1 | |
1752 | + getApp().promiseGet("/api/weshop/order/getWPayOrder",{ | |
1753 | + data:{store_id:os.stoid,user_id:usr.user_id,goods_id:th.data.sele_g.goods_id,prom_id:th.data.prom_goods[0].prom_id} | |
1754 | + }).then(res=>{ | |
1755 | + if(res.data.code==0){ | |
1756 | + wx.showToast({ | |
1757 | + title: "您还有该商品订单未支付", | |
1758 | + icon: 'none', | |
1759 | + duration: 2000 | |
1760 | + }) | |
1761 | + setTimeout(function (){ | |
1762 | + getApp().goto("/pages/user/order_detail/order_detail?order_id=" + res.data.data.order_id,) | |
1763 | + },1000) | |
1764 | + } | |
1765 | + //未找到相关记录 | |
1766 | + else{ | |
1767 | + callback(); | |
1768 | + } | |
1769 | + }) | |
1770 | + } | |
1771 | + | |
1772 | + }) | |
1773 | + | |
1774 | + } | |
1775 | + }, | |
1776 | + | |
1777 | + | |
1778 | + | |
1734 | 1779 | //----获取线下价格------- |
1735 | 1780 | get_off_price(){ |
1736 | 1781 | var th=this; |
... | ... | @@ -3038,7 +3083,8 @@ Page({ |
3038 | 3083 | pageSize: 3, |
3039 | 3084 | page: 1, |
3040 | 3085 | state: 2, |
3041 | - team_id: prom_id | |
3086 | + team_id: prom_id, | |
3087 | + ordernum:1 | |
3042 | 3088 | } |
3043 | 3089 | }).then(res => { |
3044 | 3090 | teamgroup = res.data.data.pageData; |
... | ... | @@ -4916,13 +4962,16 @@ Page({ |
4916 | 4962 | var arr = [1219, 2089, 3031]; |
4917 | 4963 | var new_arr = new Array(); |
4918 | 4964 | var card_name_map=new Map(); |
4919 | - for (var i = 0; i < plusCard.length; i++) { | |
4920 | - if((user.card_field==null || user.card_field=="") && plusCard[i].IsStopBuy==true) continue; | |
4965 | + | |
4966 | + var list=[]; | |
4967 | + for (var i = 0; i < plusCard.length; i++) { | |
4968 | + if((!user || user.card_field==null || user.card_field=="") && plusCard[i].IsStopBuy==true) continue; | |
4921 | 4969 | var name="card"+plusCard[i].CorrPrice.toLowerCase(); |
4922 | 4970 | card_name_map.set(name,plusCard[i].CardName); |
4971 | + list.push(plusCard[i]); | |
4923 | 4972 | } |
4924 | - | |
4925 | - var ob={"card_list":plusCard,"name_map":card_name_map}; | |
4973 | + | |
4974 | + var ob={"card_list":list,"name_map":card_name_map}; | |
4926 | 4975 | func(ob); |
4927 | 4976 | }) |
4928 | 4977 | }, | ... | ... |
pages/goods/goodsInfo/goodsInfo.wxml
... | ... | @@ -298,7 +298,7 @@ |
298 | 298 | |
299 | 299 | <!-- 不是秒杀 --> |
300 | 300 | <!-- 等级卡的价格,不是等级卡会员,且商品又有设置等级级价,商家后台有开通升级卡同能 --> |
301 | - <view class="flex ai_and" wx:if="{{!card_field && g_filters.is_has_rank(rank_switch,data) && prom_type!=1 }}"> | |
301 | + <view class="flex ai_and" wx:if="{{!card_field && g_filters.is_has_rank(rank_switch,data) && prom_type!=1 && card_list && card_list.length>0}}"> | |
302 | 302 | |
303 | 303 | <view class="flex ai-center grade-card-frame card-frame" > |
304 | 304 | <image class="img" src="{{iurl}}/miniapp/images/userinfo/userinfo/privilege_t.png"></image> |
... | ... | @@ -315,7 +315,7 @@ |
315 | 315 | <block wx:if="{{g_filters.is_has_rank(rank_switch,data)}}"> |
316 | 316 | |
317 | 317 | <!-- 不是秒杀,且会员不是等级会员 --> |
318 | - <view wx:if="{{!card_field && prom_type!=1 }}"> | |
318 | + <view wx:if="{{!card_field && prom_type!=1 && card_list && card_list.length>0}}"> | |
319 | 319 | <view class="beauty-makeup-frame flex ai-center"> |
320 | 320 | <view class="left flex ai-center"> |
321 | 321 | <view class="flex ai-center grade-card-frame card-frame advert-card"> | ... | ... |
pages/index/index/index.js
... | ... | @@ -90,7 +90,13 @@ Page({ |
90 | 90 | var th = this; |
91 | 91 | var first_leader=tt.first_leader; |
92 | 92 | if(!first_leader && tt.scene){ |
93 | - first_leader= decodeURIComponent(tt.scene); | |
93 | + var first_leader_str= decodeURIComponent(tt.scene); | |
94 | + var f_arr=first_leader_str.split("_"); | |
95 | + first_leader=f_arr[0] && parseFloat(f_arr[0])>0?f_arr[0]:null; | |
96 | + //注册门店 | |
97 | + if(f_arr[1] && parseFloat(f_arr[1])>0){ | |
98 | + getApp().globalData.store_number=f_arr[1]; | |
99 | + } | |
94 | 100 | } |
95 | 101 | |
96 | 102 | getApp().getConfig(function(e){ |
... | ... | @@ -107,8 +113,7 @@ Page({ |
107 | 113 | }); |
108 | 114 | |
109 | 115 | |
110 | - var th = this; | |
111 | - | |
116 | + var th = this; | |
112 | 117 | getApp().getConfig2(function(config2){ |
113 | 118 | if(config2 && config2.is_overdue==1){ |
114 | 119 | getApp().promiseGet("/store/storemoduleendtime/page?store_id=" +os.stoid + "&type=5",{}).then(res=>{ | ... | ... |
pages/team/team_more/team_more.js
... | ... | @@ -62,7 +62,7 @@ Page({ |
62 | 62 | //获取活动从表信息team_id |
63 | 63 | await getApp().request.promiseGet("/api/weshop/teamgroup/page", { |
64 | 64 | data: { store_id: os.stoid, pageSize:6,page:ee.data.currentPage, |
65 | - state: 2, team_id: team_id } | |
65 | + state: 2, team_id: team_id,ordernum:1 } | |
66 | 66 | }).then(res => { |
67 | 67 | teamgroup = res.data.data.pageData; |
68 | 68 | console.log(teamgroup); | ... | ... |
pages/togoin/togoin.js
... | ... | @@ -172,6 +172,11 @@ Page({ |
172 | 172 | dd.guide_id=getApp().globalData.guide_id; |
173 | 173 | } |
174 | 174 | |
175 | + //门店的扫描识别码 | |
176 | + if(getApp().globalData.store_number){ | |
177 | + dd.SunCode=encodeURIComponent(getApp().globalData.store_number.trim()); | |
178 | + } | |
179 | + | |
175 | 180 | console.log("-----会员注册的信息-------"); |
176 | 181 | console.log(dd); |
177 | 182 | app.request.get("/api/weshop/users/thirdLogin", { | ... | ... |
pages/user/index/index.js
... | ... | @@ -95,6 +95,15 @@ Page({ |
95 | 95 | * 生命周期函数--监听页面显示 |
96 | 96 | */ |
97 | 97 | onShow: function() { |
98 | + var th=this; | |
99 | + getApp().request.promiseGet("/api/weshop/plus/vip/mem/bership/list?" + "storeId=" + os.stoid, {}).then(res => { | |
100 | + if(res.data.code==0){ | |
101 | + var plusCard = res.data.data; | |
102 | + for (var i = 0; i < plusCard.length; i++) { | |
103 | + if(!plusCard[i].IsStopBuy) { th.setData({show_buy_plus:1}); break; } | |
104 | + } | |
105 | + } | |
106 | + }) | |
98 | 107 | |
99 | 108 | if (typeof this.getTabBar === 'function' && this.getTabBar()) { |
100 | 109 | var index=getApp().getPageIndex(this); | ... | ... |
pages/user/index/index.wxml
... | ... | @@ -66,7 +66,7 @@ |
66 | 66 | </image> |
67 | 67 | |
68 | 68 | </view> |
69 | - <view class="xc-add-member-frame flex-level rel addplus" wx:if="{{is_dengji==2}}"> | |
69 | + <view class="xc-add-member-frame flex-level rel addplus" wx:if="{{is_dengji==2 && show_buy_plus}}"> | |
70 | 70 | <view class="xc-add-member flex-center-around "> |
71 | 71 | <view class="flex jc-center ai-center"> |
72 | 72 | <image class="xc-icon" src="{{iurl}}/miniapp/images/user/user_vip.png"></image> |
... | ... | @@ -78,7 +78,7 @@ |
78 | 78 | </view> |
79 | 79 | </view> |
80 | 80 | |
81 | - <view class="xc-add-member-frame flex-level rel addplus" wx:if="{{is_dengji==3}}"> | |
81 | + <view class="xc-add-member-frame flex-level rel addplus" wx:if="{{is_dengji==3 && show_buy_plus}}"> | |
82 | 82 | <view class="xc-add-member flex-center-around "> |
83 | 83 | <view class="flex jc-center ai-center"> |
84 | 84 | <image class="xc-icon" src="{{iurl}}/miniapp/images/user/user_vip.png"></image> | ... | ... |
pages/user/my_service/appment_main.js
... | ... | @@ -560,6 +560,9 @@ Page({ |
560 | 560 | th.data.is_get_local_ok = 1; |
561 | 561 | } |
562 | 562 | }) |
563 | + //获取上一次的预约 | |
564 | + this.get_fir_service(); | |
565 | + | |
563 | 566 | }, |
564 | 567 | //查询剩下可预约人数 |
565 | 568 | query_more: function() { |
... | ... | @@ -633,5 +636,98 @@ Page({ |
633 | 636 | var th = this; |
634 | 637 | var nav_b = th.selectComponent("#nav_b"); //组件的id |
635 | 638 | nav_b.close_box(); |
639 | + }, | |
640 | + | |
641 | + //判断分享的导购是不是有门店,是不是该门店下又该会员 | |
642 | + check_firleader(data){ | |
643 | + var th=this; | |
644 | + var itemId = this.data.itemId; //服务id | |
645 | + var url = "/api/weshop/marketing/reservation/storage/pagenew"; | |
646 | + var key_word = data.store_name; | |
647 | + key_word = key_word.replace(/\s+/g, ""); | |
648 | + var usr=getApp().globalData.userInfo; | |
649 | + getApp().request.promiseGet(url, { | |
650 | + data: { | |
651 | + userId: usr.user_id, | |
652 | + storeId: os.stoid, | |
653 | + serviceId: itemId, | |
654 | + page: 1, | |
655 | + pageSize: 1000, | |
656 | + keyWord: key_word | |
657 | + } | |
658 | + }).then(res => { | |
659 | + //-- 如果是门店的话 -- | |
660 | + if (res.data.code == 0 && res.data.data && res.data.data.pageData) { | |
661 | + var store_data=null; | |
662 | + for(var i in res.data.data.pageData){ | |
663 | + var it=res.data.data.pageData[i]; | |
664 | + if(it.Id==data.StorageId){ | |
665 | + store_data={ | |
666 | + store_name: data.store_name, | |
667 | + storageId: data.StorageId, | |
668 | + }; | |
669 | + break; | |
670 | + } | |
671 | + } | |
672 | + if(!store_data) return false; | |
673 | + th.setData(store_data) | |
674 | + | |
675 | + }else{ | |
676 | + return false; | |
677 | + } | |
678 | + | |
679 | + //导购接口地址 | |
680 | + var url = "/api/weshop/marketing/reservation/staff/pagenew"; | |
681 | + return getApp().request.promiseGet(url, { | |
682 | + isShowLoading:1, | |
683 | + data: { | |
684 | + storeId: os.stoid, | |
685 | + userId: usr.user_id, | |
686 | + serviceId: itemId, | |
687 | + storageId: data.StorageId | |
688 | + } | |
689 | + }) | |
690 | + }).then(res=>{ | |
691 | + if (res && res.data && res.data.code == 0) { | |
692 | + var beautician_list=res.data.data; | |
693 | + for(var i in beautician_list){ | |
694 | + var item=beautician_list[i]; | |
695 | + if(item.staffid==data.beauticianID){ | |
696 | + th.setData({ | |
697 | + beautician_name:data.beautician_name, | |
698 | + beauticianID:data.beauticianID, | |
699 | + }) | |
700 | + break; | |
701 | + } | |
702 | + } | |
703 | + | |
704 | + } | |
705 | + }) | |
706 | + }, | |
707 | + | |
708 | + //获取上一次预约的信息 | |
709 | + get_fir_service:function (){ | |
710 | + var th=this; | |
711 | + var usr=getApp().globalData.userInfo; | |
712 | + if(!usr) return false; | |
713 | + | |
714 | + getApp().promiseGet("/api/weshop/marketing/reservation/reservation/page",{ | |
715 | + data:{storeId:os.stoid,userId:usr.user_id,projectId:th.data.project_id} | |
716 | + }).then(res=>{ | |
717 | + if(res.data.code==0 && res.data.data && res.data.data.pageData ){ | |
718 | + var ppdata= res.data.data.pageData[0]; | |
719 | + var data={ | |
720 | + store_name:ppdata.StorageName, | |
721 | + beautician_name:ppdata.BeauticianName, | |
722 | + beauticianID:ppdata.BeauticianID, | |
723 | + StorageId:ppdata.StorageID, | |
724 | + } | |
725 | + //检查门店和导购能不能默认使用 | |
726 | + th.check_firleader(data); | |
727 | + }; | |
728 | + }) | |
636 | 729 | } |
730 | + | |
731 | + | |
732 | + | |
637 | 733 | }) |
638 | 734 | \ No newline at end of file | ... | ... |
pages/user/plus/plus.js
... | ... | @@ -178,41 +178,50 @@ Page({ |
178 | 178 | new_arr.push(item); |
179 | 179 | |
180 | 180 | } |
181 | - //根據距離遠近排序,越近在前面,升序 | |
182 | - new_arr.sort(function (a, b) { | |
183 | - if (a.fee < b.fee) { | |
184 | - return -1; | |
185 | - } else if (a.fee == b.fee) { | |
186 | - return 0; | |
187 | - } else { | |
188 | - return 1; | |
189 | - } | |
190 | - }); | |
191 | 181 | |
192 | - //里面和外面要显示统一 | |
193 | - switch (new_arr.length) { | |
194 | - case 1:arr=[3031]; break; | |
195 | - case 2: arr = [2089, 3031]; break; | |
196 | - case 3: arr = [1219, 2089, 3031];break; | |
197 | - } | |
182 | + //看是不是还有卡项是可以购买的 | |
183 | + if(new_arr && new_arr.length>0){ | |
184 | + //根據距離遠近排序,越近在前面,升序 | |
185 | + new_arr.sort(function (a, b) { | |
186 | + if (a.fee < b.fee) { | |
187 | + return -1; | |
188 | + } else if (a.fee == b.fee) { | |
189 | + return 0; | |
190 | + } else { | |
191 | + return 1; | |
192 | + } | |
193 | + }); | |
198 | 194 | |
199 | - //---给数组添加立省多少钱--- | |
200 | - for (i = 0; i < plusCard.length; i++) { | |
201 | - //判断是否停用 | |
202 | - | |
203 | - for (var j = 0; j < new_arr.length; j++) { | |
204 | - if (i == new_arr[j].index) { | |
205 | - plusCard[i].free = arr[j]; | |
206 | - break; | |
207 | - } | |
208 | - | |
195 | + //里面和外面要显示统一 | |
196 | + switch (new_arr.length) { | |
197 | + case 1:arr=[3031]; break; | |
198 | + case 2: arr = [2089, 3031]; break; | |
199 | + case 3: arr = [1219, 2089, 3031];break; | |
200 | + } | |
209 | 201 | |
202 | + //---给数组添加立省多少钱--- | |
203 | + for (i = 0; i < plusCard.length; i++) { | |
204 | + //判断是否停用 | |
205 | + for (var j = 0; j < new_arr.length; j++) { | |
206 | + if (i == new_arr[j].index) { | |
207 | + plusCard[i].free = arr[j]; | |
208 | + break; | |
209 | + } | |
210 | + } | |
210 | 211 | } |
211 | - } | |
212 | - th.setData({ | |
213 | - is_plusCard: plusCard, is_show: 1 | |
214 | - }) | |
212 | + th.setData({ | |
213 | + is_plusCard: plusCard, is_show: 1 | |
214 | + }) | |
215 | + | |
216 | + }else{ | |
217 | + th.setData({is_show: 1}); | |
218 | + wx.showToast({ | |
219 | + title: "暂无可购买的等级卡项", | |
220 | + icon: 'none', | |
221 | + duration: 4000 | |
222 | + }) | |
215 | 223 | |
224 | + } | |
216 | 225 | setTimeout(function(){ |
217 | 226 | var goods_list = th.selectComponent("#goods_list"); //组件的id |
218 | 227 | goods_list.init(); | ... | ... |
pages/user/plus/plus.wxml
... | ... | @@ -6,44 +6,44 @@ |
6 | 6 | </view> |
7 | 7 | <view class="plus"> |
8 | 8 | <!-- 开通会员模块 --> |
9 | - <view class="Opening_plus"> | |
10 | - <view class="Opening_bk"> | |
11 | - <image src="{{url}}/miniapp/images/plus/card_bk.png"></image> | |
12 | - </view> | |
13 | - <view class="swiper"> | |
14 | - <!-- 未开通会员swiper-item --> | |
15 | - <swiper current="{{currentId}}" current-item-id="{{currentId}}" next-margin="60rpx" previous-margin="60rpx" bindchange="swiperChange"> | |
16 | - <swiper-item class="flex" item-id="{{index}}" data-item-id="{{index}}" wx:for="{{is_plusCard}}"> | |
17 | - | |
18 | - <view wx:if="{{item.IsStopBuy!=true}}" class="Membership {{currentId==index?'enlarge':''}}" style=" background-image: url({{item.CardImg}});color:{{item.CardColor}}"> | |
19 | - <view class="flex-space-between Membership_go"> | |
20 | - <view> | |
21 | - <view class="fs36">{{item.CardName}}</view> | |
22 | - <view class="fs24 Membership_remarks">开通会员卡仅{{item.CardFee}}元</view> | |
23 | - </view> | |
24 | - <view class="Opening fs28 xc-black" data-ind="{{index}}" style="background:{{item.CardColor}}" bindtap="Opening">立即购买 | |
25 | - </view> | |
26 | 9 | |
27 | - </view> | |
10 | + <block wx:if="{{is_plusCard}}"> | |
11 | + <view class="Opening_plus"> | |
12 | + <view class="Opening_bk"> | |
13 | + <image src="{{url}}/miniapp/images/plus/card_bk.png"></image> | |
14 | + </view> | |
15 | + <view class="swiper"> | |
16 | + <!-- 未开通会员swiper-item --> | |
17 | + <swiper current="{{currentId}}" current-item-id="{{currentId}}" next-margin="60rpx" previous-margin="60rpx" bindchange="swiperChange"> | |
18 | + <swiper-item class="flex" item-id="{{index}}" data-item-id="{{index}}" wx:for="{{is_plusCard}}"> | |
19 | + | |
20 | + <view wx:if="{{item.IsStopBuy!=true}}" class="Membership {{currentId==index?'enlarge':''}}" style=" background-image: url({{item.CardImg}});color:{{item.CardColor}}"> | |
21 | + <view class="flex-space-between Membership_go"> | |
22 | + <view> | |
23 | + <view class="fs36">{{item.CardName}}</view> | |
24 | + <view class="fs24 Membership_remarks">开通会员卡仅{{item.CardFee}}元</view> | |
25 | + </view> | |
26 | + <view class="Opening fs28 xc-black" data-ind="{{index}}" style="background:{{item.CardColor}}" bindtap="Opening">立即购买 | |
27 | + </view> | |
28 | 28 | |
29 | - <view class="flex-vertical-between consumption" style="height: 40rpx;line-height:40rpx "> | |
29 | + </view> | |
30 | + | |
31 | + <view class="flex-vertical-between consumption" style="height: 40rpx;line-height:40rpx "> | |
30 | 32 | |
31 | - <view class="flex-vertical fs24" style="overflow:hidden"> | |
33 | + <view class="flex-vertical fs24" style="overflow:hidden"> | |
32 | 34 | |
33 | - <view class="Member"style="background-image:url('{{url}}/miniapp/images/plus/privilege_o.png');filter: drop-shadow( 40rpx 0rpx 0rpx {{item.CardColor}});"></view> | |
34 | - <view style="margin-left:5rpx;white-space: nowrap;">按去年用户消费计算,开卡后一年预计省¥{{item.free}}元 | |
35 | + <view class="Member"style="background-image:url('{{url}}/miniapp/images/plus/privilege_o.png');filter: drop-shadow( 40rpx 0rpx 0rpx {{item.CardColor}});"></view> | |
36 | + <view style="margin-left:5rpx;white-space: nowrap;">按去年用户消费计算,开卡后一年预计省¥{{item.free}}元 | |
37 | + </view> | |
35 | 38 | </view> |
36 | 39 | </view> |
37 | 40 | </view> |
38 | - </view> | |
39 | 41 | |
40 | - | |
41 | - </swiper-item> | |
42 | - </swiper> | |
42 | + </swiper-item> | |
43 | + </swiper> | |
44 | + </view> | |
43 | 45 | </view> |
44 | - | |
45 | - | |
46 | - </view> | |
46 | + </block> | |
47 | 47 | |
48 | 48 | <!-- 会员礼遇 --> |
49 | 49 | <view class="Courtesy"> | ... | ... |