From dd1559ba560058bc2d15be4a5a93a80a881f5a5f Mon Sep 17 00:00:00 2001 From: pcn_ Date: Sat, 13 Sep 2025 04:06:03 +0800 Subject: [PATCH] =?UTF-8?q?tabar=E5=A2=9E=E5=8A=A0=20=E5=9F=BA=E5=9C=B0?= =?UTF-8?q?=E7=94=9F=E6=B4=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app.config.ts | 7 +- src/assets/tabbar/tv-active.png | Bin 0 -> 4550 bytes src/assets/tabbar/tv.png | Bin 0 -> 4406 bytes .../cms/category/components/ArticleList.tsx | 25 ++++++ .../cms/category/components/ArticleTabs.tsx | 59 +++++++++++++++ src/pages/cms/category/components/Banner.tsx | 31 ++++++++ src/pages/cms/category/index.config.ts | 4 + src/pages/cms/category/index.scss | 0 src/pages/cms/category/index.tsx | 71 ++++++++++++++++++ src/pages/cms/detail/index.config.ts | 3 + src/pages/cms/detail/index.scss | 0 src/pages/cms/detail/index.tsx | 53 +++++++++++++ 12 files changed, 250 insertions(+), 3 deletions(-) create mode 100644 src/assets/tabbar/tv-active.png create mode 100644 src/assets/tabbar/tv.png create mode 100644 src/pages/cms/category/components/ArticleList.tsx create mode 100644 src/pages/cms/category/components/ArticleTabs.tsx create mode 100644 src/pages/cms/category/components/Banner.tsx create mode 100644 src/pages/cms/category/index.config.ts create mode 100644 src/pages/cms/category/index.scss create mode 100644 src/pages/cms/category/index.tsx create mode 100644 src/pages/cms/detail/index.config.ts create mode 100644 src/pages/cms/detail/index.scss create mode 100644 src/pages/cms/detail/index.tsx diff --git a/src/app.config.ts b/src/app.config.ts index 63deeb4..fba1498 100644 --- a/src/app.config.ts +++ b/src/app.config.ts @@ -1,5 +1,6 @@ export default { pages: [ + 'pages/cms/category/index', 'pages/index/index', 'pages/cart/cart', 'pages/find/find', @@ -108,9 +109,9 @@ export default { text: "首页", }, { - pagePath: "pages/find/find", - iconPath: "assets/tabbar/find.png", - selectedIconPath: "assets/tabbar/find-active.png", + pagePath: "pages/cms/category/index", + iconPath: "assets/tabbar/tv.png", + selectedIconPath: "assets/tabbar/tv-active.png", text: "基地生活", }, { diff --git a/src/assets/tabbar/tv-active.png b/src/assets/tabbar/tv-active.png new file mode 100644 index 0000000000000000000000000000000000000000..4852b4fd46cb2b33596f48ba3a335842f686cd78 GIT binary patch literal 4550 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 M&8$st8M7k)3zB(GivR!s literal 0 HcmV?d00001 diff --git a/src/pages/cms/category/components/ArticleList.tsx b/src/pages/cms/category/components/ArticleList.tsx new file mode 100644 index 0000000..3f46857 --- /dev/null +++ b/src/pages/cms/category/components/ArticleList.tsx @@ -0,0 +1,25 @@ +import {Image, Cell} from '@nutui/nutui-react-taro' +import Taro from '@tarojs/taro' + +const ArticleList = (props: any) => { + + return ( + <> +
+ {props.data.map((item, index) => { + return ( + + } + key={index} + onClick={() => Taro.navigateTo({url: '/cms/detail/index?id=' + item.articleId})} + /> + ) + })} +
+ + ) +} +export default ArticleList diff --git a/src/pages/cms/category/components/ArticleTabs.tsx b/src/pages/cms/category/components/ArticleTabs.tsx new file mode 100644 index 0000000..a995345 --- /dev/null +++ b/src/pages/cms/category/components/ArticleTabs.tsx @@ -0,0 +1,59 @@ +import {useEffect, useState} from "react"; +import {Tabs, Loading} from '@nutui/nutui-react-taro' +import {pageCmsArticle} from "@/api/cms/cmsArticle"; +import {CmsArticle} from "@/api/cms/cmsArticle/model"; +import ArticleList from "./ArticleList"; + +const ArticleTabs = (props: any) => { + const [loading, setLoading] = useState(true) + const [tab1value, setTab1value] = useState('0') + const [list, setList] = useState([]) + + const reload = async (value) => { + const {data} = props + pageCmsArticle({ + categoryId: data[value].navigationId, + page: 1, + status: 0, + limit: 10 + }).then((res) => { + res && setList(res?.list || []) + }) + .catch(err => { + console.log(err) + }) + .finally(() => { + setTab1value(value) + setLoading(false) + }) + } + + useEffect(() => { + reload(0).then() + }, []); + + if (loading) { + return ( + 加载中 + ) + } + + return ( + <> + { + reload(value).then() + }} + > + {props.data?.map((item, index) => { + return ( + + ) + })} + + + + ) +} +export default ArticleTabs diff --git a/src/pages/cms/category/components/Banner.tsx b/src/pages/cms/category/components/Banner.tsx new file mode 100644 index 0000000..7f3942d --- /dev/null +++ b/src/pages/cms/category/components/Banner.tsx @@ -0,0 +1,31 @@ +import { useEffect, useState } from 'react' +import { Swiper } from '@nutui/nutui-react-taro' +import {CmsAd} from "@/api/cms/cmsAd/model"; +import {Image} from '@nutui/nutui-react-taro' +import {getCmsAd} from "@/api/cms/cmsAd"; + +const MyPage = () => { + const [item, setItem] = useState() + const reload = () => { + getCmsAd(439).then(data => { + setItem(data) + }) + } + + useEffect(() => { + reload() + }, []) + + return ( + <> + + {item?.imageList?.map((item) => ( + + + + ))} + + + ) +} +export default MyPage diff --git a/src/pages/cms/category/index.config.ts b/src/pages/cms/category/index.config.ts new file mode 100644 index 0000000..689ba07 --- /dev/null +++ b/src/pages/cms/category/index.config.ts @@ -0,0 +1,4 @@ +export default definePageConfig({ + navigationBarTitleText: '文章列表', + navigationBarTextStyle: 'black' +}) diff --git a/src/pages/cms/category/index.scss b/src/pages/cms/category/index.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/pages/cms/category/index.tsx b/src/pages/cms/category/index.tsx new file mode 100644 index 0000000..6886cc3 --- /dev/null +++ b/src/pages/cms/category/index.tsx @@ -0,0 +1,71 @@ +import Taro from '@tarojs/taro' +import {useShareAppMessage} from "@tarojs/taro" +import {Loading} from '@nutui/nutui-react-taro' +import {useEffect, useState} from "react" +import {useRouter} from '@tarojs/taro' +import {getCmsNavigation, listCmsNavigation} from "@/api/cms/cmsNavigation"; +import {CmsNavigation} from "@/api/cms/cmsNavigation/model"; +import {pageCmsArticle} from "@/api/cms/cmsArticle"; +import {CmsArticle} from "@/api/cms/cmsArticle/model"; +import ArticleList from './components/ArticleList' +import ArticleTabs from "./components/ArticleTabs"; +import './index.scss' + +function Category() { + const {params} = useRouter(); + const [categoryId, setCategoryId] = useState(0) + const [category, setCategory] = useState([]) + const [loading, setLoading] = useState(true) + const [nav, setNav] = useState() + const [list, setList] = useState([]) + + const reload = async () => { + // 1.加载远程数据 + const id = Number(params.id || 4328) + const nav = await getCmsNavigation(id) + const categoryList = await listCmsNavigation({parentId: id}) + const shopGoods = await pageCmsArticle({categoryId: id}) + + // 2.赋值 + setCategoryId(id) + setNav(nav) + setList(shopGoods?.list || []) + setCategory(categoryList) + Taro.setNavigationBarTitle({ + title: `${nav?.categoryName}` + }) + }; + + useEffect(() => { + reload().then(() => { + setLoading(false) + }) + }, []); + + useShareAppMessage(() => { + return { + title: `${nav?.categoryName}_时里院子市集`, + path: `/shop/category/index?id=${categoryId}`, + success: function () { + console.log('分享成功'); + }, + fail: function () { + console.log('分享失败'); + } + }; + }); + + if (loading) { + return ( + 加载中 + ) + } + + if(category.length > 0){ + return + } + + return +} + +export default Category diff --git a/src/pages/cms/detail/index.config.ts b/src/pages/cms/detail/index.config.ts new file mode 100644 index 0000000..d74c9f2 --- /dev/null +++ b/src/pages/cms/detail/index.config.ts @@ -0,0 +1,3 @@ +export default definePageConfig({ + navigationBarTitleText: '文章详情' +}) diff --git a/src/pages/cms/detail/index.scss b/src/pages/cms/detail/index.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/pages/cms/detail/index.tsx b/src/pages/cms/detail/index.tsx new file mode 100644 index 0000000..f92c890 --- /dev/null +++ b/src/pages/cms/detail/index.tsx @@ -0,0 +1,53 @@ +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(true) + // 文章详情 + const [item, setItem] = useState() + 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 ( + 加载中 + ) + } + + return ( +
+
{item?.title}
+
{item?.createTime}
+ + + + +
+ ) +} + +export default Detail