el-select选择器修改背景颜色

<!--
 * @FilePath: topSearch.vue
 * @Author: 是十九呐
 * @Date: 2024-07-18 09:46:03
 * @LastEditTime: 2024-07-18 10:42:03
-->
<template>
  <div class="topSearch-container">
    <div class="search-item">
      <div class="item-name">客户编码</div>
      <div class="item-input">
        <el-select v-model="value" placeholder="请选择">
          <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
          </el-option>
        </el-select>
      </div>
    </div>

    <div class="search-item">
      <div class="item-name">单位</div>
      <div class="item-input">
        <el-input v-model="input" placeholder="请输入内容"></el-input>
      </div>
    </div>

    <div class="search-item">
      <div class="item-name">服务站</div>
      <div class="item-input">
        <el-input v-model="input" placeholder="请输入内容"></el-input>
      </div>
    </div>

    <div class="search-item">
      <div class="item-name">客户经理</div>
      <div class="item-input">
        <el-input v-model="input" placeholder="请输入内容"></el-input>
      </div>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      options: [{
        value: '选项1',
        label: '黄金糕'
      }, {
        value: '选项2',
        label: '双皮奶'
      }, {
        value: '选项3',
        label: '蚵仔煎'
      }, {
        value: '选项4',
        label: '龙须面'
      }, {
        value: '选项5',
        label: '北京烤鸭'
      }],
      value: '',
      input: ''
    }
  }
}
</script>

<style lang="scss" scope>
.topSearch-container {
  display: flex;
  align-items: center;
  justify-content: space-around;

  .search-item {
    display: flex;
    align-items: center;

    .item-name {
      margin-right: 21px;
      color: #01E6F4;
      font-size: 14px;
    }
  }
}
</style>

<!-- 修改背景颜色 -->
<style>
.el-input__inner,
.el-input__inner:hover,
.el-input__inner:after {
  background-color: #03192B !important;
  border: 1px solid #01E6F4 !important;
  color: #fff;
}
.el-select-dropdown__item {
  background-color: #03192B;
  color: #fff;
}
.el-select-dropdown__item.hover,
.el-select-dropdown__item:hover {
  color: #0A81FF;
}
.el-select-dropdown__list {
  padding: 0;
  border: 1px solid #01E6F4;
}
.el-popper[x-placement^=bottom] .popper__arrow,
.el-popper[x-placement^=bottom] .popper__arrow::after {
  border-bottom-color: #01E6F4;
}
.el-select-dropdown {
  border: none;
}
</style>

### 自定义或扩展 Element UI `el-select` 功能 #### 添加自定义按钮到下拉列表 为了向 `el-select` 组件的下拉框中添加自定义按钮,可以利用禁用选项 (`disabled`) 的特性并结合 CSS 定制来实现这一目标。具体做法是在 `el-select` 下方添加一个带有特定样式的禁用 `el-option` 并设置其 `value` 属性为 `undefined` 或者其他不会影响实际选择逻辑的值。 ```html <template> <div class="custom-select"> <el-select v-model="selectedValue" placeholder="请选择"> <!-- 正常选项 --> <el-option label="选项一" value="option1"></el-option> <el-option label="选项二" value="option2"></el-option> <!-- 禁用项作为容器放置自定义按钮 --> <el-option :value="undefined" disabled style="height:auto;"> <span slot="label" class="custom-button-container"> <button @click.stop.prevent="handleCustomButtonClick">点击</button> </span> </el-option> </el-select> </div> </template> <script> export default { data() { return { selectedValue: '' }; }, methods: { handleCustomButtonClick() { console.log('自定义按钮被点击'); } } }; </script> <style scoped> .custom-button-container button { width: 100%; text-align: center; } /* 调整样式以适应需求 */ .el-select-dropdown__item.is-disabled .custom-button-container{ color:#fff !important; /* 修改文字颜色 */ background-color:red !important;/* 更改背景色 */ } </style> ``` 上述代码展示了如何通过创建一个不可选中的 `el-option` 来容纳自定义 HTML 元素,在本例中是一个简单的按钮[^1]。 #### 使用钩子函数增强交互体验 对于希望进一步定制行为的情况,比如监听用户的选择变化或是移除标签事件,则可以通过使用内置的钩子函数如 `@change` 和 `@remove-tag` 实现更复杂的功能处理。这些钩子允许开发者在发生特定动作时触发相应的 JavaScript 方法来进行额外的操作或者数据更新[^2]。 例如: ```javascript // 当选择了不同的选项时调用此方法 handleChange(value) { alert(`您选择了 ${value}`); } // 移除多选模式下的某个 tag 时触发该回调 handleRemoveTag(tag){ console.log(`${tag} 已经被删除`); } ``` 然后可以在模板里像这样绑定它们: ```html <el-select v-model="multipleSelections" multiple @change="handleChange" @remove-tag="handleRemoveTag"> ... </el-select> ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值