Переглянути джерело

Merge remote-tracking branch 'origin/feature/v1.0.29' into feature/v1.0.29

zhangyuhan 1 рік тому
батько
коміт
3bcb3aaf34
27 змінених файлів з 285 додано та 102 видалено
  1. 2 1
      .vscode/settings.json
  2. 5 4
      apps/bigmember_pc/src/components/common/BigMemberEmpty.vue
  3. 5 3
      apps/bigmember_pc/src/components/forecast/ForeCast.vue
  4. 4 4
      apps/bigmember_pc/src/components/medical/FollowList.vue
  5. 1 1
      apps/bigmember_pc/src/components/push-list/PotentialList.vue
  6. 2 1
      apps/bigmember_pc/src/views/Home.vue
  7. 3 2
      apps/bigmember_pc/src/views/PotentialList.vue
  8. 3 2
      apps/bigmember_pc/src/views/ProjectProgress.vue
  9. 40 38
      apps/bigmember_pc/src/views/analysisReport/MarketAnalysisResult.vue
  10. 3 3
      apps/bigmember_pc/src/views/customer/components/BidInfoActive.vue
  11. 2 1
      apps/bigmember_pc/src/views/my-property/coupon.vue
  12. 11 2
      apps/bigmember_pc/src/views/portrayal/EntPortrayal.vue
  13. 11 2
      apps/bigmember_pc/src/views/portrayal/EntSearchPortrayal.vue
  14. 2 1
      apps/bigmember_pc/src/views/portrayal/UnitPortrayal.vue
  15. 5 5
      apps/bigmember_pc/src/views/portrayal/components/BidInfoActive.vue
  16. 3 1
      apps/bigmember_pc/src/views/portrayal/components/DynamicList.vue
  17. 1 1
      apps/bigmember_pc/src/views/portrayal/components/EntProActive.vue
  18. 6 4
      apps/bigmember_pc/src/views/portrayal/components/UnitChart.vue
  19. 3 2
      apps/jy-pc/src/components/empty/Empty.vue
  20. BIN
      apps/mobile/src/assets/image/mask/bg/customer-list-mask-bg@2x.png
  21. BIN
      apps/mobile/src/assets/image/mask/bg/mask-content-wrapper-bg.png
  22. BIN
      apps/mobile/src/assets/image/mask/bg/service-intro-bg@2x.png
  23. BIN
      apps/mobile/src/assets/image/mask/example/customer-list-example-img@2x.png
  24. 5 0
      apps/mobile/src/utils/utils.js
  25. 124 23
      apps/mobile/src/views/article/ui/MaskCard.vue
  26. 1 1
      apps/mobile/src/views/article/ui/ServiceIntroCard.vue
  27. 43 0
      apps/mobile/src/views/article/ui/ServiceIntroMaskCard.vue

+ 2 - 1
.vscode/settings.json

@@ -1,3 +1,4 @@
 {
 {
-    "prettier.endOfLine": "lf"
+    "prettier.endOfLine": "lf",
+    "files.eol": "\n"
 }
 }

+ 5 - 4
apps/bigmember_pc/src/components/common/BigMemberEmpty.vue

@@ -4,10 +4,7 @@
     :class="classfuncType ? 'reportempty' : ''"
     :class="classfuncType ? 'reportempty' : ''"
   >
   >
     <div class="empty-content-position">
     <div class="empty-content-position">
-      <el-image
-        v-if="imgShow"
-        :src="import('@/assets/images/bmempty.png')"
-      ></el-image>
+      <el-image v-if="imgShow" :src="getAssetsFile('bmempty.png')"></el-image>
       <div class="empty-main">
       <div class="empty-main">
         <slot class="default">
         <slot class="default">
           <slot name="tipText">{{ tip }}</slot>
           <slot name="tipText">{{ tip }}</slot>
@@ -20,6 +17,7 @@
 
 
 <script>
 <script>
 import { Image } from 'element-ui'
 import { Image } from 'element-ui'
+import { getAssetsFile } from '@/utils'
 export default {
 export default {
   name: 'empty',
   name: 'empty',
   components: {
   components: {
@@ -56,6 +54,9 @@ export default {
     ) {
     ) {
       this.imgShow = false
       this.imgShow = false
     }
     }
+  },
+  methods: {
+    getAssetsFile
   }
   }
 }
 }
 </script>
 </script>

+ 5 - 3
apps/bigmember_pc/src/components/forecast/ForeCast.vue

@@ -522,6 +522,7 @@ import TimeSelector from '@/components/selector/TimeSelector.vue'
 import { moneyUnit, dateFormatter } from '@/utils'
 import { moneyUnit, dateFormatter } from '@/utils'
 import { tryCallHooks } from '@jianyu/easy-inject-qiankun'
 import { tryCallHooks } from '@jianyu/easy-inject-qiankun'
 import { getPowerUrl } from '@/utils/power/redirect'
 import { getPowerUrl } from '@/utils/power/redirect'
