var Common = {}; Common.MaxLengthError = function () { if ((navigator.userAgent.indexOf('MSIE') >= 0) && (navigator.userAgent.indexOf('Opera') < 0) || (navigator.userAgent.indexOf('Trident') >= 0)) { $('textarea[maxlength]').bind('blur', function () { var isCalendar = $(this).hasClass('TBcalendar'); //日期控件部做截取控制 if (isCalendar) { return; } var mx = parseInt($(this).attr('maxlength')); var str = $(this).val(); if (str.length > mx) { $(this).val(str.substr(0, mx)); return false; } }); $('input[maxlength]').bind('blur', function () { var isCalendar = $(this).hasClass('TBcalendar'); //日期控件部做截取控制 if (isCalendar) { return; } var str = $(this).val(); var mx = parseInt($(this).attr('maxlength')); if (str.length > mx) { $(this).val(str.substr(0, mx)); return false; } }); } } /*自定义分页插件 默认值如下: DivId: 'listDiv', RenderOverFun: undefined, 表格渲染完时执行的函数 IsShowAll: false, //也是是否显示全部 这个为TRUE时,分页条不好使 ...(不要分页条的时候用) LocalData: null, // 和IsUseLocalData一起使用 使用时 不分页 IsUseLocalData: false DataEmptyRender:数据为空时的处理函数 */ Common.CustomPagePlug = function (operation) { var PageData = function (operation) { var _this = this; this.InitData = { DivId: 'listDiv', ////渲染完TABLE执行的函数的参数 RenderOverParam: {}, //渲染完TABLE执行的函数 RenderOverFun: undefined, IsShowAll: true, LocalData: null, IsUseLocalData: true, DataEmptyRender: function (obj) { var html = ""; html += ""; var ths = $("#" + obj.InitData.DivId + " table thead tr th"); var colSpan = ths.length; for (var i = 0; i < ths.length; i++) { if ($(ths[i]).css('display') == "none") { colSpan -= 1; } } html += ""; //console.log(colSpan) // html += '-'; html += ""; html += ""; $("#" + obj.InitData.DivId + ' table tbody').html(html); $("#" + obj.InitData.DivId + " .loadDate").css("display", "none"); } }; //数据分页 //未设置参数使用默认参数 对设置的进行配置 for (var property in operation) { _this.InitData[property] = operation[property]; } _this.SetDataToDivData($('#' + _this.InitData.DivId), _this.InitData); _this.InitPlanList(operation.DivId); }; PageData.prototype.DateFromMSJsonString = function (value) { var d = cceval('new ' + (value.replace(/\//g, ''))); var result = d.getFullYear() + '-' + (d.getMonth() + 1) + '-' + d.getDate() + ' ' + d.getHours() + ':' + d.getMinutes() + ':' + d.getSeconds(); return result; }; //Load PageData.prototype.Load = function (obj) { this.InitData = obj; }; PageData.prototype.InitPlanList = function (DivId) { var _this = this; var initList = function (data) { //初始化 _this.Load($('#' + DivId).data()); var obj = JSON.parse(data).DTObjs; var html = ""; var operHtml = ""; $.each(obj, function (k, obje) { html += ""; if (obje) { //把OBJE的值过一遍 replace 掉: json 转的时候转化了这些值,转化回来 for (var ele in obje) { obje[ele] = obje[ele]; } //判断是否是多表头 var headTrs = $("#" + _this.InitData.DivId + " table thead tr"); var isMultihead = false; if (headTrs.length > 1) isMultihead = true; var headers = $("#" + _this.InitData.DivId + " table thead tr th"); if (isMultihead == true) { //如果是多表头,需要整合整个th信息 headers = []; var firstHeadTh = $(headTrs[0]).find("th"); var secondHeadTh = $(headTrs[1]).find("th"); for (var i = 0; i < firstHeadTh.length; i++) { var dataInfo = $(firstHeadTh[i]).attr("data-info"); if (dataInfo != null && dataInfo != undefined && dataInfo.indexOf("Multi,") != -1) { $.each(secondHeadTh, function (idx, item) { if (dataInfo.indexOf($(item).attr("data-info") + ",") != -1) headers.push(item); }); } else { headers.push(firstHeadTh[i]); } } } for (var i = 0; i < headers.length; i++) { var style = ""; if ($(headers[i]).css('display') == "none") style = "style='display:none'"; if ($(headers[i]).data != undefined && $(headers[i]).data().colname != undefined && obje[$(headers[i]).data().colname] != undefined) { if ($(headers[i]).data().coltype != undefined && $(headers[i]).data().coltype == "date") {//类型是日期的TD html += "" + _this.DateFromMSJsonString(obje[$(headers[i]).data().colname]) + "" } else if ($(headers[i]).data().coltype != undefined && $(headers[i]).data().coltype == "Money") { var defVal = $(headers[i]).data().DefVal; var bit = 2; if (defVal != null && defVal !== "" && defVal.indexOf(".") >= 0) bit = defVal.substring(defVal.indexOf(".") + 1).length; var val = obje[$(headers[i]).data().colname] + ""; var num = 0; if (/\./.test(val)) num = val.substring(val.indexOf(".") + 1).length; else val += "."; //补全小数位数 for (var k = num; k < bit; k++) { val += "0"; } val = formatNumber(val, bit, ','); html += "" + val + "" } else if ($(headers[i]).data().opeation != undefined) {//存在操作按钮的TD //添加字符截取功能 if ($(headers[i]).data().charlength != undefined) { var charlength = $(headers[i]).data().charlength; html += " " + (obje[$(headers[i]).data().colname].length <= charlength ? obje[$(headers[i]).data().colname] : (obje[$(headers[i]).data().colname].substr(0, charlength)) + "...") + "" } else { html += " " + obje[$(headers[i]).data().colname] + "" } } //是否把TITLE放上去 else if ($(headers[i]).data().title != undefined) { if ($(headers[i]).data().title != undefined) { var title = $(headers[i]).data().title; if (title == "true" || title) { html += "" + obje[$(headers[i]).data().colname] + "" } else { html += "" + obje[$(headers[i]).data().colname] + "" } } } else if ($(headers[i]).data().visiable != undefined) { html += "" + obje[$(headers[i]).data().colname] + "" } else {//添加字符截取功能 没有类型的TD if ($(headers[i]).data().charlength != undefined) { var charlength = $(headers[i]).data().charlength; html += "" + (obje[$(headers[i]).data().colname].length <= charlength ? obje[$(headers[i]).data().colname] : (obje[$(headers[i]).data().colname].substr(0, charlength) + "...")) + "" } else { html += "" + obje[$(headers[i]).data().colname] + ""; } } } else if ($(headers[i]).data().coltype != undefined && $(headers[i]).data().coltype == "SN") {//序号 序号的类型是SN colname列名称为空 //html += "
" + (parseInt(k) + 1 + parseInt(_this.InitData.PageSize) * (parseInt(_this.InitData.PageIndex) - 1)) + "
"; html += "" + (parseInt(k) + 1 ) + ""; } else if ($(headers[i]).data().coltype != undefined && $(headers[i]).data().coltype == "Operation") {//序号 序号的类型是SN colname列名称为空){ html += ('编辑' + '删除'); html += ""; } //自定义内容 else if ($(headers[i]).data().custom != undefined && $(headers[i]).data().customcontent != undefined) { style = "style='white-space: nowrap'"; var tmp = ''; var customCount = parseInt($(headers[i]).data().customcontent); for (var j = 1; j <= customCount; j++) { //标签; 属性;VALUE var tmpC = $(headers[i]).data()["customcontent" + j]; tmpC = tmpC.split('@'); tmp += '<' + tmpC[0] + ' ' + tmpC[1] + '>' + tmpC[2] + ''; } html += ('' + tmp + ''); } else { html += "" + "" + "" } } } }); if (obj == "") { if (_this.InitData.DataEmptyRender != null && typeof (_this.InitData.DataEmptyRender) == "function") { _this.InitData.DataEmptyRender(_this); } } else { $("#" + _this.InitData.DivId + ' table tbody').html(html); $("#" + _this.InitData.DivId + " .loadDate").css("display", "none"); } //把TR的 DATA-DATA设置为该行的对象值 var trData = $("#" + _this.InitData.DivId + " table thead tr"); if (trData != undefined && trData.data != undefined && trData.data() != undefined && trData.data().data != undefined && trData.data().data == true) { $.each(obj, function (i, obje) { $($('#' + _this.InitData.DivId + ' table tbody tr')[i]).data().data = obje; }); } //改变一下父窗体中IFRAME的高度 //当列表被嵌在id=dayReporFrame的IFRAME里时,初始完页面后对父页面中的IFRAME设置高度 /*if (parent.document.getElementById('dayReporFrame') != null) { var bodyHeight = $('body').height() + 30; $(parent.document.getElementById('dayReporFrame')).height(bodyHeight); }*/ //绑定完成的回调函数 if (_this.InitData.RenderOverFun != null && typeof (_this.InitData.RenderOverFun) == 'function') { _this.InitData.RenderOverFun(_this.InitData.RenderOverParam); } } initList(_this.InitData.LocalData); }; //将dataObj的每个属性依次赋值给divObj的data() 上 divObj是HTML元素即可 PageData.prototype.SetDataToDivData = function (divObj, dataObj) { for (var property in dataObj) { divObj.data()[property] = dataObj[property]; } } return new PageData(operation); }