const app = getApp(); let self = null; var os = app.globalData.setting; var ut = require("../../../../utils/util.js"); var regeneratorRuntime = require('../../../../utils/runtime.js'); var oo = app.globalData; let imgDraw = { "width": "650px", "height": "843px", "background": "https://mshopimg.yolipai.net/miniapp/images/zhg/bg-zuhegou.jpg", "views": [{ // 头像 "type": "image", "url": "https://desk-fd.zol-img.com.cn/t_s960x600c5/g5/M00/0F/08/ChMkJlauzXWIDrXBAAdCg2xP7oYAAH9FQOpVAIAB0Kb342.jpg", "css": { "width": "100px", "height": "100px", "top": "20px", "left": "275px", "borderRadius": "100px", "mode": "scaleToFill", "borderWidth": "2px", "borderColor": "#fff", } }, { //昵称 "type": "text", "text": "我是店铺名", "css": { "width": "650px", "color": "#fff", "top": "136px", // "left": "137px", "textAlign": "center", "fontSize": "26px", "maxLines": "1", } }, { //10元任选3件 "type": "text", "text": "10元任选3件", "css": { "color": "#fff", "width": "650px", "top": "270px", "fontSize": "70px", "maxLines": "1", "textAlign": "center", "fontWeight": "bold", } }, { //活动时间 "type": "text", "text": "活动时间:2021.07.06 - 2021.07.08", "css": { "color": "#333", "width": "650px", "top": "440px", "fontSize": "26px", "fontWeight": "normal", "maxLines": "1", "textAlign": "center" } }, { // 码 "type": "image", "url": "https://desk-fd.zol-img.com.cn/t_s960x600c5/g5/M00/0F/08/ChMkJlauzXWIDrXBAAdCg2xP7oYAAH9FQOpVAIAB0Kb342.jpg", "css": { "color": "#000", "width": "200px", "height": "200px", "top": "525px", "left": "225px", } }, { // 扫码提示 "type": "text", "text": "长按扫码即可参与活动", "css": { "color": "#666", "width": "650px", "top": "750px", "fontSize": "26px", "textAlign": "center" } }, ] }; Page({ /** * 页面的初始数据 */ data: { iurl: os.imghost, showRule: false, showMask: false, showNum: false, haveAdded: false, //imgDraw: imgDraw, 分享内容 id: 0, //获得活动id page: 1, //第一页 no_more: 0, //没有更多 loading: 0, //加载中 list: null, //商品列表的显示 act: null, //组合活动 all_price: 0, //合计价格 all_num: 0, //全部数量 sele_pick_id: 0, //默认选择门店,当用户什么商品都没有选,sele_pick_id=0 def_store: null, //用户默认的门店 sele_store: 0, //是不是选择了门店 more_store: 0, //选择门店 sort_store: 0, //门店分类 choice_sort_store: 0, //选择分类门店 fir_pick_index: 0, //门店选择的下标 sec_pick_index: 0 //门店选择的下标,地区选择之后的内页 }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { console.log(options, 111); self = this; var the_id = options.id; if (options.title) { wx.setNavigationBarTitle({ title: options.title, }); }; var first_leader = options.first_leader; //--如果tg_id是空的话,分享回来-- if (the_id == undefined || the_id == null || the_id == "") { var gid_str = decodeURIComponent(options.scene); gid_str = gid_str.split("_"); the_id = gid_str[0]; if (gid_str.length > 1) { first_leader = gid_str[1]; } } this.data.id = the_id; if (first_leader) { getApp().globalData.first_leader = first_leader; //调用接口判断是不是会员 getApp().request.promiseGet("/api/weshop/shoppingGuide/get/" + os.stoid + "/" + first_leader, {}).then(res => { if (res.data.code == 0) { getApp().globalData.guide_id = res.data.data.id; getApp().globalData.guide_pick_id= res.data.data.pickup_id } }) } }, //检测有没有导购分享的门店 check_guide(func){ var first_leader=getApp().globalData.first_leader; if(!first_leader){ func(); return false; } if(this.data.is_geted_guide_pick){ func(); return false; } if(getApp().globalData.guide_pick_id){ func(); return false; } var th=this; getApp().request.promiseGet("/api/weshop/shoppingGuide/get/" + os.stoid + "/" + first_leader, {}).then(res => { if (res.data.code == 0) { getApp().globalData.guide_pick_id= res.data.data.pickup_id; } th.data.is_geted_guide_pick=1; func(); }) }, /** * 生命周期函数--监听页面显示 */ onShow: function () { getApp().check_can_share(); getApp().is_Single_page(this, function () { var th = this, that = this, ee = this; this.data.is_timer = 1; if (this.data.act) this.countDown(); //如果有会员的时候 var userInfo = getApp().globalData.userInfo; if (userInfo) { if (!th.data.is_get_act) { //获取活动信息 var url = "/api/weshop/prom/zhbuy/get/" + os.stoid + "/" + th.data.id + "/" + userInfo.user_id; getApp().request.get(url, { success: function (e) { th.data.is_get_act = 1; if (e.data.code == 0 && e.data.data) { self.setData({ act: e.data.data }); if (e.data.data.is_show != 1) { th.setData({ error: '活动未开启' }); return false; } // if (ut.gettimestamp() < e.data.data.start_time) { // th.setData({ // error: '活动还未开始' // }); // return false; // } if (e.data.data.is_end == 0 && ut.gettimestamp() < e.data.data.end_time) { //-- 获取商品列表 -- self.get_list(); self.countDown(); } else { th.setData({ error: '活动已经过期' }); return false; } } else { th.data.is_get_act = 0; th.setData({ error: e.data.msg }); return false; } } }); } //等待活动值 this.waitfor2(10, 'list', function () { if (!th.data.list) return false; if (ut.gettimestamp() < th.data.act.start_time) { return false; } if (th.data.act.is_end == 10 || ut.gettimestamp() >= th.data.act.end_time) { return false; } //获取头像的分享 th.get_head_temp(function () { var txt = th.data.act.zhprice + "元任选" + th.data.act.zhbuyqty + "件"; imgDraw.views[0].url = th.data.share_head; imgDraw.views[1].text = userInfo.nickname; imgDraw.views[2].text = txt; var start = ut.formar_no_full(th.data.act.start_time, '.'); var end = ut.formar_no_full(th.data.act.end_time, '.'); txt = "活动时间:" + start + " - " + end; imgDraw.views[3].text = txt; var scene = th.data.id + ""; var user_id = getApp().globalData.user_id; scene += "_" + user_id; ///二微码 var path3 = os.url + "/api/wx/open/app/user/getWeAppEwm/" + os.stoid + "?sceneValue=" + scene + "&pageValue=packageB/pages/zuhegou/index/index"; wx.getImageInfo({ src: path3, success: function (res) { var vpath = res.path; imgDraw.views[4].url = vpath; th.setData({ imgDraw: imgDraw }) } }) }) //先获取一下导购的门店 th.check_guide(()=> { //获取用户的默认门店 getApp().get_user_store(function (e) { if (!e) { th.data.fir_def_store = {}; //赋值空对象 return false; } if (getApp().globalData.is_dj_pk) th.setData({has_def: 1}) var ee = JSON.parse(JSON.stringify(e)); var appd = getApp().globalData; //-- 等待定位系统的开启 -- th.waitfor2(15, 'is_get_local_ok', function () { if (!th.data.is_get_local_ok) return false; var e = JSON.parse(JSON.stringify(ee)); //如果有开启近距离的话,同时距离优不一样了 if (that.data.lat != null) { //如果经纬度有变化的话 if (e && appd.lat == that.data.lat && appd.lon == that.data.lon && e.distance > 0) { that.set_def_storage(e); } else { //要用接口是获取距离,js的计算不准 getApp().request.promiseGet("/api/weshop/pickup/list", { data: { store_id: os.stoid, pickup_id: e.pickup_id, is_pos: 1, lat: th.data.lat, lon: th.data.lon }, }).then(res => { if (res.data.code == 0) { e = res.data.data.pageData[0]; if (e) { e.is_no_dis = ee.is_no_dis; appd.pk_store = e; that.set_def_storage(e); } } }) } appd.lat = that.data.lat; appd.lon = that.data.lon; } else { if (e) { e.distance = null; that.set_def_storage(e); } } }) }); }) //----获取系统参数----- getApp().getConfig2(function (e) { ee.setData({ bconfig: e, sales_rules: e.sales_rules, }); //设置基本参数 th.wait_for_store_config(e); var json_d = JSON.parse(e.switch_list); ee.setData({ store_config: e, sys_switch: json_d, is_closecoupon: json_d.is_closecoupon, is_newsales_rules: json_d.is_newsales_rules, is_open_offline: json_d.is_pricing_open, sales_rules: e.sales_rules }); //-- 计算等级价相关 -- var swithc_list = e.switch_list; var sw_arr = JSON.parse(swithc_list); //---如果后台又开等级卡的开关--- if (sw_arr.rank_switch && sw_arr.rank_switch == "2") { th.setData({ rank_switch: true }); //---回调卡的列表--- th.getPlusCardType(function (ob) { th.setData({ card_list: ob.card_list }); var user = getApp().globalData.userInfo; if (!user) return false; if (user.card_field && user['card_expiredate']) { var str = user['card_expiredate'].replace(/-/g, '/'); var end = new Date(str); end = Date.parse(end) / 1000; var now = ut.gettimestamp(); //--- 判断是等级会员,且在有效期范围内 --- if (user.card_field && now < end) { var card_name = ob.name_map.get(user.card_field); th.setData({ card_field: user.card_field, card_name: card_name, card_list: ob.card_list }); } } //获取购物车的内容 th.get_cart_val(e); }) } else { //获取购物车的内容 th.get_cart_val(e); } }, 1); }) } else { getApp().goto("/packageE/pages/togoin/togoin"); return false; } }) }, onHide: function () { this.data.is_timer = 0; }, //-- 调用接口的LIST,获取商品 -- get_list: function () { var th = this; if (this.data.loading) return false; if (this.data.no_more) return false; this.data.loading = 1; var url = "/api/weshop/prom/zhbuyGoods/page"; var req_data = { page: this.data.page, pageSize: 10, store_id: os.stoid, zh_id: this.data.id } //开始调用接口 getApp().request.get(url, { data: req_data, success: function (res) { th.data.loading = 0; th.setData({ is_get: 1 }) if (ut.ajax_ok(res)) { th.data.page++; var list = th.data.list; if (!list) list = []; //当是下拉刷新的时候 if (th.data.page > 1 && th.data.cart_list) { //下拉之后也要重新计算一下金额 th.calc_more(res.data.data.pageData, function (list1) { for (var i in list1) { list.push(list1[i]); } th.setData({ list: list }); th.re_sum_price(); }) } else { for (var i in res.data.data.pageData) { list.push(res.data.data.pageData[i]); } th.setData({ list: list }); if (res.data.data.total <= 10) { th.setData({ no_more: 1 }); } } } else { th.setData({ no_more: 1 }); } } }) }, //-- 滚动到底部触发 -- get_more_list: function () { this.get_list(); }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { getApp().globalData.no_clear=1; var title = this.data.act.name; var url = "/packageB/pages/zuhegou/index/index?id=" + this.data.act.id; if (getApp().globalData.user_id) { url += "&first_leader=" + getApp().globalData.user_id; } var ob = { title: title, path: url, }; if (this.data.act.img_url) ob.imageUrl = this.data.iurl + this.data.act.img_url; return ob; }, /** * 用户分享朋友圈 */ onShareTimeline() { getApp().globalData.no_clear=1; var title = this.data.act.name; var user_id=getApp().globalData.user_id; if(!user_id) user_id=0; var ob = { title: title, query: 'first_leader='+user_id+"&id=" + this.data.act.id }; if (this.data.act.img_url) ob.imageUrl = this.data.iurl + this.data.act.img_url; return ob; }, /** * 点击规则详情,弹出规则 */ showRule() { this.setData({ type: 0, //控制显示规则详情还是提示信息,0规则详情,1提示信息 showRule: true, showMask: true, }); }, /** * 点击关闭按钮关闭规则详情弹窗 */ closeRule() { this.setData({ showRule: false, showMask: false, }); }, /** * 点击提示信息 */ showInfo() { this.setData({ type: 1, showRule: true, showMask: true, }); }, /** * 加入购物车 */ addToCart(e) { var th = this; var index = e.currentTarget.dataset.index; var userInfo = getApp().globalData.userInfo; if (!userInfo) { getApp().goto("/packageE/pages/togoin/togoin"); return false; } let haveAdded = this.data.list[index].haveAdded; this.data.sele_index = index; let title = ''; self = this; th.data.s_cart_num = 0; //说明是加入购物车是时候 this.data.is_zuhe_addcart = 1; if (!haveAdded) { th.data.sele_g = this.data.list[index]; if (!th.data.sele_g.num) th.data.goodsInputNum = 1; //如果没有门店,活动商品的配送方式和门店的配送方式不一样 if (!th.data.def_pick_store || (th.data.sele_g.distr_type != 0 && th.data.def_pick_store.distr_type != 0 && th.data.sele_g.distr_type != th.data.def_pick_store.distr_type)) { //选择了门店 if (th.data.sele_store) { wx.showToast({ title: "该商品的物流配送方式和默认门店不匹配!", icon: 'none', duration: 2000 }) } else { wx.showModal({ title: '温馨提示', content: '该商品的物流配送方式和默认门店不匹配,是否要切换门店?', success(res) { if (res.confirm) { //物流的配送方式不一样 th.get_sto(); var set_data = { store: 1 }; if (th.data.def_pick_store) { set_data.is_no_pipei = th.data.def_pick_store.pickup_id; } th.setData(set_data); } } }) } return false; } else { th.setData({ is_no_pipei: 0 }); th.check_is_in_cart(function () { th.add_cart_func(); }) } } else { var txt = "list[" + index + "].haveAdded"; var txt1 = "list[" + index + "].num"; var txt2 = "list[" + index + "].showNum"; th.data.sele_g = this.data.list[index]; wx.showModal({ title: '温馨提示', content: "确定取消该商品参与活动?", success(res) { if (res.confirm) { console.log('用户点击确定'); if (th.data.sele_g.cart_num && th.data.sele_g.cart_num - th.data.sele_g.num > 0) { var updata = { id: th.data.sele_g.cart_id, goods_num: th.data.sele_g.cart_num - th.data.sele_g.num, store_id: os.stoid } getApp().request.put("/api/weshop/cart/update", { data: updata, success: function (rs) { if (rs.data.code == 0) { title = '取消成功'; th.setData({ [txt1]: 0, [txt2]: false, [txt]: false, }); wx.showToast({ title: title, icon: 'success', }); th.re_sum_price(); } } }) } else { var url = '/api/weshop/cart/del/' + os.stoid + '/' + th.data.sele_g.cart_id; getApp().request.delete(url, { success: function (res) { if (res.data.code == 0) { title = '取消成功'; th.setData({ [txt1]: 0, [txt2]: false, [txt]: false, }); wx.showToast({ title: title, icon: 'success', }); th.re_sum_price(); } } }); } } else if (res.cancel) { console.log('用户点击取消') self.setData({ haveAdded: true, }); } } }) } }, /** * 增加数量 */ add(e) { var th = this; var userInfo = getApp().globalData.userInfo; if (!userInfo) { getApp().goto("/packageE/pages/togoin/togoin"); return false; } if (this.data.changing) return false; this.data.changing = 1; var index = e.currentTarget.dataset.index; this.data.sele_g = this.data.list[index]; this.data.sele_index = index; th.data.goodsInputNum = this.data.sele_g.num + 1; if (this.data.sele_g.cart_num) { th.data.s_cart_num = this.data.sele_g.cart_num + 1; } th.add_cart_func(); }, /** * 减少数量 */ sub(e) { var userInfo = getApp().globalData.userInfo; if (!userInfo) { getApp().goto("/packageE/pages/togoin/togoin"); return false; } var th = this; var index = e.currentTarget.dataset.index; var item = this.data.list[index]; this.data.sele_g = item; let num = item.num; th.data.s_cart_num = item.cart_num - 1; if (num >= 2) { var check_num = num - 1; //小于起购数 if (check_num < item.zhqty) { wx.showToast({ title: "该商品至少要购买" + item.zhqty + "件", icon: 'none', duration: 2000 }) return false; } if (th.data.changing) return false; th.data.changing = 1; th.data.sele_g = item; th.data.sele_index = index; th.data.goodsInputNum = check_num; th.sub_updata_cart(); return false; } var txt = "list[" + index + "].haveAdded"; var txt1 = "list[" + index + "].num"; var txt2 = "list[" + index + "].showNum"; wx.showModal({ title: '温馨提示', content: '确定取消该商品参与活动?', success(res) { if (res.confirm) { if (th.data.s_cart_num) { var updata = { id: th.data.sele_g.cart_id, goods_num: th.data.s_cart_num, store_id: os.stoid } getApp().request.put("/api/weshop/cart/update", { data: updata, success: function (rs) { if (rs.data.code == 0) { var title = '取消成功'; th.setData({ [txt1]: 0, [txt2]: false, [txt]: false, }); wx.showToast({ title: title, icon: 'success', }); th.re_sum_price(); } } }) } else { var url = '/api/weshop/cart/del/' + os.stoid + '/' + item.cart_id; getApp().request.delete(url, { success: function (res) { if (res.data.code == 0) { var title = '移除购物车成功'; th.setData({ [txt1]: 0, [txt2]: false, [txt]: false, }); wx.showToast({ title: title, icon: 'success', }); th.re_sum_price(); //重新统计数量和总金额 } } }); } } else if (res.cancel) { console.log('用户点击取消') self.setData({ haveAdded: true, }); } } }) return false; }, /** 分享 **/ share() { var th = this; var userInfo = getApp().globalData.userInfo; if (!userInfo) { getApp().goto("/packageE/pages/togoin/togoin"); return false; } wx.showLoading(); setTimeout(function () { th.setData({ showMask: true, showPoster: true, }); wx.hideLoading(); }, 1000); }, /** * 关闭海报 */ closePoster() { this.setData({ showMask: false, showPoster: false, }); }, onImgOK(e) { console.log(e.detail.path); this.setData({ myimg: e.detail.path, }); }, //---小于10的格式化函数---- timeFormat(param) { return param < 10 ? '0' + param : param; }, //----倒计时函数----- countDown() { if (!this.data.is_timer) return false; var th = this; // 获取当前时间,同时得到活动结束时间数组 var endTime = this.data.act.start_time; var newTime = ut.gettimestamp(); // 对结束时间进行处理渲染到页面 var obj = null; // 如果活动未结束,对时间进行处理 if (endTime - newTime > 0) { var time = (endTime - newTime); // 获取天、时、分、秒 var day = parseInt(time / (60 * 60 * 24)); var hou = parseInt(time % (60 * 60 * 24) / 3600); var min = parseInt(time % (60 * 60 * 24) % 3600 / 60); var sec = parseInt(time % (60 * 60 * 24) % 3600 % 60); obj = { hou: this.timeFormat(hou), min: this.timeFormat(min), sec: this.timeFormat(sec) } if (day > 0) { obj.day = this.timeFormat(day); } } else { //活动已结束,全部设置为'00' obj = { day: '00', hou: '00', min: '00', sec: '00' } th.setData({ prom_time_text: '活动已经结束:', prom_st: 3 }) th.setData({ djs: obj }); return false; } th.setData({ djs: obj }); setTimeout(function () { th.countDown() }, 1000); }, close_all: function () { this.setData({ showMask: false, showPoster: false, showRule: false }); }, //------定时等待某个值,有值才进行运算-------- waitfor2: function (n, pop_value, func) { var th = this; if (n <= 0) { func() return false } if (th.data[pop_value]) { func(); return false; } setTimeout(function () { --n; th.waitfor2(n, pop_value, func) }, 1000); }, //--获取头像的本地缓存,回调写法-- get_head_temp: function (tt) { var ee = this; if (ee.data.share_head) { tt(); return false; } //---获取分享图片的本地地址,头像和商品图片---- var path2 = getApp().globalData.userInfo.head_pic; if (path2 == "") { ee.data.share_head = "../../../../images/share/hui_hear_pic.png"; tt(); } else { path2 = path2.replace("http://thirdwx.qlogo.cn", "https://wx.qlogo.cn"); path2 = path2.replace("https://thirdwx.qlogo.cn", "https://wx.qlogo.cn"); wx.getImageInfo({ src: path2, success: function (res) { //res.path是网络图片的本地地址 console.log(res); ee.data.share_head = res.path; tt(); }, fail: function () { ee.data.share_head = "../../../../images/share/hui_hear_pic.png"; //分享的图片不能用网络的 tt(); } }); } }, go_url: function (e) { var url = e.currentTarget.dataset.url; getApp().goto(url); }, //-- 加入购物的函数 -- add_cart_func: function () { if (oo.user_id == null) { this.data.changing = 0; return getApp().my_warnning("还未登录!", 0, this); } if (!getApp().globalData.userInfo) { this.data.changing = 0; return getApp().my_warnning("还未登录!", 0, this); } var e = this, th = e, o = this.data.sele_g, a = o.goods_id; //----------添加到购物车时,要判断限购数量,-------- e.get_buy_num(o, function (ee) { //---判断商品是否超出限购--- if (th.data.g_buy_num != null && th.data.sele_g.viplimited > 0) { if (th.data.goodsInputNum + th.data.g_buy_num.get(th.data.sele_g.goods_id).gd_buynum > th.data.sele_g.viplimited) { wx.showModal({ title: '提示', content: '超出商品限购' }); th.data.changing = 0; return false; } if (th.data.s_cart_num) { if (th.data.s_cart_num + th.data.g_buy_num.get(th.data.sele_g.goods_id).gd_buynum > th.data.sele_g.viplimited) { wx.showModal({ title: '提示', content: '超出商品限购' }); th.data.changing = 0; return false; } } } //---判断商品是否超出活动限购--- if (th.data.sele_g.buyqty > 0) { if (th.data.goodsInputNum + th.data.g_buy_num.get(th.data.sele_g.goods_id).prom_buybum > th.data.sele_g.buyqty) { wx.showModal({ title: '提示', content: '超出商品活动限购' }); th.data.changing = 0; return false; } } if (th.data.goodsInputNum <= 0) { this.data.changing = 0; return s.my_warnning("商品数量不能为0", 0, th); } if (th.data.sto_sele_name == null || th.data.sto_sele_name == undefined) th.setData({ sto_sele_name: "" }); if (th.data.sto_sele_name == "") { th.data.changing = 0; return s.my_warnning("请选择门店", 0, th); } //--------------此时操作的数据------------ var newd = { goods_id: o.goods_id, goods_num: th.data.goodsInputNum, pick_id: th.data.sto_sele_id, user_id: oo.user_id, store_id: os.stoid, goods_price: o.shop_price, member_goods_price: o.shop_price, goods_name: o.goods_name, goods_sn: o.goods_sn, }; if (th.data.s_cart_num) { newd.goods_num = th.data.s_cart_num; } //---是不是从收藏夹出来的--- if (th.data.c_guide_id) { newd['guide_id'] = th.data.c_guide_id; newd['guide_type'] = 2; if ("add" == t.currentTarget.dataset.action) newd['guide_type'] = 3; } else { if (getApp().globalData.guide_id) { newd['guide_id'] = getApp().globalData.guide_id; newd['guide_type'] = 0; if ("add" == t.currentTarget.dataset.action) newd['guide_type'] = 1; } } //让商品带上房间号 if (th.data.sys_switch.is_skuroom_id == 1) { if (th.data.sele_g.goods_id == getApp().globalData.room_goods_id) { newd.room_id = getApp().globalData.room_id; } } else { if (newd.goods_id == getApp().globalData.room_goods_id) newd.room_id = getApp().globalData.room_id; } if (o.store_count <= 0) { th.data.changing = 0; return getApp().my_warnning("库存已为空!", 0, th); } if (o.store_count < e.data.goodsInputNum) { th.data.changing = 0; return getApp().my_warnning("库存不足!", 0, th); } th.add_cart_next(o, newd); //加入购物车下一步 }) }, //---加入购物车的最后一步--- add_cart_next(o, newd) { var th = this; //如果会员有等级价 if (th.data.card_field) { var card_price = o[th.data.card_field]; if (card_price > 0) { newd.goods_price = card_price; newd.member_goods_price = card_price; } } var index = this.data.sele_index; var txt = "list[" + index + "].haveAdded"; var txt1 = "list[" + index + "].num"; var txt2 = "list[" + index + "].showNum"; var txt3 = "list[" + index + "].current_price"; newd.prom_type = 7; newd.prom_id = th.data.act.id; if (th.data.adding) return false; th.data.adding = 1; //-------如果购物车中有相关的数据--------- if (th.data.goodsInputNum > 1) { var item = th.data.sele_g; if (th.data.goodsInputNum > o.store_count) { th.data.adding = 0; return getApp().my_warnning("库存不足!", 0, th); } if (th.data.goodsInputNum + th.data.g_buy_num.get(th.data.sele_g.goods_id).prom_buybum > o.buyqty && o.buyqty > 0) { th.data.adding = 0; return getApp().my_warnning("超出商品活动限购!", 0, th); } if (th.data.goodsInputNum + th.data.g_buy_num.get(th.data.sele_g.goods_id).prom_buybum > th.data.sele_g.viplimited && th.data.sele_g.viplimited > 0 ) { th.data.adding = 0; return getApp().my_warnning("超出商品限购!", 0, th); } //如果商品没有其他活动,要取一下线下价格 var updata = { id: item.cart_id, goods_num: th.data.goodsInputNum, goods_price: newd.goods_price, member_goods_price: newd.goods_price, store_id: os.stoid, }; if (th.data.s_cart_num) { updata.goods_num = th.data.s_cart_num; } //---是不是从收藏夹出来的--- if (th.data.c_guide_id) { updata['guide_id'] = th.data.c_guide_id; updata['guide_type'] = 3; //加入购物车之后就变成了3 } else { if (getApp().globalData.guide_id) { updata['guide_id'] = getApp().globalData.guide_id; updata['guide_type'] = 0; } } getApp().request.put("/api/weshop/cart/update", { data: updata, success: function (t) { th.setData({ [txt1]: th.data.goodsInputNum, [txt2]: true, [txt]: true, [txt3]: newd.goods_price, }); th.data.adding = 0; th.data.sele_store = 1; if (th.data.s_cart_num) { var txt_temp = "list[" + index + "].cart_num"; th.setData({ [txt_temp]: th.data.s_cart_num }) } th.re_sum_price(); //重新统计数量和总金额 } }); } else { getApp().request.post("/api/weshop/cart/save", { data: newd, success: function (t) { if (t.data.code == 0) { var txt4 = "list[" + th.data.sele_index + "].cart_id"; th.setData({ [txt1]: newd.goods_num, [txt2]: true, [txt3]: newd.goods_price, [txt]: true, [txt4]: t.data.data.id, }); th.data.adding = 0; th.data.sele_store = 1; th.re_sum_price(); //重新统计数量和总金额 } } }); } }, //等待获取配置 wait_for_store_config: function (bconfig) { var th = this; var e = bconfig; if (e && e.is_sort_storage) { wx.getLocation({ type: 'gcj02', success: function (res) { th.data.lat = res.latitude; th.data.lon = res.longitude; th.data.is_get_local_ok = 1; }, fail: function (res) { if (res.errCode == 2) { th.setData({ is_gps: 0 }); if (th.data.is_gps == 0) { getApp().confirmBox("请开启GPS定位", null, 10000, !1); } } else { th.setData({ is_gps: "3" }); } th.data.is_get_local_ok = 1; } }) } else { th.data.is_get_local_ok = 1; } }, //--- 获取卡类列表 --- getPlusCardType: function (func) { var storid = os.stoid; var user = getApp().globalData.userInfo; if (!user) return false; getApp().request.promiseGet("/api/weshop/plus/vip/mem/bership/list?" + "storeId=" + storid, {}).then(res => { var plusCard = res.data.data; var arr = [1219, 2089, 3031]; var new_arr = new Array(); var card_name_map = new Map(); var list = []; for (var i = 0; i < plusCard.length; i++) { if ((!user || user.card_field == null || user.card_field == "") && plusCard[i].IsStopBuy == true) continue; var name = "card" + plusCard[i].CorrPrice.toLowerCase(); card_name_map.set(name, plusCard[i].CardName); list.push(plusCard[i]); } var ob = { "card_list": list, "name_map": card_name_map }; func(ob); }) }, //--- 设置一下默认库存的数量 ---- set_def_storage(ee) { var that = this; that.data.fir_def_store = ee; that.setData({ def_pick_store: ee, sto_sele_name: ee.pickup_name, sto_sele_id: ee.pickup_id, sto_sele_distr: ee.distr_type }) }, //---------拿出门店分类和门店------------ get_sto(e) { var th = this; this.waitfor2(15, 'is_get_local_ok', function () { //if (!th.data.sele_g) return false; var dd = null; var g_distr_type = 0; if (th.data.sele_g) g_distr_type = th.data.sele_g.distr_type; if (g_distr_type != 0) { dd = { store_id: os.stoid, distr_type: g_distr_type, isstop: 0, is_pos: 1, pageSize: 2000 } } else { dd = { store_id: os.stoid, isstop: 0, is_pos: 1, pageSize: 2000 } } //如果有距离的话 if (th.data.lat != null) { dd.lat = th.data.lat; dd.lon = th.data.lon; } //如果会员是有默认的门店话 if (!th.data.def_pick_store && th.data.fir_def_store) { th.setData({ def_pick_store: th.data.fir_def_store }); } wx.showLoading({ title: '加载中.' }); //----------获取门店---------------- getApp().request.promiseGet("/api/weshop/pickup/list", { data: dd, }).then(res => { var e = res; if (e.data.code == 0 && e.data.data && e.data.data.pageData && e.data.data.pageData.length > 0) { var his_cate_num = 0; for (let i in e.data.data.pageData) { let item = e.data.data.pageData[i]; if (item.category_id > 0) { his_cate_num = 1; break; } } e.his_cate_num = his_cate_num; //如果有开启距离的功能,没有设置默认门店,要用最近的门店作为默认门店 if (dd.lat && (!th.data.def_pick_store || JSON.stringify(th.data.def_pick_store) == '{}') && th.data.bconfig && th.data.bconfig.is_sort_storage) { th.setData({ def_pick_store: e.data.data.pageData[0], sto_sele_name: e.data.data.pageData[0].pickup_name, sto_sele_id: e.data.data.pageData[0].pickup_id, sto_sele_distr: e.data.data.pageData[0].distr_type }); th.data.fir_def_store = e.data.data.pageData[0]; } //-- 如果有默认选择门店的时候,要把默认门店放在第一位,修改不要配送方式的判断 -- if (th.data.def_pick_store && JSON.stringify(th.data.def_pick_store) != '{}') { for (var k = 0; k < e.data.data.pageData.length; k++) { if (e.data.data.pageData[k].pickup_id == th.data.def_pick_store.pickup_id) { e.data.data.pageData.splice(k, 1); //删除 break; } } e.data.data.pageData.splice(0, 0, th.data.def_pick_store); //添加 } th.setData({ all_pick_list: e.data.data.pageData }); th.deal_pickup(e); } }) }) }, //------------处理门店--------------- deal_pickup(e) { var th = this; wx.hideLoading(); //单总量超出5个的时候 if (e.data.data.total > 10 && e.his_cate_num) { getApp().request.get("/api/weshop/storagecategory/page", { data: { store_id: os.stoid, pageSize: 1000, orderField: "sort", orderType: 'asc', }, success: function (ee) { if (ee.data.code == 0) { var check_all_cate = 0; if (ee.data.data && ee.data.data.pageData && ee.data.data.pageData.length > 0) { for (let i in ee.data.data.pageData) { let item = ee.data.data.pageData[i]; if (item.is_show == 1) { check_all_cate = 1; break } } } if (check_all_cate) { var sto_cate = ee.data.data.pageData; var sto_arr = e.data.data.pageData; var newarr = new Array(); var qita = new Array(); var is_del_pk = 0; //----要进行门店分组-------- for (var i = 0; i < sto_arr.length; i++) { //找一下这个门店有没有在分类数组内 var find2 = 0, find2name = "", sort = 0; is_del_pk = 0; for (var m = 0; m < sto_cate.length; m++) { if (sto_arr[i].category_id == sto_cate[m].cat_id) { if (sto_cate[m].is_show != 1) { is_del_pk = 1; sto_arr.splice(i, 1); i--; } else { find2 = sto_cate[m].cat_id; find2name = sto_cate[m].cat_name; sort = sto_cate[m].sort; is_del_pk = 0; } break; } } if (is_del_pk) continue; if (newarr.length > 0) { var find = 0; //如果有找到,那门店就在这个分组内,否则,分类就要排在其他 if (find2 != 0) { for (var ii = 0; ii < newarr.length; ii++) { if (sto_arr[i].category_id == newarr[ii].cat_id) { newarr[ii].s_arr.push(sto_arr[i]); find = 1; break; } } if (find == 0) { var arr0 = new Array(); arr0.push(sto_arr[i]); var item = { cat_id: find2, name: find2name, sort: sort, s_arr: arr0 }; newarr.push(item); } } else { qita.push(sto_arr[i]); } } else { //如果有找到,那门店就在这个分组内,否则,分类就要排在其他 if (find2 != 0) { var arr0 = new Array(); arr0.push(sto_arr[i]); var item = { cat_id: find2, name: find2name, sort: sort, s_arr: arr0 }; newarr.push(item); } else { qita.push(sto_arr[i]); } } } var def_arr = new Array(); //-- 开始就看10个门店 -- for (var k = 0; k < 10; k++) { if (k == sto_arr.length) break; def_arr.push(sto_arr[k]); } th.setData({ def_pickpu_list: def_arr, pickpu_list: ee.data.data.pageData }); //门店分类要排序下 function compare(property) { return function (a, b) { var value1 = a[property]; var value2 = b[property]; return value1 - value2; } } if (newarr.length > 0) newarr.sort(compare("sort")); //----安排其他的分类----- if (qita.length > 0) { var item = { cat_id: -1, name: "其他", s_arr: qita }; newarr.push(item); } var sd = { all_sto: newarr, is_show_sto_cat: 1 } if (!sto_arr || sto_arr.length <= 10) { sd.is_show_sto_cat = -1; sd.only_pk = sto_arr; } th.setData(sd); } else { th.setData({ is_show_sto_cat: -1, only_pk: e.data.data.pageData }); //-----如果没有默认门店,要取第一个门店作为默认店.此时没有门店分类的情况------ if (!th.data.def_pick_store) { th.setData({ def_pick_store: e.data.data.pageData[0] }) } } } else { th.setData({ is_show_sto_cat: -1, only_pk: e.data.data.pageData }); //-----如果没有默认门店,要取第一个门店作为默认店.此时没有门店分类的情况------ if (!th.data.def_pick_store) { th.setData({ def_pick_store: e.data.data.pageData[0] }) } } } }); } else { th.setData({ is_show_sto_cat: 0, only_pk: e.data.data.pageData }); //-----如果没有默认门店,要取第一个门店作为默认店------ if (!th.data.def_pick_store && th.data.bconfig && th.data.bconfig.is_sort_storage) { if (e.data.data && e.data.data.pageData && e.data.data.pageData.length > 0) { th.setData({ def_pick_store: e.data.data.pageData[0], sto_sele_name: e.data.data.pageData[0].pickup_name, sto_sele_id: e.data.data.pageData[0].pickup_id, sto_sele_distr: e.data.data.pageData[0].distr_type }) } } } }, //---选择分类门店--- choice_sort_store: function (e) { var index = e.currentTarget.dataset.index; var region_name = e.currentTarget.dataset.region; var item = this.data.all_sto[index]; this.setData({ region_name: region_name, sort_store: 0, choice_sort_store: 1, sec_sto: item, sec_pick_index: 0 }); }, choose_for_store_fir: function (e) { var index_c = e.currentTarget.dataset.ind; var th = this; th.setData({ fir_pick_index: index_c }) }, //确定def_pick为选择的门店 sure_pick: function (e) { var th = this; var item = null; var openindstore = th.data.open_ind_store; if (th.data.choice_sort_store == 0) { var index = th.data.fir_pick_index; if (th.data.is_show_sto_cat == 1) { item = th.data.def_pickpu_list[index]; } else { item = th.data.only_pk?th.data.only_pk[index]:null; //当没有门店分类的时候 } } else { var index = th.data.sec_pick_index; item = th.data.sec_sto.s_arr[index]; } if(!item) return false; //判断门店的配送方式是不是匹配 var g_distr_type = 0; if (th.data.sele_g) g_distr_type = th.data.sele_g.distr_type; if (item.distr_type != 0 && g_distr_type != 0 && item.distr_type != g_distr_type) { wx.showToast({ title: "门店配送方式不匹配", icon: 'none', duration: 2000 }); return false; } th.setData({ def_pick_store: item, sto_sele_name: item.pickup_name, sto_sele_id: item.pickup_id, sto_sele_distr: item.distr_type, store: 0, choice_sort_store: 0, fir_pick_index: 0, sort_store: 0 }); //只是单纯的选择门店 if (this.data.only) { this.data.only = 0; return false; } th.check_is_in_cart(function () { th.add_cart_func(); }) }, //---点击二级之后的选择--- choose_for_store: function (e) { var index_c = e.currentTarget.dataset.ind; var th = this; th.setData({ sec_pick_index: index_c, fir_pick_index: index_c }) }, //把选择的门店设置成默认的门店def_pick set_def_pick: function (e) { var th = this; var item = null; if (th.data.choice_sort_store == 0) { var index = th.data.fir_pick_index; if (th.data.is_show_sto_cat == 1) { item = th.data.def_pickpu_list[index]; } else { item = th.data.only_pk?th.data.only_pk[index]:null; //当没有门店分类的时候 } } else { var index = th.data.sec_pick_index; item = th.data.sec_sto.s_arr[index]; } if(!item) return false; //判断门店的配送方式是不是匹配 var g_distr_type = th.data.sele_g.distr_type; if (item.distr_type != 0 && g_distr_type != 0 && item.distr_type != g_distr_type) { wx.showToast({ title: "门店配送方式不匹配", icon: 'none', duration: 2000 }); return false; } //先设置之前,要判断是不是有库存 var user_id = getApp().globalData.user_id; var def_pickup_id = item.pickup_id; getApp().request.put('/api/weshop/users/update', { data: { user_id: user_id, def_pickup_id: def_pickup_id }, success: function (res) { if (res.data.code == 0) { if (th.data.choice_sort_store == 0) th.setData({ fir_pick_index: 0 }); getApp().globalData.pk_store = item; } else { //s.showWarning("设置默认门店地址失败", null, 500, !1); getApp().my_warnning("设置默认门店地址失败", 0, th) } } }); th.setData({ def_pick_store: item, sto_sele_name: item.pickup_name, sto_sele_id: item.pickup_id, sto_sele_distr: item.distr_type, store: 0, choice_sort_store: 0, sort_store: 0, //关闭门店2级 }); th.add_cart_func(); }, // 返回按钮 returns: function () { this.setData({ sort_store: 0, choice_sort_store: 0 }); }, //选择更多门店 more_store: function () { this.setData({ sort_store: 1 }); }, //关闭选择门店 close_popup: function (e) { var th = this; this.setData({ store: 0, choice_sort_store: 0, sort_store: 0, fir_pick_index: 0, sec_pick_index: 0 }) }, //-------------获取购买数量的总函数---------------- get_buy_num: function (gd, func) { var map = this.data.g_buy_num, th = this, user_id = getApp().globalData.user_id; if (user_id == null) { getApp().goto("/packageE/pages/togoin/togoin"); return false; } if (map && map.has(gd.goods_id)) { "function" == typeof func && func(); } else { var res1 = null; //----获取商品购买数---- getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", { data: { store_id: os.stoid, user_id: user_id, goods_id: gd.goods_id, prom_type: 7, prom_id: th.data.act.id, isnew:1, timetype:gd.viplimited_timetype }, }).then(res2 => { var g_buy_num = 0; var promgoodsbuynum = 0; if (res2.data.code == 0) { var buy_num_data = res2.data.data; if (buy_num_data.promgoodsbuynum) promgoodsbuynum = buy_num_data.promgoodsbuynum; g_buy_num = buy_num_data.goodsbuynum; } if (!map) map = new Map(); var ob = { gd_buynum: g_buy_num, prom_buybum: promgoodsbuynum, } map.set(gd.goods_id, ob); th.setData({ g_buy_num: map }); "function" == typeof func && func(); }) } }, //-- 当是减数量的调用 -- sub_updata_cart() { var th = this; var index = this.data.sele_index; var txt = "list[" + index + "].haveAdded"; var txt1 = "list[" + index + "].num"; var txt2 = "list[" + index + "].showNum"; var cur_price = this.data.sele_g.shop_price; if (th.data.card_field && this.data.sele_g[th.data.card_field]) { cur_price = this.data.sele_g[th.data.card_field]; } var updata = { id: th.data.sele_g.cart_id, goods_num: th.data.goodsInputNum, goods_price: cur_price, store_id: os.stoid, }; if (th.data.s_cart_num) { updata.goods_num = th.data.s_cart_num; } //---是不是从收藏夹出来的--- if (th.data.c_guide_id) { updata['guide_id'] = th.data.c_guide_id; updata['guide_type'] = 3; //加入购物车之后就变成了3 } else { if (getApp().globalData.guide_id) { updata['guide_id'] = getApp().globalData.guide_id; updata['guide_type'] = 0; } } //调用接口,更新购物车 getApp().request.put("/api/weshop/cart/update", { data: updata, success: function (t) { th.setData({ [txt1]: th.data.goodsInputNum, [txt2]: true, [txt]: true, }); th.data.adding = 0; th.data.sele_store = 1; if (th.data.s_cart_num) { var txt_temp = "list[" + index + "].cart_num"; th.setData({ [txt_temp]: th.data.s_cart_num }) } th.re_sum_price(); //重新统计数量和总金额 } }); }, //一 开始的选择门店 -- choose_store: function (e) { var userInfo = getApp().globalData.userInfo; if (!userInfo) { getApp().goto("/packageE/pages/togoin/togoin"); return false; } this.data.only = 1; this.setData({ store: 1 }) this.get_sto() }, // -- 加入之前,先判断有没有在购物车中,没有商品就添加 -- check_is_in_cart: function (func) { var th = this; var index = th.data.sele_index; var txt = "list[" + index + "].haveAdded"; var txt1 = "list[" + index + "].num"; var txt2 = "list[" + index + "].showNum"; var txt3 = "list[" + index + "].cart_id"; var txt4 = "list[" + index + "].current_price"; var txt5 = "list[" + index + "].cart_num"; //----先看会员在购物车中是否加入了该商品----- getApp().request.get("/api/weshop/cart/page", { data: { store_id: os.stoid, user_id: oo.user_id, goods_id: th.data.sele_g.goods_id, pick_id: th.data.sto_sele_id, }, success: function (re) { if (re.data.data.total > 0) { var item = re.data.data.pageData[0]; th.get_buy_num(th.data.sele_g, function () { //当前的价格要更新进去 var cur_price = th.data.sele_g.shop_price; if (th.data.card_field && th.data.sele_g[th.data.card_field]) { cur_price = th.data.sele_g[th.data.card_field]; } var prom_buybum = 0; var gd_buynum = 0; //加入也要控制一下限购 var check_obj = th.data.g_buy_num.get(th.data.sele_g.goods_id); if (check_obj.gd_buynum && check_obj.gd_buynum > 0) gd_buynum = check_obj.gd_buynum; if (check_obj.prom_buybum && check_obj.prom_buybum > 0) prom_buybum = check_obj.prom_buybum; if (check_obj) { if (check_obj.prom_buybum && check_obj.prom_buybum >= th.data.sele_g.buyqty && th.data.sele_g.buyqty > 0 ) { wx.showToast({ title: "您的已购数量超出活动的限购", icon: 'none', duration: 2000 }); return false; } if (check_obj.gd_buynum && check_obj.gd_buynum >= th.data.sele_g.viplimited && th.data.sele_g.viplimited > 0 ) { wx.showToast({ title: "您的已购数量超出商品的限购", icon: 'none', duration: 2000 }); return false; } } item.cbuy = 'no'; var cbuy = th.data.sele_g.viplimited > 0 ? th.data.sele_g.viplimited - gd_buynum : 'no'; if (cbuy != 'no') item.cbuy = cbuy; var cbuy2 = th.data.sele_g.buyqty > 0 ? th.data.sele_g.buyqty - prom_buybum : 'no'; if (cbuy2 != 'no') { if (item.cbuy == 'no' || item.cbuy > cbuy2) item.cbuy = cbuy2; } var num = item.goods_num; if (item.cbuy > -1 && item.cbuy < item.goods_num) { num = item.cbuy; } th.setData({ [txt1]: num, [txt2]: true, [txt]: true, [txt3]: item.id, [txt4]: cur_price, [txt5]: item.goods_num, }); var updata = { id: item.id, prom_type: 7, goods_price: cur_price, prom_id: th.data.act.id, store_id: os.stoid, }; if (getApp().globalData.guide_id) { updata['guide_id'] = getApp().globalData.guide_id; updata['guide_type'] = 0; } getApp().request.put("/api/weshop/cart/update", { data: updata, success: function (t) { } }); th.re_sum_price(); }) } else { func(); } } }) }, //-- 计算统计之后的金额 -- re_sum_price: function () { var all_num = 0; //商品数量之和 var all_price = 0; var need_to_buy = 0; var data = this.data.list; var all_zhqty = 0; //所有商品要求起购数之后 var zhqty_bz = []; //超量 var no_in_arr = []; for (var i in data) { var item = data[i]; if (item.num) { all_num += item.num; all_price += item.num * item.current_price; //当有起购数的控制的时候 if (item.zhqty) { zhqty_bz.push(item); all_zhqty += item.zhqty; if (item.num < item.zhqty) { need_to_buy += item.zhqty - item.num; } if (item.num > item.zhqty) { for (var i = 0; i < item.num - item.zhqty; i++) { no_in_arr.push({ price: item.current_price, goods_id: item.goods_id }); } } } else { for (var j = 0; j < item.num; j++) { no_in_arr.push({ price: item.current_price, goods_id: item.goods_id }); } } } else { if (item.zhqty) need_to_buy += item.zhqty; } } //当满足组合的要求:总数要满足,起购数要满足 if (all_num >= this.data.act.zhbuyqty && !need_to_buy) { function sortData(a, b) { return a.price - b.price } if (no_in_arr.length) no_in_arr.sort(sortData); var aprice = this.data.act.zhprice; if (this.data.act.zhbuyqty > all_zhqty) { for (var n = 0; n < this.data.act.zhbuyqty - all_zhqty; n++) { no_in_arr.pop(); } } //看一下剩下的数量有没有满足组合购的要求,以及要不要倍增 if (this.data.act.is_bz && no_in_arr.length >= this.data.act.zhbuyqty) { let zhqty_map = new map(); //看一下是几倍 var be = parseInt(no_in_arr.length / this.data.act.zhbuyqty); if (this.data.act.is_bzyh && zhqty_bz.length > 0) { for (let i = 0; i < zhqty_bz.length; i++) { let vv = zhqty_bz[i]; let num = 0; let bz_num = be * vv.zhqty; for (let j = 0; j < no_in_arr.length; j++) { let ii = no_in_arr[j]; if (vv.goods_id === ii.goods_id) { num++; zhqty_map.set('num', num); zhqty_map.set('price', ii.price); } } } } if (bz_num <= num) { aprice += be * aprice; let pop_num = (be * this.data.act.zhbuyqty) - bz_num; console.log(pop_num); for (var m = 0; m < pop_num; m++) { no_in_arr.pop(); } } // var be = parseInt(no_in_arr.length / this.data.act.zhbuyqty); // aprice += be * aprice; // for (var m = 0; m < be * this.data.act.zhbuyqty; m++) { // no_in_arr.pop(); // } } //算一下剩余的钱 if (no_in_arr.length) { for (var ii in no_in_arr) { var item = no_in_arr[ii]; aprice += item.price; } } all_price = aprice; } this.data.changing = 0; this.setData({ all_price: all_price, need_to_buy: need_to_buy, all_num: all_num }) if (all_num <= 0) { this.data.sele_store = 0; //什么都没有选,就没有选择了门店 } }, go_cart: function () { getApp().goto("/pages/cart/cart/cart"); }, //获取购物车中,相应的门店已购买的商品 get_cart_val: function (e) { var th = this; var user_id = getApp().globalData.user_id; var req = { user_id: user_id, store_id: os.stoid, pageSize: 600, state: 0, prom_type: 7, prom_id: this.data.act.id }; //获取购物车列表 getApp().request.get("/api/weshop/cart/list", { data: req, success: async function (e) { if (e.data.code == 0 && e.data.data && e.data.data.pageData && e.data.data.pageData.length) { var map = {}; var mlist = e.data.data.pageData; th.data.cart_list = mlist; for (let i in mlist) { let item = mlist[i]; if (item.prom_type != 7) continue; if (item.prom_id != th.data.act.id) continue; map[item.goods_id] = item; } for (let j in th.data.list) { let item_j = th.data.list[j]; item_j.current_price = item_j.shop_price; var card_price = 0; //如果会员有等级价 if (th.data.card_field) { card_price = item_j[th.data.card_field]; if (card_price > 0) { item_j.current_price = card_price; } } if (map[item_j.goods_id]) { var cart_num = map[item_j.goods_id].goods_num; item_j.num = cart_num; item_j.cart_num = cart_num; item_j.cart_id = map[item_j.goods_id].id; if (item_j.buyqty > 0) { var g_buy_num = 0; var promgoodsbuynum = 0; //----获取商品购买数---- await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", { data: { store_id: os.stoid, user_id: user_id, goods_id: item_j.goods_id, prom_type: 7, prom_id: th.data.act.id, isnew:1, timetype:item_j.viplimited_timetype }, }).then(res2 => { if (res2.data.code == 0) { var buy_num_data = res2.data.data; if (buy_num_data.promgoodsbuynum) promgoodsbuynum = buy_num_data.promgoodsbuynum; g_buy_num = buy_num_data.goodsbuynum; } }) if (item_j.viplimited > 0) { var cby = item_j.viplimited - g_buy_num; if (cby <= 0) continue; //不能买就continue下一个 item_j.num = cby > item_j.num ? item_j.num : cby; } if (item_j.buyqty > 0) { var cby = item_j.buyqty - promgoodsbuynum; if (cby <= 0) continue; //不能买就continue下一个 item_j.num = cby > item_j.num ? item_j.num : cby; } } item_j.haveAdded = 1; item_j.showNum = true; } } th.setData({ list: th.data.list }); th.re_sum_price(); } } }); }, //滚动加载跟多的时候的计算 async calc_more(list, func) { var th = this; var map = {}; var mlist = this.data.cart_list; for (let i in mlist) { let item = mlist[i]; if (item.prom_type != 7) continue; if (item.prom_id != th.data.act.id) continue; map[item.goods_id] = item; } for (let j in list) { let item_j = list[j]; item_j.current_price = item_j.shop_price; var card_price = 0; //如果会员有等级价 if (th.data.card_field) { card_price = item_j[th.data.card_field]; if (card_price > 0) { item_j.current_price = card_price; } } if (map[item_j.goods_id]) { var cart_num = map[item_j.goods_id].goods_num; item_j.num = cart_num; item_j.cart_num = cart_num; item_j.cart_id = map[item_j.goods_id].id; if (item_j.buyqty > 0) { var g_buy_num = 0; var promgoodsbuynum = 0; //----获取商品购买数---- await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", { data: { store_id: os.stoid, user_id: oo.user_id, goods_id: item_j.goods_id, prom_type: 7, prom_id: th.data.act.id, isnew:1, timetype:item_j.viplimited_timetype }, }).then(res2 => { if (res2.data.code == 0) { var buy_num_data = res2.data.data; if (buy_num_data.promgoodsbuynum) promgoodsbuynum = buy_num_data.promgoodsbuynum; g_buy_num = buy_num_data.goodsbuynum; } }) if (item_j.viplimited > 0) { var cby = item_j.viplimited - g_buy_num; if (cby <= 0) continue; //不能买就continue下一个 item_j.num = cby > item_j.num ? item_j.num : cby; } if (item_j.buyqty > 0) { var cby = item_j.buyqty - promgoodsbuynum; if (cby <= 0) continue; //不能买就continue下一个 item_j.num = cby > item_j.num ? item_j.num : cby; } } item_j.haveAdded = 1; item_j.showNum = true; } } if (func) func(list) } })