ElementUI之动态树+数据表格+分页
在使用ElementUI进行开发时,可以利用el-tree
组件来实现动态树形结构,el-table
组件来展示数据,并使用el-pagination
组件来实现分页功能。以下是一个简单的示例代码:
<template>
<div>
<el-tree
:data="treeData"
:props="defaultProps"
@node-click="handleNodeClick"
/>
<el-table :data="tableData" style="width: 100%">
<el-table-column prop="date" label="日期" width="180"></el-table-column>
<el-table-column prop="name" label="姓名" width="180"></el-table-column>
<el-table-column prop="address" label="地址"></el-table-column>
</el-table>
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="currentPage"
:page-sizes="[10, 20, 30, 40]"
:page-size="pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="total">
</el-pagination>
</div>
</template>
<script>
export default {
data() {
return {
treeData: [/* 树形结构的数据 */],
defaultProps: {
children: 'children',
label: 'label'
},
tableData: [], // 表格数据
currentPage: 1,
pageSize: 10,
total: 0, // 总条目数
};
},
methods: {
handleNodeClick(data) {
// 节点点击事件,加载对应节点的数据
this.loadData(data.id);
},
loadData(nodeId) {
// 模拟从服务器加载数据
this.tableData = [/* 根据nodeId获取的数据 */];
this.total = this.tableData.length; // 假设总条目数和数组长度相等
},
handleSizeChange(val) {
this.pageSize = val;
this.handleCurrentChange(this.currentPage);
},
handleCurrentChange(val) {
this.currentPage = val;
// 模拟分页逻辑
const start = (this.currentPage - 1) * this.pageSize;
const end = start + this.pageSize;
this.tableData = this.tableData.slice(start, end);
}
}
};
</script>
在这个示例中,el-tree
组件用于展示树形结构,当点击某个节点时,通过handleNodeClick
方法加载相应的数据到表格中。el-pagination
组件用于控制表格的分页,其中handleSizeChange
和handleCurrentChange
方法用于处理页面大小改变和页面改变的事件,模拟分页效果。
请注意,以上代码只是一个简化的示例,实际应用中你需要根据自己的数据结构和后端API来填充数据加载逻辑。
评论已关闭