el-checkbox-group el-checkbox 使用vue和element-ui,写两组el-checkbox-group ,每组都用v-for el-checkbox假数据,分别是随机生成水果和蔬菜的,且蔬菜是默认禁用的,选中水果中的苹果,才取消禁用,选中别的水果继续保持蔬菜禁用,请用具体代码实现
时间: 2023-12-20 10:17:46 浏览: 45
好的,以下是具体代码实现:
```html
<template>
<div>
<h3>水果</h3>
<el-checkbox-group v-model="fruitSelection">
<el-checkbox v-for="fruit in fruits" :key="fruit" :label="fruit" @change="handleFruitChange"></el-checkbox>
</el-checkbox-group>
<h3>蔬菜</h3>
<el-checkbox-group v-model="vegetableSelection">
<el-checkbox v-for="vegetable in vegetables" :key="vegetable" :label="vegetable" :disabled="vegetableDisabled"></el-checkbox>
</el-checkbox-group>
</div>
</template>
<script>
export default {
data() {
return {
fruits: ['苹果', '香蕉', '橙子', '草莓'],
vegetables: ['白菜', '胡萝卜', '西红柿', '黄瓜'],
fruitSelection: [],
vegetableSelection: [],
vegetableDisabled: true
};
},
methods: {
handleFruitChange(checkedFruits) {
if (checkedFruits.includes('苹果')) {
this.vegetableDisabled = false;
} else {
this.vegetableSelection = [];
this.vegetableDisabled = true;
}
}
}
}
</script>
```
以上代码中,我们先定义了两个数组 `fruits` 和 `vegetables` 分别代表水果和蔬菜的可选项。然后又定义了 `fruitSelection` 和 `vegetableSelection` 分别代表水果和蔬菜的选中项,`vegetableDisabled` 代表蔬菜是否禁用。
在模板中,我们使用 `el-checkbox-group` 和 `v-for` 分别渲染出水果和蔬菜的可选项,其中蔬菜的 `el-checkbox` 组件的 `:disabled` 属性绑定了 `vegetableDisabled` 变量,表示当 `vegetableDisabled` 为 `true` 时,蔬菜不可选。
在 `handleFruitChange` 方法中,我们监听水果的选中项变化事件 `@change`,当选中项中包含苹果时,我们将 `vegetableDisabled` 变量设为 `false` 表示蔬菜可以选择,否则将 `vegetableSelection` 清空并将 `vegetableDisabled` 设为 `true` 表示蔬菜不可选。