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

news2024/9/20 1:03:21

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.coloradmin.cn/o/822155.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

企业如何做好供应商管理?

在现代商业竞争激烈的环境下&#xff0c;供应商管理成为企业取得成功的重要因素之一。十年的供应商管理经验告诉我&#xff0c;建立稳固的合作关系并且持续改进供应链是企业蓬勃发展的关键。 阅读本文您将可以了解&#xff1a;1、供应商管理的重要性&#xff1b;2、管理供应商…

基于多线程实现服务器并发

看大丙老师的B站视频总结的笔记19-基于多线程实现服务器并发分析_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1F64y1U7A2/?p19&spm_id_frompageDriver&vd_sourcea934d7fc6f47698a29dac90a922ba5a3 思路&#xff1a;首先accept是有一个线程的&#xff0c;另外…

apple pencil一代的平替有哪些品牌?好用的苹果平替笔

现在几乎每个人都有一台平板iPad&#xff0c;这可以帮助他们解决很多工作和学习上的问题&#xff0c;比如在工作中处理文件&#xff0c;做一些简单的PPT&#xff0c;如果只用一根手指在iPad上触控的话&#xff0c;就会出现一些点触不准确的地方。所以&#xff0c;为iPad配备一支…

MySQL下载安装与配置以及卸载(最简单最详细的步骤)

目录 引言 一&#xff0c;下载8.0数据库 二&#xff0c;下载5.6系列数据库 三&#xff0c;启动数据库 四&#xff0c;MySQL卸载 引言 The worlds most popular open source database&#xff1a;世界上最流行的开源数据库&#xff01; 一&#xff0c;下载8.0数据库 目前MySQ…

Spark-SortShuffle原理

总结: 每个Task会先把数据发送到缓冲区中&#xff0c;缓冲区满了会排序溢写到临时文件&#xff0c;等到Task计算完成之后&#xff0c;会把这些临时文件合并成一个大文件&#xff0c;和一个index文件&#xff0c;文件内容是有序的&#xff0c;等到所有的Task计算完成之后&#…

华为数通HCIA-华为VRP系统基础

什么是VRP? VRP是华为公司数据通信产品的通用操作系统平台&#xff0c;作为华为公司从低端到核心的全系列路由器、以太网交换机、业务网关等产品的软件核心引擎。 VRP提供以下功能&#xff1a; 实现统一的用户界面和管理界面 实现控制平面功能&#xff0c;并定义转发平面接口…

fork函数 创建子进程

fork&#xff1a; fork函数调用一次&#xff0c;返回两次&#xff1b;对于子进程&#xff0c;返回值0&#xff1b; 对于父进程&#xff0c;返回的是子进程的进程ID。 #include<iostream> #include<string.h> #include<sys/unistd.h> #include<syscall.h&…

MongDB文档--基本概念

阿丹&#xff1a; 不断拓展自己的技术栈&#xff0c;不断学习新技术。 基本概念 MongoDB中文手册|官方文档中文版 - MongoDB-CN-Manual mongdb是文档数据库 MongoDB中的记录是一个文档&#xff0c;它是由字段和值对组成的数据结构。MongoDB文档类似于JSON对象。字段的值可以包…

解读北鼎股份2023上半年财报:稳营收,高品质才是重点?

从上半年大部分公司的财报来看&#xff0c;降本增效仍是主旋律。这其中北鼎股份走出了自己的风格&#xff0c;在小红书等电商平台上推出了热度颇高的话题活动&#xff0c;借用户之力完成产品推广&#xff0c;北鼎股份将消费者的价值发挥到了最大。 从2023年7月19日北鼎股份披露…

面试题:说一说深拷贝和浅拷贝?

JavaScript中存在两大数据类型&#xff1a; 基本类型 和 引用类型 基本类型数据保存在在栈内存中 引用类型数据保存在堆内存中&#xff0c;引用数据类型的变量是一个指向堆内存中实际对象的引用&#xff0c;存在栈中 深拷贝和浅拷贝都只针对于引用类型。 一、 浅拷贝&#xff1…

