104 lines
2.6 KiB
JavaScript
104 lines
2.6 KiB
JavaScript
const auth = require('../../../utils/auth');
|
|
const { formatDateTime } = require('../../../utils/format');
|
|
|
|
const STATUS_MAP = {
|
|
0: '待支付',
|
|
1: '已支付',
|
|
2: '支付失败',
|
|
3: '已退款',
|
|
4: '已取消'
|
|
};
|
|
|
|
Page({
|
|
data: {
|
|
registrations: [],
|
|
registrationsLoading: false,
|
|
registrationsLoadingText: '加载中...',
|
|
pageNo: 1,
|
|
pageSize: 10,
|
|
hasMore: true
|
|
},
|
|
|
|
onShow() {
|
|
const accessToken = wx.getStorageSync('accessToken') || '';
|
|
if (!accessToken) {
|
|
wx.redirectTo({ url: '/subpackages/mine/login/login' });
|
|
return;
|
|
}
|
|
if (!this.data.registrations || this.data.registrations.length === 0) {
|
|
this.initData();
|
|
}
|
|
},
|
|
|
|
onPullDownRefresh() {
|
|
|
|
this.initData(true).finally(() => wx.stopPullDownRefresh());
|
|
},
|
|
|
|
initData(reset = false) {
|
|
if (reset) {
|
|
this.setData({
|
|
registrations: [],
|
|
pageNo: 1,
|
|
hasMore: true,
|
|
registrationsLoadingText: '加载中...'
|
|
});
|
|
}
|
|
return this.loadRegistrations(reset ? 1 : this.data.pageNo, reset);
|
|
},
|
|
|
|
loadRegistrations(pageNo, reset = false) {
|
|
if (this.data.registrationsLoading) return Promise.resolve();
|
|
if (!this.data.hasMore && !reset) return Promise.resolve();
|
|
|
|
if (reset) {
|
|
this.setData({ pageNo, registrationsLoading: true });
|
|
} else {
|
|
this.setData({ registrationsLoading: true });
|
|
}
|
|
|
|
const pageSize = this.data.pageSize;
|
|
|
|
return auth
|
|
.fetchMyRegistrations({ pageNo, pageSize })
|
|
.then((page) => {
|
|
const rows = (page && Array.isArray(page.rows) ? page.rows : []).map((r) => {
|
|
return {
|
|
...r,
|
|
registrationTimeText: formatDateTime(r.registrationTime),
|
|
statusText: STATUS_MAP[r.status] || r.status
|
|
};
|
|
});
|
|
|
|
const nextRows = reset ? rows : this.data.registrations.concat(rows);
|
|
const pages = page && typeof page.pages === 'number' ? page.pages : 1;
|
|
const hasMore = pageNo < pages && rows.length > 0;
|
|
|
|
this.setData({
|
|
registrations: nextRows,
|
|
hasMore,
|
|
registrationsLoading: false,
|
|
registrationsLoadingText: hasMore ? '加载中...' : '没有更多了'
|
|
});
|
|
})
|
|
.catch(() => {
|
|
this.setData({
|
|
registrationsLoading: false,
|
|
registrationsLoadingText: '加载失败'
|
|
});
|
|
});
|
|
},
|
|
|
|
onReachBottom() {
|
|
if (this.data.registrationsLoading || !this.data.hasMore) return;
|
|
const next = this.data.pageNo + 1;
|
|
this.setData({ pageNo: next });
|
|
this.loadRegistrations(next, false);
|
|
},
|
|
|
|
goToMine() {
|
|
wx.navigateTo({ url: '/pages/mine/mine' });
|
|
}
|
|
});
|
|
|