Vue项目中使用element-plus UI库-并对下拉搜索框样式修改-el-select代码封装

news2024/12/26 9:20:08

对下列列表进行自定义 

基础代码

<template>
  <el-select
    class="ly-tab-sou"
    popper-class="popper-ly-tab-sou"
    v-model="selectVal"
    :filterable="filterable"
    :placeholder="placeholder"
    @change="selectChange"
  >
    <template #prefix v-if="prefix">
      <img src="@/assets/images/prices/search.svg" />
    </template>
    <el-option
      v-for="item in options"
      :key="item.value"
      :label="item.label"
      :value="item.value"
    />
  </el-select>
</template>

样式

样式修改

<style lang="less" scoped>
.ly-tab-sou {
  width: 225px;
  height: 40px;
  flex-shrink: 0;
  border-radius: 4px;
  border: 1px solid #404040;
  background: #121212;
  display: flex;
  align-items: center;
  :deep(.el-input__inner) {
    color: #fff;
  }
  :deep(.select-trigger) {
    width: 100%;
  }
  // :deep(.el-input__suffix) {
  //   .el-input__suffix-inner {
  //     .el-icon {
  //       background-image: url('@/assets/images/prices/arrow.svg');
  //       width: 6px;
  //       height: 4px;
  //       background-size: cover;
  //       svg {
  //         display: none;
  //       }
  //     }
  //   }
  // }
}
</style>

<style lang="less">
// .ly-tab-sou {
//   .el-input__suffix {
//     display: none;
//   }
// }
.popper-ly-tab-sou {
  --el-bg-color-overlay: #1f2328;
  --el-border-color-light: #30353c;
  .el-scrollbar {
    --el-fill-color-light: #484d56;
  }
  .el-popper__arrow {
    display: none;
  }
  .el-select-dropdown__item.selected {
    color: #31daff;
  }
  .el-select-dropdown__item {
    color: #eaecef;
  }
}
</style>

使用

<SearchSelect
          class="ly-tab-ssu"
          v-model="selectVal"
          :options="CurrencyList"
          :filterable="true"
          :prefix="true"
          placeholder="搜索"
          @onChangeSelect="selectChange"
        />


<script setup>
import { ref } from 'vue';
import SearchSelect from '@/views/Prices/components/SearchBar/SearchSelect.vue';
const selectVal = ref('');
const options = ref([
  {
    value: '选项1',
    label: '选项1'
  },
  {
    value: '选项2',
    label: '选项2'
  }
]);
const selectChange = (val) => {
  console.log('selectChange', val);
};
</script>

 代码封装

<!--
 * @Author: Jackie
 * @Date: 2023-09-15 14:44:13
 * @LastEditTime: 2023-09-15 15:02:11
 * @LastEditors: Jackie
 * @Description: 搜索下拉框
 * @FilePath: /src/views/components/SearchBar/SearchSelect.vue
 * @version: 
-->
<template>
  <el-select
    class="ly-tab-sou"
    popper-class="popper-ly-tab-sou"
    v-model="selectVal"
    :filterable="filterable"
    :placeholder="placeholder"
    @change="selectChange"
  >
    <template #prefix v-if="prefix">
      <img src="@/assets/images/prices/search.svg" />
    </template>
    <el-option
      v-for="item in options"
      :key="item.value"
      :label="item.label"
      :value="item.value"
    />
  </el-select>
</template>

<script setup>
import { ref, defineProps, defineEmits, computed } from 'vue';

const props = defineProps({
  modelValue: {
    type: [Number, String],
    default: ''
  },
  options: {
    type: Array,
    default: () => []
    // [{label: '全部合约',value: 'all'}]
  },
  filterable: {
    type: Boolean,
    default: false
  },
  prefix: {
    type: Boolean,
    default: false
  },
  align: {
    type: String,
    default: 'right'
  },
  placeholder: {
    type: String,
    default: '搜索'
  }
});

const emits = defineEmits(['update:modelValue', 'onChangeSelect']);
const selectVal = computed({
  get() {
    return props.modelValue;
  },
  set(val) {
    emits('update:modelValue', val);
  }
});

const selectChange = (val) => {
  //   console.log('selectChange', val);
  emits('onChangeSelect', val);
};
</script>
<style lang="less" scoped>
.ly-tab-sou {
  width: 225px;
  height: 40px;
  flex-shrink: 0;
  border-radius: 4px;
  border: 1px solid #404040;
  background: #121212;
  display: flex;
  align-items: center;
  :deep(.el-input__inner) {
    color: #fff;
  }
  :deep(.select-trigger) {
    width: 100%;
  }
  // :deep(.el-input__suffix) {
  //   .el-input__suffix-inner {
  //     .el-icon {
  //       background-image: url('@/assets/images/prices/arrow.svg');
  //       width: 6px;
  //       height: 4px;
  //       background-size: cover;
  //       svg {
  //         display: none;
  //       }
  //     }
  //   }
  // }
}
</style>

