forked from zhouruizhe/gmTouringMiniApp
Initial commit: gmTouringMiniApp project
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
// pages/badges/badges.js
|
||||
const userStore = require('../../userStore.js');
|
||||
|
||||
Page({
|
||||
data: {
|
||||
points: 0,
|
||||
badges: []
|
||||
},
|
||||
|
||||
onLoad() {
|
||||
this.refresh();
|
||||
},
|
||||
|
||||
// 每次显示都刷新一次,保证从其他页面打卡回来后数据是最新的
|
||||
onShow() {
|
||||
this.refresh();
|
||||
},
|
||||
|
||||
refresh() {
|
||||
const data = userStore.getUserData();
|
||||
|
||||
// 将徽章数据处理为渲染友好的结构(格式化获得时间、补默认图标)
|
||||
const badges = (data.badges || []).map(b => ({
|
||||
name: b.name,
|
||||
icon: this.getBadgeIcon(b.name),
|
||||
obtainedAtText: this.formatTime(b.obtainedAt)
|
||||
}));
|
||||
|
||||
this.setData({
|
||||
points: data.points || 0,
|
||||
badges
|
||||
});
|
||||
},
|
||||
|
||||
// 根据徽章名称返回对应的 emoji 图标(也可换成图片路径)
|
||||
getBadgeIcon(name) {
|
||||
const map = {
|
||||
'探索者': '🧭',
|
||||
'旅行家': '🌍',
|
||||
'打卡达人': '🏆'
|
||||
};
|
||||
return map[name] || '🎖️';
|
||||
},
|
||||
|
||||
// 格式化时间戳为 "YYYY-MM-DD HH:mm"
|
||||
formatTime(ts) {
|
||||
if (!ts) return '';
|
||||
const d = new Date(ts);
|
||||
const pad = n => (n < 10 ? '0' + n : '' + n);
|
||||
return `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())} ${pad(d.getHours())}:${pad(d.getMinutes())}`;
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user