|
@@ -2,6 +2,7 @@ import axios from 'axios'
|
2
|
2
|
import { Message } from 'element-ui'
|
3
|
3
|
import store from '@/store'
|
4
|
4
|
import { getToken, getUserId } from '@/utils/auth'
|
|
5
|
+import { downloadBlob } from './download'
|
5
|
6
|
|
6
|
7
|
// create an axios instance
|
7
|
8
|
const service = axios.create({
|
|
@@ -46,7 +47,13 @@ service.interceptors.response.use(
|
46
|
47
|
response => {
|
47
|
48
|
const res = response.data
|
48
|
49
|
// if the custom code is not 20000, it is judged as an error.
|
49
|
|
- if (res.code !== 1000) {
|
|
50
|
+ const contextType = response.headers['content-type']
|
|
51
|
+ if (contextType.indexOf('application/vnd.ms-excel') > -1) {
|
|
52
|
+ const data = new Blob([res])
|
|
53
|
+ const content = response.headers['content-disposition']
|
|
54
|
+ const fileName = content.replace('attachment;filename=', '')
|
|
55
|
+ downloadBlob(data, decodeURIComponent(fileName))
|
|
56
|
+ } else if (res.code !== 1000) {
|
50
|
57
|
Message({
|
51
|
58
|
message: res.message || 'Error',
|
52
|
59
|
type: 'error',
|