elementUI中el-dropdown的command實現(xiàn)傳遞多個參數(shù)
el-dropdown的command如何傳遞多個參數(shù)
el-dropdown的command事件默認傳遞一個參數(shù),即每個下拉選項el-dropdown-item中設定的command的值,那么如何傳遞多個參數(shù)呢?
實現(xiàn)方法
動態(tài)設置el-dropdown-item中的command值
1. HTML部分
<el-dropdown size="mini" split-button @click="handleClickDropDown('design', formItem)" @command="changeItem">設計
? <el-dropdown-menu slot="dropdown">
? ? <el-dropdown-item v-if="formItem.status !== 2" :command="beforeHandleCommand('publish', formItem)">發(fā)布</el-dropdown-item>
? ? <el-dropdown-item v-if="formItem.status === 2" :command="beforeHandleCommand('dead', formItem)">停用</el-dropdown-item>
? ? <el-dropdown-item :command="beforeHandleCommand('share', formItem)">分享</el-dropdown-item>
? </el-dropdown-menu>
</el-dropdown>2. JS部分
/**
?* 動態(tài)設置Dropdown的command
?*/
beforeHandleCommand(flag, command) { // flag為傳遞的參數(shù)
? return {
? ? ?'flag': flag,
? ? ?'command': command
? }
},
/**
?* 點擊下拉菜單每一項時觸發(fā)
?*/
changeItem(val) { // val.flag為傳遞的flag即'publish'等,val.command為傳遞的formItem
? const formItem = val.command
? switch (val.flag) {
? ? case 'publish':
? ? ? this.releaseFormStructure(formItem)
? ? ? break
? ? case 'dead':
? ? ? this.stopFormStructure(formItem)
? ? ? break
? ? case 'share':
? ? ? this.handlePcPreview(formItem)
? ? ? break
? ? default:
? ? ? break
? }
},
?
/**
?* 點擊下拉菜單觸發(fā)
?*/
handleClickDropDown(type, formItem) {
? switch (type) {
? ? case 'designForm':
? ? ? this.handleDesignEdit(formItem)
? ? ? break
? ? default:
? ? ? this.handleDesignEdit(formItem)
? ? ? break
? }
},elementUI下拉command傳遞多參數(shù)事件封裝
問題產(chǎn)生
command事件中默認傳遞一個參數(shù),即你每個下拉選項el-dropdown-item中設定的command的值,怎么樣傳遞多個參數(shù)呢?
我的項目中el-dropdown在一個遍歷循環(huán)中,需要將index角標將參數(shù)傳給@command="handleCommand"事件中。
解決辦法
動態(tài)設置每個el-dropdown-item中command的值
效果圖:
效果:下拉框選中后,el-dropdown-link顯示選中的信息,并且彈一下消息,內(nèi)容為選中的id。

vue
<el-dropdown @command="handleCommand">
<span class="el-dropdown-link">
{{ dropdownName }}
<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown">
<div v-for="item in matchList">
<el-dropdown-item :command="beforeHandleCommand(item.id,item.name)"> {{ item.name }}</el-dropdown-item>
</div>
</el-dropdown-menu>
</el-dropdown>
js
<script>
export default {
data() {
return {
tableData: [{
pk_id: 1,
mname: '中國機設',
mtype: '計算機',
date: '2016-05-02',
name: '燕山大學',
}, {
pk_id: 2,
mname: '藍橋杯',
mtype: '計算機',
date: '2016-05-02',
name: '河北大學',
}],
dropdownName: "下拉菜單",
matchList: [{
id: 1,
name: "燕山大學"
}, {
id: 2,
name: "河北大學"
}, ],
}
},
methods: {
handleCommand(command) {
console.log(command);
this.dropdownName=command.command;
this.$message("id:"+command.index);
},
beforeHandleCommand(index, command) { //index我這里是遍歷的角標,即你需要傳遞的額外參數(shù)
return {
'index': index,
'command': command
}
},
}
}
</script>
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
使用Vue3創(chuàng)建多布局系統(tǒng)的三種方法
布局是中大型網(wǎng)站或應用的基礎,假設你正在創(chuàng)建一個網(wǎng)頁應用,它包括主頁、營銷頁面和應用頁面,你不會想要為每一頁重復所有的工作,對吧,與Nuxt不同,Vue 3并沒有內(nèi)置的布局系統(tǒng),但是別擔心,這里將向你展示3種簡單的方法來實現(xiàn)這一點,需要的朋友可以參考下2023-08-08
vue實現(xiàn)el-table點選和鼠標框選功能的方法
在Vue中我們經(jīng)常需要處理表格數(shù)據(jù),這篇文章主要給大家介紹了關于vue實現(xiàn)el-table點選和鼠標框選功能的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2023-10-10
vue3+vite:src使用require動態(tài)導入圖片報錯的最新解決方法
這篇文章主要介紹了vue3+vite:src使用require動態(tài)導入圖片報錯和解決方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-04-04

