表格组件
<el-table ref="singleTable"
v-loading="tableLoading"
row-key="id"
:data="dataList"
:load="load"
lazy
highlight-current-row
@current-change="handleCurrentChange"
:tree-props="{children: 'children'}">
<el-table-column
type="index"
align="center"
width="50">
<template slot-scope="scope">
<el-radio :label="scope.row" v-model="currentRow"> </el-radio>
</template>
</el-table-column>
...
</el-table>
load 函数
load(tree, treeNode, resolve) {
let parentId = tree.id || 0;
getAreaTree({parentId: parentId}).then(data => {
for (let item of data) {
item.hasChildren = true;
}
resolve(data);
});
},
手动触发重新加载的函数
reloadNode(id) {
const { lazyTreeNodeMap, treeData } = this.$refs.singleTable['store'].states
this.$set(lazyTreeNodeMap, id, []);
this.load({id:id}, null, data => {
this.$set(treeData[id], "loading", false);
this.$set(treeData[id], "loaded", true);
this.$set(treeData[id], "expanded", true);
if (data.length) {
this.$set(lazyTreeNodeMap, id, data);
} else {
treeData[id].hasChildren = false;
}
});
},