300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > elementui表格组件动态合并单元格

elementui表格组件动态合并单元格

时间:2019-01-18 20:50:07

相关推荐

elementui表格组件动态合并单元格

直接按照elementui表格组件给的合并单元格的方式,是写死的,不能满足动态合并的需求。一般都是自己总结合并规律,最后通过span-method方法返回的行列进行合并。

重点::span-method

上代码:

<el-table :data="tableData" border :span-method="cellMar" stripe><el-table-column prop="type" label="类型" width="200"></el-table-column><el-table-column prop="class" label="课" width="200"></el-table-column><el-table-column label="跳转"><template scope="scope"><el-tag :key="i" v-for="(item,i) in scope.row.urlList" :disable-transitions="false"><a :href="url">{{item.urlName}}</a></el-tag></template></el-table-column></el-table>

//表格合并单元格跨行,实现首列根据不同类型进行跨行getSpanArr(data) {this.spanArr = []for (var i = 0; i < data.length; i++) {if (i === 0) {this.spanArr.push(1);this.podds = 0} else {/*判断当前元素与上一个元素type值是否相同*相同就+1,代表需要合并的行+1*/if (data[i].type === data[i - 1].type) {this.spanArr[this.podds] += 1;this.spanArr.push(0);} else {this.spanArr.push(1);this.podds = i;}}}},//得到行、列的合并值cellMar({row, column, rowIndex, columnIndex}) {if (columnIndex === 0) {const _rows = this.spanArr[rowIndex];const _cols = _rows > 0 ? 1 : 0;return {rowspan: _rows, //跨的行合并数colspan: _cols //跨的列合并数}}},

最后,在得到表格数据时,调用getSpanArr()方法,函数参数就是表格数据的数组。如:getSpanArr(tableData);

tableData: [{type:'语文',class:'唐诗五百首',urlList:[]},{type:'语文',class:'宋词三百首',urlList:[]},{type:'数学',class:'九九乘法表',urlList:[]},{type:'数学',class:'微积分',urlList:[]},{type:'数学',class:'行列式',urlList:[]}],

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。