elementUI中el-dropdown的command實(shí)現(xiàn)傳遞多個(gè)參數(shù)
el-dropdown的command如何傳遞多個(gè)參數(shù)
el-dropdown的command事件默認(rèn)傳遞一個(gè)參數(shù),即每個(gè)下拉選項(xiàng)el-dropdown-item中設(shè)定的command的值,那么如何傳遞多個(gè)參數(shù)呢?
實(shí)現(xiàn)方法
動(dòng)態(tài)設(shè)置el-dropdown-item中的command值
1. HTML部分
<el-dropdown size="mini" split-button @click="handleClickDropDown('design', formItem)" @command="changeItem">設(shè)計(jì)
? <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部分
/**
?* 動(dòng)態(tài)設(shè)置Dropdown的command
?*/
beforeHandleCommand(flag, command) { // flag為傳遞的參數(shù)
? return {
? ? ?'flag': flag,
? ? ?'command': command
? }
},
/**
?* 點(diǎn)擊下拉菜單每一項(xiàng)時(shí)觸發(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
? }
},
?
/**
?* 點(diǎn)擊下拉菜單觸發(fā)
?*/
handleClickDropDown(type, formItem) {
? switch (type) {
? ? case 'designForm':
? ? ? this.handleDesignEdit(formItem)
? ? ? break
? ? default:
? ? ? this.handleDesignEdit(formItem)
? ? ? break
? }
},elementUI下拉command傳遞多參數(shù)事件封裝
問題產(chǎn)生
command事件中默認(rèn)傳遞一個(gè)參數(shù),即你每個(gè)下拉選項(xiàng)el-dropdown-item中設(shè)定的command的值,怎么樣傳遞多個(gè)參數(shù)呢?
我的項(xiàng)目中el-dropdown在一個(gè)遍歷循環(huán)中,需要將index角標(biāo)將參數(shù)傳給@command="handleCommand"事件中。
解決辦法
動(dòng)態(tài)設(shè)置每個(gè)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: '中國機(jī)設(shè)',
mtype: '計(jì)算機(jī)',
date: '2016-05-02',
name: '燕山大學(xué)',
}, {
pk_id: 2,
mname: '藍(lán)橋杯',
mtype: '計(jì)算機(jī)',
date: '2016-05-02',
name: '河北大學(xué)',
}],
dropdownName: "下拉菜單",
matchList: [{
id: 1,
name: "燕山大學(xué)"
}, {
id: 2,
name: "河北大學(xué)"
}, ],
}
},
methods: {
handleCommand(command) {
console.log(command);
this.dropdownName=command.command;
this.$message("id:"+command.index);
},
beforeHandleCommand(index, command) { //index我這里是遍歷的角標(biāo),即你需要傳遞的額外參數(shù)
return {
'index': index,
'command': command
}
},
}
}
</script>
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue2 elementui if導(dǎo)致的rules判斷失效的解決方法
文章討論了在使用Vue2和ElementUI時(shí),將if語句放在el-form-item內(nèi)導(dǎo)致rules判斷失效的問題,并提出了將判斷邏輯移到外部的解決方案,感興趣的朋友一起看看吧2024-12-12
Vue實(shí)現(xiàn)自定義字段導(dǎo)出EXCEL的示例代碼
這篇文章主要介紹了Vue實(shí)現(xiàn)自定義字段導(dǎo)出EXCEL的示例代碼,代碼簡單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08
VUE3開箱即用的音頻播放組件完整代碼(基于原生audio)
Vue3開箱即用的框架有很多選擇,下面這篇文章主要介紹了VUE3開箱即用的音頻播放組件(基于原生audio)的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-09-09
vue實(shí)現(xiàn)的多頁面項(xiàng)目如何優(yōu)化打包的步驟詳解
這篇文章主要介紹了vue實(shí)現(xiàn)的多頁面項(xiàng)目如何優(yōu)化打包的步驟詳解,文中通過示例代碼以及圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
vue組件之間數(shù)據(jù)傳遞的方法實(shí)例分析
這篇文章主要介紹了vue組件之間數(shù)據(jù)傳遞的方法,結(jié)合實(shí)例形式分析了vue.js父組件與子組件之間數(shù)據(jù)傳遞相關(guān)操作技巧,需要的朋友可以參考下2019-02-02
Vue-Access-Control 前端用戶權(quán)限控制解決方案
Vue-Access-Control是一套基于Vue/Vue-Router/axios 實(shí)現(xiàn)的前端用戶權(quán)限控制解決方案。這篇文章主要介紹了Vue-Access-Control:前端用戶權(quán)限控制解決方案,需要的朋友可以參考下2017-12-12
Vuejs2 + Webpack框架里,模擬下載的實(shí)例講解
今天小編就為大家分享一篇Vuejs2 + Webpack框架里,模擬下載的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-09-09
vue2中前端實(shí)現(xiàn)語音播報(bào)的詳細(xì)過程
vue中語音播報(bào),目前本人寫的過程中,遇到了兩種情況,第一種是后端直接返回一個(gè)mp3的播放url,第二種就是播報(bào)的內(nèi)容需要前端自己拼接的,關(guān)于兩種方法,我都說一下如何實(shí)現(xiàn),感興趣的朋友一起看看吧2024-07-07

