拦截器
axios.interceptors.request.use((config)=>{    this.isShow = true;    return config;  }, function (error) {    return Promise.reject(error);});<van-overlay :show="isShow">  <div class="wrapper" style="display: flex; align-items: center; justify-content: center; height: 100%;" @click.stop>    <van-loading size="24px">上传中...</van-loading>    </div></van-overlay>new Vue({  el: '#app',  data: {    has_file: true,    isShow: false,  }});
通用
axios({    method: 'put',    url: '{:url("/h5/user/")}{$item.id}',    data: this.request_data,  })    .then(res => {    if(res.data.code === 0){      vant.Toast(res.data.msg);      setTimeout(()=>{        window.location.href = '/h5/user'      },1000)    }else{      vant.Toast(res.data.msg)    }  })    .catch(error => {    vant.Toast(error);})
上传文件
afterRead(file){  let data = new FormData()  data.append('file', file.file)  data.append('uploadType','image')  axios({    method: 'post',    url: '{:url("/h5/resource/website")}',    data: data,    headers: {      'Content-Type': 'multipart/form-data'    }  }).then(res => {    if(res.data.code === 0){      this.requestData.imgs.push(res.data.data.key)    }else{      vant.Toast(res.data.msg)    }  }).catch(error => {    vant.Toast(error);  }).finally(res => {    this.isShowLoading = false    this.isShowOverlay = false  })}