var commonutil = { /** * 往object的所有key统一添加前缀 */ keyAddStr : function(object, str) { if (typeof str == 'undefined' || str == null || str == '') { str = 'FIELD_'; } var news = {}; for (key in object) { news[str + key] = object[key]; } return news; } }; /** * easyui datagrid方法封装 */ var easyui = { datagrid : function(options) { var opts = $.extend({ pagination : true, checkOnSelect : false, selectOnCheck : false, rownumbers : true, fitColumns : false, striped : true, scrollbarSize : 0, tableId : options.tableId, autoRowHeight : false, isSingleSelect : true, singleSelect : true, //如果需要自定义计算最后一列,则需要设置customLastCellWidth属性为true customLastCellWidth : true /*, border:false*/ }, options); opts.onClickRow = function(rowIndex, rowData) { if (typeof options.onClickRow == 'function') { options.onClickRow.call(null, rowIndex, rowData); } //如果用户传入了isSingleSelect属性为true,则设置点击事件时候只能单行选中 /*if (opts.isSingleSelect) { if (typeof datagridSingleSelect == 'function') { datagridSingleSelect(opts.tableId, rowIndex); } }*/ }; opts.onRowContextMenu = function(e, rowIndex, rowData) { if (typeof options.onRowContextMenu == 'function') { options.onRowContextMenu.call(null, e, rowIndex, rowData); } //如果用户传入了isSingleSelect属性为true,则设置右击事件时候只能单行选中 /*if (opts.isSingleSelect) { datagridSingleSelect(opts.tableId, rowIndex); }*/ } opts.onBeforeLoad = function(param) { if (typeof options.onBeforeLoad == 'function') { options.onBeforeLoad.call(null, param); } //提交参数前,将每个参数的两边空格都去除 for (var key in param) { param[key] = (param[key] + "").trim(); } }; opts.onLoadSuccess = function(data) { if (typeof options.onLoadSuccess == 'function') { options.onLoadSuccess.call(); } //如果回传值有checkedIds属性,则将这些id的记录进行勾选操作 var checkedIds = data.checkedIds; if (!stringutil.isEmpty(checkedIds) && checkedIds.length > 0) { var rows = data.rows; for (var i = 0; i < rows.length; i++) { for (var j = 0; j < checkedIds.length; j++) { if (checkedIds[j] == rows[i].id) { $("#" + opts.tableId).datagrid("checkRow", i); } } } } }; return $('#' + opts.tableId).datagrid(opts); }, dialog : function(options) { var opts = $.extend({ modal : true, shadow : false, onClose : function() { $(this).dialog('destroy'); } }, options); opts.onLoad = function() { if (typeof options.onLoad == 'function') { options.onLoad.call(); } $.messager.defaults.onClose = function() {}; //$.messager.progress('close') }; opts.onOpen = function() { if (typeof options.onOpen == 'function') { options.onOpen.call(); } //数据加载 /*$.messager.progress({ text : '数据加载中....', interval : 100 });*/ }; if (opts.dialogSelector) { //如果是自定义选择器生成dialog,就不需要调用销毁 opts.onClose = function() {}; return opts.dialogSelector.dialog(opts); } else { return $('<div/>').dialog(opts); } }, combobox : function(options) { if (!options.selector) { alert('selector必须设置'); return; } var opts = $.extend({ valueField : 'id', textField : 'text', defaultEmptyValue : '', defaultEmptyText : '-- 请选择 --', //空值行是否需要,默认为true,需要 needEmpty : true }, options); //如果key,value传进来的属性名一致,则强制改变textField属性名 var same = false; if (opts.valueField == opts.textField) { same = true; opts.textField = "c_" + opts.textField; } var responseInfo; $.ajax({ url : opts.url, async : false, success : function(data) { responseInfo = data; } }); //设置第一个空行 var data = []; if (opts.needEmpty) { var d = {}; d[opts.valueField] = opts.defaultEmptyValue; d[opts.textField] = opts.defaultEmptyText; data.push(d); } var complete_data = stringutil.toJson(responseInfo.data); for (var i = 0; i < complete_data.length; i++) { var d = {}; d[opts.valueField] = complete_data[i][opts.valueField]; var textFieldName; if (same) { //如果key,value属性名一致,则获取数据的时候,多了一个"c_"字符,要给予去除 textFieldName = opts.textField.split("c_")[1]; } else { textFieldName = opts.textField; } d[opts.textField] = complete_data[i][textFieldName]; data.push(d); } if (responseInfo.code == '0000') { if ($(opts.selector).length == 0) { alert('selector设置错误'); } opts.data = data; delete opts.url; var handle = $(opts.selector).combobox(opts); return handle; } return null; }, calendar : function(options) { if (!options.selector) { alert('selector必须设置'); return; } var opts = $.extend({ current : new Date() }, options); $(opts.selector).calendar({ current : new Date() }); }, datebox : function(options) { if (!options.selector) { alert('selector必须设置'); return; } var opts = $.extend({ formatter : function(date) { var y = date.getFullYear(); var m = date.getMonth() + 1; var d = date.getDate(); return y + '-' + (m < 10 ? ('0' + m) : m) + '-' + (d < 10 ? ('0' + d) : d); } }, options); $(opts.selector).datebox(opts); }, treegrid : function(options) { var opts = $.extend({ animate : true, rownumbers : true, idField : 'id', treeField : 'name', tableId : options.tableId, autoRowHeight:false, fitColumns:true, scrollbarSize:0 }, options); opts.onLoadSuccess = function() { if (typeof options.onLoadSuccess == 'function') { options.onLoadSuccess.call(); } }; opts.onDblClickRow=function(row){ if (typeof options.onDblClickRow == 'function') { options.onDblClickRow.call(); } $('#' + opts.tableId).treegrid('toggle',row.id); }; opts.onLoadError=function(){ if (typeof options.onLoadError == 'function') { options.onLoadError.call(); } alert('数据获取失败!'); } return $('#' + opts.tableId).treegrid(opts); }, tree : function(options) { var opts = $.extend({ checkbox : false, lines : false, animate : true, treeId : options.treeId }, options); return $('#' + opts.treeId).tree(opts); } } /** * tree数据中,如果不是叶节点,则将checked属性设置为false */ function notleafToUnchecked(data){ for(var i=0;i<data.length;i++){ if(!stringutil.isEmpty(data[i].children)&&data[i].children.length!=0){ //表示非叶子节点 //将checked属性设置为false data[i].checked=false; data[i]._checked=false; //继续判断子节点 notleafToUnchecked(data[i].children); } } }