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 字符串乘法
Aug 20 Javascript
用JS将搜索的关键字高亮显示实现代码
Nov 08 Javascript
Extjs改变树节点的勾选状态点击按钮将复选框去掉
Nov 14 Javascript
javascript简单实现跟随滚动条漂浮的返回顶部按钮效果
Aug 19 Javascript
JS中用try catch对代码运行的性能影响分析
Dec 26 Javascript
总结几道关于Node.js的面试问题
Jan 11 Javascript
Jquery中.bind()、.live()、.delegate()和.on()之间的区别详解
Aug 01 jQuery
Vuex提升学习篇
Jan 11 Javascript
vue-cli webpack 引入swiper的操作方法
Sep 15 Javascript
vue项目中微信登录的实现操作
Sep 08 Javascript
jquery自定义组件实例详解
Dec 31 jQuery
js加减乘除精确运算方法实例代码
Jan 17 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
如何选购合适的收音机
2021/03/01 无线电
php+oracle 分页类
2006/10/09 PHP
让Json更懂中文(JSON_UNESCAPED_UNICODE)
2011/10/27 PHP
解析PHP函数array_flip()在重复数组元素删除中的作用
2013/06/27 PHP
PHP数组遍历知识汇总(包含遍历方法、数组指针操作函数、数组遍历测速)
2014/07/05 PHP
php同时使用session和cookie来保存用户登录信息的实现代码
2016/05/13 PHP
laravel学习教程之关联模型
2016/07/30 PHP
根据key删除数组中指定的元素实现方法
2017/03/02 PHP
PHP 应用容器化以及部署方法
2018/02/12 PHP
javascript 二分法(数组array)
2010/04/24 Javascript
jquery教程ajax请求json数据示例
2014/01/13 Javascript
JavaScript String 对象常用方法详解
2016/05/13 Javascript
form+iframe解决跨域上传文件的方法
2016/11/18 Javascript
解决element-ui中下拉菜单子选项click事件不触发的问题
2018/08/22 Javascript
Node.js操作系统OS模块用法分析
2019/01/04 Javascript
jQuery创建折叠式菜单
2019/06/15 jQuery
Vuejs中的watch实例详解(监听者)
2020/01/05 Javascript
微信小程序scroll-view实现滚动到锚点左侧导航栏点餐功能(点击种类,滚动到锚点)
2020/06/11 Javascript
[06:13]DOTA2进化论(修改版)
2013/10/08 DOTA
[02:04]完美世界城市挑战赛秋季赛报名开始 谁是solo路人王?
2019/10/10 DOTA
将Python的Django框架与认证系统整合的方法
2015/07/24 Python
Python实现去除列表中重复元素的方法小结【4种方法】
2018/04/27 Python
python+numpy+matplotalib实现梯度下降法
2018/08/31 Python
matlab灰度图像调整及imadjust函数的用法详解
2020/02/27 Python
Django 返回json数据的实现示例
2020/03/05 Python
Napapijri西班牙在线商店:夹克、外套、运动衫等
2020/11/05 全球购物
编写类String的构造函数、析构函数和赋值函数
2012/05/29 面试题
综合测评自我鉴定
2013/10/08 职场文书
绩效工资实施方案
2014/03/15 职场文书
运动会铅球比赛加油稿
2014/09/26 职场文书
县政府班子个人对照检查材料
2014/10/05 职场文书
群众路线领导班子整改方案
2014/10/25 职场文书
新婚姻法离婚协议书范文
2014/11/30 职场文书
2014城乡环境综合治理工作总结
2014/12/19 职场文书
超级实用的公文标题大全!
2019/07/19 职场文书
Java数组与堆栈相关知识总结
2021/06/29 Java/Android