修改媒体类型和区域新建子集不刷新问题
This commit is contained in:
parent
6e9c66c82d
commit
08cc123cb4
|
|
@ -162,7 +162,6 @@ const loadChildren = async (row, treeNode, resolve) => {
|
||||||
|
|
||||||
resolve(response.data);
|
resolve(response.data);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('加载子节点失败:', error);
|
|
||||||
resolve([]);
|
resolve([]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -242,7 +241,41 @@ const submitForm = () => {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// 新增操作
|
// 新增操作
|
||||||
getsysRegionTreeList(form.value.parentId || 0);
|
const parentId = form.value.parentId || 0;
|
||||||
|
|
||||||
|
if (parentId === '0' || parentId === 0) {
|
||||||
|
// 新增根节点 - 重新加载整个树
|
||||||
|
getsysRegionTreeList();
|
||||||
|
} else {
|
||||||
|
// 新增子节点 - 重新加载父节点的子节点数据
|
||||||
|
const parentRow = findRowById(parentId);
|
||||||
|
|
||||||
|
if (parentRow) {
|
||||||
|
// 重新加载该父节点的子节点
|
||||||
|
queryParams.value.parentId = parentId;
|
||||||
|
sysRegionListByPid(queryParams.value).then(res => {
|
||||||
|
// 使用 splice 确保响应式更新
|
||||||
|
if (!parentRow.childList) {
|
||||||
|
parentRow.childList = [];
|
||||||
|
}
|
||||||
|
parentRow.childList.splice(0, parentRow.childList.length, ...res.data);
|
||||||
|
parentRow.hasChildren = res.data && res.data.length > 0;
|
||||||
|
|
||||||
|
// 强制表格重新渲染
|
||||||
|
nextTick(() => {
|
||||||
|
// 先收起再展开,强制刷新子节点
|
||||||
|
tableRef.value?.toggleRowExpansion(parentRow, false);
|
||||||
|
setTimeout(() => {
|
||||||
|
tableRef.value?.toggleRowExpansion(parentRow, true);
|
||||||
|
tableRef.value?.doLayout();
|
||||||
|
}, 50);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
// 如果找不到父节点,重新加载整个树
|
||||||
|
getsysRegionTreeList();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 恢复展开状态
|
// 恢复展开状态
|
||||||
|
|
|
||||||
|
|
@ -161,7 +161,6 @@ const loadChildren = async (row, treeNode, resolve) => {
|
||||||
|
|
||||||
resolve(response.data);
|
resolve(response.data);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('加载子节点失败:', error);
|
|
||||||
resolve([]);
|
resolve([]);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
@ -240,7 +239,44 @@ const submitForm = () => {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// 新增操作
|
// 新增操作
|
||||||
getsysMediaTypeTreeList(form.value.parentId || 0);
|
const parentId = form.value.parentId || 0;
|
||||||
|
|
||||||
|
if (parentId === '0' || parentId === 0) {
|
||||||
|
// 新增根节点 - 重新加载整个树
|
||||||
|
getsysMediaTypeTreeList();
|
||||||
|
} else {
|
||||||
|
// 新增子节点 - 使用强制刷新方式
|
||||||
|
const parentRow = findRowById(parentId);
|
||||||
|
|
||||||
|
if (parentRow) {
|
||||||
|
// 方法1: 使用数组的响应式方法
|
||||||
|
if (!parentRow.childList) {
|
||||||
|
// 如果之前没有子节点,需要创建响应式数组
|
||||||
|
parentRow.childList = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
// 重新加载数据
|
||||||
|
queryParams.value.parentId = parentId;
|
||||||
|
sysMediaTypeListByPid(queryParams.value).then(res => {
|
||||||
|
// 使用 splice 清空并重新添加,确保响应式更新
|
||||||
|
parentRow.childList.splice(0, parentRow.childList.length, ...res.data);
|
||||||
|
parentRow.hasChildren = res.data && res.data.length > 0;
|
||||||
|
|
||||||
|
// 强制刷新
|
||||||
|
nextTick(() => {
|
||||||
|
// 先收起再展开,强制刷新子节点
|
||||||
|
tableRef.value?.toggleRowExpansion(parentRow, false);
|
||||||
|
setTimeout(() => {
|
||||||
|
tableRef.value?.toggleRowExpansion(parentRow, true);
|
||||||
|
tableRef.value?.doLayout();
|
||||||
|
}, 50);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
// 如果找不到父节点,重新加载整个树
|
||||||
|
getsysMediaTypeTreeList();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 恢复展开状态
|
// 恢复展开状态
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user