• 可以先看一下官网中table的自定义列模板代码
  1.  
    <template>
  2.  
    <el-table
  3.  
    :data="tableData"
  4.  
    border
  5.  
    style="width: 100%">
  6.  
    <el-table-column
  7.  
    label="日期"
  8.  
    width="180">
  9.  
    <template scope="scope">
  10.  
    <el-icon name="time"></el-icon>
  11.  
    <span style="margin-left: 10px">{{ scope.row.date }}</span>
  12.  
    </template>
  13.  
    </el-table-column>
  14.  
    <el-table-column
  15.  
    label="姓名"
  16.  
    width="180">
  17.  
    <template scope="scope">
  18.  
    <el-popover trigger="hover" placement="top">
  19.  
    <p>姓名: {{ scope.row.name }}</p>
  20.  
    <p>住址: {{ scope.row.address }}</p>
  21.  
    <div slot="reference" class="name-wrapper">
  22.  
    <el-tag>{{ scope.row.name }}</el-tag>
  23.  
    </div>
  24.  
    </el-popover>
  25.  
    </template>
  26.  
    </el-table-column>
  27.  
    <el-table-column label="操作">
  28.  
    <template scope="scope">
  29.  
    <el-button
  30.  
    size="small"
  31.  
    @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
  32.  
    <el-button
  33.  
    size="small"
  34.  
    type="danger"
  35.  
    @click="handleDelete(scope.$index, scope.row)">删除</el-button>
  36.  
    </template>
  37.  
    </el-table-column>
  38.  
    </el-table>
  39.  
    </template>
  40.  
     
  41.  
    <script>
  42.  
    export default {
  43.  
    data() {
  44.  
    return {
  45.  
    tableData: [{
  46.  
    date: '2016-05-02',
  47.  
    name: '王小虎',
  48.  
    address: '上海市普陀区金沙江路 1518 弄'
  49.  
    }, {
  50.  
    date: '2016-05-04',
  51.  
    name: '王小虎',
  52.  
    address: '上海市普陀区金沙江路 1517 弄'
  53.  
    }, {
  54.  
    date: '2016-05-01',
  55.  
    name: '王小虎',
  56.  
    address: '上海市普陀区金沙江路 1519 弄'
  57.  
    }, {
  58.  
    date: '2016-05-03',
  59.  
    name: '王小虎',
  60.  
    address: '上海市普陀区金沙江路 1516 弄'
  61.  
    }]
  62.  
    }
  63.  
    },
  64.  
    methods: {
  65.  
    handleEdit(index, row) {
  66.  
    console.log(index, row);
  67.  
    },
  68.  
    handleDelete(index, row) {
  69.  
    console.log(index, row);
  70.  
    }
  71.  
    }
  72.  
    }
  73.  
    </script>
  74.  
     

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

  • 父组件
  1.  
    <el-table
  2.  
    :data="tableData"
  3.  
    border
  4.  
    style="width: 100%">
  5.  
    <el-table-column
  6.  
    label="编号"
  7.  
    prop = "number"
  8.  
    width="180">
  9.  
    <template scope="scope">
  10.  
    <div style="color:red;text-decoration:underline;cursor:pointer;" @click="getMore(scope.row)">{{ scope.row.date }}</div>
  11.  
    </template>
  12.  
    </el-table-column>
  13.  
    <el-table-column
  14.  
    label="名称"
  15.  
    prop = "name"
  16.  
    width="180">
  17.  
    <template scope="scope">
  18.  
    <div style="color:red;text-decoration:underline;cursor:pointer;" @click="getMore2(scope.row)">{{ scope.row.date }}</div>
  19.  
    </template>
  20.  
    </el-table-column>
  21.  
    </el-table>
  22.  
     
  23.  
    <el-dialog :visible-sync="getA">
  24.  
    <my-component :rowaa=row></my-component>
  25.  
    </el-dialog>
  26.  
    <el-dialog :visible-sync="getB">
  27.  
    <my-component2 :rowaa=row></my-component2>
  28.  
    </el-dialog>
  29.  
     
  30.  
    <script>
  31.  
    import myComponent from './mycomponent'
  32.  
    import myComponent2 form './mycomponent2'
  33.  
    export default {
  34.  
    data() {
  35.  
    return {
  36.  
    tableData : [
  37.  
    {"number" : 1,"name":"y"},
  38.  
    {"number" : 2,"name":"x"},
  39.  
    ],
  40.  
    getA : false,
  41.  
    getB : false,
  42.  
    row : ''
  43.  
    }
  44.  
    },
  45.  
    components: {
  46.  
    'my-component' : myComponent,
  47.  
    'my-component2' : myComponent2
  48.  
    },
  49.  
    methods : {
  50.  
    getMore(row) {
  51.  
    this.getA = true
  52.  
    this.row = row
  53.  
    },
  54.  
    getMore2(row) {
  55.  
    this.getB = true
  56.  
    this.row = row
  57.  
    }
  58.  
    }
  59.  
    }
  60.  
    </script>
  61.  
     
  • 子组件 mycomponent
  1.  
    <div>{{formData}}</div>
  2.  
     
  3.  
    <script>
  4.  
    export default {
  5.  
    props: ['rowaa'],
  6.  
    data() {
  7.  
    return {
  8.  
    formData:''
  9.  
    }
  10.  
    },
  11.  
    created() {
  12.  
    this.getData()
  13.  
    },
  14.  
    watch : {
  15.  
    'rowaa' : 'getData'
  16.  
    },
  17.  
    methods: {
  18.  
    getData() {
  19.  
    //从后台获取数据逻辑 model.CacheModel.get('api/' + this.rowaa + '.json')
  20.  
    //通过this.rowaa就可以获取传过来的值
  21.  
    this.formData = 333
  22.  
    }
  23.  
    }
  24.  
    }
  25.  
    </script>
  26.  
     

