|
|
@@ -0,0 +1,228 @@
|
|
|
+<template>
|
|
|
+ <FlexCol :padding="30" backgroundColor="background.page">
|
|
|
+
|
|
|
+ <!-- 非遗项目 -->
|
|
|
+ <HomeTitle title="非遗项目" showMore @clickMore="navTo('/pages/inhert/intangible/list')" />
|
|
|
+ <SimplePageContentLoader :loader="intangibleData" >
|
|
|
+ <scroll-view scroll-x>
|
|
|
+ <FlexRow>
|
|
|
+ <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('/pages/inhert/intangible/details', { id: item.id })"
|
|
|
+ />
|
|
|
+ </FlexRow>
|
|
|
+ </scroll-view>
|
|
|
+ </SimplePageContentLoader>
|
|
|
+
|
|
|
+ <!-- 非遗传承人 -->
|
|
|
+ <HomeTitle title="非遗传承人" showMore @clickMore="navTo('/pages/inhert/inheritor/list')" />
|
|
|
+ <SimplePageContentLoader :loader="inheritorData">
|
|
|
+ <scroll-view scroll-x>
|
|
|
+ <FlexCol>
|
|
|
+ <Box2LineImageRightShadow
|
|
|
+ v-for="(item, i) in inheritorData.content.value"
|
|
|
+ titleColor="title-text"
|
|
|
+ fixSize
|
|
|
+ :key="i"
|
|
|
+ :title="item.title"
|
|
|
+ :desc="item.desc"
|
|
|
+ :image="item.image"
|
|
|
+ :tags="item.bottomTags"
|
|
|
+ @click="navTo('/pages/inhert/inheritor/details', { id: item.id })"
|
|
|
+ />
|
|
|
+ </FlexCol>
|
|
|
+ </scroll-view>
|
|
|
+ </SimplePageContentLoader>
|
|
|
+
|
|
|
+ <!-- 保护单位 -->
|
|
|
+ <HomeTitle title="保护单位" showMore @clickMore="navTo('/pages/inhert/unit/list')" />
|
|
|
+ <SimplePageContentLoader :loader="unitData">
|
|
|
+ <scroll-view scroll-x>
|
|
|
+ <FlexCol>
|
|
|
+ <Box2LineImageRightShadow
|
|
|
+ v-for="(item, i) in unitData.content.value"
|
|
|
+ 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 })"
|
|
|
+ />
|
|
|
+ </FlexCol>
|
|
|
+ </scroll-view>
|
|
|
+ </SimplePageContentLoader>
|
|
|
+
|
|
|
+ <!-- 非遗传习所 -->
|
|
|
+ <HomeTitle title="非遗传习所" showMore @clickMore="navHomePageMiniCommonListGo({
|
|
|
+ title: '非遗传习所',
|
|
|
+ modelId: SeminarContent.modelId,
|
|
|
+ mainBodyColumnId: SeminarContent.mainBodyColumnId,
|
|
|
+ detailsPage: '/pages/inhert/seminar/details',
|
|
|
+ })" />
|
|
|
+ <SimplePageContentLoader :loader="seminarData">
|
|
|
+ <scroll-view scroll-x>
|
|
|
+ <FlexCol overflow="visible">
|
|
|
+ <Box2LineImageRightShadow
|
|
|
+ v-for="(item, i) in seminarData.content.value"
|
|
|
+ titleColor="title-text"
|
|
|
+ fixSize
|
|
|
+ :key="i"
|
|
|
+ :title="item.title"
|
|
|
+ :desc="item.desc"
|
|
|
+ :image="item.image"
|
|
|
+ :tags="item.bottomTags"
|
|
|
+ @click="navTo('inhert/seminar/details', { id: item.id })"
|
|
|
+ />
|
|
|
+ </FlexCol>
|
|
|
+ </scroll-view>
|
|
|
+ </SimplePageContentLoader>
|
|
|
+
|
|
|
+ <!-- 非遗活动 -->
|
|
|
+ <HomeTitle title="非遗活动" showMore @clickMore="goActivityList" />
|
|
|
+ <SimplePageContentLoader :loader="activityData">
|
|
|
+ <scroll-view scroll-x>
|
|
|
+ <FlexRow wrap align="stretch" justify="space-between" overflow="visible">
|
|
|
+ <Box2LineLargeImageUserShadow
|
|
|
+ v-for="(item, i) in activityData.content.value"
|
|
|
+ titleColor="title-text"
|
|
|
+ width="calc(50% - 10rpx)"
|
|
|
+ fixSize
|
|
|
+ :key="i"
|
|
|
+ :title="item.title"
|
|
|
+ :desc="item.desc"
|
|
|
+ :image="item.image"
|
|
|
+ @click="goActivityDetail(item.id)"
|
|
|
+ />
|
|
|
+ </FlexRow>
|
|
|
+ </scroll-view>
|
|
|
+ </SimplePageContentLoader>
|
|
|
+
|
|
|
+ <!-- 重点区域 -->
|
|
|
+ <HomeTitle title="重点区域" showMore @clickMore="goAreaList" />
|
|
|
+ <SimplePageContentLoader :loader="areaData">
|
|
|
+ <scroll-view scroll-x>
|
|
|
+ <FlexRow wrap align="stretch" justify="space-between" overflow="visible">
|
|
|
+ <Box2LineLargeImageUserShadow
|
|
|
+ v-for="(item, i) in areaData.content.value"
|
|
|
+ titleColor="title-text"
|
|
|
+ width="calc(50% - 10rpx)"
|
|
|
+ fixSize
|
|
|
+ :key="i"
|
|
|
+ :title="item.title"
|
|
|
+ :desc="item.desc"
|
|
|
+ :image="item.image"
|
|
|
+ @click="goActivityDetail(item.id)"
|
|
|
+ />
|
|
|
+ </FlexRow>
|
|
|
+ </scroll-view>
|
|
|
+ </SimplePageContentLoader>
|
|
|
+ </FlexCol>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script setup lang="ts">
|
|
|
+import { navTo } from '@/components/utils/PageAction';
|
|
|
+import { useSimpleDataLoader } from '@/common/composeabe/SimpleDataLoader';
|
|
|
+import { GetContentListParams } from '@/api/CommonContent';
|
|
|
+import SimplePageContentLoader from '@/common/components/SimplePageContentLoader.vue';
|
|
|
+import FlexCol from '@/components/layout/FlexCol.vue';
|
|
|
+import HomeTitle from '../parts/HomeTitle.vue';
|
|
|
+import Box2LineLargeImageUserShadow from '../parts/Box2LineLargeImageUserShadow.vue';
|
|
|
+import Box2LineImageRightShadow from '../parts/Box2LineImageRightShadow.vue';
|
|
|
+import InheritorContent from '@/api/inheritor/InheritorContent';
|
|
|
+import ProjectsContent from '@/api/inheritor/ProjectsContent';
|
|
|
+import UnitContent from '@/api/inheritor/UnitContent';
|
|
|
+import SeminarContent from '@/api/inheritor/SeminarContent';
|
|
|
+import { navHomePageMiniCommonListGo, useHomePageMiniCommonListGoMoreAndGoDetail } from '../article/common/CommonContent';
|
|
|
+import FlexRow from '@/components/layout/FlexRow.vue';
|
|
|
+
|
|
|
+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: p.desc,
|
|
|
+ image: p.thumbnail || p.image,
|
|
|
+ titleBox: Boolean(p.deathBirth),
|
|
|
+ bottomTags: [
|
|
|
+ p.levelText,
|
|
|
+ p.nation,
|
|
|
+ p.ichName
|
|
|
+ ] as string[],
|
|
|
+ }))
|
|
|
+);
|
|
|
+const unitData = useSimpleDataLoader(async () =>
|
|
|
+ (await UnitContent.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 seminarData = useSimpleDataLoader(async () =>
|
|
|
+ (await SeminarContent.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 {
|
|
|
+ loader: activityData,
|
|
|
+ goList: goActivityList,
|
|
|
+ goDetail: goActivityDetail,
|
|
|
+} = useHomePageMiniCommonListGoMoreAndGoDetail({
|
|
|
+ title: '非遗活动',
|
|
|
+ mainBodyColumnId: 290,
|
|
|
+ modelId: 18,
|
|
|
+ itemType: 'article-common',
|
|
|
+ detailsPage: '/pages/article/details',
|
|
|
+});
|
|
|
+
|
|
|
+const {
|
|
|
+ loader: areaData,
|
|
|
+ goList: goAreaList,
|
|
|
+ goDetail: goAreaDetail,
|
|
|
+} = useHomePageMiniCommonListGoMoreAndGoDetail({
|
|
|
+ title: '重点区域',
|
|
|
+ mainBodyColumnId: 283,
|
|
|
+ modelId: 17,
|
|
|
+ itemType: 'article-common',
|
|
|
+ detailsPage: '/pages/article/details',
|
|
|
+});
|
|
|
+</script>
|