思路:(所有選擇項都在一個數組中)給每一個選項設置一個是否選中的屬性(checked),通過change事件來改變,數組中每一項的checked,如果change事件的值是true,那么就要把數組中(如根據唯一值:id)不等于當前選擇項且checked為true的要變為false,一般的,@change事件回調參數是更新后的值,這里我們需要知道當前變化的是哪一項所有@change事件要這么寫:@change=“handleChange($event, item)”
具體代碼:
<el-checkboxv-for="(item, index) in options":key="item.id"class="check-box-item":class="{'active': item.checked}"v-model="item.checked":label="item.name"border@change="handleChange($event, item)"></el-checkbox>
js部分:
options = [{name:'選項1', id:1,checked: false},{name:'選項2', id:2,checked: false},{name:'選項3', id:3,checked: false},{name:'選項4', id:4,checked: false}];handleChange(value, item) {if (value) {this.activeItem = item;this.insuranceTypeList.forEach((el: any) => {if (el.id !== item.id && el.checked) {el.checked = false;}});}}