在elementui中Notification组件添加点击事件实例


Posted in Javascript onNovember 11, 2020

1. 官方文档

在elementui中Notification组件添加点击事件实例

2. 添加点击事件,传参

handleClick() {
 let telNo = "1111",
 message = "22222",
 _this = this; //函数作用域问题

 this.$notify({
 title: "通知消息",
 position: "bottom-right",
 dangerouslyUseHTMLString: true,
 message: `<p style="cursor: pointer;">号码:<i>${telNo}</i></p>`,
 duration: 0,
 type: "warning",
 onClick() {
 _this.defineCallBack(message); //自定义回调,message为传的参数
 }
 });
},

//点击事件回调
defineCallBack(message) {
 console.log(message);
},

3. 按一定时间顺序弹出消息通知

//按一定时间顺序弹出消息通知
notifyByOrder() {
 let data = ["aaaa", "bbbbb", "ccccc"];
 for (let i = 0; i < data.length; i++) {
 let item = data[i];
 setTimeout(() => {
 this.$notify({
 title: `通知${i + 1}`,
 position: "bottom-right",
 message: `通知内容${item}`,
 duration: 0,
 type: "warning"
 });
 }, i * 5000);
 }
}

补充知识:vue+elementui怎样点击table中的单元格触发事件--弹框

elementui中提供了点击行处理事件

查看位置: elementui的table事件

elementui的table中怎样点击某个单元格触发事件?

可以先看一下官网中table的自定义列模板代码

<template>
 <el-table
 :data="tableData"
 border
 style="width: 100%">
 <el-table-column
 label="日期"
 width="180">
 <template scope="scope">
 <el-icon name="time"></el-icon>
 <span style="margin-left: 10px">{{ scope.row.date }}</span>
 </template>
 </el-table-column>
 <el-table-column
 label="姓名"
 width="180">
 <template scope="scope">
 <el-popover trigger="hover" placement="top">
  <p>姓名: {{ scope.row.name }}</p>
  <p>住址: {{ scope.row.address }}</p>
  <div slot="reference" class="name-wrapper">
  <el-tag>{{ scope.row.name }}</el-tag>
  </div>
 </el-popover>
 </template>
 </el-table-column>
 <el-table-column label="操作">
 <template scope="scope">
 <el-button
  size="small"
  @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
 <el-button
  size="small"
  type="danger"
  @click="handleDelete(scope.$index, scope.row)">删除</el-button>
 </template>
 </el-table-column>
 </el-table>
</template>
<script>
 export default {
 data() {
 return {
 tableData: [{
  date: '2016-05-02',
  name: '王小虎',
  address: '上海市普陀区金沙江路 1518 弄'
 }, {
  date: '2016-05-04',
  name: '王小虎',
  address: '上海市普陀区金沙江路 1517 弄'
 }, {
  date: '2016-05-01',
  name: '王小虎',
  address: '上海市普陀区金沙江路 1519 弄'
 }, {
  date: '2016-05-03',
  name: '王小虎',
  address: '上海市普陀区金沙江路 1516 弄'
 }]
 }
 },
 methods: {
 handleEdit(index, row) {
 console.log(index, row);
 },
 handleDelete(index, row) {
 console.log(index, row);
 }
 }
 }
</script>

点击单元格弹出框可以使用template-scope方式实现

父组件

<el-table
 :data="tableData"
 border
 style="width: 100%">
 <el-table-column
 label="编号"
 prop = "number"
 width="180">
 <template scope="scope">
 <div style="color:red;text-decoration:underline;cursor:pointer;" @click="getMore(scope.row)">{{ scope.row.date }}</div>
 </template>
 </el-table-column>
 <el-table-column
 label="名称"
 prop = "name"
 width="180">
 <template scope="scope">
 <div style="color:red;text-decoration:underline;cursor:pointer;" @click="getMore2(scope.row)">{{ scope.row.date }}</div>
 </template>
 </el-table-column>
</el-table>
 
<el-dialog :visible-sync="getA">
 <my-component :rowaa=row></my-component>
</el-dialog>
<el-dialog :visible-sync="getB">
 <my-component2 :rowaa=row></my-component2>
</el-dialog>
<script>
 import myComponent from './mycomponent'
 import myComponent2 form './mycomponent2'
 export default {
 data() {
  return {
  tableData : [
   {"number" : 1,"name":"y"},
   {"number" : 2,"name":"x"},
  ],
  getA : false,
  getB : false,
  row : ''
  } 
 },
 components: {
  'my-component' : myComponent,
  'my-component2' : myComponent2 
 },
 methods : {
  getMore(row) {
  this.getA = true
  this.row = row
  },
  getMore2(row) {
  this.getB = true
  this.row = row
  }
 }
 }
</script>

子组件 mycomponent

<div>{{formData}}</div>
 
