import React, { useState, useEffect } from 'react' import { View, Text, ScrollView, RichText } from '@tarojs/components' import Taro, { useRouter } from '@tarojs/taro' import { getCmsArticle, pageCmsArticle } from '@/api/official' import type { CmsArticle } from '@/api/official' import ArticleCard from '../components/ArticleCard' import NavBar from '@/components/NavBar' definePageConfig({ navigationBarTitleText: '资讯详情', }) const ArticleDetail: React.FC = () => { const router = useRouter() const id = router.params.id const [article, setArticle] = useState() const [related, setRelated] = useState([]) const [loading, setLoading] = useState(true) useEffect(() => { if (!id) return getCmsArticle(Number(id)) .then((a) => setArticle(a)) .catch(() => {}) .finally(() => setLoading(false)) // 相关推荐:取最新几条,排除当前 pageCmsArticle({ status: 0, deleted: 0, page: 1, limit: 4 }) .then((r) => { const list = (r?.list || []).filter((x) => x.articleId !== Number(id)).slice(0, 3) setRelated(list) }) .catch(() => {}) }, [id]) return ( {article?.title || '加载中...'} {article?.source || article?.author || ''} {article?.createTime?.slice(0, 10)} {article?.content ? ( ) : ( {loading ? '加载中...' : '暂无内容'} )} {/* 相关推荐 */} {related.length > 0 && ( 相关推荐 {related.map((a) => ( ))} )} Taro.navigateTo({ url: '/official/message' })} > 立即咨询 ) } export default ArticleDetail