您当前的位置:首页 > 网站建设 > javascript
| php | asp | css | H5 | javascript | Mysql | Dreamweaver | Delphi | 网站维护 | 帝国cms | React | 考试系统 | ajax | jQuery | 小程序 |

ElementUI中的el-dropdown传入多参数的实现方法

51自学网 2022-02-21 13:35:42
  javascript

最近工作中因为业务中按钮的增多,导致页面排版按钮过多,页面不够美观,用户体验不佳,于是想到利用el-dropdown做一个下拉按钮(把多个按钮整合到了一起,下拉实现)

在这里插入图片描述

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

ElementUi官方文档中el-dropdown的样例如下:
el-dropdown 官方文档

<el-dropdown @command="handleCommand">  <span class="el-dropdown-link">    下拉菜单<i class="el-icon-arrow-down el-icon--right"></i>  </span>  <el-dropdown-menu slot="dropdown">    <el-dropdown-item command="a">黄金糕</el-dropdown-item>    <el-dropdown-item command="b">狮子头</el-dropdown-item>    <el-dropdown-item command="c">螺蛳粉</el-dropdown-item>    <el-dropdown-item command="d" disabled>双皮奶</el-dropdown-item>    <el-dropdown-item command="e" divided>蚵仔煎</el-dropdown-item>  </el-dropdown-menu></el-dropdown><style>  .el-dropdown-link {    cursor: pointer;    color: #409EFF;  }  .el-icon-arrow-down {    font-size: 12px;  }</style><script>  export default {    methods: {      handleCommand(command) {        this.$message('click on item ' + command);      }    }  }</script>

我们必须在执行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-item disabled :command="beforeHandleCommand(scope.$index, scope.row,'d')">冻结</el-dropdown-item>                <el-dropdown-item disabled :command="beforeHandleCommand(scope.$index, scope.row,'e')">解冻</el-dropdown-item>            </el-dropdown-menu>        </el-dropdown>    </template></el-table-column>

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

<script>export default {    methods: {        handleAbandon(index, row) {           //todo        },        handleUpload (index, row) {            //todo        },        handleSettle(index, row){           //todo           },        beforeHandleCommand(index, row,command){            return {                'index': index,                'row': row,                'command':command            }        },        handleCommand(command) {            switch (command.command) {                case "a"://废弃                    this.handleAbandon(command.index,command.row);                    break;                case "b"://上传原件                    this.handleUpload (command.index,command.row);                    break;                case "c"://原件整理                                    	this.handleSettle(command.index,command.row);                    break;            }        }    },}</script>

到此这篇关于ElementUI中的el-dropdown传入多参数的实现方法的文章就介绍到这了,更多相关ElementUI中el-dropdown传入多参数内容请搜索51zixue.net以前的文章或继续浏览下面的相关文章希望大家以后多多支持51zixue.net!


下载地址:
javascript:void(0)的含义及用法实例
elementUI组件el-dropdown(踩坑)
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。