Browse Source

fixed scrollTo method while grouping

NAME 5 years ago
parent
commit
9c9bc523c9
1 changed files with 28 additions and 0 deletions
  1. 28 0
      src/extensions/group-by-v2/bootstrap-table-group-by.js

+ 28 - 0
src/extensions/group-by-v2/bootstrap-table-group-by.js

@@ -252,4 +252,32 @@ BootstrapTable.prototype.getGroupByFields = function () {
   }
 
   return groupByFields
+}
+
+$.BootstrapTable = class extends $.BootstrapTable {
+  scrollTo (params) {
+    if (this.options.groupBy) {
+      let options = {unit: 'px', value: 0}
+      if (typeof params === 'object') {
+        options = Object.assign(options, params)
+      }
+
+      if (options.unit === 'rows') {
+        let scrollTo = 0
+        this.$body.find(`> tr:lt(${options.value})`).each((i, el) => {
+          scrollTo += $(el).outerHeight(true)
+        })
+
+        const $targetColumn = this.$body.find(`> tr:not(.groupBy):eq(${options.value})`)
+        $targetColumn.prevAll('.groupBy').each((i, el) => {
+          scrollTo += $(el).outerHeight(true)
+        })
+
+        this.$tableBody.scrollTop(scrollTo)
+        return
+      }
+    }
+
+    super.scrollTo(params)
+  }
 }