Browse Source

Merge branch 'main' into feature/v1.0.61

yuelujie 11 months ago
parent
commit
69ef32dd60

+ 75 - 0
apps/bigmember_pc/src/views/article-content/components/ContentError.vue

@@ -0,0 +1,75 @@
+<template>
+  <div class="error-module">
+    <div class="error-module-container">
+      <img class="error-img" src="@/assets/images/empty/jy-back.png">
+      <p class="error-text">{{ errorText }}</p>
+      <p class="error-text">5s后自动跳转到剑鱼官网首页</p>
+      <button class="error-btn" @click="backHome">前往剑鱼官网首页</button>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'Error',
+  props: {
+    errorText: {
+      type: String,
+      default: ''
+    }
+  },
+  data() {
+    return {}
+  },
+  mounted() {
+    setTimeout(() => {
+      window.top.location.href = '/'
+    }, 5000)
+  },
+  methods: {
+    backHome() {
+      window.top.location.href = '/'
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.error-module {
+  width: 980px;
+  height: 580px;
+  margin-right: 24px;
+  background: #fff;
+  border-radius: 8px;
+  &-container{
+    display: flex;
+    flex-direction: column;
+    justify-content: center;
+    align-items: center;
+    padding: 128px 0;
+    height: 100%;
+    .error-img{
+      width: 200px;
+      height: 200px;
+      object-fit: contain;
+    }
+    .error-text{
+      margin-top: 4px;
+      font-size: 15px;
+      color: #999;
+      line-height: 22px;
+    }
+    .error-btn{
+      width: 180px;
+      height: 40px;
+      line-height: 40px;
+      text-align: center;
+      margin-top: 24px;
+      background: #2ABED1;
+      color: #fff;
+      font-size: 15px;
+      border-radius: 4px;
+    }
+  }
+}
+</style>

+ 14 - 1
apps/bigmember_pc/src/views/article-content/composables/useContentStore.js

@@ -58,6 +58,10 @@ const SummaryModel = computed(() => {
 const ContentExpandsModel = computed(() => {
 const ContentExpandsModel = computed(() => {
   return ContentExpands.model
   return ContentExpands.model
 })
 })
+
+const ContentIsError = ref(false)
+const ContentErrorText = ref('')
+
 async function useContentStore() {
 async function useContentStore() {
   ContentPageLoading.value = true
   ContentPageLoading.value = true
   await ajaxGetArticlePreAgentInfo().then((res) => {
   await ajaxGetArticlePreAgentInfo().then((res) => {
@@ -71,6 +75,13 @@ async function useContentStore() {
       if (res.error_code === 0) {
       if (res.error_code === 0) {
         AgentInfo.value.baseToken = res.data?.token
         AgentInfo.value.baseToken = res.data?.token
         return res.data
         return res.data
+      } else {
+        ContentIsError.value = true
+        if(res.error_msg.includes('未查到当前招标信息')) {
+          ContentErrorText.value = '由于相关部门要求,该信息已下架,敬请原谅'
+        } else {
+          ContentErrorText.value = '该页面信息不存在'
+        }
       }
       }
     })
     })
     .then(Content.transformModel)
     .then(Content.transformModel)
@@ -113,5 +124,7 @@ export {
   ContentExpandsModel,
   ContentExpandsModel,
   ContentPageLoading,
   ContentPageLoading,
   ContentPageExpandsLoading,
   ContentPageExpandsLoading,
-  IsCustomTopNet
+  IsCustomTopNet,
+  ContentIsError,
+  ContentErrorText
 }
 }

+ 6 - 1
apps/bigmember_pc/src/views/article-content/pages/Article.vue

@@ -25,6 +25,7 @@ import ContentSummary from '@/views/article-content/components/ContentSummary.vu
 import RecommendEnt from '@/views/article-content/components/RecommendEnt.vue'
 import RecommendEnt from '@/views/article-content/components/RecommendEnt.vue'
 import QuickMonitor from '@/composables/quick-monitor/component/QuickMonitor.vue'
 import QuickMonitor from '@/composables/quick-monitor/component/QuickMonitor.vue'
 import CheckUserDialog from '@/components/dialog/CheckUserDialog'
 import CheckUserDialog from '@/components/dialog/CheckUserDialog'
+import ContentError from '../components/ContentError'
 import {
 import {
   useContentStore,
   useContentStore,
   ContentExpandsModel,
   ContentExpandsModel,
@@ -33,7 +34,9 @@ import {
   IsCustomTopNet,
   IsCustomTopNet,
   ContentPageLoading,
   ContentPageLoading,
   ContentPageExpandsLoading,
   ContentPageExpandsLoading,
-  SummaryModel
+  SummaryModel,
+  ContentIsError,
+  ContentErrorText
 } from '@/views/article-content/composables/useContentStore'
 } from '@/views/article-content/composables/useContentStore'
 import DownProjectReport from '@/composables/down-project-report/component/DownProjectReport.vue'
 import DownProjectReport from '@/composables/down-project-report/component/DownProjectReport.vue'
 import {
 import {
@@ -395,7 +398,9 @@ function doClickFreeView() {
 </script>
 </script>
 <template>
 <template>
   <ContentLayout :need-ad="true" class="article-page-container">
   <ContentLayout :need-ad="true" class="article-page-container">
+    <ContentError v-if="ContentIsError" :error-text="ContentErrorText"></ContentError>
     <el-skeleton
     <el-skeleton
+      v-else
       class="default-article-container"
       class="default-article-container"
       :loading="ContentPageLoading"
       :loading="ContentPageLoading"
       animated
       animated

+ 1 - 0
apps/mobile/src/api/modules/article.js

@@ -6,6 +6,7 @@ export function getArticlePreAgentInfo(params) {
   return request({
   return request({
     url: '/publicapply/detail/preAgent',
     url: '/publicapply/detail/preAgent',
     method: 'get',
     method: 'get',
+    noToast: true,
     params
     params
   })
   })
 }
 }

+ 1 - 1
apps/mobile/src/store/modules/article.js

@@ -265,7 +265,7 @@ export default {
         } else {
         } else {
           console.log(msg)
           console.log(msg)
         }
         }
-        return data
+        return { data, msg }
       } catch (error) {
       } catch (error) {
         console.error(error)
         console.error(error)
       }
       }

+ 68 - 0
apps/mobile/src/views/article/components/Error.vue

@@ -0,0 +1,68 @@
+<template>
+  <div class="error-module">
+    <div class="error-module-container">
+      <img class="error-img" src="@/assets/image/public/jy-back.png">
+      <p class="error-text">{{ errorText }}</p>
+      <p class="error-text">5s后自动跳转到剑鱼官网首页</p>
+      <button class="error-btn" @click="backHome">前往剑鱼官网首页</button>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'Error',
+  props: {
+    errorText: {
+      type: String,
+      default: ''
+    }
+  },
+  mounted() {
+    setTimeout(() => {
+      this.$router.push('/tabbar/home')
+    }, 5000)
+  },
+  methods: {
+    backHome() {
+      this.$router.push('/tabbar/home')
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.error-module {
+  width: 100%;
+  height: 100%;
+  &-container{
+    display: flex;
+    flex-direction: column;
+    justify-content: center;
+    align-items: center;
+    height: 100%;
+    .error-img{
+      width: 200px;
+      height: 200px;
+      object-fit: contain;
+    }
+    .error-text{
+      margin-top: 4px;
+      font-size: 15px;
+      color: #999;
+      line-height: 22px;
+    }
+    .error-btn{
+      width: 180px;
+      height: 40px;
+      line-height: 40px;
+      text-align: center;
+      margin-top: 24px;
+      background: #2ABED1;
+      color: #fff;
+      font-size: 15px;
+      border-radius: 4px;
+    }
+  }
+}
+</style>

+ 20 - 5
apps/mobile/src/views/article/content.vue

@@ -6,7 +6,8 @@
       :class="{ 'bg-white': reqState.loading }"
       :class="{ 'bg-white': reqState.loading }"
       :loading="reqState.loading"
       :loading="reqState.loading"
     >
     >
-      <div class="j-container page-container">
+      <Error v-if="isError" :error-text="errorText"></Error>
+      <div v-else class="j-container page-container">
         <div
         <div
           class="j-main article-content-main"
           class="j-main article-content-main"
           :class="{ 'show-underline': otherModel.hasProject }"
           :class="{ 'show-underline': otherModel.hasProject }"
@@ -172,6 +173,7 @@ import FreeUserAdvancedMask from '@/views/article/components/FreeUserAdvancedMas
 import ThirdPartyVerifyPopup from '@/views/article/components/ThirdPartyVerifyPopup.vue'
 import ThirdPartyVerifyPopup from '@/views/article/components/ThirdPartyVerifyPopup.vue'
 import CheckUserDialog from '@/views/identity/components/CheckUserDialog'
 import CheckUserDialog from '@/views/identity/components/CheckUserDialog'
 import CustomerCorner from '@/components/customer/index'
 import CustomerCorner from '@/components/customer/index'
+import Error from '@/views/article/components/Error.vue'
 import { throttle } from 'lodash'
 import { throttle } from 'lodash'
 import { mapState, mapMutations, mapActions, mapGetters } from 'vuex'
 import { mapState, mapMutations, mapActions, mapGetters } from 'vuex'
 import { getArticleShareInfo, getContentShareEncrypt } from '@/api/modules/article'
 import { getArticleShareInfo, getContentShareEncrypt } from '@/api/modules/article'
@@ -204,7 +206,8 @@ export default {
     NpsCard,
     NpsCard,
     TabActions,
     TabActions,
     AdSingle,
     AdSingle,
-    CustomerCorner
+    CustomerCorner,
+    Error
   },
   },
   data() {
   data() {
     return {
     return {
@@ -274,7 +277,9 @@ export default {
         id: '',
         id: '',
         tabActive: ''
         tabActive: ''
       },
       },
-      scrollStatus: true
+      scrollStatus: true,
+      isError: false,
+      errorText: ''
     }
     }
   },
   },
   computed: {
   computed: {
@@ -382,9 +387,19 @@ export default {
       } else {
       } else {
         try {
         try {
           await this.getPreAgentInfo()
           await this.getPreAgentInfo()
-          const r = await this.getBaseInfo()
-          if (r) {
+          const { data, msg } = await this.getBaseInfo()
+          if (data) {
             this.finishLoading()
             this.finishLoading()
+          } else {
+            this.finishLoading()
+            this.isError = true
+            // 无效参数 = d解析错误
+            // 未查到当前招标信息 = 文章不存在
+            if (msg.includes('未查到当前招标信息')) {
+              this.errorText = '由于相关部门要求,该信息已下架,敬请原谅'
+            } else {
+              this.errorText = '该页面信息不存在'
+            }
           }
           }
         } catch (error) {
         } catch (error) {
           console.error(error)
           console.error(error)