需求:

表格数据过多的时候,需要实现动态选择数据的功能,有俩种方法可以按需选择,解决了表格动态选择时闪屏数据抖动问题。

注意,这个添加数据是tableData原本就有的,我做的这个操作类似就是折叠选择展示原有的数据

1.实现表格数据居中

2.动态添加内容

3.解决表格添加数据后闪屏功能

4.解决了el-dropdown-menu点击后自动关闭问题

1.效果1

使用了el-dropdown嵌套el-checkbox-group实现

2.效果2

使用了el-select的多选实现

3.主要代码讲解

:hide-on-click=”false”:点击菜单后不隐藏菜单

 地址 
3.1:添加数据后窗口抖动解决代码

1.在el-table添加ref=’table’

2.每次数据加载完重新渲染表格

beforeUpdate() {this.$nextTick(() => {//在数据加载完,重新渲染表格this.$refs['table'].doLayout();});}
3.2 数据筛选

根据选择值进行数据筛选,之后再和原有数据进行比对,最后把数据添加到表格数据中实现

 selectOptions(val) {console.log(val, '数据');this.tableFilter = [];let filter = this.options.filter((item) => val.includes(item.label));// let filter = this.options.filter((item) => val.includes(item.value));console.log(filter, '多选数据');filter.forEach((item) => {this.tableFilter.push({prop: item.value,label: item.label});});}

4.效果1完整代码

测试

地址 export default {data() {return {checkList: [],tableData: [{date: '2016-05-02',name: '王小虎',address: '上海市普陀区金沙江路 1518 弄',age: 19,sex: '男'},{date: '2016-05-04',name: '王小虎',address: '上海市普陀区金沙江路 1517 弄',age: 17,sex: '女'},{date: '2016-05-01',name: '王小虎',address: '上海市普陀区金沙江路 1519 弄',age: 20,sex: '男'},{date: '2016-05-03',name: '王小虎',address: '上海市普陀区金沙江路 1516 弄',age: 20,sex: '女'}],options: [{value: 'age',label: '年龄'},{value: 'sex',label: '女'}],value1: [],value2: [],tableFilter: []};},methods: {// 查询selectOptions(val) {console.log(val, '数据');this.tableFilter = [];let filter = this.options.filter((item) => val.includes(item.label));// let filter = this.options.filter((item) => val.includes(item.value));console.log(filter, '多选数据');filter.forEach((item) => {this.tableFilter.push({prop: item.value,label: item.label});});}},beforeUpdate() {this.$nextTick(() => {//在数据加载完,重新渲染表格this.$refs['table'].doLayout();});}};.box {display: flex;width: 500px;height: 500px;border: 1px solid red;.box_left {background-color: #ddd;}}

5.效果2完整代码

测试

地址 export default {data() {return {checkList: [],tableData: [{date: '2016-05-02',name: '王小虎',address: '上海市普陀区金沙江路 1518 弄',age: 19,sex: '男'},{date: '2016-05-04',name: '王小虎',address: '上海市普陀区金沙江路 1517 弄',age: 17,sex: '女'},{date: '2016-05-01',name: '王小虎',address: '上海市普陀区金沙江路 1519 弄',age: 20,sex: '男'},{date: '2016-05-03',name: '王小虎',address: '上海市普陀区金沙江路 1516 弄',age: 20,sex: '女'}],options: [{value: 'age',label: '年龄'},{value: 'sex',label: '女'}],value1: [],value2: [],tableFilter: []};},methods: {// 查询selectOptions(val) {console.log(val, '数据');this.tableFilter = [];let filter = this.options.filter((item) => val.includes(item.value));console.log(filter, '多选数据');filter.forEach((item) => {this.tableFilter.push({prop: item.value,label: item.label});});}},beforeUpdate() {this.$nextTick(() => {//在数据加载完,重新渲染表格this.$refs['table'].doLayout();});}};.box {display: flex;width: 500px;height: 500px;border: 1px solid red;.box_left {background-color: #ddd;}}