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 相关文章推荐
给moz-firefox下添加IE方法和属性
Apr 10 Javascript
jQuery 打造动态渐变按钮 详细图文教程
Apr 25 Javascript
利用jQuery操作对象数组的实现代码
Apr 27 Javascript
JS实现自动阅读单词(有道单词本添加功能)
Nov 14 Javascript
原生ajax处理json格式数据的实例代码
Dec 25 Javascript
Javascript中从学习bind到实现bind的过程
Jan 05 Javascript
BootStrap中的模态框(modal,弹出层)功能示例代码
Nov 02 Javascript
JS高阶函数原理与用法实例分析
Jan 15 Javascript
vue项目初始化到登录login页面的示例
Oct 31 Javascript
jQuery实现点击滚动到指定元素上的方法分析
Mar 19 jQuery
JQuery使用数组遍历跳出each循环
Sep 01 jQuery
OpenLayers加载缩放控件使用方法详解
Sep 25 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数组操作――获取数组最后一个值的方法
2015/04/14 PHP
js计数器代码
2006/11/04 Javascript
json 实例详细说明教程
2009/10/31 Javascript
js动态给table添加/删除tr的方法
2013/08/02 Javascript
探讨js字符串数组拼接的性能问题
2014/10/11 Javascript
js实现仿百度风云榜可重复多次调用的TAB切换选项卡效果
2015/08/31 Javascript
js输出数据精确到小数点后n位代码
2016/07/02 Javascript
数据结构中的各种排序方法小结(JS实现)
2016/07/23 Javascript
用js实现简单算法的实例代码
2016/09/24 Javascript
原生Javascript和jQuery做轮播图简单例子
2016/10/11 Javascript
Vuex2.0+Vue2.0构建备忘录应用实践
2016/11/30 Javascript
JS面向对象编程实现的拖拽功能案例详解
2020/03/03 Javascript
基于jquery实现彩色投票进度条代码解析
2020/08/26 jQuery
vue中的计算属性和侦听属性
2020/11/06 Javascript
python中set()函数简介及实例解析
2018/01/09 Python
详解windows python3.7安装numpy问题的解决方法
2018/08/13 Python
Python从使用线程到使用async/await的深入讲解
2018/09/16 Python
浅述python2与python3的简单区别
2018/09/19 Python
python 通过麦克风录音 生成wav文件的方法
2019/01/09 Python
Python使用pandas和xlsxwriter读写xlsx文件的方法示例
2019/04/09 Python
PyQt QCombobox设置行高的方法
2019/06/20 Python
使用Django实现把两个模型类的数据聚合在一起
2020/03/28 Python
使用canvas生成含有微信头像的邀请海报没有微信头像问题
2019/10/29 HTML / CSS
Vince官网:全球著名设计师品牌,休闲而优雅的服饰
2017/01/15 全球购物
static关键字的用法
2013/10/07 面试题
数组越界问题
2015/10/21 面试题
将"引用"作为函数参数有哪些特点
2013/04/05 面试题
美术毕业生求职信
2014/02/25 职场文书
重点工程汇报材料
2014/08/27 职场文书
11.9消防日宣传标语
2014/10/08 职场文书
毕业设计致谢语
2015/05/14 职场文书
政协工作总结2015
2015/05/20 职场文书
2015个人年度工作总结范文
2015/05/28 职场文书
员工旷工检讨书
2015/08/15 职场文书
《蟋蟀的住宅》教学反思
2016/02/17 职场文书
《天净沙·秋思》教学反思三篇
2019/11/02 职场文书