element-ui里面的下拉多選框 el-select 時,默認(rèn)值不可刪除

最近有用到這個功能,借鑒了https://blog.csdn.net/qq_36356218/article/details/102605332?這位大佬的代碼

這里講具體用法

1.在main.js 編寫一個自定義指令放在 new?Vue外

Vue.directive('defaultSelect',?{

??componentUpdated?(el,?bindings,?vnode)?{

????//?values?v-model?綁定值

????//?options?下拉選項

????//?prop?對應(yīng)?options?中?的?value?屬性

????//?defaultProp?默認(rèn)值判斷屬性?

????//?defaultValue?默認(rèn)值判斷值

????const?[values,?options,?prop,?defaultProp,?defaultValue]?=?bindings.value

????//?需要隱藏的標(biāo)簽索引

????const?indexs?=?[]

????const?tempData?=?values.map(a?=>?options.find(op?=>?op[prop]?===?a))

????tempData.forEach((a,?index)?=>?{

??????if?(a[defaultProp]?===?defaultValue)?indexs.push(index)

????})

????const?dealStyle?=?function?(tags)?{

??????tags.forEach((el,?index)?=>?{

????????if?(indexs.includes(index)?&&?![...el.classList].includes('select-tag-close-none'))?{

??????????el.classList.add('none')

????????}

??????})

????}

????//?設(shè)置樣式?隱藏close?icon

????const?tags?=?el.querySelectorAll('.el-tag__close')

????if?(tags.length?===?0)?{

??????//?初始化tags為空處理

??????setTimeout(()?=>?{

????????const?tagTemp?=?el.querySelectorAll('.el-tag__close')

????????dealStyle(tagTemp)

??????})

????}?else?{

??????dealStyle(tags)

????}

??}

})


2.在App.vue 中加入一個類? .none{display:none?!important;}

3.在頁面中使用

<el-select??v-model="value1"??id="selects"?v-defaultSelect="[value1,options,'value','disabled',true]"??multiple??placeholder="請選擇">

????????????????????????<el-option?v-for="item?in?options"?:key="item.value"?:disabled="item.disabled"?:label="item.label"?:value="item.value">??

????????????????????????????</el-option>

????????????????????????</el-select>


數(shù)據(jù)列表:

options:?[{

????????????????????value:?'1',

????????????????????label:?'黃金糕',

????????????????????disabled:true,

????????????????????},?{

????????????????????value:?'2',

????????????????????label:?'雙皮奶',

????????????????????disabled:false,

????????????????????},?{

????????????????????value:?'3',

????????????????????label:?'蚵仔煎',

????????????????????disabled:false,

????????????????????},?{

????????????????????value:?'4',

????????????????????label:?'龍須面',

????????????????????disabled:false,

????????????????????},?{

????????????????????value:?'5',

????????????????????label:?'北京烤鴨',

????????????????????disabled:false,

????????????????}],


選中的值:

????value1:['1']

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容