例子:一个复选框的数组类型是动态变化的,另一个空数组根据这个复选框数组动态变化对象,如果这个复选框取消一项,另一个数组对象就删除这一项。
//dataList循环遍历的这里用不到就省略了
<el-checkbox-group v-model="item.costPayway" @change="collectionMethod($event,index)" :disabled="_disabled">
<el-checkbox v-for="(k,k_index) in data" :label="k.value" :value="k.value">{{k.label}}</el-checkbox>
</el-checkbox-group>
dataList为是一个数组[...省略]
data:[{label:'向下',value:'down'},{label:'向上',value:'up']
data:数组
另一个数组默认下是:arrayList:[] 空数组
这个是vue3的书写:
collectionMethod这个事件去操作方法:
这个数组对象会根据list选中项和取消项变化。
const collectionMethod = (val, index)=>{
let item = dataList.value[index]
if(val&&val.length){
item.arrayList= data.value.map(v => {//这里会把复选框数组的值,都放入另一个数组对象下,并且不会重复
return item.arrayList.find(obj => obj.costPayway === v)
|| { costPayway :v}
})
}
}