ElementUI中的el-dropdown傳入多參數的實現方法
最近工作中因為業務中按鈕的增多,導致頁面排版按鈕過多,頁面不夠美觀,用戶體驗不佳,於是想到利用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傳入多參數內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- element Dropdown組件意想不到的坑
- vue中實現可編輯table及其中加入下拉選項
- elementUI組件el-dropdown(踩坑)
- vue router-view的嵌套顯示實現
- Vue實現路由嵌套的方法實例