fix table重新渲染会修改props

This commit is contained in:
2023-05-18 14:35:17 +08:00
parent 71a3b6f1c4
commit 9c7280105d
7 changed files with 98 additions and 69 deletions

View File

@@ -238,7 +238,8 @@ const findFinalNode = (level: number, columns: any[]) => {
findFinalNode(0, tableColumns.value);
const tableSelectedKeys = ref<Recordable[]>([...props.selectedKeys]);
// 你浅拷贝他干什么呀
const tableSelectedKeys = ref<Recordable[]>(props.selectedKeys);
const tableExpandKeys = ref<Recordable[]>([...props.expandKeys]);
watch(
@@ -313,7 +314,10 @@ watch(
} else {
hasChecked.value = false;
}
emit("update:selectedKeys", tableSelectedKeys.value);
if(tableSelectedKeys.value != props.selectedKeys){
console.log("初始化赋值触发修改",tableSelectedKeys.value,props.selectedKeys)
emit("update:selectedKeys", tableSelectedKeys.value);
}
},
{ deep: true, immediate: true }
);

View File

@@ -101,6 +101,9 @@ function handleTitleClick(node: TreeData) {
if (!node.isDisabled) {
emit("node-click", node);
}
if(props.showCheckbox){
node.isChecked = !node.isChecked
}
}
function handleRowClick(node: TreeData) {
@@ -182,7 +185,7 @@ const isChildAllSelected = computed(() => {
:class="{
'layui-tree-txt': true,
'layui-disabled': node.isDisabled,
'layui-this': selectedKey === node.id,
'layui-this': selectedKey === node.id || node.isChecked,
}"
@click.stop="handleTitleClick(node)"
>

View File

@@ -103,9 +103,13 @@ watch(
watch(
() => props.checkedKeys,
() => {
console.log(tree.value)
if (!unWatch.value) {
loadNodeList();
}
},
{
deep: true
}
);
@@ -116,9 +120,9 @@ watch(
const { checkedKeys } = tree.value.getKeys();
unWatch.value = true;
emit("update:checkedKeys", checkedKeys);
setTimeout(() => {
nextTick(() => {
unWatch.value = false;
}, 0);
});
}
},
{ deep: true }