kydc/index/index.js

54 lines
1.5 KiB
JavaScript
Raw Permalink Normal View History

2026-05-13 15:42:18 +08:00
const appContext = require('../../utils/app-context.js')
2026-04-18 17:16:49 +08:00
Page({
data: {
stats: { total_entries: 0, review_count: 0, mastered_count: 0, checkin_count: 0, review_records: 0 },
2026-04-19 11:56:49 +08:00
loading: false,
error: '',
},
onShow() {
this.loadStats()
},
2026-04-19 16:39:02 +08:00
async loadStats() {
2026-05-13 15:42:18 +08:00
const app = appContext.withApp()
2026-04-19 11:56:49 +08:00
this.setData({ loading: true, error: '' })
2026-05-13 15:42:18 +08:00
await appContext.ensureLogin()
if (!app.globalData.authToken) {
2026-05-13 15:42:18 +08:00
this.setData({ error: '请先登录后查看首页数据', loading: false })
2026-04-19 16:39:02 +08:00
return
}
2026-05-13 15:42:18 +08:00
wx.request({
url: `${app.globalData.baseUrl}/api/v1/home/stats`,
header: { 'X-Auth-Token': app.globalData.authToken },
success: (res) => {
2026-05-13 15:42:18 +08:00
if (appContext.isUnauthorizedResponse(res)) {
appContext.handleUnauthorized()
return
}
2026-04-19 11:56:49 +08:00
const payload = res.data?.data
2026-05-13 15:42:18 +08:00
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 })
},
2026-04-19 11:56:49 +08:00
fail: () => this.setData({ error: '首页数据加载失败' }),
complete: () => this.setData({ loading: false }),
})
},
2026-04-18 17:16:49 +08:00
goToReview() {
wx.navigateTo({ url: '/pages/review-config/review-config' })
},
goToMe() {
wx.navigateTo({ url: '/pages/me/me' })
},
goHome() {},
goTo(url) {
wx.navigateTo({ url })
},
})