Commit 98fec0f9c9e36a49345caecaac4096fd9e34bc2d

Authored by yvan.ni
1 parent b22e0a66

门店列表的功能实现

pages/store/index.js 0 → 100644
  1 +var o=getApp().globalData.setting;
  2 +Page({
  3 + data:{
  4 + is_get_local_ok:0,
  5 + is_gps:0,
  6 + lat:null,
  7 + lon:null,
  8 + page:1,
  9 + cat_list:null,
  10 + pick_list:null,
  11 + url:o.imghost,
  12 + is_no_more:0,
  13 + key_word:'', //关键字搜索
  14 + cat_id:0, //分类ID
  15 + },
  16 +
  17 + onShow:function(){
  18 +
  19 + },
  20 +
  21 + //调用视频接口
  22 + onLoad:function(e){
  23 + var th=this;
  24 + wx.getLocation({
  25 + type: 'wgs84',
  26 + success: function(res) {
  27 + th.data.lat = res.latitude;
  28 + th.data.lon = res.longitude;
  29 + th.data.is_get_local_ok = 1;
  30 + },
  31 + fail: function(res) {
  32 + th.data.is_get_local_ok = 1;
  33 + if (res.errCode == 2) {
  34 + getApp().confirmBox("请开启GPS定位", null, 25000, !1);
  35 + }
  36 +
  37 + }
  38 + })
  39 + //--获取门店分类---
  40 + getApp().request.get("/api/weshop/storagecategory/page", {
  41 + data: {
  42 + store_id: o.stoid,
  43 + is_show: 1,
  44 + pageSize: 300
  45 + },
  46 + success:function(res){
  47 + if(res.data.code==0){
  48 + th.setData({cat_list:res.data.data.pageData})
  49 + }
  50 + },
  51 + })
  52 + this.get_sto();
  53 + },
  54 +
  55 + //---------拿出门店分类和门店------------
  56 + get_sto() {
  57 + var th = this;
  58 + var timer_get = setInterval(function() {
  59 + if (th.data.is_get_local_ok == 0) return false;
  60 + clearInterval(timer_get);
  61 + th.get_list();
  62 + }, 500)
  63 +
  64 + },
  65 +
  66 + get_list:function(){
  67 + if(this.data.is_no_more==1) return false;
  68 + var th=this,req = getApp().request;
  69 + var dd = {
  70 + store_id: o.stoid,
  71 + isstop: 0,
  72 + pageSize: 10,
  73 + page:th.data.page
  74 + }
  75 + if(th.data.key_word!="" && th.data.key_word!=undefined) {
  76 + dd.keyword=th.data.key_word;
  77 + }
  78 + if(th.data.cat_id){
  79 + dd.category_id=th.data.cat_id;
  80 + }
  81 +
  82 + wx.showLoading();
  83 + //----------获取门店---------
  84 + req.promiseGet("/api/weshop/pickup/list", {
  85 + data: dd,
  86 + }).then(res => {
  87 + wx.hideLoading();
  88 + if(res.data.code==0){
  89 + if(res.data.data.pageData.length<=0){
  90 + th.data.is_no_more=1; return false;
  91 + }
  92 +
  93 + th.data.page=dd.page+1
  94 + var pick_list=th.data.pick_list;
  95 + if(!pick_list) pick_list=[];
  96 + pick_list=pick_list.concat(res.data.data.pageData);
  97 + th.setData({
  98 + pick_list:pick_list
  99 + })
  100 + }
  101 + })
  102 + },
  103 +
  104 + //---加载更多是靠这个函数----
  105 + onReachBottom: function() {
  106 + this.get_list();
  107 + },
  108 +
  109 + lose_focus:function(e){
  110 + var key_word = e.detail.value;
  111 + this.data.key_word=key_word;
  112 + },
  113 +
  114 +
  115 + phone:function(e){
  116 + var index=e.currentTarget.dataset.index;
  117 + var item=this.data.pick_list[index];
  118 + wx.makePhoneCall({
  119 + phoneNumber: item.pickup_phone,
  120 + })
  121 + },
  122 +
  123 + //分类的下拉
  124 + bindPickerChange: function (e) {
  125 + var index = e.detail.value;//这里会获取他的索引值
  126 + var self = this;
  127 + var list = self.data.cat_list;
  128 + var item = list[index];
  129 + this.data.cat_id=item['cat_id'];
  130 + self.setData({
  131 + periodsname: item['cat_name'],
  132 + cid: item['cat_id']
  133 + })
  134 + this.data.page=1;
  135 + this.setData({ pick_list:null})
  136 + this.get_list();
  137 +
  138 + },
  139 +
  140 + //搜索关键字
  141 + sear:function(){
  142 + this.data.page=1;
  143 + this.setData({ pick_list:null})
  144 + this.get_list();
  145 + },
  146 +
  147 +
  148 + map: function (e) {
  149 + var index = e.currentTarget.dataset.index;//这里会获取他的索引值
  150 + var self = this;
  151 + var list = self.data.pick_list;
  152 + var item = list[index];
  153 +
  154 + wx.openLocation({
  155 + //当前经纬度
  156 + latitude: parseFloat(item.lat),
  157 + longitude: parseFloat(item.lon),
  158 + //缩放级别默认28
  159 + scale: 28,
  160 + //位置名
  161 + name:item.pickup_name,
  162 + //详细地址
  163 + address: item.pickup_address,
  164 + //成功打印信息
  165 + success: function(res) {},
  166 + //失败打印信息
  167 + fail: function(err) {},
  168 + //完成打印信息
  169 + complete: function(info){},
  170 + })
  171 + },
  172 +
  173 +
  174 +
  175 +
  176 +})
