Browse Source

导入导出获取后端返回文件流名称

shibei_master
13176889840 4 years ago
parent
commit
075b3d11b8
  1. 1
      src/utils/request.js
  2. 49
      src/views/modules/base/resi.vue

1
src/utils/request.js

@ -60,6 +60,7 @@ http.interceptors.response.use(response => {
}else { }else {
router.replace({ name: 'login' }) router.replace({ name: 'login' })
} }
return Promise.reject(response.data.msg) return Promise.reject(response.data.msg)
} }
return response return response

49
src/views/modules/base/resi.vue

@ -225,6 +225,7 @@
import resiSearch from '../../components/resiSearch.vue' import resiSearch from '../../components/resiSearch.vue'
import resiForm from '../../components/resiForm.vue' import resiForm from '../../components/resiForm.vue'
import editResi from '../../components/editResi.vue' import editResi from '../../components/editResi.vue'
import axios from 'axios'
export default { export default {
components: { components: {
resiSearch, resiSearch,
@ -333,21 +334,21 @@ export default {
} }
// .post('epmetuser/icresiuser/exportExcel', params) // .post('epmetuser/icresiuser/exportExcel', params)
this.$http({ axios({
url: 'epmetuser/icresiuser/exportExcel', url: window.SITE_CONFIG['apiURL'] + '/epmetuser/icresiuser/exportExcel',
method: 'post', method: 'post',
data: params, data: params,
header: {
headers: { 'Content-Type': 'application/x-download' }
},
responseType: 'blob' responseType: 'blob'
}) })
.then(({ data: res }) => { .then(res => {
console.log('resllll', res)
let fileName = window.decodeURI(res.headers["content-disposition"].split(";")[1].split("=")[1])
console.log('filename', fileName)
// var headerData = res.headers // var headerData = res.headers
// this.download(res, '.xlsx') // this.download(res, '.xlsx')
console.log('res', res) // console.log('res', res)
const fileName = '人员数据.xlsx' // const fileName = '.xlsx'
let blob = new Blob([res], { type: 'application/vnd.ms-excel' }) let blob = new Blob([res.data], { type: 'application/vnd.ms-excel' })
var url = window.URL.createObjectURL(blob) var url = window.URL.createObjectURL(blob)
var aLink = document.createElement('a') var aLink = document.createElement('a')
aLink.style.display = 'none' aLink.style.display = 'none'
@ -357,7 +358,6 @@ export default {
aLink.click() aLink.click()
document.body.removeChild(aLink) // document.body.removeChild(aLink) //
window.URL.revokeObjectURL(url) //blob window.URL.revokeObjectURL(url) //blob
// window.location.href = res.data
}) })
.catch((err) => { .catch((err) => {
console.log('获取导出情失败', err) console.log('获取导出情失败', err)
@ -398,18 +398,27 @@ export default {
this.importBtnTitle = '正在上传中...' this.importBtnTitle = '正在上传中...'
const formData = new FormData() //FormDataappend('key', value) const formData = new FormData() //FormDataappend('key', value)
formData.append('file', file.file) // formData.append('file', file.file) //
this.$http axios({
.post('/epmetuser/icresiuser/importExcel', formData) url: window.SITE_CONFIG['apiURL'] + '/epmetuser/icresiuser/importExcel',
.then(({ data: res }) => { method: 'post',
// if(res.code === 0) { data: formData,
// // this.$refs.upload.submit() responseType: 'blob'
// file.onSuccess() })
// console.log('res-ooooo---', res) .then((res) => {
// }
this.importLoading = false this.importLoading = false
this.importBtnTitle = '导入人员数据' this.importBtnTitle = '导入人员数据'
console.log('res-ooooo---', res) let fileName = window.decodeURI(res.headers["content-disposition"].split(";")[1].split("=")[1])
this.download(res, 'info.xlsx') console.log('filename', fileName)
let blob = new Blob([res.data], { type: 'application/vnd.ms-excel' })
var url = window.URL.createObjectURL(blob)
var aLink = document.createElement('a')
aLink.style.display = 'none'
aLink.href = url
aLink.setAttribute('download', fileName)
document.body.appendChild(aLink)
aLink.click()
document.body.removeChild(aLink) //
window.URL.revokeObjectURL(url) //blob
}) })
.catch( err => { .catch( err => {
console.log('失败', err) console.log('失败', err)

Loading…
Cancel
Save