Element ui 2.8版本中的table树不能默认全展开解决方法
方案一:这个方案有问题
<el-table
ref="tableTreeRef"
:data="tableDate"
......
</el-table>
js:
watch: {
tableDate: function (nv, ov) {
this.$nextTick(() => {
this.unFoldAll()
})
}
}
/**
* 展开所有下级
*/
unFoldAll () {
let queryResult = this.$refs.tableTreeRef.$el.children[2].querySelectorAll('tr')
for (let i = 0; i < queryResult.length; i++) {
let item = queryResult[i]
item.style.display = ''
let classList = item.querySelectorAll('td > div > div')[0].classList
classList.contains('el-table__expand-icon') && item.querySelectorAll('td > div > div')[0].classList.add('el-table__expand-icon--expanded')
}
// IE 不支持 forEach
// this.$refs.tableTreeRef.$el.children[2].querySelectorAll('tr').forEach(item => {
// item.style.display = ''
// let classList = item.querySelectorAll('td > div > div')[0].classList
// classList.contains('el-table__expand-icon') && item.querySelectorAll('td > div > div')[0].classList.add('el-table__expand-icon--expanded')
// })
},
/**
* 收起所有下级
*/
foldAll () {
let queryResult = this.$refs.tableTreeRef.$el.children[2].querySelectorAll('tr')
for (let i = 0; i < queryResult.length; i++) {
let item = queryResult[i]
if (i !== 0) {
item.style.display = 'none'
}
let classList = item.querySelectorAll('td > div > div')[0].classList
classList.contains('el-table__expand-icon') && item.querySelectorAll('td > div > div')[0].classList.remove('el-table__expand-icon--expanded')
}
// IE 不支持 forEach
// this.$refs.tableTreeRef.$el.children[2].querySelectorAll('tr').forEach((item, index) => {
// if (index !== 0) {
// item.style.display = 'none'
// }
// let classList = item.querySelectorAll('td > div > div')[0].classList
// classList.contains('el-table__expand-icon') && item.querySelectorAll('td > div > div')[0].classList.remove('el-table__expand-icon--expanded')
// })
}
2、方案二:
比较完美的解决这个问题:
JS:
....
// 默认true
isShowTable: true
....
watch: {
tableDate: function () {
this.$nextTick(() => {
this.expandAll()
})
}
},
.....
/**
* 触发所有展开图标的click事件
*/
expandAll () {
// 获取点击的箭头元素
let els = document.getElementsByClassName('el-table__expand-icon')
for (let i = 0; i < els.length; i++) {
els[i].click()
}
},
/**
* 展开所有下级
*/
unFoldAll () {
this.isShowTable = false
this.$nextTick(function () {
this.isShowTable = true
let _this = this
window.setTimeout(function () {
_this.expandAll()
}, 300)
})
},
/**
* 收起所有下级
*/
foldAll () {
this.isShowTable = false
this.$nextTick(function () {
this.isShowTable = true
})
}
HTML:
<!-- 需要给table加一个v-if属性控制table销毁或初始化 -->
<el-table
v-if="isShowTable"
:data="tableDate"
ref="tableTreeRef"
style="width: 100%;margin-bottom: 20px;"
:v-loading="dataListLoading"
row-key="id"
border
:default-expand-all="isExpand"
:tree-props="{children: 'positionTree'}">
<!--岗位名称-->
<el-table-column
prop="positionNameCn"
:label="$t('res.department.jobName')">
</el-table-column>
<!--岗位代码-->
<el-table-column
prop="positionCode"
:label="$t('res.department.jobCode')" align="center">
</el-table-column>
<el-table-column
align="center"
width="200"
:label="$t('handle')">
</el-table-column>
</el-table>
Element ui 2.8版本中的table树不能默认全展开解决方法的更多相关文章
- MySQL中同时存在创建和更新时间戳字段解决方法浅析
MySQL中同时存在创建和更新时间戳字段解决方法浅析 明确我的MySQL版本.mysql> SELECT VERSION();+------------+| VERSION() |+------ ...
- universal image loader在listview/gridview中滚动时重复加载图片的问题及解决方法
在listview/gridview中使用UIL来display每个item的图片,当图片数量较多需要滑动滚动时会出现卡顿,而且加载过的图片再次上翻后依然会重复加载(显示设置好的加载中图片) 最近在使 ...
- MySQL中遇到的几种报错及其解决方法
MySQL中遇到的几种报错及其解决方法 1.[Err] 1064 - You have an error in your SQL syntax; check the manual that corre ...
- Python3中使用HTMLTestRunner报No module named 'StringIO'解决方法
今天在学习使用HTMLTestRunner生成测试报告时遇到一个报错,如图所示: 网上搜索了下“No module named 'StringIO'”解决方法,原来我用的是Python 3.X版本,而 ...
- mysql You can't specify target table for update in FROM clause解决方法
mysql You can't specify target table for update in FROM clause解决方法出现这个错误的原因是不能在同一个sql语句中,先select同一个表 ...
- ORACLE动态sql在存储过程中出现表或视图不存在的解决方法
Oracle动态sql在存储过程中出现表或视图不存在的解决方法 CREATE OR REPLACE PROCEDURE P_test is strsql varchar2(2000); BEGIN ...
- 检索 COM 类工厂中 CLSID 为 {10020200-E260-11CF-AE68-00AA004A34D5} 的组件时失败,解决方法如下:
检索 COM 类工厂中 CLSID 为 {10020200-E260-11CF-AE68-00AA004A34D5} 的组件时失败,解决方法如下: 第 一步:首先将msvcr71.dll, SQLD ...
- log4j中Spring控制台输出Debug级信息过多解决方法
log4j中Spring控制台输出Debug级信息过多解决方法 >>>>>>>>>>>>>>>>> ...
- [datatable]关于在DataTable中执行DataTable.Select("条件")返回DataTable的解决方法
-- :09关于在DataTable中执行DataTable.Select("条件")返回DataTable的解决方法 在实际编程工程中,常常遇到这样的情况:DataTable并不 ...
随机推荐
- 给程序添加git commit信息
遇到了一个客户程序出问题,自己这边始终无法重现的bug.为了检查问题,查到了一个添加git的commit信息到程序中的方法,感觉对程序版本控制十分好用. 一,项目中添加如下文件 文件结构: GitVe ...
- jmeter-post请求自动变成get,提示请求方式错误,修改协议即可
修改协议: http 改为 https 或反之
- POJ1423 Big Number 暴力or斯特林公式??
好吧这题很水...可是我没想到正解... 题意:求n!有多少位. 正解:斯特林公式. 直接放代码... #include<cstdio> #include<iostream> ...
- [Luogu] 次小生成树
https://www.luogu.org/problemnew/show/P4180#sub 严格次小生成树,即不等于最小生成树中的边权之和最小的生成树 首先求出最小生成树,然后枚举所有不在最小生成 ...
- springboot 生产环境与开发环境配置
通过修改yml文件里的active属性,prod(生产环境) 与 dev (开发环境)
- easyExcel简介#
摘自:https://www.cnblogs.com/54chensongxia/p/11990312.html easyExcel简介# Java领域解析.生成Excel比较有名的框架有Apache ...
- Leetcode题目101.对称二叉树(简单)
题目描述: 给定一个二叉树,检查它是否是镜像对称的. 例如,二叉树 [1,2,2,3,4,4,3] 是对称的. 1 / \ 2 2 / \ / \ 3 4 4 3 但是下面这个 [1,2,2,null ...
- LeetCode 124. 二叉树中的最大路径和(Binary Tree Maximum Path Sum)
题目描述 给定一个非空二叉树,返回其最大路径和. 本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列.该路径至少包含一个节点,且不一定经过根节点. 示例 1: 输入: [1,2,3] 1 ...
- Qt学习之如何启动和终止一个线程
先来给出每个文件的相关代码然后再加以分析 //*************dialog.h**************// #ifndef DIALOG_H #define DIALOG_H #incl ...
- android data binding jetpack VIIII 第一坑
<LinearLayout android:id="@+id/ll_item_home_page_pics" android:layout_width="wrap_ ...