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] + '' + tmpC[0] + '>';
}
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);
}