(function($) { $.fn.search = function(params,successCallback,failCallback) { if(!params) params = {}; var table = $(this).attr("id"); var div = table+"_div"; if(!params.currentPageIndex) params.currentPageIndex = 1; params = $("#"+table).params(params); var pageSize = $("#"+table+"-selectpagesize-server").val(); if(pageSize == undefined || pageSize == ""){ pageSize = 10; } params.pageSize = pageSize; if(!params._clazz){ //var clazz = $("#_clazz"); if($("#_clazz") != undefined){ params._clazz = $("#_clazz").text(); } } //自定义Action if($("#_action") != undefined){ params._action = $("#_action").text(); } if(!params._action){ var source = $("#"+div).attr("source"); if(typeof(source) == "string") source = eval("("+source+")"); if(source.server) params._action = source.server; else params._action = "_page"; } Newtouch.Ajax.sendParams(params, params._action, function(data){ addJSONData(table, data ,params); if(successCallback){ if(typeof(successCallback)=="function"){ successCallback(data); } if(typeof(successCallback)=="string"){ eval(successCallback); } } }, function(error){ if(failCallback){ if(typeof(failCallback)=="function"){ failCallback(error); } if(typeof(failCallback)=="string"){ eval(failCallback); } } }, true); }; $.fn.getSelectRows = function(){ var id = $(this).attr("id"); var manager = $("#"+id+"_div").webGetGridManager(); var rows = manager.getCheckedRows(); return rows; } $.fn.params = function(params){ var id = $(this).attr("id"); var origData = $("#"+id+"_div").data("params"); if(!origData) origData={}; if(!params) return origData; var data = $.extend(origData,params); $("#"+id+"_div").data("params",data); return data; }; $.fn.value = function(data){ var initData = eval("({currentPageIndex:1,lastPageIndex:1,nextPageIndex:1,pageSize:"+$("#payAndTaxGrid-selectpagesize-server").val()+",previousPageIndex:1,totalCount:"+data.length+",totalPage:"+Math.ceil(data.length/$("#payAndTaxGrid-selectpagesize-server").val())+",items:null})"); initData["items"] = data; var divId = $(this).attr("id"); addJSONData(divId,initData); }; $.fn.displayPageBar = function(){ var id = $(this).attr("id"); $("#"+id+"_div").find(".n-panel-bar").attr("style","display:none;"); }; $.fn.webuiGrid = function(p){ var _clazz = $(this).attr("clazz"); if(!_clazz) _clazz = "_clazz"; $("#"+_clazz).attr("style","display:none;"); if(!p) p = {}; var dom = this; var tableId = $(dom).attr("id"); if(tableId == undefined || tableId == ""){ $(dom).attr("id","grid_table"); tableId = "grid_table"; } //外层div var $div = $(dom).parent(); if($div.attr('tagName') != 'DIV'){ $(dom).wrap("
") } $div = $(dom).parent(); var _div = $div.attr("id"); if(_div == undefined || _div == ""){ $div.attr("id",tableId+"_div"); _div = tableId+"_div"; } $div.addClass("web-grid"); //处理外层form $div.wrap(""); $div.before(" "); $("#"+tableId+"_div").data("params",{_clazz:$("#"+_clazz).text()}); //编辑grid var enabledEdit = false; if($(dom).attr("class") != undefined){ if($(dom).attr("class").indexOf("editable") != -1){ enabledEdit = true; } } //grid checkbox var checkbox = false; //grid列名 var colums = new Array(); //grid sort var sortColumns = new Array(); //grid colmn width var colWidth = new Array(); //checkbox function var is_checked = null; $("#"+tableId+" thead tr th").each(function(index, dom){ if($(dom).attr("class") != undefined && $(dom).attr("class").indexOf("checkbox") != -1){ checkbox = true; if($(dom).attr("func")) is_checked = $(dom).attr("func"); }else{ //列属性 var colum = {}; var field = $(dom).attr("field"); var text = $(dom).text(); var type = $(dom).attr("type"); if(!type) type = $(dom).attr("xtype"); if(!type) type = "text"; var _width = $(dom).attr("width"); if(_width){ colWidth.push(_width); }else{ colWidth.push("null"); } colum["display"] = text; colum["name"] = field; if($(dom).attr("align")) colum["align"] = $(dom).attr("align"); switch (type) { case "int": colum["editor"] = { type: 'int' }; colum["type"] = 'int'; break; case "date": colum["editor"] = { type:'date'}; colum["type"] = 'date' ; break; case "text": colum["editor"] = { type: 'text' }; colum["render"] = function (item){ if(item[field+"_name"]) return item[field+"_name"]; return item[field]; }; break; case "float": colum["editor"] = { type:'float'}; colum["type"] = 'float' ; break; case "string": colum["editor"] = { type: 'string' }; break; case "mtilselect": colum["editor"] = {}; var _initData = $(".initData_span").text(); if(_initData != "") _initData = eval("("+ _initData +")"); var data = _initData[field+"Data"]; colum["editor"]["data"] = data; if(!data){ colum["editor"] = { type: 'text' }; colum["render"] = function (item){ if(item[field+"_name"]) return item[field+"_name"]; return item[field]; }; break; } colum["editor"]["type"] = 'mtilselect'; colum["editor"]["valueColumnName"] = field + "_code"; colum["editor"]["displayColumnName"] = field + "_name"; colum["render"] = function (item){ var list = data; var text = ""; if(typeof(item[field]) == "array"){ for (var i = 0; i < list.length; i++){ if ($.inArray(""+list[i][field+"_code"], item[field]) != -1) text += list[i][field+"_name"]+";"; } }else if(typeof(item[field]) == "string"){ item[field] = item[field].replace(";",","); if(item[field].indexOf("[") == -1){ item[field] = "[" +item[field] + "]"; } var values = eval("("+item[field]+")"); for (var i = 0; i < list.length; i++){ var k = eval("("+list[i][field+"_code"]+")"); if ($.inArray(k, values) != -1){ text += list[i][field+"_name"]+";"; } } } if(text != "") return text; return item[field]; }; break; case "select": colum["editor"] = {}; var _initData = $(".initData_span").text(); if(_initData != "") _initData = eval("("+ _initData +")"); var data = _initData[field+"Data"]; if(!data){ colum["editor"] = { type: 'text' }; colum["render"] = function (item){ if(item[field+"_name"]) return item[field+"_name"]; return item[field]; }; break; } colum["editor"]["type"] = 'select'; colum["editor"]["valueColumnName"] = field + "_code"; colum["editor"]["displayColumnName"] = field + "_name"; colum["editor"]["data"] = data; colum["render"] = function (item){ if(item[field+"_name"]) return item[field+"_name"]; var list = data; for (var i = 0; i < list.length; i++) { if (list[i][field+"_code"] == item[field]) return list[i][field+"_name"]; } return item[field]; }; break; case "format": colum["format"] = true; colum["isAllowHide"] = false; var func = $(dom).attr("func"); if(func){ colum["render"] = eval("("+func+")"); } break; case "rownum": colum["format"] = true; var clazz = $(dom).attr("class"); if(!clazz) clazz = ""; if(clazz.indexOf("continue") != -1){ colum["render"] = function(item,rowindex){ var parent = $("#"+tableId+"-selectpagesize-server").parent().parent(); var num = Number($("#"+tableId+"-selectpagesize-server").val()); var current = Number($(".currentPageIndex-server",parent).val()); var index = (current-1) * num +rowindex +1; return index; }; }else{ colum["render"] = function(item,rowindex){ return (rowindex + 1); }; } break; case "casecade": colum["editor"] = {}; colum["editor"]["type"] = 'select'; colum["editor"]["valueColumnName"] = field + "_code"; colum["editor"]["displayColumnName"] = field + "_name"; colum["editor"]["data"] = data; colum["render"] = function (item){ }; break; } var validate = $(dom).attr("validate"); if(validate != null){ colum["validate"] = validate; } colums.push(colum); if($(dom).attr("class") != undefined && $(dom).attr("class").indexOf("sort") != -1){ sortColumns.push(field); } } }); //grid 数据源 var source = $(dom).attr("source"); $div.attr("source",source); //grid 数据源方式 var server = false; if(source != undefined){ if(typeof(source) == "string") source = eval("("+source+")"); if(source["server"] != undefined){ server = true; } }else{ server = true; } //grid pagebar var usePager = false; //grid pagebar var page = ""; //grid 自带button var btnColumns = []; //其余button var gridButtons = new Array(); $("#"+tableId+" tfoot").each(function(index, dom){ var _css = $(dom).attr("class"); if(_css.indexOf("pagebar") != -1){ usePager = true; page = "page"; }else if(_css.indexOf("pagebtn") != -1){ usePager = true; page = "page2"; } var btnColumn =$(dom).attr("btnColumn"); if(btnColumn){ btnColumns = btnColumn.split(","); } $(dom).find("tr td").each(function(index,dom){ $(dom).find("input").each(function(index,dom){ var but = {}; but["id"] = $(dom).attr("id"); but["value"] = $(dom).attr("value"); but["class"] = $(dom).attr("class"); but["style"] = $(dom).attr("style"); but["type"] = $(dom).attr("type"); gridButtons.push(but); }); }); }); var height = "100%"; if($("#"+tableId).attr("height")) height = $("#"+tableId).attr("height"); var cols = $("#"+tableId+" thead tr th").length - 1; if(cols == 0) cols = 1; $("#"+_div).webGrid({ isScroll: true, height: height, columns:colums, colWidth:colWidth, enabledEdit:enabledEdit, checkbox:checkbox, isChecked:eval("("+is_checked+")"), usePager:usePager, page:page, btnColumn:btnColumns, gridBtns:gridButtons, table:tableId, server:server, sortColumns:sortColumns, rowAttrRender:p.rowRender }); //数据处理方式 if(server){ if(source.autoload == undefined ||source.autoload == true) $("#"+tableId).search(); if(usePager){ //工具条 $("#"+tableId+"-selectpagesize-server").change(function(){ $("#"+tableId).search(); }); createPagebar(tableId); } }else{ var gridManager = $("#"+_div).webGetGridManager(); gridManager.loadData(source["local"]); } $.metadata.setType("attr", "validate"); $(".grid-validate").validate({ // debug: true, errorPlacement: function(lable, element) { element.webuiTip({ content: lable.html()}); // element.css({"border":"1px solid red"}); } }); $(".web-dialog").each(function(index,dom){ var url = $(dom).attr("url"); var element = $(dom).attr("element"); var eleArray = element.split(","); for(var i = 0;i