浏览代码

报告详情更多推荐

jwyu 2 年之前
父节点
当前提交
4c9f6d1a78
共有 4 个文件被更改,包括 79 次插入31 次删除
  1. 7 0
      src/api/report.js
  2. 53 24
      src/views/report/ChapterDetail.vue
  3. 9 6
      src/views/report/Detail.vue
  4. 10 1
      src/views/report/Index.vue

+ 7 - 0
src/api/report.js

@@ -127,4 +127,11 @@ export const apiLatestNews=params=>{
  */
 export const apiReportMoreRecmd=params=>{
     return get('/pc/recommend',params)
+}
+
+/**
+ * 报告详情中(报告合集\专栏详情)
+ */
+export const apiReportDetailBanner=params=>{
+    return get('/pc/detail_banner',params)
 }

+ 53 - 24
src/views/report/ChapterDetail.vue

@@ -1,6 +1,11 @@
 <script setup>
 import {ref,onMounted} from 'vue'
-import {apiChapterDetail,apiChapterTickerValue,apiReportMoreRecmd} from '@/api/report'
+import {
+    apiChapterDetail,
+    apiChapterTickerValue,
+    apiReportMoreRecmd,
+    apiReportDetailBanner
+} from '@/api/report'
 import {apiApplyPermission} from '@/api/user'
 import {apiGetWechatQRCode} from '@/api/common'
 import { ElMessageBox } from 'element-plus'
@@ -68,15 +73,6 @@ const getTickerValue=async ()=>{
     }
 }
 
-// 侧边栏更多推荐
-let moreRecmdList=ref([])
-const getAsideMoreRecmd=async (reportId)=>{
-    const res=await apiReportMoreRecmd({reportId:Number(reportId)})
-    if(res.code===200){
-        moreRecmdList.value=res.data 
-    }
-}
-
 // 获取章节报告详情
 let info=ref(null)
 let audioData=ref(null)
@@ -119,7 +115,8 @@ const getChapterReportDetail=async ()=>{
 
         // 获取侧边更多推荐
         if(res.data.auth_ok){
-            getAsideMoreRecmd(res.data.report_chapter_item.report_id)
+            getAsideMoreRecmd(res.data.report_chapter_item)
+            getAsideBanner(res.data.report_chapter_item)
         }
 
         //向小程序发送分享数据
@@ -136,6 +133,42 @@ const getChapterReportDetail=async ()=>{
 }
 getChapterReportDetail()
 
+// 侧边栏更多推荐
+let moreRecmdList=ref([])
+const getAsideMoreRecmd=async (data)=>{
+    const res=await apiReportMoreRecmd({
+        reportId:Number(data.report_id),
+        classify_name_first:data.classify_name_first
+    })
+    if(res.code===200){
+        moreRecmdList.value=res.data 
+    }
+}
+
+// 点击侧边栏更多推荐
+const handleClickAsideRecmd=item=>{
+    router.replace({
+        query:{
+            chapterId:item.ReportChapterID
+        }
+    })
+    chapterId.value=item.ReportChapterID
+    getChapterReportDetail()
+    getQRCodeImg()
+}
+
+//侧边栏报告合集
+let banner=ref(null)
+const getAsideBanner=async (data)=>{
+    const res=await apiReportDetailBanner({
+        reportId:Number(data.report_id),
+        classify_name_first:data.classify_name_first
+    })
+    if(res.code===200){
+        banner.value=res.data
+    }
+}
+
 //点击底部切换章节
 const handleChangeChapter=(item)=>{
     chapterId.value=item.report_chapter_id
@@ -223,7 +256,6 @@ const handleGoApply=async ()=>{
 
 let showDisclaimers=ref(false)//显示免责声明
 
-
 </script>
 
 <template>
@@ -303,22 +335,19 @@ let showDisclaimers=ref(false)//显示免责声明
                     </el-popover>
                 </div>
                 <div class="hot-box" style="margin-top: 60px;">
-                    <div class="label">热门栏目</div>
+                    <div class="label">报告合集</div>
                     <div class="img-con"></div>
                 </div>
                 <div class="recmd-box" style="margin-top: 60px;">
                     <div class="label">更多推荐</div>
-                    <div class="recmd-item">
-                        <div class="title">股债日评</div>
-                        <div>178 | 关注中美领导交流</div>
-                    </div>
-                    <div class="recmd-item">
-                        <div class="title">股债日评</div>
-                        <div>178 | 关注中美领导交流</div>
-                    </div>
-                    <div class="recmd-item">
-                        <div class="title">股债日评</div>
-                        <div>178 | 关注中美领导交流</div>
+                    <div 
+                        class="recmd-item" 
+                        v-for="item in moreRecmdList" 
+                        :key="item.ReportChapterID"
+                        @click="handleClickAsideRecmd(item)"
+                    >
+                        <div class="title">{{item.ClassifyNameFirst}}</div>
+                        <div>{{item.Stage}} | {{item.Title}}</div>
                     </div>
                 </div>
                 </div>

+ 9 - 6
src/views/report/Detail.vue

@@ -20,11 +20,11 @@ let reportId=ref(route.query.reportId||'')
 const handleClickAsideRecmd=(item)=>{
     router.replace({
         query:{
-            reportId:item.Id
+            reportId:item.ReportId
         }
     })
     // 更新页面数据
-    reportId.value=item.Id
+    reportId.value=item.ReportId
     getReportDetail()
     getQRCodeImg()
 }
@@ -71,7 +71,7 @@ const getReportDetail=async ()=>{
 
         // 获取侧边更多推荐
         if(res.data.auth_ok){
-            getAsideMoreRecmd(res.data.report_info.report_id)
+            getAsideMoreRecmd(res.data.report_info)
         }
 
         //向小程序发送分享数据
@@ -91,8 +91,11 @@ getReportDetail()
 
 // 侧边栏更多推荐
 let moreRecmdList=ref([])
-const getAsideMoreRecmd=async (reportId)=>{
-    const res=await apiReportMoreRecmd({reportId:Number(reportId)})
+const getAsideMoreRecmd=async (data)=>{
+    const res=await apiReportMoreRecmd({
+        reportId:Number(data.report_id),
+        classify_name_first:data.classify_name_first
+    })
     if(res.code===200){
         moreRecmdList.value=res.data 
     }
@@ -303,7 +306,7 @@ let showDisclaimers=ref(false)//显示免责声明
                         :key="item.Id"
                         @click="handleClickAsideRecmd(item)"
                     >
-                        <div class="title">{{item.ClassifyNameSecond}}</div>
+                        <div class="title">{{item.ClassifySecondFirst}}</div>
                         <div>{{item.Stage}} | {{item.Title}}</div>
                     </div>
                 </div>

+ 10 - 1
src/views/report/Index.vue

@@ -35,6 +35,15 @@ const getLatestNews=async ()=>{
     latestNewsList.value=res.data||[]
   }
 }
+//点击最新资讯跳转报告详情
+const handleClickNews=item=>{
+  router.push({
+    path:'/report/detail',
+    query:{
+      reportId:item.ReportId
+    }
+  })
+}
 
 // 获取顶部权限分类数据
 let authData=reactive({
@@ -305,7 +314,7 @@ onActivated(()=>{
             class="recmd-item" 
             v-for="item in latestNewsList" 
             :key="item.report_id"
-            @click="handleGoReportDetail(item)"
+            @click="handleClickNews(item)"
           >
             <div class="title">{{item.classify_name_second}}</div>
             <div>{{item.stage}} | {{item.title}}</div>