You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
288 lines
8.0 KiB
288 lines
8.0 KiB
import { FetchInitBorrowerNumStatistics, FetchInitArchivesTypeNum, FetchInitArchivesTypeStatistics, FetchStorageStatistics, FetchInitArchivesSearchRanking, FetchInitAddArchivesStatistics } from '@/api/archivesManage/statistics'
|
|
// import qs from 'qs'
|
|
|
|
export const statisticsCrud = {
|
|
// 组件共用属性
|
|
data() {
|
|
return {
|
|
cateDate: '',
|
|
typeDate: '',
|
|
inOutStorageDate: '',
|
|
arcSearchDate: '',
|
|
arcAddDate: '',
|
|
pickerOptions: {
|
|
disabledDate(time) {
|
|
return time.getTime() > Date.now() - 8.64e6
|
|
}
|
|
},
|
|
lendData: [],
|
|
cateData: [],
|
|
typeData: [],
|
|
storageData: {
|
|
storageMonths: [],
|
|
inStorageData: [],
|
|
outStorageData: []
|
|
},
|
|
searchAcrivesData: {
|
|
searchName: [],
|
|
searchValue: []
|
|
},
|
|
addArcivesData: {
|
|
addArcivesMonth: [],
|
|
addArcivesNum: []
|
|
},
|
|
numTop: '10',
|
|
options: [{
|
|
value: '10',
|
|
label: '10'
|
|
}, {
|
|
value: '20',
|
|
label: '20'
|
|
}, {
|
|
value: '30',
|
|
label: '30'
|
|
}, {
|
|
value: '40',
|
|
label: '40'
|
|
}, {
|
|
value: '50',
|
|
label: '50'
|
|
}]
|
|
}
|
|
},
|
|
// 组件挂载时的共用方法
|
|
mounted() {
|
|
this.getBorrowerNumSta()
|
|
this.getArchivesTypeNum()
|
|
this.getArchivesTypeStatistics()
|
|
this.getStorageStatistics()
|
|
this.getArchivesSearchRanking()
|
|
this.getAddArchivesStatistics()
|
|
},
|
|
// 组件共用方法
|
|
methods: {
|
|
// 档案借阅统计
|
|
// getBorrowerNumSta() {
|
|
// FetchInitBorrowerNumStatistics().then(res => {
|
|
// if (res) {
|
|
// delete res.total
|
|
// // 固定排序 '在库档案', '已借档案', '待借档案', '逾期档案', '异常档案'
|
|
// const borrowerArr = []
|
|
// for (const i in res) {
|
|
// const obj = {}
|
|
// obj.name = i
|
|
// obj.value = res[i]
|
|
// if (i === 'inStorage') {
|
|
// obj.sequence = 1
|
|
// } else if (i === 'borrow') {
|
|
// obj.sequence = 2
|
|
// } else if (i === 'waitBorrow') {
|
|
// obj.sequence = 3
|
|
// } else if (i === 'overdue') {
|
|
// obj.sequence = 4
|
|
// } else if (i === 'abnormal') {
|
|
// obj.sequence = 5
|
|
// }
|
|
// borrowerArr.push(obj)
|
|
// }
|
|
// this.arrSortByKey(borrowerArr, 'sequence', false)
|
|
// borrowerArr.forEach(item => {
|
|
// this.lendData.push(item.value)
|
|
// console.log(this.lendData)
|
|
// })
|
|
// }
|
|
// })
|
|
// },
|
|
getBorrowerNumSta() {
|
|
FetchInitBorrowerNumStatistics().then(res => {
|
|
if (res) {
|
|
delete res.total
|
|
// 新的固定排序: '逾期档案', '已借档案', '在库档案'
|
|
const borrowerArr = []
|
|
for (const i in res) {
|
|
const obj = {}
|
|
obj.name = i
|
|
obj.value = res[i]
|
|
// 重新定义排序序号
|
|
if (i === 'overdue') { // 逾期档案 - 第1位
|
|
obj.sequence = 1
|
|
} else if (i === 'borrow') { // 已借档案 - 第2位
|
|
obj.sequence = 2
|
|
} else if (i === 'inStorage') { // 在库档案 - 第3位
|
|
obj.sequence = 3
|
|
}
|
|
// 只添加需要的三类数据,过滤掉待借、异常档案
|
|
if (obj.sequence) {
|
|
borrowerArr.push(obj)
|
|
}
|
|
}
|
|
// 按sequence排序
|
|
this.arrSortByKey(borrowerArr, 'sequence', true)
|
|
// 清空原有数据(避免多次调用累加)
|
|
this.lendData = []
|
|
borrowerArr.forEach(item => {
|
|
this.lendData.push(item.value)
|
|
})
|
|
}
|
|
})
|
|
},
|
|
// 档案类别 - 年选择
|
|
handleCateDate() {
|
|
this.cateData = []
|
|
this.getArchivesTypeNum()
|
|
},
|
|
// 档案类别
|
|
getArchivesTypeNum() {
|
|
let params
|
|
if (this.cateDate) {
|
|
params = {
|
|
'year': this.cateDate
|
|
}
|
|
} else {
|
|
params = {
|
|
'year': null
|
|
}
|
|
}
|
|
FetchInitArchivesTypeNum(params).then(res => {
|
|
if (res) {
|
|
for (const i in res) {
|
|
this.cateData.push(res[i])
|
|
}
|
|
}
|
|
})
|
|
},
|
|
// 档案类型 - 月选择
|
|
handleTypeDate() {
|
|
this.typeData = []
|
|
this.getArchivesTypeStatistics()
|
|
},
|
|
// 档案类型
|
|
getArchivesTypeStatistics() {
|
|
let params
|
|
if (this.typeDate) {
|
|
params = {
|
|
'yearMonth': this.typeDate
|
|
}
|
|
} else {
|
|
params = {
|
|
'yearMonth': null
|
|
}
|
|
}
|
|
FetchInitArchivesTypeStatistics(params).then(res => {
|
|
if (res) {
|
|
res.map(item => {
|
|
const obj = {}
|
|
obj.name = item.archivesType
|
|
obj.value = item.archivesNum
|
|
this.typeData.push(obj)
|
|
})
|
|
}
|
|
})
|
|
},
|
|
// 档案类别 - 年选择
|
|
handleStorageDate() {
|
|
this.getStorageStatistics()
|
|
},
|
|
// 出入库管理情况
|
|
getStorageStatistics() {
|
|
let params
|
|
let getYear
|
|
if (this.inOutStorageDate) {
|
|
params = {
|
|
'year': this.inOutStorageDate
|
|
}
|
|
getYear = this.inOutStorageDate
|
|
} else {
|
|
params = {
|
|
'year': null
|
|
}
|
|
getYear = new Date().getFullYear()
|
|
}
|
|
FetchStorageStatistics(params).then(res => {
|
|
if (res) {
|
|
this.storageData.storageMonths = []
|
|
res.months.forEach(item => {
|
|
this.storageData.storageMonths.push(getYear + '/' + item)
|
|
})
|
|
this.storageData.inStorageData = res.inStorage
|
|
this.storageData.outStorageData = res.outStorage
|
|
}
|
|
})
|
|
},
|
|
handleSearchDate() {
|
|
this.getArchivesSearchRanking()
|
|
},
|
|
selectNumTop(val) {
|
|
this.numTop = val
|
|
this.searchAcrivesData = {
|
|
searchName: [],
|
|
searchValue: []
|
|
}
|
|
this.getArchivesSearchRanking()
|
|
},
|
|
// 档案检索排名
|
|
getArchivesSearchRanking() {
|
|
let params
|
|
if (this.arcSearchDate) {
|
|
params = {
|
|
'yearMonth': this.arcSearchDate,
|
|
'top': this.numTop
|
|
}
|
|
} else {
|
|
params = {
|
|
'yearMonth': null,
|
|
'top': this.numTop
|
|
}
|
|
}
|
|
FetchInitArchivesSearchRanking(params).then(res => {
|
|
if (res) {
|
|
this.arrSortByKey(res, 'num', true)
|
|
this.searchAcrivesData.searchName = res.map(item => item.cnName)
|
|
this.searchAcrivesData.searchValue = res.map(item => item.num)
|
|
}
|
|
})
|
|
},
|
|
handleArcAddSta() {
|
|
this.getAddArchivesStatistics()
|
|
},
|
|
// 档案实际情况
|
|
getAddArchivesStatistics() {
|
|
let params
|
|
let getYear
|
|
if (this.arcAddDate) {
|
|
params = {
|
|
'year': this.arcAddDate
|
|
}
|
|
getYear = this.arcAddDate
|
|
} else {
|
|
params = {
|
|
'year': null
|
|
}
|
|
getYear = new Date().getFullYear()
|
|
}
|
|
FetchInitAddArchivesStatistics(params).then(res => {
|
|
if (res) {
|
|
this.addArcivesData.addArcivesMonth = []
|
|
res.months.forEach(item => {
|
|
this.addArcivesData.addArcivesMonth.push(getYear + '/' + item)
|
|
})
|
|
this.addArcivesData.addArcivesNum = res.nums
|
|
}
|
|
})
|
|
},
|
|
// array: 需要进行排序的数组
|
|
// key: 根据某个属性进行排序
|
|
// order: 升序/降序 true:升序 false:降序
|
|
arrSortByKey(array, property, order) {
|
|
return array.sort(function(a, b) {
|
|
const value1 = a[property]
|
|
const value2 = b[property]
|
|
if (order) { // 升序
|
|
return value1 - value2
|
|
} else { // 降序
|
|
return value2 - value1
|
|
}
|
|
})
|
|
}
|
|
}
|
|
}
|