<style lang="less">
// .ly-tab-sou {
//   .el-input__suffix {
//     display: none;
//   }
// }
.popper-ly-tab-sou {
  --el-bg-color-overlay: #1f2328;
  --el-border-color-light: #30353c;
  .el-scrollbar {
    --el-fill-color-light: #484d56;
  }
  .el-popper__arrow {
    display: none;
  }
  .el-select-dropdown__item.selected {
    color: #31daff;
  }
  .el-select-dropdown__item {
    color: #eaecef;
  }
}
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1019288.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Dpi解析与adb 查看dpi

authordaisy.skye的博客_CSDN博客-嵌入式,Qt,Linux领域博主 ro.sf.lcd_density属性指定了这个机型使用的dpi是多少&#xff0c;dpi全称是dots per inch&#xff0c;对角线每英寸的像素点的个数。 密度 ldpi mdpi hdpi xhdpi xxhdpi 分辨率 240x320 320x480 480x800 7…

查看c语言库函数源码 glibc,glibc下载

1 简介 glibc是GNU发布的libc库&#xff0c;即c运行库。glibc是linux系统中最底层的api&#xff0c;几乎其它任何运行库都会依赖于glibc。glibc除了封装linux操作系统所提供的系统服务外&#xff0c;它本身也提供了许多其它一些必要功能服务的实现。由于 glibc 囊括了几乎所有的…

【直播回顾】应对数智化时代下SAP用户的系统转型挑战——SNP TDO

“京西重工通过20天的项目周期&#xff0c;实现了将SAP ECC系统2.5T的总数据量&#xff0c;按13个月以时间切片方式刷新测试数据。存储和管理成本降低多达 80%、测试数据量减少70%、生产系统零停机。” “海尔日日顺历经不到3个月的时间&#xff0c;将70多家公司代码从海尔源…

C++深度优化——无锁队列实现及测试

最近在研究无锁队列&#xff0c;从网上学习到了lock-free的定义&#xff0c;特此摘录如下&#xff1a; 如果涉及到共享内存的多线程代码在多线程执行下不可能互相影响导致被hang住&#xff0c;不管OS如何调度线程&#xff0c;至少有一个线程在做有用的事&#xff0c;那么就是lo…

计网第五章(运输层)(七)(TCP的连接建立)

目录 一、基本概述 二、连接建立 1.基本任务 2.具体实现 三、经典问题之为什么不用“两次握手”&#xff1f; 一、基本概述 在前面的部分提到过&#xff0c;TCP是基于运输连接来传输TCP报文段。 所以TCP的连接和释放是每次面向连接的通信过程中必不可少的过程。 TCP运输…

Linux设备驱动模型之platform设备

Linux设备驱动模型之platform设备 上一章节介绍了Linux字符设备驱动&#xff0c;它是比较基础的&#xff0c;让大家理解Linux内核的设备驱动是如何注册、使用的。但在工作中&#xff0c;个人认为完全手写一个字符设备驱动的机会比较少&#xff0c;更多的都是基于前人的代码修修…

Vue3+移动端适配屏幕+默认横屏展示

