瀏覽代碼

📦 非遗列表增加关联列表显示

imengyu 1 月之前
父節點
當前提交
6964ec9a5d

+ 3 - 9
src/views/AboutView.vue

@@ -39,7 +39,7 @@
     </section>
 
     <!-- 新闻 -->
-    <section v-if="mainTabActive <= 2" class="main-section main-background main-background-type0">
+    <section v-if="mainTabActive <= 1" class="main-section main-background main-background-type0">
       <div class="content news-list">
         <!-- 新闻列表 -->
         <SimplePageContentLoader :loader="newsLoader">
@@ -66,7 +66,7 @@
     </section>
 
     <!-- 法律法规 -->
-    <section v-if="mainTabActive == 3" class="main-section">
+    <section v-if="mainTabActive == 2" class="main-section">
       <div class="content">
         <div class="title left-right">
           <h2>法律法规</h2>
@@ -131,16 +131,10 @@ const newsLoader = useSimplePagerDataLoader(10, async (page, pageSize) => {
     case 0:
       res = await CommonContent.getContentList(new GetContentListParams()
         .setModelId(17)
-        .setMainBodyColumnId([ ])
-      , page, pageSize);
-      break;
-    case 1:
-      res = await CommonContent.getContentList(new GetContentListParams()
-        .setModelId(17)
         .setMainBodyColumnId([ 255, 256, 283, 284, ])
       , page, pageSize);
       break;
-    case 2:
+    case 1:
       res = await CommonContent.getContentList(new GetContentListParams()
         .setModelId(17)
         .setMainBodyColumnId([ 232 ])

+ 3 - 2
src/views/HomeView.vue

@@ -57,7 +57,7 @@
     <section class="main-section main-background main-background-type1">
       <div class="content">
         <div class="title">
-          <h2>精选文物</h2>
+          <h2>文物古迹</h2>
         </div>
 
         <SimplePageContentLoader :loader="recommend1Data">
@@ -213,6 +213,7 @@ import ProjectContent from '@/api/research/ProjectContent';
 import ActivityContent from '@/api/inheritor/ActivityContent';
 import ProductContent from '@/api/fusion/ProductContent';
 import ProductsContent from '@/api/inheritor/ProductsContent';
+import ProjectsContent from '@/api/inheritor/ProjectsContent';
 
 const router = useRouter();
 
@@ -259,7 +260,7 @@ const recommend1Data = useSimpleDataLoader<GetContentListItem[]>(async () => {
   return (await UnmoveableContent.getContentList(new GetContentListParams(), 1, 8)).list;
 });
 const recommend2Data = useSimpleDataLoader<GetContentListItem[]>(async () => {
-  return (await ProjectContent.getContentList(new GetContentListParams(), 1, 8)).list
+  return (await ProjectsContent.getContentList(new GetContentListParams(), 1, 8)).list
 });
 const recommend3Data = useSimpleDataLoader<GetContentListItem[]>(async () => {
   return (await CommonContent.getContentList(new GetContentListParams()

+ 2 - 2
src/views/InheritorView.vue

@@ -300,7 +300,7 @@ const statsData = useSimpleDataLoader(async () => {
         }
       })
     },
-    {
+    /* {
       title: '不可移动文物',
       type: '3',
       datas: data.crData.map((item: any) => {
@@ -339,7 +339,7 @@ const statsData = useSimpleDataLoader(async () => {
           value: item.total
         }
       })
-    },
+    }, */
   ]
 
 });

+ 37 - 2
src/views/details/IntangibleDetailView.vue

@@ -19,12 +19,45 @@
         </div>
       </div>
     </template>
+    <template #extraTab="{ currentTabIndex, content }">
+      <template v-if="currentTabIndex==3">
+        <!-- 非遗产品(作品) -->
+        <CommonListBlock 
+          :showSearch="false"
+          :load="(page: number, pageSize: number) => loadSubList(page, pageSize, content, 'product')"
+        />
+      </template>
+      <template v-else-if="currentTabIndex==4">
+        <!-- 非遗传习中心 -->
+        <CommonListBlock 
+          :showSearch="false"
+          :load="(page: number, pageSize: number) => loadSubList(page, pageSize, content, 'ichSitesList')"
+        />
+      </template>
+      <template v-else-if="currentTabIndex==5">
+        <!-- 非遗传承人 -->
+        <CommonListBlock 
+          :showSearch="false"
+          :load="(page: number, pageSize: number) => loadSubList(page, pageSize, content, 'inheritorsList')"
+        />
+      </template>
+    </template>
   </TabDetailView>
 </template>
 
 <script setup lang="ts">
 import TabDetailView from './TabDetailView.vue';
 import ProjectsContent from '@/api/inheritor/ProjectsContent';
+import CommonListBlock from '@/components/content/CommonListBlock.vue';
+
+async function loadSubList(page: number, pageSize: number, content: any, subList: string) {
+  const list = content[subList] as any[] || [];
+  return {
+    page: page,
+    total: list.length,
+    data: list.slice((page - 1) * pageSize, page * pageSize)
+  };
+}
 
 async function loadData(id: number) {
   const res = await ProjectsContent.getContentDetail(id);
@@ -32,8 +65,10 @@ async function loadData(id: number) {
     tabs: [
       { text: '非遗基础信息', visible: true },
       { text: '非遗相册', visible: true },
-      { text: '非遗视频', visible: true },
-      { text: '非遗音频', visible: true },
+      { text: '非遗音视频', visible: true },
+      { text: '非遗产品(作品)', visible: true },
+      { text: '非遗传习中心', visible: true },
+      { text: '非遗传承人', visible: true },
     ]
   };
   return res;

+ 2 - 6
src/views/details/TabDetailView.vue

@@ -74,21 +74,17 @@
               controls
               :src="loader.content.value.video" 
             />
-            <a-empty v-else />
-          </div>
-          <!-- 音频 -->
-          <div v-else-if="currentTabIndex==3">
             <video 
               v-if="loader.content.value.audio"
               class="news-video mt-3"
               controls
               :src="loader.content.value.audio" 
             />
-            <a-empty v-else />
+            <a-empty v-if="!loader.content.value.video && !loader.content.value.audio" />
           </div>
           <!-- 其他 -->
           <div v-else>
-            <slot name="extraTab" :index="currentTabIndex" />
+            <slot name="extraTab" :currentTabIndex="currentTabIndex" :content="loader.content.value" />
           </div>
 
           <ContentNode />