创建一个js文件
/** 重写elemen-ui的message,防止出现同一时间弹出多个相同信息的message弹框 */
import { Message } from 'element-ui'
const resetMessage = (options) => {
let doms = document.getElementsByClassName('el-message')
let canShow = true
for (let i = 0; i < doms.length; i++) {
if (options.message === doms[i].getElementsByClassName('el-message__content')[0].innerHTML) {
canShow = false
}
}
if (doms.length === 0 || canShow) {
Message(options)
}
};
['error', 'success', 'info', 'warning'].forEach(type => {
resetMessage[type] = options => {
if (typeof options === 'string') {
options = {
message: options
}
}
options.type = type
return resetMessage(options)
}
})
export const message = resetMessage
在main.js中引入
import { message } from './assets/reset/resetMessage'
Vue.prototype.$message = message
报错解决
’doms’ is never reassigned. Use ‘const’ instead.
在.eslintrc.js文件中添加规则 { “rules”:{ “prefer-const”: “off” } }之后依旧报错
error ‘doms’ is never reassigned. Use ‘const’ instead prefer-const
根据两个提示,只用把let改为const
效果
相同的消息“登陆成功”只显示一个,不同的消息会显示多个
https://blog.csdn.net/dongguan_123/article/details/101290164
https://blog.csdn.net/Linho/article/details/105856686
https://blog.csdn.net/qq_39697433/article/details/108060712