|
@@ -1,11 +1,15 @@
|
|
|
<script setup>
|
|
|
import {ref,onMounted} from 'vue'
|
|
|
import {apiChapterDetail,apiChapterTickerValue} from '@/api/report'
|
|
|
+import {apiApplyPermission} from '@/api/user'
|
|
|
+import {apiGetWechatQRCode} from '@/api/common'
|
|
|
+import { ElMessageBox } from 'element-plus'
|
|
|
import moment from 'moment';
|
|
|
import AudioBox from './components/AudioBox.vue'
|
|
|
-import { useRoute } from 'vue-router';
|
|
|
+import { useRoute, useRouter } from 'vue-router';
|
|
|
|
|
|
const route=useRoute()
|
|
|
+const router=useRouter()
|
|
|
|
|
|
let chapterId=ref(route.query.chapterId||'') //章节id
|
|
|
let frompage=ref(route.query.frompage||'')//如果来自报告详情页 则展示底部章节列表
|
|
@@ -85,10 +89,48 @@ const getChapterReportDetail=async ()=>{
|
|
|
if(res.data.auth_ok&&res.data.report_chapter_item.classify_name_first==='晨报'){
|
|
|
getTickerValue()
|
|
|
}
|
|
|
+
|
|
|
+ // 获取详情如果为联系销售根据判断条件是否主动申请一次
|
|
|
+ if(!res.data.auth_ok){
|
|
|
+ if(info.value.permission_check.type=='contact'&&!info.value.permission_check.customer_info.has_apply){
|
|
|
+ if(info.value.permission_check.customer_info.status=='冻结'||(info.value.permission_check.customer_info.status=='试用'&&info.value.permission_check.customer_info.is_suspend==1)){
|
|
|
+ apiApplyPermission({
|
|
|
+ company_name:info.value.permission_check.customer_info.company_name,
|
|
|
+ real_name:info.value.permission_check.customer_info.name,
|
|
|
+ source:4,
|
|
|
+ from_page:'报告详情'
|
|
|
+ }).then(res=>{
|
|
|
+ if(res.code===200){
|
|
|
+ console.log('主动申请成功');
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
getChapterReportDetail()
|
|
|
|
|
|
+//点击底部切换章节
|
|
|
+const handleChangeChapter=(item)=>{
|
|
|
+ chapterId.value=item.report_chapter_id
|
|
|
+ document.body.scrollTop=document.documentElement.scrollTop=0
|
|
|
+ getChapterReportDetail()
|
|
|
+}
|
|
|
+
|
|
|
+// 获取小程序码
|
|
|
+let QRCodeImg=ref('')
|
|
|
+const getQRCodeImg=async ()=>{
|
|
|
+ const res=await apiGetWechatQRCode({
|
|
|
+ CodeScene:JSON.stringify({chapterId:chapterId.value}),
|
|
|
+ CodePage:'pages-report/chapterDetail'
|
|
|
+ })
|
|
|
+ if(res.code===200){
|
|
|
+ QRCodeImg.value=res.data
|
|
|
+ }
|
|
|
+}
|
|
|
+getQRCodeImg()
|
|
|
+
|
|
|
|
|
|
let preViewImgs=ref([])
|
|
|
let preViewImgIndex=ref(0)
|
|
@@ -113,6 +155,49 @@ onMounted(()=>{
|
|
|
})
|
|
|
})
|
|
|
|
|
|
+// 无权限点击申请
|
|
|
+const handleGoApply=async ()=>{
|
|
|
+ if(info.value.permission_check.type=='apply'){
|
|
|
+ if(info.value.permission_check.customer_info.has_apply){// 已经申请过
|
|
|
+ const htmlStr=`<p>您已提交过申请,请耐心等待</p>`
|
|
|
+ ElMessageBox({
|
|
|
+ title:'温馨提醒',
|
|
|
+ message:htmlStr,
|
|
|
+ center: true,
|
|
|
+ dangerouslyUseHTMLString: true,
|
|
|
+ confirmButtonText:'知道了',
|
|
|
+ confirmButtonClass:'self-elmessage-confirm-btn'
|
|
|
+ })
|
|
|
+ }else{
|
|
|
+ if(!info.value.permission_check.customer_info.status||info.value.permission_check.customer_info.status!='流失'){
|
|
|
+ router.push('/apply/permission?source=4&fromPage=报告详情')
|
|
|
+ }else{//主动调一次申请权限接口
|
|
|
+ const res=await apiApplyPermission({
|
|
|
+ company_name:info.value.permission_check.customer_info.company_name,
|
|
|
+ real_name:info.value.permission_check.customer_info.name,
|
|
|
+ source:4,
|
|
|
+ from_page:'报告详情'
|
|
|
+ })
|
|
|
+ if(res.code===200){
|
|
|
+ getChapterReportDetail()
|
|
|
+ const htmlStr=`<p>申请已提交</p><p>请等待销售人员与您联系</p>`
|
|
|
+ ElMessageBox({
|
|
|
+ title:'温馨提醒',
|
|
|
+ message:htmlStr,
|
|
|
+ center: true,
|
|
|
+ dangerouslyUseHTMLString: true,
|
|
|
+ confirmButtonText:'知道了',
|
|
|
+ confirmButtonClass:'self-elmessage-confirm-btn'
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+let showDisclaimers=ref(false)//显示免责声明
|
|
|
+
|
|
|
</script>
|
|
|
|
|
|
<template>
|
|
@@ -127,7 +212,7 @@ onMounted(()=>{
|
|
|
</div>
|
|
|
<div class="tips">
|
|
|
<span>注:请务必阅读</span>
|
|
|
- <span style="color:#F3A52F;margin-left:20px;cursor: pointer;">免责声明</span>
|
|
|
+ <span style="color:#F3A52F;margin-left:20px;cursor: pointer;" @click="showDisclaimers=true">免责声明</span>
|
|
|
</div>
|
|
|
<AudioBox :data="audioData" v-if="info.report_chapter_item.video_url&&info.report_chapter_item.video_play_seconds>0"></AudioBox>
|
|
|
<div class="abstract" v-if="info.report_chapter_item.abstract">摘要:{{info.report_chapter_item.abstract}}</div>
|
|
@@ -164,7 +249,12 @@ onMounted(()=>{
|
|
|
<div class="chapter-list-wrap" v-if="frompage=='reportdetail'">
|
|
|
<div class="top-name">更多</div>
|
|
|
<div class="flex list">
|
|
|
- <div :class="['item',item.report_chapter_id==chapterId&&'active']" v-for="item in info.report_chapter_menu_list" :key="item.report_chapter_id">
|
|
|
+ <div
|
|
|
+ :class="['item',item.report_chapter_id==chapterId&&'active']"
|
|
|
+ v-for="item in info.report_chapter_menu_list"
|
|
|
+ :key="item.report_chapter_id"
|
|
|
+ @click="handleChangeChapter(item)"
|
|
|
+ >
|
|
|
<img :src="item.report_chapter_type_thumb" alt="">
|
|
|
<span>{{item.report_chapter_type_name}}</span>
|
|
|
</div>
|
|
@@ -172,17 +262,17 @@ onMounted(()=>{
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
- <div class="right-aside-box">
|
|
|
+ <div class="right-aside-box" v-if="info.auth_ok">
|
|
|
<div class="fix-top">
|
|
|
<div class="share-box">
|
|
|
<div class="label">分享</div>
|
|
|
<el-popover
|
|
|
- :width="120"
|
|
|
+ :width="200"
|
|
|
popper-style="box-shadow: rgb(14 18 22 / 35%) 0px 10px 38px -10px, rgb(14 18 22 / 20%) 0px 10px 20px -15px; padding: 20px;"
|
|
|
>
|
|
|
<template #reference><div class="icon"></div></template>
|
|
|
<template #default>
|
|
|
- <img src="" class="share-xcx-img" alt="" style="width: 80px;height: 80px;">
|
|
|
+ <img :src="QRCodeImg" class="share-xcx-img" alt="" style="width: 150px;display: block;margin: 0 auto;">
|
|
|
</template>
|
|
|
</el-popover>
|
|
|
</div>
|
|
@@ -217,11 +307,20 @@ onMounted(()=>{
|
|
|
@close="showPreViewImg=false"
|
|
|
:url-list="preViewImgs"
|
|
|
/>
|
|
|
+
|
|
|
+ <!-- 免责申明 -->
|
|
|
+ <el-dialog v-model="showDisclaimers" title="免责声明" center draggable width="40%">
|
|
|
+ <div class="disclaimers-box">
|
|
|
+ <div style="margin-bottom:10px">1、本报告仅供弘则弥道(上海)投资咨询有限公司正式签约的机构客户使用,不会仅因接收人/接受机构收到本报告而将其视为客户。</div>
|
|
|
+ <div style="margin-bottom:10px">2、本报告根据国际和行业通行的准则,以合法渠道获得这些信息,尽可能保证可靠、准确和完整,但并不保证报告所述信息的准确性和完整性,也不保证本报告所包含的信息或建议在本报告发出后不会发生任何变更。本报告中所提供的信息仅供参考。</div>
|
|
|
+ <div style="margin-bottom:10px">3、报告中的内容不对投资者做出的最终操作建议做任何的担保,也没有任何形式的分享投资收益或者分担投资损失的书面或口头承诺。不作为客户在投资、法律、会计或税务等方面的最终操作建议,也不作为道义的、责任的和法律的依据或者凭证,无论是否已经明示或者暗示。</div>
|
|
|
+ <div style="margin-bottom:10px">4、在任何情况下,本公司不对客户/接受人/接受机构因使用报告中内容所引致的一切损失负责任,客户/接受人/接受机构需自行承担全部风险。</div>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
</template>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
.report-chapter-detail-page{
|
|
|
-
|
|
|
.content-box{
|
|
|
flex: 1;
|
|
|
padding-right: 30px;
|
|
@@ -295,6 +394,8 @@ onMounted(()=>{
|
|
|
margin-top: -140px;
|
|
|
padding-top: 140px;
|
|
|
min-height: 200px;
|
|
|
+ position: relative;
|
|
|
+ z-index: 5;
|
|
|
background: linear-gradient(360deg, #FFFFFF 60%, rgba(255, 255, 255, 0) 88%);
|
|
|
.btn{
|
|
|
width: 218px;
|
|
@@ -330,6 +431,8 @@ onMounted(()=>{
|
|
|
height: 36px;
|
|
|
background-color: #F7F7F7;
|
|
|
border-radius: 4px;
|
|
|
+ margin-right: 20px;
|
|
|
+ margin-bottom: 20px;
|
|
|
cursor: pointer;
|
|
|
img{
|
|
|
width: 20px;
|