1.comm.js添加方法
1 function getRowSpanObj(data, colNameArr) { 2 var spanArr = {}; 3 var spanRowIndexArr = []; 4 data.forEach(function (item, index) { 5 if (index === 0) { 6 for (var i = 0; i < colNameArr.length; i++) { 7 spanArr[colNameArr[i]] = []; 8 spanArr[colNameArr[i]].push(1); 9 spanRowIndexArr.push(0); 10 } 11 } 12 else { 13 for (var i = 0; i < colNameArr.length; i++) { 14 // 判断当前元素与上一个元素是否相同 15 var crrVal = eval("item." + colNameArr[i]); 16 var lastVal = eval("data[index - 1]." + colNameArr[i]); 17 if (crrVal === lastVal) { 18 spanArr[colNameArr[i]][spanRowIndexArr[i]] += 1; 19 spanArr[colNameArr[i]].push(0); 20 } else { 21 spanArr[colNameArr[i]].push(1); 22 spanRowIndexArr[i] = index; 23 } 24 } 25 26 } 27 }); 28 return spanArr; 29 }
2.引用comm.js
<script type="text/javascript" th:src="@{/js/common/comm.js(v=1.2.4)}"></script>
3.页面对应模块的js修改:
data 中添加
//1.合并行参数
spanObj: null,
//2.要合并的列的字段名
spanCollArr: ['proviceName', 'cityName']

methods中添加:
rowSpan: function (obj) { var my = this; if (my.spanCollArr.indexOf(obj.column.property) > -1) { var _row = 0; if (!!my.spanObj) { _row = eval("my.spanObj." + obj.column.property + "[obj.rowIndex]"); } const _col = _row > 0 ? 1 : 0; return { rowspan: _row, colspan: _col } } },
4.页面修改

最终效果:

浙公网安备 33010602011771号