You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

269 lines
14 KiB
Plaintext

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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 += "<tr style='text-align: center;'>";
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 += "<td colspan='" + colSpan + "'>";
//console.log(colSpan)
// html += '-';
html += "</td>";
html += "</tr>";
$("#" + 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 += "<tr>";
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 += "<td " + style+">" + _this.DateFromMSJsonString(obje[$(headers[i]).data().colname]) + "</td>"
} 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 += "<td " + style + ">" + val + "</td>"
}
else if ($(headers[i]).data().opeation != undefined) {//存在操作按钮的TD
//添加字符截取功能
if ($(headers[i]).data().charlength != undefined) {
var charlength = $(headers[i]).data().charlength;
html += "<td title='" + obje[$(headers[i]).data().colname] + "'" + style +"> <a onclick=" + $(headers[i]).data().opeation + ">" + (obje[$(headers[i]).data().colname].length <= charlength ? obje[$(headers[i]).data().colname] : (obje[$(headers[i]).data().colname].substr(0, charlength)) + "...") + "</a></td>"
} else {
html += "<td " + style +"> <a onclick=" + $(headers[i]).data().opeation + ">" + obje[$(headers[i]).data().colname] + "</a></td>"
}
}
//是否把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 += "<td " + style +" title='" + obje[$(headers[i]).data().colname] + "'>" + obje[$(headers[i]).data().colname] + "</td>"
}
else {
html += "<td " + style +">" + obje[$(headers[i]).data().colname] + "</td>"
}
}
}
else if ($(headers[i]).data().visiable != undefined) {
html += "<td style='display:none;'>" + obje[$(headers[i]).data().colname] + "</td>"
}
else {//添加字符截取功能 没有类型的TD
if ($(headers[i]).data().charlength != undefined) {
var charlength = $(headers[i]).data().charlength;
html += "<td title='" + obje[$(headers[i]).data().colname] + "' " + style +">" + (obje[$(headers[i]).data().colname].length <= charlength ? obje[$(headers[i]).data().colname] : (obje[$(headers[i]).data().colname].substr(0, charlength) + "...")) + "</td>"
} else {
html += "<td " + style +">" + obje[$(headers[i]).data().colname] + "</td>";
}
}
}
else if ($(headers[i]).data().coltype != undefined && $(headers[i]).data().coltype == "SN") {//序号 序号的类型是SN colname列名称为空
//html += "<td><div style='width:26px'>" + (parseInt(k) + 1 + parseInt(_this.InitData.PageSize) * (parseInt(_this.InitData.PageIndex) - 1)) + "</div></td>";
html += "<td " + style +">" + (parseInt(k) + 1 ) + "</td>";
}
else if ($(headers[i]).data().coltype != undefined && $(headers[i]).data().coltype == "Operation") {//序号 序号的类型是SN colname列名称为空){
html += ('<td style="white-space: nowrap"><a style="text-decoration:underline;" href="#" onclick="updateReport(this)" class="btn btn-link btn_det">编辑</a>' + '<a href="#" style="text-decoration:underline;" onclick="delReport(this)" class="btn btn-link btn_det">删除</a></td>');
html += "</tr>";
}
//自定义内容
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 += ('<td ' + style+'>' + tmp + '</td>');
}
else {
html += "<td " + style +">" + "" + "</td>"
}
}
}
});
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);
}