这边因为业务的需求,觉得随着产品中心以后需要按钮的增多(图1操作栏的效果),这样会导致排版和按钮过于冗长的问题,用户体验不佳,于是想到利用el-dropdown做一个下拉按钮(图1操作1栏的效果) 。

图1 两种按钮效果

  但是ElementUi官方文档中的handleCommand方法只允许接入一个参数,这个参数用于触发你选择的是哪一个选项。而我们实际中还需要传入一个当前行数(如果和我一样,也是用table显示数据的话)的对象进去,后面要使用这个对象的某些字段传给后台进行一些增删改查的操作。

图2 ElementUi官方文档中el-dropdown的样例

  于是,我们必须在执行handleCommand方法之前,对这个command参数进行重新封装成一个对象,使其内部包含我们想要的数据方便后面调用。

放出代码:

<el-table-column label="操作1">
<template slot-scope="scope">
<el-dropdown split-button type="primary" @command="handleCommand">
其他操作
<el-dropdown-menu slot="dropdown" >
<el-dropdown-item :command="beforeHandleCommand(scope.$index, scope.row,'a')">编辑</el-dropdown-item>
<el-dropdown-item :command="beforeHandleCommand(scope.$index, scope.row,'b')">删除</el-dropdown-item>
<el-dropdown-item :command="beforeHandleCommand(scope.$index, scope.row,'c')">分配角色</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column>

因为我们是写在表格里的,所以需要一个插槽,具体的根据实际情况进行修改。给<el-dropdown-item>标签的command属性绑定一个方法,这个方法就可以传入我们想要的参数,然后利用这个方法封装成一个对象,再将这个对象传入handleCommand方法。

<script>
export default {
methods: {
handleEdit(index, row) {
//todo
}, deleteUser(index, row) {
//todo
}, assignRole(index, row){
//todo
}, beforeHandleCommand(index, row,command){
return {
'index': index,
'row': row,
'command':command
}
},
handleCommand(command) {
switch (command.command) {
case "a"://编辑
this.handleEdit(command.index,command.row);
break;
case "b"://删除
this.deleteUser(command.index,command.row);
break;
case "c"://分配角色
this.assignRole(command.index,command.row);
break;
}
}
},
}
</script>

  至于匹配command选了哪个,用switch语句效率就会比较高了。

最新文章

  1. JSTL配置
  2. eclipse项目debug方法
  3. 说说Angular中的$timeOut定时器
  4. 大数据处理时用到maven的repository
  5. svn 403 Forbidden
  6. sprintf 用法
  7. dojo 九 effects dojo/_base/fx 和 dojo/fx
  8. Unit Testing a zend-mvc application
  9. UITextField 对输入金额的约束
  10. 【bzoj2594】[Wc2006]水管局长数据加强版
  11. 一些不太常用的Linux命令
  12. 分析BGARefreshLayout-master
  13. hdu1171(DP求两份物品的价值相差最小)
  14. Linux查找多个类似,但不同的名称和重命名文件
  15. ABP框架(asp.net core 2.X+Vue)模板项目学习之路(二)--切换MySql数据库
  16. js取得background属性url的值--移动端【踩坑】
  17. java socket 服务器多线程 数据转发的研究实践
  18. MyEclipse配置默认自带的XML代码格式化
  19. RN 调用安卓的原生方法(实现Toast效果)
  20. 20145232 韩文浩 《Java程序设计》第8周学习总结

热门文章

  1. SpringBoot-HelloWorld(三)
  2. 17.Django学习之django自带的contentType表
  3. Java修炼——继承_super父类对象的引用
  4. Zookeeper选取机制
  5. [TimLinux] openpyxl 操作Excel
  6. SpringBoot中JdbcTemplate
  7. HDU3666-THE MATRIX PROBLEM(差分约束-不等式解得存在性判断 对数转化)
  8. 【Selenium】自动进入网页,出现弹窗被卡住
  9. Orleans[NET Core 3.1] 学习笔记(三)( 3 )服务端配置
  10. 跟着文档学习gulp1.2创建任务(task)