Open lhdhtrc opened 2 months ago
👋 @lhdhtrc,感谢给 TDesign 提出了 issue。 请根据 issue 模版确保背景信息的完善,我们将调查并尽快回复你。
回显解决携带父级id,导致半选变全选 是指什么时候额?
@uyarn 例如返回数据是[p1, c1, c2], p1下有c1, c2 c3,但是这里只返回了p1下的c1,c2, 那么如果回显到数组件上p1节点会变成全选,这个时候就需要去做处理,看p1下是否存在c1, c2, c3如果存在则不过滤p1, 如果存在则过滤p1
<template>
<t-tree
ref="menuRef"
v-model="formData.menuIdList"
class="narrow-scrollbar"
max-height="300px"
checkable
value-mode="all"
:expand-all="menuAll"
:data="menu"
:keys="{ value: 'id', label: 'name', children: 'children' }"
@change="treeChange($event, 0)"
></t-tree>
</template>
<script>
......
const onWatcher = watch(
() => props.active,
async () => {
if (props.active) {
switch (props.type) {
case 0:
break;
case 1:
loading.value = true;
try {
const res = await GetRoleInfoAPI(props.row.id);
res.menuIdList = useTreeFilter(props.menu, res.menuIdList);
res.deptIdList = useTreeFilter(props.dept, res.deptIdList);
formData.value = res;
menuAll.value = res.menuIdList.length === menuRef.value.getItems().length;
deptAll.value = res.deptIdList.length === deptRef.value.getItems().length;
} catch (err) {
console.log(err);
}
loading.value = false;
break;
default:
}
} else {
formData.value = JSON.parse(JSON.stringify(reset));
}
},
);
......
</script>
这个功能解决了什么问题
解决回显解决携带父级id,导致半选变全选问题
你建议的方案是什么
这只是一个简单的例子,方便后续的查找