diff --git a/src/components/datatable/DataTable.vue b/src/components/datatable/DataTable.vue
index 5ca1bb344..b7aad9d6f 100755
--- a/src/components/datatable/DataTable.vue
+++ b/src/components/datatable/DataTable.vue
@@ -19,7 +19,7 @@
{
@@ -509,6 +519,15 @@ export default {
return data;
},
sortMultiple(value) {
+ if (this.groupRowsBy && (this.d_groupRowsSortMeta || (this.d_multiSortMeta.length && this.groupRowsBy === this.d_multiSortMeta[0].field))) {
+ const firstSortMeta = this.d_multiSortMeta[0];
+ !this.d_groupRowsSortMeta && (this.d_groupRowsSortMeta = firstSortMeta);
+
+ if (firstSortMeta.field !== this.d_groupRowsSortMeta.field) {
+ this.d_multiSortMeta = [this.d_groupRowsSortMeta, ...this.d_multiSortMeta];
+ }
+ }
+
let data = [...value];
data.sort((data1, data2) => {
@@ -1818,6 +1837,9 @@ export default {
},
attributeSelector() {
return UniqueComponentId();
+ },
+ groupRowSortField() {
+ return this.sortMode === 'single' ? this.sortField : (this.d_groupRowsSortMeta ? this.d_groupRowsSortMeta.field : null);
}
},
components: {
diff --git a/src/components/datatable/HeaderCell.vue b/src/components/datatable/HeaderCell.vue
index 4ac8b16f1..c15c73f40 100644
--- a/src/components/datatable/HeaderCell.vue
+++ b/src/components/datatable/HeaderCell.vue
@@ -8,7 +8,7 @@
{{columnProp('header')}}
- {{getMultiSortMetaIndex() + 1}}
+ {{getBadgeValue()}}
(meta.field === this.columnProp('field') || meta.field === this.columnProp('sortField')));
+ },
+ getBadgeValue() {
+ let index = this.getMultiSortMetaIndex();
- for (let i = 0; i < this.multiSortMeta.length; i++) {
- let meta = this.multiSortMeta[i];
- if (meta.field === this.columnProp('field') || meta.field === this.columnProp('sortField')) {
- index = i;
- break;
- }
- }
-
- return index;
+ return (this.groupRowsBy && this.groupRowsBy === this.groupRowSortField) && index > -1 ? index : index + 1;
},
isMultiSorted() {
- return this.columnProp('sortable') && this.getMultiSortMetaIndex() > -1
+ return this.sortMode === 'multiple' && this.columnProp('sortable') && this.getMultiSortMetaIndex() > -1
},
isColumnSorted() {
return this.sortMode === 'single' ? (this.sortField && (this.sortField === this.columnProp('field') || this.sortField === this.columnProp('sortField'))) : this.isMultiSorted();
diff --git a/src/components/datatable/TableHeader.vue b/src/components/datatable/TableHeader.vue
index d88f016e7..193d2f443 100755
--- a/src/components/datatable/TableHeader.vue
+++ b/src/components/datatable/TableHeader.vue
@@ -6,7 +6,7 @@