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);