element-plus使用自定义主题色

创建一个scss文件

我这里就叫 element.scss

@forward "element-plus/theme-chalk/src/common/var.scss" with (
  $colors: (

    // 在这里的定义自己想要的颜色

    "primary": (
      // 主色
      "base": #ff6699, 
    ),
    "success": (
      // 成功色
      "base": #1dc779,
    ),
    "warning": (
      // 警告色
      "base": #39c0bd,
    ),
    "danger": (
      // 危险色
      "base": #e26237,
    ),
    "error": (
      // 错误色
      "base": #cf4444,
    ),
  )
);

2.vite.config.js内配置相关

  // 导入自定义主题色
  css: {
    preprocessorOptions: {
      scss: {
        additionalData: `@use "@/styles/element/element.scss" as *;`,
      },
    },
  },
  plugins: [
    vue(),
    // 自动引入elementui插件配置
    AutoImport({
      resolvers: [ElementPlusResolver({ importStyle: "sass" })],
    }),
    Components({
      resolvers: [ElementPlusResolver({ importStyle: "sass" })],
    }),
  ],

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Element-Plus 的 Select 组件支持自定义选项模板和选项分组,以下是一个简单的自定义 Select 组件示例: ```html <template> <el-select v-model="value" :placeholder="placeholder" :multiple="multiple" :collapse-tags="collapseTags" :filterable="filterable" :allow-create="allowCreate" :default-first-option="defaultFirstOption" :popper-class="popperClass" :remote="remote" :loading="loading" :loading-text="loadingText" :no-match-text="noMatchText" :no-data-text="noDataText" :popper-append-to-body="popperAppendToBody" :automatic-dropdown="automaticDropdown" :reserve-keyword="reserveKeyword" @change="handleChange"> <template #default="{option}"> <span v-if="option.value !== 'divider'" class="el-select-dropdown__item">{{ option.label }}</span> <el-divider v-else /> </template> <template #group="{group}"> <span class="el-select-dropdown__item el-select-group">{{ group.label }}</span> </template> </el-select> </template> <script> export default { name: 'CustomSelect', props: { placeholder: { type: String, default: '请选择' }, value: { type: [String, Number, Array], default: '' }, multiple: { type: Boolean, default: false }, collapseTags: { type: Boolean, default: false }, filterable: { type: Boolean, default: false }, allowCreate: { type: Boolean, default: false }, defaultFirstOption: { type: Boolean, default: false }, popperClass: { type: String, default: '' }, remote: { type: Boolean, default: false }, loading: { type: Boolean, default: false }, loadingText: { type: String, default: '加载中' }, noMatchText: { type: String, default: '无匹配数据' }, noDataText: { type: String, default: '暂无数据' }, popperAppendToBody: { type: Boolean, default: true }, automaticDropdown: { type: Boolean, default: false }, reserveKeyword: { type: Boolean, default: false }, options: { type: Array, default: () => [] } }, methods: { handleChange(value) { this.$emit('change', value) } } } </script> ``` 在模板中,我们定义了两个插槽:`default` 和 `group`。`default` 插槽用于渲染每个选项,`group` 插槽用于渲染选项分组。在插槽中,我们可以访问到 `option` 和 `group` 对象,它们包含了选项和分组的相关信息。 同时,我们还定义了一些 props,用来控制 Select 的行为和样式。 使用自定义 Select 组件时,只需要传入 `options` 属性,指定选项列表,即可完成自定义。例如: ```html <template> <custom-select :options="options" v-model="selected" /> </template> <script> import CustomSelect from './CustomSelect.vue' export default { components: { CustomSelect }, data() { return { selected: '', options: [ { label: '选项一', value: '1' }, { label: '选项二', value: '2' }, { label: '选项三', value: '3' }, { label: '分组一', value: 'divider' }, { label: '选项四', value: '4', group: '分组一' }, { label: '选项五', value: '5', group: '分组一' } ] } } } </script> ``` 注意,在定义选项时,我们可以通过 `group` 属性指定选项所属的分组,从而实现选项分组的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值