0 177 \ No newline at end of file
... ...
pages/store/index.json 0 → 100644
  1 +{
  2 + "navigationBarTitleText": "门店列表",
  3 + "enablePullDownRefresh": false,
  4 + "usingComponents": {
  5 + "nav_box": "/components/nav_box/nav_box"
  6 + }
  7 +}
0 8 \ No newline at end of file
... ...
pages/store/index.wxml 0 → 100644
  1 +<view class="bcolor flex jc_sb">
  2 + <view class="sear_inp">
  3 + <view class="sear_btn" bindtap='sear'>
  4 + <image src="{{url}}/miniapp/images/search.png" style="width: 30rpx; height: 30rpx; margin-left: 10rpx;"></image>
  5 + </view>
  6 + <input bindinput ="lose_focus" class="fs28" value=""/>
  7 + </view>
  8 + <view class="select">
  9 + <picker bindchange="bindPickerChange" value="{{index}}" range="{{cat_list}}" range-key='cat_name'>
  10 + <view class="course_icon">{{periodsname?periodsname:"选择分类"}}</view>
  11 + </picker>
  12 + </view>
  13 +</view>
  14 +<view>
  15 + <view class="box" wx:for="{{pick_list}}">
  16 + <!-- 门店名称 -->
  17 + <view class="pickname">{{item.pickup_name}}</view>
  18 + <!-- 电话 -->
  19 + <view class="mt flex jc_sb" bindtap="phone" data-index="{{index}}" >
  20 + <!-- 左边电话 -->
  21 + <view>{{item.pickup_phone}}</view>
  22 + <!-- 右边按钮 -->
  23 + <view class="buttonclass"><image src='{{url}}/miniapp/images/storelist/store_phone.png' class="fmob"></image>一键拔号</view>
  24 + </view>
  25 + <!-- 电话 -->
  26 + <view class="mt flex jc_sb" bindtap="map" data-index="{{index}}">
  27 + <!-- 左边电话 -->
  28 + <view class="addr">{{item.fulladdress}}</view>
  29 + <!-- 右边按钮 -->
  30 + <view class="buttonclass"><image src='{{url}}/miniapp/images/storelist/store_addr.png' class="faddr"></image>地图导航</view>
  31 + </view>
  32 + </view>
  33 +</view>
  34 +
  35 +<!-- 制作一个圆球导航 -->
  36 +<nav_box></nav_box>
0 37 \ No newline at end of file
... ...
pages/store/index.wxss 0 → 100644
  1 +.box{
  2 + padding: 10px;
  3 + border-bottom: 10px solid #f5f5f5;
  4 + color: #000000;
  5 +}
  6 +.box .pickname {
  7 + font-size: 32rpx;
  8 + line-height: 80rpx;
  9 + border-bottom: 1rpx solid #EEEEEE;
  10 +}
  11 +
  12 +.box .mt {
  13 + margin-top: 20rpx;
  14 +}
  15 +.addr{ width: 75%;color: #848484;}
  16 +.buttonclass {
  17 + width: 160rpx;
  18 + height: 60rpx;
  19 + line-height: 60rpx;
  20 + text-align: center;
  21 + border: solid 1px #c3172d;
  22 + border-radius: 20rpx;
  23 + font-size: 28rpx;
  24 + color: #c3172d;
  25 +}
  26 +.fmob
  27 +{width: 28rpx;
  28 +height: 32rpx;
  29 +margin-right: 10rpx;
  30 +top: 4rpx;
  31 +position: relative;
  32 +}
  33 +
  34 +.faddr{
  35 +width: 26rpx;
  36 +height: 32rpx;
  37 +margin-right: 6rpx;
  38 +top: 4rpx;
  39 +position: relative;
  40 +}
  41 +
  42 +.bcolor{background-color: #f5f5f5; height: 126rpx;}
  43 +
  44 +.sear_inp{width: 490rpx; background-color:#eaeaea; height: 80rpx; border-radius:5rpx; margin: 25rpx;}
  45 +.sear_inp input{ position: relative; top:10rpx;width: 400rpx; display: inline-block;}
  46 +.select{height: 80rpx; width: 220rpx;background-color:#eaeaea; margin:25rpx; font-size: 28rpx; line-height: 80rpx;text-align: center }
  47 +.sear_btn{ width: 50rpx; height: 100%; display: inline-block;}
  48 +
... ...