vue element loading 类长时间自动变换文案

132 阅读1分钟
/**
 * @msg: 全局loading
 * @param {*}
 * @return {*}
 */
export class GlobalLoading {
  constructor(config, $loading) {
    this.openCount = 0
    this.config = config
    this.$loading = $loading
    this.timeOut = null
    this.loading = null
  }
  open(text) {
    this.openCount++
    this.loading = this.$loading({
      lock: true,
      text,
      spinner: 'el-icon-loading',
      background: this.config.color
    })
    this.longTime()
  }
  longTime() {
    clearTimeout(this.timeOut)
    this.timeOut = setTimeout(() => {
      this.loading.setText('加载时间较长,请耐心等待...')
    }, 3000)
  }
  close() {
    this.openCount--
    if (this.openCount === 0) {
      clearTimeout(this.timeOut)
      this.loading.close()
    }
  }
}