61 lines
1.3 KiB
JavaScript
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' })
|
||
|
|
});
|
||
|
|
}
|
||
|
|
});
|