为 ElementUI 中的 Message 设置全局的偏移量
部分系统会在顶部有导航栏,element-ui 中 Message 消息提示的默认偏移量是 20px
,会遮挡顶部内容,所以需要将偏移量进行全局调整。
环境
- Vue 2.x
- ElementUI 2.x
源码
import { Message as ElementUI_Message } from 'element-ui'
const OffsetMessage = function(options, type) {
options = options || {}
if (typeof options === 'string') {
options = { message: options }
}
if (options.offset === undefined || options.offset === null) {
options.offset = 90
}
if (typeof type === 'string') {
options.type = type
}
return ElementUI_Message(options)
}
for (let prop in ElementUI_Message) {
if (prop === 'success' || prop === 'warning' || prop === 'info' || prop === 'error') {
OffsetMessage[prop] = function(options) {
return OffsetMessage(options, prop)
}
continue
}
OffsetMessage[prop] = ElementUI_Message[prop]
}
export default OffsetMessage
export const Message = OffsetMessage
替换 Message
修改 main.js 文件,必须在 Vue.use(ElementUI)
之后重设 $message
才能生效
import Vue from 'vue'
import ElementUI from 'element-ui'
import OffsetMessage from './offset-message'
Vue.use(ElementUI)
Vue.prototype.$message = OffsetMessage
调用调整
1、如果是通过全局方法 $message
的方式进行调用,则无需进行修改
2、如果是通过单独引用的方式进行调用,需要修改导入方式
// import { Message } from 'element-ui'
import { Message } from './offset-message'
Message.success('OK')