- 在utils下新建request.js引入 axios 库、进度条库 NProgress和配置 axios 拦截器
import axios from 'axios'
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'
const service = axios.create({
baseURL: process.env.VUE_APP_URL,
timeout: 30000,
method: "GET",
});
service.interceptors.request.use(config => {
NProgress.start()
return config
}, error => {
return Promise.reject(error)
})
service.interceptors.response.use(response => {
NProgress.done()
return response
}, error => {
return Promise.reject(error)
})
export default service;
- 调用 request 发送请求,并在 config 中传入 onDownloadProgress 属性
import request from "@/utils/request";
request({
method: 'get',
url: '/download/file',
responseType: 'blob',
onDownloadProgress: progressEvent => {
const progress = progressEvent.loaded / progressEvent.total * 100
NProgress.set(progress)
}
}).then(res => {
}).catch(error => {
})