|
@@ -58,12 +58,11 @@ var vNode = {
|
|
|
detailInfo: {},
|
|
|
vanlistParams: {
|
|
|
loading: false,
|
|
|
- finished: false,
|
|
|
- scrollTop: 0
|
|
|
+ finished: false
|
|
|
},
|
|
|
listParams: {
|
|
|
sort: 0, // 项目明细排序方式
|
|
|
- pageSize: 10,
|
|
|
+ pageSize: 50,
|
|
|
pageNum: 1,
|
|
|
start: parseInt(utils.getParam('start')),
|
|
|
end: parseInt(utils.getParam('end'))
|
|
@@ -78,6 +77,18 @@ var vNode = {
|
|
|
keywords:'',
|
|
|
keywordsList: [],
|
|
|
},
|
|
|
+ tabScrollTop: {
|
|
|
+ '0': 0,
|
|
|
+ '1': 0
|
|
|
+ },
|
|
|
+ // 备选项
|
|
|
+ initFilters: {
|
|
|
+ keys: [],
|
|
|
+ area: {},
|
|
|
+ industry: [],
|
|
|
+ industryDetail: {},
|
|
|
+ buyerclass: []
|
|
|
+ },
|
|
|
filterData: {},
|
|
|
stickyOffset: 0,
|
|
|
confirmSwitch: false // 为true开始查询项目明细
|
|
@@ -89,9 +100,23 @@ var vNode = {
|
|
|
},
|
|
|
watch: {
|
|
|
tabActive (newVal) {
|
|
|
- if (newVal === '1') {
|
|
|
- this.confirmSwitch = true
|
|
|
+ // 保存tab滚动高度
|
|
|
+ let beforetabname = ''
|
|
|
+ let aftertabname = 'tab_' + newVal
|
|
|
+ let beforetabnum = '0'
|
|
|
+ if(newVal === '1') {
|
|
|
+ beforetabname = 'tab_' + 0
|
|
|
+ beforetabnum = '0'
|
|
|
+ } else {
|
|
|
+ beforetabname = 'tab_' + 1
|
|
|
+ beforetabnum = '1'
|
|
|
}
|
|
|
+ var beforewrapper = document.querySelector('.' + beforetabname)
|
|
|
+ this.tabScrollTop[beforetabnum] = parseInt(beforewrapper.scrollTop) || this.tabScrollTop[beforetabnum]
|
|
|
+ setTimeout(() => {
|
|
|
+ var afterwrapper = document.querySelector('.' + aftertabname)
|
|
|
+ afterwrapper.scrollTop = this.tabScrollTop[newVal]
|
|
|
+ }, 100)
|
|
|
}
|
|
|
},
|
|
|
created () {
|
|
@@ -112,6 +137,12 @@ var vNode = {
|
|
|
observer.observe(this.$refs.reportSource)
|
|
|
},
|
|
|
methods: {
|
|
|
+ // tab切换
|
|
|
+ setTabChange (data) {
|
|
|
+ if(data === '1') {
|
|
|
+ this.confirmSwitch = true
|
|
|
+ }
|
|
|
+ },
|
|
|
// 保存页面状态
|
|
|
saveState: function () {
|
|
|
this.saveScrollTop()
|
|
@@ -122,7 +153,9 @@ var vNode = {
|
|
|
filterData: this.filterData,
|
|
|
detailInfo: this.detailInfo,
|
|
|
projectInfo: this.projectInfo,
|
|
|
- filters: this.filters
|
|
|
+ filters: this.filters,
|
|
|
+ tabScrollTop: this.tabScrollTop,
|
|
|
+ initFilters: this.initFilters
|
|
|
}
|
|
|
sessionStorage.setItem(this.sessStorageKey, JSON.stringify($data))
|
|
|
},
|
|
@@ -137,12 +170,15 @@ var vNode = {
|
|
|
this.setFilterData(this.detailInfo)
|
|
|
Object.assign(this.projectInfo, $data.projectInfo)
|
|
|
Object.assign(this.filters, $data.filters)
|
|
|
+ Object.assign(this.tabScrollTop, $data.tabScrollTop)
|
|
|
+ Object.assign(this.initFilters, $data.initFilters)
|
|
|
+ // this.filters.industry = this.filters.industryDetail
|
|
|
this.tabActive = $data.tabActive
|
|
|
|
|
|
setTimeout(function () {
|
|
|
// 恢复滚动高度
|
|
|
- this.setScrollTop(this.vanlistParams.scrollTop)
|
|
|
- }.bind(this), 0)
|
|
|
+ this.setScrollTop(this.tabScrollTop[this.tabActive])
|
|
|
+ }.bind(this), 300)
|
|
|
|
|
|
sessionStorage.removeItem(this.sessStorageKey)
|
|
|
}
|
|
@@ -158,7 +194,7 @@ var vNode = {
|
|
|
saveScrollTop: function () {
|
|
|
var wrapper = document.getElementById('report_week')
|
|
|
if (wrapper.scrollTop) {
|
|
|
- this.vanlistParams.scrollTop = parseInt(wrapper.scrollTop)
|
|
|
+ this.tabScrollTop[this.tabActive] = parseInt(wrapper.scrollTop)
|
|
|
}
|
|
|
},
|
|
|
handleIntersection(entries) {
|
|
@@ -207,7 +243,7 @@ var vNode = {
|
|
|
})
|
|
|
},
|
|
|
// 查询项目明细
|
|
|
- confirm (data) {
|
|
|
+ confirm (data, str) {
|
|
|
this.filterData = data
|
|
|
const { area, buyerclass, industry, items, buyer, winner, industryDetail, selectKeysArr } = data
|
|
|
this.filters.area = area
|
|
@@ -218,22 +254,36 @@ var vNode = {
|
|
|
this.filters.selectKeysArr = selectKeysArr
|
|
|
this.filters.buyer = buyer
|
|
|
this.filters.winner = winner
|
|
|
- data.items = data.items.map((v) => {
|
|
|
+ const itemsArr = items.map((v) => {
|
|
|
return v.s_item
|
|
|
})
|
|
|
- data.industry = industryDetail
|
|
|
- delete data.industryDetail
|
|
|
- delete data.selectKeysArr
|
|
|
+ // data.industry = industryDetail
|
|
|
+ // delete data.industryDetail
|
|
|
+ // delete data.selectKeysArr
|
|
|
const params = {
|
|
|
...this.listParams,
|
|
|
- ...data
|
|
|
+ items: itemsArr,
|
|
|
+ area: area,
|
|
|
+ buyerclass: buyerclass,
|
|
|
+ industry: industryDetail,
|
|
|
+ buyer: buyer,
|
|
|
+ winner: winner
|
|
|
+ }
|
|
|
+ if(!str) {
|
|
|
+ this.resetListParams()
|
|
|
}
|
|
|
this.getProjectInfo(params)
|
|
|
},
|
|
|
+ resetListParams () {
|
|
|
+ this.listParams.pageNum = 1
|
|
|
+ this.projectInfo.list = []
|
|
|
+ this.projectInfo.total = 0
|
|
|
+ },
|
|
|
onListLoad: function () {
|
|
|
this.listParams.pageNum++
|
|
|
this.vanlistParams.loading = true
|
|
|
- this.confirm(this.filterData)
|
|
|
+ // 传noreload不需要重置页码
|
|
|
+ this.confirm(this.filterData, 'noreload')
|
|
|
},
|
|
|
getProjectInfo: function (params) {
|
|
|
const loading = this.showLoading()
|
|
@@ -311,7 +361,7 @@ var vNode = {
|
|
|
this.changeForKeyTip()
|
|
|
},
|
|
|
// 数据部分
|
|
|
- getAllChartsData: function(str){
|
|
|
+ getAllChartsData: function(){
|
|
|
var that = this
|
|
|
$.ajax({
|
|
|
type:'POST',
|
|
@@ -325,9 +375,7 @@ var vNode = {
|
|
|
// console.log(res)
|
|
|
if(res.error_code == 0 && res.data) {
|
|
|
that.detailInfo = res.data
|
|
|
- if(!that.reStoreState()) {
|
|
|
- that.setFilterData(res.data, str)
|
|
|
- }
|
|
|
+ that.setFilterData(res.data)
|
|
|
// 本周新增招标项目数量
|
|
|
if(res.data.zhao_matchitem && res.data.zhao_matchitem.length > 0){
|
|
|
that.curWeekAddBirds = that.formatterWinData(res.data.zhao_matchitem)
|
|
@@ -428,39 +476,35 @@ var vNode = {
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
- resetFilter () {
|
|
|
- this.getAllChartsData('reset')
|
|
|
- },
|
|
|
- setFilterData (data, str) {
|
|
|
+ // resetFilter () {
|
|
|
+ // this.getAllChartsData('reset')
|
|
|
+ // },
|
|
|
+ setFilterData (data) {
|
|
|
var that = this
|
|
|
if(data.item && data.item.length > 0 && data.item.toString() != '') {
|
|
|
that.filters.keywords = data.item.join('、')
|
|
|
that.filters.keywordsList = data.item
|
|
|
- if(str) {
|
|
|
- this.filters.keys = []
|
|
|
- }
|
|
|
} else {
|
|
|
that.filters.keywords = '--'
|
|
|
that.filters.selectKeysArr = []
|
|
|
}
|
|
|
// 地区
|
|
|
if (data.area) {
|
|
|
- that.filters.area = data.area
|
|
|
+ that.initFilters.area = data.area
|
|
|
} else {
|
|
|
- that.filters.area = {}
|
|
|
+ that.initFilters.area = {}
|
|
|
}
|
|
|
// 采购单位类型
|
|
|
if(data.buyerClass) {
|
|
|
- that.filters.buyerclass = data.buyerClass
|
|
|
+ that.initFilters.buyerclass = data.buyerClass
|
|
|
} else {
|
|
|
- that.filters.buyerclass = []
|
|
|
+ that.initFilters.buyerclass = []
|
|
|
}
|
|
|
// 行业
|
|
|
if(data.industry) {
|
|
|
- that.filters.industry = data.industry
|
|
|
+ that.initFilters.industry = data.industry
|
|
|
} else {
|
|
|
- that.filters.industry = []
|
|
|
- that.filters.industryDetail = {}
|
|
|
+ that.initFilters.industry = []
|
|
|
}
|
|
|
this.$forceUpdate()
|
|
|
},
|