element-ui select 多选 实现自定义option样式

element-ui或者element-plus没有api来支持自定义多选option的样式,今天他来了,话不多说,直接上图。

 选择option,回显对应的标题和颜色 

  1. created生命周期里面创建<style></style>标签
    created(){
       this.tagStyleElem =                                   
          window.document.head.appendChild(document.createElement('style'))
    }

    注:tagStyleElem 为自定义变量

  2. 在select上绑定class样式和change事件

      <el-select
        v-model="value"
        multiple
        filterable
        class="tagStyle"
        placeholder="请选择标签"
        @change="change"
       >
        <el-option
          v-for="item in tagsList"
          :key="item.code"
          :label="item.name"
          :value="item.id"
        >
          {{ item.name }}
        </el-option>
      </el-select>

  3. change事件里处理样式

// 选中替换option的样式
 change() {
//this.value 绑定的所选中的值
      this.tagStyleElem.innerHTML = this.value
        .map(
          (value, index) =>
            `.tagStyle .el-tag:nth-child(${index + 1}) 
            {
              color: rgb(${this.tagsList.find((item) => value == item.id)?.colour});
              border-color: rgb(${this.tagsList.find((item) => value == item.id)?.colour});
              background-color: rgba(${this.tagsList.find((item) => value == item.id)?.colour},0.1);
            }`
        )
    .join('')
 },

注:tagsList为option数据,找到其对应的id,更改其中的样式

总结:主体的思想就是拿到对应数据,更改每个子项的el-tag 的样式即可。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
element-ui是一套基于Vue.jsUI组件库,提供了丰富的组件和工具,方便开发者进行项目开发。其中,下拉多选树状图是element-ui中的一个常用组件之一。 使用element-ui的下拉多选树状图组件,可以实现用户通过下拉选择框来选择多个选项,并且这些选项还以树状图的形式展示。这在处理包含层级关系的数据时尤其有用。 首先,在Vue组件中引入element-ui的下拉多选树状图组件,即el-select组件。然后,在组件中定义一个变量来存储用户选中的值,例如selectedOptions。接着,在挂载到DOM之前设置el-select组件的placeholder属性,如:请选择。 接下来,通过调用element-ui提供的API,将需要展示的选项作为树节点传递给el-select组件。可以使用element-ui的el-tree组件来支持树状结构,通过配置tree-props属性来指定树节点的显示字段,例如label和children。在数据源中,可以为每个节点设置一个唯一的key属性。 然后,在el-select组件的v-model属性中绑定selectedOptions变量,以实现选中值的双向绑定。此时,用户可以通过下拉选框选择多个选项,选中的选项会自动存储在selectedOptions变量中。 最后,在Vue组件的template中使用el-select组件来展示下拉多选树状图。设置el-select的filterable属性为true,可以让用户通过输入关键字来筛选选项。使用el-option组件来表示每一个下拉选项。为el-select组件设置多选属性multiple,并通过el-tree组件的子节点slot来显示树状结构。 通过以上步骤,我们就可以使用element-ui快速实现下拉多选树状图。使用这个组件,可以方便地展示具有层级关系的数据,并让用户灵活选择多个选项。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值