增加了ECharts支持

This commit is contained in:
hyzboy 2016-12-15 10:07:22 +04:00
parent c0bff2427e
commit 70b34f3b2e
2 changed files with 165 additions and 0 deletions

159
chart/chart.php Normal file
View File

@ -0,0 +1,159 @@
<?php
class ChartData
{
public $name;
public $cols;
public $value;
/**
* @param n 数据名称
* @param cols_data 列数据名称
* @param cols_value 列数据
**/
public function __construct($n,$cols_data,$cols_value)
{
$this->name=$n;
$this->cols=$cols_data;
$this->value=$cols_value;
}
};//class ChartData
class Chart
{
private $id;
private $width,$height;
private $title=null;
private $type=null;
private $data_list=array();
/**
* @param n 名称(用于显示)
* @param i id
* @param w
* @param h
* @param t 类型
**/
public function __construct($n,$i,$w,$h,$t)
{
$this->title=$n;
$this->id=$i;
$this->width=$w;
$this->height=$h;
$this->type=$t;
}
public function set_title($t)
{
$this->title=$t;
}
public function set_type($t)
{
$this->type=$t;
}
public function add_data($data)
{
array_push($this->data_list,$data);
}
public function draw()
{
echo '<div id="'.$this->id.'" style="width:'.$this->width.'px;height:'.$this->height.'px;"></div>';
echo '<script type="text/javascript">
var myChart=echarts.init(document.getElementById("'.$id.'"));
var option =
{
';
if($this->title)
echo 'title:{text:"'.$this->title.'"},
tooltip:{},';
echo 'legend: { data:[';
$first=true;
foreach($data_list as $obj)
{
if($first==false)
echo ',';
echo '"'.$obj->name.'"';
$first=false;
}
echo ']},
xAxis:
{';
$first=true;
foreach($data_list as $obj)
{
if($first==false)
echo ',';
echo 'data:[';
$col_first=true;
foreach($obj->cols as $cols_name)
{
if($col_first==false)
echo ',';
echo '"'.$cols_name.'"';
$col_first=false;
}
echo ']';
$first=false;
}
echo '},
yAxis:{},
series:[';
$first=true;
foreach($data_list as $obj)
{
if($first==false)
echo ',';
echo '{';
echo 'name: "'.$obj->name.'",';
echo 'type: "'.$this->type.'",';
echo 'data:[';
$col_first=true;
foreach($obj->value as $value)
{
if($col_first==false)
echo ',';
echo $value;
$col_first=false;
}
echo '}';
$first=false;
}
echo ']
};
myChart.setOption(option);
</script>';
}
};//class Chart

View File

@ -19,6 +19,11 @@
echo '<script src="3rdpty/bootstrap/js/bootstrap.js"></script>';
}
function include_echarts()
{
echo '<script src="3rdpty/echarts.js"></script>';
}
function echo_html_header($title)
{
echo '<html>
@ -31,6 +36,7 @@
include_jquery();
include_font_awesome();
include_bootstrap();
include_echarts();
echo '</head><body>';
}