随笔 - 315  文章 - 1  评论 - 12  阅读 - 24万

el-select编辑时已选择的项不允许删除(多选)

defaultSelect.js 

目录

 代码:

复制代码
export default {
  update(el, bindings) {
    const [defaultValues, selectValue] = bindings.value
    // 需要隐藏的标签索引
    const indexs = []
    selectValue.map((item, index) => {
      defaultValues.map(defaultItem => {
        if (item == defaultItem) {
          indexs.push(index)
        }
      })
    })
    const dealStyle = function(tags) {
      tags.forEach((el, index) => {
        if (
          indexs.includes(index) &&
          ![...el.classList].includes('select-tag-close-none')
        ) {
          el.style.display = 'none' // close 图标隐藏掉
        }
      })
    }
    // 设置样式隐藏close icon
    let tags = el.querySelectorAll('.el-tag__close')

    if (tags.length === 0) {
      // 初始化tags为空处理
      setTimeout(() => {
        let tagTemp = el.querySelectorAll('.el-tag__close')
        dealStyle(tagTemp)
      })
    } else {
      setTimeout(() => {
        dealStyle(tags)
      })
    }
  }
}
复制代码

 

 

注册组件

main.js引入

 

 

使用:

energyListId: 已选择的id集合
复制代码
<el-select v-model="energyListId" placeholder="请选择维修设备" multiple
                         filterable :clearable="false"
                         @change="changeEnergy" style="width: 90%;"
                         v-default-select="[energyListId,energyListId]"
                         @keydown.native.delete.capture.stop.prevent
              >
                <el-option
                  v-for="item in energyList"
                  :key="`p_${item.id}`"
                  :checked="item.checked"
                  :disabled="item.disabled"
                  :label="`${item.deviceName}(${item.deviceNo})`"
                  :value="item.id"
                >
                </el-option>
              </el-select>
复制代码

 

posted on   小虾米吖~  阅读(424)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
历史上的今天:
2020-06-28 登录-登出(token判断,vuex登录验证及保持登录状态)
2019-06-28 ui

点击右上角即可分享
微信分享提示