loading.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /**
  2. * 实现全局的请求 loading
  3. * <pre>
  4. * 作者:hugh zhuang
  5. * 邮箱:3378340995@qq.com
  6. * 日期:2015-11-02-下午3:29:34
  7. * 版权:广州流辰信息技术有限公司
  8. * </pre>
  9. */
  10. import { Loading } from 'element-ui'
  11. import I18n from '@/utils/i18n' // Internationalization 国际化
  12. let needLoadingRequestCount = 0
  13. let loading
  14. /**
  15. * 加载
  16. * @param {*} config
  17. */
  18. function startLoading(config = {}) {
  19. loading = Loading.service({
  20. lock: config.lock || true,
  21. text: config.text || I18n.t('common.loading'),
  22. background: config.background
  23. })
  24. }
  25. /**
  26. * 清除loaing
  27. */
  28. function closeLoading() {
  29. if(loading.text !=='保存中'){
  30. loading.close()
  31. }
  32. }
  33. const tryCloseLoading = () => {
  34. if (needLoadingRequestCount === 0) {
  35. closeLoading()
  36. }
  37. }
  38. export function showFullScreenLoading(config) {
  39. if (needLoadingRequestCount === 0) {
  40. needLoadingRequestCount++
  41. startLoading(config)
  42. } else {
  43. needLoadingRequestCount++
  44. }
  45. }
  46. export function tryHideFullScreenLoading() {
  47. if (needLoadingRequestCount <= 0) return
  48. needLoadingRequestCount--
  49. if (needLoadingRequestCount === 0) {
  50. setTimeout(() => {
  51. tryCloseLoading()
  52. }, 200)
  53. }
  54. }