element el-checkbox 选中后无法改变状态

该博客介绍了如何在Vue.js应用中利用el-checkbox-group组件和roleChange方法处理角色选择的变更。通过v-for指令动态渲染角色列表,并通过@change事件监听用户的选择。当角色状态改变时,根据ischecked参数调用接口进行角色的添加或删除操作,实现了用户角色的增删功能。
//dom:        
<el-checkbox-group v-model="checkList"  >
   <!-- $event读取自带事件 -->
   <el-checkbox v-for="item in roleList" :label="item.roleName" :key="item.id"          
    @change="roleChange($event,item)" ></el-checkbox>
</el-checkbox-group>


//methods:
//使用change事件
    roleChange(ischecked,val) {
      console.log(ischecked,'所点击的事件默认选中状态')
      var requestUrl;
      if (ischecked) {
        let option = {
          roleId: val.id,
          userId: this.form.userId,
        };
        requestUrl = this.api.setUserRole(option);
      } else {
        requestUrl = this.api.delUserRole(`${this.form.userId}/${val.id}`);
      }
      requestUrl.then((data) => {});
    },

尽量遵循规则来 读懂文档 少走弯路

### 实现 Element UI 中 `el-checkbox` 的选中状态变色 为了实现 `el-checkbox` 在选中状态改变颜色的效果,可以通过覆盖默认样式来完成。以下是具体方法: 通过使用 CSS 的深穿透 `/deep/` 或者 `>>>` 来修改组件内部的样式[^2]。以下是一个完整的代码示例,展示如何更改 `el-checkbox` 组件在选中状态下的背景色、边框颜色以及文字颜色。 ```css /* 修改选中状态下的背景色和边框颜色 */ /deep/.el-checkbox__input.is-checked .el-checkbox__inner, /deep/.el-checkbox__input.is-indeterminate .el-checkbox__inner { background-color: #ff9213 !important; border: 1px solid #ff9213 !important; } /* 鼠标悬停时的边框颜色 */ /deep/.el-checkbox__inner:hover { border-color: #ff9213; } /* 修改选中状态下标签的文字颜色 */ /deep/.el-checkbox__input.is-checked + .el-checkbox__label { color: #ff9213; } /* 聚焦状态下的边框颜色 */ /deep/.el-checkbox__input.is-focus .el-checkbox__inner { border-color: #ff9213!important; } ``` 上述代码片段中的每一部分都针对不同的视觉效果进行了调整。例如,`.el-checkbox__input.is-checked .el-checkbox__inner` 定义了当复选框被选中时其内部元素的颜色变化;而 `.el-checkbox__input.is-checked + .el-checkbox__label` 则负责设置旁边标签文字的颜色变化。 如果项目中启用了 SCSS 且希望更灵活地管理变量,则可以引入全局变量将其应用于这些样式规则之中。例如,在项目的变量文件中定义如下内容[^1]: ```scss $--checkbox-disabled-checked-icon-color: $--color-text-placeholder !default; ``` 此行代码表示设置了未启用情况下已勾选项图标的颜色,默认值为占位符文本颜色。虽然这条语句主要用于禁用状态下的显示逻辑,但它展示了如何利用 SASS 变量统一控制界面风格的一致性。 最后需要注意的是,随着 VueElement Plus 版本更新,某些旧版写法可能不再适用,请始终查阅最新官方文档确认兼容性和最佳实践。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值