54 lines
1.5 KiB
JavaScript
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 })
|
|
},
|
|
})
|