elementUI el-table树形数据删除子节点刷新问题

表格数据通过后台接口获取,是否有子列表数据根据hasChildren判断。
增删改全部重新请求数据,不做页面操作。子列表新增修改数据没有问题,删除时接口请求成功,但删除子列表数据无法更新子列表。

解决办法:
1.声明变量

data() {
	return {
		maps: new Map()
	}
}
  1. 删除调用时添加:
    完整代码

this.$confirm("您确定要执行删除操作吗?", "提示", {
	confirmButtonText: "确定",
	cancelButtonText: "取消",
	type: "warning",
})
.then((action) => {
	if (action == "confirm") {
		axios.delById(scope.id).then((res) => {
			this.$message({
				type: "success",
				message: "删除成功!",
			});
			//原来是直接this.initTable();
			//新增部分-----start
			if (scope.pId) {
				const { tree, treeNode, resolve } = this.maps.get(scope.pId); //根据父级id取出对应的节点数据
				//将对应父节点下的数据清空,需要在el-table中增加参数 `ref="tableref"`
				this.$set(this.$refs.tableref.store.states.lazyTreeNodeMap, tree.id, []);
				//实现数据的重新加载
				this.load(tree, treeNode, resolve)	
			}else{
				//pId为0时重新加载表格
				this.initTable();
			}
			//-------end
		});
	}
})
.catch(() => {
	this.$message({
		type: "info",
		message: "已取消删除",
	});
});
  1. 懒加载存储
load(tree, treeNode, resolve) {
	this.maps.set(tree.id,{tree, treeNode, resolve})//新增
	axios.getByPid({pId:tree.id}).then((res) => {
		resolve(res.data)
	});
}
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值