|
@@ -9,11 +9,8 @@ var vNode = {
|
|
|
empty: emptyComponent
|
|
|
},
|
|
|
data: {
|
|
|
- scrollTop:0,
|
|
|
+ sessStorageKey: '$data-report_month',
|
|
|
barChart: barChart,
|
|
|
- keywords:'',
|
|
|
- area: {},
|
|
|
- keywordsList: [],
|
|
|
keyTip: '',
|
|
|
dateVal:'',
|
|
|
settings1:{
|
|
@@ -133,7 +130,8 @@ var vNode = {
|
|
|
detailInfo: {},
|
|
|
vanlistParams: {
|
|
|
loading: false,
|
|
|
- finished: false
|
|
|
+ finished: false,
|
|
|
+ scrollTop:0
|
|
|
},
|
|
|
listParams: {
|
|
|
sort: 0, // 项目明细排序方式
|
|
@@ -142,6 +140,16 @@ var vNode = {
|
|
|
start: parseInt(utils.getParam('start')),
|
|
|
end: parseInt(utils.getParam('end'))
|
|
|
},
|
|
|
+ filters: {
|
|
|
+ selectKeysArr: [], // 关键词简单数组,用于恢复选择状态
|
|
|
+ keys: [], // 关键词详细数组,用于提交数据
|
|
|
+ area: {},
|
|
|
+ industry: [],
|
|
|
+ industryDetail: {},
|
|
|
+ buyerclass: [],
|
|
|
+ keywords:'',
|
|
|
+ keywordsList: [],
|
|
|
+ },
|
|
|
filterData: {},
|
|
|
stickyOffset: 0
|
|
|
},
|
|
@@ -182,19 +190,19 @@ var vNode = {
|
|
|
this.getPowerInfo()
|
|
|
},
|
|
|
mounted() {
|
|
|
- this.getAllChartsData();
|
|
|
+ const recover = this.reStoreState()
|
|
|
+ if(!recover) {
|
|
|
+ this.getAllChartsData()
|
|
|
if (this.$refs['chartRegCount']) {
|
|
|
this.$refs['chartRegCount'].echarts.resize()
|
|
|
}
|
|
|
- setTimeout(() => {
|
|
|
- this.reStoreState()
|
|
|
- }, 500);
|
|
|
- utils.iosBackRefresh()
|
|
|
- const observer = new IntersectionObserver(this.handleIntersection, {
|
|
|
- root: null, // 默认为浏览器视窗
|
|
|
- threshold: 0, // 交叉比例,0为完全进入视窗
|
|
|
- });
|
|
|
- observer.observe(this.$refs.reportSource)
|
|
|
+ }
|
|
|
+ // utils.iosBackRefresh()
|
|
|
+ const observer = new IntersectionObserver(this.handleIntersection, {
|
|
|
+ root: null, // 默认为浏览器视窗
|
|
|
+ threshold: 0, // 交叉比例,0为完全进入视窗
|
|
|
+ });
|
|
|
+ observer.observe(this.$refs.reportSource)
|
|
|
},
|
|
|
methods: {
|
|
|
handleIntersection(entries) {
|
|
@@ -207,15 +215,15 @@ var vNode = {
|
|
|
},
|
|
|
// 点击项目
|
|
|
setLinkUrl () {
|
|
|
- this.saveScrollTop()
|
|
|
+ this.saveState()
|
|
|
location.href = '/jyapp/big/page/pro_follow_detail'
|
|
|
},
|
|
|
setBuyerLink (data) {
|
|
|
- this.saveScrollTop()
|
|
|
+ this.saveState()
|
|
|
location.href = '/jyapp/big/page/unit_portrayal?entName=' + data.buyer
|
|
|
},
|
|
|
setWinnerLink (id) {
|
|
|
- this.saveScrollTop()
|
|
|
+ this.saveState()
|
|
|
location.href = '/jyapp/big/page/ent_portrait?eId=' + id
|
|
|
},
|
|
|
// 设置排序方式
|
|
@@ -234,6 +242,15 @@ var vNode = {
|
|
|
// 查询项目明细
|
|
|
confirm (data) {
|
|
|
this.filterData = data
|
|
|
+ const { area, buyerclass, industry, items, buyer, winner } = data
|
|
|
+ this.filters.area = area
|
|
|
+ this.filters.buyerclass = buyerclass
|
|
|
+ this.filters.industryDetail = industry
|
|
|
+ this.filters.industry = industry
|
|
|
+ this.filters.keys = items
|
|
|
+ this.filters.selectKeysArr = items
|
|
|
+ this.filters.buyer = buyer
|
|
|
+ this.filters.winner = winner
|
|
|
const params = {
|
|
|
...this.listParams,
|
|
|
...data
|
|
@@ -291,34 +308,48 @@ var vNode = {
|
|
|
this.stickyOffset = headerHeight - 2
|
|
|
}.bind(this), 100)
|
|
|
},
|
|
|
+ // 保存页面状态
|
|
|
+ saveState: function () {
|
|
|
+ this.saveScrollTop()
|
|
|
+ var $data = {
|
|
|
+ tabActive: this.tabActive,
|
|
|
+ listParams: this.listParams,
|
|
|
+ vanlistParams: this.vanlistParams,
|
|
|
+ filterData: this.filterData,
|
|
|
+ detailInfo: this.detailInfo,
|
|
|
+ projectInfo: this.projectInfo,
|
|
|
+ filters: this.filters
|
|
|
+ }
|
|
|
+ sessionStorage.setItem(this.sessStorageKey, JSON.stringify($data))
|
|
|
+ },
|
|
|
saveScrollTop: function () {
|
|
|
- var wrapper = document.querySelector('.j-container .j-main')
|
|
|
+ var wrapper = document.getElementById('report_month')
|
|
|
if (wrapper.scrollTop) {
|
|
|
- this.scrollTop = parseInt(wrapper.scrollTop)
|
|
|
- }
|
|
|
- var $data = {
|
|
|
- scrollTop: this.scrollTop,
|
|
|
+ this.vanlistParams.scrollTop = parseInt(wrapper.scrollTop)
|
|
|
}
|
|
|
- sessionStorage.setItem('$data_month', JSON.stringify($data))
|
|
|
},
|
|
|
reStoreState: function () {
|
|
|
- var $data = sessionStorage.getItem('$data_month')
|
|
|
+ var $data = sessionStorage.getItem(this.sessStorageKey)
|
|
|
if ($data) {
|
|
|
$data = JSON.parse($data)
|
|
|
- this.scrollTop = $data.scrollTop
|
|
|
-
|
|
|
+ Object.assign(this.listParams, $data.listParams)
|
|
|
+ Object.assign(this.vanlistParams, $data.vanlistParams)
|
|
|
+ Object.assign(this.filterData, $data.filterData)
|
|
|
+ Object.assign(this.detailInfo, $data.detailInfo)
|
|
|
+ Object.assign(this.projectInfo, $data.projectInfo)
|
|
|
+ Object.assign(this.filters, $data.filters)
|
|
|
+ this.tabActive = $data.tabActive,
|
|
|
setTimeout(function () {
|
|
|
// 恢复滚动高度
|
|
|
- this.setScrollTop(this.scrollTop)
|
|
|
+ this.setScrollTop(this.vanlistParams.scrollTop)
|
|
|
}.bind(this), 0)
|
|
|
-
|
|
|
- sessionStorage.removeItem('$data_month')
|
|
|
- }
|
|
|
-
|
|
|
+ sessionStorage.removeItem(this.sessStorageKey)
|
|
|
+ return $data
|
|
|
+ }
|
|
|
},
|
|
|
setScrollTop: function (scrollTop) {
|
|
|
this.$nextTick(function () {
|
|
|
- var wrapper = document.querySelector('.j-container .j-main')
|
|
|
+ var wrapper = document.getElementById('report_month')
|
|
|
wrapper.scrollTop = scrollTop
|
|
|
})
|
|
|
},
|
|
@@ -498,14 +529,23 @@ var vNode = {
|
|
|
// 关键词组
|
|
|
that.detailInfo = res.data
|
|
|
if(res.data.item && res.data.item.length > 0 && res.data.item.toString() != '') {
|
|
|
- that.keywords = res.data.item.join('、')
|
|
|
- that.keywordsList = res.data.item
|
|
|
+ that.filters.keywords = res.data.item.join('、')
|
|
|
+ that.filters.keywordsList = res.data.item
|
|
|
+ that.filters.selectKeysArr = res.data.item
|
|
|
} else {
|
|
|
- that.keywords = '--'
|
|
|
+ that.filters.keywords = '--'
|
|
|
}
|
|
|
// 地区
|
|
|
if (res.data.area) {
|
|
|
- that.area = res.data.area
|
|
|
+ that.filters.area = res.data.area
|
|
|
+ }
|
|
|
+ // 采购单位类型
|
|
|
+ if(res.data.buyerClass) {
|
|
|
+ that.filters.buyerclass = res.data.buyerClass
|
|
|
+ }
|
|
|
+ // 行业
|
|
|
+ if(res.data.industry) {
|
|
|
+ that.filters.industry = res.data.industry
|
|
|
}
|
|
|
// 项目数量 1
|
|
|
if (res.data.project_count && res.data.project_count.length > 0) {
|