浏览代码

Merge pull request #4675 from wenzhixin/feature/2148

Added support to use the custom sort attribute
文翼 6 年之前
父节点
当前提交
ab5ebe10cb
共有 1 个文件被更改,包括 14 次插入5 次删除
  1. 14 5
      src/extensions/group-by-v2/bootstrap-table-group-by.js

+ 14 - 5
src/extensions/group-by-v2/bootstrap-table-group-by.js

@@ -41,6 +41,7 @@ $.extend($.fn.bootstrapTable.defaults, {
   groupByFormatter: undefined
 })
 
+const Utils = $.fn.bootstrapTable.utils
 const BootstrapTable = $.fn.bootstrapTable.Constructor
 const _initSort = BootstrapTable.prototype.initSort
 const _initBody = BootstrapTable.prototype.initBody
@@ -55,11 +56,19 @@ BootstrapTable.prototype.initSort = function (...args) {
   if ((this.options.groupBy) && (this.options.groupByField !== '')) {
 
     if ((this.options.sortName !== this.options.groupByField)) {
-      this.data.sort((a, b) => {
-        a = a[that.options.groupByField].toString()
-        b = b[that.options.groupByField].toString()
-        return a.localeCompare(b, undefined, { numeric: true })
-      })
+      if (this.options.customSort) {
+        Utils.calculateObjectValue(this.options, this.options.customSort, [
+          this.options.sortName,
+          this.options.sortOrder,
+          this.data
+        ])
+      } else {
+        this.data.sort((a, b) => {
+          a = a[that.options.groupByField].toString()
+          b = b[that.options.groupByField].toString()
+          return a.localeCompare(b, undefined, { numeric: true })
+        })
+      }
     }
 
     const groups = groupBy(that.data, item => [item[that.options.groupByField]])