/**
|
* 初始化 BootStrap Table 的封装
|
*
|
* 约定:toolbar的id为 (bstableId + "Toolbar")
|
* 这两个参数可以获取到当前页的条数和页码
|
* var pageSize=$('#tableId').bootstrapTable('getOptions').pageSize;
|
* var pageNumber=$('#tableId').bootstrapTable('getOptions').pageNumber;
|
* @author fengshuonan
|
*/
|
(function () {
|
var BSTable = function (bstableId, url, columns) {
|
this.btInstance = null; //jquery和BootStrapTable绑定的对象
|
this.bstableId = bstableId;
|
this.url = Feng.ctxPath + url;
|
this.method = "post";
|
this.paginationType = "server"; //默认分页方式是服务器分页,可选项"client"
|
this.toolbarId = bstableId + "Toolbar";
|
this.columns = columns;
|
this.height = 665; //默认表格高度665
|
this.data = {};
|
this.queryParams = {}; // 向后台传递的自定义参数
|
};
|
|
BSTable.prototype = {
|
/**
|
* 初始化bootstrap table
|
*/
|
init: function () {
|
var tableId = this.bstableId;
|
var me = this;
|
this.btInstance =
|
$('#' + tableId).bootstrapTable({
|
contentType: "application/x-www-form-urlencoded",
|
url: this.url, //请求地址
|
method: this.method, //ajax方式,post还是get
|
ajaxOptions: { //ajax请求的附带参数
|
data: this.data
|
},
|
toolbar: "#" + this.toolbarId,//顶部工具条
|
striped: true, //是否显示行间隔色
|
cache: false, //是否使用缓存,默认为true
|
pagination: true, //是否显示分页(*)
|
sortable: true, //是否启用排序
|
sortOrder: "desc", //排序方式
|
pageNumber: 1, //初始化加载第一页,默认第一页
|
pageSize: 14, //每页的记录行数(*)
|
pageList: [14, 50, 100], //可供选择的每页的行数(*)
|
queryParamsType: 'limit', //默认值为 'limit' ,在默认情况下 传给服务端的参数为:offset,limit,sort
|
queryParams: function (param) {
|
return $.extend(me.queryParams, param);
|
}, // 向后台传递的自定义参数
|
sidePagination: this.paginationType, //分页方式:client客户端分页,server服务端分页(*)
|
search: false, //是否显示表格搜索,此搜索是客户端搜索,不会进服务端
|
strictSearch: true, //设置为 true启用 全匹配搜索,否则为模糊搜索
|
showColumns: true, //是否显示所有的列
|
showRefresh: true, //是否显示刷新按钮
|
minimumCountColumns: 2, //最少允许的列数
|
clickToSelect: true, //是否启用点击选中行
|
searchOnEnterKey: true, //设置为 true时,按回车触发搜索方法,否则自动触发搜索方法
|
columns: this.columns, //列数组
|
pagination: true, //是否显示分页条
|
height: this.height,
|
icons: {
|
refresh: 'glyphicon-repeat',
|
toggle: 'glyphicon-list-alt',
|
columns: 'glyphicon-list'
|
},
|
iconSize: 'outline'
|
});
|
return this;
|
},
|
/**
|
* 向后台传递的自定义参数
|
* @param param
|
*/
|
setQueryParams: function (param) {
|
this.queryParams = param;
|
},
|
/**
|
* 设置分页方式:server 或者 client
|
*/
|
setPaginationType: function (type) {
|
this.paginationType = type;
|
},
|
|
/**
|
* 设置ajax post请求时候附带的参数
|
*/
|
set: function (key, value) {
|
if (typeof key == "object") {
|
for (var i in key) {
|
if (typeof i == "function")
|
continue;
|
this.data[i] = key[i];
|
}
|
} else {
|
this.data[key] = (typeof value == "undefined") ? $("#" + key).val() : value;
|
}
|
return this;
|
},
|
|
/**
|
* 设置ajax post请求时候附带的参数
|
*/
|
setData: function (data) {
|
this.data = data;
|
return this;
|
},
|
|
/**
|
* 清空ajax post请求参数
|
*/
|
clear: function () {
|
this.data = {};
|
return this;
|
},
|
|
/**
|
* 刷新 bootstrap 表格
|
* Refresh the remote server data,
|
* you can set {silent: true} to refresh the data silently,
|
* and set {url: newUrl} to change the url.
|
* To supply query params specific to this request, set {query: {foo: 'bar'}}
|
*/
|
refresh: function (parms) {
|
if (typeof parms != "undefined") {
|
var startTime=parms['query']['beginTime'];
|
var endTime=parms['query']['endTime'];
|
if(startTime>endTime){
|
Feng.info("搜索开始时间大于了结束时间");
|
}
|
var startTime_=parms['query']['beginTime_'];
|
var endTime_=parms['query']['endTime_'];
|
if(startTime_>endTime_){
|
Feng.info("搜索开始时间大于了结束时间");
|
}
|
this.btInstance.bootstrapTable('refresh', parms);
|
} else {
|
this.btInstance.bootstrapTable('refresh');
|
}
|
}
|
};
|
|
window.BSTable = BSTable;
|
|
}());
|