最近项目有个表格 table数据太多使用懒加载方式 但是由于涉及到增删改 操作之后表格数据不会即时刷新 导致网上百度了半天 才找到解决办法 如图
<el-table
:key="fondsCode"
:data="gridData"
border
ref="tableDom"
header-row-class-name='thClassName'
v-loading="loading"
tooltip-effect="dark"
:tree-props="{children: 'children', hasChildren: 'hasChildren'}"
:row-key="isSearch?'':'id'"
:lazy="lazy"
:load='loadTree'
:row-class-name="getRowClassName"
>
<el-table-column
align="center"
type="index"
width="70"
label="序号">
</el-table-column>
<el-table-column label="分类名称" align="left" prop="text"></el-table-column>
<el-table-column label="分类号">
<template slot-scope="scope">
<span v-if="!scope.row.li_attr">{{scope.row.id}}</span>
</template>
</el-table-column>
<el-table-column label="上级分类号" align="center" prop="parentcatalogcode">
<template slot-scope="scope">
<span v-if="!scope.row.li_attr">{{scope.row.parentcatalogcode}}</span>
</template>
</el-table-column>
<el-table-column property="set" label="操作" align="center" width="200" fixed="right">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
@click="handleWrite(scope.row)"
v-if="!scope.row.li_attr"
:disabled="$is_disabled(['entityClass-edit']) ? false : true"
>编辑</el-button>
<el-button
size="mini"
type="text"
v-if="!scope.row.li_attr"
@click="handleDelete(scope.$index,scope.row)"
:disabled="$is_disabled(['entityClass-delete']) ? false : true"
>删除</el-button>
<el-button
size="mini"
type="text"
:disabled="$is_disabled(['entityClass-add']) ? false : true"
@click="add(scope.row)"
>添加子栏目</el-button>
</template>
</el-table-column>
</el-table>
例如点击删除之后将当前节点删除 删除后即时更新
百度发现其中有个api官网没给
this.$set(this.$refs.tableDom.store.states.lazyTreeNodeMap,this.Form.classnodeId,arr)
this.$refs.tableDom.store.states.lazyTreeNodeMap可以获取最新的当前节点数据 所以 当我们删除节点 或者修改节点后,再次调用接口传上一级节点的id 查询数据之后 把数据赋值给上一级节点即可
如果不清楚 可以打印this.$refs.tableDom.store.states.lazyTreeNodeMap 可以看获取的是什么值