bding пре 1 година
родитељ
комит
4e4fc6c131

+ 14 - 1
src/api/report.js

@@ -267,4 +267,17 @@ export const apiReportChapterAudioSet=params=>{
  */
  export const apiGetPDFDetail = params=>{
     return get('/report/pdf/detail',params)
-}
+}
+
+
+/**
+ * banner埋点
+ * @param  "banner_url": "wwwwwwww",
+ * @param   "first_source": 1, //一级来源 1小程序移动 2小程序pc 3研报官网
+ * @param   "second_source": 1 //二级来源 1首页 2研报详情页
+ * @returns 
+ */
+export const apiPublicBannerMark = params=>{
+    return post('/public/banner/mark',params)
+}
+

+ 14 - 0
src/router/index.js

@@ -193,6 +193,17 @@ const routes=[
           isRoot:false,
           hasBack:true
         },
+      },
+      {
+        path: "disseminatePage",
+        name: "disseminatePage",
+        component: () => import("@/views/report/disseminatePage.vue"),
+        meta: {
+          title: "",
+          keepAlive:true,
+          isRoot:false,
+          hasBack:true
+        },
       }
     ]
   },
@@ -535,6 +546,9 @@ router.beforeEach((to, from, next) => {
 		store.commit('getToken', to.query.token)
     store.dispatch('getUserInfo')
 	}
+  if (to.query.platform_source) { // 来源是否是小程序
+		sessionStorage.setItem('platformSource', to.query.platform_source)
+	}
   if(to.meta.isRoot){
     store.commit('setBreadCrumb', to)
   }else{

+ 23 - 1
src/views/report/ChapterDetail.vue

@@ -6,7 +6,8 @@ import {
     apiReportMoreRecmd,
     apiReportDetailBanner,
     apiRddpShareImg,
-    apiReportPPtImgs
+    apiReportPPtImgs,
+    apiPublicBannerMark
 } from '@/api/report'
 import {apiApplyPermission} from '@/api/user'
 import {apiGetWechatQRCode} from '@/api/common'
@@ -365,6 +366,22 @@ const handleGoApply=async ()=>{
 
 let showDisclaimers=ref(false)//显示免责声明
 
+/* 点击了banner */
+const bannerClickHandler = async () => {
+  let source = sessionStorage.getItem('platformSource')
+  const res = await apiPublicBannerMark({
+    banner_url: "https://hzchart.oss-cn-shanghai.aliyuncs.com/yb_xcx/pc_01.png",
+    first_source: source == 'xcx' ? 2 : 3, //一级来源 1小程序移动 2小程序pc 3研报官网
+    second_source: 2 //二级来源 1首页 2研报详情页
+  })
+  if(res.code ==200){
+    router.push({
+      path:'/report/disseminatePage',
+    })
+  }
+  // 详情页面
+}
+
 
 const code_scene=computed(()=>{
     return JSON.stringify({chapterId:chapterId.value})
@@ -384,6 +401,11 @@ const posterParams=computed(()=>{
     <div class="report-chapter-detail-page" v-if="info">
         <div class="hasrightaside-box">
             <div class="content-box">
+                <el-carousel height="66px" style="margin-bottom:20px;" indicator-position="none">
+                    <el-carousel-item @click="bannerClickHandler">
+                        <img style="width:100%;height:66px;cursor:pointer;" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/yb_xcx/banner.png" alt="">
+                    </el-carousel-item>
+                </el-carousel>
                 <div class="report-box">
                     <div class="title">【第{{info.report_chapter_item.stage}}期 | {{info.report_chapter_item.classify_name_first}}  | {{info.report_chapter_item.type_name}}】{{info.report_chapter_item.title}}({{moment(info.report_chapter_item.publish_time).format('MMDD')}})</div>
                     <div class="time">

+ 24 - 1
src/views/report/Detail.vue

@@ -6,7 +6,7 @@ import 'moment/dist/locale/zh-cn'
 import AudioBox from './components/AudioBox.vue'
 import SharePoster from '@/components/SharePoster.vue'
 import Comment from '@/components/Comment.vue'
-import {apiReportDetail,apiReportMoreRecmd,apiReportDetailBanner,apiRddpShareImg,apiReportPPtImgs,apiReportChapterAudioSet} from '@/api/report'
+import {apiReportDetail,apiReportMoreRecmd,apiReportDetailBanner,apiRddpShareImg,apiReportPPtImgs,apiReportChapterAudioSet,apiPublicBannerMark} from '@/api/report'
 import {apiGetWechatQRCode} from '@/api/common'
 import {apiApplyPermission} from '@/api/user'
 import preLoadImg from '@/utils/preLoadImg.js'
@@ -423,6 +423,24 @@ const handleAudioSet=(item)=>{
         }
     })
 }
+
+/* 点击了banner */
+const bannerClickHandler = async () => {
+  let source = sessionStorage.getItem('platformSource')
+  const res = await apiPublicBannerMark({
+    banner_url: "https://hzchart.oss-cn-shanghai.aliyuncs.com/yb_xcx/pc_01.png",
+    first_source: source == 'xcx' ? 2 : 3, //一级来源 1小程序移动 2小程序pc 3研报官网
+    second_source: 2 //二级来源 1首页 2研报详情页
+  })
+  if(res.code ==200){
+    router.push({
+      path:'/report/disseminatePage',
+    })
+  }
+  // 详情页面
+}
+
+
 // 显示引导
 let showAttention=ref(localStorage.getItem('showAttention')?false:true)
 const audioPlayListPop=ref(null)
@@ -533,6 +551,11 @@ const closeShowAttentionPop=()=>{
                 </div>
                 <!-- 报告详情 -->
                 <div class="report-box" v-else>
+                    <el-carousel height="66px" style="margin-bottom:20px;" indicator-position="none">
+                        <el-carousel-item @click="bannerClickHandler">
+                            <img style="width:100%;height:66px;cursor:pointer;" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/yb_xcx/banner.png" alt="">
+                        </el-carousel-item>
+                    </el-carousel>
                     <div class="title">{{formatTitle(info.report_info)}}</div>
                     <div class="time">
                         <span>FICC团队</span>

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

@@ -3,7 +3,8 @@ import {
   apiReportIndexPageAuthList, 
   apiReportIndexPageList,
   apiReportIndexNewbanner,
-  apiLatestNews 
+  apiLatestNews,
+  apiPublicBannerMark
 } from '@/api/report'
 import { onActivated, onMounted,onUnmounted, reactive, ref,nextTick} from "vue"
 import Search from "@/components/Search.vue"
@@ -245,6 +246,22 @@ const resetHeaderWidthHandle = () => {
   headerHight.value = headerRef.value.offsetHeight-10+'px'
 }
 
+/* 点击了banner */
+const bannerClickHandler = async () => {
+  let source = sessionStorage.getItem('platformSource')
+  const res = await apiPublicBannerMark({
+    banner_url: "https://hzchart.oss-cn-shanghai.aliyuncs.com/yb_xcx/pc_01.png",
+    first_source: source == 'xcx' ? 2 : 3, //一级来源 1小程序移动 2小程序pc 3研报官网
+    second_source: 1 //二级来源 1首页 2研报详情页
+  })
+  if(res.code ==200){
+    router.push({
+      path:'/report/disseminatePage',
+    })
+  }
+  // 首页
+}
+
 let isMounted = ref(false);
 onMounted(() => {
   isMounted.value = true;
@@ -288,6 +305,11 @@ onActivated(()=>{
   <div class="hasrightaside-box report-index-page">
     <div class="content-box report-main" ref="contentRef">
       <div class="top-nav-wrap" ref="headerRef" :style="{'width':contentWidth}">
+        <el-carousel height="66px" style="margin-bottom:20px;padding-right: 30px" indicator-position="none">
+          <el-carousel-item @click="bannerClickHandler" >
+            <img style="width:100%;height:66px;cursor:pointer;" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/yb_xcx/pc_01.png" alt="">
+          </el-carousel-item>
+        </el-carousel>
         <div class="flex first-nav">
           <!-- <div class="nav-move-box move-left"></div>
           <div class="nav-move-box move-right"></div> -->

+ 18 - 0
src/views/report/disseminatePage.vue

@@ -0,0 +1,18 @@
+<script setup></script>
+
+<template>
+  <div class="container-disseminate">
+    <img src="https://hzchart.oss-cn-shanghai.aliyuncs.com/yb_xcx/hb.jpg" alt="" />
+  </div>
+</template>
+
+<style lang="scss" scoped>
+.container-disseminate {
+  width: 100%;
+  height: 100vh;
+  img {
+    width: 100%;
+    height: 100%;
+  }
+}
+</style>