element table相同数据行合并:
林文捷
https://blog.csdn.net/qq_42784165/article/details/109333050
非常好用,除了没本办法排序,前端也可以做,不过前端排序只有:最大值-》最小值,最小值-》最大值这样。
这种的有几种方法:
1、element自带的方法
<el-table-column
v-if="selectedItem.includes('批次')"
align="center"
property="batchId"
:sortable="true"
:sort-method="(a, b) => {
a = a.batchId || '0';
b = b.batchId || '0';
if (a < b) return -1;
if (a > b) return 1;
return 0;
}"
label="批次号"
>
</el-table-column>
2、JS封装,然后让数据流过一遍。(这里的数据都是element table数据个格式)
// 从小到大顺序排序
minSort (arr) {
var min
for (var i = 0; i < arr.length; i++) {
for (var j = i; j < arr.length; j++) {
if (arr[i].sort > arr[j].sort) {
min = arr[j]
arr[j] = arr[i]
arr[i] = min
}
}
}
return arr
},
// 从大到小顺序排序反过来即可
例如:
this.tableData = this.minSort(this.tableData);
但这样的排序缺少精度,在数据严密程度较高的项目里最好不用(如:银行),因为达不到该有的要求。由后端来排精度更高(如中文前端就排不了)。
具体就是后端返回一个方法,前台根据这个方法提供数据和某个排序字段:如1,2,3。以达到精准排序的需求。