这是html
这个是获取表格数据
const toggleSelection = (rows: any) => {
if(rows) {
rows.forEach((row: any) => {
if(row.enable) {
multipleTableRef.value!.toggleRowSelection(row,row.enable)
}
})
}else {
multipleTableRef.value!.clearSelection()
}
}
这个是表格的默认勾选复选框,在获取到表格数据以后执行这个
onMounted(() => {
getRuleManageData()
})
在onMounted周期中调用获取表格的数据,获取到数据以后执行上面的勾选复选框操作
const handleSelectionChange = (selection: any[]) => {
const removedRows:any = prevSelectedRows.value.filter(row => !selection.includes(row));
const addedRows = selection.filter(row => !prevSelectedRows.value.includes(row));
removedRows.forEach((item:any) => {
const requestData = {
id: item.id,
enable: false,
category:item.category
};
// 取消勾选复选框发起的请求
SelectionChange(requestData)
});
addedRows.forEach(item => {
const requestData = {
id: item.id,
enable: true,
category:item.category
};
// 添加勾选复选框发起的请求
SelectionChange(requestData)
});
prevSelectedRows.value = [...selection];
}
const SelectionChange = (row:any) => {
SigCategoryUpdate({
id: row?.id,
category: row?.category,
enable: row?.enable
}).then(res => {
if(res.code === 200) {
}
})
}
现在的问题是 一进入页面或者是刷新页面,都是自动执行handleSelectionChange事件里面对addedRows这个进行遍历然后执行SelectionChange这个请求,如果表格的所有项都选中的时候,进入页面或者是刷新页面,选中的项都会在执行一次请求,请问如何解决,麻烦各位了,指正一下,挺急的
可以加个参数isInitData判断 默认false