ext



var seat_store,type_store,OD_store,obj_store,timetype_store,hour_store;
var fa_store,time_store;

Ext.onReady(function() {
var yxsj="";
time_store=new Ext.data.JsonStore({
fields : ["id", "name"]
});
fa_store=new Ext.data.JsonStore({
fields : ["id", "name"]
});
HighStock.getAllfa(function(data) {
fa_store.loadData(data);
})
obj_store= new Ext.data.JsonStore({
fields : ["id", "name"] ,

});
obj2_store= new Ext.data.JsonStore({
fields : ["id", "name"] ,
data : [{id : "0",
name : "总客流合计",
},{id : "1",name : "上行客流合计",

},{id : "2", name : "下行客流合计",
},{id : "3", name : "单OD",}]
});

OD_store= new Ext.data.JsonStore({
fields : ["name", "value"],
data : [{name : "沪宁线",
value : "5733",
}]
});
hour_store= new Ext.data.JsonStore({
fields : ["name", "value"],
data : [{name : "0500-0530",
value : "1",
},{name : "0530-0600",
value : "2",
}
,{name : "0600-0630",
value : "3",
}
,{name : "0630-0700",
value : "4",
}
,{name : "0700-0730",
value : "5",
}
,{name : "0730-0800",
value : "6",
}
,{name : "0800-0830",
value : "7",
}
,{name : "0830-0900",
value : "8",
}
,{name : "0900-0930",
value : "9",
},{name : "0930-1000",
value : "10",
},{name : "1000-1030",
value : "11",
},{name : "1030-1100",
value : "12",
}
,{name : "1100-1130",
value : "13",
}
,{name : "1130-1200",
value : "14",
}
,{name : "1200-1230",
value : "15",
}
,{name : "1230-1300",
value : "16",
}
,{name : "1300-1330",
value : "17",
}
,{name : "1330-1400",
value : "18",
}
,{name : "1400-1430",
value : "19",
},{name : "1430-1500",
value : "20",
},{name : "1500-1530",
value : "21",
},{name : "1530-1600",
value : "22",
}
,{name : "1600-1630",
value : "23",
}
,{name : "1630-1700",
value : "24",
}
,{name : "1700-1730",
value : "25",
}
,{name : "1730-1800",
value : "26",
}
,{name : "1800-1830",
value : "27",
}
,{name : "1830-1900",
value : "28",
}
,{name : "1900-1930",
value : "29",
},{name : "1930-2000",
value : "30",
},{name : "2000-2030",
value : "31",
},{name : "2030-2100",
value : "32",
}
,{name : "2100-2130",
value : "33",
}
,{name : "2130-2200",
value : "34",
},{name : "2200-2230",
value : "35",
}
,{name : "2230-2300",
value : "36",
}
]
});
timetype_store= new Ext.data.JsonStore({
fields : ["name", "value"],
data : [{name : "按天",
value : "day"},

{name : "按半小时",
value : "min",
}]
});
type_store=new Ext.data.JsonStore({
fields : ["name", "value"],
data : [
{
name : "全部",
value : "all",
},{
name : "高铁",
value : "G"
}]
});
seat_store = new Ext.data.JsonStore({
fields : ["name", "value"],
data : [{
name : "全部",
value : "all",
}, {
name : "一等座",
value : "M"
}, {
name : "二等座",
value : "O"
}]
});
new Ext.Viewport({

layout : "border",
items : [ {
region : "north",
height : 79,
title : "预测精度监视/配置调整综合控制",
xtype : 'tabpanel',
activeTab:0,
items : [{ title : 'OD客流方式',
tbar:[{xtype : 'label',text:'线路/区段选择: '},{xtype : 'combo',id:'where1', emptyText:'请选择',
store:OD_store,mode : "local",triggerAction : "all",editable : false,
selectOnFocus : true, displayField : "name",valueField : "value",
listeners : {
select : function() {
var id = Ext.getCmp('where1').getValue();
Ext.getCmp('where2').disable();
Ext.getCmp('where6').disable();
//alert(id);
HighStock.getobj(id,function(data) {
obj_store.loadData(data);
});
}},
},
{xtype : 'label',text:'分析对象选择: '},
{xtype : 'combo',id:'where7',
store:obj2_store,mode : "local",triggerAction : "all",editable : false,
selectOnFocus : true, displayField : "name",valueField : "id",
listeners : {
select : function() {
var id = Ext.getCmp('where7').getValue();
//alert(id);
if(id==3){
Ext.getCmp('where2').enable();
}else{
Ext.getCmp('where2').disable();
}
}},
},
{xtype : 'combo',id:'where2',emptyText:'请选择',
store:obj_store,mode : "local",triggerAction : "all",editable : false,
selectOnFocus : true, displayField : "name",valueField : "id"},
{xtype : 'label',text:'列车等级选择: '},{xtype : 'combo',id:'where3', value :'全部',
store:type_store,mode : "local",triggerAction : "all",editable : false,
selectOnFocus : true, displayField : "name",valueField : "value"
},
{xtype : 'label',text:'座位等级选择: '},{xtype : 'combo',value :'全部',id:'where4',
store:seat_store,mode : "local",triggerAction : "all",editable : false,
selectOnFocus : true, displayField : "name",valueField : "value"},
],
bbar : [{xtype : 'label',text:'数据统计时间单位:'},{xtype : 'combo',id:'where5', value :'按天',
store:timetype_store,mode : "local",triggerAction : "all",editable : false,
selectOnFocus : true, displayField : "name",valueField : "value",
listeners : {
select : function() {
var id = Ext.getCmp('where5').getValue();
//alert(id);
if(id=='day'){
Ext.getCmp('where6').enable();
}else{
Ext.getCmp('where6').disable();
}
}},
},
{xtype : 'label',text:'指定时段:'},
{xtype : 'combo',id:'where6', emptyText:'请选择',
store:hour_store,mode : "local",triggerAction : "all",editable : false,
selectOnFocus : true, displayField : "name",valueField : "value"},

{xtype:"button",id:"btnEnter",text:"<font color='blue'>生成图表</font>",
listeners:{
"click":function(){
var xl = Ext.getCmp('where1').getValue();
var OD= Ext.getCmp('where2').getValue();
var train= Ext.getCmp('where3').getValue();
var seat= Ext.getCmp('where4').getValue();
alert(xl+OD+train+seat);
}
},
}
]
},
// {title : '区段客流密度方式',
// tbar:[
// {xtype : 'label',text:'线路/区段选择: '},{xtype : 'combo',emptyText:'请选择',
// store:OD_store,mode : "local",triggerAction : "all",editable : false,
// selectOnFocus : true, displayField : "name",valueField : "value"},
// {xtype : 'label',text:'列车等级选择: '},{xtype : 'combo',value :'全部',
// store:type_store,mode : "local",triggerAction : "all",editable : false,
// selectOnFocus : true, displayField : "name",valueField : "value"
// },
// {xtype : 'label',text:'座位等级选择: '},{xtype : 'combo',value :'全部',
// store:seat_store,mode : "local",triggerAction : "all",editable : false,
// selectOnFocus : true, displayField : "name",valueField : "value"},
// ],
// bbar : [{}],
// }
]
},

{
region : "south",

height : 50,
html:'上海至苏州单OD的误差 为11%, 超出标准值5个百分点,建议调整预测配置',
title : "<font color='red'>预警表示区域</font>"
},

{
region : "center",
width : 10000,
height : 520,
xtype : 'panel',
items:[{
html:'<div id="chart" style="width:100%;height:520px; margin: 0 auto"></div>'
}],
autoScroll:true,
titleCollapse:true,
title : "图表展示"
},

{
region : "west",

width : 160,
height : 450,
xtype : 'tabpanel',
activeTab:0,
items : [{
title : '方案调整',
items:[{tbar:[
{xtype : 'label',text:'方案选择: ' , autoWidth:true},
{xtype : 'combo',id:'plan',
store:fa_store,mode : "local",triggerAction : "all",editable : false,
selectOnFocus : true, displayField : "name",valueField : "id",width:120,
listeners : {
select : function() {
id = Ext.getCmp('plan').getValue();
HighStock.getTime(id,function(data) {
Ext.getCmp('yxsj').setText('有效日期:'+data,true);
//Ext.getCmp('cj').setText('场景:平时稳态',true);
myMask = new Ext.LoadMask("chart", {
msg : "运算中,请稍候......"
});
});

}},
},
]},

{xtype : 'label',id:'yxsj',text:'有效日期:',},


]
},
// {
// title : '数据修改',
// items:[{xtype : 'label',text:'日期:'},
// {xtype : 'combo',emptyText:'2011-06-20'},
// {xtype : 'radio',boxLabel:'时间段方式:'},
// {xtype : 'combo',emptyText:'0600-0630'},
// {xtype : 'radio',boxLabel:'OD方式:'},
// {xtype : 'combo',emptyText:'上海-苏州'},
// {xtype : 'button',text:'数据修改>>'},
// {xtype : 'button',text:'数据保存<<'},
// ]
// }
],
title : "左边面板"
},

{
region : "east",

width : 160,

title : "对比分析信息表示区域",
html:' <div id="show" > </div> '
}

]

});
myMask = new Ext.LoadMask("chart", {
msg : "运算中,请稍候......"
});
myMask.show();
var xList = new Array();
var trueList= new Array();
var guessList = new Array();
var errorList=new Array();
HighStock.getDateList(function(dateList){
HighStock.getDateStringList(function(dateStringList){
HighStock.getAllMapList(function(data) {

for(var j=0;j<dateList.length;j++){
//for(var j=0;j<1;j++){
for(var i=0;i<data[dateStringList[j]].xList.length;i++){ //data[dateStringList[j]].xList.length 时间段

var x=null;
if(i%2==1){
x=Date.UTC(dateList[j][0],dateList[j][1]-1,dateList[j][2],i/2+6,0);}
else{
x=Date.UTC(dateList[j][0],dateList[j][1]-1,dateList[j][2],i/2+5,30);}
xList.push(data[dateStringList[j]].xList[i]);
trueList.push([x,parseInt(data[dateStringList[j]].trueList[i])]);
guessList.push([x,parseInt(data[dateStringList[j]].guessList[i])]);
var tempTrue=parseInt(data[dateStringList[j]].trueList[i]);
if(parseInt(data[dateStringList[j]].trueList[i])==0)tempTrue=1;

temp=(parseInt(data[dateStringList[j]].guessList[i])-parseInt(data[dateStringList[j]].trueList[i]))/tempTrue*100;
errorList.push([x,Math.round(temp*100)/100]);
}

}
Array.prototype.indexOf=function(v)
{
for(var i in this)
{
if(this[i]==v) return i;
}
return -1;
};

var chart = new Highcharts.StockChart({
chart : {
renderTo : 'chart',
alignTicks: false,
defaultSeriesType: 'line'//可选,默认为line。控制线条样式,line:折线;spline:平滑的线;area:折线、下边有颜色块儿;areaspline:平滑的线、下边有颜色块儿;column:柱状图;bar:横向条形图;pie:饼图;scatter:点状图;
},
global: {
useUTC: true
},
title: {
text: '数据对比分析图'
},
xAxis : {
type: 'datetime',
maxZoom: 3600000,
title: {
text: '日期'
}
},
yAxis : [ {
title : {
text : '客流量(人)'
},
height : 200,
lineWidth : 2
}, {
title : {
text : '预测误差(%)'
},
labels: {
formatter: function() {
return this.value +'%'
}
},
top : 300,
height : 80,
offset : 0,
lineWidth : 2
} ],
navigator : {
enabled : true
},

tooltip : {
formatter: function(){
var point = this.points[0],
series = point.series,
unit = series.unit && series.unit[0],
format = '%A,%Y-%b-%e %H:%M', // with hours
s;
var div=document.getElementById('show');


var temp=Highcharts.dateFormat(format,this.x);



if (unit == 'day') { // skip hours
format = '%A,%Y-%b-%e';
}
var color="red";
if(parseInt(Highcharts.numberFormat(this.points[2].y, 1))<0) color="green"; else if(parseInt(Highcharts.numberFormat(this.points[2].y, 1))==0) color="black";
var html= '<b>' +temp+'</b>' +

'<br/><span style="color:' + this.points[0].series.color + '">'+this.points[0].series.name+': </span>' + Highcharts.numberFormat(this.points[0].y, 0) +'人'+
'<br/><span style="color:' + this.points[1].series.color + '">'+this.points[1].series.name+': </span>' + Highcharts.numberFormat(this.points[1].y, 0) +'人'+
//'<br/><span style="color:black">'+'相差人数'+': </span>' + Math.abs(parseInt(this.points[1].y)-parseInt(this.points[0].y)) +'人'+
'<br/><span style="color:' + this.points[2].series.color + '">'+this.points[2].series.name+': </span><span style="color:' +color + '">'+Highcharts.numberFormat(this.points[2].y, 2) +'%</span>';

var lenth=trueList.indexOf(this.x+","+this.points[0].y);
if(lenth!=-1){
console.log(lenth);
var data=errorList[lenth];
var data2=errorList[lenth-1];
var data3=errorList[lenth-2];
console.log(data);
div.innerHTML='当前日期:'+temp+ '<br/> 前1:'+ data[1]+ '<br/> 前2:'+ data2[1]+ '<br/> 前3:'+ data3[1] ;}
return html;
},
shared : true,
crosshairs:[{//控制十字线
width:1,
color:"red",
dashStyle:"shortdot"
},
{
width:1,
color:"red",
dashStyle:"shortdot"
}]
},
plotOptions:{//绘图线条控制
line:{
marker:{
enabled:false//是否显示点
}
},
series: {
cursor: 'pointer',
point: {
events: {
click: function() {
var str="人";
var temp="客流量:";
if(this.series.name=="预测误差"){str="%";temp="误差率:"};
hs.htmlExpand(null, {
pageOrigin: {
x: this.pageX,
y: this.pageY
},
headingText: this.series.name,
maincontentText: Highcharts.dateFormat('%A,%Y年 %b月 %e 号', this.x) +':<br/> '+temp+
this.y +str,
width: 200
});
}
}
},
marker: {
lineWidth: 1
}
}
},
rangeSelector : {
enabled:true,
buttons : [ {
type : 'hour',
count : 18,
text : '一天'
},
{
type : 'day',
count : 7,
text : '一周'
},{
type : 'all',
text : '全部'
}
],
selected : 1,
inputEnabled : true
},
legend: {
enabled:true,
layout: 'vertical',
verticalAlign: 'top',
align: 'right',
x:0,
y:100,
verticalAlign: 'top',
borderWidth: 1,
shadow:true
},
series : [ {
name : '真实数据',
data :trueList
}, {
name : '预测数据',
data :guessList
} , {
type : 'column',
name : '预测误差',
data : errorList,
yAxis : 1
} ]
});
});
});
});


});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值