<script>
export default {
 props: ['rowaa'],
 data() {
 return {
  formData:''
 }
 },
 created() {
 this.getData() 
 },
 watch : {
 'rowaa' : 'getData'
 },
 methods: {
 getData() {
  //从后台获取数据逻辑 model.CacheModel.get('api/' + this.rowaa + '.json')
  //通过this.rowaa就可以获取传过来的值
  this.formData = 333
 }
 }
}
</script>

问题解决

可以使用template+slot插值进行管理

点击找到当前行的信息,然后再根据该信息在子组件中请求数据

也试过通过点击行的事件,判断在哪一个单元格然后处理事件,这样也可以,但如果在表格中列存放的内容发生变化又得重新调整

也试过dialog弹出框直接写在当前单元格的template中,就像官网中例子一样,但是这样会在点击时触发多次(次数与当前页展示的数量一致)

以上这篇在elementui中Notification组件添加点击事件实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Extjs学习笔记之四 工具栏和菜单
Jan 07 Javascript
JQuery each()函数如何优化循环DOM结构的性能
Dec 10 Javascript
Js日期选择自动填充到输入框(界面漂亮兼容火狐)
Aug 02 Javascript
AngularJS初始化静态模板详解
Jan 14 Javascript
详解Wondows下Node.js使用MongoDB的环境配置
Mar 01 Javascript
轻松掌握JavaScript单例模式
Aug 25 Javascript
jQuery使用animate实现ul列表项相互飘动效果示例
Sep 16 Javascript
layui table 参数设置方法
Aug 14 Javascript
vue展示dicom文件医疗系统的实现代码
Aug 27 Javascript
vue中的router-view组件的使用教程
Oct 23 Javascript
vue中全局路由守卫中替代this操作(this.$store/this.$vux)
Jul 24 Javascript
jQuery实现开关灯效果
Aug 02 jQuery
vue.js+element 默认提示中英文操作
Nov 11 #Javascript
Vue 解决在element中使用$notify在提示信息中换行问题
Nov 11 #Javascript
vue 实现element-ui中的加载中状态
Nov 11 #Javascript
解决vant框架做H5时踩过的坑(下拉刷新、上拉加载等)
Nov 11 #Javascript
JS前端基于canvas给图片添加水印
Nov 11 #Javascript
vant-ui框架的一个bug(解决切换后onload不触发)
Nov 11 #Javascript
使用Vant完成Dialog弹框案例
Nov 11 #Javascript
You might like
PHP在不同页面间传递Json数据示例代码
2013/06/08 PHP
php学习笔记之面向对象
2014/11/08 PHP
php使用Jpgraph创建柱状图展示年度收支表效果示例
2017/02/15 PHP
利用php生成验证码
2017/02/23 PHP
php提供实现反射的方法和实例代码
2019/09/17 PHP
javascript利用apply和arguments复用方法
2013/11/25 Javascript
js动态拼接正则表达式的两种方法
2014/03/04 Javascript
Javascript排序算法之合并排序(归并排序)的2个例子
2014/04/04 Javascript
js事件绑定快捷键以ctrl+k为例
2014/09/30 Javascript
js实现tab切换效果实例
2015/09/16 Javascript
关于JSON与JSONP简单总结
2016/08/16 Javascript
nodejs模块nodemailer基本使用-邮件发送示例(支持附件)
2017/03/28 NodeJs
如何使用bootstrap框架 bootstrap入门必看!
2017/04/13 Javascript
从零开始搭建一个react项目开发
2018/02/09 Javascript
手把手教你 CKEDITOR 4 实现Dialog 内嵌 IFrame操作详解
2019/06/18 Javascript
JS+html5实现异步上传图片显示上传文件进度条功能示例
2019/11/09 Javascript
[01:01]青春无憾,一战成名——DOTA2全国高校联赛开启
2018/02/25 DOTA
简单介绍Python的Django框架加载模版的方式
2015/07/20 Python
Python中对象迭代与反迭代的技巧总结
2016/09/17 Python
python函数的5种参数详解
2017/02/24 Python
Python 删除整个文本中的空格,并实现按行显示
2018/07/24 Python
python实现K近邻回归,采用等权重和不等权重的方法
2019/01/23 Python
python集合是否可变总结
2019/06/20 Python
利用python、tensorflow、opencv、pyqt5实现人脸实时签到系统
2019/09/25 Python
pandas分批读取大数据集教程
2020/06/06 Python
Java Unsafe类实现原理及测试代码
2020/09/15 Python
世界上最大的巴士旅游观光公司:Big Bus Tours
2016/10/20 全球购物
保加利亚运动鞋购物网站:SneakerStudio.bg
2020/12/23 全球购物
化工操作工岗位职责
2014/04/29 职场文书
学校校庆演讲稿
2014/05/22 职场文书
九一八事变演讲稿范文
2014/09/14 职场文书
四风问题个人剖析材料
2014/10/07 职场文书
公司员工培训管理制度
2015/08/04 职场文书
关于开学的感想
2015/08/10 职场文书
2016年秋季开学典礼新闻稿
2015/11/25 职场文书
2019秋季运动会口号
2019/06/25 职场文书