184 lines
3.4 KiB
JavaScript
184 lines
3.4 KiB
JavaScript
import {
|
|
fetchHome
|
|
} from '~/services/home/home';
|
|
import {
|
|
fetchGoodsList
|
|
} from '~/services/good/fetchGoodsList';
|
|
import {
|
|
getbannerList
|
|
} from '~/services/home/getbannerList';
|
|
import {
|
|
getHomeCategoryListApi
|
|
} from '~/services/home/getHomeCategoryListApi';
|
|
import Toast from 'tdesign-miniprogram/toast/index';
|
|
|
|
Page({
|
|
data: {
|
|
imgSrcs: [],
|
|
tabList: [],
|
|
goodsList: [],
|
|
goodsListLoadStatus: 0,
|
|
pageLoading: false,
|
|
current: 1,
|
|
autoplay: true,
|
|
duration: '500',
|
|
interval: 5000,
|
|
navigation: {
|
|
type: 'dots',
|
|
},
|
|
swiperImageProps: {
|
|
mode: 'scaleToFill',
|
|
},
|
|
},
|
|
|
|
goodListPagination: {
|
|
index: 1,
|
|
num: 6,
|
|
},
|
|
|
|
privateData: {
|
|
tabIndex: 0,
|
|
},
|
|
|
|
onShow() {
|
|
this.getTabBar().init();
|
|
},
|
|
|
|
onLoad() {
|
|
this.init();
|
|
},
|
|
|
|
onReachBottom() {
|
|
if (this.data.goodsListLoadStatus === 0) {
|
|
this.loadGoodsList();
|
|
}
|
|
},
|
|
|
|
onPullDownRefresh() {
|
|
this.init();
|
|
},
|
|
|
|
init() {
|
|
this.loadHomePage();
|
|
},
|
|
|
|
loadHomePage() {
|
|
wx.stopPullDownRefresh();
|
|
|
|
this.setData({
|
|
pageLoading: true,
|
|
});
|
|
|
|
// 获取轮播图列表
|
|
getbannerList().then((res) => {
|
|
if (res.code == 200) {
|
|
this.setData({
|
|
imgSrcs: res.data.map((v) => v.bannerImg),
|
|
});
|
|
}
|
|
});
|
|
|
|
// 获取首页推荐类目
|
|
getHomeCategoryListApi().then((res) => {
|
|
this.setData({
|
|
tabList: res.data,
|
|
});
|
|
this.data.tabList.unshift({
|
|
text: "精选推荐",
|
|
key: 0,
|
|
categoryGuid: 1,
|
|
})
|
|
this.setData({
|
|
tabList: res.data,
|
|
pageLoading: false,
|
|
});
|
|
this.loadGoodsList(true);
|
|
});
|
|
},
|
|
|
|
tabChangeHandle(e) {
|
|
this.privateData.tabIndex = e.detail;
|
|
console.log(e.detail.value, 'tab的看看');
|
|
this.loadGoodsList(true, e.detail.value);
|
|
},
|
|
|
|
onReTry() {
|
|
this.loadGoodsList();
|
|
},
|
|
|
|
async loadGoodsList(fresh = false, categoryGuid = 0) {
|
|
if (fresh) {
|
|
wx.pageScrollTo({
|
|
scrollTop: 0,
|
|
});
|
|
}
|
|
|
|
this.setData({
|
|
goodsListLoadStatus: 1,
|
|
});
|
|
|
|
const pageSize = this.goodListPagination.num;
|
|
let pageIndex = this.goodListPagination.index + 1;
|
|
if (fresh) {
|
|
pageIndex = 1;
|
|
}
|
|
|
|
let params = {
|
|
pageNum: pageIndex,
|
|
pageSize: pageSize,
|
|
goodsCategoryGuid: categoryGuid
|
|
}
|
|
console.log(params, '看看参数');
|
|
try {
|
|
const nextList = await fetchGoodsList(params);
|
|
this.setData({
|
|
goodsList: fresh ? nextList.result : this.data.goodsList.concat(nextList.result),
|
|
goodsListLoadStatus: 0,
|
|
});
|
|
|
|
this.goodListPagination.index = pageIndex;
|
|
this.goodListPagination.num = pageSize;
|
|
} catch (err) {
|
|
this.setData({
|
|
goodsListLoadStatus: 3,
|
|
});
|
|
}
|
|
},
|
|
|
|
goodListClickHandle(e) {
|
|
const {
|
|
index
|
|
} = e.detail;
|
|
const {
|
|
spuId
|
|
} = this.data.goodsList[index];
|
|
wx.navigateTo({
|
|
url: `/pages/goods/details/index?spuId=${spuId}`,
|
|
});
|
|
},
|
|
|
|
goodListAddCartHandle() {
|
|
Toast({
|
|
context: this,
|
|
selector: '#t-toast',
|
|
message: '点击加入购物车',
|
|
});
|
|
},
|
|
|
|
navToSearchPage() {
|
|
wx.navigateTo({
|
|
url: '/pages/goods/search/index',
|
|
});
|
|
},
|
|
|
|
navToActivityDetail({
|
|
detail
|
|
}) {
|
|
const {
|
|
index: promotionID = 0
|
|
} = detail || {};
|
|
wx.navigateTo({
|
|
url: `/pages/promotion-detail/index?promotion_id=${promotionID}`,
|
|
});
|
|
},
|
|
}); |