el select 清空_element-ui里面的下拉多选框 el-select 时,默认值不可删除

本文介绍如何在Vue中使用自定义指令`defaultSelect`防止Element UI的`el-select`组件中预设的默认值被用户删除。通过在`main.js`中定义指令,在`App.vue`中应用样式,并在页面中设置数据和选项,实现了对特定选项的禁用删除功能。
摘要由CSDN通过智能技术生成

这里讲具体用法

1.在main.js 编写一个自定义指令放在

new Vue外

Vue.directive('defaultSelect', {

componentUpdated (el, bindings, vnode) {

// values v-model 绑定值

// options 下拉选项

// prop 对应 options 中 的 value 属性

// defaultProp 默认值判断属性

// defaultValue 默认值判断值

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

// 需要隐藏的标签索引

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')

}

})

}

// 设置样式 隐藏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.在页面中使用

数据列表:

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']

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值