vue element 用table嵌套多选框checkbox

有了女朋友后我为什么用三天才写了一行代码
这几点饱(bei)读(nue)vue代码,深以为vue可以代替基础的js、带我飞;
然而被虐千千遍,下面根据试错和想法写一下要做的东西:
【vue element 用table嵌套多选框checkbox】1.试过的错,铺成下次试错的路
这世上本来没有轮子,造的人多了,轮子也就多了 ——特斯拉夫斯基.港
这里是form表单效果
html

{{ item.menu }}{{ checkedEquipments[index] }}{{ data.menu }}

数据
isIndeterminate: true,checkAll: false,checkedEquipments: [], // 随意修改后的checked项(即要传到后台的变更数据)equipments: [ // 所有数据{id: '1',menu: 'table1',childMenu: [{id: '1-1',menu: '字段一'}, {id: '1-2',menu: '字段二'}, {id: '1-3',menu: '字段三'}, {id: '1-4',menu: '字段四'}]},{id: '2',menu: 'table2',childMenu: [{id: '2-1',menu: '字段1'}, {id: '2-2',menu: '字段2'}, {id: '2-3',menu: '字段3'}, {id: '2-4',menu: '字段4'}]}],checkEquip: [ // 模拟后台获取的数据(各el-checkbox-group默认checked项){id: '1',menu: 'table1',childMenu: [{id: '1-1',menu: '暖通一'}, {id: '1-2',menu: '照明一'}]}, {id: '2',menu: '设备2',childMenu: []}]// 方法handleChange() {this.checkEquipArr = []const arr = this.checkedEquipmentsfor (let i = 0; i < arr.length; i++) {const equipment = arr[i]if (equipment.length > 0) {const obj = {id: this.equipments[i].id,equips: []}for (let j = 0; j < equipment.length; j++) {obj.equips.push(equipment[j])}this.checkEquipArr.push(obj)}}console.log(this.checkEquipArr)}
错误: keys : ‘[ ]’. This may cause anerror.
写了两个一样的for循环,绑定的key相同 。
目前还存在的问题变成了子列表全部放到了每一行中,需要加判断或者筛选条件
接近成功了,使用了插槽获取对应行的数据
用插槽可以展示出来了
至此参考三部分
vue+ 动态获取数据 遍历循环 生成el--group
vue+-ui之 el-table组件中的理解和使用
vue element 用table嵌套多选框checkbox

文章插图
Vue.js的条件v-if和列表循环v-for
Vue组件开发实践之的传递
关于插槽的更新:
新:作用域插槽
旧:带有 slot-scope 特性的作用域插槽
如何理解:
深入理解vue中的slot与slot-scope
贴出来现在模拟数据的代码:
优化功能一:初始化时候,默认全选: