vue+elementui实现点击table中的单元格触发事件--弹框


Posted in Javascript onJuly 18, 2020

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中,就像官网中例子一样,但是这样会在点击时触发多次(次数与当前页展示的数量一致)

补充知识:element cell-click使用方法

我就废话不多说了,大家还是直接看代码吧~

<el-table width="100%" border :data="Datalist" @cell-click="handle" >

methods: {
	handle(row,column,event,cell) {
	  console.log(row)
	  console.log(column)
	  console.log(event)
	  console.log(cell)
  }
}

以上这篇vue+elementui实现点击table中的单元格触发事件--弹框就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript学习笔记(二) js一些基本概念
Jun 18 Javascript
加载远程图片时,经常因为缓存而得不到更新的解决方法(分享)
Jun 26 Javascript
使用JS读秒使用示例
Sep 21 Javascript
Javascript仿PHP $_GET获取URL中的参数
May 12 Javascript
使用jQuery实现返回顶部
Jan 26 Javascript
JavaScript获取网页中第一个链接ID的方法
Apr 03 Javascript
jquery控制显示服务器生成的图片流
Aug 04 Javascript
jquery带下拉菜单和焦点图代码分享
Aug 24 Javascript
基于jquery实现简单的手风琴特效
Nov 24 Javascript
js实现彩色条纹滚动条效果
Mar 15 Javascript
vue发送websocket请求和http post请求的实例代码
Jul 11 Javascript
vue中nextTick用法实例
Sep 11 Javascript
vuejs element table 表格添加行,修改,单独删除行,批量删除行操作
Jul 18 #Javascript
vue element table中自定义一些input的验证操作
Jul 18 #Javascript
vue cli4.0项目引入typescript的方法
Jul 17 #Javascript
js实现省级联动(数据结构优化)
Jul 17 #Javascript
Vue如何基于vue-i18n实现多国语言兼容
Jul 17 #Javascript
jquery实现有过渡效果的tab切换
Jul 17 #jQuery
使用Vue-cli 中为单独页面设置背景图片铺满全屏
Jul 17 #Javascript
You might like
php 代码优化的42条建议 推荐
2009/09/25 PHP
简单的php数据库操作类代码(增,删,改,查)
2013/04/08 PHP
ubuntu10.04配置 nginx+php-fpm模式的详解
2013/06/03 PHP
php可扩展的验证类实例(可对邮件、手机号、URL等验证)
2015/07/09 PHP
thinkPHP实现签到功能的方法
2017/03/15 PHP
解决laravel id非自增 模型取回为0 的问题
2019/10/11 PHP
TP3.2.3框架文件上传操作实例详解
2020/01/23 PHP
JS IE和FF兼容性问题汇总
2009/02/09 Javascript
让iframe子窗体取父窗体地址栏参数(querystring)
2009/10/13 Javascript
javascript 全等号运算符使用说明
2010/05/31 Javascript
jQuery封装的获取Url中的Get参数示例
2013/11/26 Javascript
JS使用for循环遍历Table的所有单元格内容
2014/08/21 Javascript
jQuery post数据至ashx实例详解
2016/11/18 Javascript
深入理解JavaScript中的预解析
2017/01/04 Javascript
Angular1.x复杂指令实例详解
2017/03/01 Javascript
简单的vuex 的使用案例笔记
2018/04/13 Javascript
js技巧之十几行的代码实现vue.watch代码
2018/06/09 Javascript
nodejs更新package.json中的dependencies依赖到最新版本的方法
2018/10/10 NodeJs
JS实现使用POST方式发送请求
2019/08/30 Javascript
约瑟夫问题的Python和C++求解方法
2015/08/20 Python
Caffe均值文件mean.binaryproto转mean.npy的方法
2018/07/09 Python
Python异常处理操作实例详解
2018/08/28 Python
Python实现的微信支付方式总结【三种方式】
2019/04/13 Python
Python实现多线程/多进程的TCP服务器
2019/09/03 Python
python编写简单端口扫描器
2019/09/04 Python
python 计算积分图和haar特征的实例代码
2019/11/20 Python
英国和爱尔兰最大的地毯零售商:Kukoon
2018/12/17 全球购物
俄罗斯玩具、儿童用品、儿童服装和鞋子网上商店:MyToys.ru
2019/10/14 全球购物
家居饰品店创业计划书
2014/01/31 职场文书
经典促销广告词大全
2014/03/19 职场文书
迎七一演讲稿
2014/09/12 职场文书
检查机关领导群众路线教育实践活动个人整改措施
2014/10/28 职场文书
金秋助学感谢信
2015/01/21 职场文书
培训师岗位职责
2015/02/14 职场文书
2015年保管员工作总结
2015/04/30 职场文书
在校学生证明格式
2015/06/24 职场文书