You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
import http from '../../../utils/api'const baseUrl = require('../../../utils/baseUrl')
Page({ data: { baseUrl: baseUrl, article: {}, // 文章详情
loading: true, // 加载状态
},
onLoad(options) { this.getArticleDetails(options.id) },
// 获取文章详情
getArticleDetails(id) { this.setData({ loading: true }) http.articleDetails({ data: { id }, success: res => { console.log('文章详情:', res) if (res.code === 200 && res.data) { // 解析富文本内容
const article = res.data // 这里可以处理富文本内容的样式
article.content = this.formatRichContent(article.content) this.setData({ article: article, loading: false }) // 设置页面标题
wx.setNavigationBarTitle({ title: article.title.substring(0, 10) + (article.title.length > 10 ? '...' : '') }) } else { wx.showToast({ title: '文章不存在', icon: 'error' }) setTimeout(() => { wx.navigateBack() }, 2000) } }, fail: err => { console.error('获取文章详情失败:', err) this.setData({ loading: false }) wx.showToast({ title: '加载失败', icon: 'error' }) } }) },
// 格式化富文本内容
formatRichContent(content) { // 这里可以添加自定义样式,比如给图片添加样式
return content.replace(/<img/g, '<img style="max-width:100%;height:auto;border-radius:15rpx;margin:20rpx 0;"') },
// 滚动事件
onPageScroll(e) { this.setData({ scrollTop: e.scrollTop }) },
// 回到顶部
scrollToTop() { wx.pageScrollTo({ scrollTop: 0, duration: 300 }) },
// 下拉刷新
onPullDownRefresh() { },
// 页面卸载
onUnload() {
}})
|