From 9c7dd8177845ba65f6b75be712b25454667c5c83 Mon Sep 17 00:00:00 2001
From: Karson <karsonzhang@163.com>
Date: Thu, 4 May 2017 18:48:04 +0800
Subject: [PATCH] 新增高级搜索自定义搜索列表

---
 public/assets/js/bootstrap-table-advancedsearch.js | 26 ++++++++++++++++++++++++--
 1 file changed, 24 insertions(+), 2 deletions(-)

diff --git a/public/assets/js/bootstrap-table-advancedsearch.js b/public/assets/js/bootstrap-table-advancedsearch.js
index 9894131..a63258f 100644
--- a/public/assets/js/bootstrap-table-advancedsearch.js
+++ b/public/assets/js/bootstrap-table-advancedsearch.js
@@ -87,8 +87,24 @@
                     htmlForm.push(sprintf('<select class="form-control" name="field-%s" data-name="%s">%s</select>', vObjCol.field, vObjCol.field, selectHtml));
                     htmlForm.push('</div>');
                 }
+
                 htmlForm.push('<div class="col-sm-6">');
-                htmlForm.push(sprintf('<input type="text" class="form-control input-md" name="%s" placeholder="%s" id="%s">', vObjCol.field, vObjCol.title, vObjCol.field));
+                if (vObjCol.searchList) {
+                    if (typeof vObjCol.searchList == 'function') {
+                        htmlForm.push(vObjCol.searchList.call(this, vObjCol));
+                    } else {
+                        var isArray = vObjCol.searchList.constructor === Array;
+                        var searchList = [];
+                        searchList.push(sprintf('<option value="">%s</option>', $.fn.bootstrapTable.locales.formatAdvancedChoose()));
+                        $.each(vObjCol.searchList, function (key, value) {
+                            searchList.push("<option value='" + (isArray ? value : key) + "'>" + value + "</option>");
+                        });
+                        htmlForm.push(sprintf('<select class="form-control" name="%s">%s</select>', vObjCol.field, searchList.join('')));
+                    }
+                } else {
+                    htmlForm.push(sprintf('<input type="text" class="form-control input-md" name="%s" placeholder="%s" id="%s">', vObjCol.field, vObjCol.title, vObjCol.field));
+                }
+
                 htmlForm.push('</div>');
                 htmlForm.push('</div>');
             }
@@ -146,6 +162,9 @@
         },
         formatAdvancedCloseButton: function () {
             return "Close";
+        },
+        formatAdvancedChoose: function () {
+            return "Choose";
         }
     });
 
@@ -240,7 +259,10 @@
             $("#avdSearchModalContent_" + this.options.idTable + " select").each(function () {
                 var name = $(this).data("name");
                 var sym = $(this).val();
-                var value = $("input[name='" + name + "']").val();
+                var obj = $("[name='" + name + "']");
+                if (obj.size() == 0)
+                    return true;
+                var value = obj.size() > 1 ? $("[name='" + name + "']:checked").val() : obj.val();
                 if (value == '' && sym.indexOf("NULL") == -1) {
                     return true;
                 }
--
libgit2 0.24.0