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 相关文章推荐
基于Jquery的回车成tab焦点切换效果代码(Enter To Tab )
Nov 14 Javascript
DOM和XMLHttpRequest对象的属性和方法整理
Jan 04 Javascript
JavaScript 函数参数是传值(byVal)还是传址(byRef) 分享
Jul 02 Javascript
使用mini-define实现前端代码的模块化管理
Dec 25 Javascript
JS实现很酷的水波文字特效实例
Feb 26 Javascript
jQuery过滤选择器经典应用
Aug 18 Javascript
Html中 IFrame的用法及注意点
Dec 22 Javascript
Vue v2.5 调整和更新不完全问题
Oct 24 Javascript
js 两数组去除重复数值的实例
Dec 06 Javascript
JavaScript设计模式之单例模式简单实例教程
Jul 02 Javascript
Vue3.x源码调试的实现方法
Oct 13 Javascript
适合后台管理系统开发的12个前端框架(小结)
Jun 29 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 checkbox复选框值的获取与checkbox默认值输出方法
2010/05/15 PHP
php 数组使用详解 推荐
2011/06/02 PHP
php实现监控varnish缓存服务器的状态
2014/12/30 PHP
PHP中的静态变量及static静态变量使用详解
2015/11/05 PHP
JavaScript高级程序设计(第3版)学习笔记9 js函数(下)
2012/10/11 Javascript
Android中的jQuery:AQuery简介
2014/05/06 Javascript
Nodejs异步回调的优雅处理方法
2014/09/25 NodeJs
AngularJS学习笔记之ng-options指令
2015/06/16 Javascript
解决JavaScript数字精度丢失问题的方法
2015/12/03 Javascript
详解Jquery的事件操作和文档操作
2016/12/19 Javascript
vue实现未登录跳转到登录页面的方法
2018/07/17 Javascript
微信小程序使用二次贝塞尔曲线画波浪
2018/12/25 Javascript
微信小程序保存多张图片的实现方法
2019/03/05 Javascript
详解js动态获取浏览器或页面等容器的宽高
2019/03/13 Javascript
微信小程序生成海报分享朋友圈的实现方法
2019/05/06 Javascript
小程序rich-text组件如何改变内部img图片样式的方法
2019/05/22 Javascript
使用flow来规范javascript的变量类型
2019/09/12 Javascript
JavaScript实现Excel表格效果
2020/02/07 Javascript
[05:46]DOTA2英雄梦之声_第18期_陈
2014/06/20 DOTA
[40:05]LGD vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python encode和decode的妙用
2009/09/02 Python
python中随机函数random用法实例
2015/04/30 Python
CentOS中使用virtualenv搭建python3环境
2015/06/08 Python
更改Python的pip install 默认安装依赖路径方法详解
2018/10/27 Python
python模拟登陆,用session维持回话的实例
2018/12/27 Python
python实现一个简单的udp通信的示例代码
2019/02/01 Python
python进程和线程用法知识点总结
2019/05/28 Python
Django配置文件代码说明
2019/12/04 Python
Python爬取股票信息,并可视化数据的示例
2020/09/26 Python
英国时尚服饰电商:Boohoo
2017/10/12 全球购物
澳大利亚家具和家居用品购物网站:Zanui
2018/12/29 全球购物
计算机本科生自荐信
2013/10/15 职场文书
电大毕业生自我鉴定
2013/11/10 职场文书
医院总经理职责
2013/12/26 职场文书
家长评语和期望
2014/02/10 职场文书
python3操作redis实现List列表实例
2021/08/04 Python