|
|
|
@ -241,6 +241,7 @@ export default { |
|
|
|
|
// }) |
|
|
|
|
|
|
|
|
|
this.getType() |
|
|
|
|
// 如果是从首页点下载按钮跳转过来的,就直接显示下载弹框 |
|
|
|
|
if(this.$route.query.download){ |
|
|
|
|
this.download({ |
|
|
|
|
id: this.$route.query.id, |
|
|
|
@ -330,6 +331,7 @@ export default { |
|
|
|
|
this.$post(`${this.api.getIdQueryTable}?categoryId=${this.defaultType}&showName=${this.keyword}&pageNum=${this.page}&pageSize=${this.pageSize}&updateTime=`).then(res => { |
|
|
|
|
this.listData = res.pageList.records |
|
|
|
|
this.total = res.pageList.total |
|
|
|
|
// 默认显示第一条数据的字段 |
|
|
|
|
this.listData.length && this.preview(this.listData[0],1) |
|
|
|
|
}).catch(res => {}) |
|
|
|
|
}, |
|
|
|
@ -423,6 +425,7 @@ export default { |
|
|
|
|
}, |
|
|
|
|
preview(row,isDefault){ |
|
|
|
|
this.$get(`${this.api.previewData}?tableName=${row.name}&tableId=${row.id}`).then(res => { |
|
|
|
|
// 查询次数+1 |
|
|
|
|
this.$post(this.api.saveRecord,{ |
|
|
|
|
tableId: row.id, |
|
|
|
|
type: 2, |
|
|
|
@ -431,6 +434,7 @@ export default { |
|
|
|
|
let comment = res.comment |
|
|
|
|
let previewHead = [] |
|
|
|
|
comment.map(n => { |
|
|
|
|
// id和操作时间不用显示 |
|
|
|
|
n.field != 'id' && n.field != 'operation_time' && previewHead.push(n) |
|
|
|
|
}) |
|
|
|
|
this.previewHead = previewHead |
|
|
|
@ -438,10 +442,12 @@ export default { |
|
|
|
|
let data = res.data |
|
|
|
|
data.map(n => { |
|
|
|
|
for(let i in n){ |
|
|
|
|
// 如果是以+0000结尾的,就表明这个是时间,则转化为正常的时间格式 |
|
|
|
|
if(typeof n[i] == 'string' && n[i].endsWith('+0000')) n[i] = util.formatDate('yyyy-MM-dd hh:mm:ss',new Date(n[i])) |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
this.previewData = data |
|
|
|
|
// 如果不是加载完数据默认显示的情况,就滚动到页面可视位置 |
|
|
|
|
isDefault || this.$nextTick(() => { |
|
|
|
|
document.querySelector('#previewTable').scrollIntoView() |
|
|
|
|
}) |
|
|
|
@ -452,6 +458,7 @@ export default { |
|
|
|
|
this.fields = val ? this.fieldsList.map(n => n.comment) : [] |
|
|
|
|
}, |
|
|
|
|
download(row){ |
|
|
|
|
// 查询是否购买了该数据,只有购买了才能下载 |
|
|
|
|
this.$get(`${this.api.isDownload}`,{ |
|
|
|
|
tableId: row.id, |
|
|
|
|
schoolId: this.schoolId, |
|
|
|
@ -459,6 +466,7 @@ export default { |
|
|
|
|
this.curRow = row |
|
|
|
|
this.downloadVisible = true |
|
|
|
|
|
|
|
|
|
// 查询有数据的时间段,接口会返回开始时间和结束时间,但也有写数据是没有这两个时间的 |
|
|
|
|
this.$get(`${this.api.getTableTime}`,{ |
|
|
|
|
tableId: row.id |
|
|
|
|
}).then(res => { |
|
|
|
@ -466,12 +474,14 @@ export default { |
|
|
|
|
if(list.startTime){ |
|
|
|
|
startTimeLimit = new Date(list.startTime).getTime() |
|
|
|
|
}else{ |
|
|
|
|
// 如果没有开始时间,则禁止选择开始时间 |
|
|
|
|
this.startTimeDisabled = true |
|
|
|
|
} |
|
|
|
|
if(list.endTime){ |
|
|
|
|
endTimeLimit = new Date(list.endTime).getTime() |
|
|
|
|
this.timeDefault = list.endTime |
|
|
|
|
}else{ |
|
|
|
|
// 如果没有结束时间,则禁止选择结束时间 |
|
|
|
|
this.endTimeDisabled = true |
|
|
|
|
} |
|
|
|
|
}).catch(res => {}) |
|
|
|
@ -501,32 +511,35 @@ export default { |
|
|
|
|
if(!this.endTime) return util.warningMsg('请选择结束时间') |
|
|
|
|
if(!this.frequency) return util.warningMsg('请选择数据频率') |
|
|
|
|
let invalid = false |
|
|
|
|
if(this.startTime && this.endTime){ |
|
|
|
|
let startTime = new Date(this.startTime) |
|
|
|
|
let endTime = new Date(this.endTime) |
|
|
|
|
let frequency = this.frequency |
|
|
|
|
|
|
|
|
|
if(frequency == 2){ |
|
|
|
|
let week = [] |
|
|
|
|
while(startTime <= endTime){ |
|
|
|
|
let weekNum = startTime.getDay() |
|
|
|
|
if(weekNum == 0) weekNum = 7 |
|
|
|
|
week.push(weekNum) |
|
|
|
|
startTime.setTime(startTime.getTime() + 86400000) |
|
|
|
|
} |
|
|
|
|
for(let i = 1;i <= 5;i++){ |
|
|
|
|
if(!week.includes(i)){ |
|
|
|
|
invalid = true |
|
|
|
|
break |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
let startTime = new Date(this.startTime) |
|
|
|
|
let endTime = new Date(this.endTime) |
|
|
|
|
let frequency = this.frequency |
|
|
|
|
|
|
|
|
|
// 只要选择的不是日频,则要判断选择的日期区间有没有包含这段频率对应的完整交易日段 |
|
|
|
|
// 比如选的是周频,则判断选择的时间区间有没有包含一段完整的星期交易日,即星期1~5, |
|
|
|
|
// 选的是月频的话,则判断选择的时间区间有没有包含一个完整的月份,即30天;年份同理 |
|
|
|
|
if(frequency == 2){ |
|
|
|
|
let week = [] |
|
|
|
|
while(startTime <= endTime){ |
|
|
|
|
let weekNum = startTime.getDay() |
|
|
|
|
if(weekNum == 0) weekNum = 7 |
|
|
|
|
week.push(weekNum) |
|
|
|
|
startTime.setTime(startTime.getTime() + 86400000) |
|
|
|
|
} |
|
|
|
|
// 如果没有包含1~5,则提示请选择完整区间,下面同理 |
|
|
|
|
for(let i = 1;i <= 5;i++){ |
|
|
|
|
if(!week.includes(i)){ |
|
|
|
|
invalid = true |
|
|
|
|
break |
|
|
|
|
} |
|
|
|
|
}else if(frequency == 3){ |
|
|
|
|
if((endTime.getTime() - startTime.getTime()) / 86400000 < 30) invalid = true |
|
|
|
|
}else if(frequency == 4){ |
|
|
|
|
if((endTime.getTime() - startTime.getTime()) / 86400000 < 90) invalid = true |
|
|
|
|
}else if(frequency == 5){ |
|
|
|
|
if((endTime.getTime() - startTime.getTime()) / 86400000 < 365) invalid = true |
|
|
|
|
} |
|
|
|
|
}else if(frequency == 3){ |
|
|
|
|
if((endTime.getTime() - startTime.getTime()) / 86400000 < 30) invalid = true |
|
|
|
|
}else if(frequency == 4){ |
|
|
|
|
if((endTime.getTime() - startTime.getTime()) / 86400000 < 90) invalid = true |
|
|
|
|
}else if(frequency == 5){ |
|
|
|
|
if((endTime.getTime() - startTime.getTime()) / 86400000 < 365) invalid = true |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if(invalid) return util.warningMsg('请选择完整区间') |
|
|
|
@ -550,10 +563,13 @@ export default { |
|
|
|
|
}).then((res) => { |
|
|
|
|
msgObj.close() |
|
|
|
|
if(res.data.type != 'multipart/form-data') return util.warningMsg('数据总数为零!') |
|
|
|
|
// 统一调用该方法去下载excel |
|
|
|
|
util.downloadFileDirect(`${this.curRow.showName}.xls`,new Blob([res.data])) |
|
|
|
|
|
|
|
|
|
// 下载记录 |
|
|
|
|
this.$get(`${this.api.downloadRecord}?tableId=${this.curRow.id}&fields=${newFields.join()}` + (startTime ? `&startTime=${startTime}` : '') + (endTime ? `&endTime=${endTime}` : '') + `&frequency=${frequency}`).then(res => {}).catch(res => {}) |
|
|
|
|
|
|
|
|
|
// 下载次数+1 |
|
|
|
|
this.$post(this.api.saveRecord,{ |
|
|
|
|
tableId: this.curRow.id, |
|
|
|
|
type: 1, |
|
|
|
|