12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- import { couponListApi } from '../../api/other';
- Page({
- data: {
- couponList: [],
- page: 1,
- pageSize: 10,
- loadingMore: false,
- noMore: false,
- refreshing: false
- },
- onLoad() {
- this.loadData(true);
- },
- async loadData(isRefresh = false) {
- if (this.data.loadingMore) return;
- let page = isRefresh ? 1 : this.data.page;
- this.setData({ loadingMore: true });
- try {
- const res = await couponListApi({ page, pageSize: this.data.pageSize });
- const statusImgMap = {
- used: '/static/image/yhx.png', // 已核销
- unused: '/static/image/whx.png', // 未核销
- };
- const newList = res.data.list || [];
- let allList = isRefresh ? newList : [...this.data.couponList, ...newList];
- // allList = allList.map(item => ({
- // ...item,
- // typeText: item.type === 1 ? '菜品券' : '通用券',
- // statusImg: statusImgMap[item.status] || '/static/image/whx.png',
- // expireTime: item.expire_time || '--'
- // }));
- this.setData({
- couponList: allList,
- loadingMore: false,
- page: page + 1,
- noMore: allList.length >= res.data.total,
- refreshing: false
- });
- } catch (err) {
- console.error(err);
- wx.showToast({ title: '加载失败', icon: 'none' });
- this.setData({
- loadingMore: false,
- refreshing: false
- });
- }
- },
- // 上拉触底
- onReachBottom() {
- if (this.data.noMore) return;
- this.loadData();
- },
- // 下拉刷新
- onPullDownRefresh() {
- if (this.data.refreshing) return;
- this.setData({ refreshing: true, noMore: false, page: 1 });
- this.loadData(true);
- },
- goPage(e) {
- const coupon = e.currentTarget.dataset.item;
- wx.navigateTo({
- url: `/pages/coupon-detail/coupon-detail?id=${coupon.id}`
- });
- }
- });
|