首页 VueJS Vue3 Element-plus el-table 懒加载

Vue3 Element-plus el-table 懒加载

作者:胡同里的砖头 围观群众:122 更新于:2024-06-28

重点是两个语句

// 重置节点
cTable.value.store.states.treeData.value[row.id].loaded = false
// 数据处理完成后 加载数据并展开父节点
cTable.value.store.loadOrToggle(row)
示例
<template>
<el-button type="success" @click="create">添加</el-button>
<el-table
:data="dataList" /* 数据列表 */
border /* 表格有边框 */
row-key="id" /* 重中之重 不可缺少 可以根据自己的数据自定义字段名称*/
v-loading="loading" /* loading */
lazy /* 开启懒加载 */
:load="load" /* 懒加载调用的方法 */
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }" /* 渲染嵌套数据的配置选项 不可缺少 */
style="width: 100%"
ref="cTable" /* ref 刷新页面时用到,不可缺少 */
>
<el-table-column prop="id" label="ID"/>
<el-table-column label="操作">
<template #default="scope">
<el-button type="primary" @click="edit(scope.row)">编辑</el-button>
</template>
</el-table-column>
</el-table>
</template>
<script>
import { ref } from 'vue'
export default {
name: 'xxxxx',
setup () {
const dataList = ref([])
const cTable = ref(null)
const create = () => {}
const edit = (row) => {
cTable.value.store.states.treeData.value[row.id].loaded = false // 重置当前节点
// Todo 数据处理
// 数据处理完成后 加载数据并展开父节点
cTable.value.store.loadOrToggle(row)
}
const load = (row, treeNode, resolve) => {
const children = [] // 调用api获取子集数据
children.map(v => {
v.hasChildren = v.level < 2 // 根据自己数据层级定义是否显示缩进图标
return v
})
resolve(children)
}
return { cTable, dataList, create, edit, load }
}
}
</script>

  • 本文标题: Vue3 Element-plus el-table 懒加载
  • 文章分类:【VueJS】
  • 非特殊说明,本文版权归【胡同里的砖头】个人博客 所有,转载请注明出处.
留言评论
站点声明:
1、本站【胡同里的砖头】个人博客,借鉴网上一些博客模板,取其各优点模块自行拼装开发,本博客开发纯属个人爱好。
2、所有笔记提供给广大用户交流使用,可转载,可复制,纯个人开发所遇问题锦集记录使用
Copyright © huzlblog.com All Rights Reserved. 备案号:苏ICP备2021056683号-8