perf: 重置element-ui的message组件,防止重复点击重复弹出提示

This commit is contained in:
“huailei000” 2022-10-18 18:44:56 +08:00 committed by Jiangjie.Bai
parent f8649457d6
commit a97de8afb4
4 changed files with 27 additions and 7 deletions

View File

@ -46,7 +46,6 @@ Vue.use(require('vue-moment'), {
moment
})
// logger
import VueLogger from 'vuejs-logger'
import loggerOptions from './utils/logger'
Vue.use(VueLogger, loggerOptions)
@ -55,14 +54,14 @@ import ECharts from 'vue-echarts'
Vue.component('echarts', ECharts)
import service from '@/utils/request'
Vue.prototype.$axios = service
// lodash
// import _ from 'lodash'
window._ = require('lodash')
// Vue.set(Vue.prototype, '_', _)
// if the table component cannot access `this.$axios`, it cannot send request
Vue.prototype.$axios = service
import { Message } from '@/utils/Message'
Vue.prototype.$message = Message
// 注册全局事件总线
Vue.prototype.$eventBus = new Vue()
new Vue({

20
src/utils/Message.js Normal file
View File

@ -0,0 +1,20 @@
// 重置message防止重复点击重复弹出message弹框
import { Message as elMessage } from 'element-ui'
let messageDom = null
const Message = (options) => {
// 判断弹窗是否已存在, 若存在则关闭
if (messageDom) messageDom.close()
messageDom = elMessage(options)
}
const typeArray = ['success', 'error', 'warning', 'info']
typeArray.forEach(type => {
Message[type] = options => {
if (typeof options === 'string') options = { message: options }
options.type = type
return Message(options)
}
})
export { Message }

View File

@ -3,7 +3,8 @@ import i18n from '@/i18n/i18n'
import { getTokenFromCookie } from '@/utils/auth'
import { getErrorResponseMsg } from '@/utils/common'
import { refreshSessionIdAge } from '@/api/users'
import { Message, MessageBox } from 'element-ui'
import { MessageBox } from 'element-ui'
import { Message } from '@/utils/Message'
import store from '@/store'
import axiosRetry from 'axios-retry'
import router from '@/router'

View File

@ -3,7 +3,7 @@ import store from '@/store'
import router, { resetRouter } from '@/router'
import Vue from 'vue'
import VueCookie from 'vue-cookie'
import { Message } from 'element-ui'
import { Message } from '@/utils/Message'
import orgUtil from '@/utils/org'
import orgs from '@/api/orgs'
import { getPropView, isViewHasOrgs } from '@/utils/jms'