//格式化日期 function Format(){ this.jsjava_class="jsjava.text.Format"; } function DateFormat(){ this.jsjava_class="jsjava.text.DateFormat"; } DateFormat.prototype=new Format(); DateFormat.prototype.constructor=DateFormat; DateFormat.zh_cn_month2=["01","02","03","04","05","06","07","08","09","10","11","12"]; DateFormat.zh_cn_month3=["\u4e00\u6708","\u4e8c\u6708","\u4e09\u6708","\u56db\u6708","\u4e94\u6708","\u516d\u6708","\u4e03\u6708","\u516b\u6708","\u4e5d\u6708","\u5341\u6708","\u5341\u4e00\u6708","\u5341\u4e8c\u6708",]; DateFormat.zh_cn_month4=["\u4e00\u6708","\u4e8c\u6708","\u4e09\u6708","\u56db\u6708","\u4e94\u6708","\u516d\u6708","\u4e03\u6708","\u516b\u6708","\u4e5d\u6708","\u5341\u6708","\u5341\u4e00\u6708","\u5341\u4e8c\u6708",]; DateFormat.en_us_month4=["Janu","Febr","Marc","Apri","May","Juhn","July","Augu","Sept","Octo","Nove","Dece"]; DateFormat.en_us_month3=["Jan","Feb","Mar","Apr","May","Juh","Jul","Aug","Sep","Oct","Nov","Dec"]; DateFormat.en_us_month2=["01","02","03","04","05","06","07","08","09","10","11","12"]; DateFormat.zh_cn_week=["\u661f\u671f\u65e5","\u661f\u671f\u4e00","\u661f\u671f\u4e8c","\u661f\u671f\u4e09","\u661f\u671f\u56db","\u661f\u671f\u4e94","\u661f\u671f\u516d"]; DateFormat.zh_cn_am="\u4e0b\u5348"; DateFormat.zh_cn_pm="\u4e0a\u5348"; DateFormat.language=(navigator.userLanguage==undefined?navigator.language:navigator.userLanguage).replace("-","_").toLowerCase(); DateFormat.prototype.format=function(date){ var year4=date.getFullYear(); var year2=year4.toString().substring(2); var pattern=this.pattern; pattern=pattern.replace(/yyyy/,year4); pattern=pattern.replace(/yy/,year2); var month=date.getMonth(); pattern=pattern.replace(/MMMM/,eval("DateFormat."+DateFormat.language+"_month4[month]")); pattern=pattern.replace(/MMM/,eval("DateFormat."+DateFormat.language+"_month3[month]")); pattern=pattern.replace(/MM/,eval("DateFormat."+DateFormat.language+"_month2[month]")); var dayOfMonth=date.getDate(); var dayOfMonth2=dayOfMonth; var dayOfMonthLength=dayOfMonth.toString().length; if(dayOfMonthLength==1){ dayOfMonth2="0"+dayOfMonth; } pattern=pattern.replace(/dd/,dayOfMonth2); pattern=pattern.replace(/d/,dayOfMonth); var hours=date.getHours(); var hours2=hours; var hoursLength=hours.toString().length; if(hoursLength==1){ hours2="0"+hours; } pattern=pattern.replace(/HH/,hours2); pattern=pattern.replace(/H/,hours); var minutes=date.getMinutes(); var minutes2=minutes; var minutesLength=minutes.toString().length; if(minutesLength==1){ minutes2="0"+minutes; } pattern=pattern.replace(/mm/,minutes2); pattern=pattern.replace(/m/,minutes); var seconds=date.getSeconds(); var seconds2=seconds; var secondsLength=seconds.toString().length; if(secondsLength==1){ seconds2="0"+seconds; } pattern=pattern.replace(/ss/,seconds2); pattern=pattern.replace(/s/,seconds); var milliSeconds=date.getMilliseconds(); pattern=pattern.replace(/S+/,milliSeconds); var day=date.getDay(); // pattern=pattern.replace(/E+/,eval("DateFormat."+DateFormat.language+"_week[day]")); if(hours>12){ pattern=pattern.replace(/a+/,eval("DateFormat."+DateFormat.language+"_am")); }else{ pattern=pattern.replace(/a+/,eval("DateFormat."+DateFormat.language+"_pm")); } var kHours=hours; if(kHours==0){ kHours=24; } var kHours2=kHours; var kHoursLength=kHours.toString().length; if(kHoursLength==1){ kHours2="0"+kHours; } pattern=pattern.replace(/kk/,kHours2); pattern=pattern.replace(/k/,kHours); var KHours=hours; if(hours>11){ KHours=hours-12; } var KHours2=KHours; var KHoursLength=KHours.toString().length; if(KHoursLength==1){ KHours2="0"+KHours; } pattern=pattern.replace(/KK/,KHours2); pattern=pattern.replace(/K/,KHours); var hHours=KHours; if(hHours==0){ hHours=12; } var hHours2=hHours; var hHoursLength=hHours.toString().length; if(KHoursLength==1){ hHours2="0"+hHours; } pattern=pattern.replace(/hh/,hHours2); pattern=pattern.replace(/h/,hHours); return pattern; }; function SimpleDateFormat(){ this.jsjava_class="jsjava.text.SimpleDateFormat"; } SimpleDateFormat.prototype=new DateFormat(); SimpleDateFormat.prototype.constructor=SimpleDateFormat; SimpleDateFormat.prototype.applyPattern=function(pattern){ this.pattern=pattern; }; var df=new SimpleDateFormat(); df.applyPattern("yyyy-MM-dd HH:mm:ss"); function indexTable1() { $.ajax({ type: "GET", contentType : 'application/json', url: '../CmszMonitorAnalysis/index/table1/'+Date.parse(new Date()),//取值的页面 dataType : 'text', beforeSend: function(data) {}, success: function(data){ var header = new Array(); header[0] = ["告警ID","warningId","",""]; header[1] = ["告警标题","warningTitle","",""]; header[2] = ["省份","provinceName","",""]; header[3] = ["渠道","channelName","",""]; header[4] = ["指标","kpiName","",""]; header[5] = ["告警来源","warningSourceName","",""]; header[6] = ["开始时间","occurTime","",""]; header[7] = ["结束时间","closeTime","",""]; header[8] = ["告警状态","type","",""]; header[8] = ["关闭类型","status","",""]; window.pagging = new table_pagging({limit:10,tableId:'indexTable1',header:header}); pagging.pagging(data); }}); var table_pagging = function(){ this.init.apply(this, arguments); } table_pagging.prototype={ init:function(s){ //从第几个数据开始获取,缺省状态下从0开始显示 if(s.start){ this.start = parseInt(s.start); }else{ this.start = 0; } //limit是指从start开始一共要用几条数据,缺省状态下显示10条 if(s.limit){ this.limit = parseInt(s.limit); }else{ this.limit = 10; } //cellStep表示每行要显示的行数.缺省状态下为1,一行一条记录. if(s.cellStep){ this.cellStep = parseInt(s.cellStep); }else{ this.cellStep = 1; } //要执行的表的名字 if(s.tableId){ this.tableObj = document.getElementById(s.tableId); }else{ alert("missing table id~"); } //头部的样式编码 if(s.headTrClassName){ this.headTrClassName = s.headTrClassName; }else{ this.headTrClassName = ""; } if(s.trClassName){ this.trClassName = s.trClassName; }else{ this.trClassName = ""; } //定义头部信息 if(this.checkHeadersIsArray(s.header)){ this.header = s.header; }else{ alert("header is wrong~"); } //初始化头部 this.createTableHeader(); }, cloumnModel:function(){ } , pagging:function(objectJson){ this.objectlist = eval('('+objectJson+')'); if(this.start+this.limit >=this.objectlist.length){ this.end =this.objectlist.length; }else{ this.end = this.start+this.limit; } this.clearSearchTable(); this.createTableBodyTd(); }, checkHeadersIsArray:function(header){ if(!(header instanceof Array)){ return false; } for(var i=0;i<header.length;i++){ if(!(header[i] instanceof Array) || header[i].length<4){ return false; } } return true; }, //清空表格数据 clearSearchTable:function(){ for(var i =this.tableObj.rows.length;i>1;i--){ this.tableObj.deleteRow(i-1); } }, //创建头部 createTableHeader:function(){ var tr = this.tableObj.insertRow(this.tableObj.rows.length); if(this.headTrClassName){ tr.className = this.headTrClassName; } var rowLength = this.header.length; for(var i=0;i<rowLength;i++){ var td = tr.insertCell(i); td.innerHTML = this.header[i][0]; if(this.header[i][2]){ td.width=this.header[i][2]; } } }, //创建table的数据区域 createTableBodyTd:function(){ this.clearSearchTable(); if(this.start>this.objectlist.length){ return; } if(this.start>this.end){ return; } if(this.end>this.objectlist.length){ this.end = this.objectlist.length; } var rowLength = this.header.length; for(var i=this.start;i<this.end;i++){ var tr = this.tableObj.insertRow(this.tableObj.rows.length); if(this.trClassName){ tr.className= this.trClassName; } for(var j=0;j<this.cellStep;j++){ for(var k=0;k<rowLength;k++){ var td = tr.insertCell(rowLength*j+k); var tdContext = " "; var tdTitle=""; if(this.header[k][1]){ var reg = /\%\{([\d\w.]+)\}\%/g; if(result = reg.exec(this.header[k][1])){ // var result = reg.exec(this.header[k][1]); var context = this.header[k][1]; while(reg.lastIndex != 0){ var value = this.getData(this.objectlist[i],result[1]); context = context.replace( /\%\{[\d\w.]+\}\%/,value); result = reg.exec(this.header[k][1]); } tdContext = context; }else{ tdContext = this.getData(this.objectlist[i],this.header[k][1]); if(tdContext==null){ tdContext = " "; } if(k==6){ if(tdContext==" "){ tdContext = " "; }else{ tdContext = df.format(new Date(tdContext)); } }else if(k==7){ if(tdContext==" "){ tdContext = " "; }else{ tdContext = df.format(new Date(tdContext)); } } if(k==0){ //add by guo xuan 2014-07-29 start tdContext="<a href=\"javascript:;\" onclick=\"openDialog('"+this.getData(this.objectlist[i],this.header[k][1])+"'," + this.getData(this.objectlist[i],"warningSourceId")+"," + this.getData(this.objectlist[i],"dataSourceId")+"," + this.getData(this.objectlist[i],"channelId")+"," + this.getData(this.objectlist[i],"businessId")+"," + this.getData(this.objectlist[i],"kpiId")+"," + this.getData(this.objectlist[i],"configItemId")+"," + this.getData(this.objectlist[i],"provinceId")+",'" + ((this.getData(this.objectlist[i],"warningTitle")!=null&&this.getData(this.objectlist[i],"warningTitle")!='')?this.getData(this.objectlist[i],"warningTitle"):"")+"','" + ((this.getData(this.objectlist[i],"provinceName")!=null&&this.getData(this.objectlist[i],"provinceName")!='')?this.getData(this.objectlist[i],"provinceName"):"")+"','" + ((this.getData(this.objectlist[i],"channelName")!=null&&this.getData(this.objectlist[i],"channelName")!='')?this.getData(this.objectlist[i],"channelName"):"")+"','" + ((this.getData(this.objectlist[i],"businessName")!=null&&this.getData(this.objectlist[i],"businessName")!='')?this.getData(this.objectlist[i],"businessName"):"")+"','" + ((this.getData(this.objectlist[i],"dataSourceName")!=null&&this.getData(this.objectlist[i],"dataSourceName")!='')?this.getData(this.objectlist[i],"dataSourceName"):"")+"','" + ((this.getData(this.objectlist[i],"warningSourceName")!=null&&this.getData(this.objectlist[i],"warningSourceName")!='')?this.getData(this.objectlist[i],"warningSourceName"):"")+"','" + ((this.getData(this.objectlist[i],"kpiCode").replace(/\"/g,"")!=null&&this.getData(this.objectlist[i],"kpiCode").replace(/\"/g,"")!='')?this.getData(this.objectlist[i],"kpiCode").replace(/\"/g,""):"")+"','" //去掉其中的双引号 + ((this.getData(this.objectlist[i],"kpiName").replace(/\"/g,"")!=null&&this.getData(this.objectlist[i],"kpiName").replace(/\"/g,"")!='')?this.getData(this.objectlist[i],"kpiName").replace(/\"/g,""):"")+"','" + ((this.getData(this.objectlist[i],"ciCode")!=null&&this.getData(this.objectlist[i],"ciCode")!='')?this.getData(this.objectlist[i],"ciCode"):"")+"','" + ((this.getData(this.objectlist[i],"ciName")!=null&&this.getData(this.objectlist[i],"ciName")!='')?this.getData(this.objectlist[i],"ciName"):"")+"','" + ((this.getData(this.objectlist[i],"providerName")!=null&&this.getData(this.objectlist[i],"providerName")!='')?this.getData(this.objectlist[i],"providerName"):"")+"','" + ((this.getData(this.objectlist[i],"importanceLevelName")!=null&&this.getData(this.objectlist[i],"importanceLevelName")!='')?this.getData(this.objectlist[i],"importanceLevelName"):"")+"','" + ((this.getData(this.objectlist[i],"occurTime")!=null&&this.getData(this.objectlist[i],"occurTime")!='')?df.format(new Date(this.getData(this.objectlist[i],"occurTime"))):"")+"','" + ((this.getData(this.objectlist[i],"closeTime")!=null&&this.getData(this.objectlist[i],"closeTime")!='')?df.format(new Date(this.getData(this.objectlist[i],"closeTime"))):"")+"','" + ((this.getData(this.objectlist[i],"workingOrderCode")!=null&&this.getData(this.objectlist[i],"workingOrderCode")!='')?this.getData(this.objectlist[i],"workingOrderCode"):"")+"','" + ((this.getData(this.objectlist[i],"relevantFailureId")!=null&&this.getData(this.objectlist[i],"relevantFailureId")!='')?this.getData(this.objectlist[i],"relevantFailureId"):"")+"','" + ((this.getData(this.objectlist[i],"riskEarlyWarningTypeId")!=null&&this.getData(this.objectlist[i],"riskEarlyWarningTypeId")!='')?this.getData(this.objectlist[i],"riskEarlyWarningTypeId"):"")+"','" + ((this.getData(this.objectlist[i],"dataModelName")!=null&&this.getData(this.objectlist[i],"dataModelName")!='')?this.getData(this.objectlist[i],"dataModelName"):"")+"','" + ((this.getData(this.objectlist[i],"status")!=null&&this.getData(this.objectlist[i],"status")!='')?this.getData(this.objectlist[i],"status"):"")+"','" + ((this.getData(this.objectlist[i],"type")!=null&&this.getData(this.objectlist[i],"type")!='')?this.getData(this.objectlist[i],"type"):"")+"'" +")\" alt='"+i+"'>"+this.getData(this.objectlist[i],this.header[k][1])+"</a>"; //add by guo xuan 2014-07-29 end } } }else{ tdContext = " "; } if(tdContext instanceof Object){ tdContext=this.formateDate(tdContext); } if(!tdTitle){ tdTitle = tdContext; } if(this.header[k][3] && !(tdContext == " ")){ td.title = tdTitle; tdContext = tdContext+""; if(tdContext.length > parseInt(this.header[k][3])){ tdContext = tdContext.substring(0,this.header[k][3])+".."; } } td.innerHTML=tdContext; } i = i+j; if(i>=this.start+this.limit){ break; } } if(i>=this.start+this.limit){ break; } } //this.createPageTr(); }, //从json获取数据,其中key如果带有.这个符号,说明需要获取的数据是多维数组(也可以看成对象) getData:function(arrayObj,key){ if(key.indexOf(".")>0){ var keys = key.split("."); var obj; for(var c = 0;c<keys.length;c++){ if(c == keys.length-1){ return obj[keys[c]]; } if(!arrayObj[keys[c]]){ return " " }else{ obj = arrayObj[keys[c]] } } }else{ return arrayObj[key]; } }, //格式化Date数据 formateDate:function(dateObj){ if(dateObj.month){ return parseInt(dateObj.month)+1+"-"+dateObj.date+" "+dateObj.hours+":"+dateObj.minutes+":"+dateObj.seconds; }else{ return dateObj; } }, operator:function(_start,_end){ this.start = _start; this.end = _end; this.createTableBodyTd(); }, //获取当前对象名 getObjectName:function(){ for(var a in window){ if(window[a]==this){ return a; } } }, // 创建尾部,上一页,下一页,当前页之类信息 createPageTr : function() { var objectName = this.getObjectName(); var tr = this.tableObj.insertRow(this.tableObj.rows.length); td = tr.insertCell(0); td.colSpan = this.header.length + ''; var totalPage = Math.ceil(this.objectlist.length / this.limit); var currentPage = Math.ceil(this.start / this.limit); var tableName = objectName + "assrotCurrentIndexTable"; td.innerHTML = "<table id='" + tableName + "' width='100%'></table>"; var tableObj = document.getElementById(tableName); var tr = tableObj.insertRow(0); var td1 = tr.insertCell(0); td1.width = "10%"; td1.align = "center"; if (this.start >= this.limit) { td1.innerHTML = "<a href='javascript:" + objectName + ".operator(0," + this.limit + ")'>首页</a>"; } else { td1.innerHTML = "<a>首页</a>"; } var td2 = tr.insertCell(1); td2.width = "15%"; td2.align = "center"; if (this.start >= this.limit) { td2.innerHTML = "<a href='javascript:" + objectName + ".operator(" + (this.start - this.limit) + "," + this.start + ")'>上一页</a>"; } else { td2.innerHTML = "<a>上一页</a>"; } var td3 = tr.insertCell(2); td3.width = "30%"; td3.align = "center"; // td3.innerHTML = "Page <input id='table_pagging_page_input_id' // type='text' size='1' id='currentIndex' value='"+(currentPage+1)+"' // >of "+totalPage; td3.innerHTML = "<div class='col-sm-5'><input type=\"text\" class=\"form-control\" id=\"goPageNo\" value=\"" + (currentPage + 1) + "\" size=\"3\" /></div><div class='col-sm-5'><input type=\"button\" class=\"form-control\" value=\"跳转\" onclick=\"javascript:" + objectName + ".jump2PageNum()\" /></div>"; var td4 = tr.insertCell(3); td4.width = "15%"; td4.align = "center"; if (this.end >= this.objectlist.length) { td4.innerHTML = "<a>下一页<a>"; } else { if ((this.end + this.limit) > this.objectlist.length) { td4.innerHTML = "<a href='javascript:" + objectName + ".operator(" + this.end + "," + this.objectlist.length + ")'>下一页<a>"; } else { td4.innerHTML = "<a href='javascript:" + objectName + ".operator(" + this.end + "," + (this.end + this.limit) + ")'>下一页<a>"; } } var td5 = tr.insertCell(4); td5.width = "10%"; td5.align = "center"; if (this.end >= this.objectlist.length) { td5.innerHTML = "<a>末页</a>"; } else { td5.innerHTML = "<a href='javascript:" + objectName + ".operator(" + this.limit * (totalPage - 1) + "," + this.objectlist.length + ")'>末页</a>"; } var td6 = tr.insertCell(5); td6.align = 'right'; td6.width = "25%"; // td6.innerHTML = // "显示第"+this.start+"到第"+this.end+"记录,共"+this.objectlist.length+"条记录"; td6.innerHTML = "页数:<span style='color:blue'>" + (currentPage + 1) + "</span>/" + totalPage; }, // 点击跳转,未开发 jump2PageNum : function() { var re = /^[1-9]+[0-9]*]*$/; if (!re.test(document.getElementById('goPageNo').value)) { alert("请输入正整数"); } else { if (parseInt(document.getElementById('goPageNo').value) > Math .ceil(this.objectlist.length / this.limit)) { alert("你输入的数值过大!"); } else { this .operator( this.limit * (parseInt(document .getElementById('goPageNo').value) - 1), (this.limit * (parseInt(document .getElementById('goPageNo').value) - 1) + this.limit)); } } }, test : function() { alert(this.start); alert(this.step); alert(this.cellStep), alert(this.tablename) } } }