import { injectPage } from '@jdmini/api' const { getWorksheets } = require('../../utils/api.js') const { DATA_BASE_URL } = require('../../utils/config.js') Page(injectPage({})({ data: { dataBaseUrl: DATA_BASE_URL, categoryId: null, categoryName: '', worksheets: [], page: 1, pageSize: 20, hasMore: true, loading: false }, onLoad(options) { if (options.id) { this.setData({ categoryId: Number(options.id) }) } if (options.name) { const name = decodeURIComponent(options.name) this.setData({ categoryName: name }) wx.setNavigationBarTitle({ title: name }) } this.loadWorksheets() }, onPullDownRefresh() { this.setData({ page: 1, hasMore: true, worksheets: [] }) this.loadWorksheets().finally(() => { wx.stopPullDownRefresh() }) }, onReachBottom() { if (this.data.hasMore && !this.data.loading) { this.loadMore() } }, // 加载练习表列表 async loadWorksheets() { if (this.data.loading) return try { this.setData({ loading: true }) const res = await getWorksheets({ category_id: this.data.categoryId, page: this.data.page, pageSize: this.data.pageSize }) if (res.success) { const newWorksheets = res.data.list || [] this.setData({ worksheets: this.data.page === 1 ? newWorksheets : [...this.data.worksheets, ...newWorksheets], hasMore: newWorksheets.length >= this.data.pageSize, loading: false }) } } catch (error) { console.error('加载练习表失败:', error) this.setData({ loading: false }) } }, // 加载更多 async loadMore() { if (this.data.loading || !this.data.hasMore) return this.setData({ page: this.data.page + 1 }) await this.loadWorksheets() }, // 跳转详情页 goDetail(e) { const id = e.currentTarget.dataset.id wx.navigateTo({ url: `/pages/detail/detail?id=${id}` }) } }))