- 创建 .editorconfig 文件统一代码风格配置 - 配置 .eslintrc 使用 taro/react 规则集 - 完善 .gitignore 忽略编译产物和敏感文件 - 添加 admin/article/add 页面实现文章管理功能 - 添加 dealer/apply/add 页面实现经销商申请功能 - 添加 dealer/bank/add 页面实现银行卡管理功能 - 添加 dealer/customer/add 页面实现客户管理功能 - 添加 user/address/add 页面实现用户地址管理功能 - 添加 user/chat/message/add 页面实现消息功能 - 添加 user/gift/add 页面实现礼品管理功能 - 配置各页面导航栏标题和样式 - 实现表单验证和数据提交功能 - 集成图片上传和头像选择功能 - 添加日期选择和数据校验逻辑 - 实现编辑和新增模式切换 - 集成用户权限和角色管理功能
54 lines
1.4 KiB
TypeScript
54 lines
1.4 KiB
TypeScript
import Taro from '@tarojs/taro'
|
|
import {useEffect, useState} from 'react'
|
|
import {useRouter} from '@tarojs/taro'
|
|
import {Loading} from '@nutui/nutui-react-taro'
|
|
import {View, RichText} from '@tarojs/components'
|
|
import {wxParse} from "@/utils/common";
|
|
import {getCmsArticle} from "@/api/cms/cmsArticle";
|
|
import {CmsArticle} from "@/api/cms/cmsArticle/model"
|
|
import Line from "@/components/Gap";
|
|
import './index.scss'
|
|
|
|
function Detail() {
|
|
const {params} = useRouter();
|
|
const [loading, setLoading] = useState<boolean>(true)
|
|
// 文章详情
|
|
const [item, setItem] = useState<CmsArticle>()
|
|
const reload = async () => {
|
|
const item = await getCmsArticle(Number(params.id))
|
|
|
|
if (item) {
|
|
item.content = wxParse(`${item.content}`)
|
|
setItem(item)
|
|
Taro.setNavigationBarTitle({
|
|
title: `${item?.categoryName}`
|
|
})
|
|
}
|
|
}
|
|
|
|
useEffect(() => {
|
|
reload().then(() => {
|
|
setLoading(false)
|
|
});
|
|
}, []);
|
|
|
|
if (loading) {
|
|
return (
|
|
<Loading className={'px-2'}>加载中</Loading>
|
|
)
|
|
}
|
|
|
|
return (
|
|
<div className={'bg-white'}>
|
|
<div className={'p-4 font-bold text-lg'}>{item?.title}</div>
|
|
<div className={'text-gray-400 text-sm px-4 '}>{item?.createTime}</div>
|
|
<View className={'content p-4'}>
|
|
<RichText nodes={item?.content}/>
|
|
</View>
|
|
<Line height={44}/>
|
|
</div>
|
|
)
|
|
}
|
|
|
|
export default Detail
|