![elementui 树形数据递归table_第1页](http://file4.renrendoc.com/view/9fb15a03bc3ca89f9fecc863525a22d4/9fb15a03bc3ca89f9fecc863525a22d41.gif)
![elementui 树形数据递归table_第2页](http://file4.renrendoc.com/view/9fb15a03bc3ca89f9fecc863525a22d4/9fb15a03bc3ca89f9fecc863525a22d42.gif)
![elementui 树形数据递归table_第3页](http://file4.renrendoc.com/view/9fb15a03bc3ca89f9fecc863525a22d4/9fb15a03bc3ca89f9fecc863525a22d43.gif)
![elementui 树形数据递归table_第4页](http://file4.renrendoc.com/view/9fb15a03bc3ca89f9fecc863525a22d4/9fb15a03bc3ca89f9fecc863525a22d44.gif)
![elementui 树形数据递归table_第5页](http://file4.renrendoc.com/view/9fb15a03bc3ca89f9fecc863525a22d4/9fb15a03bc3ca89f9fecc863525a22d45.gif)
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
elementui树形数据递归table在Vue.js的开发中,使用ElementUI库来创建交互性的组件是一种常见做法。ElementUI提供了丰富的组件,其中包括了树形结构的展示组件,并且还提供了递归表格(RecursiveTable)的实现方式。本文将介绍如何使用ElementUI来创建树形数据的递归表格。
首先,我们需要准备一个有层级关系的数据。这个数据可以是一个数组,每个元素代表一条数据,并且每个元素都包含一个children属性,用来表示当前数据的子节点。以下是一个示例数据:
```javascript
consttreeData=[
{
id:1,
name:'节点1',
children:[
{
id:11,
name:'节点1-1',
children:[]
},
{
id:12,
name:'节点1-2',
children:[
{
id:121,
name:'节点1-2-1',
children:[]
},
{
id:122,
name:'节点1-2-2',
children:[]
}
]
}
]
},
{
id:2,
name:'节点2',
children:[]
}
];
```
接下来,我们需要在Vue组件中使用ElementUI的`<el-table>`和`<template>`来创建递归表格。具体实现如下:
```html
<template>
<div>
<el-table:data="tableData"border>
<el-table-columntype="index"></el-table-column>
<el-table-columnprop="name"label="名称"></el-table-column>
<el-table-columnlabel="操作">
<templateslot-scope="scope">
<el-buttontype="primary"size="mini">编辑</el-button>
<el-buttontype="danger"size="mini">删除</el-button>
</template>
</el-table-column>
<templatev-for="colindynamicColumns">
<el-table-column:label="col.label":prop="p"></el-table-column>
</template>
</el-table>
</div>
</template>
<script>
exportdefault{
data(){
return{
tableData:[],
dynamicColumns:[]
};
},
mounted(){
this.tableData=this.normalizeData(treeData);
this.dynamicColumns=this.getDynamicColumns(treeData);
},
methods:{
normalizeData(data){
letresult=[];
data.forEach(item=>{
result.push(item);
if(item.children.length>0){
result=result.concat(this.normalizeData(item.children));
}
});
returnresult;
},
getDynamicColumns(data){
letcolumns=[];
data.forEach(item=>{
if(item.children.length>0){
columns.push({
label:'子级名称',
prop:`name${item.id}`
});
columns=columns.concat(this.getDynamicColumns(item.children));
}
});
returncolumns;
}
}
};
</script>
```
在上面的代码中,我们使用了Vue的计算属性`tableData`和`dynamicColumns`来获取处理后的表格数据和动态列数据。在`mounted`钩子函数中,我们分别调用了`normalizeData`和`getDynamicColumns`方法来处理原始数据,使其适应于ElementUI的表格的要求。
`normalizeData`方法使用递归的方式将层级关系的数据展开成一维数组。`getDynamicColumns`方法同样使用递归的方式获取所有层级的动态列数据。
在模板中,我们使用了`<el-table>`来创建表格,并通过`:data`将处理后的数据传递给表格组件。然后,我们使用`<el-table-column>`来创建表格的列。在示例中,我们创建了两种类型的列,一种是普通的列,一种是动态列。
普通的列使用`prop`属性来指定要显示的数据字段。动态列使用`v-for`指令来遍历动态列数据,并使用`:label`和`:prop`来指定列的标题和数据字段。
除了基础的表格操作,我们还可以在`<template>`中添加其他的HTML内容,例如上述代码中的操作按钮。通过使用`slot-
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学一年级画教学反思模板8篇
- 万达音乐剧场租赁合同
- 太原市赛车俱乐部租赁协议
- 双方自愿解除合同
- 服装厂面料采购合同
- 医院药品配送合作协议
- 企业设备融资租赁合同
- 事业单位正规的聘用合同
- 道砟购销合同
- 合同管理台账模板
- 血管通路并发症护理预防及处理
- 华为公司项目招投标管理
- 2024红十字救护员理论考核试题及答案
- 广西南宁市部分地区2022-2023学年六年级下学期期末考试英语试题
- 冷库节能降耗技术改造项目
- 成品油零售经营企业年度检查登记表
- EHS法律法规清单及合规性评估
- 近五年福建中考生物真题及答案2023
- 浙江省杭州西湖区四校联考2024届中考三模数学试题含解析
- 三级广告设计师理论知识练习试题(一)
- 自信自卑主题班会
评论
0/150
提交评论