const app = getApp() Page({ data: { // 分类列表 categoryList: [] as any[], currentCategoryId: 0, // Banner列表 bannerList: [] as any[], // 文章列表 articleList: [] as any[], // 分页 page: 1, pageSize: 20, loading: false, hasMore: true, pagination: { count: 0, page: 1, pages: 1, }, }, onLoad() { // 药店端教育页面,仅允许药店人员访问 app.waitLogin({ types: [4] }).then(() => { this.getCategoryList() }) }, // 获取教育分类列表 getCategoryList() { wx.ajax({ method: 'GET', url: '/app/pharmacist/pharmacist/edu-category-list', }).then((res: any) => { const list = res || [] this.setData({ categoryList: list, currentCategoryId: list.length > 0 ? list[0].id : 0, }) // 获取第一个分类的文章列表和Banner if (list.length > 0) { this.getBannerList(list[0].id) this.getArticleList() } }) }, // 获取分类Banner列表 getBannerList(categoryId: number) { const category = this.data.categoryList.find((item: any) => item.id === categoryId) if (category && category.images && category.images.length > 0) { this.setData({ bannerList: category.images.map((url: string, index: number) => ({ id: index, imageUrl: url, })), }) } else { this.setData({ bannerList: [] }) } }, // 获取文章列表 getArticleList() { if (this.data.loading || !this.data.hasMore) return if (!this.data.currentCategoryId) return this.setData({ loading: true }) wx.ajax({ method: 'GET', url: '/app/pharmacist/pharmacist/edu-article-list', data: { categoryId: this.data.currentCategoryId, page: this.data.page, pageSize: this.data.pageSize, }, }) .then((res: any) => { const list = (res.list || []).map((item: any) => ({ ...item, })) const total = res.total || 0 const currentPage = this.data.page this.setData({ articleList: [...this.data.articleList, ...list], page: currentPage + 1, hasMore: list.length >= this.data.pageSize, loading: false, pagination: { count: total, page: currentPage, pages: Math.ceil(total / this.data.pageSize) || 1, }, }) }) .catch(() => { this.setData({ loading: false }) }) }, // 切换分类 handleTabChange(e: WechatMiniprogram.CustomEvent) { const categoryId = e.currentTarget.dataset.id this.setData({ currentCategoryId: categoryId, articleList: [], page: 1, hasMore: true, }) this.getBannerList(categoryId) this.getArticleList() }, // 页面上拉触底事件 onReachBottom() { if (this.data.loading || !this.data.hasMore) { return } this.getArticleList() }, // 查看文章详情 handleDetail(e: WechatMiniprogram.CustomEvent) { const { id } = e.currentTarget.dataset wx.navigateTo({ url: `/doctor/pages/article/index?id=${id}`, }) }, }) export {}