61 lines
1.4 KiB
JavaScript
61 lines
1.4 KiB
JavaScript
|
|
import { injectPage } from '@jdmini/api'
|
||
|
|
const { getHomeData } = require('../../utils/api.js')
|
||
|
|
const { DATA_BASE_URL } = require('../../utils/config.js')
|
||
|
|
|
||
|
|
Page(injectPage({})({
|
||
|
|
data: {
|
||
|
|
dataBaseUrl: DATA_BASE_URL,
|
||
|
|
// 分类数据(每个分类的第一条作为封面)
|
||
|
|
worksheets: [],
|
||
|
|
loading: false
|
||
|
|
},
|
||
|
|
|
||
|
|
onLoad() {
|
||
|
|
this.loadHomeData()
|
||
|
|
},
|
||
|
|
|
||
|
|
onPullDownRefresh() {
|
||
|
|
this.loadHomeData().finally(() => {
|
||
|
|
wx.stopPullDownRefresh()
|
||
|
|
})
|
||
|
|
},
|
||
|
|
|
||
|
|
// 加载首页数据
|
||
|
|
async loadHomeData() {
|
||
|
|
try {
|
||
|
|
this.setData({ loading: true })
|
||
|
|
const res = await getHomeData()
|
||
|
|
if (res.success) {
|
||
|
|
this.setData({
|
||
|
|
worksheets: res.data.worksheets || [],
|
||
|
|
loading: false
|
||
|
|
})
|
||
|
|
}
|
||
|
|
} catch (error) {
|
||
|
|
console.error('加载首页数据失败:', error)
|
||
|
|
this.setData({ loading: false })
|
||
|
|
wx.showToast({
|
||
|
|
title: '加载失败',
|
||
|
|
icon: 'none'
|
||
|
|
})
|
||
|
|
}
|
||
|
|
},
|
||
|
|
|
||
|
|
// 跳转搜索页
|
||
|
|
goSearch() {
|
||
|
|
wx.navigateTo({
|
||
|
|
url: '/pages/search/search'
|
||
|
|
})
|
||
|
|
},
|
||
|
|
|
||
|
|
// 跳转到分类详情页面
|
||
|
|
goCategory(e) {
|
||
|
|
const categoryId = e.currentTarget.dataset.id
|
||
|
|
const item = this.data.worksheets.find(w => w.category_id === categoryId)
|
||
|
|
const categoryName = item ? item.category_name : ''
|
||
|
|
wx.navigateTo({
|
||
|
|
url: `/pages/category-detail/category-detail?id=${categoryId}&name=${encodeURIComponent(categoryName)}`
|
||
|
|
})
|
||
|
|
}
|
||
|
|
}))
|