效果图展示区: 1. 想要把px自动转换单位为vw需要项目根目录.postcssrc.js中进行配置以下代码 module.exports {plugins: {autoprefixer: {}, // 用来给不同的浏览器自动添加相应前缀&#xff0c;如-webkit-&#xff0c;-moz-等等"postcss-px-to-viewport": {unitTo…

C/C++计算表达式的值 2023年5月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析

目录 C/C计算表达式的值 一、题目要求 1、编程实现 2、输入输出 二、解题思路 1、案例分析 三、程序代码 四、程序说明 五、运行结果 六、考点分析 C/C计算表达式的值 2023年5月 C/C编程等级考试一级编程题 一、题目要求 1、编程实现 给定整数x,y的值&#xff0c…

视频号挂公众号链接引流到公众号还能加,好消息来了

视频号挂公众号链接要求在八月初出来了新规则&#xff0c;相信玩视频号的人大家都应该清楚&#xff0c;这两个新规则第一个看似简单&#xff0c;但是第二个却堵住了99%的人 接着看看视频号挂链接发展的来龙去脉 要点一&#xff1a;早在前两年&#xff0c;视频号链接直接显示在视…

基于springboot的流沐商城的设计与实现(前后端分离)

博主主页&#xff1a;一季春秋博主简介&#xff1a;专注Java技术领域和毕业设计项目实战、Java、微信小程序、安卓等技术开发&#xff0c;远程调试部署、代码讲解、文档指导、ppt制作等技术指导。主要内容&#xff1a;毕业设计(Java项目、小程序等)、简历模板、学习资料、面试题…

【JavaSE笔记】运算符

一、前言 作为Java编程中最基本的语法元素之一&#xff0c;运算符在编写程序时扮演着至关重要的角色。 运算符被用于执行各种数学和逻辑运算&#xff0c;以及比较操作&#xff0c;运算符的使用可以使代码更加简洁、易读和高效。在本文中&#xff0c;我们将会详细介绍Java中常…

nginx反向代理,用户访问服务器1的80端口,请求转发至服务器2,3的8882端口

两台应用服务器&#xff0c;一台nginx&#xff0c;用户访问nginx服务器80端口&#xff0c;将请求转发至服务器2和服务器3的8882端口。 1、修改nginx配置文件 upstream backend {server 10.60.16.187:8882;server 10.60.16.188:8882;}server {listen 80;server_name 10.6…

Git(9)——Git多人协同开发之创建初始项目

目录 一、简介 二、创建新项目 三、本地Git接入 四、创建远端仓库——Gitee 五、推送代码至远端仓库 一、简介 前面8章都是我们一个人独自开发&#xff0c;如果现在项目新增两名同事&#xff0c;我们就需要使用Git来实现多人协同开发&#xff0c;从第九章开始将介绍从零到…

Atlas VPN 曝零日漏洞,允许查看用户真实 IP 地址

Atlas VPN 已确认存在一个零日漏洞&#xff0c;该漏洞允许网站所有者查看 Linux 用户的真实 IP 地址。不久前&#xff0c;发现该漏洞的人在Reddit上公开发布了有关该零日漏洞的详细信息以及漏洞利用代码。 关于 Atlas VPN 零日漏洞 Atlas VPN提供 "免费 "和付费的 …

GemBox.Bundle 47.0.1227 Crack

GemBox.Document 35.0.1480 GemBox.Email 17.0.1147 GemBox.Imaging 10.0.1096 GemBox.Pdf 17.0.1404 GemBox.Presentation 25.0.1526 GemBox.Spreadsheet 49.0.1454 GemBox.Spreadsheet 从 .NET 应用程序读取、写入、转换和打印 XLSX、XLS、XLSB、CSV、HTML 和 ODS 电子表…

算法题笔记 1-5

目录 week 11. 找出数组中重复的数字题目数据范围样例题解(数组遍历) O(n) 2. 不修改数组找出重复的数字题目数据范围样例题解(分治&#xff0c;抽屉原理) O(nlogn) 3. 二维数组中的查找题目题解(单调性扫描) O(nm) 4.替换空格题目题解(线性扫描) O(n)(双指针扫描) O(n) 5.从尾…

一阶滞后低通滤波器(支持采样频率设置 博途SCL代码)

一阶低通滤波器算法介绍这篇博客不再赘述&#xff0c;专栏有很多的文章讲过。之前的低通滤波器都是没有采样频率接口的&#xff0c;低通滤波器的采样频率都等于定时中断周期&#xff0c;实际滤波效果和信号采样频率、滤波系数、信号采样频率都有关系&#xff0c;所以这里我们将…

【C语言】指针的进阶(二)—— 回调函数的讲解以及qsort函数的使用方式

目录 1、函数指针数组 1.1、函数指针数组是什么&#xff1f; 1.2、函数指针数组的用途&#xff1a;转移表 2、扩展&#xff1a;指向函数指针的数组的指针 3、回调函数 3.1、回调函数介绍 3.2、回调函数的案例&#xff1a;qsort函数 3.2.1、回顾冒泡排序 3.2.1、什么是qso…

Python 10之异常模块包

&#x1f600;前言 在Python编程中&#xff0c;我们时常会遇到各种异常和错误&#xff0c;同时我们也会使用多个模块和包来组织和结构化我们的代码。理解如何有效地处理异常和组织我们的代码是成为一个成功的Python程序员的关键。 . 在本教程中&#xff0c;我们将深入探讨Pytho…

10.3 滤波电路

整流电路的输出电压虽然是单一方向的&#xff0c;但是含有较大的交流成分&#xff0c;不能适应大多数电子电路及设备的需要。因此&#xff0c;一般在整流后&#xff0c;还需利用滤波电路将脉动的直流电压变为平滑的直流电压。与用于信号处理的滤波电路相比&#xff0c;直流电源…