This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
nms-nmsweb/WebRoot/page/system/nmstaskmanager/missionResultLineChart.jsp

375 lines
13 KiB
Plaintext
Raw Normal View History

<%@ page language="java" import="java.util.*,java.math.BigInteger,java.text.NumberFormat" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="/jstl/c"%>
<%@ taglib prefix="fn" uri="/jstl/fn"%>
<%@ taglib prefix="fmt" uri="/jstl/fmt"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>i18n_mrlc.message.title_n81i</title>
<link href="<c:url value='/css/styles.css'/>" rel="stylesheet"
type="text/css" />
<link href="<c:url value='/desktop/css/index${userBgColor }.css'/>"
rel="stylesheet" type="text/css" />
<script type="text/javascript"
src="${pageContext.request.contextPath }/js/jquery.js"></script>
<script type="text/javascript"src="<c:url value='/js/jquery-1.4.2.min.js'/>"></script>
<script type="text/javascript"
src="<c:url value='/js/ui/jquery-ui.min.js'/>"></script>
<script type="text/javascript" src="${pageContext.request.contextPath }/js/highcharts.js"></script>
<style>
.leftArrow {
border-right: 10px solid #c2c2c2;
border-top: 10px solid transparent;
border-bottom:10px solid transparent;
width:0;
height:0;
z-index:-1;
}
.leftArrow:hover {
border-right: 10px solid red;
border-top: 10px solid transparent;
border-bottom:10px solid transparent;
width:0;
height:0;
cursor: pointer;
}
.rightArrow {
border-left: 10px solid #c2c2c2;
border-top: 10px solid transparent;
border-bottom:10px solid transparent;
width:0;
height:0;
}
.rightArrow:hover {
border-left: 10px solid red;
border-top: 10px solid transparent;
border-bottom:10px solid transparent;
width:0;
height:0;
cursor: pointer;
}
</style>
<script type="text/javascript">
var chart;
var roundArray = null;
$(document).ready(function() {
chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
plotBackgroundColor: '#EBECEB',
borderColor:null,
margin:[0,0,65,0],
borderWidth:0,
borderRadius:0, //顶角曲度
defaultSeriesType: 'line'
},
title: {
useHTML:true,
y : 20,
text: null
//<div style="background-image:url(/nmsweb/images/button_chaxun.png)" onclick="javascript:msg(1);"> 《</div>
//text: '<a href="javascript:msg(1);" ><img src="/images/button_chaxun.png" />《</a> ${missionstatetable.missionName }定时任务执行结果趋势图 '
},
legend: {
align: 'center',
verticalAlign: 'bottom',
x: 0,
y: 15,
floating: true,
shadow: false
},
tooltip: {
shared: true,
crosshairs: true,
borderColor: '#808080',
formatter: function() {
var s = '';
$.each(this.points, function(i, point) {
s += '<span style="color:'+point.series.color+'">'+ point.series.name +'</span>: <b>'+ this.y + '</b><br/>';
});
s = $.trim(s) ;
return s;
}
},
xAxis: {
title: {
text: 'i18n_mrlc.text.xAxis_n81i',
align: 'high',
style: {
color: '#808080',
backgroundColor:'#EBECEB'
},
margin:-10
},
categories: [<%=request.getAttribute("xValue") %>],
labels: {
align:'left',
x:3,
y:-3,
step: 1
},
min: 0
},
yAxis: {
allowDecimals : false,
title: {
text: null
},
plotLines: [{
value: 0,
width: 1,
color: '#808080'
}],
labels: {
align:'left',
x:3,
y:-3,
formatter : function(){
return Highcharts.numberFormat(this.value,0);
}
},
min: 0,
showFirstLabel : false
},
plotOptions: {
line: {
allowPointSelect: true,
cursor: 'pointer',
lineWidth: 2,
states: {
hover: {
lineWidth: 3
}
},
marker: {
states: {
hover: {
enabled: true,
symbol: 'circle',
radius: 5,
lineWidth: 1
}
}
},
point:{
events:{
click: function(){
var roundId = 0;//周期任务id用于点击折线上的点进入具体的结果列表
for(var i = 0; i<roundArray.length;i++){
//alert(roundArray[i]);
if(roundArray[i].length>this.x){
if(roundArray[i][this.x]!= null){
roundId = roundArray[i][this.x][1];
break;
}
}
}
if(roundId == null){
return;
}
window.parent.document.forms[0].action="<c:url value='/'/>/nmstaskManager/nmsTaskManager!executeAction.do?action=searchResults&missionId=${missionId}&curMissionId="+roundId+"&tabs=2&dataStart="+$("#dataStart").val()+"&dataEnd="+$("#dataEnd").val()+"&dataRange=0";
window.parent.document.forms[0].submit();
}
}
}
}
},
series: [
<%
List<Object[]> resultObjects = (List<Object[]>)request.getAttribute("resultObjects");
String[][] lines = new String[][]{
{"0","i18n_mrlc.message.success_n81i","#62C462"},
{"1","i18n_mrlc.message.failed_n81i","#EE5F5B"},
{"3","i18n_mrlc.message.underDelivery_n81i","#F8B551"},
{"40","i18n_mrlc.message.deliveredSuccess_n81i","#3399CC"},
{"50","i18n_mrlc.message.processStop_n81i","#13b5b1"},
{"60","i18n_mrlc.message.fileBackup_n81i","#E5B2FF"},
{"70","i18n_mrlc.message.fileUpdate_n81i","#FF9966"},
{"80","i18n_mrlc.message.commandSuccess_n81i","#CCCC33"},
{"81","i18n_mrlc.message.commandFailed_n81i","#FF9999"},
{"5","i18n_mrlc.message.withDraw_n81i","#7ecef4"},
{"6","i18n_mrlc.message.undo_n81i","#844284"},
{"7","i18n_mrlc.message.undoComplete_n81i","#AEAE5F"}
};
StringBuffer roundStrAll = new StringBuffer();
if(resultObjects!=null){
boolean dFlag = false;
for(String[] line: lines){
boolean viewFlag = false;
StringBuffer datas = new StringBuffer();
StringBuffer roundStr = new StringBuffer();
for(Object[] objs:resultObjects){
if(line[0].equals(objs[2].toString())){
viewFlag = true;
datas.append(","+objs[3].toString());
roundStr.append(",["+objs[4].toString()+","+objs[0].toString()+"]");
}else{
//break;
}
}
if(datas.length()>0){
datas.deleteCharAt(0);
}
if(roundStr.length()>0){
roundStr.deleteCharAt(0);
roundStrAll.append(",["+roundStr+"]");
}
if(viewFlag){
%>
<%=dFlag?",":"" %>
{
name: '<%=line[1] %>',
color: '<%=line[2] %>',
data: [<%=datas.toString() %>],
marker:{
symbol: 'circle'
}}
<%
dFlag = true;
}
}
}
if(roundStrAll.length()>0){
roundStrAll.deleteCharAt(0);
}
//System.out.println(roundStrAll);
%>
],
credits:{
enabled: false
}
});
roundArray = new Array(<%=roundStrAll %>);//轮次和任务id的对应关系用于点击折线图进入对应周期的结果列表
if(${dataStart==1} && ${dataEnd==sumRound}) {//只有一页
$("#firstTd").hide();
$("#lastTd").hide();
}else if(${dataStart==1}&& ${dataEnd!=sumRound} ) {//多页,第一页
$("#firstTd").hide();
$("#lastTd").show();
}else if(${dataEnd==sumRound} && ${dataStart!=1}) {//多页,最后一页
$("#firstTd").show();
$("#lastTd").hide();
}else {
$("#firstTd").show();
$("#lastTd").show();
}
});
//更新图表数据dataRange:-1代表向前查询周期轮次1代表向后查询周期轮次
function getData(dataRange) {
var categories = [];
var dataStartTmp=$("#dataStart").val();
var dataEndTmp=$("#dataEnd").val();
var dataArr=[];
$.ajax({
url:"<%=path%>/nmstaskManager/nmsTaskManager!getLineByAjax.do?missionId=${missionstatetable.missionId}&dataStart="+dataStartTmp+"&dataEnd="+dataEndTmp+"&dataRange="+dataRange,
type : "POST",
dataType : "json",
success : function(datas){
if(datas!=null){
var dsTmp = datas[0].dataStart;
var deTmp = datas[0].dataEnd;
$("#dataStart").val(dsTmp);
$("#dataEnd").val(deTmp);
var sumRoundTmp = datas[4].sumRound;
if(dsTmp==1 && deTmp==sumRoundTmp) {//只有一页
$("#firstTd").hide();
$("#lastTd").hide();
}else if(dsTmp==1&& deTmp!=sumRoundTmp ) {//多页,第一页
$("#firstTd").hide();
$("#lastTd").show();
}else if(deTmp==sumRoundTmp && dsTmp!=1) {//多页,最后一页
$("#firstTd").show();
$("#lastTd").hide();
}else {
$("#firstTd").show();
$("#lastTd").show();
}
var xValueTmp = datas[1].xValue;
if(xValueTmp!=null && xValueTmp!=undefined){
$(xValueTmp).each(function(n,item){
categories.push(item);
})
chart.xAxis[0].setCategories(categories);//xValue为x轴的周期轮次
}
var linesTmp = datas[2].lines;
if(linesTmp!=null && linesTmp!=undefined){
for(var i = 0; i<12;i++){
chart.series[0].remove(false);
}
for(var i = 0; i<linesTmp.length;i++){
var seriesTmp = {
data:[],
marker:{//设置折线图的点都为圆形,如果不设置,则一会圆形,一会三角形,会变化
symbol: 'circle'
}
};
//alert(i+"=="+linesTmp[i].dataTmp);
$(linesTmp[i].dataTmp).each(function(n,item){
//alert(item);
//dataArr.push(item);
seriesTmp.data.push(Number(item));//此处不用Number(item),直接用item也可以
//chart.series.data.push(dataArr);
})
seriesTmp.name = linesTmp[i].nameTmp;
seriesTmp.color = linesTmp[i].colorTmp;
chart.addSeries(seriesTmp);
}
chart.redraw();//所有操作结束后,再一起重画图
}
var roundStrAllTmp = datas[3].roundStrAll;
roundArray = new Array();
for(var i = 0; i<roundStrAllTmp.length;i++){
var arr1=[];
$(roundStrAllTmp[i]).each(function(n,item){
arr1.push(item);
})
roundArray.push(arr1);
}
}
}
});
}
</script>
</head>
<body>
<form action="" name="form1" method="post" id="form1">
<input type="hidden" id="dataStart" name="dataStart" value="${dataStart}"/>
<input type="hidden" id="dataEnd" name="dataEnd" value="${dataEnd}"/>
<table align="center">
<tr>
<td id="firstTd" title="i18n_mrlc.text.firstTd_n81i" style="vi">
<div class="leftArrow" onclick="javascript:getData(-1);" ></div>
</td>
<td>
<font style="color: #000000;font-size: 16px;fill: #3E576F; font-family: '微软雅黑';"> &nbsp;&nbsp; &nbsp;${missionstatetable.missionName }i18n_mrbc.text.resultChart_n81i&nbsp;&nbsp;&nbsp; </font>
</td>
<td id="lastTd" title="i18n_mrlc.text.lastTd_n81i">
<div class="rightArrow" onclick="javascript:getData(1);"></div>
</td>
</tr>
</table>
<div id="container" style="width: 100%; height:354px;padding: 0px 0px;background-color: #EBECEB;" > </div>
</form>
</body>
</html>