+import { getAssetsFile } from '@/utils'
 import {
 import {
   setFollowEnt,
   setFollowEnt,
   setCancelEnt,
   setCancelEnt,
@@ -578,7 +579,7 @@ export default {
       isFollow: '1',
       isFollow: '1',
       potenCode: 0,
       potenCode: 0,
       tips: '', // 空状态提示
       tips: '', // 空状态提示
-      tipimages: 'jy-cry.png',
+      tipimages: 'empty/jy-cry.png',
       dialog: {
       dialog: {
         group: false
         group: false
       },
       },
@@ -1072,14 +1073,15 @@ export default {
         this.myDataObj.initTotal === 0
         this.myDataObj.initTotal === 0
       ) {
       ) {
         this.tips = '暂无企业情报信息,前往企业搜索关注企业'
         this.tips = '暂无企业情报信息,前往企业搜索关注企业'
-        this.tipimages = import('@/assets/images/empty/jy-back.png')
+        this.tipimages = getAssetsFile('empty/jy-back.png')
+        console.info(this.tipimages)
       } else if (
       } else if (
         this.myDataObj &&
         this.myDataObj &&
         this.myDataObj.list.length === 0 &&
         this.myDataObj.list.length === 0 &&
         this.myDataObj.initTotal !== 0
         this.myDataObj.initTotal !== 0
       ) {
       ) {
         this.tips = '暂无匹配数据'
         this.tips = '暂无匹配数据'
-        this.tipimages = import('@/assets/images/empty/jy-back.png')
+        this.tipimages = getAssetsFile('empty/jy-back.png')
       }
       }
     },
     },
     changeTime(data) {
     changeTime(data) {

+ 4 - 4
apps/bigmember_pc/src/components/medical/FollowList.vue

@@ -122,7 +122,7 @@ import {
 import { mixinVisited } from '@/utils/mixins/visited'
 import { mixinVisited } from '@/utils/mixins/visited'
 import Empty from '@/components/common/Empty.vue'
 import Empty from '@/components/common/Empty.vue'
 import GroupCard from '@/components/selector/GroupSelector.vue'
 import GroupCard from '@/components/selector/GroupSelector.vue'
-import { dateFormatter, openSelfLink } from '@/utils'
+import { dateFormatter, openSelfLink, getAssetsFile } from '@/utils'
 import {
 import {
   setFollowEnt,
   setFollowEnt,
   setCancelEnt,
   setCancelEnt,
@@ -165,7 +165,7 @@ export default {
       },
       },
       isFollow: '1',
       isFollow: '1',
       tips: '', // 空状态提示
       tips: '', // 空状态提示
-      tipimages: import('@/assets/images/empty/jy-cry.png'),
+      tipimages: getAssetsFile('jy-cry.png'),
       dialog: {
       dialog: {
         group: false
         group: false
       },
       },
@@ -370,14 +370,14 @@ export default {
         this.myDataObj.initTotal === 0
         this.myDataObj.initTotal === 0
       ) {
       ) {
         this.tips = '暂未认领任何经销商'
         this.tips = '暂未认领任何经销商'
-        this.tipimages = import('@/assets/images/empty/jy-back.png')
+        this.tipimages = getAssetsFile('empty/jy-back.png')
       } else if (
       } else if (
         this.myDataObj &&
         this.myDataObj &&
         this.myDataObj.list.length === 0 &&
         this.myDataObj.list.length === 0 &&
         this.myDataObj.initTotal !== 0
         this.myDataObj.initTotal !== 0
       ) {
       ) {
         this.tips = '暂无匹配数据'
         this.tips = '暂无匹配数据'
-        this.tipimages = import('@/assets/images/empty/jy-back.png')
+        this.tipimages = getAssetsFile('empty/jy-back.png')
       }
       }
     }
     }
   }
   }

+ 1 - 1
apps/bigmember_pc/src/components/push-list/PotentialList.vue

