kydc/index/index.js
2026-05-13 15:42:18 +08:00

54 lines
1.5 KiB
JavaScript

const appContext = require('../../utils/app-context.js')
Page({
data: {
stats: { total_entries: 0, review_count: 0, mastered_count: 0, checkin_count: 0, review_records: 0 },
loading: false,
error: '',
},
onShow() {
this.loadStats()
},
async loadStats() {
const app = appContext.withApp()
this.setData({ loading: true, error: '' })
await appContext.ensureLogin()
if (!app.globalData.authToken) {
this.setData({ error: '请先登录后查看首页数据', loading: false })
return
}
wx.request({
url: `${app.globalData.baseUrl}/api/v1/home/stats`,
header: { 'X-Auth-Token': app.globalData.authToken },
success: (res) => {
if (appContext.isUnauthorizedResponse(res)) {
appContext.handleUnauthorized()
return
}
const payload = res.data?.data
const ok = res.statusCode >= 200 && res.statusCode < 300 && res.data?.code === 0 && payload
if (!ok) {
this.setData({ error: res.data?.detail || res.data?.message || '首页数据加载失败' })
return
}
this.setData({ stats: payload })
},
fail: () => this.setData({ error: '首页数据加载失败' }),
complete: () => this.setData({ loading: false }),
})
},
goToReview() {
wx.navigateTo({ url: '/pages/review-config/review-config' })
},
goToMe() {
wx.navigateTo({ url: '/pages/me/me' })
},
goHome() {},
goTo(url) {
wx.navigateTo({ url })
},
})