Files

61 lines
1.3 KiB
JavaScript

/**
* 签到码页 U31
*/
const api = require('../../utils/api');
Page({
data: {
activityId: '',
activityTitle: '',
locationName: '',
token: '',
expiresAt: '',
loading: true,
error: ''
},
onLoad(options) {
if (options.id) {
this.setData({ activityId: options.id });
this.loadCheckinToken();
}
},
onShow() {
// 每次显示时刷新Token
if (this.data.activityId) {
this.loadCheckinToken();
}
},
async loadCheckinToken() {
this.setData({ loading: true, error: '' });
try {
const token = wx.getStorageSync('accessToken');
const res = await api.post(`/activities/${this.data.activityId}/checkin-token`, {}, {
Authorization: `Bearer ${token}`
});
this.setData({
token: res.token,
activityTitle: res.activityTitle,
locationName: res.locationName,
expiresAt: res.expiresAt,
loading: false
});
} catch (err) {
this.setData({ loading: false, error: err.message || '加载失败' });
}
},
onRefresh() {
this.loadCheckinToken();
},
copyToken() {
wx.setClipboardData({
data: this.data.token,
success: () => wx.showToast({ title: '签到码已复制', icon: 'success' })
});
}
});