@@ -462,7 +462,7 @@ export default {
     padding: 0;
     padding: 0;
   }
   }
   .el-dialog__body {
   .el-dialog__body {
-    padding: 0;
+    padding: 0!important;
   }
   }
   .empty-container {
   .empty-container {
     margin-top: 60px;
     margin-top: 60px;

+ 2 - 1
apps/bigmember_pc/src/views/Home.vue

@@ -46,6 +46,7 @@ import forLayOut from '@/components/forecast/ForLayout.vue'
 import PushList from '@/components/push-list/PushList.vue'
 import PushList from '@/components/push-list/PushList.vue'
 import ProjectList from '@/components/push-list/ProjectList.vue'
 import ProjectList from '@/components/push-list/ProjectList.vue'
 import FloatSide from '@/components/home/FloatSide.vue'
 import FloatSide from '@/components/home/FloatSide.vue'
+import { getAssetsFile } from '@/utils'
 import {
 import {
   getReportIndex,
   getReportIndex,
   getReportStartTime,
   getReportStartTime,
@@ -65,7 +66,7 @@ export default {
   },
   },
   data() {
   data() {
     return {
     return {
-      topImg: import('@/assets/images/bg_1.png'),
+      topImg: getAssetsFile('bg_1.png'),
       navItem: [
       navItem: [
         {
         {
           text: '中标企业预测',
           text: '中标企业预测',

+ 3 - 2
apps/bigmember_pc/src/views/PotentialList.vue

@@ -133,6 +133,7 @@ import BuyerclassSelector from '@/components/selector/BuyerclassSelector.vue'
 import BusinessScopeSelector from '@/components/selector/BusinessScopeSelector.vue'
 import BusinessScopeSelector from '@/components/selector/BusinessScopeSelector.vue'
 import forLayOut from '@/components/forecast/ForLayout.vue'
 import forLayOut from '@/components/forecast/ForLayout.vue'
 import TabHeader from '@/components/common/TabHeader.vue'
 import TabHeader from '@/components/common/TabHeader.vue'
+import { getAssetsFile } from '@/utils'
 import {
 import {
   setFollowEnt,
   setFollowEnt,
   setRemoveEnt,
   setRemoveEnt,
@@ -158,13 +159,13 @@ export default {
     return {
     return {
       topInfo: {
       topInfo: {
         c: {
         c: {
-          img: import('@/assets/images/item_3.png'),
+          img: getAssetsFile('item_3.png'),
           icon: 'top-c',
           icon: 'top-c',
           text: '潜在客户挖掘',
           text: '潜在客户挖掘',
           desc: '潜在客户'
           desc: '潜在客户'
         },
         },
         r: {
         r: {
-          img: import('@/assets/images/item_1.png'),
+          img: getAssetsFile('item_1.png'),
           icon: 'top-r',
           icon: 'top-r',
           text: '潜在竞争对手 / 合作伙伴挖掘'
           text: '潜在竞争对手 / 合作伙伴挖掘'
         }
         }

+ 3 - 2
apps/bigmember_pc/src/views/ProjectProgress.vue

@@ -89,6 +89,7 @@ import forLayOut from '@/components/forecast/ForLayout.vue'
 import { attentionProject, areaProject, getBidIsJoin } from '@/api/modules'
 import { attentionProject, areaProject, getBidIsJoin } from '@/api/modules'
 import { mapState, mapGetters } from 'vuex'
 import { mapState, mapGetters } from 'vuex'
 import { provinceListMapExp } from '@/assets/js/selector.js'
 import { provinceListMapExp } from '@/assets/js/selector.js'
+import { getAssetsFile } from '@/utils'
 export default {
 export default {
   name: 'ProjectProgress',
   name: 'ProjectProgress',
   components: {
   components: {
@@ -101,13 +102,13 @@ export default {
     return {
     return {
       topInfo: {
       topInfo: {
         c: {
         c: {
-          img: import('@/assets/images/item_11.png'),
+          img: getAssetsFile('item_11.png'),
           icon: 'project-c',
           icon: 'project-c',
           text: '项目进度监控',
           text: '项目进度监控',
           desc: ''
           desc: ''
         },
         },
         r: {
         r: {
-          img: import('@/assets/images/item_1.png'),
+          img: getAssetsFile('item_1.png'),
           icon: 'top-r',
           icon: 'top-r',
           text: '潜在竞争对手 / 合作伙伴挖掘'
           text: '潜在竞争对手 / 合作伙伴挖掘'
         }
         }

+ 40 - 38
apps/bigmember_pc/src/views/analysisReport/MarketAnalysisResult.vue

@@ -66,7 +66,7 @@
               <!-- 市场概况 -->
               <!-- 市场概况 -->
               <div
               <div
                 class="sub-section market-overview"
                 class="sub-section market-overview"
-                v-if="sections.market.overview.length && isConf10"
+                v-if="sections.market.overview.length && isConf26"
               >
               >
                 <div class="sub-section-header">
                 <div class="sub-section-header">
                   <div class="sub-section-title">市场概况</div>
                   <div class="sub-section-title">市场概况</div>
@@ -76,7 +76,7 @@
                 </div>
                 </div>
               </div>
               </div>
               <MaskCard
               <MaskCard
-                v-if="!isConf10"
+                v-if="!isConf26"
                 @click="
                 @click="
                   openBigPage(vipUpgradeMap[Object.keys(vipUpgradeMap)[0]])
                   openBigPage(vipUpgradeMap[Object.keys(vipUpgradeMap)[0]])
                 "
                 "
@@ -87,10 +87,10 @@
               <div
               <div
                 class="sub-section project-scatter"
                 class="sub-section project-scatter"
                 v-if="
                 v-if="
-                  (isConf10 && !sections.loaded.top3) ||
+                  (isConf26 && !sections.loaded.top3) ||
                   (sections.projectScatter.dataAlready &&
                   (sections.projectScatter.dataAlready &&
                     sections.loaded.top3 &&
                     sections.loaded.top3 &&
-                    isConf10)
+                    isConf26)
                 "
                 "
                 v-loading="!sections.loaded.top3"
                 v-loading="!sections.loaded.top3"
               >
               >
@@ -106,7 +106,7 @@
                 </div>
                 </div>
               </div>
               </div>
               <MaskCard
               <MaskCard
-                v-if="!isConf10"
+                v-if="!isConf26"
                 @click="
                 @click="
                   openBigPage(vipUpgradeMap[Object.keys(vipUpgradeMap)[1]])
                   openBigPage(vipUpgradeMap[Object.keys(vipUpgradeMap)[1]])
                 "
                 "
@@ -158,11 +158,11 @@
               <div
               <div
                 class="sub-section area-scatter"
                 class="sub-section area-scatter"
                 v-if="
                 v-if="
-                  (!sections.loaded.top3 && notOneCityFilter && isConf10) ||
+                  (!sections.loaded.top3 && notOneCityFilter && isConf26) ||
                   (sections.areaScatter.dataAlready &&
                   (sections.areaScatter.dataAlready &&
                     sections.loaded.top3 &&
                     sections.loaded.top3 &&
                     notOneCityFilter &&
                     notOneCityFilter &&
-                    isConf10)
+                    isConf26)
                 "
                 "
                 v-loading="!sections.loaded.top3"
                 v-loading="!sections.loaded.top3"
               >
               >
@@ -182,10 +182,10 @@
                 <div
                 <div
                   class="ar-table"
                   class="ar-table"
                   v-if="
                   v-if="
-                    (!sections.loaded.top3 && isConf10) ||
+                    (!sections.loaded.top3 && isConf26) ||
                     (sections.areaScatter.projectCountTop3 &&
                     (sections.areaScatter.projectCountTop3 &&
                       sections.loaded.top3 &&
                       sections.loaded.top3 &&
-                      isConf10)
+                      isConf26)
                   "
                   "
                   v-loading="!sections.loaded.top3"
                   v-loading="!sections.loaded.top3"
                 >
                 >
@@ -202,10 +202,10 @@
                 <div
                 <div
                   class="ar-table"
                   class="ar-table"
                   v-if="
                   v-if="
-                    (!sections.loaded.top3 && isConf10) ||
+                    (!sections.loaded.top3 && isConf26) ||
                     (sections.areaScatter.projectAmountTop3 &&
                     (sections.areaScatter.projectAmountTop3 &&
                       sections.loaded.top3 &&
                       sections.loaded.top3 &&
-                      isConf10)
+                      isConf26)
                   "
                   "
                   v-loading="!sections.loaded.top3"
                   v-loading="!sections.loaded.top3"
                 >
                 >
@@ -221,7 +221,7 @@
                 </div>
                 </div>
               </div>
               </div>
               <MaskCard
               <MaskCard
-                v-if="!isConf10"
+                v-if="!isConf26"
                 @click="
                 @click="
                   openBigPage(vipUpgradeMap[Object.keys(vipUpgradeMap)[2]])
                   openBigPage(vipUpgradeMap[Object.keys(vipUpgradeMap)[2]])
                 "
                 "
@@ -303,10 +303,10 @@
               <div
               <div
                 class="sub-section market-refine"
                 class="sub-section market-refine"
                 v-if="
                 v-if="
-                  (isConf10 && !sections.loaded.segment) ||
+                  (isConf26 && !sections.loaded.segment) ||
                   (sections.market.refine.dataAlready &&
                   (sections.market.refine.dataAlready &&
                     sections.loaded.segment &&
                     sections.loaded.segment &&
-                    isConf10)
+                    isConf26)
                 "
                 "
                 v-loading="!sections.loaded.segment"
                 v-loading="!sections.loaded.segment"
               >
               >
@@ -324,7 +324,7 @@
                   />
                   />
                 </div>
                 </div>
               </div>
               </div>
-              <div class="top3-table-list pd-lr20" v-if="isConf10">
+              <div class="top3-table-list pd-lr20" v-if="isConf26">
                 <div
                 <div
                   class="ar-table"
                   class="ar-table"
                   v-if="
                   v-if="
@@ -365,7 +365,7 @@
                 </div>
                 </div>
               </div>
               </div>
               <MaskCard
               <MaskCard
-                v-if="!isConf10"
+                v-if="!isConf26"
                 @click="
                 @click="
                   openBigPage(vipUpgradeMap[Object.keys(vipUpgradeMap)[3]])
                   openBigPage(vipUpgradeMap[Object.keys(vipUpgradeMap)[3]])
                 "
                 "
@@ -406,7 +406,7 @@
               <div class="top3-table-list pd-lr20">
               <div class="top3-table-list pd-lr20">
                 <div
                 <div
                   class="ar-table buyerclass-count-top3"
                   class="ar-table buyerclass-count-top3"
-                  v-if="sections.buyerclass.projectCountTop3 && isConf10"
+                  v-if="sections.buyerclass.projectCountTop3 && isConf26"
                 >
                 >
                   <p class="ar-table-title">
                   <p class="ar-table-title">
                     项目数量TOP30采购单位及其重点合作中标单位
                     项目数量TOP30采购单位及其重点合作中标单位
@@ -421,7 +421,7 @@
                   />
                   />
                 </div>
                 </div>
                 <MaskCard
                 <MaskCard
-                  v-if="!isConf10"
+                  v-if="!isConf26"
                   @click="
                   @click="
                     openBigPage(vipUpgradeMap[Object.keys(vipUpgradeMap)[4]])
                     openBigPage(vipUpgradeMap[Object.keys(vipUpgradeMap)[4]])
                   "
                   "
@@ -430,7 +430,7 @@
                 ></MaskCard>
                 ></MaskCard>
                 <div
                 <div
                   class="ar-table buyerclass-amount-top3"
                   class="ar-table buyerclass-amount-top3"
-                  v-if="sections.buyerclass.projectAmountTop3 && isConf10"
+                  v-if="sections.buyerclass.projectAmountTop3 && isConf26"
                 >
                 >
                   <p class="ar-table-title">
                   <p class="ar-table-title">
                     采购金额TOP30采购单位及其重点合作中标单位
                     采购金额TOP30采购单位及其重点合作中标单位
@@ -445,7 +445,7 @@
                   />
                   />
                 </div>
                 </div>
                 <MaskCard
                 <MaskCard
-                  v-if="!isConf10"
+                  v-if="!isConf26"
                   @click="
                   @click="
                     openBigPage(vipUpgradeMap[Object.keys(vipUpgradeMap)[5]])
                     openBigPage(vipUpgradeMap[Object.keys(vipUpgradeMap)[5]])
                   "
                   "
@@ -482,7 +482,7 @@
                 </div>
                 </div>
               </div>
               </div>
               <div class="top3-table-list pd-lr20">
               <div class="top3-table-list pd-lr20">
-                <div class="ar-table winner-count-top3" v-if="isConf10">
+                <div class="ar-table winner-count-top3" v-if="isConf26">
                   <p class="ar-table-title">
                   <p class="ar-table-title">
                     项目数量TOP30中标单位及其重点合作采购单位
                     项目数量TOP30中标单位及其重点合作采购单位
                   </p>
                   </p>
@@ -496,14 +496,14 @@
                   />
                   />
                 </div>
                 </div>
                 <MaskCard
                 <MaskCard
-                  v-if="!isConf10"
+                  v-if="!isConf26"
                   @click="
                   @click="
                     openBigPage(vipUpgradeMap[Object.keys(vipUpgradeMap)[6]])
                     openBigPage(vipUpgradeMap[Object.keys(vipUpgradeMap)[6]])
                   "
                   "
                   k="项目数量TOP30中标单位及其重点合作采购单位"
                   k="项目数量TOP30中标单位及其重点合作采购单位"
                   :item="vipUpgradeMap[Object.keys(vipUpgradeMap)[6]]"
                   :item="vipUpgradeMap[Object.keys(vipUpgradeMap)[6]]"
                 ></MaskCard>
                 ></MaskCard>
-                <div class="ar-table winner-amount-top3" v-if="isConf10">
+                <div class="ar-table winner-amount-top3" v-if="isConf26">
                   <p class="ar-table-title">
                   <p class="ar-table-title">
                     中标金额TOP30中标单位及其重点合作采购单位
                     中标金额TOP30中标单位及其重点合作采购单位
                   </p>
                   </p>
@@ -517,7 +517,7 @@
                   />
                   />
                 </div>
                 </div>
                 <MaskCard
                 <MaskCard
-                  v-if="!isConf10"
+                  v-if="!isConf26"
                   @click="
                   @click="
                     openBigPage(vipUpgradeMap[Object.keys(vipUpgradeMap)[7]])
                     openBigPage(vipUpgradeMap[Object.keys(vipUpgradeMap)[7]])
                   "
                   "
@@ -904,14 +904,14 @@ export default {
     reportSelectedKeywords() {
     reportSelectedKeywords() {
       return this.projectDetailFilters.keywordsGroupList
       return this.projectDetailFilters.keywordsGroupList
     },
     },
-    isConf10() {
-      return this.info.power.indexOf(10) !== -1
+    isConf26() {
+      return this.info.power.indexOf(26) !== -1
     },
     },
     getVipUpgradeMap() {
     getVipUpgradeMap() {
       const tempMap = this.vipUpgradeMap
       const tempMap = this.vipUpgradeMap
       Object.keys(tempMap).forEach((v) => {
       Object.keys(tempMap).forEach((v) => {
         const tempTitle = '开通大会员'
         const tempTitle = '开通大会员'
-        const tempButton = !this.isConf10 ? '联系客服' : '免费体验'
+        const tempButton = !this.isConf26 ? '联系客服' : '免费体验'
         tempMap[v].title = tempTitle
         tempMap[v].title = tempTitle
         tempMap[v].button = tempButton
         tempMap[v].button = tempButton
       })
       })
@@ -931,19 +931,21 @@ export default {
     },
     },
     buyerclassSectionShow() {
     buyerclassSectionShow() {
       const winnerState = this.sections.buyerclass
       const winnerState = this.sections.buyerclass
-      return (
-        winnerState.dataAlready &&
-        winnerState.projectCountTop3 &&
-        winnerState.projectAmountTop3
-      )
+      // return (
+      //   winnerState.dataAlready &&
+      //   winnerState.projectCountTop3 &&
+      //   winnerState.projectAmountTop3
+      // )
+      return winnerState.dataAlready && winnerState.chartData
     },
     },
     winnerSectionShow() {
     winnerSectionShow() {
       const winnerState = this.sections.winner
       const winnerState = this.sections.winner
-      return (
-        winnerState.dataAlready &&
-        winnerState.projectCountTop3 &&
-        winnerState.projectAmountTop3
-      )
+      // return (
+      //   winnerState.dataAlready &&
+      //   winnerState.projectCountTop3 &&
+      //   winnerState.projectAmountTop3
+      // )
+      return winnerState.dataAlready && winnerState.chartData
     }
     }
   },
   },
   created() {
   created() {
@@ -1020,7 +1022,7 @@ export default {
         } catch (e) {
         } catch (e) {
           console.log('未初始化百度统计')
           console.log('未初始化百度统计')
         }
         }
-        if (this.isConf10) {
+        if (this.isConf26) {
           setTimeout(this.scrollToTab, 100)
           setTimeout(this.scrollToTab, 100)
           return true
           return true
         } else {
         } else {

+ 3 - 3
apps/bigmember_pc/src/views/customer/components/BidInfoActive.vue

@@ -32,7 +32,7 @@
                 style="
                 style="
                   width: 12px;
                   width: 12px;
                   height: 12px;
                   height: 12px;
-                  ling-height: 32px;
+                  line-height: 32px;
                   cursor: pointer;
                   cursor: pointer;
                 "
                 "
                 src="@/assets/images/icon/cancel.png"
                 src="@/assets/images/icon/cancel.png"
@@ -125,7 +125,7 @@
                 position: absolute;
                 position: absolute;
                 width: 12px;
                 width: 12px;
                 height: 12px;
                 height: 12px;
-                ling-height: 32px;
+                line-height: 32px;
                 cursor: pointer;
                 cursor: pointer;
                 top: 10px;
                 top: 10px;
                 right: 10px;
                 right: 10px;
@@ -171,7 +171,7 @@
                 position: absolute;
                 position: absolute;
                 width: 12px;
                 width: 12px;
                 height: 12px;
                 height: 12px;
-                ling-height: 32px;
+                line-height: 32px;
                 cursor: pointer;
                 cursor: pointer;
                 top: 10px;
                 top: 10px;
                 right: 10px;
                 right: 10px;

+ 2 - 1
apps/bigmember_pc/src/views/my-property/coupon.vue

@@ -71,6 +71,7 @@
 import { getInfoByUser } from '@/api/modules'
 import { getInfoByUser } from '@/api/modules'
 import { Tabs, TabPane, Pagination, Image } from 'element-ui'
 import { Tabs, TabPane, Pagination, Image } from 'element-ui'
 import couponItem from './components/coupon-item'
 import couponItem from './components/coupon-item'
+import { getAssetsFile } from '@/utils'
 export default {
 export default {
   name: 'coupon',
   name: 'coupon',
   components: {
   components: {
@@ -82,7 +83,7 @@ export default {
   },
   },
   data: function () {
   data: function () {
     return {
     return {
-      img: import('@/assets/images/pc_12.png'),
+      img: getAssetsFile('pc_12.png'),
       tabActiveName: 'notUsed',
       tabActiveName: 'notUsed',
       tabList: [
       tabList: [
         {
         {

+ 11 - 2
apps/bigmember_pc/src/views/portrayal/EntPortrayal.vue

@@ -484,11 +484,20 @@ export default {
     },
     },
     showConf12() {
     showConf12() {
       // 企业情报历史记录
       // 企业情报历史记录
-      return this.info.power.indexOf(12) !== -1
+      const { power } = this.info
+      const hasPower =
+        power.includes(12) ||
+        power.includes(20) ||
+        power.includes(23) ||
+        power.includes(4)
+      return hasPower
     },
     },
     // 项目动态
     // 项目动态
     showConf13() {
     showConf13() {
-      return this.info.power.indexOf(13) !== -1
+      const { power } = this.info
+      const hasPower =
+        power.includes(13) || power.includes(21) || power.includes(4)
+      return hasPower
     },
     },
     showContact() {
     showContact() {
       // 历史项目联系方式
       // 历史项目联系方式

+ 11 - 2
apps/bigmember_pc/src/views/portrayal/EntSearchPortrayal.vue

@@ -732,7 +732,13 @@ export default {
     },
     },
     showEntHistoryForm() {
     showEntHistoryForm() {
       // 判断大会员企业情报权限
       // 判断大会员企业情报权限
-      return this.info.memberStatus > 0 && this.info.power.indexOf(12) !== -1
+      const { power, memberStatus } = this.info
+      const hasPower =
+        power.includes(12) ||
+        power.includes(20) ||
+        power.includes(23) ||
+        power.includes(4)
+      return memberStatus > 0 && hasPower
     },
     },
     showContact() {
     showContact() {
       // 历史项目联系方式
       // 历史项目联系方式
@@ -741,9 +747,12 @@ export default {
     showProActive() {
     showProActive() {
       var freeHave = this.info.isFree && this.info.freeEntPort > 0
       var freeHave = this.info.isFree && this.info.freeEntPort > 0
       var freeTrail = this.hasTrailPower
       var freeTrail = this.hasTrailPower
+      const { power, memberStatus } = this.info
+      const hasPower =
+        power.includes(13) || power.includes(21) || power.includes(4)
       return (
       return (
         this.powerInfo.vip > 1 ||
         this.powerInfo.vip > 1 ||
-        (this.info.memberStatus > 0 && this.info.power.indexOf(13) !== -1) ||
+        (memberStatus > 0 && hasPower) ||
         freeHave ||
         freeHave ||
         freeTrail
         freeTrail
       )
       )

+ 2 - 1
apps/bigmember_pc/src/views/portrayal/UnitPortrayal.vue

@@ -857,7 +857,8 @@ export default {
       const usage = this.usageInfo
       const usage = this.usageInfo
       const isFreeAuth = info.isFree && info.freeBuyerPort > 0
       const isFreeAuth = info.isFree && info.freeBuyerPort > 0
       const isVipAuth = info.vipStatus > 0 && info.viper && usage.balance > 0
       const isVipAuth = info.vipStatus > 0 && info.viper && usage.balance > 0
-      const isMember = info.power.indexOf(5) !== -1
+      const hasRoot = info.power.includes(5)
+      const isMember = hasRoot
       // 超级订阅用户是否访问过该画像
       // 超级订阅用户是否访问过该画像
       const vipTrial =
       const vipTrial =
         info.vipStatus > 0 && info.viper && usage.balance === 0 && usage.visited
         info.vipStatus > 0 && info.viper && usage.balance === 0 && usage.visited

+ 5 - 5
apps/bigmember_pc/src/views/portrayal/components/BidInfoActive.vue

@@ -30,7 +30,7 @@
                 style="
                 style="
                   width: 12px;
                   width: 12px;
                   height: 12px;
                   height: 12px;
-                  ling-height: 32px;
+                  line-height: 32px;
                   cursor: pointer;
                   cursor: pointer;
                 "
                 "
                 src="@/assets/images/icon/cancel.png"
                 src="@/assets/images/icon/cancel.png"
@@ -167,7 +167,7 @@
                   position: absolute;
                   position: absolute;
                   width: 12px;
                   width: 12px;
                   height: 12px;
                   height: 12px;
-                  ling-height: 32px;
+                  line-height: 32px;
                   cursor: pointer;
                   cursor: pointer;
                   top: 10px;
                   top: 10px;
                   right: 10px;
                   right: 10px;
@@ -214,7 +214,7 @@
                   position: absolute;
                   position: absolute;
                   width: 12px;
                   width: 12px;
                   height: 12px;
                   height: 12px;
-                  ling-height: 32px;
+                  line-height: 32px;
                   cursor: pointer;
                   cursor: pointer;
                   top: 10px;
                   top: 10px;
                   right: 10px;
                   right: 10px;
@@ -265,7 +265,7 @@
                 position: absolute;
                 position: absolute;
                 width: 12px;
                 width: 12px;
                 height: 12px;
                 height: 12px;
-                ling-height: 32px;
+                line-height: 32px;
                 cursor: pointer;
                 cursor: pointer;
                 top: 10px;
                 top: 10px;
                 right: 10px;
                 right: 10px;
@@ -312,7 +312,7 @@
                 position: absolute;
                 position: absolute;
                 width: 12px;
                 width: 12px;
                 height: 12px;
                 height: 12px;
-                ling-height: 32px;
+                line-height: 32px;
                 cursor: pointer;
                 cursor: pointer;
                 top: 10px;
                 top: 10px;
                 right: 10px;
                 right: 10px;

+ 3 - 1
apps/bigmember_pc/src/views/portrayal/components/DynamicList.vue

@@ -949,6 +949,8 @@ export default {
         return false
         return false
       }
       }
       const $ = this.$querySelector.bind(this)
       const $ = this.$querySelector.bind(this)
+      const info = this.userInfo
+      const hasRoot = info.power.includes(24) || info.power.includes(25)
       //免费用户仅展示前三条
       //免费用户仅展示前三条
       //付费用户展示前4页 20条表格数据
       //付费用户展示前4页 20条表格数据
       if (this.isTable) {
       if (this.isTable) {
@@ -971,7 +973,7 @@ export default {
           return false
           return false
         }
         }
       } else {
       } else {
-        if (!this.config.isWinner) {
+        if (!this.config.isWinner && !hasRoot) {
           //采购单位无权限留资等逻辑
           //采购单位无权限留资等逻辑
           if (!this.config.isMedical) {
           if (!this.config.isMedical) {
             const isFree =
             const isFree =

+ 1 - 1
apps/bigmember_pc/src/views/portrayal/components/EntProActive.vue

@@ -18,7 +18,7 @@
                 style="
                 style="
                   width: 12px;
                   width: 12px;
                   height: 12px;
                   height: 12px;
-                  ling-height: 32px;
+                  line-height: 32px;
                   cursor: pointer;
                   cursor: pointer;
                 "
                 "
                 src="@/assets/images/icon/cancel.png"
                 src="@/assets/images/icon/cancel.png"

+ 6 - 4
apps/bigmember_pc/src/views/portrayal/components/UnitChart.vue

@@ -1001,10 +1001,12 @@ export default {
     async getChartData(newval) {
     async getChartData(newval) {
       this.allBool = []
       this.allBool = []
       const info = this.$store.state.user.info
       const info = this.$store.state.user.info
-      const isMember = info.memberStatus > 0 && info.power.indexOf(5) > -1
-      const res = isMember
-        ? await getUnitChart(newval)
-        : await getVipUnitChart(newval)
+      const hasRoot = info.power.includes(24) || info.power.includes(25)
+      const isMember = info.memberStatus > 0 && info.power.includes(5)
+      const res =
+        isMember || hasRoot
+          ? await getUnitChart(newval)
+          : await getVipUnitChart(newval)
       if (res.error_code === 0) {
       if (res.error_code === 0) {
         if (res.data && Object.keys(res.data).length > 0) {
         if (res.data && Object.keys(res.data).length > 0) {
           this.showChart = true
           this.showChart = true

+ 3 - 2
apps/jy-pc/src/components/empty/Empty.vue

@@ -12,9 +12,10 @@
 
 
 <script>
 <script>
 import { Image } from 'element-ui'
 import { Image } from 'element-ui'
+import { getAssetsFile } from '@/utils'
 
 
 function getImageUrl(filePath) {
 function getImageUrl(filePath) {
-  return new URL(`./assets/${name}`, import.meta.url).href
+  return new URL(`./assets/${filePath}`, import.meta.url).href
 }
 }
 
 
 export default {
 export default {
@@ -31,7 +32,7 @@ export default {
       type: String,
       type: String,
       default() {
       default() {
         // return require('@/assets/images/empty.png')
         // return require('@/assets/images/empty.png')
-        return getImageUrl('image/public/jy-back.png')
+        return getAssetsFile('empty/jy-back.png')
       }
       }
     }
     }
   }
   }

BIN
apps/mobile/src/assets/image/mask/bg/customer-list-mask-bg@2x.png


BIN
apps/mobile/src/assets/image/mask/bg/mask-content-wrapper-bg.png


BIN
apps/mobile/src/assets/image/mask/bg/service-intro-bg@2x.png


BIN
apps/mobile/src/assets/image/mask/example/customer-list-example-img@2x.png


+ 5 - 0
apps/mobile/src/utils/utils.js

@@ -837,3 +837,8 @@ export function fixH5BackRefresh() {
     iosBackRefresh()
     iosBackRefresh()
   }
   }
 }
 }
+
+// vite动态获取图片
+export function getAssetsFile(url) {
+  return new URL(`../assets/image/${url}`, import.meta.url).href
+}

+ 124 - 23
apps/mobile/src/views/article/ui/MaskCard.vue

@@ -1,35 +1,78 @@
 <template>
 <template>
-  <ContentModuleCard class="mask-card bg-white">
-    <div class="header-title" slot="title">
-      <AppIcon name="arrow" />
-      <span class="header-title-text"></span>
+  <section class="mask-card-container bg-white">
+    <div
+      class="mask-card-bg flex flex-(items-center justify-center)"
+      :style="bgImageStyle"
+    >
+      <div class="mask-card-content">
+        <div
+          class="mask-content-header flex flex-(items-center justify-between)"
+        >
+          <h5 class="mask-content-title">{{ title }}</h5>
+          <span class="mask-content-actions">
+            <span class="mask-content-action">
+              <span>查看服务介绍</span>
+              <van-icon name="arrow" />
+            </span>
+          </span>
+        </div>
+        <div class="mask-content-main">
+          <div class="mask-content-example-image">
+            <img :src="exampleImageUrl" />
+          </div>
+        </div>
+        <div class="mask-content-footer">
+          <p class="mask-content-desc-text">{{ desc }}</p>
+          <div class="mask-content-footer-btn">
+            <van-button type="primary" class="mask-footer-btn" size="small">
+              {{ footerButtonText }}
+            </van-button>
+          </div>
+        </div>
+      </div>
     </div>
     </div>
-    <div class="banner-center">
-      <div class="banner-center-title">数据导出</div>
-      <p class="banner-center-subtitle">
-        最近5年招标采购数据均可导出下载,如需更多年份和行业字段您可申请数据定制
-      </p>
-    </div>
-    <div class="banner-right">
-      <AppIcon name="arrow" />
-    </div>
-  </ContentModuleCard>
+  </section>
 </template>
 </template>
 <script>
 <script>
-import ContentModuleCard from '@/views/article/ui/ContentModuleCard.vue'
-import { AppIcon } from '@/ui'
+import { Icon, Button } from 'vant'
+import { getAssetsFile } from '@/utils'
+
 export default {
 export default {
   name: 'MaskCard',
   name: 'MaskCard',
   components: {
   components: {
-    ContentModuleCard,
-    AppIcon
+    [Icon.name]: Icon,
+    [Button.name]: Button
   },
   },
   props: {
   props: {
-    dataList: {
-      type: Array,
-      default() {
-        return []
+    title: {
+      type: String,
+      default: '大会员专家版权益'
+    },
+    bgImage: {
+      type: String,
+      default: 'mask/bg/customer-list-mask-bg@2x.png'
+    },
+    exampleImage: {
+      type: String,
+      default: 'mask/example/customer-list-example-img@2x.png'
+    },
+    desc: {
+      type: String,
+      default: '根据区域、业务范围、客户类型帮助企业快速找到目标地区潜在业务需求客户及联系方式。'
+    },
+    footerButtonText: {
+      type: String,
+      default: '免费体验'
+    }
+  },
+  computed: {
+    bgImageStyle() {
+      return {
+        backgroundImage: `url(${getAssetsFile(this.bgImage)})`
       }
       }
+    },
+    exampleImageUrl() {
+      return `${getAssetsFile(this.exampleImage)}`
     }
     }
   },
   },
   data() {
   data() {
@@ -40,4 +83,62 @@ export default {
 }
 }
 </script>
 </script>
 
 
-<style lang="scss" scoped></style>
+<style lang="scss" scoped>
+.mask-card-bg {
+  padding: 45px 0;
+  background-size: 100% auto;
+}
+.mask-card-content {
+  padding: 16px;
+  width: 303px;
+  min-height: 371px;
+  font-size: 13px;
+  line-height: 20px;
+  background: transparent
+    url(@/assets/image/mask/bg/mask-content-wrapper-bg.png) no-repeat;
+  background-size: auto 100%;
+  background-position: top center;
+  border-radius: 8px;
+}
+.mask-content-header {
+  font-size: 13px;
+  line-height: 20px;
+  color: $gold_light;
+  h5 {
+    font-weight: 400;
+  }
+}
+
+.mask-content-example-image {
+  position: relative;
+  margin: 12px 0;
+  border-radius: 4px;
+  overflow: hidden;
+
+  &::after {
+    content: '示例';
+    position: absolute;
+    top: 0;
+    right: 0;
+    border-top-right-radius: 4px;
+    padding: 1px 8px;
+    font-size: 13px;
+    line-height: 20px;
+    color: $main;
+    background-color: $color_main_background;
+  }
+
+  img {
+    display: block;
+    width: 100%;
+  }
+}
+.mask-content-footer-btn {
+  margin-top: 12px;
+}
+.mask-footer-btn {
+  width: 100%;
+  height: 36px;
+  border-radius: 6px;
+}
+</style>

+ 1 - 1
apps/mobile/src/views/article/ui/ServiceIntroCard.vue

@@ -2,7 +2,7 @@
   <section class="service-intro-card bg-white">
   <section class="service-intro-card bg-white">
     <header
     <header
       v-if="showHeader"
       v-if="showHeader"
-      class="service-intro-header bg-white flex flex-(item-center justify-between)"
+      class="service-intro-header bg-white flex flex-(items-center justify-between)"
     >
     >
       <h5 class="service-intro-title">
       <h5 class="service-intro-title">
         <slot name="title">{{ title }}</slot>
         <slot name="title">{{ title }}</slot>

+ 43 - 0
apps/mobile/src/views/article/ui/ServiceIntroMaskCard.vue

@@ -0,0 +1,43 @@
+<template>
+  <div class="service-intro-mask-card bg-white">
+    <div class="intro-mask-container">
+      <ServiceIntroCard class="content-card" showHeader />
+    </div>
+  </div>
+</template>
+<script>
+import ServiceIntroCard from '@/views/article/ui/ServiceIntroCard.vue'
+export default {
+  name: 'ServiceIntroMaskCard',
+  components: {
+    ServiceIntroCard
+  },
+  props: {
+    dataList: {
+      type: Array,
+      default() {
+        return []
+      }
+    }
+  },
+  data() {
+    return {}
+  },
+  created() {},
+  methods: {}
+}
+</script>
+
+<style lang="scss" scoped>
+.intro-mask-container {
+  display: flex;
+  align-items: center;
+  padding: 0 12px;
+  height: 282px;
+  background: #fff url(@/assets/image/mask/bg/service-intro-bg@2x.png) no-repeat;
+  background-size: contain;
+}
+.content-card {
+  width: 100%;
+}
+</style>