ldong 6 月之前
父节点
当前提交
323c18294f

+ 4 - 4
package.json

@@ -12,8 +12,8 @@
     "@element-plus/icons-vue": "^2.0.0-beta.0",
     "@fullcalendar/core": "5.11.0",
     "@fullcalendar/daygrid": "5.11.0",
-    "@fullcalendar/timegrid": "5.11.0",
     "@fullcalendar/interaction": "5.11.0",
+    "@fullcalendar/timegrid": "5.11.0",
     "@fullcalendar/vue3": "5.11.0",
     "@vueuse/core": "^9.0.0",
     "axios": "^0.26.0",
@@ -22,7 +22,7 @@
     "moment": "^2.29.1",
     "normalize.css": "^8.0.1",
     "vconsole": "^3.14.6",
-    "vue": "^3.2.25",
+    "vue": "^3.5.2",
     "vue-pdf-embed": "^1.1.6",
     "vue-router": "^4.0.12",
     "vuedraggable": "^4.1.0",
@@ -30,7 +30,7 @@
   },
   "devDependencies": {
     "@vitejs/plugin-vue": "^2.2.0",
-    "vite": "^2.8.0",
-    "sass": "^1.44.0"
+    "sass": "^1.44.0",
+    "vite": "^2.8.0"
   }
 }

+ 7 - 0
src/api/common.js

@@ -182,4 +182,11 @@ export const apiViewLogUpdate=params=>{
 // 获取手机号区号列表
 export const apiTelAraeNumList=()=>{
     return get('/public/tel_area_list',{})
+}
+
+/**
+ * 获取基本配置
+ */
+export const apiBaseConfig=()=>{
+    return get('/base/business_conf',{})
 }

+ 30 - 0
src/components/Disclaimer.vue

@@ -0,0 +1,30 @@
+<script setup>
+import { ref } from 'vue'
+import { apiBaseConfig } from '@/api/common'
+
+const show = defineModel('show', { type: Boolean, default: false })
+
+const disclaimer = ref('')
+function getConfig() {
+  apiBaseConfig().then(res => {
+    if (res.code == 200) {
+      disclaimer.value = res.data.disclaimer
+    }
+  })
+}
+getConfig()
+
+</script>
+
+<template>
+  <el-dialog v-model="show" title="免责声明" center draggable width="40%">
+    <div class="disclaimers-box" v-html="disclaimer"></div>
+  </el-dialog>
+</template>
+
+<style lang="scss" scoped>
+.disclaimers-box {
+  max-height: 60vh;
+  overflow: auto;
+}
+</style>

+ 12 - 2
src/layout/Index.vue

@@ -4,8 +4,17 @@ import Header from './component/Header.vue'
 import Footer from './component/Footer.vue'
 import AudioBox from '@/components/Audio.vue'
 import LoginPop from '@/components/LoginPop.vue'
-
-
+import { useStore } from 'vuex'
+const store=useStore()
+wx.miniProgram.getEnv(res=>{
+    if(res.miniprogram){
+      const urls=localStorage.getItem('goBeforeUrl')
+      if(urls&&store.state.userInfo?.is_bind){
+        localStorage.removeItem('goBeforeUrl')
+        window.location.href=urls
+      }
+    }
+})
 </script>
 
 <template>
@@ -20,6 +29,7 @@ import LoginPop from '@/components/LoginPop.vue'
           <Aside />
         </el-aside>
         <el-main style="padding-left:180px;overflow:visible;"> <!-- 使用粘性布局 需要overflow设置为visible 否则粘性布局会失效 -->
+
           <div class="page-container">
           <router-view v-slot="{ Component }">
               <keep-alive>

+ 22 - 5
src/views/forexCalendar/Index.vue

@@ -167,6 +167,17 @@ async function renderCalendar(){
         baseCalendarRef.value?.calendarApi.addEventSource(es)
     })
 }
