yuminge-app/yun-min-program-plugin-master/packageH/credit_value/view_details/view_details.js

121 lines
2.6 KiB
JavaScript

// packageH/credit_value/detail/detail.js
import DPagination from "../DPagination";
import DHttp from "../DHttp";
const pagination = new DPagination("detailData");
Page({
/**
* 页面的初始数据
*/
data: {
currentShowTab: "all",
detailData: {},
detailPageCount: 0,
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
pagination.bind(this);
pagination.clean();
this.loadDetailData("all");
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
this.loadDetailData(this.data.currentShowTab);
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {},
switchListTab({ detail: { name } }) {
pagination.clean();
this.loadDetailData(name);
this.setData({
detailPageCount: 0,
});
},
loadDetailData(type) {
switch (type) {
case "all":
this.getDetailData(null);
break;
case "income":
this.getDetailData(1);
break;
case "expenditure":
this.getDetailData(2);
break;
}
},
getDetailData(dataType) {
if (pagination.loading || pagination.finished) {
return;
}
pagination.loading = true;
wx.showLoading({
title: "加载中",
mask: true,
});
const requestParams = {
page: pagination.loadPage,
};
if (requestParams !== null) {
requestParams["detail_type"] = dataType;
}
DHttp.request(
"plugin.credit-inventory.frontend.controllers.detail.index",
requestParams
)
.then(({ data, last_page, current_page, per_page }) => {
pagination.loading = false;
wx.hideLoading();
if (last_page == current_page || data.length < per_page) {
pagination.finished = true;
}
pagination.limit = per_page;
pagination.push(data);
this.setData({
detailPageCount: this.data.detailPageCount + data.length,
});
})
.catch(({ msg }) => {
wx.hideLoading();
wx.showToast({
title: msg,
icon: "none",
});
pagination.loading = false;
});
},
});