el-table 树形数据 懒加载模式下一键展开
用elementui table 组件做了一个树形结构的表格,用的懒加载,想在表格头部做个按钮,点击一键展开收起。
首先尝试了expand-row-keys 属性,发现设置了只是将左边的箭头展开,但是根本没有加载数据。
接着看到toggleRowExpansion方法,直接调用也是相同的效果。
深入看了一下组件源码,这个组件就是有这个问题,当是lazy模式下直接切换箭头,没有加载数据,也并没有打算修复。
于是把相应的代码扒拉下来改了一下。
-
<el-table-column align="left" prop="name" show-overflow-tooltip>
-
<template slot="header" slot-scope="scope">
-
<span>xxx</span>
-
<el-button type="text" size='mini' :icon="expanded?'el-icon-arrow-up':'el-icon-arrow-down'" @click='expandRows'>{{expanded?'收起':'展开'}}</el-button>
-
</template>
-
<template slot-scope="scope">
-
</template>
-
</el-table-column>
-
expandRows(){
-
this.expanded = !this.expanded
-
const { table: { toggleRowExpansion, store }} = this.$refs;
-
const { states: { lazy, treeData, rowKey }, assertRowKey, loadData } = store
-
this.list.map(row=>{
-
const id = this.getRowIdentity(row, rowKey)
-
const data = treeData[id]
-
-
if (this.expanded) {
-
-
if (lazy && data && 'loaded' in data && !data.loaded) {
-
return loadData(row, id, data)
-
}
-
}
-
return toggleRowExpansion(row, this.expanded)
-
});
-
},
-
-
getRowIdentity (row, rowKey) {
-
if (!row) throw new Error('row is required when get row identity');
-
if (typeof rowKey === 'string') {
-
if (rowKey.indexOf('.') < 0) {
-
return row[rowKey];
-
}
-
let key = rowKey.split('.');
-
let current = row;
-
for (let i = 0; i < key.length; i ) {
-
current = current[key[i]];
-
}
-
return current;
-
} else if (typeof rowKey === 'function') {
-
return rowKey.call(null, row);
-
}
-
},
this.expanded 是一个展开收起的flag,用来展示按钮的文字与箭头
this.list 是当前table 的父级数据列表
当点击按钮时调expandRows
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgghheb
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13