kydc/progress-list/progress-list.js

55 lines
1.7 KiB
JavaScript
Raw Normal View History

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