|
@@ -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) {
|