fix(@vben/web-antdv-next): 修复 Tree 选中事件读取旧 dataRef 导致筛选失效

pull/362/head
XuZhiqiang 2026-06-17 11:25:07 +08:00
parent 97ca9cfa45
commit 041e3f6e2d
4 changed files with 34 additions and 8 deletions

View File

@ -54,8 +54,17 @@ function handleSearch(value: string) {
} }
/** 处理节点点击:支持点击同一节点取消选中 */ /** 处理节点点击:支持点击同一节点取消选中 */
function handleSelect(_selectedKeys: any[], info: any) { function handleSelect(selectedNodeKeys: any[], info: any) {
const row = info.node.dataRef as MesMdItemTypeApi.ItemType; const selectedKey = selectedNodeKeys[0] ?? info.node?.id ?? info.node?.key;
const row = itemTypeList.value.find(
(item) => String(item.id) === String(selectedKey),
);
if (!row) {
currentNodeId.value = undefined;
selectedKeys.value = [];
emit('nodeClick', undefined);
return;
}
if (currentNodeId.value === row.id) { if (currentNodeId.value === row.id) {
currentNodeId.value = undefined; currentNodeId.value = undefined;
selectedKeys.value = []; selectedKeys.value = [];

View File

@ -38,8 +38,12 @@ function handleSearch(e: any) {
} }
/** 选中部门:点击已选中的节点时取消选中 */ /** 选中部门:点击已选中的节点时取消选中 */
function handleSelect(_selectedKeys: any[], info: any) { function handleSelect(selectedNodeKeys: any[], info: any) {
emit('select', info.selected ? info.node.dataRef : undefined); const selectedKey = selectedNodeKeys[0];
const dept = info.selected
? deptList.value.find((item) => String(item.id) === String(selectedKey))
: undefined;
emit('select', dept);
} }
/** 重置选中状态(供外部重置按钮调用) */ /** 重置选中状态(供外部重置按钮调用) */

View File

@ -32,8 +32,12 @@ function handleSearch(e: any) {
} }
/** 选中部门 */ /** 选中部门 */
function handleSelect(_selectedKeys: any[], info: any) { function handleSelect(selectedNodeKeys: any[], info: any) {
emit('select', info.node.dataRef); const selectedKey = selectedNodeKeys[0] ?? info.node?.id ?? info.node?.key;
const dept = info.selected
? deptList.value.find((item) => String(item.id) === String(selectedKey))
: undefined;
emit('select', dept);
} }
/** 初始化 */ /** 初始化 */

View File

@ -55,8 +55,17 @@ function handleSearch(value: string) {
} }
/** 处理节点点击:支持点击同一节点取消选中 */ /** 处理节点点击:支持点击同一节点取消选中 */
function handleSelect(_selectedKeys: any[], info: any) { function handleSelect(selectedNodeKeys: any[], info: any) {
const row = info.node.dataRef as WmsItemCategoryApi.ItemCategory; const selectedKey = selectedNodeKeys[0] ?? info.node?.id ?? info.node?.key;
const row = categoryList.value.find(
(item) => String(item.id) === String(selectedKey),
);
if (!row) {
currentNodeId.value = undefined;
selectedKeys.value = [];
emit('nodeClick', undefined);
return;
}
if (currentNodeId.value === row.id) { if (currentNodeId.value === row.id) {
currentNodeId.value = undefined; currentNodeId.value = undefined;
selectedKeys.value = []; selectedKeys.value = [];