var t = getApp(), a = t.request, oo = t.globalData.setting, os=oo, app = getApp(), rq = t.request, ut = require("../../../utils/util.js"), zh_calc = require("zh_calculate.js"); var regeneratorRuntime = require('../../../utils/runtime.js'); Page({ data: { url: t.globalData.setting.url, resourceUrl: t.globalData.setting.resourceUrl, iurl: t.globalData.setting.imghost, requestData: null, checkAllToggle: 0, total_fee: 0, //结算金额 total_num: 0, //结算数量 all_num: 0, //购物车中所有商品数量 allsto: null, imgUrl: t.globalData.setting.imghost, is_has_flash: 0, //是否又秒杀活动 is_edit: 0, //是否编辑 is_load: 0, //是否已加载 up_dating: 0, //更新中 isreduce: 0, //商品数量是否可减 isadd: 0, //是否可以加商品数量 card_field:"", bconf:null, btn_click:1, service_data:null, max_sw_height:200, zhhe_prom:[], //组合活动需要显示差多少件 zuhe_map:{}, zuhe_map_good:{} }, onLoad: function() { var a = this,ee=a; //----获取系统参数----- getApp().getConfig2(function(e) { ee.setData({ bconfig: e, sales_rules:e.sales_rules }); }) wx.setNavigationBarTitle({ title: "购物车", }) //判断是否有登录 t.auth.hadAuth() && t.getUserInfo(function() { //a.getCardList(); }); }, onShow: function() { if (typeof this.getTabBar === 'function' && this.getTabBar()) { var index=getApp().getPageIndex(this); this.getTabBar().setData({ active: index //数字是当前页面在tabbar的索引 }) getApp().requestCardNum(this); } var th = this; this.setData({requestData:null,is_load:0}); //调用底部导航 //t.editTabBar(th,getApp().globalData.setting.stoid,getApp().globalData.url); //----获取系统参数----- getApp().getConfig2(function(e) { var json_d = JSON.parse(e.switch_list); var is_open_offline=json_d.is_pricing_open; th.setData({ bconfig: e,sales_rules:e.sales_rules }); getApp().request.promiseGet("/store/storemoduleendtime/page?store_id=" +os.stoid + "&type=6",{}).then(res=>{ //未购买 if(res.data.code!=0 || !res.data.data || !res.data.data.pageData || !res.data.data.pageData.length){ is_open_offline=0; }else{ //已经过期 var item=res.data.data.pageData[0]; if(item.end_time { if(res.data.code==0 && res.data.data && res.data.data.pageData && res.data.data.pageData.length>0){ var a = res.data.data.pageData; var narr=[]; for(var i in a){ var tt = { 'ad_code': os.imghost + a[i].ad_code, 'media_link': '', 'ad_weapplink':a[i].ad_weapplink }; narr.push(tt); } th.setData({ad_data:narr}); }else{ //--获取是否又秒杀活动-- getApp().request.promiseGet("/api/ms/flash_sale/spikepage", { data: { store_id: oo.stoid, timetype: 2, is_end: 0, is_show: 1, pageSize: 1 }, }).then(res => { if (res.data.code == 0 && res.data.data && res.data.data.pageData.length > 0) { th.setData({ is_has_flash: 1 }) } }); } }) }, onHide(){ this.data.zuhe_map={}; }, onUnLoad(){ getApp().globalData.cart_zh_act=null; }, //-------------获取购物车列表,要安装门店进行分类订单----------- getCardList: function() { var th = this; //要获取会员是不是等级会员 getApp().getConfig2(function(conf){ //--- 看后台是不是有开通等级卡 --- if(conf.switch_list){ var s_list=JSON.parse(conf.switch_list); var user=getApp().globalData.userInfo; //如果后台有开启等级价的功能 if(user && parseInt(s_list.rank_switch)==2 && 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 && now0) { var g_arr=[]; for (var i = 0; i < carr.length; i++) { if(g_arr.length==0) g_arr.push(carr[i].goods_id); else{ var ind=g_arr.findIndex(function (ele) { return ele.goods_id==carr[i].goods_id }) if(ind>-1) continue; g_arr.push(carr[i].goods_id) } } var by_map=null; //--要获得商品,该用户买了多少件,同步应用-- await getApp().request.promiseGet("/api/weshop/ordergoods/listUserBuyGoodsNum", { data: { store_id: oo.stoid, user_id: user_id, goods_ids: g_arr.join(','), }, }).then(res => { if(res.data.code==0 && res.data.data && res.data.data.length>0){ by_map={}; for(let i in res.data.data){ let item=res.data.data[i]; by_map[item.goods_id]=item; } } }) for (var i = 0; i < carr.length; i++) { var item = carr[i]; var good = item; if(item.is_gift){ var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; getApp().request.delete(url, { success: function (t) { } }); //商品已经下架 continue; } var tt = ut.gettimestamp(); //如果商品下架了,或者商品是赠品,一开始都要清除 if ((good.down_time > 0 && good.down_time < tt) || good.is_on_sale == 0) { var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; getApp().request.delete(url, { success: function (t) { } }); //商品已经下架 continue; } var goodsbuynum=0,promgoodsbuynum=0,limit=0; if(by_map && by_map[good.goods_id]){ goodsbuynum=by_map[good.goods_id].goodsbuynum; promgoodsbuynum=by_map[good.goods_id].promgoodsbuynum; } limit=good.viplimited; //判断商品的限购 if(item.goods_num+goodsbuynum>limit && limit>0){ var cbuy=limit-goodsbuynum; if(cbuy<=0){ var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; a.delete(url, {}); continue; } //-- 购物车更新 -- var updata1={id: item.id,goods_num:cbuy,store_id:os.stoid,user_id:getApp().globalData.userInfo.user_id }; getApp().request.put("/api/weshop/cart/update", { data: updata1, }) item.goods_num=cbuy; } //如果秒杀活动都去掉了,或者结束了,那么这个商品也没有必要留着 if (item.prom_type == 1) { var prom = null; await getApp().request.promiseGet("/api/ms/flash_sale/get/" + os.stoid + "/" + item.prom_id, {}).then(res => { if (res.data.code == 0) prom = res.data.data; }) //---如果有活动,不算在一起--- if (!prom && prom.is_end == 0 && prom.end_time > now && prom.start_time < now) { var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; a.delete(url, { success: function (t) { } }); //商品已经下架 continue; } //判断秒杀的限购 if(item.goods_num+promgoodsbuynum>prom.buy_limit && prom.buy_limit>0){ var cbuy=prom.buy_limit-promgoodsbuynum; if(cbuy<=0){ var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; a.delete(url, {}); continue; } //-- 购物车更新 -- var updata1={id: item.id,goods_num:cbuy,store_id:os.stoid,user_id:getApp().globalData.userInfo.user_id }; getApp().request.put("/api/weshop/cart/update", { data: updata1, }) item.goods_num=cbuy; } } //--判断优惠活动有没有过期-- else if (item.prom_type == 3) { var isok = 1; await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromList/" + os.stoid + "/" + item.goods_id + "/1", {}).then(res => { if (res.data.code == 0) { var r_data = res.data.data; if (!r_data.promGoodsLists) { var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; getApp().request.delete(url, {}); //商品已经无活动 isok = 0; }else{ //如果活动的ID不一样,说明原先的活动已经没有参与了或者过期了 if(item.prom_id!=r_data.promGoodsLists[0].prom_id ){ var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; getApp().request.delete(url, {}); //商品已经下架 isok = 0; } } } else { var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; getApp().request.delete(url, {}); //商品已经下架 isok = 0; } }) if (!isok) continue; } else if (item.prom_type == 7) { if(!th.data.zuhe_map[item.prom_id]){ //如果有组合购 var isok = 1; var act=null; var url="/api/weshop/prom/zhbuy/get/"+os.stoid+"/"+item.prom_id+"/"+getApp().globalData.userInfo.user_id; await getApp().request.promiseGet(url, {}).then(res => { if(res.data.code==0 && res.data.data){ if(res.data.data.is_show!=1){ isok=0; } //如果活动已经结束 if(res.data.data.is_end==1){ isok=0; } //已经结束 if(ut.gettimestamp()>res.data.data.end_time){ isok=0; } //还未开始 if(ut.gettimestamp() { if (ut.ajax_ok(res)) { var gdlist = res.data.data.pageData; th.data.zuhe_map_good[item.prom_id]=gdlist; } }) } if(th.data.zuhe_map[item.prom_id] && th.data.zuhe_map[item.prom_id]!=-1 ){ var gdlist=th.data.zuhe_map_good[item.prom_id]; var t_item=gdlist.find(function (ele) { return ele.goods_id==item.goods_id }) item.buyqty=t_item.buyqty; item.zh_b_num=promgoodsbuynum; item.act=th.data.zuhe_map[item.prom_id]; }else{ var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; getApp().request.delete(url, {}); th.data.zuhe_map[item.prom_id]=-1; continue; } } else if(item.prom_type == 0) { //如果有优惠活动,要更新活动 await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromList/" + os.stoid + "/" + item.goods_id + "/1", {}).then(res => { if (res.data.code == 0) { var r_data = res.data.data; if (r_data.promGoodsLists) { var url = '/api/weshop/cart/update'; getApp().request.put(url, { data:{id:item.id,store_id:oo.stoid,prom_type:3,prom_id:r_data.promGoodsLists[0].prom_id} }); item.prom_type=3; item.prom_id=r_data.promGoodsLists[0].prom_id; } } }) } all_num += item.goods_num; item.original_img = oo.imghost + item.original_img; item.selected = 0; item.erpwareid=good.erpwareid; //要同步下线商品的id item.shop_price=good.shop_price; //要同步下线商品的id //当商品要计算等级价的售 if(item.prom_type == 0 || item.prom_type == 3 || item.prom_type == 5 || item.prom_type == 7){ if(th.data.card_field && good[th.data.card_field]){ item.goods_price=good[th.data.card_field]; //要同步下线商品的id }else{ item.goods_price=good.shop_price; } var t={id:item.id,store_id:os.stoid,user_id:getApp().globalData.userInfo.user_id,goods_price:item.goods_price} getApp().request.put("/api/weshop/cart/update", {isShowLoading:0,data: t,}) } var pcid = item.pick_id; var find = 0; //---------循环查找门店--- if (arr.length > 0) { for (var j = 0; j < arr.length; j++) { if (arr[j].pid == pcid) { arr[j].goods.push(item); find = 1; break; } } } //------如果没有找到----- if (find == 0) { var pikname = ''; //找到门店名称 for (var k = 0; k < th.data.allsto.length; k++) { if (pcid == th.data.allsto[k].pickup_id) { pikname = th.data.allsto[k].pickup_name; break; } } var narr = new Array(); narr.push(item); var ie = { pid: pcid, pname: pikname, goods: narr, selected: 0 }; arr.push(ie); } } } if(th.data.is_open_offline && th.data.is_open_offline>0 && th.data.sales_rules==2){ //-- 此时要实时更新线下取价价格 -- for(var i=0;i0) { for (var i = 0; i < carr.length; i++) { var item = carr[i]; var good = null; await getApp().request.promiseGet("/api/weshop/serviceCard/get/" + oo.stoid + "/" + item.service_id, {}).then(res => { good = res.data.data; }) if(!good){ var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; getApp().request.delete(url, { success: function (t) { } }); continue; } //如果商品下架了,或者商品是赠品,一开始都要清除 if (good.is_show == 0) { var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; getApp().request.delete(url, { success: function (t) { } }); //商品已经下架 continue; } all_num += item.goods_num; item.img_url = oo.imghost + good.imgUrl; item.selected = 0; var pcid = item.pick_id; var find = 0; //---------循环查找门店--- if (arr.length > 0) { for (var j = 0; j < arr.length; j++) { if (arr[j].pid == pcid) { arr[j].goods.push(item); find = 1; break; } } } //------如果没有找到----- if (find == 0) { var pikname = ''; //找到门店名称 for (var k = 0; k < th.data.allsto.length; k++) { if (pcid == th.data.allsto[k].pickup_id) { pikname = th.data.allsto[k].pickup_name; break; } } var narr = new Array(); narr.push(item); var ie = { pid: pcid, pname: pikname, goods: narr, selected: 0 }; arr.push(ie); } } } th.setData({ service_data: arr, all_num2: all_num, is_edit: 0 }), th.doCheckAll(), wx.stopPullDownRefresh(); } }); }, //设置莫个门店的所有线下价格 async set_offline(list){ var th=this; var userInfo=getApp().globalData.userInfo; //组织一下商品,然后进行线下价格的赋值 var wlist=""; for(var i in list.goods){ //如果商品有促销活动 if(list.goods[i].prom_type>0 && list.goods[i].prom_type!=7) continue; wlist+= encodeURIComponent(list.goods[i].erpwareid)+","; } wlist=ut.sub_last(wlist); //调用接口进行赋值 await getApp().request.promiseGet("/api/weshop/goods/listWarePrice", { data:{ store_id:os.stoid, PickupId:list.pid, WareIds:wlist, VIPId:encodeURIComponent(userInfo.erpvipid) } }).then(res => { if(res.data.code==0 && res.data.data && res.data.data.length>0){ for(var e in res.data.data){ th.set_cart_offline_price(res.data.data[e],list.goods); } } }) }, //-- 设置购物车线下 -- set_cart_offline_price:function(data,glist) { for(var i in glist) { if(glist[i].erpwareid==data.WareId && (glist[i].prom_type==0 || glist[i].prom_type==7)){ if(glist[i].goods_price>=data.WarePrice){ glist[i].is_offline=1; glist[i].offline_price=data.WarePrice; glist[i].pricing_type=data.PriceType; } } } }, //删除商品 delete_th_item: function(t) { var e = this; var a = rq; console.log(a); wx.showModal({ title: "确定删除?", success: function(s) { if (s.confirm) { var r = t.currentTarget.dataset.cartid; var url = '/api/weshop/cart/del/' + oo.stoid + '/' + r; a.delete(url, { success: function(t) { e.getCardList(); } }); } } }); }, //-----------------点击输入修改商品数量--------------- valueToNum: function(t) { if(!this.data.is_load) return false; //控制住,避免事件响应冲突,只有input有输入的时候,才刷新 if(this.data.btn_click){ return false; } this.data.btn_click=1; var a = t.currentTarget.dataset.item; var b = t.currentTarget.dataset.pitems; a = this.data.requestData[b].goods[a]; var e = a; var th=this; if (a = isNaN(t.detail.value) || t.detail.value < 1 ? 1 : parseInt(t.detail.value)) { var s = { goods_num: a, goods_id: e.goods_id, id: e.id, store_id: oo.stoid }; th.postCardList(s, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems); } }, //-------------加数量--------------------- addNum: function(t) { if(!this.data.is_load) return false; if (this.data.up_dating == 1) return false; this.data.up_dating = 1; var a = t.currentTarget.dataset.item; var b = t.currentTarget.dataset.pitems; a = this.data.requestData[b].goods[a]; if (a.goods_num0 && e.data.service_data && e.data.service_data.length>0){ wx.showModal({ title: '提示', content: '服务卡项目不能和商品一起选择' }); return false; } this.data.btn_click=1; var offline_price=0; var offline_num=0; if(dda && dda.length>0){ for (var i = 0; i < dda.length; i++) { var item = dda[i].goods; if (e.data.checkAllToggle) { var txt = "requestData[" + i + "].selected"; e.setData({ [txt]: 0, }); } var fir = 0; for (var j = 0; j < item.length; j++) { if(item[j].is_gift) continue; var obj=JSON.parse(JSON.stringify(item[j])); //计算之前先移除 zh_calc.remove_zhprom(dda,i,obj); if (fir == 0) { fir = item[j].distr_type; } else { //如果同一门店有不同门店的商品,不能同一配送 if (fir != item[j].distr_type && !e.data.checkAllToggle && item[j].distr_type != 0) { text_arr += item[j].goods_name + " "; break; } } var txt = "requestData[" + i + "].goods[" + j + "].selected"; if(e.data.checkAllToggle) obj.goods_num=0; zh_calc.add_zhprom(dda,i,obj); e.setData({ [txt]: !e.data.checkAllToggle, }) if (!e.data.checkAllToggle) { //组合购的金额要另外算 if(item[j].prom_type!=7) tfeel += item[j].goods_num * item[j].goods_price; t_num += item[j].goods_num; } //-- 如果这个商品是线下取价的时候 -- if(item[j].is_offline && item[j].prom_type!=7){ offline_price+= (item[j].goods_price-item[j].offline_price)*item[j].goods_num; offline_num+=item[j].goods_num; } } } if (text_arr != "") { wx.showModal({ title: '提示', content: text_arr + '不能与门店中其他商品一起结算,配送方式不一致' }); return false; } else { for (var i = 0; i < dda.length; i++) { if (!e.data.checkAllToggle) { var txt = "requestData[" + i + "].selected"; e.setData({ [txt]: 1, }); } //总的价格,把组合商品的价格拿出来 var zh_calc_res=zh_calc.calculate_zh(dda,i,this); tfeel+=zh_calc_res.tfeel; offline_price+=zh_calc_res.offline_price; offline_num+=zh_calc_res.offline_num; //当有线下取价的时候 if(offline_price){ var txt1= "requestData[" + i + "].offline_price"; var txt2= "requestData[" + i+ "].offline_num"; th.setData({ [txt1]: offline_price.toFixed(2), [txt2]: offline_num, }); }else{ if(dda[i].offline_price>0){ var txt1= "requestData[" + i + "].offline_price"; var txt2= "requestData[" + i + "].offline_num"; th.setData({ [txt1]: 0, [txt2]: 0 }); } } } e.setData({ checkAllToggle: !e.data.checkAllToggle, total_fee: tfeel.toFixed(2), total_num: t_num, }); for(var i in e.data.requestData){ e.check_prom_activity(i) } } } if(sdda && sdda.length>0){ for (var i = 0; i < sdda.length; i++) { var item = sdda[i].goods; if (e.data.checkAllToggle) { var txt = "service_data[" + i + "].selected"; e.setData({ [txt]: 0, }); } var fir = 0; for (var j = 0; j < item.length; j++) { var txt = "service_data[" + i + "].goods[" + j + "].selected" e.setData({ [txt]: !e.data.checkAllToggle, }) if (!e.data.checkAllToggle) { tfeel += item[j].goods_num * item[j].money; t_num += item[j].goods_num; } } } e.setData({ checkAllToggle: !e.data.checkAllToggle, total_fee: tfeel.toFixed(2), total_num: t_num, }); } }, //------门店全选按钮,要判断是否门店的匹配方式一致--------- check_th_all_item:async function(ele) { var e = this, pitems = ele.currentTarget.dataset.pitems, item = this.data.requestData[pitems].goods, sele = this.data.requestData[pitems].selected; this.data.btn_click=1; var garr=e.data.service_data; var isok = 1, fir = 0, iarr = item; if(!sele){ var check_is_service_selected=0; for (var ii in garr){ for (var ij in garr[ii].goods){ if( garr[ii].goods[ij].selected){ check_is_service_selected=1; break; } } } if(check_is_service_selected){ wx.showModal({ title: '提示', content: '服务卡项目不能和商品一起选择' }); return false; } } if (!sele && item.length > 0) { for (var i = 0; i < iarr.length; i++) { if(iarr[i].is_gift==1) continue; if (iarr[i].distr_type != 0) { if (fir == 0) { fir = iarr[i].distr_type; } else { if (fir != iarr[i].distr_type && iarr[i].distr_type != 0) { isok = 0; break; } } } } } if (!isok) { wx.showModal({ title: '提示', content: '同一门店自提和物流的商品不能同时结算' }); return false; } for (var i = 0; i < item.length; i++) { var txt = "requestData[" + pitems + "].goods[" + i + "].selected"; e.setData({ [txt]: Number(!sele), }); } var txt = "requestData[" + pitems + "].selected"; e.setData({ [txt]: Number(!sele), }); await e.check_prom_activity(pitems); for(var i in e.data.requestData){ if(i!=pitems) await e.check_prom_activity(i); } this.doCheckAll(); }, //---------------单选,也要判断门店的配送方式是否一致-------------- check_th_item: async function(t) { var e = this, item = t.currentTarget.dataset.item, pitems = t.currentTarget.dataset.pitems; a = this.data.requestData[pitems].goods[item]; var isok = 1,fir = 0; var iarr = e.data.requestData[pitems].goods; this.data.btn_click=1; var garr= e.data.service_data; if (!a.selected) { var check_is_service_selected = 0; for (var ii in garr) { for (var ij in garr[ii].goods) { if (garr[ii].goods[ij].selected) { check_is_service_selected = 1; break; } } } if (check_is_service_selected) { wx.showModal({ title: '提示', content: '服务卡项目不能和商品一起选择' }); return false; } } //当数量大于1,且是选择的时候 if (iarr.length > 1 && !a.selected) { for (var i = 0; i < iarr.length; i++) { if(iarr[i].is_gift==1) continue; //---当不是本身选择项目---- var sel = iarr[i].selected; if (iarr[i].distr_type != 0 && (sel || iarr[i].id == a.id)) { if (fir == 0) { fir = iarr[i].distr_type; } else { if (fir != iarr[i].distr_type && iarr[i].distr_type != 0) { isok = 0; break; } } } } } if (!isok) { wx.showModal({ title: '提示', content: '同一门店自提和物流的商品不能同时结算' }); } else { var txt = "requestData[" + pitems + "].goods[" + item + "].selected"; e.setData({ [txt]: Number(!a.selected), }); if(a.prom_type==3){ await e.check_prom_activity(pitems); //判断商品是不是优惠活动 for(var i in e.data.requestData){ if(i!=pitems) await e.check_prom_activity(i); } } this.doCheckAll(); } }, //------门店全选按钮,要判断是否门店的匹配方式一致--------- check_th_all_item_ser:async function(ele) { var e = this, pitems = ele.currentTarget.dataset.pitems, item = this.data.service_data[pitems].goods, sele = this.data.service_data[pitems].selected; this.data.btn_click=1; var garr= e.data.requestData; var isok = 1, fir = 0, iarr = item; if(!sele){ var check_is_goods_selected=0; for (var ii in garr){ for (var ij in garr[ii].goods){ if( garr[ii].goods[ij].selected){ check_is_goods_selected=1; break; } } } if(check_is_goods_selected){ wx.showModal({ title: '提示', content: '服务卡项目不能和商品一起选择' }); return false; } } for (var i = 0; i < item.length; i++) { var txt = "service_data[" + pitems + "].goods[" + i + "].selected"; e.setData({ [txt]: Number(!sele), }); } var txt = "service_data[" + pitems + "].selected"; e.setData({ [txt]: Number(!sele), }); this.doCheckAll(); }, //---------------单选,也要判断门店的配送方式是否一致-------------- check_th_item_ser: async function(t) { var e = this, item = t.currentTarget.dataset.item, pitems = t.currentTarget.dataset.pitems; a = this.data.service_data[pitems].goods[item]; var isok = 1,fir = 0; var iarr = e.data.service_data[pitems].goods; this.data.btn_click=1; var garr= e.data.requestData; if(!a.selected){ var check_is_goods_selected=0; for (var ii in garr){ for (var ij in garr[ii].goods){ if( garr[ii].goods[ij].selected){ check_is_goods_selected=1; break; } } } if(check_is_goods_selected){ wx.showModal({ title: '提示', content: '服务卡项目不能和商品一起选择' }); return false; } } var txt = "service_data[" + pitems + "].goods[" + item + "].selected"; e.setData({ [txt]: Number(!a.selected), }); this.doCheckAll(); }, //----------检查是否全选--------- doCheckAll: function() { var th = this, tfeel = 0, t_num = 0, ischeck = 1, car = this.data.requestData, car2 = this.data.service_data, all_num = 0; //-- 购物车 -- if(car && car.length>0){ for (var a = 0; a < car.length; a++) { var item = car[a].goods, is_s_sele = 1; var offline_price=0; var offline_num=0; for (var c = 0; c < item.length; c++) { if(item[c].is_gift) continue; all_num += item[c].goods_num; //不管怎么样都要移出去 var obj=JSON.parse(JSON.stringify(item[c])); zh_calc.remove_zhprom(car,a,obj); if (item[c].selected == 0) { ischeck = 0; is_s_sele = 0; if(item[c].prom_type==7) { obj.goods_num=0; zh_calc.add_zhprom(car,a,obj); } } else { if(item[c].prom_type==7){ //先把商品放入组合计算的专用的区域 zh_calc.add_zhprom(car,a,obj); }else{ tfeel += item[c].goods_num * item[c].goods_price; } t_num += item[c].goods_num; } //-- 如果这个商品是线下取价的时候 -- if(item[c].is_offline && item[c].prom_type!=7){ offline_price+= (item[c].goods_price-item[c].offline_price)*item[c].goods_num; offline_num+=item[c].goods_num; } } //总的价格,把组合商品的价格拿出来 var zh_calc_res=zh_calc.calculate_zh(car,a,th); tfeel+=zh_calc_res.tfeel; offline_price+=zh_calc_res.offline_price; offline_num+=zh_calc_res.offline_num; var txt = "requestData[" + a + "].selected"; th.setData({ [txt]: Number(is_s_sele) }); //当有线下取价的时候 if(offline_price){ var txt1= "requestData[" + a + "].offline_price"; var txt2= "requestData[" + a + "].offline_num"; th.setData({ [txt1]: offline_price.toFixed(2), [txt2]: offline_num, }); }else{ if(car[a].offline_price>0){ var txt1= "requestData[" + a + "].offline_price"; var txt2= "requestData[" + a + "].offline_num"; th.setData({ [txt1]: 0, [txt2]: 0 }); } } } } //-- 服务卡 -- if(car2 && car2.length>0){ for (var a = 0; a < car2.length; a++) { var c_item=car2[a]; var item = car2[a].goods, is_s_sele = 1; for (var c = 0; c < item.length; c++) { if(item[c].is_gift) continue; all_num += item[c].goods_num; if (item[c].selected == 0) { ischeck = 0; is_s_sele = 0; } else { tfeel += item[c].goods_num * item[c].money; t_num += item[c].goods_num; } } var txt = "service_data[" + a + "].selected"; th.setData({ [txt]: Number(is_s_sele) }); } } this.setData({ checkAllToggle: ischeck, total_fee: tfeel.toFixed(2), all_num: all_num, total_num: t_num }); }, //----------------------更新购物数量,加减,调用接口--------------------- postCardList: function(t, item, pitem) { var e = this,th=e; var user_id = getApp().globalData.user_id; console.log('update'); console.log(t); rq.get("/api/weshop/goods/get/" + oo.stoid + "/" + t.goods_id, { isShowLoading: 0, async success(d) { var limit = d.data.data.viplimited; var store_count = d.data.data.store_count; var wareIds=d.data.data.erpwareid; var goodsinfo = e.data.requestData[pitem].goods[item]; var promgoodsbuynum = 0; var goodsbuynum = 0; //--要获得商品,该用户买了多少件,同步应用-- await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", { data: { store_id: oo.stoid, user_id: user_id, goods_id: goodsinfo.goods_id, prom_type: goodsinfo.prom_type, prom_id: goodsinfo.prom_id }, }).then(res => { var buy_num_data = res.data.data; if (buy_num_data.promgoodsbuynum) { promgoodsbuynum = buy_num_data.promgoodsbuynum; var txt="requestData[" + pitem + "].goods[" + item + "].zh_b_num"; th.setData({[txt]:promgoodsbuynum}); } goodsbuynum = buy_num_data.goodsbuynum; }) var buyed_mum2 = t.goods_num + goodsbuynum; if (buyed_mum2 > limit && limit > 0) { wx.showModal({ title: '提示', content: '购买数量超出商品限购' }); var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; var cbuy = limit - buyed_mum2; e.setData({ [txt]: cbuy > 0 ? cbuy : 0, }); e.doCheckAll(); t.goods_num=cbuy > 0 ? cbuy : 0, e.update_cart(t, pitem, item); return false; } if (goodsinfo.prom_type == 1) { //读取秒杀 rq.get("/api/ms/flash_sale/getFlashSaleOne/" + oo.stoid + "/" + goodsinfo.prom_id, { isShowLoading: 0, success: function(res_d) { if(res_d.data.code==0 && res_d.data.data){ if (t.goods_num > store_count) { wx.showModal({ title: '提示', content: '购买数量超出商品库存' }); var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; e.setData({ [txt]: store_count }); e.doCheckAll(); t.goods_num=store_count; e.update_cart(t, pitem, item); return false; } var false_data = res_d.data.data; //--判断库存-- if (t.goods_num > false_data.goods_num - false_data.buy_num) { wx.showModal({ title: '提示', content: '购买数量超出活动库存' }); var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; e.setData({ [txt]: false_data.goods_num - false_data.buy_num }); e.doCheckAll(); t.goods_num=false_data.goods_num - false_data.buy_num; e.update_cart(t, pitem, item); return false; } //--判断redis数量是否已经超出-- if (t.goods_num > false_data.redisnum) { wx.showModal({ title: '提示', content: '购买数量超出商品库存' }); var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; e.setData({ [txt]: false_data.redisnum }); e.doCheckAll(); t.goods_num=false_data.redisnum; e.update_cart(t, pitem, item); return false; } //--活动的限购是不是要判断-- if (t.goods_num + promgoodsbuynum > false_data.buy_limit && false_data.buy_limit > 0) { wx.showModal({ title: '提示', content: '购买数量超出秒杀限购' }); var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; e.setData({ [txt]: false_data.false_data.buy_limit }); e.doCheckAll(); t.goods_num=false_data.false_data.buy_limit; e.update_cart(t, pitem, item); return false; } e.update_cart(t, pitem, item); }else{ //--- 看一下是不是线下库存 --- if(th.data.sales_rules==2){ th.check_down_line(t, pitem, item,wareIds); }else{ if (t.goods_num > store_count) { wx.showModal({ title: '提示', content: '购买数量超出商品库存' }); var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; e.setData({ [txt]: store_count }); e.doCheckAll(); return false; } e.update_cart(t, pitem, item); } } } }) } else { //--- 看一下是不是线下库存 --- if(th.data.sales_rules==2 && goodsinfo.prom_type!=7){ th.check_down_line(t, pitem, item,wareIds); }else{ if (t.goods_num > store_count) { wx.showModal({ title: '提示', content: '购买数量超出商品库存' }); var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; e.setData({ [txt]: store_count }); e.doCheckAll(); t.goods_num=store_count; } e.update_cart(t, pitem, item); } } } }); }, //----------------------更新购物数量,加减,调用接口--------------------- postCardList_ser: function(t, item, pitem) { var e = this,th=e; var user_id = getApp().globalData.user_id; var txt = "service_data[" + pitem + "].goods[" + item + "].goods_num"; e.setData({ [txt]: t.goods_num }); e.doCheckAll(); e.update_cart_ser(t, pitem, item); }, //---检验线下库存的数量--- async check_down_line(t, pitem, item,erpwareid){ var ob={},th=this; await this.check_down_line_next(t, pitem, item,erpwareid,function(res){ ob=res; }); var log=0; if(ob.code==-1){ wx.showModal({ title: '提示', content: '购买数量超出商品库存' }); var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; th.setData({ [txt]: ob.CanOutQty }); th.doCheckAll(); t.goods_num=ob.CanOutQty; } this.update_cart(t, pitem, item); }, //---检验线下库存的数量的子函数--- async check_down_line_next(t, pitem, item,erpwareid,func){ var goodsinfo = this.data.requestData[pitem].goods[item]; var lock=0,pick_no,plist; //先读取门店的lock await getApp().request.promiseGet("/api/weshop/order/ware/lock/page",{ data:{store_id:os.stoid,wareId:t.goods_id,storageId:goodsinfo.pick_id,pageSize:1000} }).then(res=>{ if(res.data.code==0 && res.data.data.total>0){ for(var i in res.data.data.pageData) lock+=res.data.data.pageData[i].outQty; } }) //先获取门店的编号 await getApp().request.promiseGet("/api/weshop/pickup/get/"+os.stoid+"/"+goodsinfo.pick_id,{ data:{storeId:os.stoid,goodsId:t.goods_id,pickupId:goodsinfo.pick_id} }).then(res=>{ if(res.data.code==0){ pick_no=res.data.data.pickup_no; } }) //读取线下的门店库存 await getApp().request.promiseGet("/api/weshop/goods/getWareStorages",{ data:{storageNos:pick_no,wareIds:encodeURIComponent(erpwareid),storeId:os.stoid} }).then(res=>{ if(res.data.code==0){ plist=res.data.data.pageData[0]; } }) var ob={}; ob.code=1; if(!plist){ ob.code=-1;ob.CanOutQty=0;func(ob); return false; } var c_num=t.goods_num; if(t.need_downlow_num) c_num=t.need_downlow_num; if( c_num>plist.CanOutQty-lock){ ob.code=-1; ob.CanOutQty=plist.CanOutQty-lock if(ob.CanOutQty<0) ob.CanOutQty=0; } func(ob) }, //--更新购物车--- update_cart: function(t, pitem, item) { var e = this; getApp().request.put("/api/weshop/cart/update", { data: t, success:async function(ee) { var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; e.setData({ [txt]: t.goods_num, }); await e.check_prom_activity(pitem) for(var i in e.data.requestData){ if(i!=pitem) await e.check_prom_activity(i) } e.doCheckAll(); getApp().requestCardNum(e); } }); }, //--更新购物车--- update_cart_ser: function(t, pitem, item) { var e = this; getApp().request.put("/api/weshop/cartService/update", { data: t, success:async function(ee) { var txt = "service_data[" + pitem + "].goods[" + item + "].goods_num"; e.setData({ [txt]: t.goods_num, }); e.doCheckAll(); getApp().requestCardNum(e); } }); }, //-------下拉刷新--------- onPullDownRefresh: function(t) { this.getCardList(); }, //--------------去结算------------ async checkout() { if(!this.data.total_num || this.data.total_num<=0) return false; if(!this.data.is_load) return false; if(this.data.up_dating) { wx.showLoading({ title:"计算中" }) } var garr=this.data.requestData; var check_is_goods_selected=0; if(garr) { for (var ii in garr) { for (var ij in garr[ii].goods) { if (garr[ii].goods[ij].selected) { check_is_goods_selected = 1; break; } } } } //-- 如果是商品的结算 -- if(check_is_goods_selected) { var glist = ""; //用逗号隔开的 var map = new Map(); //使用map值键进行运算 var map_limit = new Map(); //使用map值键进行存储限购 var g_arr = new Array(); //已选的商品列表 var user_id = getApp().globalData.user_id; var th = this; //用于判断是不是积分购的普通购买 var normal_arr = {}; var ab = 0; //选中 wx.showLoading(); for (var i = 0; i < this.data.requestData.length; i++) { var i_arr = this.data.requestData[i].goods; for (var j = 0; j < i_arr.length; j++) { if (i_arr[j].selected && i_arr[j].is_gift != 1) { if (i_arr[j].is_pd_normal) { normal_arr[i_arr[j].goods_id] = 1; } //map 的key是不会重复,会覆盖,, var ie = { goods_id: i_arr[j].goods_id, id: i_arr[j].id, goods_price: i_arr[j].goods_price, }; //判断是不是线下取价 if (i_arr[j].is_offline) { ie.is_offline = i_arr[j].is_offline; ie.offline_price = i_arr[j].offline_price; ie.pricing_type = i_arr[j].pricing_type; } g_arr.push(ie); if (map.has(i_arr[j].goods_id + "")) { var num11 = map.get(i_arr[j].goods_id + ""); var num22 = parseInt(i_arr[j].goods_num) + parseInt(num11); map.set(i_arr[j].goods_id + "", num22); } else { map.set(i_arr[j].goods_id + "", i_arr[j].goods_num); } glist += i_arr[j].goods_id + ","; ab = 1; //--普通商品,如果有开启线下库存的功能,要调用线下库存进行计算,赠品不要进行调用线下库存--- if ((i_arr[j].prom_type == 0 || i_arr[j].prom_type == 3 || i_arr[j].prom_type == 5 || i_arr[j].need_downlow_num ) && th.data.sales_rules == 2 && i_arr[j].is_gift != 1) { //--获取商品的线下商品ID-- var gd = null; await getApp().request.promiseGet("/api/weshop/goods/get/" + oo.stoid + "/" + i_arr[j].goods_id, {}).then(res => { if (res.data.code == 0) gd = res.data.data; }) //--判断商品是线下库存-- var ob = {} await th.check_down_line_next(i_arr[j], i, j, gd.erpwareid, function (rs) { ob = rs; }); if (ob.code == -1) { t.my_warnning(gd.goods_name + "门店库存不足", 0, th); wx.hideLoading(); return false; } var is_ok = 1; //如果是优惠活动话,要看活动有没有过期 if (i_arr[j].prom_type == 3) { //判断有没有活动 await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromList/" + os.stoid + "/" + i_arr[j].goods_id + "/1", {}).then(res => { if (res.data.code == 0) { if (!res.data.data.promGoodsLists) { t.my_warnning(i_arr[j].goods_name + "优惠活动已经过期", 0, th); wx.hideLoading(); is_ok = 0; } } }) } if (!is_ok) { return false; } } } else { if (i_arr[j].is_gift == 1) continue; rq.put("/api/weshop/cart/update", { data: { id: i_arr[j].id, selected: 0, store_id: oo.stoid }, success: function (ee) { console.log(ee); } }); } } } if (ab == 0) { t.my_warnning("未选择商品", 0, th); wx.hideLoading(); return false; } glist = glist.substring(0, glist.length - 1); //--取一下商品的限购 以及活动的限购,redis数量-- rq.get("/api/weshop/goods/getGoodsListNum", { data: { goodsidlist: glist, store_id: oo.stoid }, async success(ee) { console.log(ee); if (ee.data.code == 0) { var ddata = ee.data.data, isok = 1, gname = "", err = ""; //--组装-- for (var ij = 0; ij < ddata.length; ij++) { var val = ddata[ij]; var obj = map_limit.get(val.goods_id + ""); if (obj) continue; var promgoodsbuynum = 0; var goodsbuynum = 0; //--要获得商品,该用户买了多少件,同步应用-- await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", { data: { store_id: oo.stoid, user_id: user_id, goods_id: val.goods_id, prom_type: val.prom_type, prom_id: val.prom_id }, }).then(res => { var buy_num_data = res.data.data; if (buy_num_data.promgoodsbuynum) promgoodsbuynum = buy_num_data.promgoodsbuynum; goodsbuynum = buy_num_data.goodsbuynum; }) var ie = { promgoodsbuynum: promgoodsbuynum, goodsbuynum: goodsbuynum }; map_limit.set(val.goods_id + "", ie); } try { for (var ind in ddata) { var val = ddata[ind]; var num = map.get(val.goods_id + ""); if (num <= 0) { isok = 0; gname = val.goods_name; throw "购买数量不能为0"; return false; } if (val.prom_type == 1 || val.prom_type == 6) { if (num > val.store_count) { isok = 0; gname = val.goods_name; throw "超出库存"; return false; } } if (th.data.sales_rules != 2) { if (num > val.store_count) { isok = 0; gname = val.goods_name; throw "超出库存"; return false; } } if (num > val.redisnum && val.redisnum && !normal_arr[val.goods_id]) { isok = 0; gname = val.goods_name; throw "超出活动库存"; return false; } if (num > val.goods_num - val.buy_num && val.goods_num && !normal_arr[val.goods_id]) { isok = 0; gname = val.goods_name; throw "超出活动库存"; return false; } var buyed = map_limit.get(val.goods_id + ""); if (num + buyed.goodsbuynum > val.viplimited && val.viplimited > 0) { isok = 0; gname = val.goods_name; throw "超出商品限购"; return false; } if (num + buyed.promgoodsbuynum > val.buy_limit && val.buy_limit > 0 && !normal_arr[val.goods_id]) { isok = 0; gname = val.goods_name; throw "超出活动限购"; return false; } var card_field = th.data.card_field; for (var i = 0; i < g_arr.length; i++) { if (g_arr[i].goods_id == val.goods_id) { //如果会员是等级会员,商品有等级价,且不是活动商品 if (card_field && val[card_field] > 0 && (val.prom_type == 0 || val.prom_type == 3 || val.prom_type == 4 || val.prom_type == 5 || val.prom_type == 7 || normal_arr[val.goods_id])) { if (g_arr[i].goods_price != val[card_field]) { isok = 0; gname = val.goods_name; throw "商品价格已经变化"; } } else { if (g_arr[i].goods_price != val.shop_price && g_arr[i].goods_price != val.prom_price && val.prom_price>0) { isok = 0; gname = val.goods_name; throw "商品价格已经变化"; } } //-- 数据的更新 -- var data = { id: g_arr[i].id, selected: 1, store_id: oo.stoid }; //-- 如果有线下取价的时候 -- if (g_arr[i].is_offline) { data.pricing_type = g_arr[i].pricing_type; data.offline_price = g_arr[i].offline_price; } rq.put("/api/weshop/cart/update", { data: data, success: function (ee) { console.log(ee); } }); } } } } catch (e) { err = e; } if (isok == 0) { t.confirmBox(gname + ":" + err); wx.hideLoading(); return false; } wx.hideLoading(); wx.navigateTo({ url: "/pages/cart/cart2/cart2" }); } } }); }else{ //-- 开始服务卡的购物车购买 -- for (var i = 0; i < this.data.service_data.length; i++) { var i_arr = this.data.service_data[i].goods; for (var j = 0; j < i_arr.length; j++) { if (i_arr[j].selected) { await rq.promisePut("/api/weshop/cartService/update", { data: { id: i_arr[j].id, selected: 1, store_id: oo.stoid } }); } } } wx.hideLoading(); getApp().goto("/packageA/pages/cart2_ser/cart2_ser?is_cart=1"); } }, //结算到最后一个商品 set_last: function(ab, isok, gname) { if (isok == 0) { t.my_warnning(gname + "商品超出库存", 0, this); } else { ab ? wx.navigateTo({ url: "/pages/cart/cart2/cart2" }) : t.my_warnning("还没有选中商品", 0, this); } }, //图片失败,默认图片 bind_bnerr2: function(e) { var _errImg = e.target.dataset.errorimg; var _errurl = e.target.dataset.url; var ii = _errurl.indexOf(oo.imghost); if (ii != -1) { this.setData({ [_errImg]: oo.imghost + "/miniapp/images/default_g_img.gif", }) } }, //设置点击按钮为true或者false radio_chick: function(checked, num) { var th = this; var requestData = th.data.requestData; }, //点击编辑后的效果 edit_cart: function(e) { var type = parseFloat(e.currentTarget.dataset.type); this.setData({ is_edit: type }); }, //--多个删除购物车商品--- check_del: function() { var glist = "",slist=''; //用逗号隔开的 var user_id = getApp().globalData.user_id; var th = this; var ab = 0; //选中 var abc=0; // for (var i = 0; i < this.data.requestData.length; i++) { var i_arr = this.data.requestData[i].goods; for (var j = 0; j < i_arr.length; j++) { if (i_arr[j].selected) { glist += i_arr[j].id + ","; ab = 1; } } } for (var ii = 0; ii < this.data.service_data.length; ii++) { var i_arr = this.data.service_data[ii].goods; for (var jj = 0; jj < i_arr.length; jj++) { if (i_arr[jj].selected) { slist += i_arr[jj].id + ","; abc = 1; } } } if (ab == 0 && abc==0) { t.my_warnning("未选择商品或者服务卡", 0, th); return false; } if(ab){ glist = glist.substring(0, glist.length - 1); //要删除购物车中的商品 var url = '/api/weshop/cart/delIds/' + oo.stoid + '/' + user_id + "/" + glist; getApp().request.delete(url, { success: function(t) { th.getCardList(); } }); } if(abc){ slist = slist.substring(0, slist.length - 1); //要删除购物车中的商品 var url = '/api/weshop/cartService/delIds/' + oo.stoid + '/' + user_id + "/" + slist; getApp().request.delete(url, { success: function(t) { th.getCardList(); } }); } }, //跳到首页 goto: function(e) { var url='/pages/index/index/index'; getApp().goto(url); }, //---加载更多是靠这个函数---- onReachBottom: function() { if(this.data.requestData && this.data.requestData.length==0) { var goods_list = this.selectComponent("#goods_list"); //组件的id if (goods_list) goods_list.get_list(); } }, //检查莫个门店下的商品是不是优惠活动,有的话,看要不要送礼品,同时有没有倍增 check_prom_activity:async function (cindex) { var make_up_arr=new Array(); var th=this; var map=new Map(); var list= JSON.parse(JSON.stringify(this.data.requestData[cindex])); //循环处理活动,看活动商品的数量,用map来出来存储,key为活动id,值是数量 //-- 所有的购物车的数据,要用拷贝的赖进行计算 -- var alllist= JSON.parse(JSON.stringify(this.data.requestData)); var list2=alllist[cindex]; var no_gift_arr=[]; //主要判断有没有促销活动 var is_sele_prom=0; var is_gift_del=0; for(var i=0;i { if(res.data.code==0){ prom=res.data.data; } }) //如果活动已经结束 if(!prom || prom.is_end || prom.end_time{ if(res.data.code==0) discount=res.data.data; }) //---如果有打折的信息,赠送的信息,赠送的时候要判断是不是限购数量--- if(discount && discount['goods_id'] && discount.limit_num>=discount.bs && discount.gift_storecount>=discount.bs){ //如果这礼品超了情况下 if(no_gift_arr.indexOf(discount.gift_id)!=-1) continue; var o=discount.goodsinfo; var newd = { goods_id: o.goods_id, goods_num: discount.bs, pick_id: list.pid, user_id: app.globalData.user_id, store_id: os.stoid, goods_price: 0, member_goods_price: 0, goods_name: o.goods_name, goods_sn: o.goods_sn, sku: o.sku, is_gift: 1, prom_id:p_item[0], prom_type:3, selected:1, gift_id:discount.gift_id, original_img:th.data.imgUrl+o.original_img }; list2.goods.push(newd); var all_num=0; var all_limit_num=0; for(var i in alllist){ var list_item=alllist[i]; for(var j in list_item.goods){ //如果赠品的ID一样,要进行统计数量 if(list_item.goods[j].is_gift==1 && list_item.goods[j].gift_id==newd.gift_id){ all_num+= list_item.goods[j].goods_num; } 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]){ all_limit_num+= list_item.goods[j].goods_num; } } } //-- 赠品的数量超出库存数量和会员的限制,这里是保证所有的赠品部会超出 -- if(discount.gift_storecount{ if(res.data.code==0){ add_data=res.data.data; } }) if(add_data){ newd.id=add_data.id; list.goods.push(newd); } } } //--更新购物车的前台渲染-- var rq_text="requestData["+cindex+"]"; this.setData({[rq_text]:list}); if(!t_prom_list || t_prom_list.length==0 ) return false; //-- 提示凑单的,放在最后显示 -- for(let prid in t_prom_list){ var prom=t_prom_list[prid]; //-- 获取凑单提示 -- await getApp().request.promiseGet("/api/weshop/promgoodslist/list",{ data:{prom_id:prom.id} }).then(res=>{ if(res.data.code==0){ var list=res.data.data; for(var i in list){ var item=list[i]; if(item.prom_type==0){ if(ob.price0){ this.setData({[diff_text]:make_up_arr}); }else{ this.setData({[diff_text]:null}); } }, //去凑单 go_cou_dang:function (e) { var prom_id=e.currentTarget.dataset.prom_id; var url="/pages/goods/goodsList/goodsList?prom_type=3&prom_id="+prom_id; getApp().goto(url); }, //导航跳转 nav_goto:function(e){ var url=e.currentTarget.dataset.url; if(!url || url=='') return; if(url[0]!='/') url='/'+url; getApp().goto(url); }, refresh_input:function(){ this.data.btn_click=0; }, imageLoad:function(e){ var imgwidth = e.detail.width; var imgheight = e.detail.height; //宽高比 var ratio = imgwidth / imgheight; //计算的高度值 var viewHeight = 715 / ratio; var hei=this.data.max_sw_height; if (hei< viewHeight) { this.setData({ max_sw_height: viewHeight }); } }, go_url(e){ var url=e.currentTarget.dataset.url; getApp().goto(url); } });