需求: 添加 table 列表选中的数据传给后台, 编辑 回显后台需要勾选的id数据,进行编辑之后更新id 数组,传给后台。
结构体 el-table
先来解释table中的属性:
data:table的数据
ref:回显勾选需要获取到每一列标识,
row-key:行数据的 Key,用来优化 Table 的渲染;在使用 reserve-selection 功能与显示树形数据时,该属性是必填的。(直接拿的element的解释),
reserve-selection:仅对 type=selection 的列有效,类型为 Boolean,为 true 则会在数据更新之后保留之前选中的数据(需指定 row-key)
row-key和reserve-selection 两个要结合起来,很重要的,他可以让你在选择分页的时候原来选中的数据或者取消勾选的数据,在页面不刷新的情况下,一直保持勾选或不勾选的状态。
selection-change:多选时会触发,选中 返回的是选择的数据,取消 返回的是选择的数据 (有点废话啦哈哈哈,但是我还是要写)
select 单选时会触发, 取消和勾选 返回的都是那一列的数据
需要用到的自定义数组
每次分页回显勾选的方法
这里面要提一嘴的是 nextTick 很重要,由于Vue的数据响应式特性,当我们修改Vue实例中的数据时,Vue会异步地更新DOM,而不是立即更新。这意味着在修改数据后立即访问DOM可能无法获取到最新的更新结果。这时,我们可以使用nextTick方法来确保在DOM更新完成后执行回调函数。
多选时需要筛选和处理的数据
else 里面:
this.selectArr_Id = rows 选中的所有数据
if (rows) {
rows.forEach((row) => {
if (row) {
this.select_Id.push(row.id);
}
});
}