113 lines
3.7 KiB
JavaScript
113 lines
3.7 KiB
JavaScript
var main = main || {};
|
|
|
|
(function ($) {
|
|
|
|
(function extendJqgrid(ajaxOptions) {
|
|
|
|
var completeOrigin = $.jgrid.ajaxOptions.complete;
|
|
|
|
$.extend(ajaxOptions, {
|
|
complete(XMLHttpRequest, textStatus) {
|
|
let resp = XMLHttpRequest.responseJSON;
|
|
if (typeof resp !== 'object' || resp.success || !resp.msg && !resp.message) {
|
|
return typeof completeOrigin === 'function' ? completeOrigin(XMLHttpRequest, textStatus) : null;
|
|
}
|
|
main.alert("数据查询失败: " + (resp.msg || resp.message));
|
|
}
|
|
});
|
|
}($.jgrid.ajaxOptions));
|
|
|
|
function jqGridCtrl() {
|
|
|
|
this.initGrid = function (options) {
|
|
|
|
options = $.extend({
|
|
url: '#',
|
|
datatype: 'json',
|
|
multiselect: false,
|
|
height: 'auto',
|
|
width: '90%',
|
|
autowidth: false,
|
|
shrinkToFit: false,
|
|
viewrecords: true,
|
|
jsonReader: { repeatitems: false },
|
|
cmTemplate: { align: 'center', width: 120 },
|
|
mtype: 'POST',
|
|
postData: null,
|
|
afterInsertRow: null,
|
|
onSelectRow: null,
|
|
ondblClickRow: null,
|
|
colModel: null,
|
|
pager: jQuery('#pagerGrid'),
|
|
pagerpos: 'left',
|
|
rowNum: 20,
|
|
rowList: [20, 30, 50, 200, 10000],
|
|
loadComplete: null,
|
|
onPaging: null,
|
|
footerrow: false
|
|
}, options);
|
|
|
|
//为了兼容以前的配置
|
|
!options.colModel && options.colModelGrid && (options.colModel = options.colModelGrid);
|
|
if (!options.postData) {
|
|
options.postData = options.PostData || {};
|
|
}
|
|
!options.afterInsertRow && options.AfterInsertRow && (options.afterInsertRow = options.AfterInsertRow);
|
|
!options.onSelectRow && options.rowclick && (options.onSelectRow = options.rowclick);
|
|
!options.ondblClickRow && options.rowdblclick && (options.ondblClickRow = options.rowdblclick);
|
|
!options.loadComplete && options.gridComplete && (options.loadComplete = options.gridComplete);
|
|
!options.onPaging && options.onJqgridPaging && (options.onPaging = options.onJqgridPaging);
|
|
|
|
return (options.el ? $(options.el) : $('#listGrid')).jqGrid(options);
|
|
}
|
|
|
|
function SearchClick($jqGrid, $form, firstPage) {
|
|
|
|
$jqGrid.appendPostData($form.serializeObject());
|
|
|
|
if (firstPage === true) {
|
|
$jqGrid.jqGrid('setGridParam', { page: 1 });
|
|
}
|
|
|
|
$jqGrid.trigger('reloadGrid');
|
|
}
|
|
|
|
this.initSearch = function ($jqGrid, searchForm) {
|
|
|
|
let $form = $(searchForm || '#searchForm');
|
|
|
|
if ($form.length && $form.is('form')) {
|
|
|
|
let search = SearchClick.bind(null, $jqGrid, $form);
|
|
|
|
$form.on('keydown', function (event) {
|
|
(event.keyCode === 13) && search();
|
|
});
|
|
|
|
$form.on('submit', function () {
|
|
search();
|
|
return false;
|
|
});
|
|
|
|
return search;
|
|
}
|
|
}
|
|
}
|
|
|
|
main.jqGrid = function (options) {
|
|
let ctrl = new jqGridCtrl();
|
|
let $grid = ctrl.initGrid(options);
|
|
let search = ctrl.initSearch($grid, options.searchForm);
|
|
return {
|
|
SearchClick: search || $.noop
|
|
};
|
|
};
|
|
|
|
main.enterSearch = function (searchFn) {
|
|
if (!searchFn) return;
|
|
document.onkeydown = function (event) {
|
|
(event.keyCode === 13) && searchFn();
|
|
};
|
|
};
|
|
|
|
})(jQuery); |