|
|
@@ -1,417 +1,31 @@
|
|
|
<template>
|
|
|
- <view class="home-container page-inhert d-flex flex-col bg-base">
|
|
|
- <image
|
|
|
- class="position-absolute title"
|
|
|
- src="https://mncdn.wenlvti.net/app_static/minnan/images/inhert/Title.png"
|
|
|
- mode="widthFix"
|
|
|
- />
|
|
|
- <view class="content d-flex flex-col ">
|
|
|
-
|
|
|
- <!-- 非遗项目 -->
|
|
|
- <HomeTitle title="非遗项目" showMore inWing @clickMore="navTo('inhert/intangible/list')" />
|
|
|
- <SimplePageContentLoader :loader="intangibleData" >
|
|
|
- <scroll-view scroll-x>
|
|
|
- <view class="padding-wing-l pb-3 pt-3 d-flex flex-row overflow-visible align-stretch">
|
|
|
- <Box2LineLargeImageUserShadow
|
|
|
- v-for="(item, i) in intangibleData.content.value"
|
|
|
- classNames="width-2-3 mr-2"
|
|
|
- titleColor="title-text"
|
|
|
- fixSize
|
|
|
- :key="i"
|
|
|
- :title="item.title"
|
|
|
- :desc="item.desc"
|
|
|
- :image="item.image"
|
|
|
- :tags="item.bottomTags"
|
|
|
- @click="navTo('inhert/intangible/details', { id: item.id })"
|
|
|
- />
|
|
|
- </view>
|
|
|
- </scroll-view>
|
|
|
- </SimplePageContentLoader>
|
|
|
-
|
|
|
- <!-- 非遗传承人 -->
|
|
|
- <HomeTitle title="非遗传承人" showMore inWing @clickMore="navTo('inhert/inheritor/list')" />
|
|
|
- <SimplePageContentLoader :loader="inheritorData">
|
|
|
- <scroll-view scroll-x>
|
|
|
- <view class="padding-wing-l pb-3 pt-3 d-flex flex-row overflow-visible align-stretch">
|
|
|
- <Box2LineLargeImageUserShadow
|
|
|
- v-for="(item, i) in inheritorData.content.value"
|
|
|
- classNames="width-2-5 mr-2"
|
|
|
- titleColor="title-text"
|
|
|
- fixSize
|
|
|
- :key="i"
|
|
|
- :title="item.title"
|
|
|
- :image="item.image"
|
|
|
- :tags="item.bottomTags"
|
|
|
- :titleBox="item.titleBox"
|
|
|
- title1
|
|
|
- @click="navTo('inhert/inheritor/details', { id: item.id })"
|
|
|
- />
|
|
|
- </view>
|
|
|
- </scroll-view>
|
|
|
- </SimplePageContentLoader>
|
|
|
-
|
|
|
- <!-- 非遗作品 -->
|
|
|
- <!-- <HomeTitle title="非遗作品" showMore inWing @clickMore="navTo('inhert/intangible/list', { tab: 1 })" />
|
|
|
- <SimplePageContentLoader :loader="productsData" >
|
|
|
- <scroll-view scroll-x>
|
|
|
- <view class="padding-wing-l pb-3 pt-3 d-flex flex-row overflow-visible align-stretch">
|
|
|
- <Box2LineLargeImageUserShadow
|
|
|
- v-for="(item, i) in productsData.content.value"
|
|
|
- classNames="width-2-3 mr-2"
|
|
|
- titleColor="title-text"
|
|
|
- fixSize
|
|
|
- :key="i"
|
|
|
- :title="item.title"
|
|
|
- :desc="item.desc"
|
|
|
- :image="item.image"
|
|
|
- :bottomLocate="item.bottomLocate"
|
|
|
- :bottomScore="item.bottomScore"
|
|
|
- @click="navTo('inhert/product/details', { id: item.id })"
|
|
|
- />
|
|
|
- </view>
|
|
|
- </scroll-view>
|
|
|
- </SimplePageContentLoader> -->
|
|
|
-
|
|
|
- <!-- 文物 -->
|
|
|
- <HomeTitle title="文物古迹" showMore inWing @clickMore="navTo('inhert/artifact/list')" />
|
|
|
- <SimplePageContentLoader :loader="artifactData">
|
|
|
- <scroll-view scroll-x>
|
|
|
- <view class="padding-wing-l pb-3 pt-3 d-flex flex-row overflow-visible align-stretch">
|
|
|
- <Box2LineLargeImageUserShadow
|
|
|
- v-for="(item, i) in artifactData.content.value"
|
|
|
- classNames="width-2-5 mr-2"
|
|
|
- titleColor="title-text"
|
|
|
- fixSize
|
|
|
- :key="i"
|
|
|
- :title="item.title"
|
|
|
- :image="item.image"
|
|
|
- :tags="item.tags"
|
|
|
- title1
|
|
|
- @click="navTo('inhert/artifact/details', { id: item.id })"
|
|
|
- />
|
|
|
- </view>
|
|
|
- </scroll-view>
|
|
|
- </SimplePageContentLoader>
|
|
|
-
|
|
|
- <!-- 老字号 -->
|
|
|
- <HomeTitle title="老字号" showMore inWing @clickMore="navTo('/pages/inhert/old/list')" />
|
|
|
- <SimplePageContentLoader :loader="oldData">
|
|
|
- <scroll-view scroll-x>
|
|
|
- <view class="padding-wing-l pb-3 pt-3 d-flex flex-row overflow-visible align-stretch">
|
|
|
- <Box2LineLargeImageUserShadow
|
|
|
- v-for="(item, i) in oldData.content.value"
|
|
|
- classNames="width-2-3 mr-2"
|
|
|
- fixSize
|
|
|
- titleColor="title-text"
|
|
|
- :key="i"
|
|
|
- :title="item.title"
|
|
|
- :desc="item.desc"
|
|
|
- :image="item.thumbnail"
|
|
|
- :bottomLocate="(item.regionText as string)"
|
|
|
- :bottomScore="''"
|
|
|
- @click="navTo('/pages/inhert/intangible/details', { id: item.id })"
|
|
|
- />
|
|
|
- </view>
|
|
|
- </scroll-view>
|
|
|
- </SimplePageContentLoader>
|
|
|
-
|
|
|
-
|
|
|
- <!-- 闽南语在线课程-->
|
|
|
- <HomeTitle title="闽南语在线课程" :showMore="false" inWing @clickMore="goCourseList" />
|
|
|
- <SimplePageContentLoader :loader="corseData" >
|
|
|
- <scroll-view scroll-x>
|
|
|
- <view class="padding-wing-l pb-3 pt-3 d-flex flex-row overflow-visible align-stretch">
|
|
|
- <Box2LineLargeImageUserShadow
|
|
|
- v-for="(item, i) in corseData.content.value"
|
|
|
- classNames="width-2-3 mr-2"
|
|
|
- titleColor="title-text"
|
|
|
- fixSize
|
|
|
- :key="i"
|
|
|
- :title="item.title"
|
|
|
- :desc="item.desc"
|
|
|
- :image="item.thumbnail || item.image"
|
|
|
- @click="goCourseDetail(item.id)"
|
|
|
- />
|
|
|
- </view>
|
|
|
- </scroll-view>
|
|
|
- <view class="d-flex flex-col wing-l">
|
|
|
- <Box1AudioPlay
|
|
|
- class="w-100 mt-3"
|
|
|
- :title="indexAudioPlayer.currentTitle.value"
|
|
|
- :image="indexAudioPlayer.currentItem?.value?.image"
|
|
|
- :playState="indexAudioPlayer.isPlaying.value"
|
|
|
- :playTime="indexAudioPlayer.timeString.value"
|
|
|
- @playPauseClick="indexAudioPlayer.playpause"
|
|
|
- @nextClick="indexAudioPlayer.next"
|
|
|
- @prevClick="indexAudioPlayer.prev"
|
|
|
- @click="handleGoAudioList"
|
|
|
- />
|
|
|
- </view>
|
|
|
- </SimplePageContentLoader>
|
|
|
-
|
|
|
- <!-- 传统村落 -->
|
|
|
- <HomeTitle title="传统村落" showMore inWing @clickMore="navTo('/pages/inhert/village/list')" />
|
|
|
- <SimplePageContentLoader :loader="villageData">
|
|
|
- <scroll-view scroll-x>
|
|
|
- <view class="padding-wing-l pb-3 pt-3 d-flex flex-row overflow-visible align-stretch">
|
|
|
- <Box2LineLargeImageUserShadow
|
|
|
- v-for="(item, i) in villageData.content.value"
|
|
|
- classNames="width-2-3 mr-2"
|
|
|
- fixSize
|
|
|
- titleColor="title-text"
|
|
|
- :key="i"
|
|
|
- :title="item.title"
|
|
|
- :desc="item.desc"
|
|
|
- :image="item.image"
|
|
|
- @click="navTo('/pages/inhert/village/details', { id: item.id })"
|
|
|
- />
|
|
|
- </view>
|
|
|
- </scroll-view>
|
|
|
- </SimplePageContentLoader>
|
|
|
-
|
|
|
- <view class="d-flex flex-col wing-l">
|
|
|
- <!-- 闽南语原创歌曲
|
|
|
- <HomeTitle title="闽南语原创歌曲" showMore @clickMore="goMingnanSongsList" />
|
|
|
-
|
|
|
- <SimplePageContentLoader :loader="mingnanSongsData" >
|
|
|
- <Box1AudioPlay
|
|
|
- v-for="s in mingnanSongsData.content.value"
|
|
|
- :key="s.id"
|
|
|
- :title="s.title"
|
|
|
- :image="s.thumbnail || s.image"
|
|
|
- :showPrev="false"
|
|
|
- :showNext="false"
|
|
|
- innerClass="w-100 mt-1"
|
|
|
- @playPauseClick="goMingnanSongsDetail(s.id)"
|
|
|
- @click="goMingnanSongsDetail(s.id)"
|
|
|
- />
|
|
|
- </SimplePageContentLoader>
|
|
|
- -->
|
|
|
-
|
|
|
- <!-- 闽南语作品库
|
|
|
- <HomeTitle title="闽南语作品库" showMore @clickMore="goSongsList" />
|
|
|
- <SimplePageContentLoader :loader="songsData" >
|
|
|
- <Box2LinePlayRightArrow
|
|
|
- v-for="s in songsData.content.value"
|
|
|
- :key="s.id"
|
|
|
- :title="s.title"
|
|
|
- :desc="s.desc"
|
|
|
- @click="goSongsDetail(s.id)"
|
|
|
- />
|
|
|
- </SimplePageContentLoader>
|
|
|
- -->
|
|
|
- </view>
|
|
|
-
|
|
|
- <!-- 童趣记忆
|
|
|
- <HomeTitle title="童趣记忆" showMore inWing @clickMore="goMemoryList" />
|
|
|
- <SimplePageContentLoader :loader="memoryData" >
|
|
|
- <scroll-view scroll-x>
|
|
|
- <view class="padding-wing-l pb-3 pt-3 d-flex flex-row overflow-visible align-stretch">
|
|
|
- <Box2LineLargeImageUserShadow
|
|
|
- v-for="(item, i) in memoryData.content.value"
|
|
|
- classNames="width-2-3 mr-2"
|
|
|
- titleColor="title-text"
|
|
|
- fixSize
|
|
|
- :key="i"
|
|
|
- :title="item.title"
|
|
|
- :desc="item.desc"
|
|
|
- :image="item.thumbnail || item.image"
|
|
|
- @click="goMemoryDetail(item.id)"
|
|
|
- />
|
|
|
- </view>
|
|
|
- </scroll-view>
|
|
|
- </SimplePageContentLoader>
|
|
|
- -->
|
|
|
-
|
|
|
- <!-- 闽南文化百科
|
|
|
- <view class="d-flex flex-col wing-l">
|
|
|
- <HomeTitle title="闽南文化百科" showMore @clickMore="goTopicsList" />
|
|
|
- <SimplePageContentLoader :loader="topicsData">
|
|
|
- <Box2LineRightShadow
|
|
|
- v-for="(item, i) in topicsData.content.value"
|
|
|
- :key="i"
|
|
|
- :title="item.title"
|
|
|
- :desc="item.desc"
|
|
|
- @click="goTopicsDetail(item.id)"
|
|
|
- />
|
|
|
- </SimplePageContentLoader>
|
|
|
- </view> -->
|
|
|
-
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- <Tabbar :current="2" />
|
|
|
+ <FlexCol>
|
|
|
+ <StatusBarSpace backgroundColor="background.page" />
|
|
|
+ <NavBar leftButton="custom" backgroundColor="background.page">
|
|
|
+ <template #left>
|
|
|
+ <Image
|
|
|
+ src="https://mncdn.wenlvti.net/app_static/minnan/images/inhert/Title.png"
|
|
|
+ mode="widthFix"
|
|
|
+ :width="110"
|
|
|
+ :innerStyle="{ marginLeft: '30rpx', marginTop: '30rpx' }"
|
|
|
+ />
|
|
|
+ </template>
|
|
|
+ </NavBar>
|
|
|
+ <Inhert />
|
|
|
+ <Height :height="180" />
|
|
|
+ <Tabbar :current="2" />
|
|
|
+ </FlexCol>
|
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts">
|
|
|
-import { navTo } from '@/components/utils/PageAction';
|
|
|
-import { useSimpleDataLoader } from '@/common/composeabe/SimpleDataLoader';
|
|
|
-import CommonContent, { GetContentListParams } from '@/api/CommonContent';
|
|
|
import Tabbar from '@/common/components/tabs/Tabbar.vue';
|
|
|
-import HomeTitle from './parts/HomeTitle.vue';
|
|
|
-import Box2LineLargeImageUserShadow from './parts/Box2LineLargeImageUserShadow.vue';
|
|
|
-import Box2LinePlayRightArrow from './parts/Box2LinePlayRightArrow.vue';
|
|
|
-import Box1AudioPlay from './parts/Box1AudioPlay.vue';
|
|
|
-import Box2LineRightShadow from './parts/Box2LineRightShadow.vue';
|
|
|
-import SimplePageContentLoader from '@/common/components/SimplePageContentLoader.vue';
|
|
|
-import ProjectsContent from '@/api/inheritor/ProjectsContent';
|
|
|
-import UnmoveableContent from '@/api/inheritor/UnmoveableContent';
|
|
|
-import { useHomePageMiniCommonListGoMoreAndGoDetail } from './article/common/CommonContent';
|
|
|
-import ProductsContent from '@/api/inheritor/ProductsContent';
|
|
|
-import InheritorContent from '@/api/inheritor/InheritorContent';
|
|
|
import { onShareTimeline, onShareAppMessage } from '@dcloudio/uni-app';
|
|
|
-import { useSimpleListAudioPlayer } from '@/common/composeabe/SimpleAudioPlayer';
|
|
|
-import VillageApi from '@/api/inhert/VillageApi';
|
|
|
-
|
|
|
-const artifactData = useSimpleDataLoader(async () =>
|
|
|
- (await UnmoveableContent.getContentList(new GetContentListParams(), 1, 4)).list.map(p => ({
|
|
|
- id: p.id,
|
|
|
- title: p.title,
|
|
|
- desc: '',
|
|
|
- image: p.thumbnail || p.image,
|
|
|
- likes: p.likes,
|
|
|
- tags: [p.levelText, p.district] as string[],
|
|
|
- comment: p.comments,
|
|
|
- }))
|
|
|
-);
|
|
|
-const intangibleData = useSimpleDataLoader(async () =>
|
|
|
- (await ProjectsContent.getContentList(new GetContentListParams(), 1, 4)).list.map(p => ({
|
|
|
- id: p.id,
|
|
|
- title: p.title,
|
|
|
- desc: p.desc,
|
|
|
- image: p.thumbnail || p.image,
|
|
|
- bottomTags: [
|
|
|
- p.levelText,
|
|
|
- p.ichTypeText,
|
|
|
- p.batchText,
|
|
|
- p.regionText,
|
|
|
- ] as string[],
|
|
|
- }))
|
|
|
-);
|
|
|
-const inheritorData = useSimpleDataLoader(async () =>
|
|
|
- (await InheritorContent.getContentList(new GetContentListParams(), 1, 4)).list.map(p => ({
|
|
|
- id: p.id,
|
|
|
- title: p.title,
|
|
|
- desc: '',
|
|
|
- image: p.thumbnail || p.image,
|
|
|
- titleBox: Boolean(p.deathBirth),
|
|
|
- bottomTags: [
|
|
|
- p.levelText,
|
|
|
- p.nation,
|
|
|
- p.ichName
|
|
|
- ] as string[],
|
|
|
- }))
|
|
|
-);
|
|
|
-const productsData = useSimpleDataLoader(async () =>
|
|
|
- (await ProductsContent.getContentList(new GetContentListParams(), 1, 4)).list.map(p => ({
|
|
|
- id: p.id,
|
|
|
- title: p.title,
|
|
|
- desc: p.desc,
|
|
|
- image: p.thumbnail || p.image,
|
|
|
- bottomLocate: p.area as string,
|
|
|
- bottomScore: '5.0',
|
|
|
- }))
|
|
|
-);
|
|
|
-const villageData = useSimpleDataLoader(async () => {
|
|
|
- const res = await CommonContent.getCategoryList(151);
|
|
|
- const it2 = res.find(p => p.title == '省级');
|
|
|
- return (await VillageApi.getVallageList(it2?.id)).map(p => ({
|
|
|
- id: p.id,
|
|
|
- title: p.title,
|
|
|
- desc: '',
|
|
|
- image: p.thumbnail || p.image,
|
|
|
- tags: [p.levelText, p.district] as string[],
|
|
|
- comment: p.comments,
|
|
|
- }))
|
|
|
-});
|
|
|
-
|
|
|
-const indexAudioPlayer = useSimpleListAudioPlayer(async () => {
|
|
|
- return (await CommonContent.getContentList(new GetContentListParams()
|
|
|
- .setModelId(5)
|
|
|
- .setMainBodyColumnId(313)
|
|
|
- , 1, 6)).list.sort(() => Math.random()>0.5?-1:1).map((p) => {
|
|
|
- return {
|
|
|
- id: p.id,
|
|
|
- title: p.title,
|
|
|
- image: p.thumbnail || p.image,
|
|
|
- src: p.audio as string,
|
|
|
- }
|
|
|
- });
|
|
|
-})
|
|
|
-function handleGoAudioList() {
|
|
|
- navTo('/pages/inhert/language/list')
|
|
|
-}
|
|
|
-
|
|
|
-const {
|
|
|
- loader: corseData,
|
|
|
- goList: goCourseList,
|
|
|
- goDetail: goCourseDetail,
|
|
|
-} = useHomePageMiniCommonListGoMoreAndGoDetail({
|
|
|
- title: '闽南语在线课程',
|
|
|
- mainBodyColumnId: [257/* ,235,237,210 */],
|
|
|
- modelId: 5,
|
|
|
- itemType: 'article-common',
|
|
|
- detailsPage: '/pages/video/details',
|
|
|
-});
|
|
|
-
|
|
|
-const {
|
|
|
- loader: songsData,
|
|
|
- goList: goSongsList,
|
|
|
- goDetail: goSongsDetail,
|
|
|
-} = useHomePageMiniCommonListGoMoreAndGoDetail({
|
|
|
- title: '闽南语作品库',
|
|
|
- mainBodyColumnId: 189,
|
|
|
- modelId: 16,
|
|
|
- itemType: 'article-common',
|
|
|
- detailsPage: '/pages/video/details',
|
|
|
-});
|
|
|
-
|
|
|
-const {
|
|
|
- loader: mingnanSongsData,
|
|
|
- goList: goMingnanSongsList,
|
|
|
- goDetail: goMingnanSongsDetail,
|
|
|
-} = useHomePageMiniCommonListGoMoreAndGoDetail({
|
|
|
- title: '闽南语原创歌曲',
|
|
|
- mainBodyColumnId: 315,
|
|
|
- modelId: 16,
|
|
|
- itemType: 'article-common',
|
|
|
- detailsPage: '/pages/video/details',
|
|
|
-});
|
|
|
-
|
|
|
-const {
|
|
|
- loader: memoryData,
|
|
|
- goList: goMemoryList,
|
|
|
- goDetail: goMemoryDetail,
|
|
|
-} = useHomePageMiniCommonListGoMoreAndGoDetail({
|
|
|
- title: '童趣记忆',
|
|
|
- mainBodyColumnId: 96,
|
|
|
- modelId: 8,
|
|
|
- itemType: 'article-common',
|
|
|
- detailsPage: '/pages/article/details',
|
|
|
-});
|
|
|
-
|
|
|
-const {
|
|
|
- loader: oldData,
|
|
|
- goList: goOldList,
|
|
|
- goDetail: goOldDetail,
|
|
|
-} = useHomePageMiniCommonListGoMoreAndGoDetail({
|
|
|
- title: '老字号',
|
|
|
- mainBodyColumnId: 312,
|
|
|
- modelId: 17,
|
|
|
- itemType: 'article-common',
|
|
|
- detailsPage: '/pages/article/details',
|
|
|
-});
|
|
|
-
|
|
|
-const {
|
|
|
- loader: topicsData,
|
|
|
- goList: goTopicsList,
|
|
|
- goDetail: goTopicsDetail,
|
|
|
-} = useHomePageMiniCommonListGoMoreAndGoDetail({
|
|
|
- title: '闽南文化百科',
|
|
|
- mainBodyColumnId: 320,
|
|
|
- modelId: 18,
|
|
|
- itemType: 'article-common',
|
|
|
- detailsPage: '/pages/article/details',
|
|
|
-});
|
|
|
+import Inhert from './introduction/inhert.vue';
|
|
|
+import FlexCol from '@/components/layout/FlexCol.vue';
|
|
|
+import StatusBarSpace from '@/components/layout/space/StatusBarSpace.vue';
|
|
|
+import NavBar from '@/components/nav/NavBar.vue';
|
|
|
+import Image from '@/components/basic/Image.vue';
|
|
|
+import Height from '@/components/layout/space/Height.vue';
|
|
|
|
|
|
onShareTimeline(() => {
|
|
|
return {};
|
|
|
@@ -422,12 +36,4 @@ onShareAppMessage(() => {
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss">
|
|
|
-.page-inhert {
|
|
|
- > .content {
|
|
|
- margin-top: 10vh;
|
|
|
- }
|
|
|
- > .title {
|
|
|
- width: 100rpx;
|
|
|
- }
|
|
|
-}
|
|
|
</style>
|