Commit e24ef618da370ff34fa25c0551bb9cbc6be48e7f

Authored by 前端开发-罗建龙
1 parent 8806f0ce

oa单购物车组合购优化

Showing 1 changed file with 4059 additions and 4036 deletions
pages/cart/cart/cart.js
Changes suppressed. Click to show
1 1 var t = getApp(),
2   - a = t.request,
3   - oo = t.globalData.setting,
4   - os = oo,
5   - app = getApp(),
6   - rq = t.request,
7   - ut = require("../../../utils/util.js"),
8   - zh_calc = require("zh_calculate.js"),
9   - ladder_calc = require("ladder_calculate.js");
10   - var regeneratorRuntime = require('../../../utils/runtime.js');
  2 + a = t.request,
  3 + oo = t.globalData.setting,
  4 + os = oo,
  5 + app = getApp(),
  6 + rq = t.request,
  7 + ut = require("../../../utils/util.js"),
  8 + zh_calc = require("zh_calculate.js"),
  9 + ladder_calc = require("ladder_calculate.js");
  10 +var regeneratorRuntime = require('../../../utils/runtime.js');
11 11  
12 12  
13 13 Page({
14   - data: {
15   - url: t.globalData.setting.url,
16   - resourceUrl: t.globalData.setting.resourceUrl,
17   - iurl: t.globalData.setting.imghost,
18   - requestData: null,
19   - checkAllToggle: 0,
20   - total_fee: 0, //结算金额
21   - total_num: 0, //结算数量
22   - all_num: 0, //购物车中所有商品数量
23   - allsto: null,
24   - imgUrl: t.globalData.setting.imghost,
25   - is_has_flash: 0, //是否又秒杀活动
26   - is_edit: 0, //是否编辑
27   - is_load: 0, //是否已加载
28   - up_dating: 0, //更新中
29   - isreduce: 0, //商品数量是否可减
30   - isadd: 0, //是否可以加商品数量
31   - invalidList:[], //失效商品列表
32   -
33   - card_field:"",
34   - bconf:null,
35   - btn_click:1,
36   -
37   - service_data:null,
38   - max_sw_height:200,
39   -
40   - zhhe_prom:[], //组合活动需要显示差多少件
41   - zuhe_map:{},
42   - zuhe_map_good:{},
43   - in_zhact_gdmap:{}, //不同门店参与同一活动的限购
44   -
45   - ladder_map:{}, //阶梯促销需要的map
46   -
47   - promgoods_map:{},
48   - promgoods_list:{}
49   -
50   - },
51   - onLoad: function () {
52   -
53   - var a = this,
54   - ee = a;
55   -
56   - wx.setNavigationBarTitle({
57   - title: "购物车",
58   - })
  14 + data: {
  15 + url: t.globalData.setting.url,
  16 + resourceUrl: t.globalData.setting.resourceUrl,
  17 + iurl: t.globalData.setting.imghost,
  18 + requestData: null,
  19 + checkAllToggle: 0,
  20 + total_fee: 0, //结算金额
  21 + total_num: 0, //结算数量
  22 + all_num: 0, //购物车中所有商品数量
  23 + allsto: null,
  24 + imgUrl: t.globalData.setting.imghost,
  25 + is_has_flash: 0, //是否又秒杀活动
  26 + is_edit: 0, //是否编辑
  27 + is_load: 0, //是否已加载
  28 + up_dating: 0, //更新中
  29 + isreduce: 0, //商品数量是否可减
  30 + isadd: 0, //是否可以加商品数量
  31 + invalidList: [], //失效商品列表
  32 +
  33 + card_field: "",
  34 + bconf: null,
  35 + btn_click: 1,
  36 +
  37 + service_data: null,
  38 + max_sw_height: 200,
  39 +
  40 + zhhe_prom: [], //组合活动需要显示差多少件
  41 + zuhe_map: {},
  42 + zuhe_map_good: {},
  43 + in_zhact_gdmap: {}, //不同门店参与同一活动的限购
  44 +
  45 + ladder_map: {}, //阶梯促销需要的map
  46 +
  47 + promgoods_map: {},
  48 + promgoods_list: {}
59 49  
60   - //判断是否有登录
61   - t.auth.hadAuth() && t.getUserInfo(function () {
62   - //a.getCardList();
63   - });
  50 + },
  51 + onLoad: function () {
64 52  
65   - },
66   - onShow: function () {
67   - //每次显示都清空
68   - this.data.in_zhact_gdmap = {};
69   - this.setData({
70   - invalidList:[]
71   - });
  53 + var a = this,
  54 + ee = a;
72 55  
73   - if (typeof this.getTabBar === 'function' && this.getTabBar()) {
74   - var index = getApp().getPageIndex(this);
75   - this.getTabBar().setData({
76   - active: index //数字是当前页面在tabbar的索引
77   - })
  56 + wx.setNavigationBarTitle({
  57 + title: "购物车",
  58 + })
  59 +
  60 + //判断是否有登录
  61 + t.auth.hadAuth() && t.getUserInfo(function () {
  62 + //a.getCardList();
  63 + });
  64 +
  65 + },
  66 + onShow: function () {
  67 + //每次显示都清空
  68 + this.data.in_zhact_gdmap = {};
  69 + this.setData({
  70 + invalidList: []
  71 + });
  72 +
  73 + if (typeof this.getTabBar === 'function' && this.getTabBar()) {
  74 + var index = getApp().getPageIndex(this);
  75 + this.getTabBar().setData({
  76 + active: index //数字是当前页面在tabbar的索引
  77 + })
  78 +
  79 + getApp().requestCardNum(this);
  80 + }
78 81  
79   - getApp().requestCardNum(this);
  82 + var th = this;
  83 + this.setData({
  84 + requestData: null,
  85 + is_load: 0
  86 + });
  87 + //调用底部导航
  88 + //t.editTabBar(th,getApp().globalData.setting.stoid,getApp().globalData.url);
  89 + //----获取系统参数-----
  90 + getApp().getConfig2(function (e) {
  91 + var json_d = JSON.parse(e.switch_list);
  92 + var is_open_offline = json_d.is_pricing_open;
  93 + th.setData({
  94 + bconfig: e,
  95 + freight_free: e.freight_free,
  96 + weight_free: e.weight_free,
  97 + sales_rules: e.sales_rules,
  98 + appoint_pick_keyid: json_d.appoint_pick_keyid
  99 + });
  100 + getApp().request.promiseGet("/store/storemoduleendtime/page?store_id=" + os.stoid + "&type=6", {}).then(res => {
  101 + //未购买
  102 + if (res.data.code != 0 || !res.data.data || !res.data.data.pageData || !res.data.data.pageData.length) {
  103 + is_open_offline = 0;
  104 + } else {
  105 + //已经过期
  106 + var item = res.data.data.pageData[0];
  107 + if (item.end_time < ut.gettimestamp()) {
  108 + is_open_offline = 0;
  109 + }
80 110 }
  111 + th.data.is_open_offline = is_open_offline;
  112 + th.getCardList();
  113 + });
81 114  
82   - var th = this;
83   - this.setData({
84   - requestData: null,
85   - is_load: 0
  115 + }, 1)
  116 +
  117 + //-- 判断有没有自定义的广告图片 --
  118 + getApp().request.promiseGet("/api/weshop/ad/page?pid=1101&store_id=" + os.stoid, {
  119 + data: {
  120 + enabled: 1
  121 + }
  122 + }).then(res => {
  123 + if (ut.ajax_ok(res)) {
  124 + var a = res.data.data.pageData;
  125 + var narr = [];
  126 + for (var i in a) {
  127 + var tt = {
  128 + 'ad_code': os.imghost + a[i].ad_code,
  129 + 'media_link': '',
  130 + 'ad_weapplink': a[i].ad_weapplink
  131 + };
  132 + narr.push(tt);
  133 + }
  134 + th.setData({ ad_data: narr });
  135 + } else {
  136 +
  137 + var user_id = getApp().globalData.user_id;
  138 + if (!user_id) user_id = 0;
  139 + var req_d = {
  140 + store_id: oo.stoid,
  141 + timetype: 2,
  142 + is_end: 0,
  143 + is_show: 1,
  144 + pageSize: 1,
  145 + user_id: user_id
  146 + }
  147 + //--获取是否又秒杀活动--
  148 + getApp().request.promiseGet("/api/ms/flash_sale/spikepage", {
  149 + data: req_d,
  150 + }).then(res => {
  151 + if (ut.ajax_ok(res)) {
  152 + th.setData({
  153 + is_has_flash: 1
  154 + })
  155 + }
86 156 });
87   - //调用底部导航
88   - //t.editTabBar(th,getApp().globalData.setting.stoid,getApp().globalData.url);
89   - //----获取系统参数-----
90   - getApp().getConfig2(function(e) {
91   - var json_d = JSON.parse(e.switch_list);
92   - var is_open_offline=json_d.is_pricing_open;
93   - th.setData({
94   - bconfig: e,
95   - freight_free:e.freight_free,
96   - weight_free:e.weight_free,
97   - sales_rules:e.sales_rules,
98   - appoint_pick_keyid:json_d.appoint_pick_keyid
99   - });
100   - getApp().request.promiseGet("/store/storemoduleendtime/page?store_id=" +os.stoid + "&type=6",{}).then(res=>{
101   - //未购买
102   - if(res.data.code!=0 || !res.data.data || !res.data.data.pageData || !res.data.data.pageData.length){
103   - is_open_offline=0;
104   - }else{
105   - //已经过期
106   - var item=res.data.data.pageData[0];
107   - if(item.end_time<ut.gettimestamp()){
108   - is_open_offline=0;
109   - }
110   - }
111   - th.data.is_open_offline=is_open_offline;
112   - th.getCardList();
113   - });
  157 + }
  158 + })
114 159  
115   - },1)
116   -
117   - //-- 判断有没有自定义的广告图片 --
118   - getApp().request.promiseGet("/api/weshop/ad/page?pid=1101&store_id=" + os.stoid, {
119   - data: {
120   - enabled: 1
121   - }
122   - }).then(res => {
123   - if( ut.ajax_ok(res)){
124   - var a = res.data.data.pageData;
125   - var narr=[];
126   - for(var i in a){
127   - var tt = {
128   - 'ad_code': os.imghost + a[i].ad_code,
129   - 'media_link': '',
130   - 'ad_weapplink':a[i].ad_weapplink
131   - };
132   - narr.push(tt);
133   - }
134   - th.setData({ad_data:narr});
135   - }else{
136   -
137   - var user_id=getApp().globalData.user_id;
138   - if(!user_id) user_id=0;
139   - var req_d= {
140   - store_id: oo.stoid,
141   - timetype: 2,
142   - is_end: 0,
143   - is_show: 1,
144   - pageSize: 1,
145   - user_id: user_id
146   - }
147   - //--获取是否又秒杀活动--
148   - getApp().request.promiseGet("/api/ms/flash_sale/spikepage", {
149   - data: req_d,
150   - }).then(res => {
151   - if (ut.ajax_ok(res)) {
152   - th.setData({
153   - is_has_flash: 1
154   - })
155   - }
156   - });
157   - }
158   - })
159 160  
  161 + },
160 162  
161   - },
162   -
163   - onHide() {
164   - this.data.zuhe_map = {};
165   - this.data.promgoods_map={};
166   - this.data.promgoods_list={};
167   - },
168   - onUnLoad() {
169   - getApp().globalData.cart_zh_act = null;
170   - },
171   -
172   - //失效商品处理
173   - // invType 表示失效的原因,classType 表示类别 0 表示商品,1表示服务
174   - disInvalid(item,invType=0,classType=0){
175   - let invalidList = this.data.invalidList;
176   - let off = true;
177   - console.log('失效商品-----1')
178   - console.log(item)
179   - console.log('失效商品-----2')
180   - invalidList.map(ite=>{
181   - if(classType ==0 && ite.goods_id == item.goods_id){ //判断该商品是否存在于失效列表中
182   - off = false;
183   - }
184   - if(classType ==1 && ite.service_id == item.service_id){ //判断该商品是否存在于失效列表中
185   - off = false;
186   - }
187   - });
188   - if(off){
189   - if(invType==0){
190   - item.invalid = '商品活动变动';
191   - }else if(invType ==1){
192   - item.invalid = '商品已下架';
193   - }else{
194   - item.invalid ="商品超出限购"
195   - }
196   - item.classType = classType
197   - invalidList.push(item);
198   - this.setData({invalidList});
  163 + onHide() {
  164 + this.data.zuhe_map = {};
  165 + this.data.promgoods_map = {};
  166 + this.data.promgoods_list = {};
  167 + },
  168 + onUnLoad() {
  169 + getApp().globalData.cart_zh_act = null;
  170 + },
  171 +
  172 + //失效商品处理
  173 + // invType 表示失效的原因,classType 表示类别 0 表示商品,1表示服务
  174 + disInvalid(item, invType = 0, classType = 0) {
  175 + let invalidList = this.data.invalidList;
  176 + let off = true;
  177 + console.log('失效商品-----1')
  178 + console.log(item)
  179 + console.log('失效商品-----2')
  180 + invalidList.map(ite => {
  181 + if (classType == 0 && ite.goods_id == item.goods_id) { //判断该商品是否存在于失效列表中
  182 + off = false;
199 183 }
200   - },
201   - //-------------获取购物车列表,要安装门店进行分类订单-----------
202   - getCardList: function () {
203   - this.setData({invalidList:[]}); //重置失效商品
204   - var th = this;
205   -
206   - //要获取会员是不是等级会员
207   - getApp().getConfig2(function (conf) {
208   - //--- 看后台是不是有开通等级卡 ---
209   - if (conf.switch_list) {
210   - var s_list = JSON.parse(conf.switch_list);
211   - var user = getApp().globalData.userInfo;
212   - //如果后台有开启等级价的功能
213   - if (user && parseInt(s_list.rank_switch) == 2 && user['card_expiredate']) {
214   -
215   - var str = user['card_expiredate'].replace(/-/g, '/');
216   - var end = new Date(str);
217   - end = Date.parse(end) / 1000;
218   - var now = ut.gettimestamp();
219   - //--- 判断是等级会员,且在有效期范围内 ---
220   - if (user.card_field && now < end) {
221   - th.setData({
222   - card_field: user.card_field
223   - })
224   - }
225   - }
  184 + if (classType == 1 && ite.service_id == item.service_id) { //判断该商品是否存在于失效列表中
  185 + off = false;
  186 + }
  187 + });
  188 + if (off) {
  189 + if (invType == 0) {
  190 + item.invalid = '商品活动变动';
  191 + } else if (invType == 1) {
  192 + item.invalid = '商品已下架';
  193 + } else {
  194 + item.invalid = "商品超出限购"
  195 + }
  196 + item.classType = classType
  197 + invalidList.push(item);
  198 + this.setData({ invalidList });
  199 + }
  200 + },
  201 + //-------------获取购物车列表,要安装门店进行分类订单-----------
  202 + getCardList: function () {
  203 + this.setData({ invalidList: [] }); //重置失效商品
  204 + var th = this;
  205 +
  206 + //要获取会员是不是等级会员
  207 + getApp().getConfig2(function (conf) {
  208 + //--- 看后台是不是有开通等级卡 ---
  209 + if (conf.switch_list) {
  210 + var s_list = JSON.parse(conf.switch_list);
  211 + var user = getApp().globalData.userInfo;
  212 + //如果后台有开启等级价的功能
  213 + if (user && parseInt(s_list.rank_switch) == 2 && user['card_expiredate']) {
  214 +
  215 + var str = user['card_expiredate'].replace(/-/g, '/');
  216 + var end = new Date(str);
  217 + end = Date.parse(end) / 1000;
  218 + var now = ut.gettimestamp();
  219 + //--- 判断是等级会员,且在有效期范围内 ---
  220 + if (user.card_field && now < end) {
  221 + th.setData({
  222 + card_field: user.card_field
  223 + })
  224 + }
  225 + }
226 226  
227   - //如果门店还未读出来的时候
228   - if (th.data.allsto == null) {
229   - //读取门店
230   - app.get_allsto(function (e) {
231   - th.setData({
232   - allsto: e
233   - });
234   - th.get_cart();
235   - th.get_ser_cart();
236   - })
237   - } else {
238   - th.get_cart();
239   - th.get_ser_cart();
240   - }
  227 + //如果门店还未读出来的时候
  228 + if (th.data.allsto == null) {
  229 + //读取门店
  230 + app.get_allsto(function (e) {
  231 + th.setData({
  232 + allsto: e
  233 + });
  234 + th.get_cart();
  235 + th.get_ser_cart();
  236 + })
  237 + } else {
  238 + th.get_cart();
  239 + th.get_ser_cart();
  240 + }
241 241  
242 242  
243   - }
244   - })
245   - if ((!this.data.requestData || this.data.requestData.length == 0) && (!this.data.service_data || this.data.service_data.length == 0)) {
246   - setTimeout(function () {
247   - var goods_list = th.selectComponent("#goods_list"); //组件的id
248   - if (goods_list) {
249   - goods_list.init();
250   - goods_list.get_list();
251   - }
252   - }, 800)
  243 + }
  244 + })
  245 + if ((!this.data.requestData || this.data.requestData.length == 0) && (!this.data.service_data || this.data.service_data.length == 0)) {
  246 + setTimeout(function () {
  247 + var goods_list = th.selectComponent("#goods_list"); //组件的id
  248 + if (goods_list) {
  249 + goods_list.init();
  250 + goods_list.get_list();
253 251 }
254   - },
255   - //失效单选
256   - inCheck_th_item: async function(e){
257   - console.log('失效单选');
258   - console.log(e);
259   - let i = e.currentTarget.dataset.item;
260   - let invalidList = this.data.invalidList;
261   - console.log(i)
262   - console.log(invalidList[i])
263   - invalidList[i].selected = invalidList[i].selected == 1 ? 0 : 1;
264   - console.log(invalidList);
265   - this.setData({invalidList});
266   - console.log(this.data.invalidList);
267   - // this.doCheckAll();
268   -
269   - },
270   - //清空失效宝贝
271   - delInva_all(obj=null){
272   -
273   - var th = this;
274   - wx.showModal({
275   - title: '提示',
276   - content: '确认要清空全部失效商品吗?',
277   - success(res) {
278   - if (res.confirm) {
279   - th.delInva(obj);
280   - }
281   - }
282   - })
283   - },
  252 + }, 800)
  253 + }
  254 + },
  255 + //失效单选
  256 + inCheck_th_item: async function (e) {
  257 + console.log('失效单选');
  258 + console.log(e);
  259 + let i = e.currentTarget.dataset.item;
  260 + let invalidList = this.data.invalidList;
  261 + console.log(i)
  262 + console.log(invalidList[i])
  263 + invalidList[i].selected = invalidList[i].selected == 1 ? 0 : 1;
  264 + console.log(invalidList);
  265 + this.setData({ invalidList });
  266 + console.log(this.data.invalidList);
  267 + // this.doCheckAll();
284 268  
  269 + },
  270 + //清空失效宝贝
  271 + delInva_all(obj = null) {
  272 +
  273 + var th = this;
  274 + wx.showModal({
  275 + title: '提示',
  276 + content: '确认要清空全部失效商品吗?',
  277 + success(res) {
  278 + if (res.confirm) {
  279 + th.delInva(obj);
  280 + }
  281 + }
  282 + })
  283 + },
285 284  
286   - delInva(obj){
287   - var th=this;
288   - let ainvalid='';
289   - let binvalid='';
290   - var user_id = getApp().globalData.user_id;
291 285  
292   - let ab = 0; //选中
293   - let abc = 0; //
294   - let arr = obj.id ? [obj] : th.data.invalidList
295   - console.log('失效-----')
296   - console.log(arr);
297   - arr.map(item=>{
298   - if (item.classType ==0 ) {
299   - ainvalid+=item.id + ',';
300   - ab = 1;
301   - }
302   - if (item.classType ==1 ) {
303   - binvalid+=item.id + ',';
304   - abc = 1;
305   - }
306   - });
  286 + delInva(obj) {
  287 + var th = this;
  288 + let ainvalid = '';
  289 + let binvalid = '';
  290 + var user_id = getApp().globalData.user_id;
  291 +
  292 + let ab = 0; //选中
  293 + let abc = 0; //
  294 + let arr = obj.id ? [obj] : th.data.invalidList
  295 + console.log('失效-----')
  296 + console.log(arr);
  297 + arr.map(item => {
  298 + if (item.classType == 0) {
  299 + ainvalid += item.id + ',';
  300 + ab = 1;
  301 + }
  302 + if (item.classType == 1) {
  303 + binvalid += item.id + ',';
  304 + abc = 1;
  305 + }
  306 + });
307 307  
308 308  
309   - if (ab == 0 && abc == 0 ) {
310   - t.my_warnning('没有需要清空的失效宝贝', 0, th);
311   - return false;
312   - }
313   - if (ab) {
314   - ainvalid = ainvalid.substring(0, ainvalid.length - 1);
315   - //要删除购物车中的商品
316   - var url = '/api/weshop/cart/delIds/' + oo.stoid + '/' + user_id + '/' + ainvalid;
317   - getApp().request.delete(url, {
318   - success: function (t) {
319   - th.getCardList();
320   - getApp().requestCardNum(th);
321   - }
322   - });
  309 + if (ab == 0 && abc == 0) {
  310 + t.my_warnning('没有需要清空的失效宝贝', 0, th);
  311 + return false;
  312 + }
  313 + if (ab) {
  314 + ainvalid = ainvalid.substring(0, ainvalid.length - 1);
  315 + //要删除购物车中的商品
  316 + var url = '/api/weshop/cart/delIds/' + oo.stoid + '/' + user_id + '/' + ainvalid;
  317 + getApp().request.delete(url, {
  318 + success: function (t) {
  319 + th.getCardList();
  320 + getApp().requestCardNum(th);
323 321 }
324   - if (abc) {
325   - binvalid = binvalid.substring(0, binvalid.length - 1);
326   - //要删除购物车中的商品
327   - var url = '/api/weshop/cartService/delIds/' + oo.stoid + '/' + user_id + '/' + binvalid;
328   - getApp().request.delete(url, {
329   - success: function (t) {
330   - th.getCardList();
331   - getApp().requestCardNum(th);
332   - }
333   - });
  322 + });
  323 + }
  324 + if (abc) {
  325 + binvalid = binvalid.substring(0, binvalid.length - 1);
  326 + //要删除购物车中的商品
  327 + var url = '/api/weshop/cartService/delIds/' + oo.stoid + '/' + user_id + '/' + binvalid;
  328 + getApp().request.delete(url, {
  329 + success: function (t) {
  330 + th.getCardList();
  331 + getApp().requestCardNum(th);
334 332 }
335   - },
  333 + });
  334 + }
  335 + },
336 336  
337 337  
338   - //---------点击收藏------------
339   - collectGoods: async function () {
340   -
341   - let t = this
342   - let timestamp = Date.parse(new Date());
343   - timestamp = timestamp / 1000;
344   - let d = {
345   - // goods_id: t.data.data.goods_id,
346   - user_id: app.globalData.user_id,
347   - store_id: oo.stoid,
348   - add_time: timestamp,
349   - };
350   - //加入收藏夹就是导购的ID
351   - if (getApp().globalData.guide_id) {
352   - d.guide_id = getApp().globalData.guide_id;
353   - d.guide_type = 2;
354   - }
355   - let off = false
356   - let errOff = false
357   - var invalidList= [...this.data.invalidList]
358   - var arr=[]
359   - invalidList.map(async (item,index)=>{
360   - if (item.selected) {
361   - off = true
362   - if(item.classType ==1 ){
363   - d.goods_id = item.service_id
364   - d.type = 1
365   - }else{
366   - d.goods_id = item.goods_id
367   - d.type =0
  338 + //---------点击收藏------------
  339 + collectGoods: async function () {
  340 +
  341 + let t = this
  342 + let timestamp = Date.parse(new Date());
  343 + timestamp = timestamp / 1000;
  344 + let d = {
  345 + // goods_id: t.data.data.goods_id,
  346 + user_id: app.globalData.user_id,
  347 + store_id: oo.stoid,
  348 + add_time: timestamp,
  349 + };
  350 + //加入收藏夹就是导购的ID
  351 + if (getApp().globalData.guide_id) {
  352 + d.guide_id = getApp().globalData.guide_id;
  353 + d.guide_type = 2;
  354 + }
  355 + let off = false
  356 + let errOff = false
  357 + var invalidList = [...this.data.invalidList]
  358 + var arr = []
  359 + invalidList.map(async (item, index) => {
  360 + if (item.selected) {
  361 + off = true
  362 + if (item.classType == 1) {
  363 + d.goods_id = item.service_id
  364 + d.type = 1
  365 + } else {
  366 + d.goods_id = item.goods_id
  367 + d.type = 0
  368 + }
  369 + let is_collect = 0
  370 + //------是否收藏----------
  371 + await getApp().request.promiseGet("/api/weshop/goodscollect/page", {
  372 + data: {
  373 + store_id: oo.stoid,
  374 + goods_id: d.goods_id,
  375 + user_id: app.globalData.user_id,
368 376 }
369   - let is_collect = 0
370   - //------是否收藏----------
371   - await getApp().request.promiseGet("/api/weshop/goodscollect/page", {
372   - data: {
373   - store_id: oo.stoid,
374   - goods_id: d.goods_id,
375   - user_id: app.globalData.user_id,
376   - }
377   - }).then(res => {
378   - let t = res;
379   - let data = t.data.data.pageData;
380   - if (data && data.length > 0) {
381   - is_collect =1
382   - }
383   - })
384   - if (is_collect) {
385   - t.delInva(item)
386   - return
  377 + }).then(res => {
  378 + let t = res;
  379 + let data = t.data.data.pageData;
  380 + if (data && data.length > 0) {
  381 + is_collect = 1
387 382 }
388   - await getApp().request.post("/api/weshop/goodscollect/save", { //添加收藏
389   - data: d,
390   - success: function (e) {
391   - t.data.is_collect_load = 0;
392   - if (e.data.code == 0) {
393   - t.delInva(item)
394   - }else{
395   - errOff = true
396   - arr.push(item)
397   - }
398   - }
399   - });
400   - }else{
401   - arr.push(item)
402   - }
403   - });
404   - if (off) {
405   - t.setData({
406   - invalidList:arr
407 383 })
408   - if (errOff) {
409   - getApp().my_warnning('移到收藏夹错误', 0, t);
410   - }else{
411   - wx.showToast({
412   - title: "收藏成功",
413   - icon: 'none',
414   - duration: 2000
415   - })
  384 + if (is_collect) {
  385 + t.delInva(item)
  386 + return
416 387 }
417   - console.log('移动成功')
418   - }else{
419   - getApp().my_warnning('请先选择失效宝贝', 0, t);
  388 + await getApp().request.post("/api/weshop/goodscollect/save", { //添加收藏
  389 + data: d,
  390 + success: function (e) {
  391 + t.data.is_collect_load = 0;
  392 + if (e.data.code == 0) {
  393 + t.delInva(item)
  394 + } else {
  395 + errOff = true
  396 + arr.push(item)
  397 + }
  398 + }
  399 + });
  400 + } else {
  401 + arr.push(item)
  402 + }
  403 + });
  404 + if (off) {
  405 + t.setData({
  406 + invalidList: arr
  407 + })
  408 + if (errOff) {
  409 + getApp().my_warnning('移到收藏夹错误', 0, t);
  410 + } else {
  411 + wx.showToast({
  412 + title: "收藏成功",
  413 + icon: 'none',
  414 + duration: 2000
  415 + })
420 416 }
  417 + console.log('移动成功')
  418 + } else {
  419 + getApp().my_warnning('请先选择失效宝贝', 0, t);
  420 + }
421 421 },
422 422  
423   - //-----真的获取购物车--------
424   - get_cart: function () {
425   - var th = this;
426   - th.data.in_zhact_gdmap={};
427   - th.data.ladder_map={};
428   - var rd = Math.random().toString(36).substr(2, 15);
429   - var user_id = getApp().globalData.user_id;
430   - getApp().request.get("/api/weshop/cart/list", {
431   - data: {
432   - user_id: app.globalData.user_id,
433   - rd: rd,
434   - store_id: oo.stoid,
435   - pageSize: 600,
436   - state: 0
437   - },
438   - success: async function (su) {
439   - console.log(su, 10000);
440   - //按门店分类的数组
441   - var arr = new Array(), carr = su.data.data.pageData;
442   - var all_num = 0;
443   -
444   - if (carr && carr.length > 0) {
445   - var g_arr = [];
446   - for (var i = 0; i < carr.length; i++) {
447   - if (g_arr.length == 0) g_arr.push(carr[i].goods_id);
448   - else {
449   - var ind = g_arr.findIndex(function (ele) {
450   - return ele.goods_id == carr[i].goods_id
451   - })
452   - if (ind > -1) continue;
453   - g_arr.push(carr[i].goods_id)
454   - }
455   - }
456   -
457   - var by_map = null;
458   - //--要获得商品,该用户买了多少件,同步应用--
459   - await getApp().request.promiseGet("/api/weshop/ordergoods/listUserBuyGoodsNum", {
460   - data: {
461   - store_id: oo.stoid,
462   - user_id: user_id,
463   - goods_ids: g_arr.join(','),
464   -
465   - },
466   - }).then(res => {
467   - if(ut.ajax_ok2(res)) {
468   - by_map = {};
469   - for (let i in res.data.data) {
470   - let item = res.data.data[i];
471   - by_map[item.goods_id] = item;
472   - }
473   - }
474   - })
475   -
476   - for (var i = 0; i < carr.length; i++) {
477   - var item = carr[i];
478   - var good = item;
479   - if (item.is_gift) {
480   - var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
481   - getApp().request.delete(url, {
482   - success: function (t) {}
483   - });
484   - //商品已经下架
485   - continue;
486   - }
  423 + //-----真的获取购物车--------
  424 + get_cart: function () {
  425 + var th = this;
  426 + th.data.in_zhact_gdmap = {};
  427 + th.data.ladder_map = {};
  428 + var rd = Math.random().toString(36).substr(2, 15);
  429 + var user_id = getApp().globalData.user_id;
  430 + getApp().request.get("/api/weshop/cart/list", {
  431 + data: {
  432 + user_id: app.globalData.user_id,
  433 + rd: rd,
  434 + store_id: oo.stoid,
  435 + pageSize: 600,
  436 + state: 0
  437 + },
  438 + success: async function (su) {
  439 + console.log(su, 10000);
  440 + //按门店分类的数组
  441 + var arr = new Array(), carr = su.data.data.pageData;
  442 + var all_num = 0;
  443 +
  444 +
  445 + if (carr && carr.length > 0) {
  446 + var g_arr = [];
  447 + for (var i = 0; i < carr.length; i++) {
487 448  
488   - var tt = ut.gettimestamp();
489   - //如果商品下架了,或者商品是赠品,一开始都要清除
490   - if ((good.down_time > 0 && good.down_time < tt) || good.is_on_sale == 0) {
491   - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
492   - // getApp().request.delete(url, {
493   - // success: function (t) {}
494   - // });
495   - th.disInvalid(item,1);
496   - //商品已经下架
497   - continue;
498   - }
499   - var goodsbuynum = 0,
500   - promgoodsbuynum = 0,
501   - limit = 0;
502   - if (by_map && by_map[good.goods_id]) {
503   - goodsbuynum = by_map[good.goods_id].goodsbuynum;
504   - promgoodsbuynum = by_map[good.goods_id].promgoodsbuynum;
505   - }
506 449  
507   - limit = good.viplimited;
508   - //判断商品的限购
509   - if (item.goods_num + goodsbuynum > limit && limit > 0) {
510   - var cbuy = limit - goodsbuynum;
511   - if (cbuy <= 0) {
512   - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
513   - // a.delete(url, {});
514   - th.disInvalid(item,2);
515   - continue;
516   - }
517   - //-- 购物车更新 --
518   - var updata1 = {
519   - id: item.id,
520   - goods_num: cbuy,
521   - store_id: os.stoid,
522   - user_id: getApp().globalData.userInfo.user_id
523   - };
524   - getApp().request.put("/api/weshop/cart/update", {
525   - data: updata1,
526   - })
527   - item.goods_num = cbuy;
528   - }
529   - //判断如果是普通商品,后面参加活动了,变成失效商品
530   - if (item.prom_type == 0) {
531   - var prom = null;
532   - var now = ut.gettimestamp();
533   - await getApp().request.promiseGet(`/api/weshop/activitylist/listGoodActInfo2`, {
534   - data:{
535   - "store_id": oo.stoid,
536   - "goods_id": item.goods_id,
537   - "user_id": user_id,
538   - }
539   - }).then(res => {
540   - if (res.data.code == 0) {
541   - prom = res.data.data
542   - }
543   - })
544   - let prom_true = 0
545   - let prom_id=0
546   - if (prom) {
547   - prom.map(item=>{
548   - if (item.prom_type==3 || item.prom_type==7) {
549   - prom_true = item.prom_type
550   - prom_id = item.act_id
551   - }
552   - })
553   - }
554   - if (prom_true) {
555   - //-- 购物车更新 --
556   - var updata1 = {
557   - id: item.id,
558   - prom_type: prom_true,
559   - prom_id,
560   - store_id: os.stoid,
561   - user_id: getApp().globalData.userInfo.user_id
562   - };
563   - item.prom_id = prom_id
564   - item.prom_type = prom_true
565   - getApp().request.put("/api/weshop/cart/update", {
566   - data: updata1,
567   - })
568   -
569   - }else{
570   - if(prom && !item.is_integral_normal && !item.is_pd_normal && prom[0].prom_type!=5){
571   - th.disInvalid(item);
572   - continue;
573   - }
574   - }
575   - }
576   - //如果秒杀活动都去掉了,或者结束了,那么这个商品也没有必要留着
577   - if (item.prom_type == 1) {
578   - var prom = null;
579   - var now = ut.gettimestamp();
580   - await getApp().request.promiseGet("/api/ms/flash_sale/getNew/" + os.stoid + '/' + user_id + "/" + item.prom_id, {}).then(res => {
581   - console.log('活动情况----------------')
582   - console.log(res)
583   - if (res.data.code == 0) {
584   - prom = res.data.data;
585   - prom.price = prom.user_price;
586   - }
587   - })
588   - //---如果互动都已经过期,或者还未开始,或者无活动
589   - if (!prom || prom.is_end == 1 || prom.end_time < now || prom.start_time > now) {
590   - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
591   - // a.delete(url, {
592   - // success: function (t) {}
593   - // });
594   - th.disInvalid(item);
595   - //商品已经下架
596   - continue;
597   - }
  450 + if (g_arr.length == 0) g_arr.push(carr[i].goods_id);
  451 + else {
  452 + var ind = g_arr.findIndex(function (ele) {
  453 + return ele.goods_id == carr[i].goods_id
  454 + })
  455 + if (ind > -1) continue;
  456 + g_arr.push(carr[i].goods_id)
  457 + }
  458 + }
598 459  
599   - //判断秒杀的限购
600   - if (item.goods_num + promgoodsbuynum > prom.buy_limit && prom.buy_limit > 0) {
601   - var cbuy = prom.buy_limit - promgoodsbuynum;
602   - if (cbuy <= 0) {
603   - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
604   - // a.delete(url, {});
605   - th.disInvalid(item,2);
606   - continue;
607   - }
608   - //-- 购物车更新 --
609   - var updata1 = {
610   - id: item.id,
611   - goods_num: cbuy,
612   - store_id: os.stoid,
613   - user_id: getApp().globalData.userInfo.user_id
614   - };
615   - getApp().request.put("/api/weshop/cart/update", {
616   - data: updata1,
617   - })
618   - item.goods_num = cbuy;
619   - }
  460 + var by_map = null;
  461 +
  462 + //--要获得商品,该用户买了多少件,同步应用--
  463 + await getApp().request.promiseGet("/api/weshop/ordergoods/listUserBuyGoodsNum", {
  464 + data: {
  465 + store_id: oo.stoid,
  466 + user_id: user_id,
  467 + goods_ids: g_arr.join(','),
620 468  
621   - //价格不对,就要更新一下
622   - if (good.goods_price != prom.price) {
623   - good.goods_price = prom.price;
624   - //-- 购物车更新秒杀价格 --
625   - var updata1 = {
626   - id: item.id,
627   - goods_price: prom.price,
628   - store_id: os.stoid,
629   - user_id: getApp().globalData.userInfo.user_id
630   - };
631   - getApp().request.put("/api/weshop/cart/update", {
632   - data: updata1,
633   - })
634   - }
635   - }
636   - // 判断团购活动都去掉了,或者结束了,那么这个商品也没有必要留着
637   - else if(item.prom_type ==2){
638   - var prom = null;
639   - var now = ut.gettimestamp();
640   - await getApp().request.promiseGet('/api/weshop/goods/groupBuy/getActInfo/'+ oo.stoid + '/' + item.goods_id + '/' + item.prom_id, {}).then(res => {
641   - if (res.data.code == 0) {
642   - prom = res.data.data;
643   - prom.price = prom.user_price;
644   - }
645   - });
646   - //---如果互动都已经过期,或者还未开始,或者无活动
647   - if (!prom || prom.is_end == 1 || prom.end_time < now || prom.start_time > now) {
648   - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
649   - // a.delete(url, {
650   - // success: function (t) {}
651   - // });
652   - console.log('团购活动-----');
653   - th.disInvalid(item);
654   - //商品已经下架
655   - continue;
656   - }
657   -
658   -
659   - }
660   - //--判断优惠活动有没有过期,--
661   - else if (item.prom_type == 3) {
662   - var isok = 1,is_g_prom=0;
663   -
664   - //因为有全场优惠活动,商品参加的活动还未开始
665   - var url="/api/weshop/activitylist/getGoodActInfo";
666   - var req_data={
667   - store_id:os.stoid,goodsidlist:item.goods_id,is_detail:1,user_id:user_id
668   - };
669   - await getApp().request.promiseGet(url, {data:req_data}).then(async function (res) {
670   - if(res.data.code==0 && res.data.data && res.data.data.length){
671   - for(let i in res.data.data){
672   - let item=res.data.data[i];
673   - if(item.prom_type==3) {
674   - is_g_prom=1; break;
675   - }
676   - }
677   - }
678   - })
679   -
680   - if (is_g_prom) {
681   - await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromList/" + os.stoid + "/" + item.goods_id + "/1"+"/"+getApp().globalData.user_id, {}).then(res => {
682   - if (res.data.code == 0) {
683   - var r_data = res.data.data;
684   - if (!r_data.promGoodsLists) {
685   - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
686   - // getApp().request.delete(url, {});
687   - //商品已经无活动
688   - // th.disInvalid(item);
689   - // isok = 0;
690   - item.prom_type = 0
691   - //购物车更新
692   - th.cartUpFn(item)
693   - } else {
694   - //如果活动的ID不一样,说明原先的活动已经没有参与了或者过期了
695   - if (item.prom_id != r_data.promGoodsLists[0].prom_id) {
696   - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
697   - // getApp().request.delete(url, {});
698   - //商品已经下架
699   - // th.disInvalid(item);
700   - // isok = 0;
701   - item.prom_type = 0
702   - //购物车更新
703   - th.cartUpFn(item)
704   - }
705   - }
706   -
707   - } else {
708   - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
709   - // getApp().request.delete(url, {});
710   - // th.disInvalid(item);
711   - // //商品已经下架
712   - // isok = 0;
713   - item.prom_type = 0
714   - //购物车更新
715   - th.cartUpFn(item)
716   - }
717   - })
  469 + },
  470 + }).then(res => {
  471 + if (ut.ajax_ok2(res)) {
  472 + by_map = {};
  473 + for (let i in res.data.data) {
  474 + let item = res.data.data[i];
  475 + by_map[item.goods_id] = item;
  476 + }
  477 + }
  478 + })
  479 +
  480 + for (var i = 0; i < carr.length; i++) {
  481 + var item = carr[i];
  482 + var good = item;
  483 + if (item.is_gift) {
  484 + var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
  485 + getApp().request.delete(url, {
  486 + success: function (t) { }
  487 + });
  488 + //商品已经下架
  489 + continue;
  490 + }
718 491  
719   - } else {
720   - await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromNormal/" + os.stoid + "/" + item.goods_id, {}).then(res => {
721   - if (res.data.code == 0) {
722   - var r_data = res.data.data;
723   - if (!r_data.promGoodsLists) {
724   - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
725   - // getApp().request.delete(url, {});
726   - // th.disInvalid(item);
727   - // //商品已经无活动
728   - // isok = 0;
729   - item.prom_type = 0
730   - //购物车更新
731   - th.cartUpFn(item)
732   - } else {
733   - //如果活动的ID不一样,说明原先的活动已经没有参与了或者过期了
734   - if (item.prom_id != r_data.promGoodsLists[0].prom_id) {
735   - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
736   - // getApp().request.delete(url, {});
737   - // th.disInvalid(item);
738   - // //商品已经下架
739   - // isok = 0;
740   - item.prom_type = 0
741   - //购物车更新
742   - th.cartUpFn(item)
743   - }
744   - }
745   -
746   - } else {
747   - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
748   - // getApp().request.delete(url, {});
749   - // th.disInvalid(item,1);
750   - // //商品已经下架
751   - // isok = 0;
752   - item.prom_type = 0
753   - //购物车更新
754   - th.cartUpFn(item)
755   - }
756   - })
757   - }
758   - // if (!isok) continue;
759   - }
760   - else if (item.prom_type == 7) {
761   - console.log('组合购------------');
762   - if(!th.data.zuhe_map[item.prom_id]){
763   - console.log('组1')
764   - //如果有组合购
765   - var isok = 1;
766   - var is_flag = 1;
767   - var act = null;
768   - var url = "/api/weshop/prom/zhbuy/get/" + os.stoid + "/" + item.prom_id + "/" + getApp().globalData.user_id;
769   - await getApp().request.promiseGet(url, {}).then(res => {
770   - console.log(res);
771   - if (res.data.code == 0 && res.data.data) {
772   - if (res.data.data.is_show != 1) {
773   - isok = 0;
774   - }
775   - //如果活动已经结束
776   - if (res.data.data.is_end == 1) {
777   - isok = 0;
778   - }
779   - //已经结束
780   - if (ut.gettimestamp() > res.data.data.end_time) {
781   - isok = 0;
782   - }
783   - //还未开始
784   - if (ut.gettimestamp() < res.data.data.start_time) {
785   - isok = 0;
786   - }
787   - act = res.data.data;
788   -
789   - } else {
790   - //未找到商品的活动
791   - is_flag = 0;
792   - }
793   - })
794   - if (!isok) {
795   - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
796   - // getApp().request.delete(url, {});
797   - //组合购失效不处理
798   - // th.disInvalid(item);
799   - // th.data.zuhe_map[item.prom_id] = -1;
800   - // continue;
801   - item.prom_type = 0
802   - //购物车更新
803   - th.cartUpFn(item)
804   - }else{
805   - th.data.zuhe_map[item.prom_id] = act;
806   - var url1 = "/api/weshop/prom/zhbuyGoods/page";
807   - var req_data = {
808   - page: 1,
809   - pageSize: 2000,
810   - store_id: os.stoid,
811   - zh_id: item.prom_id,
812   - }
813   - await getApp().request.promiseGet(url1, {
814   - data: req_data
815   - }).then(res => {
816   - console.log(res, 2000);
817   - if (ut.ajax_ok(res)) {
818   - var gdlist = res.data.data.pageData;
819   - gdlist.forEach(i => {
820   - if (item.goods_id == i.goods_id && !is_flag) {
821   - item.prom_type = 0;
822   - item.prom_type1 = 0;
823   - item.prom_id = 0;
824   - item.prom_id1 = 0
825   - }
826   - })
827   - th.data.zuhe_map_good[item.prom_id] = gdlist;
828   - }
829   - })
830   - }
831   - }
832   - console.log('组2')
833   - if (th.data.zuhe_map[item.prom_id] && th.data.zuhe_map[item.prom_id] != -1) {
834   - console.log('组3')
835   - var gdlist = th.data.zuhe_map_good[item.prom_id];
836   - var t_item = gdlist.find(function (ele) {
837   - return ele.goods_id == item.goods_id
838   - })
839   - if (!t_item) {
840   - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
841   - // getApp().request.delete(url, {});
842   - //组合购不处理
843   - // th.disInvalid(item,1);
844   - // th.data.zuhe_map[item.prom_id] = -1;
845   - // continue;
846   - item.prom_type = 0
847   - //购物车更新
848   - th.cartUpFn(item)
849   - }else{
850   - item.buyqty = t_item.buyqty;
851   - item.zh_b_num = promgoodsbuynum;
852   - item.act = th.data.zuhe_map[item.prom_id];
853   - }
854   - } //else{
855   - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
856   - // getApp().request.delete(url, {});
857   - // th.data.zuhe_map[item.prom_id]=-1;
858   - // continue;
859   - // }
860   - }
861   - else if (item.prom_type == 10) {
862   - if(!th.data.ladder_map[item.prom_id]){
863   - //如果有阶梯购
864   - var isok = 1;
865   - var is_flag=1;
866   - var act=null;
867   - var url="/api/weshop/prom/ladderForm/getNew/"+os.stoid+"/"+user_id+"/"+item.prom_id;
868   - await getApp().request.promiseGet(url, {}).then(res => {
869   - console.log(res,1000);
870   - if(res.data.code==0 && res.data.data){
871   - if(res.data.data.isuse!=1){
872   - isok=0;
873   - }
874   - //如果活动已经结束
875   - if(res.data.data.is_end==1){
876   - isok=0;
877   - }
878   - //已经结束
879   - if(ut.gettimestamp()>res.data.data.end_time){
880   - isok=0;
881   - }
882   - //还未开始
883   - if(ut.gettimestamp()<res.data.data.start_time){
884   - isok=0;
885   - }
886   - act=res.data.data;
887   -
888   - }else{
889   - //未找到商品的活动
890   - isok = 0;
891   - }
892   - })
893   - if (!isok){
894   - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
895   - // getApp().request.delete(url, {});
896   - th.disInvalid(item,1);
897   - th.data.ladder_map[item.prom_id]=-1;
898   - continue;
899   - }
900   - th.data.ladder_map[item.prom_id]=act;
901   -
902   - //-- 获取阶梯规则 --
903   - var url1 = "/api/weshop/prom/ladderList/list";
904   - var req_data = {
905   - store_id: os.stoid,
906   - form_id: item.prom_id,
907   - }
908   - await getApp().request.promiseGet(url1, {
909   - data: req_data
910   - }).then(rs1 => {
911   - if (rs1.data.code==0 && rs1.data.data) {
912   - var gdlist = rs1.data.data;
913   - th.data.ladder_map[item.prom_id].ladder_list=gdlist;
914   - }
915   - })
916   - }
917   - //直接把活动赋值给元素
918   - if(th.data.ladder_map[item.prom_id] && th.data.ladder_map[item.prom_id]!=-1 ){
919   - item.act=th.data.ladder_map[item.prom_id];
920   - }
  492 + var tt = ut.gettimestamp();
  493 + //如果商品下架了,或者商品是赠品,一开始都要清除
  494 + if ((good.down_time > 0 && good.down_time < tt) || good.is_on_sale == 0) {
  495 + // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
  496 + // getApp().request.delete(url, {
  497 + // success: function (t) {}
  498 + // });
  499 + th.disInvalid(item, 1);
  500 + //商品已经下架
  501 + continue;
  502 + }
  503 + var goodsbuynum = 0,
  504 + promgoodsbuynum = 0,
  505 + limit = 0;
  506 + if (by_map && by_map[good.goods_id]) {
  507 + goodsbuynum = by_map[good.goods_id].goodsbuynum;
  508 + promgoodsbuynum = by_map[good.goods_id].promgoodsbuynum;
  509 + }
921 510  
922   - }
923   - //判断不是代发的商品
924   - else if(item.prom_type == 0 && !item.whsle_id) {
925   -
926   - //如果有优惠活动,要更新活动
927   - await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromList/" + os.stoid + "/" + item.goods_id + "/1"+"/"+getApp().globalData.user_id, {}).then(res => {
928   - if (res.data.code == 0) {
929   - var r_data = res.data.data;
930   - if (r_data.promGoodsLists) {
931   - var url = '/api/weshop/cart/update';
932   - getApp().request.put(url, {
933   - data: {
934   - id: item.id,
935   - store_id: oo.stoid,
936   - prom_type: 3,
937   - prom_id: r_data.promGoodsLists[0].prom_id
938   - }
939   - });
940   - item.prom_type=3;
941   - item.prom_id=r_data.promGoodsLists[0].prom_id;
942   - }else if(r_data.ladderLists){
943   -
944   - item.prom_type=10;
945   - item.prom_id=r_data.ladderLists[0].form_id;
946   -
947   - }
948   - }
949   - })
950   -
951   - //如果是阶梯购的时候
952   - if(item.prom_type==10){
953   -
954   -
955   - if(!th.data.ladder_map[item.prom_id]){
956   - //如果有阶梯购,要判断身份
957   - var isok = 1;
958   - var is_flag=1;
959   - var act=null;
960   - var url="/api/weshop/prom/ladderForm/getNew/"+os.stoid+"/"+user_id+"/"+item.prom_id;
961   - await getApp().request.promiseGet(url, {}).then(res => {
962   - console.log(res,1000);
963   - if(res.data.code==0 && res.data.data){
964   - if(res.data.data.isuse!=1){
965   - isok=0;
966   - }
967   - //如果活动已经结束
968   - if(res.data.data.is_end==1){
969   - isok=0;
970   - }
971   - //已经结束
972   - if(ut.gettimestamp()>res.data.data.end_time){
973   - isok=0;
974   - }
975   - //还未开始
976   - if(ut.gettimestamp()<res.data.data.start_time){
977   - isok=0;
978   - }
979   - act=res.data.data;
980   -
981   - }else{
982   - //未找到商品的活动
983   - isok = 0;
984   - }
985   - })
986   - if (!isok){
987   - item.prom_type=0;
988   - item.prom_id=0;
989   - }else{
990   -
991   - th.data.ladder_map[item.prom_id]=act;
992   - //-- 获取阶梯规则 --
993   - var url1 = "/api/weshop/prom/ladderList/list";
994   - var req_data = {
995   - store_id: os.stoid,
996   - form_id: item.prom_id,
997   - }
998   - await getApp().request.promiseGet(url1, {
999   - data: req_data
1000   - }).then(rs1 => {
1001   - if (rs1.data.code==0 && rs1.data.data) {
1002   - var gdlist = rs1.data.data;
1003   - th.data.ladder_map[item.prom_id].ladder_list=gdlist;
1004   - }
1005   - })
1006   - }
1007   -
1008   - }
1009   - //直接把活动赋值给元素
1010   - if(th.data.ladder_map[item.prom_id] && th.data.ladder_map[item.prom_id]!=-1 ){
1011   - item.act=th.data.ladder_map[item.prom_id];
1012   -
1013   - //如果有活动,就更新商品的活动那个
1014   - var url = '/api/weshop/cart/update';
1015   - getApp().request.put(url, {
1016   - data:{id:item.id,store_id:oo.stoid,prom_type:10,prom_id:item.prom_id}
1017   - });
1018   -
1019   - }
1020   - }
  511 + limit = good.viplimited;
  512 + //判断商品的限购
  513 + if (item.goods_num + goodsbuynum > limit && limit > 0) {
  514 + var cbuy = limit - goodsbuynum;
  515 + if (cbuy <= 0) {
  516 + // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
  517 + // a.delete(url, {});
  518 + th.disInvalid(item, 2);
  519 + continue;
  520 + }
  521 + //-- 购物车更新 --
  522 + var updata1 = {
  523 + id: item.id,
  524 + goods_num: cbuy,
  525 + store_id: os.stoid,
  526 + user_id: getApp().globalData.userInfo.user_id
  527 + };
  528 + getApp().request.put("/api/weshop/cart/update", {
  529 + data: updata1,
  530 + })
  531 + item.goods_num = cbuy;
  532 + }
  533 +
  534 + //判断如果是普通商品,后面参加活动了,变成失效商品
  535 + if (item.prom_type == 0 ) {
1021 536  
1022   - }
1023 537  
1024   - all_num += item.goods_num;
1025   - item.original_img = oo.imghost + item.original_img;
1026   - item.selected = 0;
1027   - item.erpwareid = good.erpwareid; //要同步下线商品的id
1028   - item.shop_price = good.shop_price; //要同步下线商品的id
  538 + var prom = null;
  539 + var now = ut.gettimestamp();
  540 + await getApp().request.promiseGet(`/api/weshop/activitylist/listGoodActInfo2`, {
  541 + data: {
  542 + "store_id": oo.stoid,
  543 + "goods_id": item.goods_id,
  544 + "user_id": user_id,
  545 + }
  546 + }).then(res => {
  547 + if (res.data.code == 0) {
  548 + prom = res.data.data
  549 + }
  550 + })
  551 + let prom_true = 0
  552 + let prom_id = 0
  553 + if (prom) {
  554 + prom.map(item => {
  555 + if (item.prom_type == 3 || item.prom_type == 7) {
  556 + prom_true = item.prom_type
  557 + prom_id = item.act_id
  558 + }
  559 + })
  560 + }
  561 + if (prom_true) {
  562 + //-- 购物车更新 --
  563 + var updata1 = {
  564 + id: item.id,
  565 + prom_type: prom_true,
  566 + prom_id,
  567 + store_id: os.stoid,
  568 + user_id: getApp().globalData.userInfo.user_id
  569 + };
  570 + item.prom_id = prom_id
  571 + item.prom_type = prom_true
  572 + getApp().request.put("/api/weshop/cart/update", {
  573 + data: updata1,
  574 + })
1029 575  
1030   - //当商品要计算等级价的售
1031   - if (item.prom_type == 0 || item.prom_type == 3 || item.prom_type == 5 || item.prom_type == 7) {
1032   - if (th.data.card_field && good[th.data.card_field]) {
1033   - item.goods_price = good[th.data.card_field]; //要同步下线商品的id
1034   - } else {
1035   - item.goods_price = good.shop_price;
1036   - }
  576 + } else {
  577 + if (prom && !item.is_integral_normal && !item.is_pd_normal && prom[0].prom_type != 5) {
  578 + th.disInvalid(item);
  579 + continue;
  580 + }
  581 + }
  582 + }
  583 +
  584 + //如果秒杀活动都去掉了,或者结束了,那么这个商品也没有必要留着
  585 + if (item.prom_type == 1) {
  586 + var prom = null;
  587 + var now = ut.gettimestamp();
  588 + await getApp().request.promiseGet("/api/ms/flash_sale/getNew/" + os.stoid + '/' + user_id + "/" + item.prom_id, {}).then(res => {
  589 + console.log('活动情况----------------')
  590 + console.log(res)
  591 + if (res.data.code == 0) {
  592 + prom = res.data.data;
  593 + prom.price = prom.user_price;
  594 + }
  595 + })
  596 + //---如果互动都已经过期,或者还未开始,或者无活动
  597 + if (!prom || prom.is_end == 1 || prom.end_time < now || prom.start_time > now) {
  598 + // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
  599 + // a.delete(url, {
  600 + // success: function (t) {}
  601 + // });
  602 + th.disInvalid(item);
  603 + //商品已经下架
  604 + continue;
  605 + }
1037 606  
1038   - var t = {
1039   - id: item.id,
1040   - store_id: os.stoid,
1041   - user_id: getApp().globalData.userInfo.user_id,
1042   - goods_price: item.goods_price
1043   - }
1044   - getApp().request.put("/api/weshop/cart/update", {
1045   - isShowLoading: 0,
1046   - data: t,
1047   - })
  607 + //判断秒杀的限购
  608 + if (item.goods_num + promgoodsbuynum > prom.buy_limit && prom.buy_limit > 0) {
  609 + var cbuy = prom.buy_limit - promgoodsbuynum;
  610 + if (cbuy <= 0) {
  611 + // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
  612 + // a.delete(url, {});
  613 + th.disInvalid(item, 2);
  614 + continue;
  615 + }
  616 + //-- 购物车更新 --
  617 + var updata1 = {
  618 + id: item.id,
  619 + goods_num: cbuy,
  620 + store_id: os.stoid,
  621 + user_id: getApp().globalData.userInfo.user_id
  622 + };
  623 + getApp().request.put("/api/weshop/cart/update", {
  624 + data: updata1,
  625 + })
  626 + item.goods_num = cbuy;
  627 + }
1048 628  
1049   - }
  629 + //价格不对,就要更新一下
  630 + if (good.goods_price != prom.price) {
  631 + good.goods_price = prom.price;
  632 + //-- 购物车更新秒杀价格 --
  633 + var updata1 = {
  634 + id: item.id,
  635 + goods_price: prom.price,
  636 + store_id: os.stoid,
  637 + user_id: getApp().globalData.userInfo.user_id
  638 + };
  639 + getApp().request.put("/api/weshop/cart/update", {
  640 + data: updata1,
  641 + })
  642 + }
  643 + }
  644 + // 判断团购活动都去掉了,或者结束了,那么这个商品也没有必要留着
  645 + else if (item.prom_type == 2) {
  646 + var prom = null;
  647 + var now = ut.gettimestamp();
  648 + await getApp().request.promiseGet('/api/weshop/goods/groupBuy/getActInfo/' + oo.stoid + '/' + item.goods_id + '/' + item.prom_id, {}).then(res => {
  649 + if (res.data.code == 0) {
  650 + prom = res.data.data;
  651 + prom.price = prom.user_price;
  652 + }
  653 + });
  654 + //---如果互动都已经过期,或者还未开始,或者无活动
  655 + if (!prom || prom.is_end == 1 || prom.end_time < now || prom.start_time > now) {
  656 + // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
  657 + // a.delete(url, {
  658 + // success: function (t) {}
  659 + // });
  660 + console.log('团购活动-----');
  661 + th.disInvalid(item);
  662 + //商品已经下架
  663 + continue;
  664 + }
1050 665  
1051   - var pcid = item.pick_id;
1052   - var find = 0;
1053   - //---------循环查找门店---
1054   - if (arr.length > 0) {
1055   - for (var j = 0; j < arr.length; j++) {
1056   - if (arr[j].pid == pcid) {
1057   - arr[j].goods.push(item);
1058   - find = 1;
1059   - break;
1060   - }
1061   - }
1062   - }
1063 666  
1064   - //------如果没有找到-----
1065   - if (find == 0) {
1066   - var pikname = '';
1067   - //找到门店名称
1068   - for (var k = 0; k < th.data.allsto.length; k++) {
1069   - if (pcid == th.data.allsto[k].pickup_id) {
1070   - pikname = th.data.allsto[k].pickup_name;
1071   - break;
1072   - }
1073   - }
1074   - var narr = new Array();
1075   - narr.push(item);
1076   - var ie = {
1077   - pid: pcid,
1078   - pname: pikname,
1079   - goods: narr,
1080   - selected: 0
1081   - };
1082   - arr.push(ie);
1083   - }
  667 + }
  668 + //--判断优惠活动有没有过期,--
  669 + else if (item.prom_type == 3) {
  670 + var isok = 1, is_g_prom = 0;
  671 +
  672 + //因为有全场优惠活动,商品参加的活动还未开始
  673 + var url = "/api/weshop/activitylist/getGoodActInfo";
  674 + var req_data = {
  675 + store_id: os.stoid, goodsidlist: item.goods_id, is_detail: 1, user_id: user_id
  676 + };
  677 + await getApp().request.promiseGet(url, { data: req_data }).then(async function (res) {
  678 + if (res.data.code == 0 && res.data.data && res.data.data.length) {
  679 + for (let i in res.data.data) {
  680 + let item = res.data.data[i];
  681 + if (item.prom_type == 3) {
  682 + is_g_prom = 1; break;
1084 683 }
  684 + }
1085 685 }
  686 + })
1086 687  
1087   - if (th.data.is_open_offline && th.data.is_open_offline > 0 && th.data.sales_rules == 2) {
1088   - //-- 此时要实时更新线下取价价格 --
1089   - for (var i = 0; i < arr.length; i++) {
1090   - //每个门店都去看下线下取价
1091   - var list = arr[i];
1092   - await th.set_offline(list);
  688 + if (is_g_prom) {
  689 + await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromList/" + os.stoid + "/" + item.goods_id + "/1" + "/" + getApp().globalData.user_id, {}).then(res => {
  690 + if (res.data.code == 0) {
  691 + var r_data = res.data.data;
  692 + if (!r_data.promGoodsLists) {
  693 + // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
  694 + // getApp().request.delete(url, {});
  695 + //商品已经无活动
  696 + // th.disInvalid(item);
  697 + // isok = 0;
  698 + item.prom_type = 0
  699 + //购物车更新
  700 + th.cartUpFn(item)
  701 + } else {
  702 + //如果活动的ID不一样,说明原先的活动已经没有参与了或者过期了
  703 + if (item.prom_id != r_data.promGoodsLists[0].prom_id) {
  704 + // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
  705 + // getApp().request.delete(url, {});
  706 + //商品已经下架
  707 + // th.disInvalid(item);
  708 + // isok = 0;
  709 + item.prom_type = 0
  710 + //购物车更新
  711 + th.cartUpFn(item)
  712 + }
1093 713 }
1094   - } else {
1095   - //-- 此时要实时更新线下取价价格 --
1096   - for (var ij in arr) {
1097   - //每个门店都去看下线下取价
1098   - var list = arr[ij];
1099   - for (var i in list.goods) {
1100   - list.goods[i].offline_price = 0
1101   - }
  714 +
  715 + } else {
  716 + // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
  717 + // getApp().request.delete(url, {});
  718 + // th.disInvalid(item);
  719 + // //商品已经下架
  720 + // isok = 0;
  721 + item.prom_type = 0
  722 + //购物车更新
  723 + th.cartUpFn(item)
  724 + }
  725 + })
  726 +
  727 + } else {
  728 + await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromNormal/" + os.stoid + "/" + item.goods_id, {}).then(res => {
  729 + if (res.data.code == 0) {
  730 + var r_data = res.data.data;
  731 + if (!r_data.promGoodsLists) {
  732 + // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
  733 + // getApp().request.delete(url, {});
  734 + // th.disInvalid(item);
  735 + // //商品已经无活动
  736 + // isok = 0;
  737 + item.prom_type = 0
  738 + //购物车更新
  739 + th.cartUpFn(item)
  740 + } else {
  741 + //如果活动的ID不一样,说明原先的活动已经没有参与了或者过期了
  742 + if (item.prom_id != r_data.promGoodsLists[0].prom_id) {
  743 + // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
  744 + // getApp().request.delete(url, {});
  745 + // th.disInvalid(item);
  746 + // //商品已经下架
  747 + // isok = 0;
  748 + item.prom_type = 0
  749 + //购物车更新
  750 + th.cartUpFn(item)
  751 + }
1102 752 }
1103   - }
1104   -
1105   - for (let u1 in arr) {
1106   - var u_item=arr[u1];
1107   - //把组合购进行分组
1108   - var obj=zh_calc.find_split(u_item);
1109   - if(!obj) continue;
1110   - //存储不同活动的商品列表
1111   - u_item.zh_prom_goods={};
1112   - for (let var1 in obj) {
1113   - var h_item=obj[var1];
1114   - var gdlist= th.data.zuhe_map_good[h_item.prom_id];
1115   - //获取活动需要的商品列表
1116   - u_item.zh_prom_goods[h_item.prom_id]=gdlist;
1117   - }
1118   - }
1119   -
1120   - th.setData({
1121   - requestData: arr,
1122   - all_num: all_num,
1123   - is_load: 1,
1124   - is_edit: 0
1125   - }),
1126   - th.doCheckAll(), wx.stopPullDownRefresh();
1127 753  
  754 + } else {
  755 + // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
  756 + // getApp().request.delete(url, {});
  757 + // th.disInvalid(item,1);
  758 + // //商品已经下架
  759 + // isok = 0;
  760 + item.prom_type = 0
  761 + //购物车更新
  762 + th.cartUpFn(item)
  763 + }
  764 + })
  765 + }
  766 + // if (!isok) continue;
1128 767 }
1129   - });
1130   - },
1131   - //商品购物车修改
1132   - cartUpFn(item){
1133   - let updata1 = {
1134   - id: item.id,
1135   - prom_type: 0,
1136   - prom_id:item.prom_id,
1137   - store_id: os.stoid,
1138   - user_id: getApp().globalData.userInfo.user_id
1139   - };
1140   - getApp().request.put("/api/weshop/cart/update", {
1141   - data: updata1,
1142   - })
1143   - },
1144   - //-----真的获取购物车--------
1145   - get_ser_cart: function () {
1146   - var th = this;
1147   - var user_id = getApp().globalData.user_id;
1148   - var rd = Math.random().toString(36).substr(2, 15);
1149   - getApp().request.get("/api/weshop/cartService/page", {
1150   - data: {
1151   - user_id: app.globalData.user_id,
1152   - rd: rd,
1153   - store_id: oo.stoid,
1154   - pageSize: 600,
1155   - },
1156   - success: async function (su) {
1157   - //按门店分类的数组
1158   - var arr = new Array(),
1159   - carr = su.data.data.pageData;
1160   - var all_num = 0;
1161   -
1162   - if (carr && carr.length > 0) {
1163   - for (var i = 0; i < carr.length; i++) {
1164   - var item = carr[i];
1165   - var good = null;
1166   -
1167   - await getApp().request.promiseGet("/api/weshop/serviceCard/get/" + oo.stoid + "/" + item.service_id, {}).then(res => {
1168   - good = res.data.data;
1169   - })
1170   - if (!good) {
1171   - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
1172   - // getApp().request.delete(url, {
1173   - // success: function (t) {}
1174   - // });
1175   - th.disInvalid({
1176   - ...item,
1177   - original_img: good.imgUrl
1178   - },1,1);
1179   - continue;
1180   - }
1181   -
1182   - //如果商品下架了,或者商品是赠品,一开始都要清除
1183   - if (good.is_show == 0) {
1184   - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
1185   - // getApp().request.delete(url, {
1186   - // success: function (t) {}
1187   - // });
1188   - th.disInvalid({
1189   - ...item,
1190   - original_img: good.imgUrl
1191   - },1,1);
1192   - //商品已经下架
1193   - continue;
1194   - }
  768 + else if (item.prom_type == 7) {
  769 + console.log('组合购------------');
  770 + if (!th.data.zuhe_map[item.prom_id]) {
  771 + console.log('组1')
  772 + //如果有组合购
  773 + var isok = 1;
  774 + var is_flag = 1;
  775 + var act = null;
  776 + var url = "/api/weshop/prom/zhbuy/get/" + os.stoid + "/" + item.prom_id + "/" + getApp().globalData.user_id;
  777 + await getApp().request.promiseGet(url, {}).then(res => {
  778 + console.log(res);
  779 + if (res.data.code == 0 && res.data.data) {
  780 + if (res.data.data.is_show != 1) {
  781 + isok = 0;
  782 + }
  783 + //如果活动已经结束
  784 + if (res.data.data.is_end == 1) {
  785 + isok = 0;
  786 + }
  787 + //已经结束
  788 + if (ut.gettimestamp() > res.data.data.end_time) {
  789 + isok = 0;
  790 + }
  791 + //还未开始
  792 + if (ut.gettimestamp() < res.data.data.start_time) {
  793 + isok = 0;
  794 + }
  795 + act = res.data.data;
1195 796  
1196   - if(item.prom_type ==0){
1197   - var prom = null;
1198   - var now = ut.gettimestamp();
1199   - await getApp().request.promiseGet(`/api/weshop/activitylist/listGoodActInfo2`, {
1200   - data:{
1201   - store_id: oo.stoid,
1202   - goods_id: item.service_id,
1203   - user_id: user_id,
1204   - goods_type: 1,
1205   - }
1206   - }).then(res => {
1207   - console.log('服务卡活动信息')
1208   - console.log(res)
1209   - console.log('服务卡活动信息-------------')
1210   - if (res.data.code == 0) {
1211   - prom = res.data.data
1212   - }
1213   - })
1214   - if(prom){
1215   - th.disInvalid({
1216   - ...item,
1217   - original_img: good.imgUrl
1218   - },2,1)
1219   - continue;
1220   - }
  797 + } else {
  798 + //未找到商品的活动
  799 + is_flag = 0;
  800 + }
  801 + })
  802 + if (!isok) {
  803 + // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
  804 + // getApp().request.delete(url, {});
  805 + //组合购失效不处理
  806 + // th.disInvalid(item);
  807 + // th.data.zuhe_map[item.prom_id] = -1;
  808 + // continue;
  809 + item.prom_type = 0
  810 + //购物车更新
  811 + th.cartUpFn(item)
  812 + } else {
  813 + th.data.zuhe_map[item.prom_id] = act;
  814 + var url1 = "/api/weshop/prom/zhbuyGoods/page";
  815 + var req_data = {
  816 + page: 1,
  817 + pageSize: 2000,
  818 + store_id: os.stoid,
  819 + zh_id: item.prom_id,
  820 + }
  821 + await getApp().request.promiseGet(url1, {
  822 + data: req_data
  823 + }).then(res => {
  824 + console.log(res, 2000);
  825 + if (ut.ajax_ok(res)) {
  826 + var gdlist = res.data.data.pageData;
  827 + gdlist.forEach(i => {
  828 + if (item.goods_id == i.goods_id && !is_flag) {
  829 + item.prom_type = 0;
  830 + item.prom_type1 = 0;
  831 + item.prom_id = 0;
  832 + item.prom_id1 = 0
1221 833 }
  834 + })
  835 + th.data.zuhe_map_good[item.prom_id] = gdlist;
  836 + }
  837 + })
  838 + }
  839 + }
  840 + console.log('组2')
  841 + if (th.data.zuhe_map[item.prom_id] && th.data.zuhe_map[item.prom_id] != -1) {
  842 + console.log('组3')
  843 + var gdlist = th.data.zuhe_map_good[item.prom_id];
  844 + var t_item = gdlist.find(function (ele) {
  845 + return ele.goods_id == item.goods_id
  846 + })
  847 + if (!t_item) {
  848 + // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
  849 + // getApp().request.delete(url, {});
  850 + //组合购不处理
  851 + // th.disInvalid(item,1);
  852 + // th.data.zuhe_map[item.prom_id] = -1;
  853 + // continue;
  854 + item.prom_type = 0
  855 + //购物车更新
  856 + th.cartUpFn(item)
  857 + } else {
  858 + let act =th.data.zuhe_map[item.prom_id]
  859 + //判断是否超出组合购次数限制
  860 +
  861 + if(act.buy_limit !=0){
  862 + let userbuynum = await th.getUserBuyPromNum(item.goods_prom_id)
  863 + if(userbuynum>=act.buy_limit){
  864 + item.goods_prom_type = 0
  865 + item.goods_prom_id = 0
  866 + item.prom_type = 0
  867 + item.prom_id = 0
  868 + //购物车更新
  869 + th.cartUpFn(item)
  870 + }else{
  871 + item.buyqty = t_item.buyqty;
  872 + item.zh_b_num = promgoodsbuynum;
  873 + item.act = th.data.zuhe_map[item.prom_id];
  874 + }
  875 + }else{
  876 + item.buyqty = t_item.buyqty;
  877 + item.zh_b_num = promgoodsbuynum;
  878 + item.act = th.data.zuhe_map[item.prom_id];
  879 + }
  880 + }
  881 + } //else{
  882 + // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
  883 + // getApp().request.delete(url, {});
  884 + // th.data.zuhe_map[item.prom_id]=-1;
  885 + // continue;
  886 + // }
  887 + }
  888 + else if (item.prom_type == 10) {
  889 + if (!th.data.ladder_map[item.prom_id]) {
  890 + //如果有阶梯购
  891 + var isok = 1;
  892 + var is_flag = 1;
  893 + var act = null;
  894 + var url = "/api/weshop/prom/ladderForm/getNew/" + os.stoid + "/" + user_id + "/" + item.prom_id;
  895 + await getApp().request.promiseGet(url, {}).then(res => {
  896 + console.log(res, 1000);
  897 + if (res.data.code == 0 && res.data.data) {
  898 + if (res.data.data.isuse != 1) {
  899 + isok = 0;
  900 + }
  901 + //如果活动已经结束
  902 + if (res.data.data.is_end == 1) {
  903 + isok = 0;
  904 + }
  905 + //已经结束
  906 + if (ut.gettimestamp() > res.data.data.end_time) {
  907 + isok = 0;
  908 + }
  909 + //还未开始
  910 + if (ut.gettimestamp() < res.data.data.start_time) {
  911 + isok = 0;
  912 + }
  913 + act = res.data.data;
1222 914  
1223   - if (item.prom_type == 1) {
1224   - var prom = null;
1225   - var now = ut.gettimestamp();
1226   - await getApp().request.promiseGet('/api/ms/flash_sale/getNew/' + os.stoid + '/' + user_id + '/' + item.prom_id, {}).then(res => {
1227   - if (res.data.code == 0) {
1228   - prom = res.data.data;
1229   - prom.price = prom.user_price;
1230   - }
1231   - });
1232   - console.log('服务的秒杀信息')
1233   - console.log(prom)
1234   - //---如果互动都已经过期,或者还未开始,或者无活动
1235   - if (!prom || prom.is_end == 1 || prom.end_time < now || prom.start_time > now) {
1236   - th.disInvalid({
1237   - ...item,
1238   - original_img: good.imgUrl
1239   - },0,1);
1240   - continue;
1241   - }
1242   - //判断秒杀的限购
1243   - var msNum=0
1244   - await getApp().request.promiseGet("/api/weshop/rechargeServicelist/getUserBuyGoodsNum", {
1245   - data: {
1246   - store_id: os.stoid,
1247   - user_id: user_id,
1248   - card_id: prom.goods_id,
1249   - }
1250   - }).then(res=>{
1251   - if (res.data.code==0) {
1252   - msNum = res.data.data.cardbuynum
1253   - console.log('秒杀限购:'+msNum)
1254   - }
1255   - })
1256   - }
1257   - if (msNum && (msNum >= prom.buy_limit) ) {
1258   - console.log('秒杀限购')
1259   - th.disInvalid({
1260   - ...item,
1261   - original_img: good.imgUrl
1262   - },2,1)
1263   - continue;
1264   - }
  915 + } else {
  916 + //未找到商品的活动
  917 + isok = 0;
  918 + }
  919 + })
  920 + if (!isok) {
  921 + // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
  922 + // getApp().request.delete(url, {});
  923 + th.disInvalid(item, 1);
  924 + th.data.ladder_map[item.prom_id] = -1;
  925 + continue;
  926 + }
  927 + th.data.ladder_map[item.prom_id] = act;
1265 928  
1266   - all_num += item.goods_num;
1267   - item.img_url = oo.imghost + good.imgUrl;
1268   - item.selected = 0;
1269   -
1270   -
1271   - var pcid = item.pick_id;
1272   - var find = 0;
1273   - //---------循环查找门店---
1274   - if (arr.length > 0) {
1275   - for (var j = 0; j < arr.length; j++) {
1276   - if (arr[j].pid == pcid) {
1277   - arr[j].goods.push(item);
1278   - find = 1;
1279   - break;
1280   - }
1281   - }
1282   - }
  929 + //-- 获取阶梯规则 --
  930 + var url1 = "/api/weshop/prom/ladderList/list";
  931 + var req_data = {
  932 + store_id: os.stoid,
  933 + form_id: item.prom_id,
  934 + }
  935 + await getApp().request.promiseGet(url1, {
  936 + data: req_data
  937 + }).then(rs1 => {
  938 + if (rs1.data.code == 0 && rs1.data.data) {
  939 + var gdlist = rs1.data.data;
  940 + th.data.ladder_map[item.prom_id].ladder_list = gdlist;
  941 + }
  942 + })
  943 + }
  944 + //直接把活动赋值给元素
  945 + if (th.data.ladder_map[item.prom_id] && th.data.ladder_map[item.prom_id] != -1) {
  946 + item.act = th.data.ladder_map[item.prom_id];
  947 + }
1283 948  
1284   - //------如果没有找到-----
1285   - if (find == 0) {
1286   - var pikname = '';
1287   - //找到门店名称
1288   - for (var k = 0; k < th.data.allsto.length; k++) {
1289   - if (pcid == th.data.allsto[k].pickup_id) {
1290   - pikname = th.data.allsto[k].pickup_name;
1291   - break;
1292   - }
1293   - }
1294   - var narr = new Array();
1295   - narr.push(item);
1296   - var ie = {
1297   - pid: pcid,
1298   - pname: pikname,
1299   - goods: narr,
1300   - selected: 0
1301   - };
1302   - arr.push(ie);
1303   - }
  949 + }
  950 + //判断不是代发的商品
  951 + else if (item.prom_type == 0 && !item.whsle_id) {
  952 +
  953 + //如果有优惠活动,要更新活动
  954 + await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromList/" + os.stoid + "/" + item.goods_id + "/1" + "/" + getApp().globalData.user_id, {}).then(res => {
  955 + if (res.data.code == 0) {
  956 + var r_data = res.data.data;
  957 + if (r_data.promGoodsLists) {
  958 + var url = '/api/weshop/cart/update';
  959 + getApp().request.put(url, {
  960 + data: {
  961 + id: item.id,
  962 + store_id: oo.stoid,
  963 + prom_type: 3,
  964 + prom_id: r_data.promGoodsLists[0].prom_id
  965 + }
  966 + });
  967 + item.prom_type = 3;
  968 + item.prom_id = r_data.promGoodsLists[0].prom_id;
  969 + } else if (r_data.ladderLists) {
  970 +
  971 + item.prom_type = 10;
  972 + item.prom_id = r_data.ladderLists[0].form_id;
  973 +
  974 + }
  975 + }
  976 + })
  977 +
  978 + //如果是阶梯购的时候
  979 + if (item.prom_type == 10) {
  980 +
  981 +
  982 + if (!th.data.ladder_map[item.prom_id]) {
  983 + //如果有阶梯购,要判断身份
  984 + var isok = 1;
  985 + var is_flag = 1;
  986 + var act = null;
  987 + var url = "/api/weshop/prom/ladderForm/getNew/" + os.stoid + "/" + user_id + "/" + item.prom_id;
  988 + await getApp().request.promiseGet(url, {}).then(res => {
  989 + console.log(res, 1000);
  990 + if (res.data.code == 0 && res.data.data) {
  991 + if (res.data.data.isuse != 1) {
  992 + isok = 0;
  993 + }
  994 + //如果活动已经结束
  995 + if (res.data.data.is_end == 1) {
  996 + isok = 0;
  997 + }
  998 + //已经结束
  999 + if (ut.gettimestamp() > res.data.data.end_time) {
  1000 + isok = 0;
  1001 + }
  1002 + //还未开始
  1003 + if (ut.gettimestamp() < res.data.data.start_time) {
  1004 + isok = 0;
  1005 + }
  1006 + act = res.data.data;
  1007 +
  1008 + } else {
  1009 + //未找到商品的活动
  1010 + isok = 0;
  1011 + }
  1012 + })
  1013 + if (!isok) {
  1014 + item.prom_type = 0;
  1015 + item.prom_id = 0;
  1016 + } else {
  1017 +
  1018 + th.data.ladder_map[item.prom_id] = act;
  1019 + //-- 获取阶梯规则 --
  1020 + var url1 = "/api/weshop/prom/ladderList/list";
  1021 + var req_data = {
  1022 + store_id: os.stoid,
  1023 + form_id: item.prom_id,
1304 1024 }
  1025 + await getApp().request.promiseGet(url1, {
  1026 + data: req_data
  1027 + }).then(rs1 => {
  1028 + if (rs1.data.code == 0 && rs1.data.data) {
  1029 + var gdlist = rs1.data.data;
  1030 + th.data.ladder_map[item.prom_id].ladder_list = gdlist;
  1031 + }
  1032 + })
  1033 + }
  1034 +
1305 1035 }
  1036 + //直接把活动赋值给元素
  1037 + if (th.data.ladder_map[item.prom_id] && th.data.ladder_map[item.prom_id] != -1) {
  1038 + item.act = th.data.ladder_map[item.prom_id];
  1039 +
  1040 + //如果有活动,就更新商品的活动那个
  1041 + var url = '/api/weshop/cart/update';
  1042 + getApp().request.put(url, {
  1043 + data: { id: item.id, store_id: oo.stoid, prom_type: 10, prom_id: item.prom_id }
  1044 + });
  1045 +
  1046 + }
  1047 + }
  1048 +
  1049 + }
  1050 +
  1051 + all_num += item.goods_num;
  1052 + item.original_img = oo.imghost + item.original_img;
  1053 + item.selected = 0;
  1054 + item.erpwareid = good.erpwareid; //要同步下线商品的id
  1055 + item.shop_price = good.shop_price; //要同步下线商品的id
  1056 +
  1057 + //当商品要计算等级价的售
  1058 + if (item.prom_type == 0 || item.prom_type == 3 || item.prom_type == 5 || item.prom_type == 7) {
  1059 + if (th.data.card_field && good[th.data.card_field]) {
  1060 + item.goods_price = good[th.data.card_field]; //要同步下线商品的id
  1061 + } else {
  1062 + item.goods_price = good.shop_price;
  1063 + }
  1064 +
  1065 + var t = {
  1066 + id: item.id,
  1067 + store_id: os.stoid,
  1068 + user_id: getApp().globalData.userInfo.user_id,
  1069 + goods_price: item.goods_price
  1070 + }
  1071 + getApp().request.put("/api/weshop/cart/update", {
  1072 + isShowLoading: 0,
  1073 + data: t,
  1074 + })
  1075 +
  1076 + }
  1077 +
  1078 + var pcid = item.pick_id;
  1079 + var find = 0;
  1080 + //---------循环查找门店---
  1081 + if (arr.length > 0) {
  1082 + for (var j = 0; j < arr.length; j++) {
  1083 + if (arr[j].pid == pcid) {
  1084 + arr[j].goods.push(item);
  1085 + find = 1;
  1086 + break;
  1087 + }
  1088 + }
  1089 + }
  1090 +
  1091 + //------如果没有找到-----
  1092 + if (find == 0) {
  1093 + var pikname = '';
  1094 + //找到门店名称
  1095 + for (var k = 0; k < th.data.allsto.length; k++) {
  1096 + if (pcid == th.data.allsto[k].pickup_id) {
  1097 + pikname = th.data.allsto[k].pickup_name;
  1098 + break;
  1099 + }
  1100 + }
  1101 + var narr = new Array();
  1102 + narr.push(item);
  1103 + var ie = {
  1104 + pid: pcid,
  1105 + pname: pikname,
  1106 + goods: narr,
  1107 + selected: 0
  1108 + };
  1109 + arr.push(ie);
  1110 + }
  1111 + }
  1112 + }
  1113 +
  1114 + if (th.data.is_open_offline && th.data.is_open_offline > 0 && th.data.sales_rules == 2) {
  1115 + //-- 此时要实时更新线下取价价格 --
  1116 + for (var i = 0; i < arr.length; i++) {
  1117 + //每个门店都去看下线下取价
  1118 + var list = arr[i];
  1119 + await th.set_offline(list);
  1120 + }
  1121 + } else {
  1122 + //-- 此时要实时更新线下取价价格 --
  1123 + for (var ij in arr) {
  1124 + //每个门店都去看下线下取价
  1125 + var list = arr[ij];
  1126 + for (var i in list.goods) {
  1127 + list.goods[i].offline_price = 0
  1128 + }
  1129 + }
  1130 + }
  1131 +
  1132 + for (let u1 in arr) {
  1133 + var u_item = arr[u1];
  1134 + //把组合购进行分组
  1135 + var obj = zh_calc.find_split(u_item);
  1136 + if (!obj) continue;
  1137 + //存储不同活动的商品列表
  1138 + u_item.zh_prom_goods = {};
  1139 + for (let var1 in obj) {
  1140 + var h_item = obj[var1];
  1141 + var gdlist = th.data.zuhe_map_good[h_item.prom_id];
  1142 + //获取活动需要的商品列表
  1143 + u_item.zh_prom_goods[h_item.prom_id] = gdlist;
  1144 + }
  1145 + }
  1146 +
  1147 + th.setData({
  1148 + requestData: arr,
  1149 + all_num: all_num,
  1150 + is_load: 1,
  1151 + is_edit: 0
  1152 + }),
  1153 + th.doCheckAll(), wx.stopPullDownRefresh();
  1154 +
  1155 + }
  1156 + });
  1157 + },
  1158 + //商品购物车修改
  1159 + cartUpFn(item) {
  1160 + let updata1 = {
  1161 + id: item.id,
  1162 + prom_type: 0,
  1163 + prom_id: item.prom_id,
  1164 + store_id: os.stoid,
  1165 + user_id: getApp().globalData.userInfo.user_id
  1166 + };
  1167 + getApp().request.put("/api/weshop/cart/update", {
  1168 + data: updata1,
  1169 + })
  1170 + },
  1171 + //-----真的获取购物车--------
  1172 + get_ser_cart: function () {
  1173 + var th = this;
  1174 + var user_id = getApp().globalData.user_id;
  1175 + var rd = Math.random().toString(36).substr(2, 15);
  1176 + getApp().request.get("/api/weshop/cartService/page", {
  1177 + data: {
  1178 + user_id: app.globalData.user_id,
  1179 + rd: rd,
  1180 + store_id: oo.stoid,
  1181 + pageSize: 600,
  1182 + },
  1183 + success: async function (su) {
  1184 + //按门店分类的数组
  1185 + var arr = new Array(),
  1186 + carr = su.data.data.pageData;
  1187 + var all_num = 0;
  1188 +
  1189 + if (carr && carr.length > 0) {
  1190 + for (var i = 0; i < carr.length; i++) {
  1191 + var item = carr[i];
  1192 + var good = null;
  1193 +
  1194 + await getApp().request.promiseGet("/api/weshop/serviceCard/get/" + oo.stoid + "/" + item.service_id, {}).then(res => {
  1195 + good = res.data.data;
  1196 + })
  1197 + if (!good) {
  1198 + // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
  1199 + // getApp().request.delete(url, {
  1200 + // success: function (t) {}
  1201 + // });
  1202 + th.disInvalid({
  1203 + ...item,
  1204 + original_img: good.imgUrl
  1205 + }, 1, 1);
  1206 + continue;
  1207 + }
  1208 +
  1209 + //如果商品下架了,或者商品是赠品,一开始都要清除
  1210 + if (good.is_show == 0) {
  1211 + // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
  1212 + // getApp().request.delete(url, {
  1213 + // success: function (t) {}
  1214 + // });
  1215 + th.disInvalid({
  1216 + ...item,
  1217 + original_img: good.imgUrl
  1218 + }, 1, 1);
  1219 + //商品已经下架
  1220 + continue;
  1221 + }
  1222 +
  1223 + if (item.prom_type == 0) {
  1224 + var prom = null;
  1225 + var now = ut.gettimestamp();
  1226 + await getApp().request.promiseGet(`/api/weshop/activitylist/listGoodActInfo2`, {
  1227 + data: {
  1228 + store_id: oo.stoid,
  1229 + goods_id: item.service_id,
  1230 + user_id: user_id,
  1231 + goods_type: 1,
  1232 + }
  1233 + }).then(res => {
  1234 + console.log('服务卡活动信息')
  1235 + console.log(res)
  1236 + console.log('服务卡活动信息-------------')
  1237 + if (res.data.code == 0) {
  1238 + prom = res.data.data
  1239 + }
  1240 + })
  1241 + if (prom) {
  1242 + th.disInvalid({
  1243 + ...item,
  1244 + original_img: good.imgUrl
  1245 + }, 2, 1)
  1246 + continue;
  1247 + }
  1248 + }
  1249 +
  1250 + if (item.prom_type == 1) {
  1251 + var prom = null;
  1252 + var now = ut.gettimestamp();
  1253 + await getApp().request.promiseGet('/api/ms/flash_sale/getNew/' + os.stoid + '/' + user_id + '/' + item.prom_id, {}).then(res => {
  1254 + if (res.data.code == 0) {
  1255 + prom = res.data.data;
  1256 + prom.price = prom.user_price;
  1257 + }
  1258 + });
  1259 + console.log('服务的秒杀信息')
  1260 + console.log(prom)
  1261 + //---如果互动都已经过期,或者还未开始,或者无活动
  1262 + if (!prom || prom.is_end == 1 || prom.end_time < now || prom.start_time > now) {
  1263 + th.disInvalid({
  1264 + ...item,
  1265 + original_img: good.imgUrl
  1266 + }, 0, 1);
  1267 + continue;
  1268 + }
  1269 + //判断秒杀的限购
  1270 + var msNum = 0
  1271 + await getApp().request.promiseGet("/api/weshop/rechargeServicelist/getUserBuyGoodsNum", {
  1272 + data: {
  1273 + store_id: os.stoid,
  1274 + user_id: user_id,
  1275 + card_id: prom.goods_id,
  1276 + }
  1277 + }).then(res => {
  1278 + if (res.data.code == 0) {
  1279 + msNum = res.data.data.cardbuynum
  1280 + console.log('秒杀限购:' + msNum)
  1281 + }
  1282 + })
  1283 + }
  1284 + if (msNum && (msNum >= prom.buy_limit)) {
  1285 + console.log('秒杀限购')
  1286 + th.disInvalid({
  1287 + ...item,
  1288 + original_img: good.imgUrl
  1289 + }, 2, 1)
  1290 + continue;
  1291 + }
  1292 +
  1293 + all_num += item.goods_num;
  1294 + item.img_url = oo.imghost + good.imgUrl;
  1295 + item.selected = 0;
  1296 +
  1297 +
  1298 + var pcid = item.pick_id;
  1299 + var find = 0;
  1300 + //---------循环查找门店---
  1301 + if (arr.length > 0) {
  1302 + for (var j = 0; j < arr.length; j++) {
  1303 + if (arr[j].pid == pcid) {
  1304 + arr[j].goods.push(item);
  1305 + find = 1;
  1306 + break;
  1307 + }
  1308 + }
  1309 + }
  1310 +
  1311 + //------如果没有找到-----
  1312 + if (find == 0) {
  1313 + var pikname = '';
  1314 + //找到门店名称
  1315 + for (var k = 0; k < th.data.allsto.length; k++) {
  1316 + if (pcid == th.data.allsto[k].pickup_id) {
  1317 + pikname = th.data.allsto[k].pickup_name;
  1318 + break;
  1319 + }
  1320 + }
  1321 + var narr = new Array();
  1322 + narr.push(item);
  1323 + var ie = {
  1324 + pid: pcid,
  1325 + pname: pikname,
  1326 + goods: narr,
  1327 + selected: 0
  1328 + };
  1329 + arr.push(ie);
  1330 + }
  1331 + }
  1332 + }
  1333 +
  1334 + // console.log('BBBBBB', all_num);
  1335 + th.setData({
  1336 + service_data: arr,
  1337 + all_num2: all_num,
  1338 + is_edit: 0
  1339 + }),
  1340 + th.doCheckAll(), wx.stopPullDownRefresh();
  1341 +
  1342 + }
  1343 + });
  1344 + },
  1345 +
  1346 + async getUserBuyPromNum(prom_id) {
  1347 + var userInfo = getApp().globalData.userInfo;
  1348 + var url = `/api/weshop/ordergoods/getUserBuyPromNum?store_id=${os.stoid}&user_id=${userInfo.user_id}&prom_type=7&prom_id=${prom_id}`;
  1349 + let res = await getApp().request.promiseGet(url, {
  1350 + data: {}
  1351 + });
  1352 + let userbuynum = 0
  1353 + if (res.data.code == 0 && res.data.data) {
  1354 + userbuynum = res.data.data.userbuynum
  1355 + }
  1356 + return userbuynum
  1357 + },
  1358 +
  1359 + //设置莫个门店的所有线下价格
  1360 + async set_offline(list) {
  1361 + var th = this;
  1362 + var userInfo = getApp().globalData.userInfo;
  1363 + //组织一下商品,然后进行线下价格的赋值
  1364 + var wlist = "";
  1365 + for (var i in list.goods) {
  1366 + //如果商品有促销活动
  1367 + if (list.goods[i].prom_type > 0 && list.goods[i].prom_type != 7) continue;
  1368 + wlist += encodeURIComponent(list.goods[i].erpwareid) + ",";
  1369 + }
  1370 + wlist = ut.sub_last(wlist);
  1371 + //调用接口进行赋值
  1372 + await getApp().request.promiseGet("/api/weshop/goods/listWarePrice", {
  1373 + data: {
  1374 + store_id: os.stoid,
  1375 + PickupId: list.pid,
  1376 + WareIds: wlist,
  1377 + VIPId: encodeURIComponent(userInfo.erpvipid)
  1378 + }
  1379 + }).then(res => {
  1380 + if (res.data.code == 0 && res.data.data && res.data.data.length > 0) {
  1381 + for (var e in res.data.data) {
  1382 + th.set_cart_offline_price(res.data.data[e], list.goods);
  1383 + }
  1384 + }
  1385 + })
  1386 + },
  1387 +
  1388 + //-- 设置购物车线下 --
  1389 + set_cart_offline_price: function (data, glist) {
  1390 + for (var i in glist) {
  1391 + if (glist[i].erpwareid == data.WareId && (glist[i].prom_type == 0 || glist[i].prom_type == 7)) {
  1392 + if (glist[i].goods_price >= data.WarePrice) {
  1393 + glist[i].is_offline = 1;
  1394 + glist[i].offline_price = data.WarePrice;
  1395 + glist[i].pricing_type = data.PriceType;
  1396 + }
  1397 + }
  1398 + }
  1399 + },
  1400 +
  1401 +
  1402 + //删除商品
  1403 + delete_th_item: function (t) {
  1404 + var e = this;
  1405 + var a = rq;
  1406 + console.log(a);
  1407 + wx.showModal({
  1408 + title: "确定删除?",
  1409 + success: function (s) {
  1410 + if (s.confirm) {
  1411 + var r = t.currentTarget.dataset.cartid;
  1412 + var url = '/api/weshop/cart/del/' + oo.stoid + '/' + r;
  1413 + a.delete(url, {
  1414 + success: function (t) {
  1415 + e.getCardList();
  1416 + }
  1417 + });
  1418 + }
  1419 + }
  1420 + });
  1421 + },
  1422 +
  1423 + //-----------------点击输入修改商品数量---------------
  1424 + valueToNum: function (t) {
  1425 + if (!this.data.is_load) return false;
  1426 + //控制住,避免事件响应冲突,只有input有输入的时候,才刷新
  1427 + if (this.data.btn_click) {
  1428 + return false;
  1429 + }
  1430 + this.data.btn_click = 1;
  1431 +
  1432 + var a = t.currentTarget.dataset.item;
  1433 + var b = t.currentTarget.dataset.pitems;
  1434 + a = this.data.requestData[b].goods[a];
  1435 + var e = a;
  1436 + var th = this;
  1437 +
  1438 + if (a = isNaN(t.detail.value) || t.detail.value < 1 ? 1 : parseInt(t.detail.value)) {
  1439 + var s = {
  1440 + goods_num: a,
  1441 + goods_id: e.goods_id,
  1442 + id: e.id,
  1443 + store_id: oo.stoid
  1444 + };
  1445 + th.postCardList(s, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems);
  1446 + }
  1447 + },
  1448 +
  1449 + //-------------加数量---------------------
  1450 + addNum: function (t) {
  1451 + if (!this.data.is_load) return false;
  1452 + if (this.data.up_dating == 1) return false;
  1453 + this.data.up_dating = 1;
  1454 +
  1455 + var a = t.currentTarget.dataset.item;
  1456 + var b = t.currentTarget.dataset.pitems;
  1457 + a = this.data.requestData[b].goods[a];
  1458 +
  1459 + console.log('add+');
  1460 +
  1461 + if (this.data.sales_rules < 2 || a.whsle_id || [1, 2, 4, 6, 8, 9].indexOf(a.prom_type) > -1) {
  1462 +
  1463 + if (a.goods_num > a.store_count) {
  1464 + console.log('购买的数量不能-----');
  1465 + // wx.showModal({
  1466 + // title: '提示',
  1467 + // content: '购买的数量不能超出库存数量',
  1468 + // });
  1469 + wx.showToast({
  1470 + title: '购买的数量不能超出库存数量',
  1471 + icon: 'none',
  1472 + });
  1473 + // getApp().my_warnning('购买的数量不能超出库存数量', 0, this);
  1474 + this.data.up_dating = 0;
  1475 +
  1476 + return false;
  1477 + }
  1478 + }
  1479 +
  1480 +
  1481 + var e = {
  1482 + goods_num: a.goods_num + 1,
  1483 + id: a.id,
  1484 + goods_id: a.goods_id,
  1485 + store_id: oo.stoid
  1486 + };
  1487 + // console.log('goods_num', e.goods_num);
  1488 + this.postCardList(e, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems);
  1489 +
  1490 + },
  1491 + //-------------减数量---------------------
  1492 + subNum: function (t) {
  1493 + if (!this.data.is_load) return false;
  1494 + if (this.data.up_dating == 1) return false;
  1495 + this.data.up_dating = 1;
  1496 +
  1497 + var a = t.currentTarget.dataset.item;
  1498 + var b = t.currentTarget.dataset.pitems;
  1499 + a = this.data.requestData[b].goods[a];
  1500 + this.data.btn_click = 1;
  1501 +
  1502 + if (a.goods_num - 1 < 0) {
  1503 + this.data.up_dating = 0;
  1504 + return false;
  1505 + }
  1506 +
  1507 +
  1508 +
  1509 + if (1 != a.goods_num) {
  1510 + var e = {
  1511 + goods_num: a.goods_num - 1,
  1512 + id: a.id,
  1513 + goods_id: a.goods_id,
  1514 + store_id: oo.stoid
  1515 + };
  1516 + this.postCardList(e, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems);
  1517 + }
  1518 + },
  1519 +
  1520 +
  1521 + //-----------------点击输入修改商品数量---------------
  1522 + valueToNum_ser: function (t) {
  1523 + if (!this.data.is_load) return false;
  1524 + //控制住,避免事件响应冲突,只有input有输入的时候,才刷新
  1525 + if (this.data.btn_click) {
  1526 + return false;
  1527 + }
  1528 + this.data.btn_click = 1;
  1529 +
  1530 + var a = t.currentTarget.dataset.item;
  1531 + var b = t.currentTarget.dataset.pitems;
  1532 + a = this.data.service_data[b].goods[a];
  1533 + var e = a;
  1534 + var th = this;
  1535 +
  1536 + if (a = isNaN(t.detail.value) || t.detail.value < 1 ? 1 : parseInt(t.detail.value)) {
  1537 + var s = {
  1538 + goods_num: a,
  1539 + goods_id: e.service_id,
  1540 + id: e.id,
  1541 + store_id: oo.stoid,
  1542 + is_pd_normal: e.is_pd_normal
  1543 + };
  1544 + if (e.prom_type) {
  1545 + s.prom_type = e.prom_type;
  1546 + };
  1547 + if (e.prom_id) {
  1548 + s.prom_id = e.prom_id;
  1549 + };
  1550 + if (e.is_pd_normal) {
  1551 + s.is_pd_normal = e.is_pd_normal;
  1552 + };
  1553 + if (e.service_id) {
  1554 + s.card_id = e.service_id;
  1555 + };
  1556 + th.postCardList_ser(s, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems);
  1557 + }
  1558 + },
  1559 + //-------------加数量---------------------
  1560 + addNum_ser: function (t) {
  1561 + if (!this.data.is_load) return false;
  1562 + if (this.data.up_dating == 1) return false;
  1563 + // this.data.up_dating = 1;
  1564 +
  1565 + var a = t.currentTarget.dataset.item;
  1566 + var b = t.currentTarget.dataset.pitems;
  1567 + a = this.data.service_data[b].goods[a];
  1568 +
  1569 + var e = {
  1570 + goods_num: a.goods_num + 1,
  1571 + id: a.id,
  1572 + goods_id: a.service_id,
  1573 + store_id: oo.stoid,
  1574 + is_pd_normal: a.is_pd_normal
  1575 + };
  1576 + if (a.prom_type) {
  1577 + e.prom_type = a.prom_type;
  1578 + };
  1579 + if (a.prom_id) {
  1580 + e.prom_id = a.prom_id;
  1581 + };
  1582 + if (a.is_pd_normal) {
  1583 + e.is_pd_normal = a.is_pd_normal;
  1584 + };
  1585 + if (a.service_id) {
  1586 + e.card_id = a.service_id;
  1587 + };
  1588 + this.postCardList_ser(e, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems);
  1589 +
  1590 + },
  1591 + //-------------减数量---------------------
  1592 + subNum_ser: function (t) {
  1593 +
  1594 + if (!this.data.is_load) return false;
  1595 + if (this.data.up_dating == 1) return false;
  1596 + // this.data.up_dating = 1;
  1597 +
  1598 + var a = t.currentTarget.dataset.item;
  1599 + var b = t.currentTarget.dataset.pitems;
  1600 + a = this.data.service_data[b].goods[a];
  1601 + this.data.btn_click = 1;
  1602 +
  1603 + if (a.goods_num - 1 <= 0) {
  1604 + this.data.up_dating = 0;
  1605 + return false;
  1606 + }
  1607 +
  1608 + if (1 != a.goods_num) {
  1609 + var e = {
  1610 + goods_num: a.goods_num - 1,
  1611 + id: a.id,
  1612 + goods_id: a.service_id,
  1613 + store_id: oo.stoid,
  1614 + is_pd_normal: a.is_pd_normal
  1615 + };
  1616 +
  1617 + this.postCardList_ser(e, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems);
  1618 + }
  1619 + },
  1620 +
  1621 +
  1622 + //---------------全选,全选的时候要判断是否门店的匹配方式一致--------------
  1623 + checkAll: function () {
  1624 + var e = this,
  1625 + th = this,
  1626 + dda = e.data.requestData,
  1627 + sdda = e.data.service_data,
  1628 + tfeel = 0,
  1629 + t_num = 0,
  1630 + text_arr = "";
  1631 +
  1632 + if (e.data.requestData && e.data.requestData.length > 0 &&
  1633 + e.data.service_data && e.data.service_data.length > 0) {
  1634 + wx.showModal({
  1635 + title: '提示',
  1636 + content: '服务卡项目不能和商品一起选择'
  1637 + });
  1638 + return false;
  1639 + }
  1640 +
  1641 + this.data.btn_click = 1;
  1642 +
  1643 +
  1644 +
  1645 + var offline_price = 0;
  1646 + var offline_num = 0;
  1647 + th.data.in_zhact_gdmap = {};
  1648 +
  1649 +
  1650 + if (dda && dda.length > 0) {
  1651 + for (var i = 0; i < dda.length; i++) {
  1652 + var item = dda[i].goods;
  1653 +
  1654 + if (e.data.checkAllToggle) {
  1655 + var txt = "requestData[" + i + "].selected";
  1656 + e.setData({
  1657 + [txt]: 0,
  1658 + });
  1659 + }
  1660 + var fir = 0;
  1661 + for (var j = 0; j < item.length; j++) {
  1662 + if (item[j].is_gift) continue;
  1663 +
  1664 + var obj = JSON.parse(JSON.stringify(item[j]));
  1665 + //计算之前先移除组合购的计算
  1666 + if (obj.prom_type == 7)
  1667 + zh_calc.remove_zhprom(dda, i, obj);
  1668 + //计算之前先移除阶梯购的计算
  1669 + if (obj.prom_type == 10)
  1670 + ladder_calc.remove_ladder_prom(dda, i, obj);
  1671 +
  1672 +
  1673 + if (fir == 0) {
  1674 + fir = item[j].distr_type;
  1675 + } else {
  1676 + //如果同一门店有不同门店的商品,不能同一配送
  1677 + if (fir != item[j].distr_type && !e.data.checkAllToggle && item[j].distr_type != 0) {
  1678 + text_arr += item[j].goods_name + " ";
  1679 + break;
  1680 + }
  1681 + }
  1682 + var txt = "requestData[" + i + "].goods[" + j + "].selected";
  1683 +
  1684 + if (e.data.checkAllToggle) obj.goods_num = 0;
  1685 +
  1686 + //加入组合购计算
  1687 + if (obj.prom_type == 7) zh_calc.add_zhprom(dda, i, obj);
  1688 + //加入阶梯促销计算
  1689 + if (obj.prom_type == 10) ladder_calc.add_ladder_prom(dda, i, obj);
  1690 +
  1691 + e.setData({
  1692 +
  1693 + [txt]: !e.data.checkAllToggle,
  1694 + })
  1695 +
  1696 + if (!e.data.checkAllToggle) {
  1697 + //组合购的金额要另外算
  1698 + if (item[j].prom_type != 7 && item[j].prom_type != 10)
  1699 + tfeel += item[j].goods_num * item[j].goods_price;
  1700 + t_num += item[j].goods_num;
  1701 + }
  1702 +
  1703 + //-- 如果这个商品是线下取价的时候 --
  1704 + if (item[j].is_offline && item[j].prom_type != 7) {
  1705 + offline_price += (item[j].goods_price - item[j].offline_price) * item[j].goods_num;
  1706 + offline_num += item[j].goods_num;
  1707 + }
  1708 +
  1709 + }
  1710 + }
  1711 +
  1712 +
  1713 + if (text_arr != "") {
  1714 + wx.showModal({
  1715 + title: '提示',
  1716 + content: text_arr + '不能与门店中其他商品一起结算,配送方式不一致'
  1717 + });
  1718 + return false;
  1719 + } else {
  1720 +
  1721 + for (var i = 0; i < dda.length; i++) {
  1722 +
  1723 + if (!e.data.checkAllToggle) {
  1724 + var txt = "requestData[" + i + "].selected";
  1725 + e.setData({
  1726 + [txt]: 1,
  1727 + });
  1728 + }
  1729 +
  1730 + //总的价格,把组合商品的价格拿出来
  1731 + var zh_calc_res = zh_calc.calculate_zh(dda, i, this);
  1732 + tfeel += zh_calc_res.tfeel;
  1733 + offline_price += zh_calc_res.offline_price;
  1734 + offline_num += zh_calc_res.offline_num;
  1735 +
  1736 + //总的价格,把阶梯促销的商品的价格拿出来
  1737 + var ladder_calc_res = ladder_calc.calculate_ladder(dda, i, this);
  1738 + tfeel += ladder_calc_res.tfeel;
  1739 + offline_price += ladder_calc_res.offline_price;
  1740 + offline_num += ladder_calc_res.offline_num;
  1741 +
  1742 + //当有线下取价的时候
  1743 + if (offline_price) {
  1744 + var txt1 = "requestData[" + i + "].offline_price";
  1745 + var txt2 = "requestData[" + i + "].offline_num";
  1746 + th.setData({
  1747 + [txt1]: offline_price.toFixed(2),
  1748 + [txt2]: offline_num,
  1749 + });
  1750 + } else {
  1751 + if (dda[i].offline_price > 0) {
  1752 + var txt1 = "requestData[" + i + "].offline_price";
  1753 + var txt2 = "requestData[" + i + "].offline_num";
  1754 + th.setData({
  1755 + [txt1]: 0,
  1756 + [txt2]: 0
  1757 + });
  1758 + }
  1759 + }
  1760 + }
  1761 +
  1762 + e.setData({
  1763 + checkAllToggle: !e.data.checkAllToggle,
  1764 + total_fee: tfeel.toFixed(2),
  1765 + total_num: t_num,
  1766 + });
  1767 +
  1768 + e.all_check_prom_activity();
  1769 +
  1770 + }
  1771 + }
  1772 +
  1773 + if (sdda && sdda.length > 0) {
  1774 + for (var i = 0; i < sdda.length; i++) {
  1775 + var item = sdda[i].goods;
  1776 + if (e.data.checkAllToggle) {
  1777 + var txt = "service_data[" + i + "].selected";
  1778 + e.setData({
  1779 + [txt]: 0,
  1780 + });
  1781 + }
  1782 + var fir = 0;
  1783 + for (var j = 0; j < item.length; j++) {
  1784 + var txt = "service_data[" + i + "].goods[" + j + "].selected"
  1785 + e.setData({
  1786 + [txt]: !e.data.checkAllToggle ? 1 : 0,
  1787 + })
  1788 +
  1789 + if (!e.data.checkAllToggle) {
  1790 + tfeel += item[j].goods_num * item[j].money;
  1791 + t_num += item[j].goods_num;
  1792 + }
  1793 + }
  1794 + }
  1795 + e.setData({
  1796 + checkAllToggle: !e.data.checkAllToggle,
  1797 + total_fee: tfeel.toFixed(2),
  1798 + total_num: t_num,
  1799 + });
  1800 + }
  1801 +
  1802 + },
  1803 + //------门店全选按钮,要判断是否门店的匹配方式一致---------
  1804 + check_th_all_item: async function (ele) {
  1805 + var e = this, th = this,
  1806 + pitems = ele.currentTarget.dataset.pitems,
  1807 + item = this.data.requestData[pitems].goods,
  1808 + sele = this.data.requestData[pitems].selected;
  1809 + this.data.btn_click = 1;
  1810 + var garr = e.data.service_data;
  1811 +
  1812 + var isok = 1,
  1813 + fir = 0,
  1814 + iarr = item;
  1815 +
  1816 + if (!sele) {
  1817 + var check_is_service_selected = 0;
  1818 + for (var ii in garr) {
  1819 + for (var ij in garr[ii].goods) {
  1820 + if (garr[ii].goods[ij].selected) {
  1821 + check_is_service_selected = 1;
  1822 + break;
  1823 + }
  1824 + }
  1825 + }
  1826 +
  1827 + if (check_is_service_selected) {
  1828 + wx.showModal({
  1829 + title: '提示',
  1830 + content: '服务卡项目不能和商品一起选择'
  1831 + });
  1832 + return false;
  1833 + }
  1834 + }
  1835 +
  1836 + if (!sele && item.length > 0) {
  1837 + for (var i = 0; i < iarr.length; i++) {
  1838 + if (iarr[i].is_gift == 1) continue;
  1839 + if (iarr[i].distr_type != 0) {
  1840 + if (fir == 0) {
  1841 + fir = iarr[i].distr_type;
  1842 + } else {
  1843 + if (fir != iarr[i].distr_type && iarr[i].distr_type != 0) {
  1844 + isok = 0;
  1845 + break;
  1846 + }
  1847 + }
  1848 + }
  1849 + }
  1850 + }
  1851 +
  1852 + if (!isok) {
  1853 + wx.showModal({
  1854 + title: '提示',
  1855 + content: '同一门店自提和物流的商品不能同时结算'
  1856 + });
  1857 + return false;
  1858 + }
  1859 +
  1860 + for (var i = 0; i < item.length; i++) {
  1861 + var txt = "requestData[" + pitems + "].goods[" + i + "].selected";
  1862 +
  1863 + var gd_info = item[i];
  1864 + if (th.data.sales_rules >= 2 && !gd_info.whsle_id && [1, 2, 4, 6, 8, 9].indexOf(gd_info.prom_type) == -1 && !gd_info.selected) {
  1865 + var ob = {};
  1866 + await th.check_down_line_next(gd_info, pitems, i, gd_info.erpwareid, function (res) {
  1867 + ob = res;
  1868 + });
  1869 +
  1870 + if (ob.code == -1) {
1306 1871  
1307   - // console.log('BBBBBB', all_num);
1308   - th.setData({
1309   - service_data: arr,
1310   - all_num2: all_num,
1311   - is_edit: 0
1312   - }),
1313   - th.doCheckAll(), wx.stopPullDownRefresh();
  1872 + wx.showToast({
  1873 + title: '购买数量超出商品库存',
  1874 + icon: 'none',
  1875 + });
1314 1876  
  1877 + return false;
  1878 + } else {
  1879 + if (th.data.sales_rules == 3) {
  1880 + var goods_id = gd_info.goods_id;
  1881 + var num = 0;
  1882 +
  1883 + for (let i = 0; i < th.data.requestData.length; i++) {
  1884 + if (pitems == i) continue;
  1885 + var it = th.data.requestData[i].goods.find((e) => {
  1886 + return e.goods_id == goods_id;
  1887 + })
  1888 + if (it && it.selected) num += it.goods_num
1315 1889 }
1316   - });
1317   - },
1318 1890  
1319   - async getUserBuyPromNum(prom_id){
1320   - var userInfo = getApp().globalData.userInfo;
1321   - var url = `/api/weshop/ordergoods/getUserBuyPromNum?store_id=${os.stoid}&user_id=${userInfo.user_id}&prom_type=7&prom_id=${prom_id}`;
1322   - let res = await getApp().request.promiseGet(url, {
1323   - data:{}
1324   - });
1325   - let userbuynum=0
1326   - if(res.data.code==0 && res.data.data){
1327   - userbuynum=res.data.data.userbuynum
1328   - }
1329   - return userbuynum
1330   - },
1331   -
1332   - //设置莫个门店的所有线下价格
1333   - async set_offline(list) {
1334   - var th = this;
1335   - var userInfo = getApp().globalData.userInfo;
1336   - //组织一下商品,然后进行线下价格的赋值
1337   - var wlist = "";
1338   - for (var i in list.goods) {
1339   - //如果商品有促销活动
1340   - if (list.goods[i].prom_type > 0 && list.goods[i].prom_type != 7) continue;
1341   - wlist += encodeURIComponent(list.goods[i].erpwareid) + ",";
1342   - }
1343   - wlist = ut.sub_last(wlist);
1344   - //调用接口进行赋值
1345   - await getApp().request.promiseGet("/api/weshop/goods/listWarePrice", {
1346   - data: {
1347   - store_id: os.stoid,
1348   - PickupId: list.pid,
1349   - WareIds: wlist,
1350   - VIPId: encodeURIComponent(userInfo.erpvipid)
1351   - }
1352   - }).then(res => {
1353   - if (res.data.code == 0 && res.data.data && res.data.data.length > 0) {
1354   - for (var e in res.data.data) {
1355   - th.set_cart_offline_price(res.data.data[e], list.goods);
1356   - }
1357   - }
1358   - })
1359   - },
1360   -
1361   - //-- 设置购物车线下 --
1362   - set_cart_offline_price: function (data, glist) {
1363   - for (var i in glist) {
1364   - if (glist[i].erpwareid == data.WareId && (glist[i].prom_type == 0 || glist[i].prom_type == 7)) {
1365   - if (glist[i].goods_price >= data.WarePrice) {
1366   - glist[i].is_offline = 1;
1367   - glist[i].offline_price = data.WarePrice;
1368   - glist[i].pricing_type = data.PriceType;
1369   - }
  1891 + if (num > ob.CanOutQty) {
  1892 + wx.showToast({
  1893 + title: '购买数量超出商品库存',
  1894 + icon: 'none',
  1895 + });
  1896 +
  1897 + return false;
1370 1898 }
  1899 + }
1371 1900 }
1372   - },
  1901 +
  1902 + }
  1903 +
1373 1904  
1374 1905  
1375   - //删除商品
1376   - delete_th_item: function (t) {
1377   - var e = this;
1378   - var a = rq;
1379   - console.log(a);
  1906 + e.setData({
  1907 + [txt]: Number(!sele),
  1908 + });
  1909 + }
  1910 + var txt = "requestData[" + pitems + "].selected";
  1911 + e.setData({
  1912 + [txt]: Number(!sele),
  1913 + });
  1914 +
  1915 + e.data.duo_zp_num_arr = {};
  1916 + if (sele) {
  1917 + await e.check_prom_activity(pitems);
  1918 + }
  1919 + for (var i in e.data.requestData) {
  1920 + if (sele && i == pitems) continue;
  1921 + await e.check_prom_activity(i);
  1922 + }
  1923 + this.doCheckAll();
  1924 + },
  1925 + //---------------单选,也要判断门店的配送方式是否一致--------------
  1926 + check_th_item: async function (t) {
  1927 + var e = this, th = this,
  1928 + item = t.currentTarget.dataset.item,
  1929 + pitems = t.currentTarget.dataset.pitems;
  1930 + a = this.data.requestData[pitems].goods[item];
  1931 + var isok = 1,
  1932 + fir = 0;
  1933 + var iarr = e.data.requestData[pitems].goods;
  1934 + this.data.btn_click = 1;
  1935 + var garr = e.data.service_data;
  1936 +
  1937 + if (!a.selected) {
  1938 + var check_is_service_selected = 0;
  1939 + for (var ii in garr) {
  1940 + for (var ij in garr[ii].goods) {
  1941 + if (garr[ii].goods[ij].selected) {
  1942 + check_is_service_selected = 1;
  1943 + break;
  1944 + }
  1945 + }
  1946 + }
  1947 + if (check_is_service_selected) {
1380 1948 wx.showModal({
1381   - title: "确定删除?",
1382   - success: function (s) {
1383   - if (s.confirm) {
1384   - var r = t.currentTarget.dataset.cartid;
1385   - var url = '/api/weshop/cart/del/' + oo.stoid + '/' + r;
1386   - a.delete(url, {
1387   - success: function (t) {
1388   - e.getCardList();
1389   - }
1390   - });
1391   - }
1392   - }
  1949 + title: '提示',
  1950 + content: '服务卡项目不能和商品一起选择'
1393 1951 });
1394   - },
1395   -
1396   - //-----------------点击输入修改商品数量---------------
1397   - valueToNum: function (t) {
1398   - if (!this.data.is_load) return false;
1399   - //控制住,避免事件响应冲突,只有input有输入的时候,才刷新
1400   - if (this.data.btn_click) {
1401   - return false;
1402   - }
1403   - this.data.btn_click = 1;
1404   -
1405   - var a = t.currentTarget.dataset.item;
1406   - var b = t.currentTarget.dataset.pitems;
1407   - a = this.data.requestData[b].goods[a];
1408   - var e = a;
1409   - var th = this;
1410   -
1411   - if (a = isNaN(t.detail.value) || t.detail.value < 1 ? 1 : parseInt(t.detail.value)) {
1412   - var s = {
1413   - goods_num: a,
1414   - goods_id: e.goods_id,
1415   - id: e.id,
1416   - store_id: oo.stoid
1417   - };
1418   - th.postCardList(s, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems);
  1952 + return false;
  1953 + }
  1954 + }
  1955 +
  1956 + //当数量大于1,且是选择的时候
  1957 + if (iarr.length > 1 && !a.selected) {
  1958 +
  1959 + for (var i = 0; i < iarr.length; i++) {
  1960 + if (iarr[i].is_gift == 1) continue;
  1961 + //---当不是本身选择项目----
  1962 + var sel = iarr[i].selected;
  1963 + if (iarr[i].distr_type != 0 && (sel || iarr[i].id == a.id)) {
  1964 + if (fir == 0) {
  1965 + fir = iarr[i].distr_type;
  1966 + } else {
  1967 + if (fir != iarr[i].distr_type && iarr[i].distr_type != 0) {
  1968 + isok = 0;
  1969 + break;
  1970 + }
  1971 + }
1419 1972 }
1420   - },
  1973 + }
  1974 + }
  1975 + if (!isok) {
  1976 + wx.showModal({
  1977 + title: '提示',
  1978 + content: '同一门店自提和物流的商品不能同时结算'
  1979 + });
  1980 + } else {
  1981 + var txt = "requestData[" + pitems + "].goods[" + item + "].selected";
  1982 + var gd_info = a;
1421 1983  
1422   - //-------------加数量---------------------
1423   - addNum: function (t) {
1424   - if (!this.data.is_load) return false;
1425   - if (this.data.up_dating == 1) return false;
1426   - this.data.up_dating = 1;
  1984 + var erpwareid = gd_info.erpwareid;
  1985 + if (th.data.sales_rules >= 2 && !gd_info.whsle_id && [1, 2, 4, 6, 8, 9].indexOf(gd_info.prom_type) == -1 && !a.selected) {
  1986 + var ob = {};
  1987 + await th.check_down_line_next(gd_info, pitems, item, erpwareid, function (res) {
  1988 + ob = res;
  1989 + });
1427 1990  
1428   - var a = t.currentTarget.dataset.item;
1429   - var b = t.currentTarget.dataset.pitems;
1430   - a = this.data.requestData[b].goods[a];
  1991 + if (ob.code == -1) {
1431 1992  
1432   - console.log('add+');
1433   -
1434   - if(this.data.sales_rules <2 || a.whsle_id || [1,2,4,6,8,9].indexOf(a.prom_type)>-1 ) {
1435   -
1436   - if (a.goods_num > a.store_count) {
1437   - console.log('购买的数量不能-----');
1438   - // wx.showModal({
1439   - // title: '提示',
1440   - // content: '购买的数量不能超出库存数量',
1441   - // });
1442   - wx.showToast({
1443   - title: '购买的数量不能超出库存数量',
1444   - icon: 'none',
1445   - });
1446   - // getApp().my_warnning('购买的数量不能超出库存数量', 0, this);
1447   - this.data.up_dating = 0;
1448   -
1449   - return false;
1450   - }
  1993 + wx.showToast({
  1994 + title: '购买数量超出商品库存',
  1995 + icon: 'none',
  1996 + });
  1997 +
  1998 + return false;
  1999 + } else {
  2000 + if (th.data.sales_rules == 3) {
  2001 + var goods_id = gd_info.goods_id;
  2002 + var num = 0;
  2003 +
  2004 + for (let i = 0; i < th.data.requestData.length; i++) {
  2005 + if (pitems == i) continue;
  2006 + var it = th.data.requestData[i].goods.find((e) => {
  2007 + return e.goods_id == goods_id;
  2008 + })
  2009 + if (it && it.selected) num += it.goods_num
1451 2010 }
1452 2011  
  2012 + if (num > ob.CanOutQty) {
  2013 + wx.showToast({
  2014 + title: '购买数量超出商品库存',
  2015 + icon: 'none',
  2016 + });
1453 2017  
1454   - var e = {
1455   - goods_num: a.goods_num + 1,
1456   - id: a.id,
1457   - goods_id: a.goods_id,
1458   - store_id: oo.stoid
1459   - };
1460   - // console.log('goods_num', e.goods_num);
1461   - this.postCardList(e, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems);
1462   -
1463   - },
1464   - //-------------减数量---------------------
1465   - subNum: function (t) {
1466   - if (!this.data.is_load) return false;
1467   - if (this.data.up_dating == 1) return false;
1468   - this.data.up_dating = 1;
1469   -
1470   - var a = t.currentTarget.dataset.item;
1471   - var b = t.currentTarget.dataset.pitems;
1472   - a = this.data.requestData[b].goods[a];
1473   - this.data.btn_click = 1;
1474   -
1475   - if (a.goods_num - 1 < 0) {
1476   - this.data.up_dating = 0;
1477   - return false;
  2018 + return false;
  2019 + }
  2020 + }
1478 2021 }
1479 2022  
  2023 + }
1480 2024  
1481 2025  
1482   - if (1 != a.goods_num) {
1483   - var e = {
1484   - goods_num: a.goods_num - 1,
1485   - id: a.id,
1486   - goods_id: a.goods_id,
1487   - store_id: oo.stoid
1488   - };
1489   - this.postCardList(e, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems);
1490   - }
1491   - },
1492 2026  
  2027 + e.setData({
  2028 + [txt]: Number(!a.selected),
  2029 + });
1493 2030  
1494   - //-----------------点击输入修改商品数量---------------
1495   - valueToNum_ser: function (t) {
1496   - if (!this.data.is_load) return false;
1497   - //控制住,避免事件响应冲突,只有input有输入的时候,才刷新
1498   - if (this.data.btn_click) {
1499   - return false;
1500   - }
1501   - this.data.btn_click = 1;
1502   -
1503   - var a = t.currentTarget.dataset.item;
1504   - var b = t.currentTarget.dataset.pitems;
1505   - a = this.data.service_data[b].goods[a];
1506   - var e = a;
1507   - var th = this;
1508   -
1509   - if (a = isNaN(t.detail.value) || t.detail.value < 1 ? 1 : parseInt(t.detail.value)) {
1510   - var s = {
1511   - goods_num: a,
1512   - goods_id: e.service_id,
1513   - id: e.id,
1514   - store_id: oo.stoid,
1515   - is_pd_normal: e.is_pd_normal
1516   - };
1517   - if(e.prom_type) {
1518   - s.prom_type = e.prom_type;
1519   - };
1520   - if(e.prom_id) {
1521   - s.prom_id = e.prom_id;
1522   - };
1523   - if(e.is_pd_normal) {
1524   - s.is_pd_normal = e.is_pd_normal;
1525   - };
1526   - if(e.service_id) {
1527   - s.card_id = e.service_id;
1528   - };
1529   - th.postCardList_ser(s, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems);
  2031 + if (a.prom_type == 3) {
  2032 + e.data.duo_zp_num_arr = {};
  2033 + if (!a.selected) {
  2034 + await e.check_prom_activity(pitems);
1530 2035 }
1531   - },
1532   - //-------------加数量---------------------
1533   - addNum_ser: function (t) {
1534   - if (!this.data.is_load) return false;
1535   - if (this.data.up_dating == 1) return false;
1536   - // this.data.up_dating = 1;
1537   -
1538   - var a = t.currentTarget.dataset.item;
1539   - var b = t.currentTarget.dataset.pitems;
1540   - a = this.data.service_data[b].goods[a];
1541   -
1542   - var e = {
1543   - goods_num: a.goods_num + 1,
1544   - id: a.id,
1545   - goods_id: a.service_id,
1546   - store_id: oo.stoid,
1547   - is_pd_normal: a.is_pd_normal
1548   - };
1549   - if(a.prom_type) {
1550   - e.prom_type = a.prom_type;
1551   - };
1552   - if(a.prom_id) {
1553   - e.prom_id = a.prom_id;
1554   - };
1555   - if(a.is_pd_normal) {
1556   - e.is_pd_normal = a.is_pd_normal;
1557   - };
1558   - if(a.service_id) {
1559   - e.card_id = a.service_id;
1560   - };
1561   - this.postCardList_ser(e, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems);
1562   -
1563   - },
1564   - //-------------减数量---------------------
1565   - subNum_ser: function (t) {
1566   -
1567   - if (!this.data.is_load) return false;
1568   - if (this.data.up_dating == 1) return false;
1569   - // this.data.up_dating = 1;
1570   -
1571   - var a = t.currentTarget.dataset.item;
1572   - var b = t.currentTarget.dataset.pitems;
1573   - a = this.data.service_data[b].goods[a];
1574   - this.data.btn_click = 1;
1575   -
1576   - if (a.goods_num - 1 <= 0) {
1577   - this.data.up_dating = 0;
1578   - return false;
  2036 + //判断商品是不是优惠活动
  2037 + for (var i in e.data.requestData) {
  2038 + if (!a.selected && i == pitems) continue;
  2039 + await e.check_prom_activity(i);
1579 2040 }
  2041 + }
  2042 + this.doCheckAll();
  2043 + }
  2044 + },
1580 2045  
1581   - if (1 != a.goods_num) {
1582   - var e = {
1583   - goods_num: a.goods_num - 1,
1584   - id: a.id,
1585   - goods_id: a.service_id,
1586   - store_id: oo.stoid,
1587   - is_pd_normal: a.is_pd_normal
1588   - };
1589   -
1590   - this.postCardList_ser(e, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems);
  2046 + //------门店全选按钮,要判断是否门店的匹配方式一致---------
  2047 + check_th_all_item_ser: async function (ele) {
  2048 + var e = this,
  2049 + pitems = ele.currentTarget.dataset.pitems,
  2050 + item = this.data.service_data[pitems].goods,
  2051 + sele = this.data.service_data[pitems].selected;
  2052 + this.data.btn_click = 1;
  2053 + var garr = e.data.requestData;
  2054 +
  2055 + var isok = 1,
  2056 + fir = 0,
  2057 + iarr = item;
  2058 +
  2059 + if (!sele) {
  2060 + var check_is_goods_selected = 0;
  2061 + for (var ii in garr) {
  2062 + for (var ij in garr[ii].goods) {
  2063 + if (garr[ii].goods[ij].selected) {
  2064 + check_is_goods_selected = 1;
  2065 + break;
  2066 + }
1591 2067 }
1592   - },
1593   -
1594   -
1595   - //---------------全选,全选的时候要判断是否门店的匹配方式一致--------------
1596   - checkAll: function () {
1597   - var e = this,
1598   - th = this,
1599   - dda = e.data.requestData,
1600   - sdda = e.data.service_data,
1601   - tfeel = 0,
1602   - t_num = 0,
1603   - text_arr = "";
1604   -
1605   - if (e.data.requestData && e.data.requestData.length > 0 &&
1606   - e.data.service_data && e.data.service_data.length > 0) {
1607   - wx.showModal({
1608   - title: '提示',
1609   - content: '服务卡项目不能和商品一起选择'
1610   - });
1611   - return false;
  2068 + }
  2069 + if (check_is_goods_selected) {
  2070 + wx.showModal({
  2071 + title: '提示',
  2072 + content: '服务卡项目不能和商品一起选择'
  2073 + });
  2074 + return false;
  2075 + }
  2076 + }
  2077 +
  2078 + for (var i = 0; i < item.length; i++) {
  2079 + var txt = "service_data[" + pitems + "].goods[" + i + "].selected";
  2080 + e.setData({
  2081 + [txt]: Number(!sele),
  2082 + });
  2083 + }
  2084 + var txt = "service_data[" + pitems + "].selected";
  2085 + e.setData({
  2086 + [txt]: Number(!sele),
  2087 + });
  2088 + this.doCheckAll();
  2089 + },
  2090 + //---------------单选,也要判断门店的配送方式是否一致--------------
  2091 + check_th_item_ser: async function (t) {
  2092 + var e = this,
  2093 + item = t.currentTarget.dataset.item,
  2094 + pitems = t.currentTarget.dataset.pitems;
  2095 + a = this.data.service_data[pitems].goods[item]; // 选中的商品
  2096 +
  2097 + var isok = 1,
  2098 + fir = 0;
  2099 + var iarr = e.data.service_data[pitems].goods;
  2100 + this.data.btn_click = 1;
  2101 +
  2102 + var garr = e.data.requestData;
  2103 +
  2104 + if (!a.selected) {
  2105 + var check_is_goods_selected = 0;
  2106 + for (var ii in garr) {
  2107 + for (var ij in garr[ii].goods) {
  2108 + if (garr[ii].goods[ij].selected) {
  2109 + check_is_goods_selected = 1;
  2110 + break;
  2111 + }
1612 2112 }
  2113 + }
1613 2114  
1614   - this.data.btn_click = 1;
  2115 + if (check_is_goods_selected) {
  2116 + wx.showModal({
  2117 + title: '提示',
  2118 + content: '服务卡项目不能和商品一起选择'
  2119 + });
  2120 + return false;
  2121 + }
  2122 + }
1615 2123  
  2124 + var txt = "service_data[" + pitems + "].goods[" + item + "].selected";
  2125 + e.setData({
  2126 + [txt]: Number(!a.selected),
  2127 + });
1616 2128  
  2129 + this.doCheckAll();
  2130 + },
1617 2131  
  2132 + //----------检查是否全选---------
  2133 + doCheckAll: function () {
  2134 + var th = this,
  2135 + tfeel = 0,
  2136 + t_num = 0,
  2137 + ischeck = 1,
  2138 + car = this.data.requestData,
  2139 + car2 = this.data.service_data,
  2140 + all_num = 0;
  2141 +
  2142 + //-- 购物车 --
  2143 + if (car && car.length > 0) {
  2144 + th.data.in_zhact_gdmap = {};
  2145 + for (var a = 0; a < car.length; a++) {
  2146 + var item = car[a].goods, is_s_sele = 1;
1618 2147 var offline_price = 0;
1619 2148 var offline_num = 0;
1620   - th.data.in_zhact_gdmap = {};
  2149 + for (var c = 0; c < item.length; c++) {
  2150 + if (item[c].is_gift) continue;
  2151 + all_num += item[c].goods_num;
  2152 +
  2153 + //不管怎么样都要移出去
  2154 + var obj = JSON.parse(JSON.stringify(item[c]));
  2155 + zh_calc.remove_zhprom(car, a, obj);
  2156 + ladder_calc.remove_ladder_prom(car, a, obj);
  2157 +
  2158 + if (item[c].selected == 0) {
  2159 + ischeck = 0;
  2160 + is_s_sele = 0;
  2161 + if (item[c].prom_type == 7) {
  2162 + obj.goods_num = 0;
  2163 + zh_calc.add_zhprom(car, a, obj);
  2164 + }
  2165 + if (item[c].prom_type == 10) {
  2166 + obj.goods_num = 0;
  2167 + ladder_calc.add_ladder_prom(car, a, obj);
  2168 + }
1621 2169  
1622 2170  
1623   - if (dda && dda.length > 0) {
1624   - for (var i = 0; i < dda.length; i++) {
1625   - var item = dda[i].goods;
  2171 + } else {
  2172 + if (item[c].prom_type == 7) {
  2173 + //先把商品放入组合计算的专用的区域
  2174 + console.log('是组合商品---')
  2175 + console.log(car);
  2176 + console.log(a)
  2177 + console.log(obj)
  2178 + console.log('......................')
  2179 + zh_calc.add_zhprom(car, a, obj);
  2180 + } else if (item[c].prom_type == 10) {
  2181 + ladder_calc.add_ladder_prom(car, a, obj);
  2182 + }
  2183 + else {
  2184 + tfeel += item[c].goods_num * item[c].goods_price;
  2185 + }
  2186 + t_num += item[c].goods_num;
  2187 + }
1626 2188  
1627   - if (e.data.checkAllToggle) {
1628   - var txt = "requestData[" + i + "].selected";
1629   - e.setData({
1630   - [txt]: 0,
1631   - });
1632   - }
1633   - var fir = 0;
1634   - for (var j = 0; j < item.length; j++) {
1635   - if(item[j].is_gift) continue;
1636   -
1637   - var obj=JSON.parse(JSON.stringify(item[j]));
1638   - //计算之前先移除组合购的计算
1639   - if(obj.prom_type==7)
1640   - zh_calc.remove_zhprom(dda,i,obj);
1641   - //计算之前先移除阶梯购的计算
1642   - if(obj.prom_type==10)
1643   - ladder_calc.remove_ladder_prom(dda,i,obj);
1644   -
1645   -
1646   - if (fir == 0) {
1647   - fir = item[j].distr_type;
1648   - } else {
1649   - //如果同一门店有不同门店的商品,不能同一配送
1650   - if (fir != item[j].distr_type && !e.data.checkAllToggle && item[j].distr_type != 0) {
1651   - text_arr += item[j].goods_name + " ";
1652   - break;
1653   - }
1654   - }
1655   - var txt = "requestData[" + i + "].goods[" + j + "].selected";
1656   -
1657   - if(e.data.checkAllToggle) obj.goods_num=0;
1658   -
1659   - //加入组合购计算
1660   - if(obj.prom_type==7) zh_calc.add_zhprom(dda,i,obj);
1661   - //加入阶梯促销计算
1662   - if(obj.prom_type==10) ladder_calc.add_ladder_prom(dda,i,obj);
1663   -
1664   - e.setData({
1665   -
1666   - [txt]: !e.data.checkAllToggle,
1667   - })
  2189 + //-- 如果这个商品是线下取价的时候 --
  2190 + if (item[c].is_offline && item[c].prom_type != 7) {
  2191 + offline_price += (item[c].goods_price - item[c].offline_price) * item[c].goods_num;
  2192 + offline_num += item[c].goods_num;
  2193 + }
  2194 + }
1668 2195  
1669   - if (!e.data.checkAllToggle) {
1670   - //组合购的金额要另外算
1671   - if(item[j].prom_type!=7 && item[j].prom_type!=10)
1672   - tfeel += item[j].goods_num * item[j].goods_price;
1673   - t_num += item[j].goods_num;
1674   - }
  2196 + //总的价格,把组合商品的价格拿出来
  2197 + var zh_calc_res = zh_calc.calculate_zh(car, a, th);
  2198 + console.log('.组合价-----------')
  2199 + console.log(zh_calc_res)
  2200 + //总的价格,把阶梯促销商品的价格拿出来
  2201 + var ladder_calc_res = ladder_calc.calculate_ladder(car, a, th);
1675 2202  
1676   - //-- 如果这个商品是线下取价的时候 --
1677   - if (item[j].is_offline && item[j].prom_type != 7) {
1678   - offline_price += (item[j].goods_price - item[j].offline_price) * item[j].goods_num;
1679   - offline_num += item[j].goods_num;
1680   - }
  2203 + tfeel += zh_calc_res.tfeel;
  2204 + offline_price += zh_calc_res.offline_price;
  2205 + offline_num += zh_calc_res.offline_num;
1681 2206  
1682   - }
1683   - }
  2207 + tfeel += ladder_calc_res.tfeel;
  2208 + offline_price += ladder_calc_res.offline_price;
  2209 + offline_num += ladder_calc_res.offline_num;
1684 2210  
  2211 + var txt = "requestData[" + a + "].selected";
  2212 + th.setData({
  2213 + [txt]: Number(is_s_sele)
  2214 + });
1685 2215  
1686   - if (text_arr != "") {
1687   - wx.showModal({
1688   - title: '提示',
1689   - content: text_arr + '不能与门店中其他商品一起结算,配送方式不一致'
1690   - });
1691   - return false;
1692   - } else {
  2216 + //当有线下取价的时候
  2217 + if (offline_price) {
  2218 + var txt1 = "requestData[" + a + "].offline_price";
  2219 + var txt2 = "requestData[" + a + "].offline_num";
  2220 + th.setData({
  2221 + [txt1]: offline_price.toFixed(2),
  2222 + [txt2]: offline_num,
  2223 + });
  2224 + } else {
  2225 + if (car[a].offline_price > 0) {
  2226 + var txt1 = "requestData[" + a + "].offline_price";
  2227 + var txt2 = "requestData[" + a + "].offline_num";
  2228 + th.setData({
  2229 + [txt1]: 0,
  2230 + [txt2]: 0
  2231 + });
  2232 + }
  2233 + }
1693 2234  
1694   - for (var i = 0; i < dda.length; i++) {
  2235 + }
  2236 + }
1695 2237  
1696   - if (!e.data.checkAllToggle) {
1697   - var txt = "requestData[" + i + "].selected";
1698   - e.setData({
1699   - [txt]: 1,
1700   - });
1701   - }
  2238 + //-- 服务卡 --
  2239 + if (car2 && car2.length > 0) {
  2240 + for (var a = 0; a < car2.length; a++) {
  2241 + var c_item = car2[a];
  2242 + var item = car2[a].goods,
  2243 + is_s_sele = 1;
  2244 +
  2245 + for (var c = 0; c < item.length; c++) {
  2246 + if (item[c].is_gift) continue;
  2247 + all_num += item[c].goods_num;
  2248 + if (item[c].selected == 0) {
  2249 + ischeck = 0;
  2250 + is_s_sele = 0;
  2251 + } else {
  2252 + tfeel += item[c].goods_num * item[c].money;
  2253 + t_num += item[c].goods_num;
  2254 + }
1702 2255  
1703   - //总的价格,把组合商品的价格拿出来
1704   - var zh_calc_res = zh_calc.calculate_zh(dda, i, this);
1705   - tfeel += zh_calc_res.tfeel;
1706   - offline_price += zh_calc_res.offline_price;
1707   - offline_num += zh_calc_res.offline_num;
1708   -
1709   - //总的价格,把阶梯促销的商品的价格拿出来
1710   - var ladder_calc_res=ladder_calc.calculate_ladder(dda,i,this);
1711   - tfeel+=ladder_calc_res.tfeel;
1712   - offline_price+=ladder_calc_res.offline_price;
1713   - offline_num+=ladder_calc_res.offline_num;
1714   -
1715   - //当有线下取价的时候
1716   - if (offline_price) {
1717   - var txt1 = "requestData[" + i + "].offline_price";
1718   - var txt2 = "requestData[" + i + "].offline_num";
1719   - th.setData({
1720   - [txt1]: offline_price.toFixed(2),
1721   - [txt2]: offline_num,
1722   - });
1723   - } else {
1724   - if (dda[i].offline_price > 0) {
1725   - var txt1 = "requestData[" + i + "].offline_price";
1726   - var txt2 = "requestData[" + i + "].offline_num";
1727   - th.setData({
1728   - [txt1]: 0,
1729   - [txt2]: 0
1730   - });
1731   - }
1732   - }
1733   - }
  2256 + }
1734 2257  
1735   - e.setData({
1736   - checkAllToggle: !e.data.checkAllToggle,
1737   - total_fee: tfeel.toFixed(2),
1738   - total_num: t_num,
1739   - });
  2258 + var txt = "service_data[" + a + "].selected";
  2259 + th.setData({
  2260 + [txt]: Number(is_s_sele)
  2261 + });
  2262 + }
  2263 + }
1740 2264  
1741   - e.all_check_prom_activity();
  2265 + this.setData({
  2266 + checkAllToggle: ischeck,
  2267 + total_fee: tfeel.toFixed(2),
  2268 + all_num: all_num,
  2269 + total_num: t_num
  2270 + });
  2271 + },
1742 2272  
1743   - }
  2273 + //----------------------更新购物数量,加减,调用接口---------------------
  2274 + postCardList: function (t, item, pitem) {
  2275 + var e = this,
  2276 + th = e,
  2277 + user_id = getApp().globalData.user_id;
  2278 +
  2279 + function normal_check(store_count, goodsinfo, wareIds) {
  2280 + //--- 看一下是不是线下库存 ---
  2281 + if (th.data.sales_rules >= 2 && !goodsinfo.whsle_id) {
  2282 + th.check_down_line(t, pitem, item, wareIds);
  2283 + } else {
  2284 + if (t.goods_num > store_count) {
  2285 + wx.showToast({
  2286 + title: '购买数量超出商品库存',
  2287 + icon: 'none',
  2288 + });
  2289 + // getApp().my_warnning('购买数量超出商品库存', 0, th);
  2290 + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
  2291 + e.setData({
  2292 + [txt]: store_count
  2293 + });
  2294 + e.doCheckAll();
  2295 + t.goods_num = store_count;
1744 2296 }
  2297 + e.update_cart(t, pitem, item);
  2298 + }
  2299 + }
1745 2300  
1746   - if (sdda && sdda.length > 0) {
1747   - for (var i = 0; i < sdda.length; i++) {
1748   - var item = sdda[i].goods;
1749   - if (e.data.checkAllToggle) {
1750   - var txt = "service_data[" + i + "].selected";
1751   - e.setData({
1752   - [txt]: 0,
1753   - });
1754   - }
1755   - var fir = 0;
1756   - for (var j = 0; j < item.length; j++) {
1757   - var txt = "service_data[" + i + "].goods[" + j + "].selected"
1758   - e.setData({
1759   - [txt]: !e.data.checkAllToggle ? 1 : 0,
1760   - })
1761   -
1762   - if (!e.data.checkAllToggle) {
1763   - tfeel += item[j].goods_num * item[j].money;
1764   - t_num += item[j].goods_num;
1765   - }
1766   - }
1767   - }
1768   - e.setData({
1769   - checkAllToggle: !e.data.checkAllToggle,
1770   - total_fee: tfeel.toFixed(2),
1771   - total_num: t_num,
  2301 + // console.log('update');
  2302 + // console.log('9995959595959',t);
  2303 + var e = this, th = e;
  2304 + var user_id = getApp().globalData.user_id;
  2305 + rq.get("/api/weshop/goods/get/" + oo.stoid + "/" + t.goods_id, {
  2306 + isShowLoading: 0,
  2307 + async success(d) {
  2308 + var limit = d.data.data.viplimited;
  2309 + var store_count = d.data.data.store_count;
  2310 + var wareIds = d.data.data.erpwareid;
  2311 +
  2312 + var goodsinfo = e.data.requestData[pitem].goods[item];
  2313 + var promgoodsbuynum = 0;
  2314 + var goodsbuynum = 0;
  2315 +
  2316 + //--要获得商品,该用户买了多少件,同步应用--
  2317 + await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", {
  2318 + data: {
  2319 + store_id: oo.stoid,
  2320 + user_id: user_id,
  2321 + goods_id: goodsinfo.goods_id,
  2322 + prom_type: goodsinfo.prom_type,
  2323 + prom_id: goodsinfo.prom_id
  2324 + },
  2325 + }).then(res => {
  2326 + var buy_num_data = res.data.data;
  2327 + if (buy_num_data.promgoodsbuynum) {
  2328 + promgoodsbuynum = buy_num_data.promgoodsbuynum;
  2329 + var txt = "requestData[" + pitem + "].goods[" + item + "].zh_b_num";
  2330 + th.setData({
  2331 + [txt]: promgoodsbuynum
1772 2332 });
1773   - }
  2333 + }
  2334 + goodsbuynum = buy_num_data.goodsbuynum;
1774 2335  
1775   - },
1776   - //------门店全选按钮,要判断是否门店的匹配方式一致---------
1777   - check_th_all_item: async function (ele) {
1778   - var e = this,th=this,
1779   - pitems = ele.currentTarget.dataset.pitems,
1780   - item = this.data.requestData[pitems].goods,
1781   - sele = this.data.requestData[pitems].selected;
1782   - this.data.btn_click = 1;
1783   - var garr = e.data.service_data;
1784   -
1785   - var isok = 1,
1786   - fir = 0,
1787   - iarr = item;
1788   -
1789   - if (!sele) {
1790   - var check_is_service_selected = 0;
1791   - for (var ii in garr) {
1792   - for (var ij in garr[ii].goods) {
1793   - if (garr[ii].goods[ij].selected) {
1794   - check_is_service_selected = 1;
1795   - break;
1796   - }
1797   - }
1798   - }
1799 2336  
1800   - if (check_is_service_selected) {
1801   - wx.showModal({
1802   - title: '提示',
1803   - content: '服务卡项目不能和商品一起选择'
1804   - });
1805   - return false;
1806   - }
1807   - }
  2337 + })
1808 2338  
1809   - if (!sele && item.length > 0) {
1810   - for (var i = 0; i < iarr.length; i++) {
1811   - if (iarr[i].is_gift == 1) continue;
1812   - if (iarr[i].distr_type != 0) {
1813   - if (fir == 0) {
1814   - fir = iarr[i].distr_type;
1815   - } else {
1816   - if (fir != iarr[i].distr_type && iarr[i].distr_type != 0) {
1817   - isok = 0;
1818   - break;
1819   - }
1820   - }
1821   - }
1822   - }
1823   - }
  2339 + //--> by ty
  2340 + // var buyed_mum2 = t.goods_num + goodsbuynum;
  2341 + var buyed_mum2 = t.goods_num;
  2342 + //<--
1824 2343  
1825   - if (!isok) {
1826   - wx.showModal({
1827   - title: '提示',
1828   - content: '同一门店自提和物流的商品不能同时结算'
1829   - });
1830   - return false;
1831   - }
  2344 + // 判断当前预购买的数量是否超过可购买的数量
  2345 + if (buyed_mum2 > (limit - goodsbuynum) && limit > 0) {
  2346 + wx.showToast({
  2347 + title: '购买数量超出商品限购',
  2348 + icon: 'none',
  2349 + });
  2350 + //getApp().my_warnning('购买数量超出商品限购', 0, th);
  2351 + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
1832 2352  
1833   - for (var i = 0; i < item.length; i++) {
1834   - var txt = "requestData[" + pitems + "].goods[" + i + "].selected";
  2353 + //--> by ty
  2354 + var cbuy = limit - goodsbuynum;
  2355 + // var cbuy = limit - buyed_mum2 + 1;
  2356 + //<--
1835 2357  
1836   - var gd_info=item[i];
1837   - if (th.data.sales_rules >= 2 && !gd_info.whsle_id && [1,2,4,6,8,9].indexOf(gd_info.prom_type)==-1 && !gd_info.selected ) {
1838   - var ob = {};
1839   - await th.check_down_line_next(gd_info, pitems, i, gd_info.erpwareid, function (res) {
1840   - ob = res;
1841   - });
  2358 + e.setData({
  2359 + // [txt]: cbuy > 0 ? cbuy : 0,
  2360 + [txt]: cbuy > 0 ? cbuy : limit,
  2361 + });
  2362 + e.doCheckAll();
  2363 +
  2364 + t.goods_num = cbuy > 0 ? cbuy : limit,
  2365 + // t.goods_num = cbuy > 0 ? cbuy : 0,
  2366 + e.update_cart(t, pitem, item);
  2367 + return false;
  2368 + }
1842 2369  
1843   - if (ob.code == -1) {
1844 2370  
  2371 + switch (goodsinfo.prom_type) {
  2372 + case 1:
  2373 + //读取秒杀
  2374 + rq.get("/api/ms/flash_sale/getFlashSaleOne/" + oo.stoid + "/" + goodsinfo.prom_id, {
  2375 + isShowLoading: 0,
  2376 + success: function (res_d) {
  2377 + if (res_d.data.code == 0 && res_d.data.data) {
  2378 + if (t.goods_num > store_count) {
  2379 + // wx.showModal({
  2380 + // title: '提示',
  2381 + // content: '购买数量超出商品库存'
  2382 + // });
1845 2383 wx.showToast({
1846   - title: '购买数量超出商品库存',
1847   - icon: 'none',
  2384 + title: '购买数量超出商品库存',
  2385 + icon: 'none',
1848 2386 });
  2387 + // getApp().my_warnning('购买数量超出商品库存', 0, th);
  2388 + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
  2389 + e.setData({
  2390 + [txt]: store_count
  2391 + });
  2392 + e.doCheckAll();
1849 2393  
1850   - return false;
1851   - }else{
1852   - if(th.data.sales_rules==3){
1853   - var goods_id=gd_info.goods_id;
1854   - var num=0;
1855   -
1856   - for (let i = 0; i < th.data.requestData.length; i++) {
1857   - if(pitems==i) continue;
1858   - var it= th.data.requestData[i].goods.find((e)=>{
1859   - return e.goods_id==goods_id;
1860   - })
1861   - if(it && it.selected) num+=it.goods_num
1862   - }
1863   -
1864   - if(num>ob.CanOutQty){
1865   - wx.showToast({
1866   - title: '购买数量超出商品库存',
1867   - icon: 'none',
1868   - });
1869   -
1870   - return false;
1871   - }
1872   - }
1873   - }
  2394 + t.goods_num = store_count;
  2395 + e.update_cart(t, pitem, item);
1874 2396  
1875   - }
  2397 + return false;
  2398 + }
1876 2399  
  2400 + var false_data = res_d.data.data;
  2401 + //--判断库存--
  2402 + if (t.goods_num > false_data.goods_num - false_data.buy_num) {
  2403 + // wx.showModal({
  2404 + // title: '提示',
  2405 + // content: '购买数量超出活动库存'
  2406 + // });
  2407 + wx.showToast({
  2408 + title: '购买数量超出活动库存',
  2409 + icon: 'none',
  2410 + });
  2411 + // getApp().my_warnning('购买数量超出活动库存', 0, th);
  2412 + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
  2413 + e.setData({
  2414 + [txt]: false_data.goods_num - false_data.buy_num
  2415 + });
  2416 + e.doCheckAll();
1877 2417  
  2418 + t.goods_num = false_data.goods_num - false_data.buy_num;
  2419 + e.update_cart(t, pitem, item);
1878 2420  
1879   - e.setData({
1880   - [txt]: Number(!sele),
1881   - });
1882   - }
1883   - var txt = "requestData[" + pitems + "].selected";
1884   - e.setData({
1885   - [txt]: Number(!sele),
1886   - });
  2421 + return false;
  2422 + }
1887 2423  
1888   - e.data.duo_zp_num_arr={};
1889   - if (sele) {
1890   - await e.check_prom_activity(pitems);
1891   - }
1892   - for (var i in e.data.requestData) {
1893   - if(sele && i==pitems) continue;
1894   - await e.check_prom_activity(i);
1895   - }
1896   - this.doCheckAll();
1897   - },
1898   - //---------------单选,也要判断门店的配送方式是否一致--------------
1899   - check_th_item: async function (t) {
1900   - var e = this,th=this,
1901   - item = t.currentTarget.dataset.item,
1902   - pitems = t.currentTarget.dataset.pitems;
1903   - a = this.data.requestData[pitems].goods[item];
1904   - var isok = 1,
1905   - fir = 0;
1906   - var iarr = e.data.requestData[pitems].goods;
1907   - this.data.btn_click = 1;
1908   - var garr = e.data.service_data;
  2424 + //--判断redis数量是否已经超出--
  2425 + if (t.goods_num > false_data.redisnum) {
  2426 + // wx.showModal({
  2427 + // title: '提示',
  2428 + // content: '购买数量超出商品库存'
  2429 + // });
  2430 + wx.showToast({
  2431 + title: '购买数量超出商品库存',
  2432 + icon: 'none',
  2433 + });
  2434 + //getApp().my_warnning('购买数量超出商品库存', 0, th);
  2435 + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
  2436 + e.setData({
  2437 + [txt]: false_data.redisnum
  2438 + });
  2439 + e.doCheckAll();
1909 2440  
1910   - if (!a.selected) {
1911   - var check_is_service_selected = 0;
1912   - for (var ii in garr) {
1913   - for (var ij in garr[ii].goods) {
1914   - if (garr[ii].goods[ij].selected) {
1915   - check_is_service_selected = 1;
1916   - break;
1917   - }
1918   - }
1919   - }
1920   - if (check_is_service_selected) {
1921   - wx.showModal({
1922   - title: '提示',
1923   - content: '服务卡项目不能和商品一起选择'
1924   - });
1925   - return false;
1926   - }
1927   - }
  2441 + t.goods_num = false_data.redisnum;
  2442 + e.update_cart(t, pitem, item);
  2443 + return false;
  2444 + }
1928 2445  
1929   - //当数量大于1,且是选择的时候
1930   - if (iarr.length > 1 && !a.selected) {
  2446 + //--活动的限购是不是要判断--
  2447 + if (t.goods_num + promgoodsbuynum > false_data.buy_limit && false_data.buy_limit > 0) {
  2448 + // wx.showModal({
  2449 + // title: '提示',
  2450 + // content: '购买数量超出秒杀限购'
  2451 + // });
  2452 + wx.showToast({
  2453 + title: '购买数量超出秒杀限购',
  2454 + icon: 'none',
  2455 + });
  2456 + // getApp().my_warnning('购买数量超出秒杀限购', 0, th);
  2457 + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
  2458 + e.setData({
  2459 + [txt]: false_data.buy_limit
  2460 + });
  2461 + e.doCheckAll();
  2462 + t.goods_num = (false_data.buy_limit - promgoodsbuynum) ? false_data.buy_limit - promgoodsbuynum : 0;
  2463 + e.update_cart(t, pitem, item);
  2464 + return false;
  2465 + }
  2466 + e.update_cart(t, pitem, item);
1931 2467  
1932   - for (var i = 0; i < iarr.length; i++) {
1933   - if (iarr[i].is_gift == 1) continue;
1934   - //---当不是本身选择项目----
1935   - var sel = iarr[i].selected;
1936   - if (iarr[i].distr_type != 0 && (sel || iarr[i].id == a.id)) {
1937   - if (fir == 0) {
1938   - fir = iarr[i].distr_type;
1939   - } else {
1940   - if (fir != iarr[i].distr_type && iarr[i].distr_type != 0) {
1941   - isok = 0;
1942   - break;
1943   - }
1944   - }
  2468 + } else {
  2469 + normal_check(store_count, goodsinfo, wareIds);
1945 2470 }
1946   - }
1947   - }
1948   - if (!isok) {
1949   - wx.showModal({
1950   - title: '提示',
1951   - content: '同一门店自提和物流的商品不能同时结算'
1952   - });
1953   - } else {
1954   - var txt = "requestData[" + pitems + "].goods[" + item + "].selected";
1955   - var gd_info=a;
1956   -
1957   - var erpwareid = gd_info.erpwareid;
1958   - if (th.data.sales_rules >= 2 && !gd_info.whsle_id && [1,2,4,6,8,9].indexOf(gd_info.prom_type)==-1 && !a.selected ) {
1959   - var ob = {};
1960   - await th.check_down_line_next(gd_info, pitems, item, erpwareid, function (res) {
1961   - ob = res;
1962   - });
  2471 + }
  2472 + })
  2473 + break;
  2474 + case 2:
  2475 + getApp().request.promiseGet("/api/weshop/goods/groupBuy/getActInfo/" + os.stoid + "/" + goodsinfo.goods_id + "/" + goodsinfo.prom_id, {}).then(res => {
  2476 + if (res.data.code == 0 && res.data.data) {
  2477 + if (t.goods_num > store_count) {
  2478 + // wx.showModal({
  2479 + // title: '提示',
  2480 + // content: '购买数量超出商品库存'
  2481 + // });
  2482 + wx.showToast({
  2483 + title: '购买数量超出商品库存',
  2484 + icon: 'none',
  2485 + });
  2486 + // getApp().my_warnning('购买数量超出商品库存', 0, th);
  2487 + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
  2488 + e.setData({
  2489 + [txt]: store_count
  2490 + });
  2491 + e.doCheckAll();
1963 2492  
1964   - if (ob.code == -1) {
  2493 + t.goods_num = store_count;
  2494 + e.update_cart(t, pitem, item);
1965 2495  
1966   - wx.showToast({
1967   - title: '购买数量超出商品库存',
1968   - icon: 'none',
1969   - });
  2496 + return false;
  2497 + }
1970 2498  
1971   - return false;
1972   - }else{
1973   - if(th.data.sales_rules==3){
1974   - var goods_id=gd_info.goods_id;
1975   - var num=0;
1976   -
1977   - for (let i = 0; i < th.data.requestData.length; i++) {
1978   - if(pitems==i) continue;
1979   - var it= th.data.requestData[i].goods.find((e)=>{
1980   - return e.goods_id==goods_id;
1981   - })
1982   - if(it && it.selected) num+=it.goods_num
1983   - }
  2499 + var gr_data = res.data.data;
  2500 + //--判断库存--
  2501 + if (t.goods_num > gr_data.goods_num - gr_data.buy_num) {
  2502 + // wx.showModal({
  2503 + // title: '提示',
  2504 + // content: '购买数量超出活动库存'
  2505 + // });
  2506 + wx.showToast({
  2507 + title: '购买数量超出活动库存',
  2508 + icon: 'none',
  2509 + });
  2510 + // getApp().my_warnning('购买数量超出活动库存', 0, th);
  2511 + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
  2512 + e.setData({
  2513 + [txt]: gr_data.goods_num - gr_data.buy_num
  2514 + });
  2515 + e.doCheckAll();
1984 2516  
1985   - if(num>ob.CanOutQty){
1986   - wx.showToast({
1987   - title: '购买数量超出商品库存',
1988   - icon: 'none',
1989   - });
  2517 + t.goods_num = gr_data.goods_num - gr_data.buy_num;
  2518 + e.update_cart(t, pitem, item);
1990 2519  
1991   - return false;
1992   - }
1993   - }
  2520 + return false;
1994 2521 }
1995 2522  
1996   - }
1997   -
  2523 + //--判断redis数量是否已经超出--
  2524 + if (t.goods_num > gr_data.redisnum) {
  2525 + // wx.showModal({
  2526 + // title: '提示',
  2527 + // content: '购买数量超出商品库存'
  2528 + // });
  2529 + wx.showToast({
  2530 + title: '购买数量超出商品库存',
  2531 + icon: 'none',
  2532 + });
  2533 + // getApp().my_warnning('购买数量超出商品库存', 0, th);
  2534 + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
  2535 + e.setData({
  2536 + [txt]: gr_data.redisnum
  2537 + });
  2538 + e.doCheckAll();
1998 2539  
  2540 + t.goods_num = gr_data.redisnum;
  2541 + e.update_cart(t, pitem, item);
  2542 + return false;
  2543 + }
1999 2544  
2000   - e.setData({
2001   - [txt]: Number(!a.selected),
2002   - });
  2545 + //--活动的限购是不是要判断--
  2546 + if (t.goods_num + promgoodsbuynum > gr_data.buy_limit && gr_data.buy_limit > 0) {
  2547 + // wx.showModal({
  2548 + // title: '提示',
  2549 + // content: '购买数量超出团购限购'
  2550 + // });
  2551 + wx.showToast({
  2552 + title: '购买数量超出团购限购',
  2553 + icon: 'none',
  2554 + });
  2555 + // getApp().my_warnning('购买数量超出团购限购', 0, th);
  2556 + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
  2557 + e.setData({
  2558 + [txt]: gr_data.buy_limit
  2559 + });
  2560 + e.doCheckAll();
2003 2561  
2004   - if (a.prom_type == 3) {
2005   - e.data.duo_zp_num_arr={};
2006   - if (!a.selected) {
2007   - await e.check_prom_activity(pitems);
2008   - }
2009   - //判断商品是不是优惠活动
2010   - for (var i in e.data.requestData) {
2011   - if(!a.selected && i==pitems) continue;
2012   - await e.check_prom_activity(i);
2013   - }
2014   - }
2015   - this.doCheckAll();
2016   - }
2017   - },
2018   -
2019   - //------门店全选按钮,要判断是否门店的匹配方式一致---------
2020   - check_th_all_item_ser: async function (ele) {
2021   - var e = this,
2022   - pitems = ele.currentTarget.dataset.pitems,
2023   - item = this.data.service_data[pitems].goods,
2024   - sele = this.data.service_data[pitems].selected;
2025   - this.data.btn_click = 1;
2026   - var garr = e.data.requestData;
2027   -
2028   - var isok = 1,
2029   - fir = 0,
2030   - iarr = item;
2031   -
2032   - if (!sele) {
2033   - var check_is_goods_selected = 0;
2034   - for (var ii in garr) {
2035   - for (var ij in garr[ii].goods) {
2036   - if (garr[ii].goods[ij].selected) {
2037   - check_is_goods_selected = 1;
2038   - break;
2039   - }
  2562 + t.goods_num = (gr_data.buy_limit - promgoodsbuynum) ? gr_data.buy_limit - promgoodsbuynum : 0;
  2563 + e.update_cart(t, pitem, item);
  2564 + return false;
2040 2565 }
2041   - }
2042   - if (check_is_goods_selected) {
2043   - wx.showModal({
2044   - title: '提示',
2045   - content: '服务卡项目不能和商品一起选择'
2046   - });
2047   - return false;
2048   - }
2049   - }
  2566 + e.update_cart(t, pitem, item);
2050 2567  
2051   - for (var i = 0; i < item.length; i++) {
2052   - var txt = "service_data[" + pitems + "].goods[" + i + "].selected";
2053   - e.setData({
2054   - [txt]: Number(!sele),
2055   - });
  2568 + } else {
  2569 + normal_check(store_count, goodsinfo, wareIds);
  2570 + }
  2571 + })
  2572 +
  2573 + break;
  2574 + default:
  2575 + normal_check(store_count, goodsinfo, wareIds);
  2576 + break
2056 2577 }
2057   - var txt = "service_data[" + pitems + "].selected";
2058   - e.setData({
2059   - [txt]: Number(!sele),
2060   - });
2061   - this.doCheckAll();
2062   - },
2063   - //---------------单选,也要判断门店的配送方式是否一致--------------
2064   - check_th_item_ser: async function (t) {
2065   - var e = this,
2066   - item = t.currentTarget.dataset.item,
2067   - pitems = t.currentTarget.dataset.pitems;
2068   - a = this.data.service_data[pitems].goods[item]; // 选中的商品
2069   -
2070   - var isok = 1,
2071   - fir = 0;
2072   - var iarr = e.data.service_data[pitems].goods;
2073   - this.data.btn_click = 1;
  2578 + }
  2579 + });
  2580 + },
2074 2581  
2075   - var garr = e.data.requestData;
  2582 + //----------------------更新购物数量,加减,调用接口---------------------
  2583 + postCardList_ser: async function (t, item, pitem) {
  2584 + var e = this,
  2585 + th = e;
  2586 + var user_id = getApp().globalData.user_id;
  2587 + var txt = "service_data[" + pitem + "].goods[" + item + "].goods_num";
  2588 +
  2589 + e.setData({
  2590 + [txt]: t.goods_num
  2591 + });
  2592 +
  2593 + // 1.秒杀活动
  2594 + // 2.活动开始
  2595 + if (t.prom_type == 1 && t.is_pd_normal == 0) {
  2596 + var txt = "service_data[" + pitem + "].goods[" + item + "].goods_num";
  2597 + var redis_num = 0;
  2598 +
  2599 + // 获取其他门店,同类商品的数量
  2600 + var cartGoodsNum = 0;
  2601 + await getApp().request.promiseGet("/api/weshop/cartService/page?store_id=" + t.store_id + "&user_id=" + getApp().globalData.user_id + "&service_id=" + t.goods_id,
  2602 + {}).then(res => {
  2603 + if (res.data.data.pageData.length > 0) {
  2604 + const tmpObj = res.data.data.pageData;
  2605 + tmpObj.forEach(v => {
  2606 + if (t.id != v.id) {
  2607 + cartGoodsNum += parseInt(v.goods_num);
  2608 + }
2076 2609  
2077   - if (!a.selected) {
2078   - var check_is_goods_selected = 0;
2079   - for (var ii in garr) {
2080   - for (var ij in garr[ii].goods) {
2081   - if (garr[ii].goods[ij].selected) {
2082   - check_is_goods_selected = 1;
2083   - break;
2084   - }
2085   - }
2086   - }
  2610 + });
  2611 + }
  2612 + });
  2613 + // 当前商品数量包括其他门店
  2614 + var totalNum = 0
  2615 + if (cartGoodsNum > 0) {
  2616 + totalNum = t.goods_num + cartGoodsNum;
  2617 + } else {
  2618 + totalNum = t.goods_num;
  2619 + }
2087 2620  
2088   - if (check_is_goods_selected) {
2089   - wx.showModal({
2090   - title: '提示',
2091   - content: '服务卡项目不能和商品一起选择'
2092   - });
2093   - return false;
2094   - }
2095   - }
  2621 + //获取当前商品活动库存
  2622 + await getApp().request.promiseGet("/api/weshop/activitylist/getActLen/" +
  2623 + t.store_id + "/" + t.prom_type + "/" + t.prom_id, {
  2624 + 1: 1
  2625 + }).then(res => {
  2626 + redis_num = res.data.data;
  2627 + });
2096 2628  
2097   - var txt = "service_data[" + pitems + "].goods[" + item + "].selected";
2098   - e.setData({
2099   - [txt]: Number(!a.selected),
  2629 + // 检测库存
  2630 + if (redis_num == 0) {
  2631 + wx.showToast({
  2632 + title: '超出活动库存',
  2633 + icon: 'none',
2100 2634 });
2101   -
2102   - this.doCheckAll();
2103   - },
2104   -
2105   - //----------检查是否全选---------
2106   - doCheckAll: function () {
2107   - var th = this,
2108   - tfeel = 0,
2109   - t_num = 0,
2110   - ischeck = 1,
2111   - car = this.data.requestData,
2112   - car2 = this.data.service_data,
2113   - all_num = 0;
2114   -
2115   - //-- 购物车 --
2116   - if (car && car.length > 0) {
2117   - th.data.in_zhact_gdmap = {};
2118   - for (var a = 0; a < car.length; a++) {
2119   - var item = car[a].goods,is_s_sele = 1;
2120   - var offline_price=0;
2121   - var offline_num=0;
2122   - for (var c = 0; c < item.length; c++) {
2123   - if (item[c].is_gift) continue;
2124   - all_num += item[c].goods_num;
2125   -
2126   - //不管怎么样都要移出去
2127   - var obj=JSON.parse(JSON.stringify(item[c]));
2128   - zh_calc.remove_zhprom(car,a,obj);
2129   - ladder_calc.remove_ladder_prom(car,a,obj);
2130   -
2131   - if (item[c].selected == 0) {
2132   - ischeck = 0;
2133   - is_s_sele = 0;
2134   - if (item[c].prom_type == 7) {
2135   - obj.goods_num = 0;
2136   - zh_calc.add_zhprom(car, a, obj);
2137   - }
2138   - if(item[c].prom_type==10) {
2139   - obj.goods_num=0;
2140   - ladder_calc.add_ladder_prom(car,a,obj);
2141   - }
  2635 + // getApp().my_warnning('超出活动库存', 0, th);
  2636 + th.setData({ [txt]: redis_num });
  2637 + t.goods_num = redis_num;
  2638 + await th.doCheckAll();
  2639 + await th.update_cart_ser(t, pitem, item);
  2640 + return false;
  2641 + };
2142 2642  
  2643 + // 限购数量
  2644 + var buylimit = 0
  2645 + await getApp().request.promiseGet("/api/ms/flash_sale/getNew/" + t.store_id + "/" + getApp().globalData.user_id + "/" + t.prom_id, {
2143 2646  
2144   - } else {
2145   - if(item[c].prom_type==7){
2146   - //先把商品放入组合计算的专用的区域
2147   - console.log('是组合商品---')
2148   - console.log(car);
2149   - console.log(a)
2150   - console.log(obj)
2151   - console.log('......................')
2152   - zh_calc.add_zhprom(car,a,obj);
2153   - }else if(item[c].prom_type==10){
2154   - ladder_calc.add_ladder_prom(car,a,obj);
2155   - }
2156   - else{
2157   - tfeel += item[c].goods_num * item[c].goods_price;
2158   - }
2159   - t_num += item[c].goods_num;
2160   - }
  2647 + }).then(res => {
  2648 + if (res.data.code == 0) {
  2649 + th.data.sele_g = res.data.data;
  2650 + th.data.sele_g.viplimited = res.data.data.buy_limit;
  2651 + buylimit = !res.data.data.buy_limit ? 0 : res.data.data.buy_limit;
  2652 + };
  2653 + });
2161 2654  
2162   - //-- 如果这个商品是线下取价的时候 --
2163   - if (item[c].is_offline && item[c].prom_type != 7) {
2164   - offline_price += (item[c].goods_price - item[c].offline_price) * item[c].goods_num;
2165   - offline_num += item[c].goods_num;
2166   - }
2167   - }
  2655 + //用户已经成功付款购买的数量
  2656 + var gd_buy_num = 0;
  2657 + await getApp().request.promiseGet("/api/weshop/rechargeServicelist/getUserBuyGoodsNum?store_id=" + t.store_id + "&user_id=" + getApp().globalData.user_id + "&card_id=" + t.card_id + "&prom_type=" + t.prom_type + "&prom_id=" + t.prom_id, {
  2658 + }).then(tt => {
  2659 + if (tt.data.code == 0) {
  2660 + gd_buy_num = !tt.data.data.promcardbuynum ? 0 : tt.data.data.promcardbuynum;
  2661 + th.setData({
  2662 + promcardbuynum: !tt.data.data.promcardbuynum ? 0 : tt.data.data.promcardbuynum,
  2663 + cardbuynum: tt.data.data.cardbuynum,
  2664 + });
  2665 + };
  2666 + });
2168 2667  
2169   - //总的价格,把组合商品的价格拿出来
2170   - var zh_calc_res=zh_calc.calculate_zh(car,a,th);
2171   - console.log('.组合价-----------')
2172   - console.log(zh_calc_res)
2173   - //总的价格,把阶梯促销商品的价格拿出来
2174   - var ladder_calc_res=ladder_calc.calculate_ladder(car,a,th);
2175   -
2176   - tfeel+=zh_calc_res.tfeel;
2177   - offline_price+=zh_calc_res.offline_price;
2178   - offline_num+=zh_calc_res.offline_num;
2179   -
2180   - tfeel+=ladder_calc_res.tfeel;
2181   - offline_price+=ladder_calc_res.offline_price;
2182   - offline_num+=ladder_calc_res.offline_num;
2183   -
2184   - var txt = "requestData[" + a + "].selected";
2185   - th.setData({
2186   - [txt]: Number(is_s_sele)
2187   - });
2188   -
2189   - //当有线下取价的时候
2190   - if (offline_price) {
2191   - var txt1 = "requestData[" + a + "].offline_price";
2192   - var txt2 = "requestData[" + a + "].offline_num";
2193   - th.setData({
2194   - [txt1]: offline_price.toFixed(2),
2195   - [txt2]: offline_num,
2196   - });
2197   - } else {
2198   - if (car[a].offline_price > 0) {
2199   - var txt1 = "requestData[" + a + "].offline_price";
2200   - var txt2 = "requestData[" + a + "].offline_num";
2201   - th.setData({
2202   - [txt1]: 0,
2203   - [txt2]: 0
2204   - });
2205   - }
2206   - }
  2668 + // 剩余购买数
  2669 + let num = buylimit - gd_buy_num;
2207 2670  
2208   - }
  2671 + if (totalNum > redis_num) {
  2672 + wx.showToast({
  2673 + title: '超出活动库存',
  2674 + icon: 'none',
  2675 + });
  2676 + // getApp().my_warnning('超出活动库存', 0, th);
  2677 + // 开启限购
  2678 + if (buylimit > 0) {
  2679 + if (num > redis_num) {
  2680 + th.setData({ [txt]: redis_num - cartGoodsNum });
  2681 + t.goods_num = redis_num - cartGoodsNum;
  2682 + await th.doCheckAll();
  2683 + await th.update_cart_ser(t, pitem, item);
  2684 + } else {
  2685 + th.setData({ [txt]: num - cartGoodsNum });
  2686 + t.goods_num = num - cartGoodsNum;
  2687 + await th.doCheckAll();
  2688 + await th.update_cart_ser(t, pitem, item);
  2689 + }
  2690 + } else {
  2691 + th.setData({ [txt]: redis_num - cartGoodsNum });
  2692 + t.goods_num = redis_num - cartGoodsNum;
  2693 + await th.doCheckAll();
  2694 + await th.update_cart_ser(t, pitem, item);
2209 2695 }
2210 2696  
2211   - //-- 服务卡 --
2212   - if (car2 && car2.length > 0) {
2213   - for (var a = 0; a < car2.length; a++) {
2214   - var c_item = car2[a];
2215   - var item = car2[a].goods,
2216   - is_s_sele = 1;
2217   -
2218   - for (var c = 0; c < item.length; c++) {
2219   - if (item[c].is_gift) continue;
2220   - all_num += item[c].goods_num;
2221   - if (item[c].selected == 0) {
2222   - ischeck = 0;
2223   - is_s_sele = 0;
2224   - } else {
2225   - tfeel += item[c].goods_num * item[c].money;
2226   - t_num += item[c].goods_num;
2227   - }
  2697 + return false;
  2698 + };
2228 2699  
2229   - }
2230 2700  
2231   - var txt = "service_data[" + a + "].selected";
2232   - th.setData({
2233   - [txt]: Number(is_s_sele)
2234   - });
2235   - }
2236   - }
  2701 + //--秒杀:判断商品是否超出活动限购--
  2702 + if (buylimit > 0) {
2237 2703  
2238   - this.setData({
2239   - checkAllToggle: ischeck,
2240   - total_fee: tfeel.toFixed(2),
2241   - all_num: all_num,
2242   - total_num: t_num
2243   - });
2244   - },
2245   -
2246   - //----------------------更新购物数量,加减,调用接口---------------------
2247   - postCardList: function (t, item, pitem) {
2248   - var e = this,
2249   - th = e,
2250   - user_id = getApp().globalData.user_id;
2251   -
2252   - function normal_check(store_count, goodsinfo, wareIds) {
2253   - //--- 看一下是不是线下库存 ---
2254   - if (th.data.sales_rules >= 2 && !goodsinfo.whsle_id) {
2255   - th.check_down_line(t, pitem, item, wareIds);
2256   - } else {
2257   - if (t.goods_num > store_count) {
2258   - wx.showToast({
2259   - title: '购买数量超出商品库存',
2260   - icon: 'none',
2261   - });
2262   - // getApp().my_warnning('购买数量超出商品库存', 0, th);
2263   - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
2264   - e.setData({
2265   - [txt]: store_count
2266   - });
2267   - e.doCheckAll();
2268   - t.goods_num = store_count;
2269   - }
2270   - e.update_cart(t, pitem, item);
2271   - }
2272   - }
  2704 + // 如果限购数量<=活动库存数量,增加数量时会先超过限购数量,此时应提示“超出活动限购数量”
  2705 + if (totalNum > num) {
  2706 + // 计算还可以购买的数量:库存量 - 已购数
  2707 + wx.showToast({
  2708 + title: '超出活动限购',
  2709 + icon: 'none',
  2710 + });
  2711 + // getApp().my_warnning('超出活动限购', 0, th);
  2712 + if (num <= 0) num = 1;
  2713 + th.setData({ [txt]: num - cartGoodsNum });
  2714 + t.goods_num = num - cartGoodsNum;
  2715 + await th.doCheckAll();
  2716 + await th.update_cart_ser(t, pitem, item);
  2717 + return false;
  2718 + };
2273 2719  
2274   - // console.log('update');
2275   - // console.log('9995959595959',t);
2276   - var e = this,th=e;
2277   - var user_id = getApp().globalData.user_id;
2278   - rq.get("/api/weshop/goods/get/" + oo.stoid + "/" + t.goods_id, {
2279   - isShowLoading: 0,
2280   - async success(d) {
2281   - var limit = d.data.data.viplimited;
2282   - var store_count = d.data.data.store_count;
2283   - var wareIds = d.data.data.erpwareid;
2284   -
2285   - var goodsinfo = e.data.requestData[pitem].goods[item];
2286   - var promgoodsbuynum = 0;
2287   - var goodsbuynum = 0;
  2720 + }
2288 2721  
2289   - //--要获得商品,该用户买了多少件,同步应用--
2290   - await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", {
2291   - data: {
2292   - store_id: oo.stoid,
2293   - user_id: user_id,
2294   - goods_id: goodsinfo.goods_id,
2295   - prom_type: goodsinfo.prom_type,
2296   - prom_id: goodsinfo.prom_id
2297   - },
2298   - }).then(res => {
2299   - var buy_num_data = res.data.data;
2300   - if (buy_num_data.promgoodsbuynum) {
2301   - promgoodsbuynum = buy_num_data.promgoodsbuynum;
2302   - var txt = "requestData[" + pitem + "].goods[" + item + "].zh_b_num";
2303   - th.setData({
2304   - [txt]: promgoodsbuynum
2305   - });
2306   - }
2307   - goodsbuynum = buy_num_data.goodsbuynum;
2308 2722  
  2723 + }
2309 2724  
2310   - })
2311 2725  
2312   - //--> by ty
2313   - // var buyed_mum2 = t.goods_num + goodsbuynum;
2314   - var buyed_mum2 = t.goods_num;
2315   - //<--
2316   -
2317   - // 判断当前预购买的数量是否超过可购买的数量
2318   - if (buyed_mum2 > (limit - goodsbuynum) && limit > 0) {
2319   - wx.showToast({
2320   - title: '购买数量超出商品限购',
2321   - icon: 'none',
2322   - });
2323   - //getApp().my_warnning('购买数量超出商品限购', 0, th);
2324   - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
2325   -
2326   - //--> by ty
2327   - var cbuy = limit - goodsbuynum;
2328   - // var cbuy = limit - buyed_mum2 + 1;
2329   - //<--
2330   -
2331   - e.setData({
2332   - // [txt]: cbuy > 0 ? cbuy : 0,
2333   - [txt]: cbuy > 0 ? cbuy : limit,
2334   - });
2335   - e.doCheckAll();
2336   -
2337   - t.goods_num = cbuy > 0 ? cbuy : limit,
2338   - // t.goods_num = cbuy > 0 ? cbuy : 0,
2339   - e.update_cart(t, pitem, item);
2340   - return false;
2341   - }
  2726 + await e.doCheckAll();
  2727 + await e.update_cart_ser(t, pitem, item);
2342 2728  
2343 2729  
2344   - switch (goodsinfo.prom_type) {
2345   - case 1:
2346   - //读取秒杀
2347   - rq.get("/api/ms/flash_sale/getFlashSaleOne/" + oo.stoid + "/" + goodsinfo.prom_id, {
2348   - isShowLoading: 0,
2349   - success: function (res_d) {
2350   - if (res_d.data.code == 0 && res_d.data.data) {
2351   - if (t.goods_num > store_count) {
2352   - // wx.showModal({
2353   - // title: '提示',
2354   - // content: '购买数量超出商品库存'
2355   - // });
2356   - wx.showToast({
2357   - title: '购买数量超出商品库存',
2358   - icon: 'none',
2359   - });
2360   - // getApp().my_warnning('购买数量超出商品库存', 0, th);
2361   - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
2362   - e.setData({
2363   - [txt]: store_count
2364   - });
2365   - e.doCheckAll();
2366   -
2367   - t.goods_num = store_count;
2368   - e.update_cart(t, pitem, item);
2369   -
2370   - return false;
2371   - }
2372   -
2373   - var false_data = res_d.data.data;
2374   - //--判断库存--
2375   - if (t.goods_num > false_data.goods_num - false_data.buy_num) {
2376   - // wx.showModal({
2377   - // title: '提示',
2378   - // content: '购买数量超出活动库存'
2379   - // });
2380   - wx.showToast({
2381   - title: '购买数量超出活动库存',
2382   - icon: 'none',
2383   - });
2384   - // getApp().my_warnning('购买数量超出活动库存', 0, th);
2385   - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
2386   - e.setData({
2387   - [txt]: false_data.goods_num - false_data.buy_num
2388   - });
2389   - e.doCheckAll();
2390   -
2391   - t.goods_num = false_data.goods_num - false_data.buy_num;
2392   - e.update_cart(t, pitem, item);
2393   -
2394   - return false;
2395   - }
2396   -
2397   - //--判断redis数量是否已经超出--
2398   - if (t.goods_num > false_data.redisnum) {
2399   - // wx.showModal({
2400   - // title: '提示',
2401   - // content: '购买数量超出商品库存'
2402   - // });
2403   - wx.showToast({
2404   - title: '购买数量超出商品库存',
2405   - icon: 'none',
2406   - });
2407   - //getApp().my_warnning('购买数量超出商品库存', 0, th);
2408   - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
2409   - e.setData({
2410   - [txt]: false_data.redisnum
2411   - });
2412   - e.doCheckAll();
2413   -
2414   - t.goods_num = false_data.redisnum;
2415   - e.update_cart(t, pitem, item);
2416   - return false;
2417   - }
2418   -
2419   - //--活动的限购是不是要判断--
2420   - if (t.goods_num + promgoodsbuynum > false_data.buy_limit && false_data.buy_limit > 0) {
2421   - // wx.showModal({
2422   - // title: '提示',
2423   - // content: '购买数量超出秒杀限购'
2424   - // });
2425   - wx.showToast({
2426   - title: '购买数量超出秒杀限购',
2427   - icon: 'none',
2428   - });
2429   - // getApp().my_warnning('购买数量超出秒杀限购', 0, th);
2430   - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
2431   - e.setData({
2432   - [txt]: false_data.buy_limit
2433   - });
2434   - e.doCheckAll();
2435   - t.goods_num = (false_data.buy_limit - promgoodsbuynum) ? false_data.buy_limit - promgoodsbuynum : 0;
2436   - e.update_cart(t, pitem, item);
2437   - return false;
2438   - }
2439   - e.update_cart(t, pitem, item);
2440   -
2441   - } else {
2442   - normal_check(store_count, goodsinfo, wareIds);
2443   - }
2444   - }
2445   - })
2446   - break;
2447   - case 2:
2448   - getApp().request.promiseGet("/api/weshop/goods/groupBuy/getActInfo/" + os.stoid + "/" + goodsinfo.goods_id + "/" + goodsinfo.prom_id, {}).then(res => {
2449   - if (res.data.code == 0 && res.data.data) {
2450   - if (t.goods_num > store_count) {
2451   - // wx.showModal({
2452   - // title: '提示',
2453   - // content: '购买数量超出商品库存'
2454   - // });
2455   - wx.showToast({
2456   - title: '购买数量超出商品库存',
2457   - icon: 'none',
2458   - });
2459   - // getApp().my_warnning('购买数量超出商品库存', 0, th);
2460   - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
2461   - e.setData({
2462   - [txt]: store_count
2463   - });
2464   - e.doCheckAll();
2465   -
2466   - t.goods_num = store_count;
2467   - e.update_cart(t, pitem, item);
2468   -
2469   - return false;
2470   - }
2471   -
2472   - var gr_data = res.data.data;
2473   - //--判断库存--
2474   - if (t.goods_num > gr_data.goods_num - gr_data.buy_num) {
2475   - // wx.showModal({
2476   - // title: '提示',
2477   - // content: '购买数量超出活动库存'
2478   - // });
2479   - wx.showToast({
2480   - title: '购买数量超出活动库存',
2481   - icon: 'none',
2482   - });
2483   - // getApp().my_warnning('购买数量超出活动库存', 0, th);
2484   - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
2485   - e.setData({
2486   - [txt]: gr_data.goods_num - gr_data.buy_num
2487   - });
2488   - e.doCheckAll();
2489   -
2490   - t.goods_num = gr_data.goods_num - gr_data.buy_num;
2491   - e.update_cart(t, pitem, item);
2492   -
2493   - return false;
2494   - }
2495   -
2496   - //--判断redis数量是否已经超出--
2497   - if (t.goods_num > gr_data.redisnum) {
2498   - // wx.showModal({
2499   - // title: '提示',
2500   - // content: '购买数量超出商品库存'
2501   - // });
2502   - wx.showToast({
2503   - title: '购买数量超出商品库存',
2504   - icon: 'none',
2505   - });
2506   - // getApp().my_warnning('购买数量超出商品库存', 0, th);
2507   - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
2508   - e.setData({
2509   - [txt]: gr_data.redisnum
2510   - });
2511   - e.doCheckAll();
2512   -
2513   - t.goods_num = gr_data.redisnum;
2514   - e.update_cart(t, pitem, item);
2515   - return false;
2516   - }
2517   -
2518   - //--活动的限购是不是要判断--
2519   - if (t.goods_num + promgoodsbuynum > gr_data.buy_limit && gr_data.buy_limit > 0) {
2520   - // wx.showModal({
2521   - // title: '提示',
2522   - // content: '购买数量超出团购限购'
2523   - // });
2524   - wx.showToast({
2525   - title: '购买数量超出团购限购',
2526   - icon: 'none',
2527   - });
2528   - // getApp().my_warnning('购买数量超出团购限购', 0, th);
2529   - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
2530   - e.setData({
2531   - [txt]: gr_data.buy_limit
2532   - });
2533   - e.doCheckAll();
2534   -
2535   - t.goods_num = (gr_data.buy_limit - promgoodsbuynum) ? gr_data.buy_limit - promgoodsbuynum : 0;
2536   - e.update_cart(t, pitem, item);
2537   - return false;
2538   - }
2539   - e.update_cart(t, pitem, item);
  2730 + },
2540 2731  
2541   - } else {
2542   - normal_check(store_count, goodsinfo, wareIds);
2543   - }
2544   - })
2545 2732  
2546   - break;
2547   - default:
2548   - normal_check(store_count, goodsinfo, wareIds);
2549   - break
2550   - }
2551   - }
2552   - });
2553   - },
  2733 + // 检查购物车数量
  2734 + async checkCartNum(t, item, pitem) {
  2735 + var th = this;
  2736 + if (t.is_pd_normal) return false;
  2737 + if (t.prom_type == 1) {
  2738 + var txt = "service_data[" + pitem + "].goods[" + item + "].goods_num";
  2739 + var redis_num = 0;
  2740 +
  2741 + //------判断活动是否抢光-----
  2742 + await getApp().request.promiseGet("/api/weshop/activitylist/getActLen/" +
  2743 + t.store_id + "/" + t.prom_type + "/" + t.prom_id, {
  2744 + 1: 1
  2745 + }).then(res => {
  2746 + redis_num = res.data.data;
  2747 + });
2554 2748  
2555   - //----------------------更新购物数量,加减,调用接口---------------------
2556   - postCardList_ser: async function (t, item, pitem) {
2557   - var e = this,
2558   - th = e;
2559   - var user_id = getApp().globalData.user_id;
2560   - var txt = "service_data[" + pitem + "].goods[" + item + "].goods_num";
  2749 + // 检测库存
  2750 + if (redis_num == 0) {
  2751 + wx.showToast({
  2752 + title: '超出活动库存',
  2753 + icon: 'none',
  2754 + });
  2755 + // getApp().my_warnning('超出活动库存', 0, th);
  2756 + th.setData({ [txt]: redis_num });
  2757 + return false;
  2758 + };
2561 2759  
2562   - e.setData({
2563   - [txt]: t.goods_num
  2760 + if (t.goods_num > redis_num) {
  2761 + wx.showToast({
  2762 + title: '超出活动库存',
  2763 + icon: 'none',
2564 2764 });
  2765 + // getApp().my_warnning('超出活动库存', 0, th);
  2766 + th.setData({ [txt]: redis_num });
  2767 + return false;
  2768 + };
2565 2769  
2566   - // 1.秒杀活动
2567   - // 2.活动开始
2568   - if(t.prom_type == 1 && t.is_pd_normal == 0) {
2569   - var txt = "service_data[" + pitem + "].goods[" + item + "].goods_num";
2570   - var redis_num = 0;
2571   -
2572   - // 获取其他门店,同类商品的数量
2573   - var cartGoodsNum = 0;
2574   - await getApp().request.promiseGet("/api/weshop/cartService/page?store_id="+t.store_id+"&user_id="+getApp().globalData.user_id+"&service_id="+t.goods_id,
2575   - { }).then(res => {
2576   - if (res.data.data.pageData.length > 0) {
2577   - const tmpObj = res.data.data.pageData;
2578   - tmpObj.forEach(v => {
2579   - if (t.id != v.id) {
2580   - cartGoodsNum += parseInt(v.goods_num);
2581   - }
2582   -
2583   - });
2584   - }
2585   - });
2586   - // 当前商品数量包括其他门店
2587   - var totalNum = 0
2588   - if (cartGoodsNum > 0) {
2589   - totalNum = t.goods_num + cartGoodsNum;
2590   - } else {
2591   - totalNum = t.goods_num;
2592   - }
  2770 + // 个人限购
  2771 + //----获取用户活动购买数----
  2772 + await getApp().request.promiseGet("/api/weshop/rechargeServicelist/getUserBuyGoodsNum?store_id=" + t.store_id + "&user_id=" + getApp().globalData.user_id + "&card_id=" + t.goods_id + "&prom_type=" + t.prom_type + "&prom_id=" + t.prom_id, {
  2773 + }).then(tt => {
  2774 + if (tt.data.code == 0) {
  2775 + th.setData({
  2776 + promcardbuynum: tt.data.data.promcardbuynum,
  2777 + cardbuynum: tt.data.data.cardbuynum,
  2778 + });
  2779 + };
  2780 + });
2593 2781  
2594   - //获取当前商品活动库存
2595   - await getApp().request.promiseGet("/api/weshop/activitylist/getActLen/" +
2596   - t.store_id + "/" + t.prom_type + "/" + t.prom_id, {
2597   - 1: 1
2598   - }).then(res => {
2599   - redis_num = res.data.data;
2600   - });
2601   -
2602   - // 检测库存
2603   - if(redis_num == 0) {
2604   - wx.showToast({
2605   - title: '超出活动库存',
2606   - icon: 'none',
2607   - });
2608   - // getApp().my_warnning('超出活动库存', 0, th);
2609   - th.setData({[txt]: redis_num});
2610   - t.goods_num = redis_num;
2611   - await th.doCheckAll();
2612   - await th.update_cart_ser(t, pitem, item);
2613   - return false;
2614   - };
2615 2782  
2616   - // 限购数量
2617   - var buylimit = 0
2618   - await getApp().request.promiseGet("/api/ms/flash_sale/getNew/" + t.store_id + "/" + getApp().globalData.user_id + "/" + t.prom_id, {
2619   -
2620   - }).then(res => {
2621   - if(res.data.code == 0) {
2622   - th.data.sele_g = res.data.data;
2623   - th.data.sele_g.viplimited = res.data.data.buy_limit;
2624   - buylimit = !res.data.data.buy_limit ? 0 : res.data.data.buy_limit;
2625   - };
2626   - });
2627 2783  
2628   - //用户已经成功付款购买的数量
2629   - var gd_buy_num = 0;
2630   - await getApp().request.promiseGet("/api/weshop/rechargeServicelist/getUserBuyGoodsNum?store_id="+t.store_id+"&user_id="+getApp().globalData.user_id+"&card_id="+t.card_id+"&prom_type="+t.prom_type+"&prom_id="+t.prom_id, {
2631   - }).then(tt => {
2632   - if (tt.data.code == 0) {
2633   - gd_buy_num = !tt.data.data.promcardbuynum ? 0 : tt.data.data.promcardbuynum;
2634   - th.setData({
2635   - promcardbuynum: !tt.data.data.promcardbuynum ? 0 : tt.data.data.promcardbuynum,
2636   - cardbuynum: tt.data.data.cardbuynum,
2637   - });
2638   - };
2639   - });
  2784 + var buylimit = 0
  2785 + await getApp().request.promiseGet("/api/ms/flash_sale/getNew/" + t.store_id + "/" + getApp().globalData.user_id + "/" + t.prom_id, {
2640 2786  
2641   - // 剩余购买数
2642   - let num = buylimit - gd_buy_num;
  2787 + }).then(res => {
  2788 + if (res.data.code == 0) {
2643 2789  
2644   - if(totalNum > redis_num) {
2645   - wx.showToast({
2646   - title: '超出活动库存',
2647   - icon: 'none',
2648   - });
2649   - // getApp().my_warnning('超出活动库存', 0, th);
2650   - // 开启限购
2651   - if (buylimit > 0) {
2652   - if (num > redis_num) {
2653   - th.setData({[txt]: redis_num-cartGoodsNum});
2654   - t.goods_num = redis_num-cartGoodsNum;
2655   - await th.doCheckAll();
2656   - await th.update_cart_ser(t, pitem, item);
2657   - } else {
2658   - th.setData({[txt]: num - cartGoodsNum});
2659   - t.goods_num = num - cartGoodsNum;
2660   - await th.doCheckAll();
2661   - await th.update_cart_ser(t, pitem, item);
2662   - }
2663   - } else {
2664   - th.setData({[txt]: redis_num - cartGoodsNum});
2665   - t.goods_num = redis_num - cartGoodsNum;
2666   - await th.doCheckAll();
2667   - await th.update_cart_ser(t, pitem, item);
2668   - }
  2790 + th.data.sele_g = res.data.data;
  2791 + th.data.sele_g.viplimited = res.data.data.buy_limit;
  2792 + buylimit = res.data.data.buy_limit;
  2793 + };
  2794 + });
2669 2795  
2670   - return false;
2671   - };
2672 2796  
2673   -
2674   - //--秒杀:判断商品是否超出活动限购--
2675   - if (buylimit > 0) {
2676   -
2677   - // 如果限购数量<=活动库存数量,增加数量时会先超过限购数量,此时应提示“超出活动限购数量”
2678   - if(totalNum > num) {
2679   - // 计算还可以购买的数量:库存量 - 已购数
2680   - wx.showToast({
2681   - title: '超出活动限购',
2682   - icon: 'none',
2683   - });
2684   - // getApp().my_warnning('超出活动限购', 0, th);
2685   - if (num <= 0) num = 1;
2686   - th.setData({[txt]: num - cartGoodsNum});
2687   - t.goods_num = num - cartGoodsNum;
2688   - await th.doCheckAll();
2689   - await th.update_cart_ser(t, pitem, item);
2690   - return false;
2691   - };
2692   -
2693   - }
2694   -
2695   -
2696   - }
  2797 + //--秒杀:判断商品是否超出活动限购--
  2798 + if (buylimit > 0) {
2697 2799  
  2800 + var gd_buy_num = th.data.promcardbuynum;
2698 2801  
2699   - await e.doCheckAll();
2700   - await e.update_cart_ser(t, pitem, item);
2701   -
2702   -
2703   - },
2704   -
2705   -
2706   - // 检查购物车数量
2707   - async checkCartNum(t, item, pitem) {
2708   - var th = this;
2709   - if(t.is_pd_normal) return false;
2710   - if (t.prom_type == 1) {
2711   - var txt = "service_data[" + pitem + "].goods[" + item + "].goods_num";
2712   - var redis_num = 0;
2713   -
2714   - //------判断活动是否抢光-----
2715   - await getApp().request.promiseGet("/api/weshop/activitylist/getActLen/" +
2716   - t.store_id + "/" + t.prom_type + "/" + t.prom_id, {
2717   - 1: 1
2718   - }).then(res => {
2719   - redis_num = res.data.data;
2720   - });
2721   -
2722   - // 检测库存
2723   - if(redis_num == 0) {
2724   - wx.showToast({
2725   - title: '超出活动库存',
2726   - icon: 'none',
2727   - });
2728   - // getApp().my_warnning('超出活动库存', 0, th);
2729   - th.setData({[txt]: redis_num});
2730   - return false;
2731   - };
  2802 + // 如果限购数量<=活动库存数量,增加数量时会先超过限购数量,此时应提示“超出活动限购数量”
  2803 + if (t.goods_num + gd_buy_num > buylimit) {
  2804 + // 计算还可以购买的数量:库存量 - 已购数
  2805 + wx.showToast({
  2806 + title: '超出活动限购',
  2807 + icon: 'none',
  2808 + });
  2809 + // getApp().my_warnning('超出活动限购', 0, th);
  2810 + th.setData({ [txt]: buylimit });
2732 2811  
2733   - if(t.goods_num > redis_num) {
2734   - wx.showToast({
2735   - title: '超出活动库存',
2736   - icon: 'none',
2737   - });
2738   - // getApp().my_warnning('超出活动库存', 0, th);
2739   - th.setData({[txt]: redis_num});
2740   - return false;
2741   - };
  2812 + };
2742 2813  
2743   - // 个人限购
2744   - //----获取用户活动购买数----
2745   - await getApp().request.promiseGet("/api/weshop/rechargeServicelist/getUserBuyGoodsNum?store_id="+t.store_id+"&user_id="+getApp().globalData.user_id+"&card_id="+t.goods_id+"&prom_type="+t.prom_type+"&prom_id="+t.prom_id, {
2746   - }).then(tt => {
2747   - if (tt.data.code == 0) {
2748   - th.setData({
2749   - promcardbuynum: tt.data.data.promcardbuynum,
2750   - cardbuynum: tt.data.data.cardbuynum,
2751   - });
2752   - };
2753   - });
2754   -
2755   -
2756   -
2757   - var buylimit = 0
2758   - await getApp().request.promiseGet("/api/ms/flash_sale/getNew/" + t.store_id + "/" + getApp().globalData.user_id + "/" + t.prom_id, {
2759   -
2760   - }).then(res => {
2761   - if(res.data.code == 0) {
2762   -
2763   - th.data.sele_g = res.data.data;
2764   - th.data.sele_g.viplimited = res.data.data.buy_limit;
2765   - buylimit = res.data.data.buy_limit;
2766   - };
2767   - });
2768   -
2769   -
2770   - //--秒杀:判断商品是否超出活动限购--
2771   - if (buylimit > 0) {
2772   -
2773   - var gd_buy_num = th.data.promcardbuynum;
2774   -
2775   - // 如果限购数量<=活动库存数量,增加数量时会先超过限购数量,此时应提示“超出活动限购数量”
2776   - if(t.goods_num + gd_buy_num > buylimit) {
2777   - // 计算还可以购买的数量:库存量 - 已购数
2778   - wx.showToast({
2779   - title: '超出活动限购',
2780   - icon: 'none',
2781   - });
2782   - // getApp().my_warnning('超出活动限购', 0, th);
2783   - th.setData({[txt]: buylimit});
2784   -
2785   - };
2786   -
2787   - }
2788   -
2789   -
2790   - th.doCheckAll();
2791   - th.update_cart_ser(t, pitem, item);
2792   -
  2814 + }
2793 2815  
2794   -
2795   - };
2796   - },
2797 2816  
  2817 + th.doCheckAll();
  2818 + th.update_cart_ser(t, pitem, item);
2798 2819  
2799 2820  
2800   - //---检验线下库存的数量---
2801   - async check_down_line(t, pitem, item, erpwareid) {
2802   - var ob = {},
2803   - th = this;
2804   - await this.check_down_line_next(t, pitem, item, erpwareid, function (res) {
2805   - ob = res;
2806   - });
2807   - var log = 0;
2808   - if (ob.code == -1) {
2809   - // wx.showModal({
2810   - // title: '提示',
2811   - // content: '购买数量超出商品库存'
2812   - // });
2813   - wx.showToast({
2814   - title: '购买数量超出商品库存',
2815   - icon: 'none',
2816   - });
2817   - // getApp().my_warnning('购买数量超出商品库存', 0, th);
2818   - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
2819   - th.setData({
2820   - [txt]: ob.CanOutQty
2821   - });
2822   - th.doCheckAll();
2823   - t.goods_num = ob.CanOutQty;
2824   - }else{
2825 2821  
2826   - var this_obj=this.data.requestData[pitem].goods[item];
  2822 + };
  2823 + },
2827 2824  
2828   - if(th.data.sales_rules==3 && this_obj.selected){
2829 2825  
2830 2826  
2831   - var goods_id=this_obj.goods_id;
  2827 + //---检验线下库存的数量---
  2828 + async check_down_line(t, pitem, item, erpwareid) {
  2829 + var ob = {},
  2830 + th = this;
  2831 + await this.check_down_line_next(t, pitem, item, erpwareid, function (res) {
  2832 + ob = res;
  2833 + });
  2834 + var log = 0;
  2835 + if (ob.code == -1) {
  2836 + // wx.showModal({
  2837 + // title: '提示',
  2838 + // content: '购买数量超出商品库存'
  2839 + // });
  2840 + wx.showToast({
  2841 + title: '购买数量超出商品库存',
  2842 + icon: 'none',
  2843 + });
  2844 + // getApp().my_warnning('购买数量超出商品库存', 0, th);
  2845 + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
  2846 + th.setData({
  2847 + [txt]: ob.CanOutQty
  2848 + });
  2849 + th.doCheckAll();
  2850 + t.goods_num = ob.CanOutQty;
  2851 + } else {
2832 2852  
2833   - var num=0;
  2853 + var this_obj = this.data.requestData[pitem].goods[item];
2834 2854  
2835   - for (let i = 0; i < this.data.requestData.length; i++) {
2836   - if(pitem==i) continue;
2837   - var it= this.data.requestData[i].goods.find((e)=>{
2838   - return e.goods_id==goods_id;
2839   - })
2840   - if(it && it.selected) num+=it.goods_num
2841   - }
  2855 + if (th.data.sales_rules == 3 && this_obj.selected) {
2842 2856  
2843   - if(num>ob.CanOutQty){
2844   - wx.showToast({
2845   - title: '购买数量超出商品库存',
2846   - icon: 'none',
2847   - });
2848 2857  
2849   - th.data.up_dating = 0;
2850   - return false;
2851   - }
  2858 + var goods_id = this_obj.goods_id;
2852 2859  
  2860 + var num = 0;
2853 2861  
  2862 + for (let i = 0; i < this.data.requestData.length; i++) {
  2863 + if (pitem == i) continue;
  2864 + var it = this.data.requestData[i].goods.find((e) => {
  2865 + return e.goods_id == goods_id;
  2866 + })
  2867 + if (it && it.selected) num += it.goods_num
  2868 + }
2854 2869  
2855   - }
  2870 + if (num > ob.CanOutQty) {
  2871 + wx.showToast({
  2872 + title: '购买数量超出商品库存',
  2873 + icon: 'none',
  2874 + });
  2875 +
  2876 + th.data.up_dating = 0;
  2877 + return false;
2856 2878 }
2857 2879  
2858 2880  
2859 2881  
  2882 + }
  2883 + }
2860 2884  
2861   - this.update_cart(t, pitem, item);
2862   - },
2863 2885  
2864   - //---检验线下库存的数量的子函数---
2865   - async check_down_line_next(t, pitem, item, erpwareid, func) {
2866 2886  
2867   - var goodsinfo = this.data.requestData[pitem].goods[item];
2868   - var lock = 0,
2869   - pick_no, plist;
2870 2887  
2871   - var lock_rq={
2872   - store_id: os.stoid, wareId: t.goods_id,
2873   - storageId: goodsinfo.pick_id, pageSize: 1000
2874   - }
  2888 + this.update_cart(t, pitem, item);
  2889 + },
2875 2890  
2876   - if(this.data.sales_rules==3){
2877   - lock_rq.appoint_pick_keyid=this.data.appoint_pick_keyid;
2878   - delete lock_rq.storageId
2879   - }
  2891 + //---检验线下库存的数量的子函数---
  2892 + async check_down_line_next(t, pitem, item, erpwareid, func) {
2880 2893  
2881   - //先读取门店的lock
2882   - await getApp().request.promiseGet("/api/weshop/order/ware/lock/page", {
2883   - data: lock_rq
2884   - }).then(res => {
2885   - if (res.data.code == 0 && res.data.data.total > 0) {
2886   - for (var i in res.data.data.pageData)
2887   - lock += res.data.data.pageData[i].outQty;
2888   - }
2889   - })
  2894 + var goodsinfo = this.data.requestData[pitem].goods[item];
  2895 + var lock = 0,
  2896 + pick_no, plist;
2890 2897  
2891   - if(this.data.sales_rules==2) {
2892   - //先获取门店的编号
2893   - await getApp().request.promiseGet("/api/weshop/pickup/get/" + os.stoid + "/" + goodsinfo.pick_id, {
2894   - data: {
2895   - storeId: os.stoid,
2896   - goodsId: t.goods_id,
2897   - pickupId: goodsinfo.pick_id
2898   - }
2899   - }).then(res => {
2900   - if (res.data.code == 0) {
2901   - pick_no = res.data.data.pickup_no;
2902   - }
2903   - })
2904   - }
  2898 + var lock_rq = {
  2899 + store_id: os.stoid, wareId: t.goods_id,
  2900 + storageId: goodsinfo.pick_id, pageSize: 1000
  2901 + }
2905 2902  
2906   - var sto_rq={storageNos:pick_no,wareIds:encodeURIComponent(erpwareid),storeId:os.stoid};
  2903 + if (this.data.sales_rules == 3) {
  2904 + lock_rq.appoint_pick_keyid = this.data.appoint_pick_keyid;
  2905 + delete lock_rq.storageId
  2906 + }
2907 2907  
2908   - if(this.data.sales_rules==3){
2909   - sto_rq.storageIds=this.data.appoint_pick_keyid;
2910   - delete sto_rq.storageNos
  2908 + //先读取门店的lock
  2909 + await getApp().request.promiseGet("/api/weshop/order/ware/lock/page", {
  2910 + data: lock_rq
  2911 + }).then(res => {
  2912 + if (res.data.code == 0 && res.data.data.total > 0) {
  2913 + for (var i in res.data.data.pageData)
  2914 + lock += res.data.data.pageData[i].outQty;
  2915 + }
  2916 + })
  2917 +
  2918 + if (this.data.sales_rules == 2) {
  2919 + //先获取门店的编号
  2920 + await getApp().request.promiseGet("/api/weshop/pickup/get/" + os.stoid + "/" + goodsinfo.pick_id, {
  2921 + data: {
  2922 + storeId: os.stoid,
  2923 + goodsId: t.goods_id,
  2924 + pickupId: goodsinfo.pick_id
2911 2925 }
2912   - //读取线下的门店库存
2913   - await getApp().request.promiseGet("/api/weshop/goods/getWareStorages",{
2914   - data:sto_rq
2915   - }).then(res=>{
2916   - if(ut.ajax_ok(res)){
2917   - plist=res.data.data.pageData[0];
2918   - }
2919   - })
2920   - var ob = {};
2921   - ob.code = 1;
2922   -
2923   - if (!plist) {
2924   - ob.code = -1;
2925   - ob.CanOutQty = 0;
2926   - func(ob);
2927   - return false;
  2926 + }).then(res => {
  2927 + if (res.data.code == 0) {
  2928 + pick_no = res.data.data.pickup_no;
2928 2929 }
  2930 + })
  2931 + }
  2932 +
  2933 + var sto_rq = { storageNos: pick_no, wareIds: encodeURIComponent(erpwareid), storeId: os.stoid };
  2934 +
  2935 + if (this.data.sales_rules == 3) {
  2936 + sto_rq.storageIds = this.data.appoint_pick_keyid;
  2937 + delete sto_rq.storageNos
  2938 + }
  2939 + //读取线下的门店库存
  2940 + await getApp().request.promiseGet("/api/weshop/goods/getWareStorages", {
  2941 + data: sto_rq
  2942 + }).then(res => {
  2943 + if (ut.ajax_ok(res)) {
  2944 + plist = res.data.data.pageData[0];
  2945 + }
  2946 + })
  2947 + var ob = {};
  2948 + ob.code = 1;
  2949 +
  2950 + if (!plist) {
  2951 + ob.code = -1;
  2952 + ob.CanOutQty = 0;
  2953 + func(ob);
  2954 + return false;
  2955 + }
  2956 +
  2957 + var c_num = t.goods_num;
  2958 + if (t.need_downlow_num) c_num = t.need_downlow_num;
  2959 +
  2960 + if (c_num > plist.CanOutQty - lock) {
  2961 + ob.code = -1;
  2962 + ob.CanOutQty = plist.CanOutQty - lock
  2963 + if (ob.CanOutQty < 0) ob.CanOutQty = 0;
  2964 + } else {
  2965 + ob.CanOutQty = plist.CanOutQty - c_num - lock;
  2966 + }
2929 2967  
2930   - var c_num = t.goods_num;
2931   - if (t.need_downlow_num) c_num = t.need_downlow_num;
2932 2968  
2933   - if (c_num > plist.CanOutQty - lock) {
2934   - ob.code = -1;
2935   - ob.CanOutQty = plist.CanOutQty - lock
2936   - if (ob.CanOutQty < 0) ob.CanOutQty = 0;
2937   - }else{
2938   - ob.CanOutQty=plist.CanOutQty-c_num- lock;
2939   - }
  2969 + func(ob)
  2970 + },
2940 2971  
2941 2972  
2942   - func(ob)
2943   - },
  2973 + //--更新购物车---
  2974 + update_cart: function (t, pitem, item) {
  2975 + var e = this;
2944 2976  
  2977 + getApp().request.put("/api/weshop/cart/update", {
  2978 + data: t,
  2979 + success: async function (ee) {
  2980 + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
2945 2981  
2946   - //--更新购物车---
2947   - update_cart: function (t, pitem, item) {
2948   - var e = this;
  2982 + e.setData({
  2983 + [txt]: t.goods_num,
  2984 + });
2949 2985  
2950   - getApp().request.put("/api/weshop/cart/update", {
2951   - data: t,
2952   - success: async function (ee) {
2953   - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
  2986 + e.data.duo_zp_num_arr = {};
  2987 + //await e.check_prom_activity(pitem)
  2988 + for (var i in e.data.requestData) {
  2989 + await e.check_prom_activity(i)
  2990 + }
  2991 + e.doCheckAll();
  2992 + getApp().requestCardNum(e);
  2993 + }
  2994 + });
  2995 + },
2954 2996  
2955   - e.setData({
2956   - [txt]: t.goods_num,
2957   - });
  2997 + //--更新购物车---
  2998 + update_cart_ser: function (t, pitem, item) {
  2999 + var e = this;
2958 3000  
2959   - e.data.duo_zp_num_arr={};
2960   - //await e.check_prom_activity(pitem)
2961   - for (var i in e.data.requestData) {
2962   - await e.check_prom_activity(i)
2963   - }
2964   - e.doCheckAll();
2965   - getApp().requestCardNum(e);
2966   - }
2967   - });
2968   - },
2969   -
2970   - //--更新购物车---
2971   - update_cart_ser: function (t, pitem, item) {
2972   - var e = this;
2973   -
2974   - getApp().request.put("/api/weshop/cartService/update", {
2975   - data: t,
2976   - success: async function (ee) {
2977   - var txt = "service_data[" + pitem + "].goods[" + item + "].goods_num";
2978   - e.setData({
2979   - [txt]: t.goods_num,
2980   - });
2981   - e.doCheckAll();
2982   - getApp().requestCardNum(e);
2983   - }
  3001 + getApp().request.put("/api/weshop/cartService/update", {
  3002 + data: t,
  3003 + success: async function (ee) {
  3004 + var txt = "service_data[" + pitem + "].goods[" + item + "].goods_num";
  3005 + e.setData({
  3006 + [txt]: t.goods_num,
2984 3007 });
2985   - },
  3008 + e.doCheckAll();
  3009 + getApp().requestCardNum(e);
  3010 + }
  3011 + });
  3012 + },
2986 3013  
2987 3014  
2988   - //-------下拉刷新---------
2989   - onPullDownRefresh: function (t) {
2990   - this.getCardList();
2991   - },
  3015 + //-------下拉刷新---------
  3016 + onPullDownRefresh: function (t) {
  3017 + this.getCardList();
  3018 + },
2992 3019  
2993   - //--------------去结算------------
2994   - async checkout() {
  3020 + //--------------去结算------------
  3021 + async checkout() {
2995 3022  
2996   - if(getApp().is_sp_hao()){
2997   - wx.showToast({
2998   - title: "视频号不支持购物车购买",
2999   - icon: 'none',
3000   - duration: 2000
3001   - });
3002   - return false;
3003   - }
3004   -
3005   - if (!this.data.total_num || this.data.total_num <= 0) return false;
3006   - if (!this.data.is_load) return false;
3007   - if (this.data.up_dating) {
3008   - wx.showLoading({
3009   - title: "计算中"
3010   - })
  3023 + if (getApp().is_sp_hao()) {
  3024 + wx.showToast({
  3025 + title: "视频号不支持购物车购买",
  3026 + icon: 'none',
  3027 + duration: 2000
  3028 + });
  3029 + return false;
  3030 + }
  3031 +
  3032 + if (!this.data.total_num || this.data.total_num <= 0) return false;
  3033 + if (!this.data.is_load) return false;
  3034 + if (this.data.up_dating) {
  3035 + wx.showLoading({
  3036 + title: "计算中"
  3037 + })
  3038 + }
  3039 + var garr = this.data.requestData;
  3040 + var check_is_goods_selected = 0;
  3041 + if (garr) {
  3042 + for (var ii in garr) {
  3043 + for (var ij in garr[ii].goods) {
  3044 + if (garr[ii].goods[ij].selected) {
  3045 + check_is_goods_selected = 1;
  3046 + break;
  3047 + }
3011 3048 }
3012   - var garr = this.data.requestData;
3013   - var check_is_goods_selected = 0;
3014   - if (garr) {
3015   - for (var ii in garr) {
3016   - for (var ij in garr[ii].goods) {
3017   - if (garr[ii].goods[ij].selected) {
3018   - check_is_goods_selected = 1;
3019   - break;
3020   - }
3021   - }
  3049 + }
  3050 + }
  3051 + //-- 如果是商品的结算 --
  3052 + if (check_is_goods_selected) {
  3053 + var glist = ""; //用逗号隔开的
  3054 + var map = new Map(); //使用map值键进行运算
  3055 + var map_limit = new Map(); //使用map值键进行存储限购
  3056 + var g_arr = new Array(); //已选的商品列表
  3057 + var user_id = getApp().globalData.user_id;
  3058 + var th = this;
  3059 + //用于判断是不是积分购的普通购买
  3060 + var normal_arr = {};
  3061 + var ab = 0; //选中
  3062 + wx.showLoading();
  3063 + let checkArr7 = [];//组合购选中的数据
  3064 + // let checkOff=false
  3065 + for (var i = 0; i < this.data.requestData.length; i++) {
  3066 + var i_arr = this.data.requestData[i].goods;
  3067 + for (var j = 0; j < i_arr.length; j++) {
  3068 + if (i_arr[j].selected && i_arr[j].is_gift != 1) {
  3069 + if (i_arr[j].is_pd_normal || i_arr[j].prom_type == 0 || i_arr[j].prom_type == 3) {
  3070 + normal_arr[i_arr[j].goods_id] = 1;
3022 3071 }
3023   - }
3024   - //-- 如果是商品的结算 --
3025   - if (check_is_goods_selected) {
3026   - var glist = ""; //用逗号隔开的
3027   - var map = new Map(); //使用map值键进行运算
3028   - var map_limit = new Map(); //使用map值键进行存储限购
3029   - var g_arr = new Array(); //已选的商品列表
3030   - var user_id = getApp().globalData.user_id;
3031   - var th = this;
3032   - //用于判断是不是积分购的普通购买
3033   - var normal_arr = {};
3034   - var ab = 0; //选中
3035   - wx.showLoading();
3036   - let checkArr7=[];//组合购选中的数据
3037   - // let checkOff=false
3038   - for (var i = 0; i < this.data.requestData.length; i++) {
3039   - var i_arr = this.data.requestData[i].goods;
3040   - for (var j = 0; j < i_arr.length; j++) {
3041   - if (i_arr[j].selected && i_arr[j].is_gift != 1) {
3042   - if (i_arr[j].is_pd_normal || i_arr[j].prom_type == 0 || i_arr[j].prom_type == 3) {
3043   - normal_arr[i_arr[j].goods_id] = 1;
3044   - }
3045   - if (i_arr[j].prom_type==7 && ( !this.data.requestData[i].need_list || (this.data.requestData[i].need_list && this.data.requestData[i].need_list.length==0)) && i_arr[j].act && i_arr[j].act.buy_limit !=0) {
3046   - let userbuynum = await this.getUserBuyPromNum(i_arr[j].goods_prom_id)
3047   - console.log('活动次数:' + userbuynum);
3048   - if (userbuynum >= i_arr[j].act.buy_limit) {
3049   - // i_arr[j].act.buy_userbuynum=true
3050   - checkArr7.push(i_arr[j])
3051   - }
3052   - }
3053   - //map 的key是不会重复,会覆盖,,
3054   - var ie = {
3055   - goods_id: i_arr[j].goods_id,
3056   - id: i_arr[j].id,
3057   - goods_price: i_arr[j].goods_price,
3058   - };
3059   - //判断是不是线下取价
3060   - if (i_arr[j].is_offline) {
3061   - ie.is_offline = i_arr[j].is_offline;
3062   - ie.offline_price = i_arr[j].offline_price;
3063   - ie.pricing_type = i_arr[j].pricing_type;
3064   - }
3065   - g_arr.push(ie);
3066   -
3067   - if (map.has(i_arr[j].goods_id + "")) {
3068   - var num11 = map.get(i_arr[j].goods_id + "");
3069   - var num22 = parseInt(i_arr[j].goods_num) + parseInt(num11);
3070   - map.set(i_arr[j].goods_id + "", num22);
3071   - } else {
3072   - map.set(i_arr[j].goods_id + "", i_arr[j].goods_num);
3073   - }
3074   - glist += i_arr[j].goods_id + ",";
3075   - ab = 1;
3076   - //--普通商品,如果有开启线下库存的功能,要调用线下库存进行计算,赠品不要进行调用线下库存---
3077   - if ((i_arr[j].prom_type == 0 || i_arr[j].prom_type == 3 || i_arr[j].prom_type == 5 || i_arr[j].prom_type == 7 ||
3078   - i_arr[j].need_downlow_num) && th.data.sales_rules >= 2 && i_arr[j].is_gift != 1 && !i_arr[j].whsle_id) {
3079   - //--获取商品的线下商品ID--
3080   - var gd = null;
3081   - await getApp().request.promiseGet("/api/weshop/goods/get/" + oo.stoid + "/" + i_arr[j].goods_id, {}).then(res => {
3082   - if (res.data.code == 0) gd = res.data.data;
3083   - })
3084   - //--判断商品是线下库存--
3085   - var ob = {}
3086   - await th.check_down_line_next(i_arr[j], i, j, gd.erpwareid, function (rs) {
3087   - ob = rs;
3088   - });
3089   - if (ob.code == -1) {
3090   - t.my_warnning(gd.goods_name + "门店库存不足", 0, th);
3091   - wx.hideLoading();
3092   - return false;
3093   - }
  3072 + if (i_arr[j].prom_type == 7 && (!this.data.requestData[i].need_list || (this.data.requestData[i].need_list && this.data.requestData[i].need_list.length == 0)) && i_arr[j].act && i_arr[j].act.buy_limit != 0) {
  3073 + let userbuynum = await this.getUserBuyPromNum(i_arr[j].goods_prom_id)
  3074 + console.log('活动次数:' + userbuynum);
  3075 + if (userbuynum >= i_arr[j].act.buy_limit) {
  3076 + // i_arr[j].act.buy_userbuynum=true
  3077 + checkArr7.push(i_arr[j])
  3078 + }
  3079 + }
  3080 + //map 的key是不会重复,会覆盖,,
  3081 + var ie = {
  3082 + goods_id: i_arr[j].goods_id,
  3083 + id: i_arr[j].id,
  3084 + goods_price: i_arr[j].goods_price,
  3085 + };
  3086 + //判断是不是线下取价
  3087 + if (i_arr[j].is_offline) {
  3088 + ie.is_offline = i_arr[j].is_offline;
  3089 + ie.offline_price = i_arr[j].offline_price;
  3090 + ie.pricing_type = i_arr[j].pricing_type;
  3091 + }
  3092 + g_arr.push(ie);
3094 3093  
3095   - var is_ok = 1;
3096   - //如果是优惠活动话,要看活动有没有过期
3097   - if (i_arr[j].prom_type == 3) {
3098   - //判断有没有活动
3099   - await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromList/" + os.stoid + "/" + i_arr[j].goods_id + "/1"+"/"+getApp().globalData.user_id, {}).then(res => {
3100   - if (res.data.code == 0) {
3101   - if (!res.data.data.promGoodsLists) {
3102   - t.my_warnning(i_arr[j].goods_name + "优惠活动已经过期", 0, th);
3103   - wx.hideLoading();
3104   - is_ok = 0;
3105   - }
3106   - }
3107   - })
3108   - }
3109   - if (!is_ok) {
3110   - return false;
3111   - }
3112   - }
  3094 + if (map.has(i_arr[j].goods_id + "")) {
  3095 + var num11 = map.get(i_arr[j].goods_id + "");
  3096 + var num22 = parseInt(i_arr[j].goods_num) + parseInt(num11);
  3097 + map.set(i_arr[j].goods_id + "", num22);
  3098 + } else {
  3099 + map.set(i_arr[j].goods_id + "", i_arr[j].goods_num);
  3100 + }
  3101 + glist += i_arr[j].goods_id + ",";
  3102 + ab = 1;
  3103 + //--普通商品,如果有开启线下库存的功能,要调用线下库存进行计算,赠品不要进行调用线下库存---
  3104 + if ((i_arr[j].prom_type == 0 || i_arr[j].prom_type == 3 || i_arr[j].prom_type == 5 || i_arr[j].prom_type == 7 ||
  3105 + i_arr[j].need_downlow_num) && th.data.sales_rules >= 2 && i_arr[j].is_gift != 1 && !i_arr[j].whsle_id) {
  3106 + //--获取商品的线下商品ID--
  3107 + var gd = null;
  3108 + await getApp().request.promiseGet("/api/weshop/goods/get/" + oo.stoid + "/" + i_arr[j].goods_id, {}).then(res => {
  3109 + if (res.data.code == 0) gd = res.data.data;
  3110 + })
  3111 + //--判断商品是线下库存--
  3112 + var ob = {}
  3113 + await th.check_down_line_next(i_arr[j], i, j, gd.erpwareid, function (rs) {
  3114 + ob = rs;
  3115 + });
  3116 + if (ob.code == -1) {
  3117 + t.my_warnning(gd.goods_name + "门店库存不足", 0, th);
  3118 + wx.hideLoading();
  3119 + return false;
  3120 + }
3113 3121  
3114   - } else {
3115   - if (i_arr[j].is_gift == 1) continue;
3116   - rq.put("/api/weshop/cart/update", {
3117   - data: {
3118   - id: i_arr[j].id,
3119   - selected: 0,
3120   - store_id: oo.stoid
3121   - },
3122   - success: function (ee) {
3123   - console.log(ee);
3124   - }
3125   - });
  3122 + var is_ok = 1;
  3123 + //如果是优惠活动话,要看活动有没有过期
  3124 + if (i_arr[j].prom_type == 3) {
  3125 + //判断有没有活动
  3126 + await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromList/" + os.stoid + "/" + i_arr[j].goods_id + "/1" + "/" + getApp().globalData.user_id, {}).then(res => {
  3127 + if (res.data.code == 0) {
  3128 + if (!res.data.data.promGoodsLists) {
  3129 + t.my_warnning(i_arr[j].goods_name + "优惠活动已经过期", 0, th);
  3130 + wx.hideLoading();
  3131 + is_ok = 0;
3126 3132 }
3127   - }
  3133 + }
  3134 + })
  3135 + }
  3136 + if (!is_ok) {
  3137 + return false;
  3138 + }
3128 3139 }
3129   -
3130   - if (checkArr7.length >0) {
3131   - let checkStr=[]
3132   - checkArr7.map(item=>{
3133   - checkStr.push(item.goods_name)
3134   - })
3135   - let str=checkStr.join()
3136   - wx.hideLoading()
3137   - wx.showModal({
3138   - title: '提示',
3139   - // content: `商品${str},组合购活动,购买次数已超,将以普通商品购买?`,
3140   - content: `${str}超出组合购限购次数,将以普通商品购买`,
3141   - success:res=>{
3142   - wx.showLoading();
3143   - if (res.confirm) {
3144   - console.log('用户点击确定')
3145   - //排除失效商品结算
3146   - this.data.invalidList.map(item=>{
3147   - if(item.selected && item.classType==0){
3148   - rq.put('/api/weshop/cart/update', {
3149   - data: {
3150   - id: item.id,
3151   - selected: 0,
3152   - store_id: oo.stoid
3153   - },
3154   - success: function (ee) {
3155   - console.log(ee);
3156   - }
3157   - });
3158   - }
3159   - })
3160   - if (ab == 0) {
3161   - t.my_warnning("未选择商品", 0, th);
3162   - wx.hideLoading();
3163   - return false;
3164   - }
3165 3140  
3166   - glist = glist.substring(0, glist.length - 1);
3167   - //--取一下商品的限购 以及活动的限购,redis数量--
3168   - rq.get("/api/weshop/goods/getGoodsListNum", {
3169   - data: {
3170   - goodsidlist: glist,
3171   - store_id: oo.stoid
3172   - },
3173   - async success(ee) {
3174   - console.log(ee);
3175   - if (ee.data.code == 0) {
3176   - var ddata = ee.data.data,
3177   - isok = 1,
3178   - gname = "",
3179   - err = "";
3180   - //--组装--
3181   - for (var ij = 0; ij < ddata.length; ij++) {
3182   - var val = ddata[ij];
3183   - var obj = map_limit.get(val.goods_id + "");
3184   - if (obj) continue;
3185   -
3186   - var promgoodsbuynum = 0;
3187   - var goodsbuynum = 0;
3188   -
3189   - //--要获得商品,该用户买了多少件,同步应用--
3190   - await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", {
3191   - data: {
3192   - store_id: oo.stoid,
3193   - user_id: user_id,
3194   - goods_id: val.goods_id,
3195   - prom_type: val.prom_type,
3196   - prom_id: val.prom_id
3197   - },
3198   - }).then(res => {
3199   - var buy_num_data = res.data.data;
3200   - if (buy_num_data.promgoodsbuynum) promgoodsbuynum = buy_num_data.promgoodsbuynum;
3201   - goodsbuynum = buy_num_data.goodsbuynum;
3202   - })
3203   - var ie = {
3204   - promgoodsbuynum: promgoodsbuynum,
3205   - goodsbuynum: goodsbuynum
3206   - };
3207   - map_limit.set(val.goods_id + "", ie);
3208   - }
3209   -
3210   - try {
3211   - for (var ind in ddata) {
3212   - var val = ddata[ind];
3213   - var num = map.get(val.goods_id + "");
3214   - if (num <= 0) {
3215   - isok = 0;
3216   - gname = val.goods_name;
3217   - throw "购买数量不能为0";
3218   - return false;
3219   - }
3220   -
3221   - if (val.prom_type == 1 || val.prom_type == 6) {
3222   - if (num > val.store_count) {
3223   - isok = 0;
3224   - gname = val.goods_name;
3225   - throw "超出库存";
3226   - return false;
3227   - }
3228   - }
3229   -
3230   - if (th.data.sales_rules == 1) {
3231   - if (num > val.store_count) {
3232   - isok = 0;
3233   - gname = val.goods_name;
3234   - throw "超出库存";
3235   - return false;
3236   - }
3237   - }
3238   - if (num > val.redisnum && val.redisnum && !normal_arr[val.goods_id]) {
3239   - isok = 0;
3240   - gname = val.goods_name;
3241   - throw "超出活动库存";
3242   - return false;
3243   - }
3244   - if (num > val.goods_num - val.buy_num && val.goods_num && !normal_arr[val.goods_id]) {
3245   - isok = 0;
3246   - gname = val.goods_name;
3247   - throw "超出活动库存";
3248   - return false;
3249   - }
3250   -
3251   - var buyed = map_limit.get(val.goods_id + "");
3252   - if (num + buyed.goodsbuynum > val.viplimited && val.viplimited > 0) {
3253   - isok = 0;
3254   - gname = val.goods_name;
3255   - throw "超出商品限购";
3256   - return false;
3257   - }
3258   -
3259   - if (num + buyed.promgoodsbuynum > val.buy_limit && val.buy_limit > 0 && !normal_arr[val.goods_id]) {
3260   - isok = 0;
3261   - gname = val.goods_name;
3262   - throw "超出活动限购";
3263   - return false;
3264   - }
3265   -
3266   - var card_field = th.data.card_field;
3267   - for (var i = 0; i < g_arr.length; i++) {
3268   -
3269   - if (g_arr[i].goods_id == val.goods_id) {
3270   -
3271   - //如果会员是等级会员,商品有等级价,且不是活动商品
3272   - if (card_field && val[card_field] > 0 &&
3273   - ((val.prom_type == 0 && g_arr[i].prom_type==0) || val.prom_type == 3 || val.prom_type == 4 || val.prom_type == 5 || val.prom_type == 7 || val.prom_type == 10 || normal_arr[val.goods_id])) {
3274   - if (g_arr[i].goods_price != val[card_field]) {
3275   - isok = 0;
3276   - gname = val.goods_name;
3277   - throw "商品价格已经变化";
3278   - }
3279   - } else {
3280   - if (g_arr[i].goods_price != val.shop_price && g_arr[i].goods_price != val.prom_price && val.prom_price > 0) {
3281   - isok = 0;
3282   - gname = val.goods_name;
3283   - throw "商品价格已经变化";
3284   - }
3285   - }
3286   -
3287   - //-- 数据的更新 --
3288   - var data = {
3289   - id: g_arr[i].id,
3290   - selected: 1,
3291   - store_id: oo.stoid
3292   - };
3293   - let gitem=checkArr7.find(item=>item.goods_id==g_arr[i].goods_id)
3294   - if(gitem){
3295   - data.prom_type=0
3296   - data.prom_id=0
3297   - }
3298   - //-- 如果有线下取价的时候 --
3299   - if (g_arr[i].is_offline) {
3300   - data.pricing_type = g_arr[i].pricing_type;
3301   - data.offline_price = g_arr[i].offline_price;
3302   - }
3303   - rq.put("/api/weshop/cart/update", {
3304   - data: data,
3305   - success: function (ee) {
3306   - console.log(ee);
3307   - }
3308   - });
3309   - }
3310   - }
3311   -
3312   - }
3313   - } catch (e) {
3314   - err = e;
3315   - }
3316   - if (isok == 0) {
3317   - t.confirmBox(gname + ":" + err);
3318   - wx.hideLoading();
3319   - return false;
3320   - }
3321   - wx.hideLoading();
3322   - wx.navigateTo({
3323   - url: "/packageE/pages/cart/cart2/cart2"
3324   - });
3325   - }
3326   - }
3327   - });
3328   - } else if (res.cancel) {
3329   - wx.hideLoading();
3330   - console.log('用户点击取消')
3331   - }
3332   - }
3333   - })
3334   - }else{
  3141 + } else {
  3142 + if (i_arr[j].is_gift == 1) continue;
  3143 + rq.put("/api/weshop/cart/update", {
  3144 + data: {
  3145 + id: i_arr[j].id,
  3146 + selected: 0,
  3147 + store_id: oo.stoid
  3148 + },
  3149 + success: function (ee) {
  3150 + console.log(ee);
  3151 + }
  3152 + });
  3153 + }
  3154 + }
  3155 + }
  3156 +
  3157 + if (checkArr7.length > 0) {
  3158 + let checkStr = []
  3159 + checkArr7.map(item => {
  3160 + checkStr.push(item.goods_name)
  3161 + })
  3162 + let str = checkStr.join()
  3163 + wx.hideLoading()
  3164 + wx.showModal({
  3165 + title: '提示',
  3166 + // content: `商品${str},组合购活动,购买次数已超,将以普通商品购买?`,
  3167 + content: `${str}超出组合购限购次数,将以普通商品购买`,
  3168 + success: res => {
  3169 + wx.showLoading();
  3170 + if (res.confirm) {
  3171 + console.log('用户点击确定')
3335 3172 //排除失效商品结算
3336   - this.data.invalidList.map(item=>{
3337   - if(item.selected && item.classType==0){
  3173 + this.data.invalidList.map(item => {
  3174 + if (item.selected && item.classType == 0) {
3338 3175 rq.put('/api/weshop/cart/update', {
3339 3176 data: {
3340   - id: item.id,
3341   - selected: 0,
3342   - store_id: oo.stoid
  3177 + id: item.id,
  3178 + selected: 0,
  3179 + store_id: oo.stoid
3343 3180 },
3344 3181 success: function (ee) {
3345   - console.log(ee);
  3182 + console.log(ee);
3346 3183 }
3347 3184 });
3348 3185 }
3349 3186 })
3350 3187 if (ab == 0) {
3351   - t.my_warnning("未选择商品", 0, th);
3352   - wx.hideLoading();
3353   - return false;
  3188 + t.my_warnning("未选择商品", 0, th);
  3189 + wx.hideLoading();
  3190 + return false;
3354 3191 }
3355 3192  
3356 3193 glist = glist.substring(0, glist.length - 1);
3357 3194 //--取一下商品的限购 以及活动的限购,redis数量--
3358 3195 rq.get("/api/weshop/goods/getGoodsListNum", {
3359   - data: {
3360   - goodsidlist: glist,
3361   - store_id: oo.stoid
3362   - },
3363   - async success(ee) {
3364   - console.log(ee);
3365   - if (ee.data.code == 0) {
3366   - var ddata = ee.data.data,
3367   - isok = 1,
3368   - gname = "",
3369   - err = "";
3370   - //--组装--
3371   - for (var ij = 0; ij < ddata.length; ij++) {
3372   - var val = ddata[ij];
3373   - var obj = map_limit.get(val.goods_id + "");
3374   - if (obj) continue;
3375   -
3376   - var promgoodsbuynum = 0;
3377   - var goodsbuynum = 0;
3378   -
3379   - //--要获得商品,该用户买了多少件,同步应用--
3380   - await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", {
3381   - data: {
3382   - store_id: oo.stoid,
3383   - user_id: user_id,
3384   - goods_id: val.goods_id,
3385   - prom_type: val.prom_type,
3386   - prom_id: val.prom_id
3387   - },
3388   - }).then(res => {
3389   - var buy_num_data = res.data.data;
3390   - if (buy_num_data.promgoodsbuynum) promgoodsbuynum = buy_num_data.promgoodsbuynum;
3391   - goodsbuynum = buy_num_data.goodsbuynum;
3392   - })
3393   - var ie = {
3394   - promgoodsbuynum: promgoodsbuynum,
3395   - goodsbuynum: goodsbuynum
3396   - };
3397   - map_limit.set(val.goods_id + "", ie);
  3196 + data: {
  3197 + goodsidlist: glist,
  3198 + store_id: oo.stoid
  3199 + },
  3200 + async success(ee) {
  3201 + console.log(ee);
  3202 + if (ee.data.code == 0) {
  3203 + var ddata = ee.data.data,
  3204 + isok = 1,
  3205 + gname = "",
  3206 + err = "";
  3207 + //--组装--
  3208 + for (var ij = 0; ij < ddata.length; ij++) {
  3209 + var val = ddata[ij];
  3210 + var obj = map_limit.get(val.goods_id + "");
  3211 + if (obj) continue;
  3212 +
  3213 + var promgoodsbuynum = 0;
  3214 + var goodsbuynum = 0;
  3215 +
  3216 + //--要获得商品,该用户买了多少件,同步应用--
  3217 + await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", {
  3218 + data: {
  3219 + store_id: oo.stoid,
  3220 + user_id: user_id,
  3221 + goods_id: val.goods_id,
  3222 + prom_type: val.prom_type,
  3223 + prom_id: val.prom_id
  3224 + },
  3225 + }).then(res => {
  3226 + var buy_num_data = res.data.data;
  3227 + if (buy_num_data.promgoodsbuynum) promgoodsbuynum = buy_num_data.promgoodsbuynum;
  3228 + goodsbuynum = buy_num_data.goodsbuynum;
  3229 + })
  3230 + var ie = {
  3231 + promgoodsbuynum: promgoodsbuynum,
  3232 + goodsbuynum: goodsbuynum
  3233 + };
  3234 + map_limit.set(val.goods_id + "", ie);
  3235 + }
  3236 +
  3237 + try {
  3238 + for (var ind in ddata) {
  3239 + var val = ddata[ind];
  3240 + var num = map.get(val.goods_id + "");
  3241 + if (num <= 0) {
  3242 + isok = 0;
  3243 + gname = val.goods_name;
  3244 + throw "购买数量不能为0";
  3245 + return false;
  3246 + }
  3247 +
  3248 + if (val.prom_type == 1 || val.prom_type == 6) {
  3249 + if (num > val.store_count) {
  3250 + isok = 0;
  3251 + gname = val.goods_name;
  3252 + throw "超出库存";
  3253 + return false;
  3254 + }
  3255 + }
  3256 +
  3257 + if (th.data.sales_rules == 1) {
  3258 + if (num > val.store_count) {
  3259 + isok = 0;
  3260 + gname = val.goods_name;
  3261 + throw "超出库存";
  3262 + return false;
3398 3263 }
  3264 + }
  3265 + if (num > val.redisnum && val.redisnum && !normal_arr[val.goods_id]) {
  3266 + isok = 0;
  3267 + gname = val.goods_name;
  3268 + throw "超出活动库存";
  3269 + return false;
  3270 + }
  3271 + if (num > val.goods_num - val.buy_num && val.goods_num && !normal_arr[val.goods_id]) {
  3272 + isok = 0;
  3273 + gname = val.goods_name;
  3274 + throw "超出活动库存";
  3275 + return false;
  3276 + }
  3277 +
  3278 + var buyed = map_limit.get(val.goods_id + "");
  3279 + if (num + buyed.goodsbuynum > val.viplimited && val.viplimited > 0) {
  3280 + isok = 0;
  3281 + gname = val.goods_name;
  3282 + throw "超出商品限购";
  3283 + return false;
  3284 + }
  3285 +
  3286 + if (num + buyed.promgoodsbuynum > val.buy_limit && val.buy_limit > 0 && !normal_arr[val.goods_id]) {
  3287 + isok = 0;
  3288 + gname = val.goods_name;
  3289 + throw "超出活动限购";
  3290 + return false;
  3291 + }
3399 3292  
3400   - try {
3401   - for (var ind in ddata) {
3402   - var val = ddata[ind];
3403   - var num = map.get(val.goods_id + "");
3404   - if (num <= 0) {
3405   - isok = 0;
3406   - gname = val.goods_name;
3407   - throw "购买数量不能为0";
3408   - return false;
3409   - }
3410   -
3411   - if (val.prom_type == 1 || val.prom_type == 6) {
3412   - if (num > val.store_count) {
3413   - isok = 0;
3414   - gname = val.goods_name;
3415   - throw "超出库存";
3416   - return false;
3417   - }
3418   - }
3419   -
3420   - if (th.data.sales_rules == 1) {
3421   - if (num > val.store_count) {
3422   - isok = 0;
3423   - gname = val.goods_name;
3424   - throw "超出库存";
3425   - return false;
3426   - }
3427   - }
3428   - if (num > val.redisnum && val.redisnum && !normal_arr[val.goods_id]) {
3429   - isok = 0;
3430   - gname = val.goods_name;
3431   - throw "超出活动库存";
3432   - return false;
3433   - }
3434   - if (num > val.goods_num - val.buy_num && val.goods_num && !normal_arr[val.goods_id]) {
3435   - isok = 0;
3436   - gname = val.goods_name;
3437   - throw "超出活动库存";
3438   - return false;
3439   - }
3440   -
3441   - var buyed = map_limit.get(val.goods_id + "");
3442   - if (num + buyed.goodsbuynum > val.viplimited && val.viplimited > 0) {
3443   - isok = 0;
3444   - gname = val.goods_name;
3445   - throw "超出商品限购";
3446   - return false;
3447   - }
3448   -
3449   - if (num + buyed.promgoodsbuynum > val.buy_limit && val.buy_limit > 0 && !normal_arr[val.goods_id]) {
3450   - isok = 0;
3451   - gname = val.goods_name;
3452   - throw "超出活动限购";
3453   - return false;
3454   - }
3455   -
3456   - var card_field = th.data.card_field;
3457   - for (var i = 0; i < g_arr.length; i++) {
3458   -
3459   - if (g_arr[i].goods_id == val.goods_id) {
3460   -
3461   - //如果会员是等级会员,商品有等级价,且不是活动商品
3462   - if (card_field && val[card_field] > 0 &&
3463   - ((val.prom_type == 0 && g_arr[i].prom_type==0) || val.prom_type == 3 || val.prom_type == 4 || val.prom_type == 5 || val.prom_type == 7 || val.prom_type == 10 || normal_arr[val.goods_id])) {
3464   - if (g_arr[i].goods_price != val[card_field]) {
3465   - isok = 0;
3466   - gname = val.goods_name;
3467   - throw "商品价格已经变化";
3468   - }
3469   - } else {
3470   - if (g_arr[i].goods_price != val.shop_price && g_arr[i].goods_price != val.prom_price && val.prom_price > 0) {
3471   - isok = 0;
3472   - gname = val.goods_name;
3473   - throw "商品价格已经变化";
3474   - }
3475   - }
3476   -
3477   - //-- 数据的更新 --
3478   - var data = {
3479   - id: g_arr[i].id,
3480   - selected: 1,
3481   - store_id: oo.stoid
3482   - };
3483   -
3484   - //-- 如果有线下取价的时候 --
3485   - if (g_arr[i].is_offline) {
3486   - data.pricing_type = g_arr[i].pricing_type;
3487   - data.offline_price = g_arr[i].offline_price;
3488   - }
3489   - rq.put("/api/weshop/cart/update", {
3490   - data: data,
3491   - success: function (ee) {
3492   - console.log(ee);
3493   - }
3494   - });
3495   - }
3496   - }
  3293 + var card_field = th.data.card_field;
  3294 + for (var i = 0; i < g_arr.length; i++) {
3497 3295  
  3296 + if (g_arr[i].goods_id == val.goods_id) {
  3297 +
  3298 + //如果会员是等级会员,商品有等级价,且不是活动商品
  3299 + if (card_field && val[card_field] > 0 &&
  3300 + ((val.prom_type == 0 && g_arr[i].prom_type == 0) || val.prom_type == 3 || val.prom_type == 4 || val.prom_type == 5 || val.prom_type == 7 || val.prom_type == 10 || normal_arr[val.goods_id])) {
  3301 + if (g_arr[i].goods_price != val[card_field]) {
  3302 + isok = 0;
  3303 + gname = val.goods_name;
  3304 + throw "商品价格已经变化";
3498 3305 }
3499   - } catch (e) {
3500   - err = e;
3501   - }
3502   - if (isok == 0) {
3503   - t.confirmBox(gname + ":" + err);
3504   - wx.hideLoading();
3505   - return false;
  3306 + } else {
  3307 + if (g_arr[i].goods_price != val.shop_price && g_arr[i].goods_price != val.prom_price && val.prom_price > 0) {
  3308 + isok = 0;
  3309 + gname = val.goods_name;
  3310 + throw "商品价格已经变化";
  3311 + }
  3312 + }
  3313 +
  3314 + //-- 数据的更新 --
  3315 + var data = {
  3316 + id: g_arr[i].id,
  3317 + selected: 1,
  3318 + store_id: oo.stoid
  3319 + };
  3320 + let gitem = checkArr7.find(item => item.goods_id == g_arr[i].goods_id)
  3321 + if (gitem) {
  3322 + data.prom_type = 0
  3323 + data.prom_id = 0
  3324 + }
  3325 + //-- 如果有线下取价的时候 --
  3326 + if (g_arr[i].is_offline) {
  3327 + data.pricing_type = g_arr[i].pricing_type;
  3328 + data.offline_price = g_arr[i].offline_price;
  3329 + }
  3330 + rq.put("/api/weshop/cart/update", {
  3331 + data: data,
  3332 + success: function (ee) {
  3333 + console.log(ee);
  3334 + }
  3335 + });
3506 3336 }
3507   - wx.hideLoading();
3508   - wx.navigateTo({
3509   - url: "/packageE/pages/cart/cart2/cart2"
3510   - });
  3337 + }
  3338 +
3511 3339 }
  3340 + } catch (e) {
  3341 + err = e;
  3342 + }
  3343 + if (isok == 0) {
  3344 + t.confirmBox(gname + ":" + err);
  3345 + wx.hideLoading();
  3346 + return false;
  3347 + }
  3348 + wx.hideLoading();
  3349 + wx.navigateTo({
  3350 + url: "/packageE/pages/cart/cart2/cart2"
  3351 + });
3512 3352 }
  3353 + }
3513 3354 });
  3355 + } else if (res.cancel) {
  3356 + wx.hideLoading();
  3357 + console.log('用户点击取消')
3514 3358 }
3515   - } else {
  3359 + }
  3360 + })
  3361 + } else {
  3362 + //排除失效商品结算
  3363 + this.data.invalidList.map(item => {
  3364 + if (item.selected && item.classType == 0) {
  3365 + rq.put('/api/weshop/cart/update', {
  3366 + data: {
  3367 + id: item.id,
  3368 + selected: 0,
  3369 + store_id: oo.stoid
  3370 + },
  3371 + success: function (ee) {
  3372 + console.log(ee);
  3373 + }
  3374 + });
  3375 + }
  3376 + })
  3377 + if (ab == 0) {
  3378 + t.my_warnning("未选择商品", 0, th);
  3379 + wx.hideLoading();
  3380 + return false;
  3381 + }
3516 3382  
3517   - //-- 开始服务卡的购物车购买 --
3518   - for (var i = 0; i < this.data.service_data.length; i++) {
3519   - var i_arr = this.data.service_data[i].goods;
3520   - console.log(i_arr)
  3383 + glist = glist.substring(0, glist.length - 1);
  3384 + //--取一下商品的限购 以及活动的限购,redis数量--
  3385 + rq.get("/api/weshop/goods/getGoodsListNum", {
  3386 + data: {
  3387 + goodsidlist: glist,
  3388 + store_id: oo.stoid
  3389 + },
  3390 + async success(ee) {
  3391 + console.log(ee);
  3392 + if (ee.data.code == 0) {
  3393 + var ddata = ee.data.data,
  3394 + isok = 1,
  3395 + gname = "",
  3396 + err = "";
  3397 + //--组装--
  3398 + for (var ij = 0; ij < ddata.length; ij++) {
  3399 + var val = ddata[ij];
  3400 + var obj = map_limit.get(val.goods_id + "");
  3401 + if (obj) continue;
3521 3402  
3522   - for (var j = 0; j < i_arr.length; j++) {
3523   - await rq.promisePut("/api/weshop/cartService/update", {
3524   - data: {
3525   - id: i_arr[j].id,
3526   - selected: i_arr[j].selected,
3527   - store_id: oo.stoid
3528   - }
3529   - });
3530   - }
3531   - }
3532   - //排除失效服务结算
3533   - this.data.invalidList.map(item=>{
3534   - if(item.selected && item.classType==1){
3535   - rq.promisePut('/api/weshop/cartService/update', {
  3403 + var promgoodsbuynum = 0;
  3404 + var goodsbuynum = 0;
  3405 +
  3406 + //--要获得商品,该用户买了多少件,同步应用--
  3407 + await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", {
3536 3408 data: {
3537   - id: item.id,
3538   - selected: 0,
3539   - store_id: oo.stoid
  3409 + store_id: oo.stoid,
  3410 + user_id: user_id,
  3411 + goods_id: val.goods_id,
  3412 + prom_type: val.prom_type,
  3413 + prom_id: val.prom_id
  3414 + },
  3415 + }).then(res => {
  3416 + var buy_num_data = res.data.data;
  3417 + if (buy_num_data.promgoodsbuynum) promgoodsbuynum = buy_num_data.promgoodsbuynum;
  3418 + goodsbuynum = buy_num_data.goodsbuynum;
  3419 + })
  3420 + var ie = {
  3421 + promgoodsbuynum: promgoodsbuynum,
  3422 + goodsbuynum: goodsbuynum
  3423 + };
  3424 + map_limit.set(val.goods_id + "", ie);
  3425 + }
  3426 +
  3427 + try {
  3428 + for (var ind in ddata) {
  3429 + var val = ddata[ind];
  3430 + var num = map.get(val.goods_id + "");
  3431 + if (num <= 0) {
  3432 + isok = 0;
  3433 + gname = val.goods_name;
  3434 + throw "购买数量不能为0";
  3435 + return false;
  3436 + }
  3437 +
  3438 + if (val.prom_type == 1 || val.prom_type == 6) {
  3439 + if (num > val.store_count) {
  3440 + isok = 0;
  3441 + gname = val.goods_name;
  3442 + throw "超出库存";
  3443 + return false;
  3444 + }
  3445 + }
  3446 +
  3447 + if (th.data.sales_rules == 1) {
  3448 + if (num > val.store_count) {
  3449 + isok = 0;
  3450 + gname = val.goods_name;
  3451 + throw "超出库存";
  3452 + return false;
  3453 + }
  3454 + }
  3455 + if (num > val.redisnum && val.redisnum && !normal_arr[val.goods_id]) {
  3456 + isok = 0;
  3457 + gname = val.goods_name;
  3458 + throw "超出活动库存";
  3459 + return false;
  3460 + }
  3461 + if (num > val.goods_num - val.buy_num && val.goods_num && !normal_arr[val.goods_id]) {
  3462 + isok = 0;
  3463 + gname = val.goods_name;
  3464 + throw "超出活动库存";
  3465 + return false;
  3466 + }
  3467 +
  3468 + var buyed = map_limit.get(val.goods_id + "");
  3469 + if (num + buyed.goodsbuynum > val.viplimited && val.viplimited > 0) {
  3470 + isok = 0;
  3471 + gname = val.goods_name;
  3472 + throw "超出商品限购";
  3473 + return false;
  3474 + }
  3475 +
  3476 + if (num + buyed.promgoodsbuynum > val.buy_limit && val.buy_limit > 0 && !normal_arr[val.goods_id]) {
  3477 + isok = 0;
  3478 + gname = val.goods_name;
  3479 + throw "超出活动限购";
  3480 + return false;
  3481 + }
  3482 +
  3483 + var card_field = th.data.card_field;
  3484 + for (var i = 0; i < g_arr.length; i++) {
  3485 +
  3486 + if (g_arr[i].goods_id == val.goods_id) {
  3487 +
  3488 + //如果会员是等级会员,商品有等级价,且不是活动商品
  3489 + if (card_field && val[card_field] > 0 &&
  3490 + ((val.prom_type == 0 && g_arr[i].prom_type == 0) || val.prom_type == 3 || val.prom_type == 4 || val.prom_type == 5 || val.prom_type == 7 || val.prom_type == 10 || normal_arr[val.goods_id])) {
  3491 + if (g_arr[i].goods_price != val[card_field]) {
  3492 + isok = 0;
  3493 + gname = val.goods_name;
  3494 + throw "商品价格已经变化";
  3495 + }
  3496 + } else {
  3497 + if (g_arr[i].goods_price != val.shop_price && g_arr[i].goods_price != val.prom_price && val.prom_price > 0) {
  3498 + isok = 0;
  3499 + gname = val.goods_name;
  3500 + throw "商品价格已经变化";
  3501 + }
  3502 + }
  3503 +
  3504 + //-- 数据的更新 --
  3505 + var data = {
  3506 + id: g_arr[i].id,
  3507 + selected: 1,
  3508 + store_id: oo.stoid
  3509 + };
  3510 +
  3511 + //-- 如果有线下取价的时候 --
  3512 + if (g_arr[i].is_offline) {
  3513 + data.pricing_type = g_arr[i].pricing_type;
  3514 + data.offline_price = g_arr[i].offline_price;
  3515 + }
  3516 + rq.put("/api/weshop/cart/update", {
  3517 + data: data,
  3518 + success: function (ee) {
  3519 + console.log(ee);
  3520 + }
  3521 + });
  3522 + }
3540 3523 }
3541   - });
  3524 +
  3525 + }
  3526 + } catch (e) {
  3527 + err = e;
3542 3528 }
3543   - })
3544   - wx.hideLoading();
3545   - getApp().goto("/packageA/pages/cart2_ser/cart2_ser?is_cart=1");
  3529 + if (isok == 0) {
  3530 + t.confirmBox(gname + ":" + err);
  3531 + wx.hideLoading();
  3532 + return false;
  3533 + }
  3534 + wx.hideLoading();
  3535 + wx.navigateTo({
  3536 + url: "/packageE/pages/cart/cart2/cart2"
  3537 + });
  3538 + }
  3539 + }
  3540 + });
  3541 + }
  3542 + } else {
  3543 +
  3544 + //-- 开始服务卡的购物车购买 --
  3545 + for (var i = 0; i < this.data.service_data.length; i++) {
  3546 + var i_arr = this.data.service_data[i].goods;
  3547 + console.log(i_arr)
  3548 +
  3549 + for (var j = 0; j < i_arr.length; j++) {
  3550 + await rq.promisePut("/api/weshop/cartService/update", {
  3551 + data: {
  3552 + id: i_arr[j].id,
  3553 + selected: i_arr[j].selected,
  3554 + store_id: oo.stoid
  3555 + }
  3556 + });
  3557 + }
  3558 + }
  3559 + //排除失效服务结算
  3560 + this.data.invalidList.map(item => {
  3561 + if (item.selected && item.classType == 1) {
  3562 + rq.promisePut('/api/weshop/cartService/update', {
  3563 + data: {
  3564 + id: item.id,
  3565 + selected: 0,
  3566 + store_id: oo.stoid
  3567 + }
  3568 + });
  3569 + }
  3570 + })
  3571 + wx.hideLoading();
  3572 + getApp().goto("/packageA/pages/cart2_ser/cart2_ser?is_cart=1");
  3573 + }
  3574 + },
  3575 +
  3576 + //结算到最后一个商品
  3577 + set_last: function (ab, isok, gname) {
  3578 + if (isok == 0) {
  3579 + t.my_warnning(gname + "商品超出库存", 0, this);
  3580 + } else {
  3581 + ab ? wx.navigateTo({
  3582 + url: "/packageE/pages/cart/cart2/cart2"
  3583 + }) : t.my_warnning("还没有选中商品", 0, this);
  3584 + }
  3585 + },
  3586 +
  3587 +
  3588 + //图片失败,默认图片
  3589 + bind_bnerr2: function (e) {
  3590 + var _errImg = e.target.dataset.errorimg;
  3591 + var _errurl = e.target.dataset.url;
  3592 + var ii = _errurl.indexOf(oo.imghost);
  3593 + if (ii != -1) {
  3594 + this.setData({
  3595 + [_errImg]: oo.imghost + "/miniapp/images/default_g_img.gif",
  3596 + })
  3597 + }
  3598 + },
  3599 + //设置点击按钮为true或者false
  3600 + radio_chick: function (checked, num) {
  3601 + var th = this;
  3602 + var requestData = th.data.requestData;
  3603 + },
  3604 +
  3605 + //点击编辑后的效果
  3606 + edit_cart: function (e) {
  3607 + var type = parseFloat(e.currentTarget.dataset.type);
  3608 + this.setData({
  3609 + is_edit: type
  3610 + });
  3611 + },
  3612 +
  3613 + //--多个删除购物车商品---
  3614 + check_del: function () {
  3615 + var glist = "",
  3616 + slist = ''; //用逗号隔开的
  3617 + var user_id = getApp().globalData.user_id;
  3618 + var th = this;
  3619 +
  3620 + var ab = 0; //选中
  3621 + var abc = 0; //
  3622 + for (var i = 0; i < this.data.requestData.length; i++) {
  3623 + var i_arr = this.data.requestData[i].goods;
  3624 + for (var j = 0; j < i_arr.length; j++) {
  3625 + if (i_arr[j].selected) {
  3626 + glist += i_arr[j].id + ",";
  3627 + ab = 1;
  3628 + }
  3629 + }
  3630 + }
  3631 +
  3632 + for (var ii = 0; ii < this.data.service_data.length; ii++) {
  3633 + var i_arr = this.data.service_data[ii].goods;
  3634 + for (var jj = 0; jj < i_arr.length; jj++) {
  3635 + if (i_arr[jj].selected) {
  3636 + slist += i_arr[jj].id + ",";
  3637 + abc = 1;
  3638 + }
  3639 + }
  3640 + }
  3641 +
  3642 + if (ab == 0 && abc == 0) {
  3643 + t.my_warnning("未选择商品或者服务卡", 0, th);
  3644 + return false;
  3645 + }
  3646 +
  3647 + if (ab) {
  3648 + glist = glist.substring(0, glist.length - 1);
  3649 + //要删除购物车中的商品
  3650 + var url = '/api/weshop/cart/delIds/' + oo.stoid + '/' + user_id + "/" + glist;
  3651 + getApp().request.delete(url, {
  3652 + success: function (t) {
  3653 + // console.log('del done1111111111');
  3654 + th.getCardList();
  3655 + getApp().requestCardNum(th);
  3656 + // console.log('all================', th.data.all_num);
  3657 + // getApp().globalData.cartGoodsNum =
  3658 + }
  3659 + });
  3660 + }
  3661 + if (abc) {
  3662 + slist = slist.substring(0, slist.length - 1);
  3663 + //要删除购物车中的商品
  3664 + var url = '/api/weshop/cartService/delIds/' + oo.stoid + '/' + user_id + "/" + slist;
  3665 + getApp().request.delete(url, {
  3666 + success: function (t) {
  3667 + th.getCardList();
  3668 + getApp().requestCardNum(th);
  3669 + console.log('all2================', th.data.all_num);
  3670 + }
  3671 + });
  3672 + }
  3673 +
  3674 + setTimeout(() => {
  3675 + if ((!th.data.requestData || th.data.requestData.length == 0) && (!th.data.service_data || th.data.service_data.length == 0)) {
  3676 +
  3677 + console.log('---1111---bb');
  3678 + var goods_list = th.selectComponent("#goods_list"); //组件的id
  3679 + if (goods_list) {
  3680 + goods_list.init();
  3681 + goods_list.get_list();
3546 3682 }
3547   - },
3548 3683  
3549   - //结算到最后一个商品
3550   - set_last: function (ab, isok, gname) {
3551   - if (isok == 0) {
3552   - t.my_warnning(gname + "商品超出库存", 0, this);
3553   - } else {
3554   - ab ? wx.navigateTo({
3555   - url: "/packageE/pages/cart/cart2/cart2"
3556   - }) : t.my_warnning("还没有选中商品", 0, this);
3557   - }
3558   - },
  3684 + }
  3685 +
  3686 + }, 1200)
  3687 +
  3688 +
  3689 + },
  3690 + //跳到首页
  3691 + goto: function (e) {
  3692 + var url = '/pages/index/index/index';
  3693 + getApp().goto(url);
  3694 + },
3559 3695  
  3696 + //---加载更多是靠这个函数----
  3697 + onReachBottom: function () {
  3698 + if (this.data.requestData && this.data.requestData.length == 0) {
  3699 + var goods_list = this.selectComponent("#goods_list"); //组件的id
  3700 + if (goods_list) goods_list.get_list();
  3701 + }
  3702 + },
3560 3703  
3561   - //图片失败,默认图片
3562   - bind_bnerr2: function (e) {
3563   - var _errImg = e.target.dataset.errorimg;
3564   - var _errurl = e.target.dataset.url;
3565   - var ii = _errurl.indexOf(oo.imghost);
3566   - if (ii != -1) {
3567   - this.setData({
3568   - [_errImg]: oo.imghost + "/miniapp/images/default_g_img.gif",
3569   - })
  3704 + //检查莫个门店下的商品是不是优惠活动,有的话,看要不要送礼品,同时有没有倍增
  3705 + check_prom_activity: async function (cindex) {
  3706 + var make_up_arr = new Array();
  3707 + var send_gift_arr = new Array();
  3708 + var th = this;
  3709 + var map = new Map();
  3710 + var list = JSON.parse(JSON.stringify(this.data.requestData[cindex]));
  3711 + //循环处理活动,看活动商品的数量,用map来出来存储,key为活动id,值是数量
  3712 +
  3713 + //-- 所有的购物车的数据,要用拷贝的赖进行计算 --
  3714 + var alllist = JSON.parse(JSON.stringify(this.data.requestData));
  3715 + var list2 = alllist[cindex];
  3716 + var no_gift_arr = [];
  3717 +
  3718 +
  3719 + //主要判断有没有促销活动
  3720 + var is_sele_prom = 0;
  3721 + var is_gift_del = 0;
  3722 + for (var i = 0; i < list.goods.length; i++) {
  3723 + var item = list.goods[i];
  3724 + if (item.prom_type == 3 && item.selected && !item.is_gift) {
  3725 + is_sele_prom = 1;
  3726 + if (map.has(item.prom_id + "")) {
  3727 + var ob = map.get(item.prom_id + "");
  3728 + ob.num += item.goods_num;
  3729 + ob.price += item.goods_num * item.goods_price;
  3730 + delete map[item.prom_id + ""];
  3731 + map.set(item.prom_id + "", ob);
  3732 + } else {
  3733 + var ob = {};
  3734 + ob.num = item.goods_num;
  3735 + ob.price = item.goods_num * item.goods_price;
  3736 + if (item.guide_id) {
  3737 + ob.guide_id = item.guide_id;
  3738 + }
  3739 + if (item.guide_type) {
  3740 + ob.guide_type = item.guide_type;
  3741 + }
  3742 + map.set(item.prom_id + "", ob);
3570 3743 }
3571   - },
3572   - //设置点击按钮为true或者false
3573   - radio_chick: function (checked, num) {
3574   - var th = this;
3575   - var requestData = th.data.requestData;
3576   - },
3577   -
3578   - //点击编辑后的效果
3579   - edit_cart: function (e) {
3580   - var type = parseFloat(e.currentTarget.dataset.type);
  3744 + }
  3745 + if (item.is_gift == 1) {
  3746 + var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
  3747 + //getApp().request.delete(url, {});
  3748 + await getApp().request.promiseDelete(url, {}) // 要用同步让赠品删除
  3749 + list2.goods.splice(i, 1);
  3750 + list.goods.splice(i--, 1);
  3751 + is_gift_del = 1;
  3752 + }
  3753 + }
  3754 + //--如果没有选中的促销活动的,直接退出 --
  3755 + if (!is_sele_prom) {
  3756 + //如果有赠品,要重新更新购物车的前台渲染--
  3757 + if (is_gift_del) {
  3758 + var rq_text = "requestData[" + cindex + "]";
3581 3759 this.setData({
3582   - is_edit: type
  3760 + [rq_text]: list
3583 3761 });
3584   - },
  3762 + }
3585 3763  
3586   - //--多个删除购物车商品---
3587   - check_del: function () {
3588   - var glist = "",
3589   - slist = ''; //用逗号隔开的
3590   - var user_id = getApp().globalData.user_id;
3591   - var th = this;
3592   -
3593   - var ab = 0; //选中
3594   - var abc = 0; //
3595   - for (var i = 0; i < this.data.requestData.length; i++) {
3596   - var i_arr = this.data.requestData[i].goods;
3597   - for (var j = 0; j < i_arr.length; j++) {
3598   - if (i_arr[j].selected) {
3599   - glist += i_arr[j].id + ",";
3600   - ab = 1;
3601   - }
3602   - }
3603   - }
  3764 + var rq_text2 = "requestData[" + cindex + "].make_up_arr";
  3765 + this.setData({
  3766 + [rq_text2]: null,
  3767 + })
3604 3768  
3605   - for (var ii = 0; ii < this.data.service_data.length; ii++) {
3606   - var i_arr = this.data.service_data[ii].goods;
3607   - for (var jj = 0; jj < i_arr.length; jj++) {
3608   - if (i_arr[jj].selected) {
3609   - slist += i_arr[jj].id + ",";
3610   - abc = 1;
3611   - }
3612   - }
  3769 + var gift_text = "requestData[" + cindex + "].send_gift_arr";
  3770 + this.setData({
  3771 + [gift_text]: null,
  3772 + })
  3773 + return false;
  3774 + }
  3775 + //-- 循环判断活动 --
  3776 + for (let p_item of map.entries()) {
  3777 + var prom = null;
  3778 + //使用缓存,减少接口的调用
  3779 + if (th.data.promgoods_map[p_item[0]]) {
  3780 + prom = th.data.promgoods_map[p_item[0]];
  3781 + } else {
  3782 + await getApp().request.promiseGet("/api/weshop/promgoods/get/" + os.stoid + "/" + p_item[0], {}).then(res => {
  3783 + if (res.data.code == 0) {
  3784 + prom = res.data.data;
  3785 + }
  3786 + })
  3787 + }
  3788 + //如果活动已经结束
  3789 + if (!prom || prom.is_end || prom.end_time < ut.gettimestamp()) {
  3790 + for (var ii in list.goods) {
  3791 + var item = list.goods[ii];
  3792 + list.goods.splice(ii, 1);
  3793 + if (item.prom_id == p_item[0] && item.prom_type == 3) {
  3794 + // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
  3795 + // getApp().request.delete(url, {});
  3796 + th.disInvalid(item);
  3797 + }
3613 3798 }
  3799 + continue;
  3800 + }
3614 3801  
3615   - if (ab == 0 && abc == 0) {
3616   - t.my_warnning("未选择商品或者服务卡", 0, th);
3617   - return false;
3618   - }
  3802 + if (!th.data.promgoods_map[p_item[0]]) th.data.promgoods_map[p_item[0]] = prom;
  3803 + //---读取打折的详情---
  3804 + var ob = p_item[1];
  3805 + var discount = null;
  3806 +
  3807 + //看一下是不是多赠品,如果是多赠品
  3808 + var promgoods_list = null;
  3809 + if (th.data.promgoods_list[p_item[0]]) {
  3810 + promgoods_list = th.data.promgoods_list[p_item[0]];
  3811 + } else {
  3812 + //-- 获取凑单提示 --
  3813 + await getApp().request.promiseGet("/api/weshop/promgoodslist/list", {
  3814 + data: {
  3815 + prom_id: prom.id
  3816 + }
  3817 + }).then(res => {
  3818 + if (res.data.code == 0) {
  3819 + promgoods_list = res.data.data;
  3820 + }
  3821 + })
  3822 + if (!promgoods_list) continue;
  3823 + th.data.promgoods_list[p_item[0]] = promgoods_list;
  3824 + }
3619 3825  
3620   - if (ab) {
3621   - glist = glist.substring(0, glist.length - 1);
3622   - //要删除购物车中的商品
3623   - var url = '/api/weshop/cart/delIds/' + oo.stoid + '/' + user_id + "/" + glist;
3624   - getApp().request.delete(url, {
3625   - success: function (t) {
3626   - // console.log('del done1111111111');
3627   - th.getCardList();
3628   - getApp().requestCardNum(th);
3629   - // console.log('all================', th.data.all_num);
3630   - // getApp().globalData.cartGoodsNum =
3631   - }
3632   - });
3633   - }
3634   - if (abc) {
3635   - slist = slist.substring(0, slist.length - 1);
3636   - //要删除购物车中的商品
3637   - var url = '/api/weshop/cartService/delIds/' + oo.stoid + '/' + user_id + "/" + slist;
3638   - getApp().request.delete(url, {
3639   - success: function (t) {
3640   - th.getCardList();
3641   - getApp().requestCardNum(th);
3642   - console.log('all2================', th.data.all_num);
3643   - }
3644   - });
  3826 + for (var i in promgoods_list) {
  3827 + var item = promgoods_list[i];
  3828 + if (item.prom_type == 0) {
  3829 + if (ob.price < item.condition) {
  3830 + var elem = {
  3831 + prom_id: prom.id,
  3832 + diff_type: item.prom_type,
  3833 + diff: (item.condition - ob.price).toFixed(2),
  3834 + content: JSON.parse(item.preferential_type)
  3835 + }
  3836 + make_up_arr.push(elem);
  3837 + break;
  3838 + }
  3839 + } else {
  3840 + if (ob.num < item.condition) {
  3841 + var elem = {
  3842 + prom_id: prom.id,
  3843 + diff_type: item.prom_type,
  3844 + diff: (item.condition - ob.num).toFixed(2),
  3845 + content: JSON.parse(item.preferential_type)
  3846 + }
  3847 + make_up_arr.push(elem);
  3848 + break;
  3849 + }
3645 3850 }
  3851 + }
3646 3852  
3647   - setTimeout(()=>{
3648   - if ((!th.data.requestData|| th.data.requestData.length==0) && (!th.data.service_data|| th.data.service_data.length==0)){
3649 3853  
3650   - console.log('---1111---bb');
3651   - var goods_list = th.selectComponent("#goods_list"); //组件的id
3652   - if (goods_list) {
3653   - goods_list.init();
3654   - goods_list.get_list();
3655   - }
3656 3854  
3657   - }
  3855 + //-- 只有在单赠品的时候,才要进行计算 --
  3856 + await getApp().request.promiseGet("/api/weshop/goods/getDiscount", {
  3857 + data: {
  3858 + price: parseFloat(ob.price).toFixed(2),
  3859 + prom_id: p_item[0],
  3860 + goods_num: ob.num,
  3861 + user_id: getApp().globalData.user_id,
  3862 + is_bz: prom.is_bz
  3863 + }
  3864 + }).then(res => {
  3865 + if (res.data.code == 0) discount = res.data.data;
  3866 + })
3658 3867  
3659   - },1200)
  3868 + if (discount) {
3660 3869  
  3870 + if (!discount.zp_num || parseInt(discount.zp_num) == 0) discount.zp_num = 1;
  3871 + //判断一下赠品的模式
  3872 + if (parseInt(discount.zp_mode) == 1) {
3661 3873  
3662   - },
3663   - //跳到首页
3664   - goto: function (e) {
3665   - var url = '/pages/index/index/index';
3666   - getApp().goto(url);
3667   - },
  3874 + var can_zp_num = 0;
  3875 + var a_limit_num = 0;
  3876 + for (let iy in discount.giftsinfo) {
  3877 + let item = discount.giftsinfo[iy];
  3878 + can_zp_num += parseInt(item.gift_storecount) > parseInt(item.limit_num) ? parseInt(item.limit_num) : parseInt(item.gift_storecount);
  3879 + }
3668 3880  
3669   - //---加载更多是靠这个函数----
3670   - onReachBottom: function () {
3671   - if (this.data.requestData && this.data.requestData.length == 0) {
3672   - var goods_list = this.selectComponent("#goods_list"); //组件的id
3673   - if (goods_list) goods_list.get_list();
3674   - }
3675   - },
3676   -
3677   - //检查莫个门店下的商品是不是优惠活动,有的话,看要不要送礼品,同时有没有倍增
3678   - check_prom_activity: async function (cindex) {
3679   - var make_up_arr = new Array();
3680   - var send_gift_arr = new Array();
3681   - var th = this;
3682   - var map = new Map();
3683   - var list = JSON.parse(JSON.stringify(this.data.requestData[cindex]));
3684   - //循环处理活动,看活动商品的数量,用map来出来存储,key为活动id,值是数量
3685   -
3686   - //-- 所有的购物车的数据,要用拷贝的赖进行计算 --
3687   - var alllist = JSON.parse(JSON.stringify(this.data.requestData));
3688   - var list2 = alllist[cindex];
3689   - var no_gift_arr = [];
3690   -
3691   -
3692   - //主要判断有没有促销活动
3693   - var is_sele_prom = 0;
3694   - var is_gift_del = 0;
3695   - for (var i = 0; i < list.goods.length; i++) {
3696   - var item = list.goods[i];
3697   - if (item.prom_type == 3 && item.selected && !item.is_gift) {
3698   - is_sele_prom = 1;
3699   - if (map.has(item.prom_id + "")) {
3700   - var ob = map.get(item.prom_id + "");
3701   - ob.num += item.goods_num;
3702   - ob.price += item.goods_num * item.goods_price;
3703   - delete map[item.prom_id + ""];
3704   - map.set(item.prom_id + "", ob);
3705   - } else {
3706   - var ob = {};
3707   - ob.num = item.goods_num;
3708   - ob.price = item.goods_num * item.goods_price;
3709   - if (item.guide_id) {
3710   - ob.guide_id = item.guide_id;
3711   - }
3712   - if (item.guide_type) {
3713   - ob.guide_type = item.guide_type;
3714   - }
3715   - map.set(item.prom_id + "", ob);
3716   - }
3717   - }
3718   - if (item.is_gift == 1) {
3719   - var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
3720   - //getApp().request.delete(url, {});
3721   - await getApp().request.promiseDelete(url, {}) // 要用同步让赠品删除
3722   - list2.goods.splice(i, 1);
3723   - list.goods.splice(i--, 1);
3724   - is_gift_del = 1;
3725   - }
3726   - }
3727   - //--如果没有选中的促销活动的,直接退出 --
3728   - if (!is_sele_prom) {
3729   - //如果有赠品,要重新更新购物车的前台渲染--
3730   - if (is_gift_del) {
3731   - var rq_text = "requestData[" + cindex + "]";
3732   - this.setData({
3733   - [rq_text]: list
3734   - });
3735   - }
  3881 + var t_zp_num = parseInt(discount.zp_num) * parseInt(discount.bs);
  3882 + if (th.data.duo_zp_num_arr[prom.id]) {
  3883 + t_zp_num += th.data.duo_zp_num_arr[prom.id];
  3884 + }
3736 3885  
3737   - var rq_text2 = "requestData[" + cindex + "].make_up_arr";
3738   - this.setData({
3739   - [rq_text2]:null,
3740   - })
  3886 + if (can_zp_num >= t_zp_num) {
  3887 + var json = {};
  3888 + json.prom_id = prom.id;
  3889 + json.prom_name = prom.name;
  3890 + send_gift_arr.push(json);
  3891 + th.data.duo_zp_num_arr[prom.id] = t_zp_num;
  3892 + }
3741 3893  
3742   - var gift_text = "requestData[" + cindex + "].send_gift_arr";
3743   - this.setData({
3744   - [gift_text]:null,
3745   - })
3746   - return false;
3747 3894 }
3748   - //-- 循环判断活动 --
3749   - for (let p_item of map.entries()) {
3750   - var prom = null;
3751   - //使用缓存,减少接口的调用
3752   - if(th.data.promgoods_map[p_item[0]]){
3753   - prom=th.data.promgoods_map[p_item[0]];
3754   - }else{
3755   - await getApp().request.promiseGet("/api/weshop/promgoods/get/" + os.stoid + "/" + p_item[0], {}).then(res => {
3756   - if (res.data.code == 0) {
3757   - prom = res.data.data;
3758   - }
3759   - })
3760   - }
3761   - //如果活动已经结束
3762   - if (!prom || prom.is_end || prom.end_time < ut.gettimestamp()) {
3763   - for (var ii in list.goods) {
3764   - var item = list.goods[ii];
3765   - list.goods.splice(ii, 1);
3766   - if (item.prom_id == p_item[0] && item.prom_type == 3) {
3767   - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
3768   - // getApp().request.delete(url, {});
3769   - th.disInvalid(item);
3770   - }
  3895 + else {
  3896 + //---如果有打折的信息,赠送的信息,赠送的时候要判断是不是限购数量---
  3897 + if (discount && discount['goods_id'] && discount.limit_num >= discount.bs * discount.zp_num
  3898 + && discount.gift_storecount >= discount.bs * discount.zp_num) {
  3899 + //如果这礼品超了情况下
  3900 + if (no_gift_arr.indexOf(discount.gift_id) != -1) continue;
  3901 + var o = discount.goodsinfo;
  3902 + //-- 默认等于1,兼容旧的活动 --
  3903 +
  3904 + var newd = {
  3905 + goods_id: o.goods_id,
  3906 + goods_num: discount.bs * discount.zp_num, //是赠品的翻倍
  3907 + pick_id: list.pid,
  3908 + user_id: app.globalData.user_id,
  3909 + store_id: os.stoid,
  3910 + goods_price: 0,
  3911 + guide_id: ob.guide_id ? ob.guide_id : 0,
  3912 + guide_type: ob.guide_type ? ob.guide_type : 0,
  3913 + member_goods_price: 0,
  3914 + goods_name: o.goods_name,
  3915 + goods_sn: o.goods_sn,
  3916 + sku: o.sku,
  3917 + is_gift: 1,
  3918 + prom_id: p_item[0],
  3919 + prom_type: 3,
  3920 + selected: 1,
  3921 + gift_id: discount.gift_id,
  3922 + original_img: th.data.imgUrl + o.original_img
  3923 + };
  3924 +
  3925 + list2.goods.push(newd);
  3926 + var all_num = 0;
  3927 + var all_limit_num = 0;
  3928 +
  3929 + for (var i in alllist) {
  3930 + var list_item = alllist[i];
  3931 + if (list_item.pid == list.pid) continue;
  3932 + for (var j in list_item.goods) {
  3933 + //如果赠品的ID一样,要进行统计数量
  3934 + if (list_item.goods[j].is_gift == 1 && list_item.goods[j].gift_id == newd.gift_id) {
  3935 + all_num += list_item.goods[j].goods_num;
  3936 + }
  3937 + if (list_item.goods[j].is_gift == 1 && list_item.goods[j].gift_id == newd.gift_id && list_item.goods[j].prom_id == p_item[0]) {
  3938 + all_limit_num += list_item.goods[j].goods_num;
3771 3939 }
3772   - continue;
3773   - }
3774 3940  
3775   - if(!th.data.promgoods_map[p_item[0]]) th.data.promgoods_map[p_item[0]]=prom;
3776   - //---读取打折的详情---
3777   - var ob = p_item[1];
3778   - var discount = null;
3779   -
3780   - //看一下是不是多赠品,如果是多赠品
3781   - var promgoods_list=null;
3782   - if(th.data.promgoods_list[p_item[0]]){
3783   - promgoods_list=th.data.promgoods_list[p_item[0]];
3784   - }else{
3785   - //-- 获取凑单提示 --
3786   - await getApp().request.promiseGet("/api/weshop/promgoodslist/list", {
3787   - data: {
3788   - prom_id: prom.id
3789   - }
3790   - }).then(res => {
3791   - if (res.data.code == 0) {
3792   - promgoods_list = res.data.data;
3793   - }
3794   - })
3795   - if(!promgoods_list) continue;
3796   - th.data.promgoods_list[p_item[0]]=promgoods_list;
  3941 + }
3797 3942 }
3798 3943  
3799   - for (var i in promgoods_list) {
3800   - var item = promgoods_list[i];
3801   - if (item.prom_type == 0) {
3802   - if (ob.price < item.condition) {
3803   - var elem = {
3804   - prom_id: prom.id,
3805   - diff_type: item.prom_type,
3806   - diff: (item.condition - ob.price).toFixed(2),
3807   - content: JSON.parse(item.preferential_type)
3808   - }
3809   - make_up_arr.push(elem);
3810   - break;
3811   - }
3812   - } else {
3813   - if (ob.num < item.condition) {
3814   - var elem = {
3815   - prom_id: prom.id,
3816   - diff_type: item.prom_type,
3817   - diff: (item.condition - ob.num).toFixed(2),
3818   - content: JSON.parse(item.preferential_type)
3819   - }
3820   - make_up_arr.push(elem);
3821   - break;
3822   - }
3823   - }
  3944 + //-- 赠品的数量超出库存数量和会员的限制,这里是保证所有的赠品部会超出 --
  3945 + if (discount.gift_storecount < all_num + newd.goods_num || discount.limit_num < all_limit_num + newd.goods_num) {
  3946 + no_gift_arr.push(discount.gift_id);
  3947 + //--进入下一个循环 --
  3948 + continue;
3824 3949 }
3825 3950  
3826 3951  
  3952 + var url = "/api/weshop/cart/delGift?store_id=" + newd.store_id + "&user_id=" +
  3953 + newd.user_id + "&goods_id=" + newd.goods_id + "&is_gift=1&pick_id=" + newd.pick_id + "&prom_id=" + newd.prom_id
  3954 + await getApp().request.promiseDelete(url, {})
3827 3955  
3828   - //-- 只有在单赠品的时候,才要进行计算 --
3829   - await getApp().request.promiseGet("/api/weshop/goods/getDiscount", {
3830   - data: {
3831   - price: parseFloat(ob.price).toFixed(2),
3832   - prom_id: p_item[0],
3833   - goods_num: ob.num,
3834   - user_id: getApp().globalData.user_id,
3835   - is_bz: prom.is_bz
3836   - }
3837   - }).then(res => {
3838   - if (res.data.code == 0) discount = res.data.data;
3839   - })
  3956 + var add_data = null;
  3957 + await getApp().request.promisePost("/api/weshop/cart/save", {
  3958 + data: newd
  3959 + }).then(res => {
  3960 + if (res.data.code == 0) {
  3961 + add_data = res.data.data;
  3962 + }
  3963 + })
  3964 + if (add_data) {
  3965 + newd.id = add_data.id;
  3966 + list.goods.push(newd);
  3967 + }
  3968 + }
  3969 + }
  3970 + }
3840 3971  
3841   - if(discount) {
3842   -
3843   - if (!discount.zp_num || parseInt(discount.zp_num) == 0) discount.zp_num = 1;
3844   - //判断一下赠品的模式
3845   - if (parseInt(discount.zp_mode)== 1 )
3846   - {
3847   -
3848   - var can_zp_num=0;
3849   - var a_limit_num=0;
3850   - for(let iy in discount.giftsinfo){
3851   - let item=discount.giftsinfo[iy];
3852   - can_zp_num+= parseInt(item.gift_storecount)>parseInt(item.limit_num)?parseInt(item.limit_num): parseInt(item.gift_storecount);
3853   - }
3854   -
3855   - var t_zp_num=parseInt(discount.zp_num)*parseInt(discount.bs);
3856   - if(th.data.duo_zp_num_arr[prom.id]){
3857   - t_zp_num+=th.data.duo_zp_num_arr[prom.id];
3858   - }
3859   -
3860   - if(can_zp_num>=t_zp_num ) {
3861   - var json={};
3862   - json.prom_id=prom.id;
3863   - json.prom_name=prom.name;
3864   - send_gift_arr.push(json);
3865   - th.data.duo_zp_num_arr[prom.id]=t_zp_num;
3866   - }
3867   -
3868   - }
3869   - else
3870   - {
3871   - //---如果有打折的信息,赠送的信息,赠送的时候要判断是不是限购数量---
3872   - if (discount && discount['goods_id'] && discount.limit_num >= discount.bs * discount.zp_num
3873   - && discount.gift_storecount >= discount.bs * discount.zp_num) {
3874   - //如果这礼品超了情况下
3875   - if (no_gift_arr.indexOf(discount.gift_id) != -1) continue;
3876   - var o = discount.goodsinfo;
3877   - //-- 默认等于1,兼容旧的活动 --
3878   -
3879   - var newd = {
3880   - goods_id: o.goods_id,
3881   - goods_num: discount.bs * discount.zp_num, //是赠品的翻倍
3882   - pick_id: list.pid,
3883   - user_id: app.globalData.user_id,
3884   - store_id: os.stoid,
3885   - goods_price: 0,
3886   - guide_id: ob.guide_id ? ob.guide_id : 0,
3887   - guide_type: ob.guide_type ? ob.guide_type : 0,
3888   - member_goods_price: 0,
3889   - goods_name: o.goods_name,
3890   - goods_sn: o.goods_sn,
3891   - sku: o.sku,
3892   - is_gift: 1,
3893   - prom_id: p_item[0],
3894   - prom_type: 3,
3895   - selected: 1,
3896   - gift_id: discount.gift_id,
3897   - original_img: th.data.imgUrl + o.original_img
3898   - };
3899   -
3900   - list2.goods.push(newd);
3901   - var all_num = 0;
3902   - var all_limit_num = 0;
3903   -
3904   - for (var i in alllist) {
3905   - var list_item = alllist[i];
3906   - if(list_item.pid==list.pid) continue;
3907   - for (var j in list_item.goods) {
3908   - //如果赠品的ID一样,要进行统计数量
3909   - if (list_item.goods[j].is_gift == 1 && list_item.goods[j].gift_id == newd.gift_id) {
3910   - all_num += list_item.goods[j].goods_num;
3911   - }
3912   - if (list_item.goods[j].is_gift == 1 && list_item.goods[j].gift_id == newd.gift_id && list_item.goods[j].prom_id == p_item[0]) {
3913   - all_limit_num += list_item.goods[j].goods_num;
3914   - }
3915   -
3916   - }
3917   - }
3918   -
3919   - //-- 赠品的数量超出库存数量和会员的限制,这里是保证所有的赠品部会超出 --
3920   - if (discount.gift_storecount < all_num+newd.goods_num || discount.limit_num <all_limit_num+newd.goods_num ) {
3921   - no_gift_arr.push(discount.gift_id);
3922   - //--进入下一个循环 --
3923   - continue;
3924   - }
3925   -
3926   -
3927   - var url = "/api/weshop/cart/delGift?store_id=" + newd.store_id + "&user_id=" +
3928   - newd.user_id + "&goods_id=" + newd.goods_id + "&is_gift=1&pick_id=" + newd.pick_id + "&prom_id=" + newd.prom_id
3929   - await getApp().request.promiseDelete(url, {})
3930   -
3931   - var add_data = null;
3932   - await getApp().request.promisePost("/api/weshop/cart/save", {
3933   - data: newd
3934   - }).then(res => {
3935   - if (res.data.code == 0) {
3936   - add_data = res.data.data;
3937   - }
3938   - })
3939   - if (add_data) {
3940   - newd.id = add_data.id;
3941   - list.goods.push(newd);
3942   - }
3943   - }
3944   - }
3945   - }
  3972 + }
  3973 + //--更新购物车的前台渲染--
  3974 + var rq_text = "requestData[" + cindex + "]";
  3975 + this.setData({
  3976 + [rq_text]: list
  3977 + });
  3978 +
  3979 + var diff_text = "requestData[" + cindex + "].make_up_arr";
  3980 + //-- 如果有凑单的话 --
  3981 + if (make_up_arr.length > 0) {
  3982 + this.setData({
  3983 + [diff_text]: make_up_arr
  3984 + });
  3985 + } else {
  3986 + this.setData({
  3987 + [diff_text]: null
  3988 + });
  3989 + }
  3990 +
  3991 + var gift_text = "requestData[" + cindex + "].send_gift_arr";
  3992 + //-- 如果有凑单的话 --
  3993 + if (send_gift_arr.length > 0) {
  3994 + this.setData({
  3995 + [gift_text]: send_gift_arr
  3996 + });
  3997 + } else {
  3998 + this.setData({
  3999 + [gift_text]: null
  4000 + });
  4001 + }
3946 4002  
  4003 + },
  4004 +
  4005 + async all_check_prom_activity() {
  4006 + this.data.duo_zp_num_arr = {};
  4007 + for (var i in this.data.requestData) {
  4008 + var cindex = i;
  4009 + var make_up_arr = new Array();
  4010 + var send_gift_arr = new Array();
  4011 + var th = this;
  4012 + var map = new Map();
  4013 + var list = JSON.parse(JSON.stringify(this.data.requestData[cindex]));
  4014 + //循环处理活动,看活动商品的数量,用map来出来存储,key为活动id,值是数量
  4015 +
  4016 + //-- 所有的购物车的数据,要用拷贝的赖进行计算 --
  4017 + var alllist = JSON.parse(JSON.stringify(this.data.requestData));
  4018 + var list2 = alllist[cindex];
  4019 + var no_gift_arr = [];
  4020 +
  4021 +
  4022 + //主要判断有没有促销活动
  4023 + var is_sele_prom = 0;
  4024 + var is_gift_del = 0;
  4025 + for (var i = 0; i < list.goods.length; i++) {
  4026 + var item = list.goods[i];
  4027 + if (item.prom_type == 3 && item.selected && !item.is_gift) {
  4028 + is_sele_prom = 1;
  4029 + if (map.has(item.prom_id + "")) {
  4030 + var ob = map.get(item.prom_id + "");
  4031 + ob.num += item.goods_num;
  4032 + ob.price += item.goods_num * item.goods_price;
  4033 + delete map[item.prom_id + ""];
  4034 + map.set(item.prom_id + "", ob);
  4035 + } else {
  4036 + var ob = {};
  4037 + ob.num = item.goods_num;
  4038 + ob.price = item.goods_num * item.goods_price;
  4039 + if (item.guide_id) {
  4040 + ob.guide_id = item.guide_id;
  4041 + }
  4042 + if (item.guide_type) {
  4043 + ob.guide_type = item.guide_type;
  4044 + }
  4045 + map.set(item.prom_id + "", ob);
  4046 + }
3947 4047 }
3948   - //--更新购物车的前台渲染--
3949   - var rq_text = "requestData[" + cindex + "]";
3950   - this.setData({
  4048 + if (item.is_gift == 1) {
  4049 + var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
  4050 + //getApp().request.delete(url, {});
  4051 + await getApp().request.promiseDelete(url, {}) // 要用同步让赠品删除
  4052 + list2.goods.splice(i, 1);
  4053 + list.goods.splice(i--, 1);
  4054 + is_gift_del = 1;
  4055 + }
  4056 + }
  4057 + //--如果没有选中的促销活动的,直接退出 --
  4058 + if (!is_sele_prom) {
  4059 + //如果有赠品,要重新更新购物车的前台渲染--
  4060 + if (is_gift_del) {
  4061 + var rq_text = "requestData[" + cindex + "]";
  4062 + this.setData({
3951 4063 [rq_text]: list
3952   - });
3953   -
3954   - var diff_text = "requestData[" + cindex + "].make_up_arr";
3955   - //-- 如果有凑单的话 --
3956   - if (make_up_arr.length > 0) {
3957   - this.setData({
3958   - [diff_text]: make_up_arr
3959   - });
3960   - } else {
3961   - this.setData({
3962   - [diff_text]: null
3963   - });
  4064 + });
3964 4065 }
3965 4066  
  4067 + var rq_text2 = "requestData[" + cindex + "].make_up_arr";
  4068 + this.setData({
  4069 + [rq_text2]: null,
  4070 + })
  4071 +
3966 4072 var gift_text = "requestData[" + cindex + "].send_gift_arr";
3967   - //-- 如果有凑单的话 --
3968   - if (send_gift_arr.length > 0) {
3969   - this.setData({
3970   - [gift_text]: send_gift_arr
3971   - });
  4073 + this.setData({
  4074 + [gift_text]: null,
  4075 + })
  4076 + continue;
  4077 + }
  4078 + //-- 循环判断活动 --
  4079 + for (let p_item of map.entries()) {
  4080 + var prom = null;
  4081 + //使用缓存,减少接口的调用
  4082 + if (th.data.promgoods_map[p_item[0]]) {
  4083 + prom = th.data.promgoods_map[p_item[0]];
3972 4084 } else {
3973   - this.setData({
3974   - [gift_text]: null
3975   - });
  4085 + await getApp().request.promiseGet("/api/weshop/promgoods/get/" + os.stoid + "/" + p_item[0], {}).then(res => {
  4086 + if (res.data.code == 0) {
  4087 + prom = res.data.data;
  4088 + }
  4089 + })
3976 4090 }
3977   -
3978   - },
3979   -
3980   - async all_check_prom_activity(){
3981   - this.data.duo_zp_num_arr={};
3982   - for (var i in this.data.requestData) {
3983   - var cindex=i;
3984   - var make_up_arr = new Array();
3985   - var send_gift_arr = new Array();
3986   - var th = this;
3987   - var map = new Map();
3988   - var list = JSON.parse(JSON.stringify(this.data.requestData[cindex]));
3989   - //循环处理活动,看活动商品的数量,用map来出来存储,key为活动id,值是数量
3990   -
3991   - //-- 所有的购物车的数据,要用拷贝的赖进行计算 --
3992   - var alllist = JSON.parse(JSON.stringify(this.data.requestData));
3993   - var list2 = alllist[cindex];
3994   - var no_gift_arr = [];
3995   -
3996   -
3997   - //主要判断有没有促销活动
3998   - var is_sele_prom = 0;
3999   - var is_gift_del = 0;
4000   - for (var i = 0; i < list.goods.length; i++) {
4001   - var item = list.goods[i];
4002   - if (item.prom_type == 3 && item.selected && !item.is_gift) {
4003   - is_sele_prom = 1;
4004   - if (map.has(item.prom_id + "")) {
4005   - var ob = map.get(item.prom_id + "");
4006   - ob.num += item.goods_num;
4007   - ob.price += item.goods_num * item.goods_price;
4008   - delete map[item.prom_id + ""];
4009   - map.set(item.prom_id + "", ob);
4010   - } else {
4011   - var ob = {};
4012   - ob.num = item.goods_num;
4013   - ob.price = item.goods_num * item.goods_price;
4014   - if (item.guide_id) {
4015   - ob.guide_id = item.guide_id;
4016   - }
4017   - if (item.guide_type) {
4018   - ob.guide_type = item.guide_type;
4019   - }
4020   - map.set(item.prom_id + "", ob);
4021   - }
4022   - }
4023   - if (item.is_gift == 1) {
4024   - var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
4025   - //getApp().request.delete(url, {});
4026   - await getApp().request.promiseDelete(url, {}) // 要用同步让赠品删除
4027   - list2.goods.splice(i, 1);
4028   - list.goods.splice(i--, 1);
4029   - is_gift_del = 1;
4030   - }
  4091 + //如果活动已经结束
  4092 + if (!prom || prom.is_end || prom.end_time < ut.gettimestamp()) {
  4093 + for (var ii in list.goods) {
  4094 + var item = list.goods[ii];
  4095 + list.goods.splice(ii, 1);
  4096 + if (item.prom_id == p_item[0] && item.prom_type == 3) {
  4097 + // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
  4098 + // getApp().request.delete(url, {});
  4099 + th.disInvalid(item);
4031 4100 }
4032   - //--如果没有选中的促销活动的,直接退出 --
4033   - if (!is_sele_prom) {
4034   - //如果有赠品,要重新更新购物车的前台渲染--
4035   - if (is_gift_del) {
4036   - var rq_text = "requestData[" + cindex + "]";
4037   - this.setData({
4038   - [rq_text]: list
4039   - });
4040   - }
  4101 + }
  4102 + continue;
  4103 + }
4041 4104  
4042   - var rq_text2 = "requestData[" + cindex + "].make_up_arr";
4043   - this.setData({
4044   - [rq_text2]:null,
4045   - })
  4105 + if (!th.data.promgoods_map[p_item[0]]) th.data.promgoods_map[p_item[0]] = prom;
  4106 + //---读取打折的详情---
  4107 + var ob = p_item[1];
  4108 + var discount = null;
4046 4109  
4047   - var gift_text = "requestData[" + cindex + "].send_gift_arr";
4048   - this.setData({
4049   - [gift_text]:null,
4050   - })
4051   - continue;
  4110 + //看一下是不是多赠品,如果是多赠品
  4111 + var promgoods_list = null;
  4112 + if (th.data.promgoods_list[p_item[0]]) {
  4113 + promgoods_list = th.data.promgoods_list[p_item[0]];
  4114 + } else {
  4115 + //-- 获取凑单提示 --
  4116 + await getApp().request.promiseGet("/api/weshop/promgoodslist/list", {
  4117 + data: {
  4118 + prom_id: prom.id
4052 4119 }
4053   - //-- 循环判断活动 --
4054   - for (let p_item of map.entries()) {
4055   - var prom = null;
4056   - //使用缓存,减少接口的调用
4057   - if(th.data.promgoods_map[p_item[0]]){
4058   - prom=th.data.promgoods_map[p_item[0]];
4059   - }else{
4060   - await getApp().request.promiseGet("/api/weshop/promgoods/get/" + os.stoid + "/" + p_item[0], {}).then(res => {
4061   - if (res.data.code == 0) {
4062   - prom = res.data.data;
4063   - }
4064   - })
4065   - }
4066   - //如果活动已经结束
4067   - if (!prom || prom.is_end || prom.end_time < ut.gettimestamp()) {
4068   - for (var ii in list.goods) {
4069   - var item = list.goods[ii];
4070   - list.goods.splice(ii, 1);
4071   - if (item.prom_id == p_item[0] && item.prom_type == 3) {
4072   - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
4073   - // getApp().request.delete(url, {});
4074   - th.disInvalid(item);
4075   - }
4076   - }
4077   - continue;
4078   - }
  4120 + }).then(res => {
  4121 + if (res.data.code == 0) {
  4122 + promgoods_list = res.data.data;
  4123 + }
  4124 + })
  4125 + if (!promgoods_list) continue;
  4126 + th.data.promgoods_list[p_item[0]] = promgoods_list;
  4127 + }
4079 4128  
4080   - if(!th.data.promgoods_map[p_item[0]]) th.data.promgoods_map[p_item[0]]=prom;
4081   - //---读取打折的详情---
4082   - var ob = p_item[1];
4083   - var discount = null;
4084   -
4085   - //看一下是不是多赠品,如果是多赠品
4086   - var promgoods_list=null;
4087   - if(th.data.promgoods_list[p_item[0]]){
4088   - promgoods_list=th.data.promgoods_list[p_item[0]];
4089   - }else{
4090   - //-- 获取凑单提示 --
4091   - await getApp().request.promiseGet("/api/weshop/promgoodslist/list", {
4092   - data: {
4093   - prom_id: prom.id
4094   - }
4095   - }).then(res => {
4096   - if (res.data.code == 0) {
4097   - promgoods_list = res.data.data;
4098   - }
4099   - })
4100   - if(!promgoods_list) continue;
4101   - th.data.promgoods_list[p_item[0]]=promgoods_list;
4102   - }
  4129 + for (var i in promgoods_list) {
  4130 + var item = promgoods_list[i];
  4131 + if (item.prom_type == 0) {
  4132 + if (ob.price < item.condition) {
  4133 + var elem = {
  4134 + prom_id: prom.id,
  4135 + diff_type: item.prom_type,
  4136 + diff: (item.condition - ob.price).toFixed(2),
  4137 + content: JSON.parse(item.preferential_type)
  4138 + }
  4139 + make_up_arr.push(elem);
  4140 + break;
  4141 + }
  4142 + } else {
  4143 + if (ob.num < item.condition) {
  4144 + var elem = {
  4145 + prom_id: prom.id,
  4146 + diff_type: item.prom_type,
  4147 + diff: (item.condition - ob.num).toFixed(2),
  4148 + content: JSON.parse(item.preferential_type)
  4149 + }
  4150 + make_up_arr.push(elem);
  4151 + break;
  4152 + }
  4153 + }
  4154 + }
4103 4155  
4104   - for (var i in promgoods_list) {
4105   - var item = promgoods_list[i];
4106   - if (item.prom_type == 0) {
4107   - if (ob.price < item.condition) {
4108   - var elem = {
4109   - prom_id: prom.id,
4110   - diff_type: item.prom_type,
4111   - diff: (item.condition - ob.price).toFixed(2),
4112   - content: JSON.parse(item.preferential_type)
4113   - }
4114   - make_up_arr.push(elem);
4115   - break;
4116   - }
4117   - } else {
4118   - if (ob.num < item.condition) {
4119   - var elem = {
4120   - prom_id: prom.id,
4121   - diff_type: item.prom_type,
4122   - diff: (item.condition - ob.num).toFixed(2),
4123   - content: JSON.parse(item.preferential_type)
4124   - }
4125   - make_up_arr.push(elem);
4126   - break;
4127   - }
4128   - }
4129   - }
4130 4156  
4131 4157  
  4158 + //-- 只有在单赠品的时候,才要进行计算 --
  4159 + await getApp().request.promiseGet("/api/weshop/goods/getDiscount", {
  4160 + data: {
  4161 + price: parseFloat(ob.price).toFixed(2),
  4162 + prom_id: p_item[0],
  4163 + goods_num: ob.num,
  4164 + user_id: getApp().globalData.user_id,
  4165 + is_bz: prom.is_bz
  4166 + }
  4167 + }).then(res => {
  4168 + if (res.data.code == 0) discount = res.data.data;
  4169 + })
4132 4170  
4133   - //-- 只有在单赠品的时候,才要进行计算 --
4134   - await getApp().request.promiseGet("/api/weshop/goods/getDiscount", {
4135   - data: {
4136   - price: parseFloat(ob.price).toFixed(2),
4137   - prom_id: p_item[0],
4138   - goods_num: ob.num,
4139   - user_id: getApp().globalData.user_id,
4140   - is_bz: prom.is_bz
4141   - }
4142   - }).then(res => {
4143   - if (res.data.code == 0) discount = res.data.data;
4144   - })
  4171 + if (discount) {
4145 4172  
4146   - if(discount) {
  4173 + if (!discount.zp_num || parseInt(discount.zp_num) == 0) discount.zp_num = 1;
  4174 + //判断一下赠品的模式
  4175 + if (parseInt(discount.zp_mode) == 1) {
4147 4176  
4148   - if (!discount.zp_num || parseInt(discount.zp_num) == 0) discount.zp_num = 1;
4149   - //判断一下赠品的模式
4150   - if (parseInt(discount.zp_mode)== 1 )
4151   - {
  4177 + var can_zp_num = 0;
  4178 + var a_limit_num = 0;
  4179 + for (let iy in discount.giftsinfo) {
  4180 + let item = discount.giftsinfo[iy];
  4181 + can_zp_num += parseInt(item.gift_storecount) > parseInt(item.limit_num) ? parseInt(item.limit_num) : parseInt(item.gift_storecount);
  4182 + }
4152 4183  
4153   - var can_zp_num=0;
4154   - var a_limit_num=0;
4155   - for(let iy in discount.giftsinfo){
4156   - let item=discount.giftsinfo[iy];
4157   - can_zp_num+= parseInt(item.gift_storecount)>parseInt(item.limit_num)?parseInt(item.limit_num): parseInt(item.gift_storecount);
4158   - }
  4184 + var t_zp_num = parseInt(discount.zp_num) * parseInt(discount.bs);
  4185 + if (th.data.duo_zp_num_arr[prom.id]) {
  4186 + t_zp_num += th.data.duo_zp_num_arr[prom.id];
  4187 + }
4159 4188  
4160   - var t_zp_num=parseInt(discount.zp_num)*parseInt(discount.bs);
4161   - if(th.data.duo_zp_num_arr[prom.id]){
4162   - t_zp_num+=th.data.duo_zp_num_arr[prom.id];
4163   - }
  4189 + if (can_zp_num >= t_zp_num) {
  4190 + var json = {};
  4191 + json.prom_id = prom.id;
  4192 + json.prom_name = prom.name;
  4193 + send_gift_arr.push(json);
  4194 + th.data.duo_zp_num_arr[prom.id] = t_zp_num;
  4195 + }
4164 4196  
4165   - if(can_zp_num>=t_zp_num ) {
4166   - var json={};
4167   - json.prom_id=prom.id;
4168   - json.prom_name=prom.name;
4169   - send_gift_arr.push(json);
4170   - th.data.duo_zp_num_arr[prom.id]=t_zp_num;
4171   - }
  4197 + }
  4198 + else {
  4199 + //---如果有打折的信息,赠送的信息,赠送的时候要判断是不是限购数量---
  4200 + if (discount && discount['goods_id'] && discount.limit_num >= discount.bs * discount.zp_num
  4201 + && discount.gift_storecount >= discount.bs * discount.zp_num) {
  4202 + //如果这礼品超了情况下
  4203 + if (no_gift_arr.indexOf(discount.gift_id) != -1) continue;
  4204 + var o = discount.goodsinfo;
  4205 + //-- 默认等于1,兼容旧的活动 --
  4206 +
  4207 + var newd = {
  4208 + goods_id: o.goods_id,
  4209 + goods_num: discount.bs * discount.zp_num, //是赠品的翻倍
  4210 + pick_id: list.pid,
  4211 + user_id: app.globalData.user_id,
  4212 + store_id: os.stoid,
  4213 + goods_price: 0,
  4214 + guide_id: ob.guide_id ? ob.guide_id : 0,
  4215 + guide_type: ob.guide_type ? ob.guide_type : 0,
  4216 + member_goods_price: 0,
  4217 + goods_name: o.goods_name,
  4218 + goods_sn: o.goods_sn,
  4219 + sku: o.sku,
  4220 + is_gift: 1,
  4221 + prom_id: p_item[0],
  4222 + prom_type: 3,
  4223 + selected: 1,
  4224 + gift_id: discount.gift_id,
  4225 + original_img: th.data.imgUrl + o.original_img
  4226 + };
  4227 +
  4228 + list2.goods.push(newd);
  4229 + var all_num = 0;
  4230 + var all_limit_num = 0;
  4231 +
  4232 + for (var i in alllist) {
  4233 + var list_item = alllist[i];
  4234 + if (list_item.pid == list.pid) continue;
  4235 + for (var j in list_item.goods) {
  4236 + //如果赠品的ID一样,要进行统计数量
  4237 + if (list_item.goods[j].is_gift == 1 && list_item.goods[j].gift_id == newd.gift_id) {
  4238 + all_num += list_item.goods[j].goods_num;
  4239 + }
  4240 + if (list_item.goods[j].is_gift == 1 && list_item.goods[j].gift_id == newd.gift_id && list_item.goods[j].prom_id == p_item[0]) {
  4241 + all_limit_num += list_item.goods[j].goods_num;
  4242 + }
4172 4243  
4173   - }
4174   - else
4175   - {
4176   - //---如果有打折的信息,赠送的信息,赠送的时候要判断是不是限购数量---
4177   - if (discount && discount['goods_id'] && discount.limit_num >= discount.bs * discount.zp_num
4178   - && discount.gift_storecount >= discount.bs * discount.zp_num) {
4179   - //如果这礼品超了情况下
4180   - if (no_gift_arr.indexOf(discount.gift_id) != -1) continue;
4181   - var o = discount.goodsinfo;
4182   - //-- 默认等于1,兼容旧的活动 --
4183   -
4184   - var newd = {
4185   - goods_id: o.goods_id,
4186   - goods_num: discount.bs * discount.zp_num, //是赠品的翻倍
4187   - pick_id: list.pid,
4188   - user_id: app.globalData.user_id,
4189   - store_id: os.stoid,
4190   - goods_price: 0,
4191   - guide_id: ob.guide_id ? ob.guide_id : 0,
4192   - guide_type: ob.guide_type ? ob.guide_type : 0,
4193   - member_goods_price: 0,
4194   - goods_name: o.goods_name,
4195   - goods_sn: o.goods_sn,
4196   - sku: o.sku,
4197   - is_gift: 1,
4198   - prom_id: p_item[0],
4199   - prom_type: 3,
4200   - selected: 1,
4201   - gift_id: discount.gift_id,
4202   - original_img: th.data.imgUrl + o.original_img
4203   - };
  4244 + }
  4245 + }
4204 4246  
4205   - list2.goods.push(newd);
4206   - var all_num = 0;
4207   - var all_limit_num = 0;
4208   -
4209   - for (var i in alllist) {
4210   - var list_item = alllist[i];
4211   - if(list_item.pid==list.pid) continue;
4212   - for (var j in list_item.goods) {
4213   - //如果赠品的ID一样,要进行统计数量
4214   - if (list_item.goods[j].is_gift == 1 && list_item.goods[j].gift_id == newd.gift_id) {
4215   - all_num += list_item.goods[j].goods_num;
4216   - }
4217   - if (list_item.goods[j].is_gift == 1 && list_item.goods[j].gift_id == newd.gift_id && list_item.goods[j].prom_id == p_item[0]) {
4218   - all_limit_num += list_item.goods[j].goods_num;
4219   - }
4220   -
4221   - }
4222   - }
  4247 + //-- 赠品的数量超出库存数量和会员的限制,这里是保证所有的赠品部会超出 --
  4248 + if (discount.gift_storecount < all_num + newd.goods_num || discount.limit_num < all_limit_num + newd.goods_num) {
  4249 + no_gift_arr.push(discount.gift_id);
  4250 + //--进入下一个循环 --
  4251 + continue;
  4252 + }
4223 4253  
4224   - //-- 赠品的数量超出库存数量和会员的限制,这里是保证所有的赠品部会超出 --
4225   - if (discount.gift_storecount < all_num+newd.goods_num || discount.limit_num <all_limit_num+newd.goods_num ) {
4226   - no_gift_arr.push(discount.gift_id);
4227   - //--进入下一个循环 --
4228   - continue;
4229   - }
4230 4254  
  4255 + var url = "/api/weshop/cart/delGift?store_id=" + newd.store_id + "&user_id=" +
  4256 + newd.user_id + "&goods_id=" + newd.goods_id + "&is_gift=1&pick_id=" + newd.pick_id + "&prom_id=" + newd.prom_id
  4257 + await getApp().request.promiseDelete(url, {})
4231 4258  
4232   - var url = "/api/weshop/cart/delGift?store_id=" + newd.store_id + "&user_id=" +
4233   - newd.user_id + "&goods_id=" + newd.goods_id + "&is_gift=1&pick_id=" + newd.pick_id + "&prom_id=" + newd.prom_id
4234   - await getApp().request.promiseDelete(url, {})
4235   -
4236   - var add_data = null;
4237   - await getApp().request.promisePost("/api/weshop/cart/save", {
4238   - data: newd
4239   - }).then(res => {
4240   - if (res.data.code == 0) {
4241   - add_data = res.data.data;
4242   - }
4243   - })
4244   - if (add_data) {
4245   - newd.id = add_data.id;
4246   - list.goods.push(newd);
4247   - }
4248   - }
4249   - }
  4259 + var add_data = null;
  4260 + await getApp().request.promisePost("/api/weshop/cart/save", {
  4261 + data: newd
  4262 + }).then(res => {
  4263 + if (res.data.code == 0) {
  4264 + add_data = res.data.data;
4250 4265 }
4251   -
  4266 + })
  4267 + if (add_data) {
  4268 + newd.id = add_data.id;
  4269 + list.goods.push(newd);
  4270 + }
4252 4271 }
4253   - //--更新购物车的前台渲染--
4254   - var rq_text = "requestData[" + cindex + "]";
4255   - this.setData({
4256   - [rq_text]: list
4257   - });
  4272 + }
  4273 + }
4258 4274  
4259   - var diff_text = "requestData[" + cindex + "].make_up_arr";
4260   - //-- 如果有凑单的话 --
4261   - if (make_up_arr.length > 0) {
4262   - this.setData({
4263   - [diff_text]: make_up_arr
4264   - });
4265   - } else {
4266   - this.setData({
4267   - [diff_text]: null
4268   - });
4269   - }
  4275 + }
  4276 + //--更新购物车的前台渲染--
  4277 + var rq_text = "requestData[" + cindex + "]";
  4278 + this.setData({
  4279 + [rq_text]: list
  4280 + });
4270 4281  
4271   - var gift_text = "requestData[" + cindex + "].send_gift_arr";
4272   - //-- 如果有凑单的话 --
4273   - if (send_gift_arr.length > 0) {
4274   - this.setData({
4275   - [gift_text]: send_gift_arr
4276   - });
4277   - } else {
4278   - this.setData({
4279   - [gift_text]: null
4280   - });
4281   - }
  4282 + var diff_text = "requestData[" + cindex + "].make_up_arr";
  4283 + //-- 如果有凑单的话 --
  4284 + if (make_up_arr.length > 0) {
  4285 + this.setData({
  4286 + [diff_text]: make_up_arr
  4287 + });
  4288 + } else {
  4289 + this.setData({
  4290 + [diff_text]: null
  4291 + });
  4292 + }
  4293 +
  4294 + var gift_text = "requestData[" + cindex + "].send_gift_arr";
  4295 + //-- 如果有凑单的话 --
  4296 + if (send_gift_arr.length > 0) {
  4297 + this.setData({
  4298 + [gift_text]: send_gift_arr
  4299 + });
  4300 + } else {
  4301 + this.setData({
  4302 + [gift_text]: null
  4303 + });
  4304 + }
4282 4305  
4283 4306  
4284   - }
4285   - },
4286   -
4287   - //去凑单
4288   - go_cou_dang: function (e) {
4289   - var prom_id = e.currentTarget.dataset.prom_id;
4290   - var url = "/pages/goods/goodsList/goodsList?prom_type=3&prom_id=" + prom_id;
4291   - getApp().goto(url);
4292   - },
4293   -
4294   - //导航跳转
4295   - nav_goto: function (e) {
4296   - var url = e.currentTarget.dataset.url;
4297   - if (!url || url == '') return;
4298   - if (url[0] != '/') url = '/' + url;
4299   - getApp().goto(url);
4300   - },
4301   -
4302   - refresh_input: function () {
4303   - this.data.btn_click = 0;
4304   - },
4305   -
4306   - imageLoad: function (e) {
4307   - var imgwidth = e.detail.width;
4308   - var imgheight = e.detail.height;
4309   - //宽高比
4310   - var ratio = imgwidth / imgheight;
4311   - //计算的高度值
4312   - var viewHeight = 715 / ratio;
4313   - var hei = this.data.max_sw_height;
4314   -
4315   - if (hei < viewHeight) {
4316   - this.setData({
4317   - max_sw_height: viewHeight
4318   - });
4319   - }
4320   - },
4321   -
4322   - go_url(e) {
4323   - var url = e.currentTarget.dataset.url;
4324   - getApp().goto(url);
4325   - },
4326   -
4327   - //跳转到商品
4328   - go_gd:function (e) {
4329   - var user_id=getApp().globalData.user_id;
4330   - if(!user_id) user_id=0;
4331   - var gd= e.currentTarget.dataset.gd;
4332   - var good_url="/pages/goods/goodsInfo/goodsInfo?goods_id=" + gd;
4333   - var url="/api/weshop/activitylist/getGoodActInfo";
4334   - var req_data={
4335   - store_id:os.stoid,goodsidlist:gd,is_detail:1,user_id:user_id
4336   - };
4337   - //获取秒杀的多规格
4338   - getApp().request.promiseGet(url, {data:req_data}).then(res=>{
4339   - if(res.data.code==0 && res.data.data){
4340   - if(res.data.data.length==1){
4341   - var item=res.data.data[0];
4342   - switch (item.prom_type){
4343   - case 9:
4344   - good_url= '/packageC/pages/luckyGo/luckyGo_goodsInfo/luckyGo_goodsInfo?goods_id=' + gd + '&group_id=' + item.act_id;
4345   - break;
4346   - case 8:
4347   - good_url="/packageC/pages/presell/goodsInfo/goodsInfo?goods_id="+gd+"&prom_id="+item.act_id
4348   - break;
4349   - default:
4350   - good_url="/pages/goods/goodsInfo/goodsInfo?goods_id="+gd+"&prom_id="+item.act_id+"&prom_type=1";
4351   - break
4352   - }
4353   - }
4354   - getApp().goto(good_url);
  4307 + }
  4308 + },
4355 4309  
4356   - } else {
4357   - getApp().goto(good_url);
4358   - }
4359   - })
4360   - },
  4310 + //去凑单
  4311 + go_cou_dang: function (e) {
  4312 + var prom_id = e.currentTarget.dataset.prom_id;
  4313 + var url = "/pages/goods/goodsList/goodsList?prom_type=3&prom_id=" + prom_id;
  4314 + getApp().goto(url);
  4315 + },
4361 4316  
4362   - //赠品提示
4363   - show_gift_toast:function () {
4364   - wx.showToast({
4365   - title: "请点击结算至提交订单页选择赠品",
4366   - icon: 'none',
4367   - duration: 2000
4368   - });
  4317 + //导航跳转
  4318 + nav_goto: function (e) {
  4319 + var url = e.currentTarget.dataset.url;
  4320 + if (!url || url == '') return;
  4321 + if (url[0] != '/') url = '/' + url;
  4322 + getApp().goto(url);
  4323 + },
  4324 +
  4325 + refresh_input: function () {
  4326 + this.data.btn_click = 0;
  4327 + },
  4328 +
  4329 + imageLoad: function (e) {
  4330 + var imgwidth = e.detail.width;
  4331 + var imgheight = e.detail.height;
  4332 + //宽高比
  4333 + var ratio = imgwidth / imgheight;
  4334 + //计算的高度值
  4335 + var viewHeight = 715 / ratio;
  4336 + var hei = this.data.max_sw_height;
  4337 +
  4338 + if (hei < viewHeight) {
  4339 + this.setData({
  4340 + max_sw_height: viewHeight
  4341 + });
4369 4342 }
  4343 + },
  4344 +
  4345 + go_url(e) {
  4346 + var url = e.currentTarget.dataset.url;
  4347 + getApp().goto(url);
  4348 + },
  4349 +
  4350 + //跳转到商品
  4351 + go_gd: function (e) {
  4352 + var user_id = getApp().globalData.user_id;
  4353 + if (!user_id) user_id = 0;
  4354 + var gd = e.currentTarget.dataset.gd;
  4355 + var good_url = "/pages/goods/goodsInfo/goodsInfo?goods_id=" + gd;
  4356 + var url = "/api/weshop/activitylist/getGoodActInfo";
  4357 + var req_data = {
  4358 + store_id: os.stoid, goodsidlist: gd, is_detail: 1, user_id: user_id
  4359 + };
  4360 + //获取秒杀的多规格
  4361 + getApp().request.promiseGet(url, { data: req_data }).then(res => {
  4362 + if (res.data.code == 0 && res.data.data) {
  4363 + if (res.data.data.length == 1) {
  4364 + var item = res.data.data[0];
  4365 + switch (item.prom_type) {
  4366 + case 9:
  4367 + good_url = '/packageC/pages/luckyGo/luckyGo_goodsInfo/luckyGo_goodsInfo?goods_id=' + gd + '&group_id=' + item.act_id;
  4368 + break;
  4369 + case 8:
  4370 + good_url = "/packageC/pages/presell/goodsInfo/goodsInfo?goods_id=" + gd + "&prom_id=" + item.act_id
  4371 + break;
  4372 + default:
  4373 + good_url = "/pages/goods/goodsInfo/goodsInfo?goods_id=" + gd + "&prom_id=" + item.act_id + "&prom_type=1";
  4374 + break
  4375 + }
  4376 + }
  4377 + getApp().goto(good_url);
  4378 +
  4379 + } else {
  4380 + getApp().goto(good_url);
  4381 + }
  4382 + })
  4383 + },
  4384 +
  4385 + //赠品提示
  4386 + show_gift_toast: function () {
  4387 + wx.showToast({
  4388 + title: "请点击结算至提交订单页选择赠品",
  4389 + icon: 'none',
  4390 + duration: 2000
  4391 + });
  4392 + }
4370 4393  
4371 4394 });
4372 4395 \ No newline at end of file
... ...