This repository has been archived on 2024-07-11. You can view files and clone it, but cannot push or open issues or pull requests.
yoshop-wechat/pages/article/index.js

139 lines
2.9 KiB
JavaScript
Raw Normal View History

2020-04-25 22:59:04 +08:00
const App = getApp();
Page({
/**
* 页面的初始数据
*/
data: {
// 分类列表
categoryList: [],
// 文章列表
articleList: [],
// 当前的分类id (0则代表首页)
category_id: 0,
scrollHeight: null,
no_more: false, // 没有更多数据
isLoading: true, // 是否正在加载中
page: 1, // 当前页码
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function(options) {
let _this = this;
// 设置文章列表高度
_this.setListHeight();
// Api获取文章首页
_this.getIndexData();
},
/**
* Api获取文章列表
*/
getIndexData() {
let _this = this;
// 获取文章首页
App._get('article/index', {}, function(result) {
_this.setData({
categoryList: result.data.categoryList
});
});
// Api获取文章列表
_this.getArticleList();
},
/**
* Api切换导航栏
*/
onSwitchTab: function(e) {
let _this = this;
// 第一步切换当前的分类id
_this.setData({
category_id: e.currentTarget.dataset.id,
articleList: {},
page: 1,
no_more: false,
isLoading: true,
});
// 第二步:更新当前的文章列表
_this.getArticleList();
},
/**
* Api获取文章列表
*/
getArticleList(isPage, page) {
let _this = this;
App._get('article/lists', {
page: page || 1,
category_id: _this.data.category_id
}, function(result) {
let resList = result.data.list,
dataList = _this.data.articleList;
if (isPage == true) {
_this.setData({
'articleList.data': dataList.data.concat(resList.data),
isLoading: false,
});
} else {
_this.setData({
articleList: resList,
isLoading: false,
});
}
});
},
/**
* 跳转文章详情页
*/
onTargetDetail(e) {
wx.navigateTo({
url: './detail/index?article_id=' + e.currentTarget.dataset.id
});
},
/**
* 分享当前页面
*/
onShareAppMessage() {
return {
title: '文章首页',
path: "/pages/article/index?" + App.getShareUrlParams()
};
},
/**
* 下拉到底加载数据
*/
bindDownLoad() {
// 已经是最后一页
if (this.data.page >= this.data.articleList.last_page) {
this.setData({
no_more: true
});
return false;
}
// 加载下一页列表
this.getArticleList(true, ++this.data.page);
},
/**
* 设置文章列表高度
*/
setListHeight() {
let systemInfo = wx.getSystemInfoSync(),
rpx = systemInfo.windowWidth / 750, // 计算rpx
tapHeight = Math.floor(rpx * 98), // tap高度
scrollHeight = systemInfo.windowHeight - tapHeight; // swiper高度
console.log(
systemInfo.windowHeight
);
this.setData({
scrollHeight
});
},
})