31.利用linprog 解决 投资问题(matlab程序)

1.简述 语法&#xff1a;[X,FVAL] linprog(f,a,b,Aeq,Beq,LB,UB,X0)&#xff1b; X 为最终解 &#xff0c; FVAL为最终解对应的函数值 *注意&#xff1a;求最大值时&#xff0c;结果FVAL需要取反* f 为决策函数的系数矩阵。 *注意&#xff1a;当所求为最大值…

代码随想录算法训练营第六天| 454.四数相加II,383. 赎金信的交集, 15.三数之和(需要二刷) 18.四数之和(需要二刷)

454.四数相加II 暴力超时 class Solution {public int fourSumCount(int[] nums1, int[] nums2, int[] nums3, int[] nums4) {//超出时间限制//分别从4个数组中任选一个&#xff0c;四数相加0int n nums4.length,index0;int count0;int[] arr1new int[n*n];int[] arr2new i…

机器学习:训练集与测试集分割train_test_split

1 引言 在使用机器学习训练模型算法的过程中&#xff0c;为提高模型的泛化能力、防止过拟合等目的&#xff0c;需要将整体数据划分为训练集和测试集两部分&#xff0c;训练集用于模型训练&#xff0c;测试集用于模型的验证。此时&#xff0c;使用train_test_split函数可便捷高…

Go语言性能优化建议与pprof性能调优详解——结合博客项目实战

文章目录 性能优化建议Benchmark的使用slice优化预分配内存大内存未释放 map优化字符串处理优化结构体优化atomic包小结 pprof性能调优采集性能数据服务型应用go tool pprof命令项目调优分析修改main.go安装go-wrk命令行交互界面图形化火焰图 性能优化建议 简介&#xff1a; …

python用来做什么的,python用来干什么的

大家好&#xff0c;小编为大家解答python用来干什么的的问题。很多人还不知道python用来做什么的&#xff0c;现在让我们一起来看看吧&#xff01; 编程语言python是用来干什么的&#xff1f; python的作用&#xff1a; 1、系统编程&#xff1a;提供API(ApplicationProgrammin…

【算法提高:动态规划】1.3 背包模型 TODO

文章目录 例题列表423. 采药&#xff08;01背包&#xff09;1024. 装箱问题&#xff08;大小和价值相等的01背包&#xff09;1022. 宠物小精灵之收服&#xff08;二维费用的背包问题&#xff09;补充&#xff1a;相关题目——8. 二维费用的背包问题 278. 数字组合&#xff08;0…

阿里云负载均衡SLB网络型NLB负载均衡架构性能详解

阿里云网络型负载均衡NLB是阿里云推出的新一代四层负载均衡&#xff0c;支持超高性能和自动弹性能力&#xff0c;单实例可以达到1亿并发连接&#xff0c;帮您轻松应对高并发业务。网络型负载均衡NLB具有超强性能、自动弹性伸缩、高可用、TCPSSL卸载、多场景流量分发和丰富的高级…

【初阶C语言】数组

目录 一、一维数组 1.一维数组的创建和初始化 2.一维数组的使用 3.一维数组在内存中的存储 二、二维数组 1.二维数组的创建 2.二维数组的初始化 3.二维数组的使用 4.二维数组在内存中的存储 三、数组的越界问题 四、数组传参 前言&#xff1a; 数组在C语言中是一个…

express学习笔记6 - 用户模块

新建router/user.js const express require(express) const routerexpress.Router() router.get(/login, function(req, res, next) {console.log(/user/login, req.body)res.json({code: 0,msg: 登录成功})})module.exportsrouter 在router/user.js引入并使用 const us…

一起学算法(链表篇)

1.链表的概念 对于顺序存储的结构最大的缺点就是插入和排序的时候需要移动大量的元素&#xff0c;所以链表的出生由此而来 先上代码&#xff1a; // 链表 public class LinkedList<T extends Comparable> {// 结点类class Node {T ele; // 当前结点上的元素内容Node ne…