使用el-switch实现开关(自定义值作为开关状态,不只是true或者false)

本文介绍了两种不同的方式来展示状态,一种是利用Element UI的el-switch实现开关状态与文字描述的结合,另一种是在表格中通过el-switch列展示了操作的启用禁用及其对应的文字说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

第一种:是字符串enable为开启状态,disable为关闭状态



 <el-form-item label="状态" :label-width="formLabelWidth1">
            <el-switch v-model="form.state" active-text="开启" active-value="enable" inactive-value="disable" active-color="#13ce66">
            </el-switch>
          </el-form-item>

第二种:是可显示开启关闭描述文字

  <el-table-column label="操作" align="center" width="">
      <template slot-scope="scope">
        <el-switch
          v-model="scope.row.on"
          on-color="#00A854"
          on-text="启动"
          on-value="1"
          off-color="#F04134"
          off-text="禁止"
          off-value="0"
          @change="changeSwitch(scope.row)">
        </el-switch>
      </template>
    </el-table-column>

效果如下:

### 自定义 Element UI `el-switch` 开关的颜色 在 Element UI 的 `el-switch` 组件中,可以通过属性 `active-color` 和 `inactive-color` 来分别设置开关处于激活状态和非激活状态时的颜色[^1]。此外,还可以通过 CSS 变量的方式实现颜色的自定义[^2]。 以下是具体的配置方法以及示例代码: #### 方法一:使用 `active-color` 和 `inactive-color` 属性 这是最简单直接的方法,适用于大多数场景。只需在 `<el-switch>` 标签上绑定这两个属性即可完成颜色定制。 ```html <template> <div> <el-switch v-model="value" active-color="#13ce66" inactive-color="#ff4949"> </el-switch> </div> </template> <script> import { ref } from 'vue'; export default { setup() { const value = ref(false); return { value }; } }; </script> ``` 上述代码中,当开关被打开时会显示绿色 (`#13ce66`);关闭时则显示红色 (`#ff4949`)--- #### 方法二:利用 CSS 变量覆盖默认样式 如果项目中有统一的主题需求或者需要动态调整主题色,则推荐使用此方式。通过设置 `--el-switch-on-color` 和 `--el-switch-off-color` 这两个变量来自定义颜色。 ```html <template> <div> <el-switch v-model="value2" class="custom-switch" /> </div> </template> <style scoped> .custom-switch .el-switch__core { --el-switch-on-color: #409eff; --el-switch-off-color: #f56c6c; } </style> <script> import { ref } from 'vue'; export default { setup() { const value2 = ref(true); return { value2 }; } }; </script> ``` 在此例子中,CSS 变量替代了传统的 `active-color` 和 `inactive-color` 属性,从而实现了更灵活的颜色管理。 --- #### 方法三:结合文字描述与颜色设定 为了增强用户体验,在某些情况下可能还需要为开关添加 ON/OFF 文字提示。此时可借助 `active-text` 和 `inactive-text` 属性配合颜色一起使用[^3]。 ```html <template> <div> <el-switch v-model="ListData.value" active-color="#13ce66" inactive-color="#ff4949" active-text="ON" inactive-text="OFF" ></el-switch> </div> </template> <script> const ListData = reactive({ value: true, }); export default { data() { return { ListData }; }, }; </script> ``` 这段代码不仅设置了两种状态下不同的背景色,还增加了对应的英文标签说明。 --- #### 总结 以上三种方法均能有效满足对 `el-switch` 颜色的不同层次的需求。对于简单的静态页面可以选择第一种方案快速部署;而对于大型应用或有复杂交互逻辑的情况建议采用第二种甚至第三种策略以提升维护性和扩展性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值