• el-table 指定层级展开


    先来看看页面默认全部展开时页面的显示效果:所有节点被展开,一眼望去杂乱无章!

    那么如何实现只展开指定的节点呢?最终效果如下:一眼看去很舒爽。 

    干货上代码:

    1. if="refreshTable" v-loading="loading" :data="sourceList" row-key="id"
    2. :default-expand-all="isExpandAll" :expand-row-keys="expandRowKeysList"
    3. :tree-props="{ children: 'children', hasChildren: 'hasChildren' }">
    4. <el-table-column label="来源名称" prop="name" />
    5. <el-table-column label="状态" align="center" prop="enabled">
    6. <template slot-scope="scope">
    7. <dict-tag :options="dict.type.msg_status" :value="scope.row.enabled" />
    8. template>
    9. el-table-column>
    10. <el-table-column label="创建者" align="center" prop="createBy" />
    11. <el-table-column label="创建日期" align="center" prop="createTime" width="180">
    12. <template slot-scope="scope">
    13. <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}span>
    14. template>
    15. el-table-column>
    16. <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
    17. <template slot-scope="scope">
    18. <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
    19. v-hasPermi="['system:source:edit']">修改el-button>
    20. <el-button size="mini" type="text" icon="el-icon-plus" @click="handleAdd(scope.row)"
    21. v-hasPermi="['system:source:add']">新增el-button>
    22. <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
    23. v-hasPermi="['system:source:remove']">删除el-button>
    24. template>
    25. el-table-column>

     核心代码注意:这三个属性,一定要注意使用。id即接口给你返回的每个节点的id,具体看你后端接口返回的命名。

    1. row-key="id"
    2. :default-expand-all="isExpandAll"
    3. :expand-row-keys="expandRowKeysList"

    isExpandAll在data中默认为false意为不要全部默认展开,即全部自动收起。否则指定展开无效。

    isExpandAll:false

    再来看看被展开节点的设置:将要展开节点的id放入expandRowKeysList数组中。

    :expand-row-keys="expandRowKeysList"
    1. data(){
    2. return {
    3. isExpandAll:false
    4. //table哪些行默认开展
    5. expandRowKeysList:[]
    6. }
    7. }

     调用接口:

    1. methods: {
    2. /** 查询项目来源列表 */
    3. getList() {
    4. let self = this
    5. listSource(this.queryParams).then(response => {
    6. this.sourceList = this.handleTree(response.data, "id", "pid");
    7. this.sourceList.forEach(element =>
    8. {
    9. self.expandRowKeysList.push(element.id + '')
    10. });
    11. });
    12. },
    13. }

    默认展开一级。如果你默认展开第二级,则修改以上代码,将二级节点的id压入数组中即可。 

  • 相关阅读:
    强化学习从基础到进阶--案例与实践[7]:深度确定性策略梯度DDPG算法、双延迟深度确定性策略梯度TD3算法详解
    Mysql基础 (二)
    【Java】static关键字,内部类
    峟思科普小(1)型土石坝安全监测设备的基本配置与策略
    django学习之路(2)-django的功能模块
    在Java中,为啥synchronized 锁升级的过程中,锁标记从对象头拷贝到线程本地变量表?
    MySQL 8.0 Undo Tablespace管理
    无网络maven私服添加jar和pom
    分布式NoSQL数据库HBase实践与原理剖析(二)
    YOLOv5、v7改进之四十:轻量化mobileone主干网络引入
  • 原文地址:https://blog.csdn.net/yunhuaikong/article/details/133080781