Bläddra i källkod

Merge branch 'dev/v1.5.43_cyl' of jianyu/page_bigmember_pc into feature/v1.5.43

cuiyalong 2 år sedan
förälder
incheckning
1f71afa72f

+ 4 - 4
src/views/order/components/big-member/info-data.js

@@ -390,7 +390,7 @@ export const SCFX = [
             five: 'icon-tick'
           },
           {
-            threein: '项目金额排名前10的项目明细。',
+            threein: '本周项目规模排名前30的项目明细。',
             four: 'icon-close',
             five: 'icon-tick'
           },
@@ -425,7 +425,7 @@ export const SCFX = [
             five: 'icon-tick'
           },
           {
-            threein: '本月新增项目数量/规模TOP10采购行业明细。',
+            threein: '本月新增项目数量/规模全部采购行业明细。',
             four: 'icon-close',
             five: 'icon-tick'
           },
@@ -455,12 +455,12 @@ export const SCFX = [
             five: 'icon-tick'
           },
           {
-            threein: '采购单位分析,包含采购规模分布、项目数量/金额TOP10采购单位及其重点合作中标单位。',
+            threein: '采购单位分析,包含采购规模分布、项目数量/金额TOP30采购单位及其重点合作中标单位。',
             four: 'icon-close',
             five: 'icon-tick'
           },
           {
-            threein: '中标单位分析,包含中标规模分布、项目数量/中标金额TOP10中标单位及其重点合作采购单位。',
+            threein: '中标单位分析,包含中标规模分布、项目数量/中标金额TOP30中标单位及其重点合作采购单位。',
             four: 'icon-close',
             five: 'icon-tick'
           }

+ 37 - 1
src/views/reportData/pageMonth.vue

@@ -27,7 +27,7 @@
             </div>
           </div>
         </div>
-        <el-tabs class="tabs sticky-tab-container" v-model="tabActiveName" v-if="isFinish">
+        <el-tabs class="tabs sticky-tab-container" v-model="tabActiveName" v-if="isFinish" :before-leave="beforeTabLeave">
           <el-tab-pane label="本月分析" name="1">
             <div class="echartsView" >
               <!-- 项目数量 -->
@@ -400,6 +400,11 @@ export default {
         subscribeAreaMap: {},
         subscribeBuyerClass: []
       },
+      scrollTopInfo: {
+        stickyTop: 0,
+        1: 0, // tabName===1
+        2: 0 // tabName===2
+      },
       // 采购排行榜数据
       rankingDialogOptions: {
         visible: false,
@@ -426,8 +431,16 @@ export default {
       return false
     }
   },
+  watch: {
+    isFinish () {
+      this.$nextTick(() => {
+        this.calcStickyTop()
+      })
+    }
+  },
   mounted () {
     this.getFirst()
+    this.calcStickyTop()
   },
   methods: {
     dateFormatter,
@@ -1052,6 +1065,29 @@ export default {
       const target = this.$el.querySelector('.tabs.sticky-tab-container')
       target.scrollIntoView()
     },
+    calcStickyTop () {
+      const tabs = this.$el.querySelector('.tabs.sticky-tab-container')
+      if (tabs) {
+        this.scrollTopInfo.stickyTop = tabs.offsetTop
+      }
+    },
+    recoverScrollTop (targetActiveName) {
+      const { stickyTop } = this.scrollTopInfo
+      if (stickyTop <= 0) return
+      setTimeout(() => {
+        const scrollTop = this.scrollTopInfo[targetActiveName]
+        window.scrollTo(0, scrollTop)
+      }, 10)
+    },
+    recordScrollTop (tab) {
+      const scrolled = $(window).scrollTop()
+      this.scrollTopInfo[tab] = scrolled
+    },
+    beforeTabLeave (targetActiveName) {
+      this.recordScrollTop(this.tabActiveName)
+      this.recoverScrollTop(targetActiveName)
+      return true
+    },
     // 采购排行榜查看全部
     viewMoreRanking(type){
       switch(type) {

+ 37 - 1
src/views/reportData/pageWeek.vue

@@ -47,7 +47,7 @@
           </div>
         </div>
       </div>
-      <el-tabs class="tabs sticky-tab-container" v-model="tabActiveName" v-if="nodata">
+      <el-tabs class="tabs sticky-tab-container" v-model="tabActiveName" v-if="nodata" :before-leave="beforeTabLeave">
         <el-tab-pane label="本周分析" name="1">
           <div class="echartsView" >
             <!-- 本周新增招标项目数量 -->
@@ -208,6 +208,11 @@ export default {
         follow_ent: [],
         follow_project: []
       },
+      scrollTopInfo: {
+        stickyTop: 0,
+        1: 0, // tabName===1
+        2: 0 // tabName===2
+      },
       projectDetailFilters: {
         keywordsGroupList: [],
         subscribeAreaMap: {},
@@ -215,6 +220,13 @@ export default {
       }
     }
   },
+  watch: {
+    nodata () {
+      this.$nextTick(() => {
+        this.calcStickyTop()
+      })
+    }
+  },
   mounted () {
     const nowtime = dateFormatter(new Date(), 'yyyyMM')
     let time = nowtime
@@ -225,6 +237,7 @@ export default {
     if (this.$refs.weekitempoint && this.$refs.weekitempoint.length > 0) {
       this.$refs.weekitempoint[0].style.display = 'none'
     }
+    this.calcStickyTop()
   },
   computed: {
     getQueryTime () {
@@ -397,6 +410,29 @@ export default {
       })
       return groupList
     },
+    calcStickyTop () {
+      const tabs = this.$el.querySelector('.tabs.sticky-tab-container')
+      if (tabs) {
+        this.scrollTopInfo.stickyTop = tabs.offsetTop
+      }
+    },
+    recoverScrollTop (targetActiveName) {
+      const { stickyTop } = this.scrollTopInfo
+      if (stickyTop <= 0) return
+      setTimeout(() => {
+        const scrollTop = this.scrollTopInfo[targetActiveName]
+        window.scrollTo(0, scrollTop)
+      }, 10)
+    },
+    recordScrollTop (tab) {
+      const scrolled = $(window).scrollTop()
+      this.scrollTopInfo[tab] = scrolled
+    },
+    beforeTabLeave (targetActiveName) {
+      this.recordScrollTop(this.tabActiveName)
+      this.recoverScrollTop(targetActiveName)
+      return true
+    },
     /* 数据处理 */
     // 处理进度条数据
     formatProgressData (data) {