kydc/me/me.js

54 lines
1.3 KiB
JavaScript
Raw Normal View History

2026-04-18 17:16:49 +08:00
const app = getApp()
Page({
data: {
name: '',
days: 0,
badges: 0,
openid: '',
2026-04-19 11:56:49 +08:00
loading: false,
error: '',
2026-04-18 17:16:49 +08:00
},
onShow() {
this.loadProfile()
},
2026-04-19 11:56:49 +08:00
async loadProfile() {
this.setData({ loading: true, error: '' })
await app.ensureLogin()
if (!app.globalData.openid) {
this.setData({ loading: false, error: '登录失败,请重试' })
return
}
this.setData({ openid: app.globalData.openid, name: '考研搭子' })
this.loadAchievements()
this.setData({ loading: false })
},
loadAchievements() {
if (!app.globalData.openid) {
this.setData({ error: '未获取到登录态' })
return
}
wx.request({
url: `${app.globalData.baseUrl}/api/v1/achievements`,
2026-04-19 11:56:49 +08:00
header: { 'X-OpenID': app.globalData.openid },
success: (res) => {
2026-04-19 11:56:49 +08:00
const list = res.data?.data || []
const badges = Array.isArray(list) ? list.filter((i) => i.is_unlocked).length : 0
this.setData({ badges })
},
2026-04-19 11:56:49 +08:00
fail: () => this.setData({ error: '成就数据加载失败' }),
2026-04-18 17:16:49 +08:00
})
},
goTo(e) {
const { url } = e.currentTarget.dataset
2026-04-19 11:56:49 +08:00
if (!app.globalData.openid) {
wx.showToast({ title: '请先登录', icon: 'none' })
return
}
2026-04-18 17:16:49 +08:00
wx.navigateTo({ url })
},
goHome() {
wx.switchTab({ url: '/pages/index/index' })
},
})