拦截器

  1. axios.interceptors.request.use((config)=>{
  2. this.isShow = true;
  3. return config;
  4. }, function (error) {
  5. return Promise.reject(error);
  6. });
  7. <van-overlay :show="isShow">
  8. <div class="wrapper" style="display: flex; align-items: center; justify-content: center; height: 100%;" @click.stop>
  9. <van-loading size="24px">上传中...</van-loading>
  10. </div>
  11. </van-overlay>
  12. new Vue({
  13. el: '#app',
  14. data: {
  15. has_file: true,
  16. isShow: false,
  17. }
  18. });

通用

  1. axios({
  2. method: 'put',
  3. url: '{:url("/h5/user/")}{$item.id}',
  4. data: this.request_data,
  5. })
  6. .then(res => {
  7. if(res.data.code === 0){
  8. vant.Toast(res.data.msg);
  9. setTimeout(()=>{
  10. window.location.href = '/h5/user'
  11. },1000)
  12. }else{
  13. vant.Toast(res.data.msg)
  14. }
  15. })
  16. .catch(error => {
  17. vant.Toast(error);
  18. })

上传文件

  1. afterRead(file){
  2. let data = new FormData()
  3. data.append('file', file.file)
  4. data.append('uploadType','image')
  5. axios({
  6. method: 'post',
  7. url: '{:url("/h5/resource/website")}',
  8. data: data,
  9. headers: {
  10. 'Content-Type': 'multipart/form-data'
  11. }
  12. }).then(res => {
  13. if(res.data.code === 0){
  14. this.requestData.imgs.push(res.data.data.key)
  15. }else{
  16. vant.Toast(res.data.msg)
  17. }
  18. }).catch(error => {
  19. vant.Toast(error);
  20. }).finally(res => {
  21. this.isShowLoading = false
  22. this.isShowOverlay = false
  23. })
  24. }