生成highcharts报表时对数据没有用= eval('([' + seriesArray+ '])')处理生成数组,而是简单的拼成字符串,结果导致大量的场景出现

时间:2023-03-09 04:48:03
生成highcharts报表时对数据没有用= eval('([' + seriesArray+ '])')处理生成数组,而是简单的拼成字符串,结果导致大量的场景出现

<script type="text/javascript">

//异步初始周达成率趋势图信息
function goFinishQuery()
{

var yearNum = $('#yearNum').val();
var weekNum = $('#weekNum').val();
var beginDate = $("#beginDate").val();
var endDate = $("#endDate").val();

if( isEmpty(beginDate))
{
alert("请先选择开始日期..");
return false;
}
else if( isEmpty(endDate))
{

alert(" 请先选择结束日期...");
return false;
}

$.post("finishpost.php",
{
beginDate:beginDate,
endDate:endDate,
methodType:'finishQuery'
},
function(data)
{

var obj = JSON.parse(data);

var teamsArray = JSON.parse(obj.teams) ;

var yearweeksArray = JSON.parse(obj.yearweeks);

initHighCharts(obj,teamsArray,yearweeksArray,obj.chartTitle);

});

}

function initHighCharts(obj,teamsArray,yearweeksArray,chartTitle)
{

var seriesArray = new Array();

for(var i=0;i< teamsArray.length ;i++)
{
var team = teamsArray[i] ;

var dataArray = eval('([' + JSON.parse(obj[team])+ '])');

seriesArray[i] = '{name:\'' + team + '\',data:[' + dataArray + ']}' ;

}

var yearweeksArrayString = eval('([' + yearweeksArray + '])');

// var seriesArrayString = '['+ seriesArray +']'; 写成这个方式怎么都不行
var seriesArrayString = eval('([' + seriesArray+ '])'); //写成这种方式得到才是真正的数组对象,OK

alert(seriesArrayString);

$('#container').highcharts({
chart: {
type: 'line'
},
title: {
text: chartTitle
},
subtitle: {
text: '移动测试'
},
xAxis: {
/*categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']*/
categories:yearweeksArrayString
},
yAxis: {
title: {
text: '单位 (%)'
}
},
tooltip: {
enabled: false,
formatter: function() {
return '<b>'+ this.series.name +'</b><br/>'+this.x +': '+ this.y +'°C';
}
},
plotOptions: {
line: {
dataLabels: {
enabled: true
},
enableMouseTracking: false
}
},
series: seriesArrayString

/**
series: [{
name: 'John',
data: [3, 4, 3]
}, {
name: 'Jane',
data: [1, 3, 4]
}]
**/

});
}

function isEmpty(str)
{
if (str == null || str == undefined || str == ''|| str == ' ')
{

return true;
}
else
{
return false;
}
}

</script>

生成highcharts报表时对数据没有用= eval('([' + seriesArray+ '])')处理生成数组,而是简单的拼成字符串,结果导致大量的场景出现