+
+//登录
+const handleGoLogin=()=>{
+    wx.miniProgram.getEnv(res=>{
+        if(res.miniprogram){
+            localStorage.setItem('goBeforeUrl',window.location.href)
+            wx.miniProgram.reLaunch({url:'/pages/login'})
+        }
+    })
+}
+
 const handleApply=()=>{
     if(store.state.userInfo.is_bind===0){
         ElMessageBox({
@@ -258,13 +269,19 @@ onMounted(()=>{
     </div>
     <div class="no-auth" v-else>
         <img :src="$store.state.globalImgUrls.activityNoAuth" alt="">
-        <p style="font-size:16px;margin-bottom: 0;">您暂无权限查看事件日历</p>
-        <template v-if="noAuth.type=='contact'">
-            <p style="font-size:16px;margin-top: 5px;margin-bottom: 62px;">若想查看,可以联系对口销售--{{noAuth.name}}:<span style="color:#F3A52F">{{noAuth.mobile}}</span></p>
+        <template v-if="store.state.userInfo?.is_bind==0">
+            <p style="font-size:16px;margin-bottom: 20px;">您尚未登录,请登录后查看更多信息</p>
+            <div class="global-main-btn btn" @click="handleGoLogin" style="margin-bottom: 20px;">立即登录</div>
         </template>
         <template v-else>
-            <p style="font-size:16px;margin-top: 5px;margin-bottom: 62px;">若想参加可以申请开通</p>
-            <div class="global-main-btn btn" @click="handleApply" style="margin-bottom: 20px;">立即申请</div>
+            <p style="font-size:16px;margin-bottom: 0;">您暂无权限查看事件日历</p>
+            <template v-if="noAuth.type=='contact'">
+                <p style="font-size:16px;margin-top: 5px;margin-bottom: 62px;">若想查看,可以联系对口销售--{{noAuth.name}}:<span style="color:#F3A52F">{{noAuth.mobile}}</span></p>
+            </template>
+            <template v-else>
+                <p style="font-size:16px;margin-top: 5px;margin-bottom: 62px;">若想参加可以申请开通</p>
+                <div class="global-main-btn btn" @click="handleApply" style="margin-bottom: 20px;">立即申请</div>
+            </template>
         </template>
     </div>
     <!-- 事项详情弹窗 -->

+ 16 - 1
src/views/question/List.vue

@@ -149,6 +149,15 @@ const toContact = ()=>{
   }
   window.location.href=`tel:${question.noAuthorData.salesMobile}`
 }
+//登录
+const handleGoLogin=()=>{
+    wx.miniProgram.getEnv(res=>{
+        if(res.miniprogram){
+            localStorage.setItem('goBeforeUrl',window.location.href)
+            wx.miniProgram.reLaunch({url:'/pages/login'})
+        }
+    })
+}
 // 去申请
 const toApply = (type='')=>{
     if(store.state.userInfo.is_bind===0){
@@ -342,7 +351,13 @@ onActivated(()=>{
 <template>
   <div class="quesiton-noAuthor" v-if="question.isAuthor == 0 && question.isFinish">
     <img :src="$store.state.globalImgUrls.activityNoAuth" alt="无权限图" class="noAuthor">
-    <div class="noAuthor-box">
+    <div class="noAuthor-box" v-if="store.state.userInfo?.is_bind==0">
+      您尚未登录,请登录后查看更多信息
+      <div class="noAuthor-item">
+        <div class="apply-button" @click="handleGoLogin">立即登录</div>
+      </div>
+    </div>
+    <div class="noAuthor-box" v-else>
       您暂无权限查看问答社区
       <template v-if="question.noAuthorData.type=='contact'">
         <div class="noAuthor-item">

+ 16 - 1
src/views/question/MyList.vue

@@ -133,6 +133,15 @@ const toContact = ()=>{
   }
   window.location.href=`tel:${question.noAuthorData.salesMobile}`
 }
+//登录
+const handleGoLogin=()=>{
+    wx.miniProgram.getEnv(res=>{
+        if(res.miniprogram){
+            localStorage.setItem('goBeforeUrl',window.location.href)
+            wx.miniProgram.reLaunch({url:'/pages/login'})
+        }
+    })
+}
 // 去申请
 const toApply = (type='')=>{
     if(store.state.userInfo.is_bind===0){
@@ -327,7 +336,13 @@ getBarList()
   <!-- 无权限 -->
   <div class="quesiton-noAuthor" v-if="question.isAuthor == 0 && question.isFinish">
     <img :src="$store.state.globalImgUrls.activityNoAuth" alt="无权限图" class="noAuthor">
-    <div class="noAuthor-box">
+    <div class="noAuthor-box" v-if="store.state.userInfo?.is_bind==0">
+      您尚未登录,请登录后查看更多信息
+      <div class="noAuthor-item">
+        <div class="apply-button" @click="handleGoLogin">立即登录</div>
+      </div>
+    </div>
+    <div class="noAuthor-box" v-else>
       您暂无权限查看问答社区
       <template v-if="question.noAuthorData.type=='contact'">
         <div class="noAuthor-item">

+ 31 - 34
src/views/report/ChapterDetail.vue

@@ -26,7 +26,11 @@ import collectSIcon from '@/assets/collect2-s.png'
 import {useWaterMark} from '@/hooks/waterMark.js'
 import {addTokenToIframe} from '@/utils/common.js'
 import ReportContent from './components/ReportContent.vue'
+<<<<<<< HEAD
 import reportCancel from './components/reportCancel.vue'
+=======
+import Disclaimer from '@/components/Disclaimer.vue'
+>>>>>>> yh238
 
 const route=useRoute()
 const router=useRouter()
@@ -222,24 +226,6 @@ const getChapterReportDetail=async ()=>{
 }
 getChapterReportDetail()
 
-const isLogin=()=>{
-    if(store.state.userInfo.is_bind===0){
-        ElMessageBox({
-            title:`温馨提示`,
-            message:'为了优化您的用户体验,<br>请登录后查看更多信息!',
-            dangerouslyUseHTMLString: true,
-            center: true,
-            confirmButtonText:'去登录',
-            confirmButtonClass:'self-elmessage-confirm-btn',
-            showCancelButton:true,
-            cancelButtonText:'取消',
-            cancelButtonClass:'self-elmessage-cancel-btn'
-        }).then(res=>{
-            wx.miniProgram.reLaunch({url:'/pages/login'})
-        }).catch(()=>{})
-    }
-}
-isLogin()
 
 // 侧边栏更多推荐
 let moreRecmdList=ref([])
@@ -338,6 +324,16 @@ onBeforeRouteUpdate((to,from)=>{
     getQRCodeImg()
 })
 
+//登录
+const handleGoLogin=()=>{
+    wx.miniProgram.getEnv(res=>{
+        if(res.miniprogram){
+            localStorage.setItem('goBeforeUrl',window.location.href)
+            wx.miniProgram.reLaunch({url:'/pages/login'})
+        }
+    })
+}
+
 // 无权限点击申请
 const handleGoApply=async ()=>{
     if(store.state.userInfo.is_bind===0){
@@ -548,16 +544,24 @@ const posterParams=computed(()=>{
                     </div>
 
                     <!-- 无权限 -->
-                    <div class="no-auth-wrap" v-if="!info.auth_ok">
-                        <div class="apply-box" v-if="info.permission_check.type=='apply'">
-                            <div>您暂无权限查看报告,若想查看请申请开通</div>
-                            <div class="global-main-btn btn" @click="handleGoApply">立即申请</div>
-                        </div>
-                        <div class="apply-box" v-else>
-                            <div>您暂无权限查看报告 </div>
-                            <div>若想查看请联系对口销售:{{info.permission_check.name}}--{{info.permission_check.mobile}}</div>
+                    <div class="no-auth-wrap"  v-if="store.state.userInfo?.is_bind==0">
+                        <div class="apply-box">
+                            <div>您尚未登录,请登录后查看更多信息</div>
+                            <div class="global-main-btn btn" @click="handleGoLogin">立即登录</div>
                         </div>
                     </div>
+                    <template v-else>
+                        <div class="no-auth-wrap" v-if="!info.auth_ok">
+                            <div class="apply-box" v-if="info.permission_check.type=='apply'">
+                                <div>您暂无权限查看报告,若想查看请申请开通</div>
+                                <div class="global-main-btn btn" @click="handleGoApply">立即申请</div>
+                            </div>
+                            <div class="apply-box" v-else>
+                                <div>您暂无权限查看报告 </div>
+                                <div>若想查看请联系对口销售:{{info.permission_check.name}}--{{info.permission_check.mobile}}</div>
+                            </div>
+                        </div>
+                    </template>
                 </div>
                 <!-- 章节列表 -->
                 <div class="chapter-list-wrap" v-if="frompage=='reportdetail'">
@@ -675,14 +679,7 @@ const posterParams=computed(()=>{
     </div>
 
     <!-- 免责申明 -->
-    <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>
+    <Disclaimer v-model:show="showDisclaimers"/>
 </template>
 
 <style lang="scss" scoped>

+ 61 - 45
src/views/report/Detail.vue

@@ -20,6 +20,11 @@ import {addTokenToIframe} from '@/utils/common.js'
 import ReportContent from './components/ReportContent.vue'
 import { onClickOutside } from '@vueuse/core'
 import reportCancel from './components/reportCancel.vue'
+<<<<<<< HEAD
+=======
+import ReportContent from './components/ReportContent.vue'
+import Disclaimer from '@/components/Disclaimer.vue'
+>>>>>>> yh238
 moment.locale('zh-cn')
 
 const route=useRoute()
@@ -83,8 +88,18 @@ const getReportDetail=async ()=>{
         layoutBaseInfo.value['研报作者']=res.data.report_info.author
         // 已发布已通过的报告才显示发布时间
         layoutBaseInfo.value['创建时间']=moment(res.data.report_info.publish_time).format('YYYY.MM.DD HH:mm')
+        
+        if(!res.data.report_info.has_chapter) {
+            info.value.report_info.content=addTokenToIframe(res.data.report_info.content,res.data.report_info.report_id,0)
+        }
+
+        //章节拼接报告拼接iframe token
+        if(res.data.report_info.has_chapter&&res.data.report_detail_show_type===1) {
+            res.data.report_chapter_list.forEach(chapter => {
+                chapter.content = addTokenToIframe(chapter.content,reportId.value,chapter.report_chapter_id)
+            })
+        }
 
-        info.value.report_info.content=addTokenToIframe(res.data.report_info.content,res.data.report_info.report_id,0)
         audioData.value={
             auth_ok:res.data.auth_ok,
             video_name:res.data.report_info.video_name||`${res.data.report_info.title}(${moment(res.data.report_info.publish_time).format('MMDD')})`,
@@ -170,24 +185,7 @@ const getReportDetail=async ()=>{
 }
 getReportDetail()
 
-const isLogin=()=>{
-    if(store.state.userInfo.is_bind===0){
-        ElMessageBox({
-            title:`温馨提示`,
-            message:'为了优化您的用户体验,<br>请登录后查看更多信息!',
-            dangerouslyUseHTMLString: true,
-            center: true,
-            confirmButtonText:'去登录',
-            confirmButtonClass:'self-elmessage-confirm-btn',
-            showCancelButton:true,
-            cancelButtonText:'取消',
-            cancelButtonClass:'self-elmessage-cancel-btn'
-        }).then(res=>{
-            wx.miniProgram.reLaunch({url:'/pages/login'})
-        }).catch(()=>{})
-    }
-}
-isLogin()
+
 
 // 侧边栏更多推荐
 let moreRecmdList=ref([])
@@ -310,6 +308,16 @@ const goChapterDetail=(item)=>{
     })
 }
 
+//登录
+const handleGoLogin=()=>{
+    wx.miniProgram.getEnv(res=>{
+        if(res.miniprogram){
+            localStorage.setItem('goBeforeUrl',window.location.href)
+            wx.miniProgram.reLaunch({url:'/pages/login'})
+        }
+    })
+}
+
 // 点击申请
 const handleGoApply=async ()=>{
     if(store.state.userInfo.is_bind===0){
@@ -608,17 +616,25 @@ const closeShowAttentionPop=()=>{
                         </div>
                     </div>
                     <!-- 无权限 -->
-                    <div class="no-auth-wrap" v-if="!info.auth_ok">
-                        <img class="img" width="400" src="https://hzstatic.hzinsights.com/static/icon/hzyb/activity_no_auth.png" mode="widthFix" />
-                        <div class="apply-box" v-if="info.permission_check.type=='apply'">
-                            <div>您暂无权限查看报告,若想查看请申请开通</div>
-                            <div class="global-main-btn btn" @click="handleGoApply">立即申请</div>
-                        </div>
-                        <div class="apply-box" v-else>
-                            <div>您暂无权限查看报告 </div>
-                            <div>若想查看请联系对口销售:{{info.permission_check.name}}--{{info.permission_check.mobile}}</div>
+                    <div class="no-auth-wrap"  v-if="store.state.userInfo?.is_bind==0">
+                        <div class="apply-box">
+                            <div>您尚未登录,请登录后查看更多信息</div>
+                            <div class="global-main-btn btn" @click="handleGoLogin">立即登录</div>
                         </div>
                     </div>
+                    <template v-else>
+                        <div class="no-auth-wrap" v-if="!info.auth_ok">
+                            <img class="img" width="400" src="https://hzstatic.hzinsights.com/static/icon/hzyb/activity_no_auth.png" mode="widthFix" />
+                            <div class="apply-box" v-if="info.permission_check.type=='apply'">
+                                <div>您暂无权限查看报告,若想查看请申请开通</div>
+                                <div class="global-main-btn btn" @click="handleGoApply">立即申请</div>
+                            </div>
+                            <div class="apply-box" v-else>
+                                <div>您暂无权限查看报告 </div>
+                                <div>若想查看请联系对口销售:{{info.permission_check.name}}--{{info.permission_check.mobile}}</div>
+                            </div>
+                        </div>
+                    </template>
                 </div>
                 
                 <!-- 报告详情 章节报告拼接形式 -->
@@ -719,17 +735,24 @@ const closeShowAttentionPop=()=>{
                     />
 
                     <!-- 无权限 -->
-                    <div class="no-auth-wrap" v-if="!info.auth_ok">
-                        <div class="apply-box" v-if="info.permission_check.type=='apply'">
-                            <div>您暂无权限查看报告,若想查看请申请开通</div>
-                            <div class="global-main-btn btn" @click="handleGoApply">立即申请</div>
-                        </div>
-                        <div class="apply-box" v-else>
-                            <div>您暂无权限查看报告 </div>
-                            <div>若想查看请联系对口销售:{{info.permission_check.name}}--{{info.permission_check.mobile}}</div>
+                    <div class="no-auth-wrap"  v-if="store.state.userInfo?.is_bind==0">
+                        <div class="apply-box">
+                            <div>您尚未登录,请登录后查看更多信息</div>
+                            <div class="global-main-btn btn" @click="handleGoLogin">立即登录</div>
                         </div>
                     </div>
-
+                    <template v-else>
+                        <div class="no-auth-wrap" v-if="!info.auth_ok">
+                            <div class="apply-box" v-if="info.permission_check.type=='apply'">
+                                <div>您暂无权限查看报告,若想查看请申请开通</div>
+                                <div class="global-main-btn btn" @click="handleGoApply">立即申请</div>
+                            </div>
+                            <div class="apply-box" v-else>
+                                <div>您暂无权限查看报告 </div>
+                                <div>若想查看请联系对口销售:{{info.permission_check.name}}--{{info.permission_check.mobile}}</div>
+                            </div>
+                        </div>
+                    </template>
                     <!-- 右侧悬浮操作栏 -->
                     <div class="right-fix-opt-box">
                         <!-- 收藏 -->
@@ -827,14 +850,7 @@ const closeShowAttentionPop=()=>{
     
 
     <!-- 免责申明 -->
-    <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>
+    <Disclaimer v-model:show="showDisclaimers"/>
 
     <!-- 播放清单设置 -->
     <el-dialog v-model="showAudioPlayListSet" :close-on-click-modal="false" @closed="closeShowAttentionPop" custom-class="audioplaylist-popup" draggable width="40%">

+ 20 - 3
src/views/report/PreviewPDF.vue

@@ -67,6 +67,17 @@ const checkRight = async()=>{
         hasRight.value = false
     }
 }
+
+//登录
+const handleGoLogin=()=>{
+    wx.miniProgram.getEnv(res=>{
+        if(res.miniprogram){
+            localStorage.setItem('goBeforeUrl',window.location.href)
+            wx.miniProgram.reLaunch({url:'/pages/login'})
+        }
+    })
+}
+
 //申请
 const handleApply = ()=>{
     //判断用户是否登录
@@ -112,9 +123,15 @@ onMounted(async ()=>{
         <template v-if="!hasRight">
             <div class="no-data-wrap">
                 <img src="@/assets/pricedriven/nodata.png" alt="">
-                <p>您暂无权限查看报告</p>
-                <p>若想查看请申请开通</p>
-                <span class="global-main-btn btn" @click="handleApply">立即申请</span>
+                <template v-if="store.state.userInfo?.is_bind==0">
+                    <p>您尚未登录,请登录后查看更多信息</p>
+                    <span class="global-main-btn btn" @click="handleGoLogin">立即登录</span>
+                </template>
+                <template v-else>
+                    <p>您暂无权限查看报告</p>
+                    <p>若想查看请申请开通</p>
+                    <span class="global-main-btn btn" @click="handleApply">立即申请</span>
+                </template>
             </div>
         </template>
         <template v-else-if="pdfState.pdf_url.length">

+ 20 - 5
src/views/roadShow/video/List.vue

@@ -138,6 +138,15 @@ const handleAutoApply=()=>{
         }
     }
 }
+//登录
+const handleGoLogin=()=>{
+    wx.miniProgram.getEnv(res=>{
+        if(res.miniprogram){
+            localStorage.setItem('goBeforeUrl',window.location.href)
+            wx.miniProgram.reLaunch({url:'/pages/login'})
+        }
+    })
+}
 const handleApply=()=>{
     if(store.state.userInfo.is_bind===0){
         ElMessageBox({
@@ -326,13 +335,19 @@ onActivated(()=>{
 <template>
     <div class="voice-no-auth" v-if="noAuth">
         <img :src="$store.state.globalImgUrls.activityNoAuth" alt="">
-        <p style="font-size:16px;margin-bottom: 0;">您暂无权限查看线上路演</p>
-        <template v-if="noAuth.type=='contact'">
-            <p style="font-size:16px;margin-top: 5px;margin-bottom: 62px;">若想查看,可以联系对口销售--{{noAuth.name}}:<span style="color:#F3A52F">{{noAuth.mobile}}</span></p>
+        <template v-if="store.state.userInfo?.is_bind==0">
+            <p style="font-size:16px;margin-bottom: 20px;">您尚未登录,请登录后查看更多信息</p>
+            <div class="global-main-btn btn" @click="handleGoLogin" style="margin-bottom: 20px;">立即登录</div>
         </template>
         <template v-else>
-            <p style="font-size:16px;margin-top: 5px;margin-bottom: 62px;">若想参加可以申请开通</p>
-            <div class="global-main-btn btn" @click="handleApply" style="margin-bottom: 20px;">立即申请</div>
+            <p style="font-size:16px;margin-bottom: 0;">您暂无权限查看线上路演</p>
+            <template v-if="noAuth.type=='contact'">
+                <p style="font-size:16px;margin-top: 5px;margin-bottom: 62px;">若想查看,可以联系对口销售--{{noAuth.name}}:<span style="color:#F3A52F">{{noAuth.mobile}}</span></p>
+            </template>
+            <template v-else>
+                <p style="font-size:16px;margin-top: 5px;margin-bottom: 62px;">若想参加可以申请开通</p>
+                <div class="global-main-btn btn" @click="handleApply" style="margin-bottom: 20px;">立即申请</div>
+            </template>
         </template>
     </div>
     <div class="video-list-page" v-else>

+ 106 - 89
src/views/sandBox/List.vue

@@ -209,6 +209,16 @@ const callToSales=()=>{
     window.location.href=`tel:${sandBox.salesData.phone}`
 }
 
+//登录
+const handleGoLogin=()=>{
+    wx.miniProgram.getEnv(res=>{
+        if(res.miniprogram){
+            localStorage.setItem('goBeforeUrl',window.location.href)
+            wx.miniProgram.reLaunch({url:'/pages/login'})
+        }
+    })
+}
+
 //申请权限
 const toApply = (type='')=>{
     if(store.state.userInfo.is_bind===0){
@@ -408,102 +418,109 @@ onActivated(()=>{
 </script>
 
 <template>
-    <template v-if="sandBox.noAuthor ==1 && sandBox.isRequestFinished">
-        <div class="sandbox-noAuthor">
-            <img :src="$store.state.globalImgUrls.activityNoAuth" />
-            <span style="margin-top: 34px;">您在暂无权限查看沙盘推演</span>
-            <span style="margin-top: 10px;">若想查看可以申请开通</span>
-            <div class="apply-button" @click="toApply">立即申请</div>
-            <!-- <template v-else>
+    <div class="sandbox-noAuthor" v-if="store.state.userInfo?.is_bind==0">
+        <img :src="$store.state.globalImgUrls.activityNoAuth" />
+        <span style="margin-top: 34px;">您尚未登录,请登录后查看更多信息</span>
+        <div class="apply-button" @click="handleGoLogin">立即登录</div>
+    </div>
+    <template v-else>
+        <template v-if="sandBox.noAuthor ==1 && sandBox.isRequestFinished">
+            <div class="sandbox-noAuthor">
                 <img :src="$store.state.globalImgUrls.activityNoAuth" />
-                <span style="margin-top: 34px;">您已提交过申请</span>
-                <span style="margin-top: 10px;">请等待销售人员与您联系</span>
-                <div class="apply-button" @click="$router.back()">返回</div>
-            </template> -->
-        </div>
-    </template>
-    <template v-if="sandBox.noAuthor ==2 && sandBox.isRequestFinished">
-        <view class="sandbox-noAuthor">
-            <img :src="$store.state.globalImgUrls.activityNoAuth" />
-            <span style="margin-top: 34px;">您在暂无权限查看沙盘推演</span>
-            <span style="margin: 10px 0 4px 0;">若想查看请联系对口销售</span>
-            <div>
-                <span>{{sandBox.salesData.name}}:</span>
-                <span class="sales-mobile" @click="callToSales">{{sandBox.salesData.phone}}</span>
+                <span style="margin-top: 34px;">您在暂无权限查看沙盘推演</span>
+                <span style="margin-top: 10px;">若想查看可以申请开通</span>
+                <div class="apply-button" @click="toApply">立即申请</div>
+                <!-- <template v-else>
+                    <img :src="$store.state.globalImgUrls.activityNoAuth" />
+                    <span style="margin-top: 34px;">您已提交过申请</span>
+                    <span style="margin-top: 10px;">请等待销售人员与您联系</span>
+                    <div class="apply-button" @click="$router.back()">返回</div>
+                </template> -->
             </div>
-        </view>
-    </template>
-    <!-- 部分有权限 分享进来没有权限 -->
-    <template v-if="sandBox.noAuthor ==4 && sandBox.isRequestFinished" >
-        <!-- 显示空白 一秒钟后跳转至有权限的沙盘图-->
-    </template>
-    <div class="sandBox-contain" v-if="sandBox.noAuthor ==0 && sandBox.isRequestFinished">
-        <div class="classify-box">
-            <div class="firstClassify-box">
-                <div :class="['firstClassfy-item',item.id==sandBox.selectedFirstId?'firstClassfy-actice':'']" 
-                v-for="item in sandBox.classifyList" :key="item.id" @click="selectFirstClassify(item)">
-                    <span>{{item.classify_name}}</span>
+        </template>
+        <template v-if="sandBox.noAuthor ==2 && sandBox.isRequestFinished">
+            <view class="sandbox-noAuthor">
+                <img :src="$store.state.globalImgUrls.activityNoAuth" />
+                <span style="margin-top: 34px;">您暂无权限查看沙盘推演</span>
+                <span style="margin: 10px 0 4px 0;">若想查看请联系对口销售</span>
+                <div>
+                    <span>{{sandBox.salesData.name}}:</span>
+                    <span class="sales-mobile" @click="callToSales">{{sandBox.salesData.phone}}</span>
+                </div>
+            </view>
+        </template>
+        <!-- 部分有权限 分享进来没有权限 -->
+        <template v-if="sandBox.noAuthor ==4 && sandBox.isRequestFinished" >
+            <!-- 显示空白 一秒钟后跳转至有权限的沙盘图-->
+        </template>
+        <div class="sandBox-contain" v-if="sandBox.noAuthor ==0 && sandBox.isRequestFinished">
+            <div class="classify-box">
+                <div class="firstClassify-box">
+                    <div :class="['firstClassfy-item',item.id==sandBox.selectedFirstId?'firstClassfy-actice':'']" 
+                    v-for="item in sandBox.classifyList" :key="item.id" @click="selectFirstClassify(item)">
+                        <span>{{item.classify_name}}</span>
+                    </div>
+                </div>
+                <div class="sec-nav-box" v-show="sandBox.secondClassifyList.length>0">
+                    <span
+                        :class="['sec-item',item.chart_permission_id==sandBox.selectedSecondId?'active':'']"
+                        v-for="item in sandBox.secondClassifyList"
+                        :key="item.chart_permission_id"
+                        @click="selectSecondClassify(item)"
+                    >{{item.chart_permission_name}}</span>
+                    <!-- <el-popover
+                        :width="500"
+                        trigger="click"
+                    >
+                        <template #reference>
+                            <img v-if="sandBox.secondClassifyList.length>6" style="width:16px;transform: rotate(90deg);cursor: pointer" src="@/assets/icon-more.png" alt="">
+                        </template>
+                        <template #default>
+                            <div class="flex top-nav-filter-box">
+                                <div 
+                                    :class="['item',item.chart_permission_id == sandBox.selectedSecondId&&'active']" 
+                                    v-for="item in sandBox.secondClassifyList.slice(6)" 
+                                    :key="item.chart_permission_id"
+                                    @click="selectSecondClassify(item)"
+                                >{{item.chart_permission_name}}</div>
+                            </div>
+                        </template>
+                    </el-popover> -->
                 </div>
             </div>
-            <div class="sec-nav-box" v-show="sandBox.secondClassifyList.length>0">
-                <span
-                    :class="['sec-item',item.chart_permission_id==sandBox.selectedSecondId?'active':'']"
-                    v-for="item in sandBox.secondClassifyList"
-                    :key="item.chart_permission_id"
-                    @click="selectSecondClassify(item)"
-                >{{item.chart_permission_name}}</span>
-                <!-- <el-popover
-                    :width="500"
-                    trigger="click"
-                >
-                    <template #reference>
-                        <img v-if="sandBox.secondClassifyList.length>6" style="width:16px;transform: rotate(90deg);cursor: pointer" src="@/assets/icon-more.png" alt="">
-                    </template>
-                    <template #default>
-                        <div class="flex top-nav-filter-box">
-                            <div 
-                                :class="['item',item.chart_permission_id == sandBox.selectedSecondId&&'active']" 
-                                v-for="item in sandBox.secondClassifyList.slice(6)" 
-                                :key="item.chart_permission_id"
-                                @click="selectSecondClassify(item)"
-                            >{{item.chart_permission_name}}</div>
+            <SelfList
+            :finished="sandBox.isTotalData" 
+            :isEmpty="sandBox.list.length===0&&sandBox.isTotalData"
+            :loading="sandBox.isLoading"
+            :count="sandBox.list.length"
+            @listOnload="onLoad">
+                <div class="sandBox-content">
+                    <div class="sandBox-item" v-for="(item,index) in sandBox.list" :key="item.sandbox_id">
+                        <div class="sandBox-item-header">
+                            <span>{{item.name}}</span>
+                            <el-popover
+                            :width="200"
+                            :height="200"
+                            trigger="hover"
+                            @show="showMiniShare(item)"
+                            popper-class="miniprogram-code">
+                            <!-- popper-style="" -->
+                                <template #reference>
+                                    <div class="sandBox-item-miniP"></div>
+                                </template>
+                                <div class="miniprogram-code">
+                                    <img :src="item.miniCodeImg" alt="小程序码" v-show="item.miniCodeImg" />
+                                </div>
+                            </el-popover>
+                        </div>
+                        <div class="sandBox-image">
+                            <img :src="item.pic_url" :alt="item.name" @click="previewImage(index)"/>
                         </div>
-                    </template>
-                </el-popover> -->
-            </div>
-        </div>
-        <SelfList
-        :finished="sandBox.isTotalData" 
-        :isEmpty="sandBox.list.length===0&&sandBox.isTotalData"
-        :loading="sandBox.isLoading"
-        :count="sandBox.list.length"
-        @listOnload="onLoad">
-            <div class="sandBox-content">
-                <div class="sandBox-item" v-for="(item,index) in sandBox.list" :key="item.sandbox_id">
-                    <div class="sandBox-item-header">
-                        <span>{{item.name}}</span>
-                        <el-popover
-                        :width="200"
-                        :height="200"
-                        trigger="hover"
-                        @show="showMiniShare(item)"
-                        popper-class="miniprogram-code">
-                        <!-- popper-style="" -->
-                            <template #reference>
-                                <div class="sandBox-item-miniP"></div>
-                            </template>
-                            <div class="miniprogram-code">
-                                <img :src="item.miniCodeImg" alt="小程序码" v-show="item.miniCodeImg" />
-                            </div>
-                        </el-popover>
-                    </div>
-                    <div class="sandBox-image">
-                        <img :src="item.pic_url" :alt="item.name" @click="previewImage(index)"/>
                     </div>
                 </div>
-            </div>
-        </SelfList>
-    </div>
+            </SelfList>
+        </div>
+    </template>
     
     <!-- 图片预览 -->
     <el-image-viewer

+ 20 - 5
src/views/video/List.vue

@@ -137,6 +137,15 @@ const handleAutoApply=()=>{
         }
     }
 }
+//登录
+const handleGoLogin=()=>{
+    wx.miniProgram.getEnv(res=>{
+        if(res.miniprogram){
+            localStorage.setItem('goBeforeUrl',window.location.href)
+            wx.miniProgram.reLaunch({url:'/pages/login'})
+        }
+    })
+}
 const handleApply=()=>{
     if(store.state.userInfo.is_bind===0){
         ElMessageBox({
@@ -303,13 +312,19 @@ onActivated(()=>{
 <template>
     <div class="voice-no-auth" v-if="noAuth">
         <img :src="$store.state.globalImgUrls.activityNoAuth" alt="">
-        <p style="font-size:16px;margin-bottom: 0;">您暂无权限查看视频社区</p>
-        <template v-if="noAuth.type=='contact'">
-            <p style="font-size:16px;margin-top: 5px;margin-bottom: 62px;">若想查看,可以联系对口销售--{{noAuth.name}}:<span style="color:#F3A52F">{{noAuth.mobile}}</span></p>
+        <template v-if="store.state.userInfo?.is_bind==0">
+            <p style="font-size:16px;margin-bottom: 20px;">您尚未登录,请登录后查看更多信息</p>
+            <div class="global-main-btn btn" @click="handleGoLogin" style="margin-bottom: 20px;">立即登录</div>
         </template>
         <template v-else>
-            <p style="font-size:16px;margin-top: 5px;margin-bottom: 62px;">若想参加可以申请开通</p>
-            <div class="global-main-btn btn" @click="handleApply" style="margin-bottom: 20px;">立即申请</div>
+            <p style="font-size:16px;margin-bottom: 0;">您暂无权限查看视频社区</p>
+            <template v-if="noAuth.type=='contact'">
+                <p style="font-size:16px;margin-top: 5px;margin-bottom: 62px;">若想查看,可以联系对口销售--{{noAuth.name}}:<span style="color:#F3A52F">{{noAuth.mobile}}</span></p>
+            </template>
+            <template v-else>
+                <p style="font-size:16px;margin-top: 5px;margin-bottom: 62px;">若想参加可以申请开通</p>
+                <div class="global-main-btn btn" @click="handleApply" style="margin-bottom: 20px;">立即申请</div>
+            </template>
         </template>
     </div>
     <div class="video-list-page" v-else>

+ 20 - 5
src/views/voice/Detail.vue

@@ -82,6 +82,15 @@ const handleAutoApply=()=>{
         }
     }
 }
+//登录
+const handleGoLogin=()=>{
+    wx.miniProgram.getEnv(res=>{
+        if(res.miniprogram){
+            localStorage.setItem('goBeforeUrl',window.location.href)
+            wx.miniProgram.reLaunch({url:'/pages/login'})
+        }
+    })
+}
 const handleApply=()=>{
     if(store.state.userInfo.is_bind===0){
         ElMessageBox({
@@ -239,13 +248,19 @@ const handleVoiceRecord=async (item)=>{
 <template>
     <div class="voice-no-auth" v-if="noAuth">
         <img :src="$store.state.globalImgUrls.activityNoAuth" alt="">
-        <p style="font-size:16px;margin-bottom: 0;">您暂无权限查看语音播报</p>
-        <template v-if="noAuth.type=='contact'">
-            <p style="font-size:16px;margin-top: 5px;margin-bottom: 62px;">若想查看,可以联系对口销售--{{noAuth.name}}:<span style="color:#F3A52F">{{noAuth.mobile}}</span></p>
+        <template v-if="store.state.userInfo?.is_bind==0">
+            <p style="font-size:16px;margin-bottom: 20px;">您尚未登录,请登录后查看更多信息</p>
+            <div class="global-main-btn btn" @click="handleGoLogin" style="margin-bottom: 20px;">立即登录</div>
         </template>
         <template v-else>
-            <p style="font-size:16px;margin-top: 5px;margin-bottom: 62px;">若想参加可以申请开通</p>
-            <div class="global-main-btn btn" @click="handleApply" style="margin-bottom: 20px;">立即申请</div>
+            <p style="font-size:16px;margin-bottom: 0;">您暂无权限查看语音播报</p>
+            <template v-if="noAuth.type=='contact'">
+                <p style="font-size:16px;margin-top: 5px;margin-bottom: 62px;">若想查看,可以联系对口销售--{{noAuth.name}}:<span style="color:#F3A52F">{{noAuth.mobile}}</span></p>
+            </template>
+            <template v-else>
+                <p style="font-size:16px;margin-top: 5px;margin-bottom: 62px;">若想参加可以申请开通</p>
+                <div class="global-main-btn btn" @click="handleApply" style="margin-bottom: 20px;">立即申请</div>
+            </template>
         </template>
     </div>
     <div class="voice-detail-page" v-if="!noAuth&&info">

+ 20 - 5
src/views/voice/List.vue

@@ -112,6 +112,15 @@ const handleAutoApply=()=>{
         }
     }
 }
+//登录
+const handleGoLogin=()=>{
+    wx.miniProgram.getEnv(res=>{
+        if(res.miniprogram){
+            localStorage.setItem('goBeforeUrl',window.location.href)
+            wx.miniProgram.reLaunch({url:'/pages/login'})
+        }
+    })
+}
 const handleApply=()=>{
     if(store.state.userInfo.is_bind===0){
         ElMessageBox({
@@ -316,13 +325,19 @@ onActivated(()=>{
 <template>
     <div class="voice-no-auth" v-if="noAuth">
         <img :src="$store.state.globalImgUrls.activityNoAuth" alt="">
-        <p style="font-size:16px;margin-bottom: 0;">您暂无权限查看语音播报</p>
-        <template v-if="noAuth.type=='contact'">
-            <p style="font-size:16px;margin-top: 5px;margin-bottom: 62px;">若想查看,可以联系对口销售--{{noAuth.name}}:<span style="color:#F3A52F">{{noAuth.mobile}}</span></p>
+        <template v-if="store.state.userInfo?.is_bind==0">
+            <p style="font-size:16px;margin-bottom: 20px;">您尚未登录,请登录后查看更多信息</p>
+            <div class="global-main-btn btn" @click="handleGoLogin" style="margin-bottom: 20px;">立即登录</div>
         </template>
         <template v-else>
-            <p style="font-size:16px;margin-top: 5px;margin-bottom: 62px;">若想参加可以申请开通</p>
-            <div class="global-main-btn btn" @click="handleApply" style="margin-bottom: 20px;">立即申请</div>
+            <p style="font-size:16px;margin-bottom: 0;">您暂无权限查看语音播报</p>
+            <template v-if="noAuth.type=='contact'">
+                <p style="font-size:16px;margin-top: 5px;margin-bottom: 62px;">若想查看,可以联系对口销售--{{noAuth.name}}:<span style="color:#F3A52F">{{noAuth.mobile}}</span></p>
+            </template>
+            <template v-else>
+                <p style="font-size:16px;margin-top: 5px;margin-bottom: 62px;">若想参加可以申请开通</p>
+                <div class="global-main-btn btn" @click="handleApply" style="margin-bottom: 20px;">立即申请</div>
+            </template>
         </template>
     </div>
     <div class="voice-list-page" v-else>