kydc/me/me.js

58 lines
1.4 KiB
JavaScript

const app = getApp()
Page({
data: {
name: '',
days: 0,
badges: 0,
openid: '',
loading: false,
error: '',
},
onShow() {
this.loadProfile()
},
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`,
header: { 'X-OpenID': app.globalData.openid },
success: (res) => {
const list = res.data?.data || []
const badges = Array.isArray(list) ? list.filter((i) => i.is_unlocked).length : 0
this.setData({ badges })
},
fail: () => this.setData({ error: '成就数据加载失败' }),
})
},
goTo(e) {
const { url } = e.currentTarget.dataset
if (!app.globalData.openid) {
wx.showToast({ title: '请先登录', icon: 'none' })
return
}
wx.navigateTo({ url })
},
goHome() {
wx.reLaunch({ url: '/pages/index/index' })
},
goToReview() {
wx.navigateTo({ url: '/pages/review-config/review-config' })
},
goToMe() {},
})