[更新]
This commit is contained in:
213
pages/store/store.js
Normal file
213
pages/store/store.js
Normal file
@@ -0,0 +1,213 @@
|
||||
// pages/store/store.js
|
||||
Page({
|
||||
|
||||
/**
|
||||
* 页面的初始数据
|
||||
*/
|
||||
data: {
|
||||
stores : [], //门店列表
|
||||
id : 0, //优惠券id
|
||||
searchText : '', //搜索关键字
|
||||
longitude : 0, //经度
|
||||
latitude : 0, //纬度
|
||||
//省份选择
|
||||
areas : [],
|
||||
areaIndex : 0,
|
||||
//市级选择
|
||||
cityList : [],
|
||||
cityIndex : 0,
|
||||
//区域选择
|
||||
regiList : [],
|
||||
regiIndex : 0,
|
||||
|
||||
page : {}, //下一页
|
||||
lodingStats : false //加载状态
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
onLoad (options) {
|
||||
// 优惠券id
|
||||
this.setData({
|
||||
id :options.id
|
||||
})
|
||||
|
||||
// 获取位置
|
||||
wx.getLocation({
|
||||
type: 'gcj02',
|
||||
success: res=> {
|
||||
this.setData({
|
||||
longitude : res.longitude,
|
||||
latitude : res.latitude
|
||||
})
|
||||
// 解析坐标
|
||||
getApp().qqmapsdk.reverseGeocoder({
|
||||
location: {
|
||||
latitude : res.latitude,
|
||||
longitude : res.longitude
|
||||
},
|
||||
success: res=>{
|
||||
if(res.message == "query ok"){
|
||||
let addressInfo = res.result.address_component
|
||||
// 获取门店列表
|
||||
this.storesInfo(addressInfo);
|
||||
}else{
|
||||
wx.showToast({
|
||||
title: res.message,
|
||||
icon : 'none'
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 选择城市信息
|
||||
*/
|
||||
regi(e){
|
||||
let chantType = e.currentTarget.dataset.type,
|
||||
chantIndex = e.detail.value,
|
||||
name = ""
|
||||
|
||||
if(chantType == "area"){
|
||||
name = "areaIndex"
|
||||
}else if(chantType == "city"){
|
||||
name = "cityIndex"
|
||||
this.getAreas(this.data.cityList[chantIndex].code, "")
|
||||
}else if(chantType == "regi"){
|
||||
name = "regiIndex"
|
||||
}
|
||||
|
||||
this.setData({
|
||||
[name] : chantIndex
|
||||
})
|
||||
|
||||
// 获取门店列表
|
||||
this.storesInfo()
|
||||
},
|
||||
|
||||
/**
|
||||
* 门店列表
|
||||
*/
|
||||
storesInfo(addressInfo, page) {
|
||||
let coupon_id = this.data.id,
|
||||
user_lng = this.data.longitude,
|
||||
user_lat = this.data.latitude,
|
||||
province_id = "",
|
||||
city_id = "",
|
||||
district_id = "",
|
||||
title = this.data.searchText || "",
|
||||
areaIndex = this.data.areaIndex,
|
||||
cityIndex = this.data.cityIndex,
|
||||
regiIndex = this.data.regiIndex,
|
||||
cityList = this.data.cityList,
|
||||
areas = this.data.areas,
|
||||
regiList = this.data.regiList
|
||||
|
||||
if(!addressInfo){
|
||||
province_id = areas[areaIndex].code
|
||||
city_id = cityList[cityIndex].code
|
||||
district_id = regiList[regiIndex].code
|
||||
}
|
||||
|
||||
wx.$api.user.stores(coupon_id, province_id, city_id, district_id, title, user_lng, user_lat, page).then(res=>{
|
||||
let stores = this.data.stores,
|
||||
newData = []
|
||||
if(page == 1 || page == undefined) stores = []
|
||||
newData = stores.concat(res.data.stores.data)
|
||||
|
||||
newData.map(res=>{
|
||||
let distance = res.distance
|
||||
if(res.distance > 1000){
|
||||
distance = (distance / 1000) + "km"
|
||||
}else{
|
||||
distance = distance + "m"
|
||||
}
|
||||
res.km = distance
|
||||
})
|
||||
|
||||
if(addressInfo){
|
||||
cityList = res.data.citys
|
||||
areas = res.data.provinces
|
||||
|
||||
areaIndex = areas.findIndex(val => val.name == addressInfo.province)
|
||||
cityIndex = cityList.findIndex(val => val.name == addressInfo.city)
|
||||
// this.getAreas(cityList[cityIndex].code, addressInfo.district)
|
||||
this.getAreas(cityList[cityIndex].code, '')
|
||||
|
||||
}
|
||||
this.setData({
|
||||
areas : areas,
|
||||
stores : newData,
|
||||
cityList : cityList,
|
||||
areaIndex : areaIndex,
|
||||
cityIndex : cityIndex,
|
||||
page : res.data.stores.page,
|
||||
lodingStats : false
|
||||
})
|
||||
wx.stopPullDownRefresh()
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取区级信息
|
||||
*/
|
||||
getAreas(sn, areas){
|
||||
wx.$api.user.areas(sn).then(res=>{
|
||||
let regiList = res.data,
|
||||
regiIndex = 0
|
||||
|
||||
if(areas) regiIndex = regiList.findIndex(val => val.name == areas)
|
||||
|
||||
this.setData({
|
||||
regiList : regiList,
|
||||
regiIndex : regiIndex
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 查看门店详情页
|
||||
*/
|
||||
detailsTap(e) {
|
||||
let store_id = e.currentTarget.dataset.id,
|
||||
user_lng = this.data.longitude,
|
||||
user_lat = this.data.latitude
|
||||
|
||||
wx.navigateTo({
|
||||
url: '/pages/storeDetails/storeDetails?store_id=' + store_id + '&user_lng=' + user_lng + '&user_lat=' + user_lat,
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 搜索门店
|
||||
*/
|
||||
searchForm(e) {
|
||||
this.setData({
|
||||
searchText : e.detail.value.search
|
||||
})
|
||||
|
||||
// 获取门店列表
|
||||
this.storesInfo()
|
||||
},
|
||||
|
||||
/**
|
||||
* 上拉加载
|
||||
*/
|
||||
onReachBottom(){
|
||||
this.setData({
|
||||
lodingStats: true
|
||||
})
|
||||
let pageNumber = this.data.page.current
|
||||
if(this.data.page.has_more){
|
||||
pageNumber++
|
||||
this.setData({
|
||||
page: pageNumber
|
||||
})
|
||||
this.storesInfo('', pageNumber)
|
||||
}
|
||||
}
|
||||
})
|
||||
Reference in New Issue
Block a user