diff --git a/pages/goods/goodsInfo/goodsInfo.js b/pages/goods/goodsInfo/goodsInfo.js index 204ae46..8b79787 100644 --- a/pages/goods/goodsInfo/goodsInfo.js +++ b/pages/goods/goodsInfo/goodsInfo.js @@ -119,7 +119,12 @@ Page({ is_show_sto_cat: 1, //是否显示门店分类 only_pk: null, all_sto: null, - sec_sto: null, + sec_sto: null, //选择了的门店分类 + pickpu_list:null, //读出的所有门店list + def_pickpu_list:null, //一开始5个门店list + sec_pick_index:0, //第二级门店选择ID + fir_pick_index:0, //第一级门店选择ID + //同一条形码的所有商品 sku_g: null, sku_g_pt: null, //---拼单的普通购买--- @@ -205,12 +210,18 @@ Page({ //是否点赞中 iszaning: 0, - store:0,//选择更多 + select_store:0,//选择更多 index:1, more_store:0,//选择门店 sort_store:0,//门店分类 choice_sort_store:0,//选择分类门店 new_user:0,//新用户 + + def_pick_store:null,// 默认的门店 + lat:null, //维度 + lon:null, //经度 + + is_get_local_ok:0,//获取坐标是否完成 }, //------初始化加载---------- @@ -219,17 +230,17 @@ Page({ var ee = this, that=ee,th=ee, gid = t.goods_id; - //如果tg_id是空的话,分享回来 + //---获取手机地址坐标-- + //--如果tg_id是空的话,分享回来-- if (gid == undefined || gid == null || gid == "") { gid = decodeURIComponent(postdata.scene); } + ee.setData({ gid: gid }); - ee.setData({ - gid: gid - }); - - + //----获取系统参数----- getApp().getConfig2(function (e) { + ee.setData({bconfig:e}); + if (e.categoryset.indexOf("," + 1 + ",") != -1) { ee.setData({ is_show_pl: 1 }); } if (e.categoryset.indexOf("," + 3 + ",") != -1) { ee.setData({ is_show_pp: 1 }); } if (e.categoryset.indexOf("," + 2 + ",") != -1) { ee.setData({ is_show_gb: 1 }); } @@ -243,8 +254,23 @@ Page({ supportPageScroll: !0 }); - }) + if(e.is_sort_storage){ + wx.getLocation({ + type: 'wgs84', + success: function (res) { + th.data.lat=res.latitude; + th.data.lon=res.longitude; + th.data.is_get_local_ok=1; + }, + fail: function (res) { + th.data.is_get_local_ok=1; + } + }) + }else{ + th.data.is_get_local_ok=1; + } + }) //获取用户设备信息,屏幕宽度 wx.getSystemInfo({ @@ -252,6 +278,22 @@ Page({ that.setData({ screenWidth: res.screenWidth }) } }) + + //获取用户的默认门店 + getApp().get_user_store(function (e) { + var w_time=setInterval(function () { + if(that.data.is_get_local_ok==0) return false; + var distance=null; + if( that.data.lat!=null){ + distance=Math.sqrt(e.lat*th.data.lat+e.lon*th.data.lon); + e.distance=distance; + } + if(e) that.setData({def_pick_store:e,sto_sele_name:e.pickup_name,sto_sele_id:e.pickup_id,sto_sele_distr:e}) + clearInterval(w_time); + },500) + + }) + }, //------------程序初始化入口------------- @@ -392,13 +434,6 @@ Page({ mapurl:mapurl, }); - //获取系统参数 - getApp().getConfig2(function (conf) { - ee.setData({ - bconfig:conf, - }) - }); - ee.requestRecommend(); }, @@ -457,7 +492,7 @@ Page({ //-----商品详情--- a.wxParse("content", "html", t.data.data.goods_content, ee, 6); e.wxParseAddFullImageUrl(ee, "content"); - console.log("商品的名字是什么",t.data.data); + ee.setData({ data: t.data.data, sele_g: t.data.data, @@ -731,7 +766,6 @@ Page({ if (re.data.data.total > 0) { var item = re.data.data.pageData[0]; - var updata = { id: item.id, goods_num: e.data.goodsInputNum + item.goods_num, @@ -1084,69 +1118,114 @@ Page({ var gid = e.target.dataset.gid; }, //---------拿出门店分类和门店------------ - async get_sto(e) { - var th = this, dd = null,i=getApp().request; - var g_distr_type = this.data.data.distr_type; - if (g_distr_type != 0) { - dd = { - store_id: o.stoid, - distr_type: g_distr_type, - isstop: 0, - pageSize: 300 + get_sto(e) { + var th=this; + var timer_get=setInterval(function () { + if(th.data.is_get_local_ok==0) return false; + var dd = null,i=getApp().request; + var g_distr_type = th.data.data.distr_type; + if (g_distr_type != 0) { + dd = { + store_id: o.stoid, + distr_type: g_distr_type, + isstop: 0, + pageSize: 300 + } + } else { + dd = { + store_id: o.stoid, + isstop: 0, + pageSize: 300 + } } - } else { - dd = { - store_id: o.stoid, - isstop: 0, - pageSize: 300 + //如果有距离的话 + if(th.data.lat!=null){ + dd.lat=th.data.lat; + dd.lon=th.data.lon; } - } - //----------获取门店---------------- - await getApp().request.promiseGet("/api/weshop/pickup/list", { - data: dd, - }).then(res => { - var e = res; - if (e.data.code == 0) { - //单总量超出5个的时候 - if (e.data.data.total > 5) { - i.get("/api/weshop/storagecategory/page", { - data: { - store_id: o.stoid, - is_show: 1, - pageSize: 300 - }, - success: function(ee) { - if (ee.data.code == 0) { - if (ee.data.data.pageData.length > 0) { - var sto_cate = ee.data.data.pageData; - var sto_arr = e.data.data.pageData; - var newarr = new Array(); - var qita = new Array(); - //----要进行门店分组-------- - for (var i = 0; i < sto_arr.length; i++) { - //找一下这个门店有没有在分类数组内 - var find2 = 0, - find2name = ""; - for (var m = 0; m < sto_cate.length; m++) { - if (sto_arr[i].category_id == sto_cate[m].cat_id) { - find2 = sto_cate[m].cat_id; - find2name = sto_cate[m].cat_name; - break; - } + clearInterval(timer_get); + //----------获取门店---------------- + getApp().request.promiseGet("/api/weshop/pickup/list", { + data: dd, + }).then(res => { + var e = res; + if (e.data.code == 0) { + //-- 如果有默认选择门店的时候,要把默认门店放在第一位 -- + if(th.data.def_pick_store) { + for(var k=0;k 5) { + i.get("/api/weshop/storagecategory/page", { + data: { + store_id: o.stoid, + is_show: 1, + pageSize: 300 + }, + success: function(ee) { + if (ee.data.code == 0) { + if (ee.data.data.pageData.length > 0) { + var def_arr=new Array(); + var ishas=0; + //-- 开始就看5个门店 -- + for(var k=0;k<5;k++){ + if(k==e.data.data.pageData.length) break; + def_arr.push(e.data.data.pageData[k]); } - 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; + th.setData({def_pickpu_list:def_arr,pickpu_list:ee.data.data.pageData}); + var sto_cate = ee.data.data.pageData; + var sto_arr = e.data.data.pageData; + var newarr = new Array(); + var qita = new Array(); + + //----要进行门店分组-------- + for (var i = 0; i < sto_arr.length; i++) { + //找一下这个门店有没有在分类数组内 + var find2 = 0, + find2name = ""; + for (var m = 0; m < sto_cate.length; m++) { + if (sto_arr[i].category_id == sto_cate[m].cat_id) { + find2 = sto_cate[m].cat_id; + find2name = sto_cate[m].cat_name; + break; + } + } + + 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, + s_arr: arr0 + }; + newarr.push(item); + } + } else { + qita.push(sto_arr[i]); } - if (find == 0) { + } else { + //如果有找到,那门店就在这个分组内,否则,分类就要排在其他 + if (find2 != 0) { var arr0 = new Array(); arr0.push(sto_arr[i]); var item = { @@ -1155,63 +1234,51 @@ Page({ s_arr: arr0 }; newarr.push(item); + } else { + qita.push(sto_arr[i]); } - } 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, - s_arr: arr0 - }; - newarr.push(item); - } else { - qita.push(sto_arr[i]); } } - } - //----安排其他的分类----- - if (qita.length > 0) { - var item = { - cat_id: -1, - name: "其他", - s_arr: qita - }; - newarr.push(item); - } - th.setData({ - is_show_sto_cat: 1, - all_sto: newarr - }); + //----安排其他的分类----- + if (qita.length > 0) { + var item = { + cat_id: -1, + name: "其他", + s_arr: qita + }; + newarr.push(item); + } + th.setData({ + is_show_sto_cat: 1, + all_sto: newarr + }); + } else { + th.setData({ + is_show_sto_cat: -1, + only_pk: e.data.data.pageData + }); + } } else { th.setData({ - is_show_sto_cat: 0, + is_show_sto_cat: -1, only_pk: e.data.data.pageData }); } - } else { - th.setData({ - is_show_sto_cat: 0, - only_pk: e.data.data.pageData - }); } - } - }); - } else { - th.setData({ - is_show_sto_cat: 0, - only_pk: e.data.data.pageData - }); + }); + } else { + th.setData({ + is_show_sto_cat: 0, + only_pk: e.data.data.pageData + }); + } } - } - }) + }) + },200) + + }, //----------取货门店被点击的效果------ @@ -2571,7 +2638,7 @@ Page({ success: function (res) { //res.path是网络图片的本地地址 ee.data.share_head = res.path; - tt(func);; + tt(func); }, fail: function (res) { ee.data.share_head = "../../../images/share/hui_hear_pic.png"; //分享的图片不能用网络的 @@ -2660,7 +2727,9 @@ Page({ }, //关闭选择门店 close_popup:function(){ - this.setData({ store: 0, choice_sort_store: 0,sort_store:0}) + this.setData({ + store: 0, choice_sort_store: 0,sort_store:0} + ) }, //选择更多门店 more_store:function(){ @@ -2673,8 +2742,58 @@ close_popup:function(){ returns:function(){ this.setData({ sort_store: 0,choice_sort_store:0}); }, - // 选择分类门店 - choice_sort_store:function(){ - this.setData({ sort_store: 0, choice_sort_store:1 }); - } + //---选择分类门店--- + choice_sort_store:function(e){ + var index=e.currentTarget.dataset.index; + var item = this.data.all_sto[index]; + this.setData({ sort_store: 0, choice_sort_store:1, sec_sto: item,sec_pick_index:0 }); + }, + + //---点击二级之后的选择--- + choose_for_store:function (e) { + var index_c=e.currentTarget.dataset.ind; + this.setData({sec_pick_index:index_c,fir_pick_index:0}) + }, + + choose_for_store_fir:function (e) { + var index_c=e.currentTarget.dataset.ind; + this.setData({fir_pick_index:index_c}) + }, + + //确定def_pick为选择的门店 + sure_pick:function () { + 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[index]; //当没有门店分类的时候 + } + }else{ + var index=th.data.sec_pick_index; + item=th.data.sec_sto.s_arr[index]; + } + 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}); + }, + + //把选择的门店设置成默认的门店def_pick + set_def_pick:function () { + 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[index]; //当没有门店分类的时候 + } + }else{ + var index=th.data.sec_pick_index; + item=th.data.sec_sto.s_arr[index]; + } + + } + + }); \ No newline at end of file diff --git a/pages/goods/goodsInfo/goodsInfo.wxml b/pages/goods/goodsInfo/goodsInfo.wxml index 69c2b9a..6ba1b06 100644 --- a/pages/goods/goodsInfo/goodsInfo.wxml +++ b/pages/goods/goodsInfo/goodsInfo.wxml @@ -300,30 +300,31 @@ - + - 选择附近门店 + 选择门店 更多门店 - + + - 泉州开源盛世 - 暂无库存 + {{def_pick_store.pickup_name}} + - 距离:3754m + 距离:{{filters.toFix(def_pick_store.distance,0)}}m - 地址:福建省泉州市鲤城区软件园4栋4层 + 地址:{{def_pick_store.fulladdress}} @@ -778,18 +779,26 @@ - - 泉州开源盛世 + + + {{def_pick_store.pickup_name}} - 距离:3754m + 距离:{{filters.toFix(def_pick_store.distance,0)}}m - + + + + + 选择门店 + + + 更多门店 - + - 地址:福建省泉州市鲤城区软件园4栋4层 + 地址:{{def_pick_store.fulladdress}} @@ -1039,7 +1048,7 @@ - + @@ -1052,52 +1061,105 @@ - {{choice_sort_store==0?'选择更多门店':'返回'}} + {{choice_sort_store==0?'选择更多门店':'返回'}} - - - - - + + + + + + + + + + Г - + - - - - - 开源盛世广场店 - + + + + {{item.pickup_name}} - 距离:3754m + 距离:{{filters.toFix(item.distance,0)}}m - - 地址:福建省泉州市鲤城区软件园4栋4层 - - - - - - - - - - - 确定 - - - 设为默认 - - - + + 地址:{{item.fulladdress}} + + + + + + + + + + Г + + + + + + + + + {{item.pickup_name}} + + + 距离:{{filters.toFix(item.distance,0)}}m + + + 地址:{{item.fulladdress}} + + + + + + + + + + + Г + + + + + + + + + {{item.pickup_name}} + + + 距离:{{filters.toFix(item.distance,0)}}m + + + 地址:{{item.fulladdress}} + + + + + + + + + + + 确定 + 设为默认 + + - + + + 门店分类选择 @@ -1112,15 +1174,13 @@ - - - - 泉州开源广场 - - - - - + + + {{item.name}} + + + +