dm-wechat-mini/pages/shop/index/index.js
2025-03-24 20:52:21 +08:00

182 lines
3.7 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().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
})
});
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
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() {
}
})