vue 封装 loading 组件

34 篇文章 0 订阅
19 篇文章 0 订阅

这是页面 loading 封装,不是table loading封装.
main.js

import 'element-ui/lib/theme-chalk/index.css'

loading.js

import {
  Loading
} from 'element-ui';

let loadingCount = 0;
let loading;
const startLoading = () => {
  loading = Loading.service({
    target: document.querySelector(".downInfo")
  });
};

const endLoading = () => {
  loading.close();
};

export const showLoading = () => {
  if (loadingCount === 0) {
    startLoading();
  }
  loadingCount += 1;
};

export const hideLoading = () => {
  if (loadingCount <= 0) {
    return;
  }
  loadingCount -= 1;
  if (loadingCount === 0) {
    endLoading();
  }
};

ajax封装工具类:

import {
  showLoading,
  hideLoading
} from '../../components/loading';

  ajaxMethod(urlObj, url, params, callBack, tips) {
    if (document.querySelector(".downInfo")) {
      showLoading()
    }
    axios.defaults.headers.common['Authorization'] = localStorage.getItem('token');
    axios[typeof (urlObj) == 'string' ? 'get' : urlObj.type](url, params || {}, {
      'headers': {
        'Content-Type': 'application/json'
      }
    }).then(function (res) {
      const result = res.data
      if (document.querySelector(".downInfo")) {
        hideLoading()
      }
      callBack(res, result)
      if (tips !== '加载') {
        ModalUtil.messageSuccess(tips + '成功')
      }
    }).catch(err => {
      ModalUtil.messageError(err.response.data.message)
      store.commit("loadingMutation", false);
      if (document.querySelector(".downInfo")) {
        hideLoading()
      }
    })
  },
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值