当前位置: 首页 > news >正文

element-ui中Notification 通知自定义样式、按钮及点击事件

Notification 通知用于悬浮出现在页面角落,显示全局的通知提醒消息。

一、自定义html页面

        element-ui官方文档中说明Notification 通知组件的message 属性支持传入 HTML 片段,但是示例只展示了简单的html片段,通常不能满足开发中的更深入需要,比如我需要把通知弹框添加按钮、复选框,尤其是按钮还会绑定点击事件,这时就不能用示例的html片段;

        应该使用VNode,通过使用它可以实例化不同类型的VNode实例。VNode的兼容性强,因为是 JS 对象,不管 node 还是,浏览器,都可以统一操作,从而获得了服务端渲染、原生渲染、手写渲染函数等能力。

//使用VNode创建一个勾选框
const checkbox = h('input', {attrs: {type: 'checkbox',checked: this.checked},domProps: {checked: this.checked},on: {change: (event) => {this.$store.state.showWarning = event.target.checked}}})const label = h('label', {style:{margin:"10% 0 0 0 ",}}, [checkbox,`不再弹出该类型消息`])//定义确认按钮const button = h('el-button', {props:{type:'primary',size:"mini"},on: {//为按钮绑定点击事件click: ()=>{this. closeWarn(obj)}},style:{border:"none",textAlign:"center",// width:"20%",margin:"5% 0 0 0 ",}}, '确定')const br = h('br')//定义通知弹窗const notification = this.$notify({type:this.warnType,title: this.warn.msg,dangerouslyUseHTMLString: true,offset:50,message:h('div', {style:{width:"100%"},}, [label,br,button]),duration: 0,//自定义类名customClass:`warnNotify`,showClose: false,});

 

 二、自定义按钮以关闭弹框

我们定义了一个按钮,期望通过点击按钮来删除当前点击确定的弹框;

调用 Notification 或 this.$notify 会返回当前 Notification 的实例。如果需要手动关闭实例,可以调用它的 close 方法。

methods中关闭弹窗的方法:

方法为当弹框为多个时,通过close方法,点击确定按钮以删除对应的弹框 

closeWarn(obj) { // 点击确认,关闭弹框,并且删除数组中对应的项   this.notifyList.forEach((item, index) => {//满足以下条件时关闭弹框if (item.id === obj.id && item.flag===obj.flag) {item.notification.close(); // 关闭弹框indices.push(index); // 存储需要删除的索引// 删除对应的项// indices.reverse().forEach((index) => {this.notifyList.splice(index, 1);this.notifyArr.splice(index,1)}});
}

 三、自定义通知弹框的样式

这里做简单展示修改一下弹框的背景透明度;

在上面我们给通知弹框赋予了一个类名即 

  //自定义类名customClass:`warnNotify`,

 在<style></style>中为该类进行样式设计,修改为想要展示的样式。

.warnNotify{background: rgba(255, 255, 255, 0.8) !important;
}

需要注意的是,在当前的vue组件中style不能设置为scoped局部样式,因为添加的消息弹层div不在当前组件下面,也不在APP.vue的div下面,它的div标签和app.vue平级,并且要用!important对样式加权至最高权重!

至此,element-ui中Notification 通知自定义样式、按钮及点击事件完成。

 

http://www.lryc.cn/news/107215.html

相关文章:

  • 无头单向非循环单链表、带头双向循环链表
  • UE4/5C++多线程插件制作(二十、源码)
  • 构建稳健的PostgreSQL数据库:备份、恢复与灾难恢复策略
  • 查看本地mysql账号密码
  • 数据结构:顺序表详解
  • 采集数据筛选-过滤不要数据或只保留指定数据
  • RISC-V基础指令之shift移动指令slli、srli、srai、sll、srl、sra
  • 【沁恒蓝牙mesh】CH58x flash分区与数据存储管理
  • Ctfshow web入门 JWT篇 web345-web350 详细题解 全
  • 2023年国家留学基金委(CSC)青年骨干教师项目即将开始申报
  • GC垃圾回收器【入门笔记】
  • 在 React 中渲染大型数据集的 3 种方法
  • uniapp iOS 消息推送扩展:后台/杀死app进程状态能语音播报
  • 批量创建可配置物料参数文件
  • 性能压力测试的重要性与实施方法
  • HCIP入门静态实验
  • Vue与js的融合,如何编写现代化的前端应用
  • Boost开发指南-3.10singleton_pool
  • 腾讯云从业者认证考试考点——云网络产品
  • Miniled透明屏:超薄、轻便,还有哪些特点?
  • MySQL 极速安装使用与卸载
  • 举个栗子!Tableau 技巧(256):灵活折叠文本表的多级数据行
  • Android View 初始化完成后,如果再调用measure再设置点击事件则点击事件会失效的解决方案
  • 客户端电脑使用 FTP的Cadence_CIS库方法说明 (下)
  • 【ES】笔记-let 声明及其特性
  • wps 预加载项插件本地开发启动项目打开wps 客户端,未看到加载项菜单,
  • uni-app开发微信小程序经常遇到的一些问题及解决方案
  • 一个 git 仓库下拥有多个项目的 git hooks 配置方案
  • 钉钉对接打通金蝶云星空获取流程实例列表详情(宜搭)接口与其他应收单接口
  • 用python做一个小项目,python做简单小项目