想要实现一个表格默认勾选上次选过的项的功能:
发现直接使用toggleRowSelection不生效,必须使用setTimeout延迟一会才能生效。
表格:
<el-table
ref="table"
border
stripe
:data="rows"
@selection-change="val => (selectedRows = val)"
>
<el-table-column
type="selection"
align="center"
:width="uiSetting.table.checkbox"
/>
<el-table-column
type="index"
label="序号"
align="center"
></el-table-column>
<el-table-column label="编码" prop="code" show-overflow-tooltip />
<el-table-column label="名称" prop="name" show-overflow-tooltip />
</el-table>
获取数据:
// 获取列表数据
async fetchData() {
const { id } = this
let data = await this.$api.list({
data: {id}
})
setTimeout(() => {
data.forEach(row => {
// 勾选标识
if (row.isSelect ) {
this.$refs.table.toggleRowSelection(row)
}
})
}, 10)
this.rows = data
},