184 lines
3.8 KiB
JavaScript
184 lines
3.8 KiB
JavaScript
import shop from '../../../api/shop';
|
|
import shopApi from '../../../api/shop';
|
|
const app = getApp();
|
|
|
|
|
|
Page({
|
|
|
|
/**
|
|
* 页面的初始数据
|
|
*/
|
|
data: {
|
|
tabIndex:0,
|
|
shopList:[],
|
|
userInfo:{},
|
|
lng:null,
|
|
lat:null,
|
|
pager:{limit:10,loading:false,loadAll:false,pageIndex:0,refreshTrigger:false},
|
|
|
|
choosedCommunity:{}
|
|
},
|
|
changeTab(event){
|
|
const tabIndex = event.currentTarget.dataset.index;
|
|
const cid = event.currentTarget.dataset.cid;
|
|
this.data.pager.pageIndex = 0;
|
|
this.data.pager.loadAll = false;
|
|
this.setData({tabIndex,pager:this.data.pager})
|
|
this.loadList();
|
|
},
|
|
refreshList(){
|
|
this.data.pager.pageIndex = 0;
|
|
this.data.pager.loadAll = false;
|
|
this.setData({
|
|
pager:this.data.pager
|
|
});
|
|
this.loadList();
|
|
},
|
|
loadList(){
|
|
if(this.data.pager.loading||this.data.pager.loadAll){
|
|
return;
|
|
}
|
|
this.data.pager.loading = true;
|
|
this.setData({
|
|
pager:this.data.pager
|
|
});
|
|
const params = {
|
|
skip:this.data.pager.pageIndex*this.data.pager.limit,
|
|
limit:this.data.pager.limit,
|
|
community_id:this.data.choosedCommunity.id
|
|
}
|
|
if(this.data.lng&&this.data.lat){
|
|
params.longitude = this.data.lng;
|
|
params.latitude = this.data.lat;
|
|
}
|
|
shopApi.product.list(params).then((data)=>{
|
|
if(this.data.pager.pageIndex==0){
|
|
this.data.shopList = data.items;
|
|
}else{
|
|
this.data.shopList = this.data.shopList.concat(data.items);
|
|
}
|
|
this.data.pager.loading = false;
|
|
this.data.pager.pageIndex++;
|
|
this.data.pager.refreshTrigger = false;
|
|
if(data.items.length<this.data.pager.limit){
|
|
this.data.pager.loadAll = true;
|
|
}
|
|
|
|
data.items.map((item)=>{
|
|
if(item.distance){
|
|
if(item.distance>=1000){
|
|
item.distance = parseFloat(item.distance/1000).toFixed(1)+'km';
|
|
}else{
|
|
item.distance = item.distance+'m';
|
|
}
|
|
}
|
|
})
|
|
this.setData({
|
|
shopList:this.data.shopList,
|
|
pager:this.data.pager
|
|
})
|
|
}).catch(()=>{
|
|
this.setData({
|
|
"pager.loading":false,
|
|
"pager.refreshTrigger":false
|
|
})
|
|
});
|
|
},
|
|
/**
|
|
* 生命周期函数--监听页面加载
|
|
*/
|
|
onLoad(options) {
|
|
this.data.pager.loading = false;
|
|
this.data.pager.loadAll = false;
|
|
app.getUserInfo().then((data)=>{
|
|
this.setData({
|
|
userInfo:data
|
|
})
|
|
this.data.choosedCommunity = {
|
|
id:data.community_id,
|
|
name:data.community_name
|
|
};
|
|
return wx.getStorage({key:'community-shop'});
|
|
}).then((res)=>{
|
|
this.data.choosedCommunity = res.data;
|
|
this.loadList();
|
|
},(error)=>{
|
|
this.loadList();
|
|
}).finally(()=>{
|
|
this.setData({
|
|
choosedCommunity:this.data.choosedCommunity
|
|
})
|
|
})
|
|
},
|
|
|
|
//供选择社区页面用
|
|
changeCommunity(community){
|
|
wx.setStorage({
|
|
key:'community-shop',
|
|
data:{
|
|
id:community.id,
|
|
name:community.name
|
|
}
|
|
});
|
|
this.setData({
|
|
choosedCommunity:community
|
|
})
|
|
this.refreshList();
|
|
},
|
|
chooseCommunity(){
|
|
const currentId = this.data.choosedCommunity.id||this.data.userInfo.community_id;
|
|
console.log(currentId);
|
|
wx.navigateTo({
|
|
url: `/pages/help/community/index?communityId=${currentId}`,
|
|
})
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面初次渲染完成
|
|
*/
|
|
onReady() {
|
|
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面显示
|
|
*/
|
|
onShow() {
|
|
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面隐藏
|
|
*/
|
|
onHide() {
|
|
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面卸载
|
|
*/
|
|
onUnload() {
|
|
|
|
},
|
|
|
|
/**
|
|
* 页面相关事件处理函数--监听用户下拉动作
|
|
*/
|
|
onPullDownRefresh() {
|
|
|
|
},
|
|
|
|
/**
|
|
* 页面上拉触底事件的处理函数
|
|
*/
|
|
onReachBottom() {
|
|
|
|
},
|
|
|
|
/**
|
|
* 用户点击右上角分享
|
|
*/
|
|
onShareAppMessage() {
|
|
|
|
}
|
|
}) |