Commit 98fec0f9c9e36a49345caecaac4096fd9e34bc2d
1 parent
b22e0a66
门店列表的功能实现
Showing
4 changed files
with
267 additions
and
0 deletions
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 | \ No newline at end of file | 177 | \ No newline at end of file |
pages/store/index.json
0 → 100644
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 | \ No newline at end of file | 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 | + |