vue2.x,el-table,树形表格存在多选的时候,如何优化让父子选框进行联动?-灵析社区

biubiuuuuu

需求1,当点击多选的时候,不止选中父级,父级下的子项也需要选中 ![image.png](https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241008/db2136e7d2b65fbdf7b52033a3cf808c.png) 父子间的选框,类似全选框一样,可以呈现 indeterminate 状态 ![image.png](https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241008/4828bce295b8fee6a80140e042f4dea6.png) 同时点击父级选框,可以对子项进行全选/全不选 更改子级选框,也能联动改变父级选框的状态 并且以上联动效果支持在翻页的时候保留 应该如何实现?

阅读量:134

点赞量:0

问AI
"https://codesandbox.io/p/sandbox/agitated-merkle-qmhmck?file=..." (https://link.segmentfault.com/?enc=kw0%2FAd0zG0THGkRsnL5wqQ%3D%3D.GMPPPi8IJgN5aTGX4Ox5m9I1fIE01LjzUSgES9Y7KR3fu%2F8hdYVwpGXjIyzw0l2swhbzkSX22pZ30UVCwS7GRmCYXdws9zNc3nNH7fPD8prPIEc%2Bc6FT8e2DxWxSt9V7) 看看这是不是你想要的,如果是的话,按照下面步骤来: 1. 给你的"el-table"加上"row-key"属性,"row-key"的值为你的数据唯一标示名,一般会是"id"。 2. 给你的勾选框"column"加上"reserve-selection"属性,不用写值。 3. 切换分页验证效果。 {{ scope.row.date }} 第一页 第二页 const fetchData = (page) => { return new Promise((resolve) => { setTimeout(() => { const page1Data = [ { id: "1", date: "2016-05-03", name: "王小虎", address: "上海市普陀区金沙江路 1518 弄", }, { id: "2", date: "2016-05-02", name: "王小虎", address: "上海市普陀区金沙江路 1518 弄", }, ]; const page2Data = [ { id: "3", date: "2016-05-03", name: "雷军", address: "上海市普陀区金沙江路 1518 弄", }, { id: "4", date: "2016-05-02", name: "雷军", address: "上海市普陀区金沙江路 1518 弄", }, ]; if (page === 1) { resolve(page1Data); } if (page === 2) { resolve(page2Data); } }, 1000); }); }; export default { name: "App", data() { return { page: 1, tableData: [], multipleSelection: [], }; }, methods: { setPage(page) { this.page = page; }, async getTableData(page) { const data = await fetchData(page); this.tableData = data; }, handleSelectionChange(val) { console.log("val", val); }, }, watch: { page: { immediate: true, handler(val) { this.getTableData(val); }, }, }, };