浏览代码

Merge pull request #7353 from wenzhixin/fix/7318

fix/7318
文翼 1 年之前
父节点
当前提交
2b5453c870
共有 2 个文件被更改,包括 19 次插入8 次删除
  1. 16 5
      src/bootstrap-table.js
  2. 3 3
      src/extensions/pipeline/bootstrap-table-pipeline.js

+ 16 - 5
src/bootstrap-table.js

@@ -1971,7 +1971,7 @@ class BootstrapTable {
     })
   }
 
-  initServer (silent, query, url) {
+  initServer (silent, query) {
     let data = {}
     const index = this.header.fields.indexOf(this.options.sortName)
 
@@ -1991,7 +1991,7 @@ class BootstrapTable {
       params.pageNumber = this.options.pageNumber
     }
 
-    if (!(url || this.options.url) && !this.options.ajax) {
+    if (!this.options.url && !this.options.ajax) {
       return
     }
 
@@ -2053,7 +2053,7 @@ class BootstrapTable {
     }
     const request = Utils.extend({}, Utils.calculateObjectValue(null, this.options.ajaxOptions), {
       type: this.options.method,
-      url: url || this.options.url,
+      url: this.options.url,
       data: this.options.contentType === 'application/json' && this.options.method === 'post' ?
         JSON.stringify(data) : data,
       cache: this.options.cache,
@@ -3119,8 +3119,19 @@ class BootstrapTable {
     if (params && params.pageSize) {
       this.options.pageSize = params.pageSize
     }
-    this.trigger('refresh', this.initServer(params && params.silent,
-      params && params.query, params && params.url))
+
+    if (params && params.query) {
+      const url = new URL(this.options.url)
+      const urlParams = new URLSearchParams(url.search)
+
+      for (const [key, value] of Object.entries(params.query)) {
+        urlParams.set(key, value)
+      }
+      url.search = urlParams.toString()
+      this.options.url = url.toString()
+    }
+
+    this.trigger('refresh', this.initServer(params && params.silent))
   }
 
   destroy () {

+ 3 - 3
src/extensions/pipeline/bootstrap-table-pipeline.js

@@ -158,9 +158,9 @@ $.BootstrapTable = class extends $.BootstrapTable {
    * moving outside of cached data, page size change)
    * initial version of this extension will entirely override base initServer
    */
-  initServer (silent, query, url) {
+  initServer (silent, query) {
     if (!this.options.usePipeline) {
-      return super.initServer(silent, query, url)
+      return super.initServer(silent, query)
     }
 
     let useAjax = true
@@ -250,7 +250,7 @@ $.BootstrapTable = class extends $.BootstrapTable {
       }
     }
 
-    return super.initServer(silent, { ...query, ...params }, url)
+    return super.initServer(silent, { ...query, ...params })
   }
 
   destroy (...args) {