echarts 实例:
jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta http-equiv="Expires" content="0"/>
<meta http-equiv="Pragma" content="no-cache"/>
<meta http-equiv="Cache-control" content="no-cache"/>
<meta http-equiv="Cache" content="no-cache"/>
<title></title>
<link rel="stylesheet" type="text/css" href="../../../controls/select2/select2.min.css" />
<link rel="stylesheet" type="text/css" href="../../../controls/bootstrap-3.3.5/css/bootstrap.css"/>
<link rel="stylesheet" type="text/css" href="../../../controls/easyui-1.4.5/themes/bootstrap/easyui.css"/>
<link rel="stylesheet" type="text/css" href="../../../controls/dhtmlx-4.5/skins/web/dhtmlx.css"/>
<link rel="stylesheet" type="text/css" href="../../../controls/dhtmlx-4.5/skins/dhtmlxgrid_cdmcs.css"/>
<link rel="stylesheet" type="text/css" href="../../../style/pub-custom.css"/>
<script type="text/javascript" src="../../../script/public/tools/StringBuffer.js"></script>
<script type="text/javascript" src="../../../script/public/tools/pagerbar_debug.js"></script>
<script type="text/javascript" src="../../../script/public/tools/Page.js"></script>
<script type="text/javascript" src="../../../script/public/tools/spin.js"></script>
<script type="text/javascript" src="../../../script/ajax/ajaxProxy.js"></script>
<script type="text/javascript" src="../../../script/public/common.js"></script>
<script type="text/javascript" src="../../../script/public/ywpub.js"></script>
<script type="text/javascript" src="../../../controls/dhtmlx-4.5/dhtmlx.min.js"></script>
<script type="text/javascript" src="../../../controls/easyui-1.4.5/jquery.min.js"></script>
<script type="text/javascript" src="../../../controls/bootstrap-3.3.5/js/bootstrap.min.js"></script>
<script type="text/javascript" src="../../../controls/easyui-1.4.5/jquery.easyui.min.js"></script>
<script type="text/javascript" src="../../../controls/My97DatePicker/WdatePicker.js"></script>
<script type="text/javascript" src="../../../script/public/jquery/jquery.json.js"></script>
<script type="text/javascript" src="../../../controls/select2/pinyin_abbrev.js"></script>
<script type="text/javascript" src="../../../controls/select2/select2.cdmcs.min.js"></script>
<!--
<script type="text/javascript" src="../../../script/public/echarts/echarts.js"></script>
<script type="text/javascript" src="../../../script/public/echarts/echarts-gl.min.js"></script>
-->
<script type="text/javascript" src="../../../script/public/echarts/echarts.min.js"></script>
<script type="text/javascript" src="script/main.js?v=<%=System.currentTimeMillis()%>"></script>
<style type="text/css">
html, body {
width: 100%;
height: 100%;
margin: 0px;
padding:0px;
overflow: hidden;
}
#searchTbl tr{
height:40px;
}
.select2-container--open {/*select2在隐藏层中显示下拉列表*/
z-index: 9999 !important;
}
.criteria-form{
width: 99.7%;
position: absolute;
background-color: #FFF;
z-index: 9999;
border: 1px solid #CCCCCC;
padding: 5px;
border-radius:5px;
}
.criteria-form table td{
line-height: 40px;
}
.criteria-text-val{
font-family: KaiTi;
}
</style>
</head>
<body class="easyui-layout">
<div data-options="region:'north',border:false" style="height:50px; padding-top:5px;overflow: hidden;">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr><!--
<td width="90px" align="right">统计类型: </td>
<td width="200px" align="left">
<select class="form-control" id="C_TJ_TYPE" style="width: 100%;height:35px;line-height:35px; ">
</select>
</td>-->
<td width="90px" align="center">
<input class="btn btn-info" id="btnSearch" type="button" value=" 统 计 "/>
</td>
<td width="90px" align="center">
<input class="btn btn-info" id="btnExport" type="button" value=" 导 出 " disabled/>
</td>
<td></td>
</tr>
</table>
</div>
<div data-options="region:'center',border:false">
<div class="easyui-layout" data-options="fit:true">
<div data-options="region:'west',collapsed:false" style="width:45%;">
<div id="gridbox" style="width: 100%;height: 100%;"></div>
<div id="commonInfo"
style="z-index:99;width:98%;height:auto;position:absolute;top:50%;text-align:center;font-size:18px;color:#C6C6C6;">
</div>
</div>
<div data-options="region:'center'">
<div id="echartsPie" style="width: 100%;height: 100%;"></div>
</div>
</div>
</div>
<!--
<div data-options="region:'south',border:false" style="height:45px; padding-top:5px; overflow: hidden;">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td width="1%"> </td>
<td width="90%">
<div id="pagerbar" style="text-align: left;"></div>
</td>
<td width="1%"> </td>
<td align="right">
<input type="button" class="btn btn-info" id="btnExport" value="导 出" disabled />
</td>
<td width="1%"> </td>
</tr>
</table>
</div> -->
<iframe id="hid_ifrm" name="hid_ifrm" width="0" height="0">
</iframe>
</body>
</html>
需要引得js:
1、引入jQuery的js文件
2、引入echarts的js文件
js页面
var user = top._globPlateUserInfo;
var grid;
var pagerbar;
var gPageSize = 25;
var gs_echartsPie;
var gsData = {};
$(function(){
initDateInput();//初始化查询时间(默认当月)
initGrid();
initEvent();
});
/**
* 初始化日期
*/
function initDateInput(){
var today = getSysDate();
}
/**
* 事件初始化
*/
function initEvent(){
gs_echartsPie = echarts.init(document.getElementById("echartsPie"));
initCharts();
$("#btnSearch").click(function(){
loadGridData(-1);
});
$("#btnExport").click(f_btnExport);
}
/**
* 数据表格初始化
*/
function initGrid(){
grid = new dhtmlXGridObject('gridbox');
grid.setImagePath("../../../controls/dhtmlx-4.5/skins/web/imgs/");
grid.setHeader("岗位序列,人数,女性人数,占总人数比例,女性占该岗位比例");
grid.setInitWidthsP("20,19,20,20,20");
grid.setColAlign("center,center,center,center,center");
grid.setColTypes("ro,ro,ro,ro,ro");
grid.setColSorting("str,str,str,str,str");
grid.enableMultiselect(true);
// grid.splitAt(1); //冻结第一列
grid.init();
}
function loadGridData(page){
grid.clearAll();
var ajax = new AjaxProxy();
Page.wait();
//等待图标
var spinner = new Spinner({lines: 20, radius: 30, length: 6, corners: 0.9, trail: 30}).spin(document.body);
try {
ajax.invokeProc("APPUSER.CTRI_CXTJ_HR.PW_CTRI_CXTJ_HR_SZGWTJ", true, function (ap) {
Page.waitend();
spinner.stop();
var ret = ap.getInt("PN_RET");
var msg = ap.getString("PC_MSG");
var row = ap.getRowCount("P_RESULT");
if(ret==null || ret!='0' || row < 1){
$("#commonInfo").text("没有查询结果!"+msg);
$("#commonInfo").show();
$("#btnExport").attr("disabled", true);
}else{
$("#commonInfo").hide();
$("#btnExport").attr("disabled", false);
}
gsData = {};
var legendDataArr = [];
var seriesDataArr = [];
for (var i = 1; i <= row; i++) {
var data = {
C_SZGW : ap.getString("P_RESULT", i, "C_SZGW"),//岗位序列
C_SZGWSM : ap.getString("P_RESULT", i, "C_SZGWSM"),
N_GROUPING : ap.getString("P_RESULT", i, "N_GROUPING"),
N_CNT_TOTAL : ap.getString("P_RESULT", i, "N_CNT_TOTAL"), //总人数
N_CNT_SZGW : ap.getString("P_RESULT", i, "N_CNT_SZGW"), //单独岗位序列的总人数
N_CNT_SZGW_NV : ap.getString("P_RESULT", i, "N_CNT_SZGW_NV"), //单独岗位序列女性总人数
C_CNT_SZGW_BL : ap.getString("P_RESULT", i, "C_CNT_SZGW_BL"), //单独岗位序列占总人数比例
C_CNT_SZGW_NV_BL: ap.getString("P_RESULT", i, "C_CNT_SZGW_NV_BL")// 单独岗位序列女性占该序列总人数比例
}
//grid.setHeader("岗位序列,人数,女性人数,占总人数比例,女性占该岗位比例");
grid.addRow(i, [
data.C_SZGWSM, data.N_CNT_SZGW,data.N_CNT_SZGW_NV,data.C_CNT_SZGW_BL,data.C_CNT_SZGW_NV_BL
]);
if(null != data.C_SZGW && "" != data.C_SZGW){
var jsonData = {name: '', datas: []};
jsonData.name = data.C_SZGWSM;
jsonData.value = data.N_CNT_SZGW;
jsonData.datas[0] = data.C_CNT_SZGW_BL;
jsonData.datas[1] = data.N_CNT_SZGW_NV;
jsonData.datas[2] = data.C_CNT_SZGW_NV_BL;
seriesDataArr.push(jsonData);
legendDataArr.push(data.C_SZGWSM);
}
if (null == data.C_SZGW || "" == data.C_SZGW) {
grid.setRowTextStyle(i, "color:blue;font-weight:bold;");
}else{
grid.setUserData(i, "data", data);
}
}
gsData = {
legendDataArr : legendDataArr,
seriesDataArr : seriesDataArr
};
//加载饼图
initCharts(gsData);
}, ajax);
} catch (e) {
Page.waitend();
spinner.stop();
}
}
function initCharts(chartsData){
if(typeof(chartsData) == "undefined" || null == chartsData || "" == chartsData){
return;
}
//alert($.toJSON(chartsData));
var option = {
title : {
text: '岗位统计',
subtext: '单位:人',
x:'center'
},
tooltip : {
trigger: 'item',
//formatter: "{a} <br/>{b} : {c} "
formatter: function(a){
return ('岗位序列:'+a['name']
+'</br>人数:'+a['value'] + ' 人'
+'<br>占总人数比例:'+a['data'].datas[0]
+'<br>女性人数:'+a['data'].datas[1] + ' 人'
+'<br>女性人数占该岗位比例:'+a['data'].datas[2]);
},
textStyle: {
//color : 'red',
fontStyle : 'normal',//default: 'normal' ,'normal','italic','oblique'
fontWeight : 'bold',
fontFamily : 'Arial', //default: 'sans-serif'
fontSize : '12',// default: 14
//height : '',
//width : '',
lineHeight : '60' //行高
}
},
legend: {
orient : 'vertical',
x : 'left',
data:chartsData.legendDataArr
},
toolbox: {
show : true,
feature : {
mark : {show: true},
dataView : {show: true, readOnly: false},
magicType : {
show: true,
type: ['pie', 'funnel'],
option: {
funnel: {
x: '25%',
width: '50%',
funnelAlign: 'left',
max: 1548
}
}
},
restore : {show: true},
saveAsImage : {show: true}
}
},
calculable : true,
series : [
{
name:'岗位',
type:'pie',
radius : '55%',//饼图的半径大小
center: ['50%', '60%'],//饼图的位置
data:chartsData.seriesDataArr,
label:{
show:true,
position : 'insideRight',
formatter : function(a) {
return (a['name'] + '(' + a['value'] + '人)' );
}
}
}
]
};
gs_echartsPie.clear();
gs_echartsPie.setOption(option);
}
/**
* 导出excel表
*/
function f_btnExport(){
var exp = {};
exp.expType = 'xls';
exp.expMode = '3';
exp.caption = '岗位序列统计';
exp.fileName = exp.caption;
exp.subCaption = getSearchConditionStr();
exp.width = [20, 15, 15, 20, 20];
exp.align = ['center','center','center','center','center'];
exp.header = ['岗位序列','人数','女性人数','占总人数比例','女性占该岗位比例'];
exp.invoker = {
procName: 'APPUSER.CTRI_CXTJ_HR.PW_CTRI_CXTJ_HR_SZGWTJ',
procParams: {
}
}
exp.attrsType = {
C_SZGWSM : 'str',
N_CNT_SZGW : 'str',
N_CNT_SZGW_NV : 'str',
C_CNT_SZGW_BL : 'str',
C_CNT_SZGW_NV_BL: 'str'
}
var action = getContextPath() + "/*.EXPXLS";
openPostWindow(action, $.toJSON(exp), 'hid_ifrm');
}
/**
* 得到查询条件串
* @returns
*/
function getSearchConditionStr(){
var str = "";
return str;
}
最终显示