const app = getApp() const groupByType = (list) => ({ word: list.filter((item) => item.entry_type === 'word'), sentence: list.filter((item) => item.entry_type === 'sentence'), }) Page({ data: { reviewList: [], masteredList: [], reviewWords: [], reviewSentences: [], masteredWords: [], masteredSentences: [], reviewWordCollapsed: false, reviewSentenceCollapsed: false, masteredWordCollapsed: false, masteredSentenceCollapsed: false, loading: false, error: '', }, onShow() { this.loadData() }, toggleSection(e) { const key = e.currentTarget.dataset.key this.setData({ [key]: !this.data[key] }) }, loadData() { this.setData({ loading: true, error: '' }) wx.request({ url: `${app.globalData.baseUrl}/api/v1/progress/review`, header: { 'X-OpenID': app.globalData.openid || '' }, success: (res) => { const reviewList = res.data?.data || [] const grouped = groupByType(reviewList) this.setData({ reviewList, reviewWords: grouped.word, reviewSentences: grouped.sentence }) }, fail: () => this.setData({ error: '待复习数据加载失败' }), }) wx.request({ url: `${app.globalData.baseUrl}/api/v1/progress/mastered`, header: { 'X-OpenID': app.globalData.openid || '' }, success: (res) => { const masteredList = res.data?.data || [] const grouped = groupByType(masteredList) this.setData({ masteredList, masteredWords: grouped.word, masteredSentences: grouped.sentence }) }, fail: () => this.setData({ error: '已掌握数据加载失败' }), complete: () => this.setData({ loading: false }), }) }, })