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


    对下列列表进行自定义 

    基础代码

    样式

    样式修改

    1. <style lang="less">
    2. // .ly-tab-sou {
    3. // .el-input__suffix {
    4. // display: none;
    5. // }
    6. // }
    7. .popper-ly-tab-sou {
    8. --el-bg-color-overlay: #1f2328;
    9. --el-border-color-light: #30353c;
    10. .el-scrollbar {
    11. --el-fill-color-light: #484d56;
    12. }
    13. .el-popper__arrow {
    14. display: none;
    15. }
    16. .el-select-dropdown__item.selected {
    17. color: #31daff;
    18. }
    19. .el-select-dropdown__item {
    20. color: #eaecef;
    21. }
    22. }
    23. style>

    使用

    1. <SearchSelect
    2. class="ly-tab-ssu"
    3. v-model="selectVal"
    4. :options="CurrencyList"
    5. :filterable="true"
    6. :prefix="true"
    7. placeholder="搜索"
    8. @onChangeSelect="selectChange"
    9. />
    10. <script setup>
    11. import { ref } from 'vue';
    12. import SearchSelect from '@/views/Prices/components/SearchBar/SearchSelect.vue';
    13. const selectVal = ref('');
    14. const options = ref([
    15. {
    16. value: '选项1',
    17. label: '选项1'
    18. },
    19. {
    20. value: '选项2',
    21. label: '选项2'
    22. }
    23. ]);
    24. const selectChange = (val) => {
    25. console.log('selectChange', val);
    26. };
    27. script>

     代码封装

    1. <template>
    2. <el-select
    3. class="ly-tab-sou"
    4. popper-class="popper-ly-tab-sou"
    5. v-model="selectVal"
    6. :filterable="filterable"
    7. :placeholder="placeholder"
    8. @change="selectChange"
    9. >
    10. <template #prefix v-if="prefix">
    11. <img src="@/assets/images/prices/search.svg" />
    12. template>
    13. <el-option
    14. v-for="item in options"
    15. :key="item.value"
    16. :label="item.label"
    17. :value="item.value"
    18. />
    19. el-select>
    20. template>
    21. <script setup>
    22. import { ref, defineProps, defineEmits, computed } from 'vue';
    23. const props = defineProps({
    24. modelValue: {
    25. type: [Number, String],
    26. default: ''
    27. },
    28. options: {
    29. type: Array,
    30. default: () => []
    31. // [{label: '全部合约',value: 'all'}]
    32. },
    33. filterable: {
    34. type: Boolean,
    35. default: false
    36. },
    37. prefix: {
    38. type: Boolean,
    39. default: false
    40. },
    41. align: {
    42. type: String,
    43. default: 'right'
    44. },
    45. placeholder: {
    46. type: String,
    47. default: '搜索'
    48. }
    49. });
    50. const emits = defineEmits(['update:modelValue', 'onChangeSelect']);
    51. const selectVal = computed({
    52. get() {
    53. return props.modelValue;
    54. },
    55. set(val) {
    56. emits('update:modelValue', val);
    57. }
    58. });
    59. const selectChange = (val) => {
    60. // console.log('selectChange', val);
    61. emits('onChangeSelect', val);
    62. };
    63. script>
    64. <style lang="less" scoped>
    65. .ly-tab-sou {
    66. width: 225px;
    67. height: 40px;
    68. flex-shrink: 0;
    69. border-radius: 4px;
    70. border: 1px solid #404040;
    71. background: #121212;
    72. display: flex;
    73. align-items: center;
    74. :deep(.el-input__inner) {
    75. color: #fff;
    76. }
    77. :deep(.select-trigger) {
    78. width: 100%;
    79. }
    80. // :deep(.el-input__suffix) {
    81. // .el-input__suffix-inner {
    82. // .el-icon {
    83. // background-image: url('@/assets/images/prices/arrow.svg');
    84. // width: 6px;
    85. // height: 4px;
    86. // background-size: cover;
    87. // svg {
    88. // display: none;
    89. // }
    90. // }
    91. // }
    92. // }
    93. }
    94. style>
    95. <style lang="less">
    96. // .ly-tab-sou {
    97. // .el-input__suffix {
    98. // display: none;
    99. // }
    100. // }
    101. .popper-ly-tab-sou {
    102. --el-bg-color-overlay: #1f2328;
    103. --el-border-color-light: #30353c;
    104. .el-scrollbar {
    105. --el-fill-color-light: #484d56;
    106. }
    107. .el-popper__arrow {
    108. display: none;
    109. }
    110. .el-select-dropdown__item.selected {
    111. color: #31daff;
    112. }
    113. .el-select-dropdown__item {
    114. color: #eaecef;
    115. }
    116. }
    117. style>

  • 相关阅读:
    冯诺依曼体系结构与操作系统
    【博客477】prometheus-----数值数据编码(varint与zigzag)
    JS实现关闭网页广告弹窗特效
    基于区块链的数据共享访问控制模型
    【博学谷学习记录】超强总结,用心分享|架构师-Spring核心组件介绍
    TensorFlow模型训练常见案例
    springboot弘德图书馆座位预约管理系统-计算机毕业设计源码07028
    “存储随笔“官方定制python代码月饼免费领取
    第五章 树 6 AcWing 1576. 再次树遍历
    robotframework 获取当前时间
  • 原文地址:https://blog.csdn.net/JackieDYH/article/details/132901809