问题解决

  • 可以使用template+slot插值进行管理
  • 点击找到当前行的信息,然后再根据该信息在子组件中请求数据
  • 也试过通过点击行的事件,判断在哪一个单元格然后处理事件,这样也可以,但如果在表格中列存放的内容发生变化又得重新调整
  • 也试过dialog弹出框直接写在当前单元格的template中,就像官网中例子一样,但是这样会在点击时触发多次(次数与当前页展示的数量一致)

vue+elementui怎样点击table中的单元格触发事件--弹框的更多相关文章

  1. elmentUI为table中的单元格添加事件

    <el-main> <el-tabs v-model="curTab" type="card"> <!-- tab签 --> ...

  2. css实现table中td单元格鼠标悬浮时显示更多内容

    table中,td单元格无法显示下全部内容,需要在鼠标hover时显示全部内容. 正常显示样式: 鼠标hover时: html: <td>displayAddress<span cl ...

  3. 使用js合并table中的单元格

    用primefaces做的报表,领导要求合并相同内容的单元格,但是primefaces没有找到可以合并单元格的组件,想来想去,只有页面加载后用js合并了. http://blog.csdn.net/d ...

  4. POI写docx文件table中的单元格水平、垂直对齐

    核心示例代码 垂直对齐 XWPFTableCell cell = table.getRow(i).getCell(j); cell.setVerticalAlignment(XWPFTableCell ...

  5. 【表格设置】HTML中合并单元格,对列组合应用样式,适应各浏览器的内容换行

    1.常用表格标签 普通    <table>           |           <tr>          |           |          <th ...

  6. 点击table中的某一个td,获得这个tr的所有数据

    功能: 点击table中的某一个td,获得这个tr的所有数据 效果图 <html> <head> <script> function getData2(elemen ...

  7. JS去遍历Table的所有单元格中的内容

    用JS去遍历Table的所有单元格中的内容,可以用如下JS代码实现 function GetInfoFromTable(tableid) { var tableInfo = ""; ...

  8. JS遍历Table的所有单元格内容

    用JS去遍历Table的所有单元格中的内容,可以用如下JS代码实现: 这个方法的参数是唯一标识Table的id,用document对象的获取. function GetInfoFromTable(ta ...

  9. winform中dataGridView单元格根据值设置新值,彻底解决绑定后数据类型转换的困难

    // winform中dataGridView单元格在数据绑定后,数据类型更改困难,只能迂回实现.有时候需要将数字变换为不同的文字描述,就会出现int32到string类型转换的异常,借助CellFo ...

  10. 读取Excel文件中的单元格的内容和颜色

    怎样读取Excel文件中的单元格的内容和颜色 先创建一个Excel文件,在A1和A2中随意输入内容,设置A1的字体颜色为红色,A2的背景为黄色.需要 using Excel = Microsoft.O ...

随机推荐

  1. SEEDLab —— 环境变量与 Set-UID 实验

    [软件安全]实验1--环境变量与 Set-UID 实验 Task 1:配置环境变量 使用printenv或env指令来打印环境变量: ​ 如果只想打印特定的环境变量,如PWD变量,可以使用printe ...

  2. 再也不用写请求HttpHelper了,HttpClient帮助你

    前言 在C#7.1之后,net推出HttpClient类代替WebRequest, HttpWebRequest, ServicePoint, and WebClient ,先来看下他们在以前的作用 ...

  3. 一个使用 WPF 开发的管理系统

    前言 最近发现有不少小伙伴在学习 WPF,今天大姚给大家分享一个使用 WPF 开发的管理系统,该项目包含了用户登录.人员管理.角色授权.插件管理.职位管理.主页功能(邮件.皮肤.设置)等功能,对于一个 ...

  4. element-ui el-dialog中套el-dialog被遮罩遮盖的问题

    添加 append-to-body 属性 具体见官方文档 入口

  5. Mysql之innodb引擎

    优势总结 只有数据库引擎为innodb且事务的隔离级别repeatable--read (可重复读)的时候 才会使用mvcc来实现多版本控制 事务中的可重复读可以有效的避免幻读问题 innodb从硬盘 ...

  6. 【报错解决】【Linux】Name or service not known

    # 配置文件位置 /etc/sysconfig/network-scripts/ # nano ifcfg-eth0查看网卡配置,确认dns已配置,且网关已配置 在虚拟机中添加临时路由网关(要与物理主 ...

  7. re模块:核心函数和方法

    1.compile(pattren,flages=0)   使用任何可选的标记来编译正则表达式的模式然后返回一个正则表达式对象 2.match(pattern,string,flags=0)    尝 ...

  8. Qt编写雷达模拟仿真工具(模拟点/歼击机/航母/发射导弹/爆炸效果/激光雷达等)

    一.简单介绍 雷达模拟仿真工具,主要通过模拟点模拟相关物体,方位.航向角.距离.速度,并且显示相关详情信息可建立跟踪线建立与模拟点联系.可自定义更换模拟点背景达到更加逼真效果,如歼击机,航母发射导弹效 ...

  9. Qt编写安防视频监控系统30-GPS运动轨迹

    一.前言 此功能是一个客户定制的,主要是需要在地图上动态显示GPS的运动轨迹,有个应用场景就是一个带有监控的车子,实时在运动中,后台可以接收到经纬度信息,需要绘制对应的轨迹,相当于这些摄像机点位是动态 ...

  10. hhhhhhomework 验证码界面(非全部自己完成)

    import javax.swing.*;//import 代表"引入" //javax.swing 代表"路径" (在javax文件夹下的swing文件夹) ...