主页

fastadmin自定义搜索(多字段合并)或通用搜索失效解决方法

流泪de天使   IP属地: 青海
0 点赞 0阅读 1776

效果:

图中其实不是一个搜索条件,是多个通过js处理

<ul class="nav nav-tabs">
            <li class="{:$Think.get.status === null ? 'active' : ''}"><a href="#t-all" data-value="" data-toggle="tab">{:__('All')}</a></li>
             {foreach name="deliverTypeList" item="vo"}
            <li class="{:$Think.get.status === (string)$key ? 'active' : ''}"><a href="#t-{$key}" data-field="deliver_type" data-value="{$key}" data-toggle="tab">{$vo}</a></li>
            {/foreach}
            {foreach name="isPayList" item="vo"}
            <li class="{:$Think.get.status === (string)$key ? 'active' : ''}"><a href="#t-{$key}" data-field="is_pay" data-value="{$key}" data-toggle="tab">{$vo}</a></li>
            {/foreach}
            <li class="{:$Think.get.status === (string)0 ? 'active' : ''}" data-field="status"><a href="#t-0" data-field="status" data-value="0" data-toggle="tab">待发货</a></li>
            <li class="{:$Think.get.status === (string)1 ? 'active' : ''}" data-field="status"><a href="#t-1" data-field="status" data-value="1" data-toggle="tab">已发货</a></li>
            <li class="{:$Think.get.status === (string)2 ? 'active' : ''}" data-field="status"><a href="#t-2" data-field="status" data-value="2" data-toggle="tab">已收货</a></li>
        </ul>
js:
var options = table.bootstrapTable('getOptions');
            var queryParams = options.queryParams;
            $('.panel-heading a[data-toggle="tab"]').on('shown.bs.tab',function(e){
                
                // var field = $(this).closest("ul").data("field");
                var field = $(this).data("field");
                var value = $(this).data("value");
                console.log(field)
                console.log(value)
                options = table.bootstrapTable('getOptions');
                options.pageNumber = 1;
                
                options.queryParams = function (params) {
                    console.log(params)
                    let json = {
                        search: params.search,
                        sort: params.sort,
                        order: params.order,
                        offset: params.offset,
                        limit: params.limit,
                        filter: JSON.stringify({[field]:value}),
                        op: JSON.stringify({[field]: '='}),
                    };
                    if(!field){
                        json.filter="{}"
                        json.op="{}"
                    }
                    // json = queryParams.call(this, json)
                    return json;
                };
                table.bootstrapTable('refresh', {});
                // Toastr.info("查询成功");
                // return false;
            })
 
            // 为表格绑定事件
            Table.api.bindevent(table);
如果通用搜索失效,在bootstrap-table-commonsearch.js文件修改
// BootstrapTable.prototype.onCommonSearch = function () {
    //     var searchQuery = getSearchQuery(this);
    //     this.trigger('common-search', this, searchQuery);
    //     this.options.pageNumber = 1;
    //     //this.options.pageSize = $.fn.bootstrapTable.defaults.pageSize;
    //     this.refresh({});
    // };
    BootstrapTable.prototype.onCommonSearch = function () {
        var searchQuery = getSearchQuery(this,false);
        console.log(searchQuery)
        var params = getQueryParams(this.options.queryParams({}), searchQuery, true);
        this.trigger('common-search',this, params,searchQuery);
        this.options.pageNumber = 1;
        this.options.queryParams = function (options) {
            return $.extend({},options,params);
        };
        this.refresh({query: params});
    };



© 著作权归作者所有,转载或内容合作请联系作者