ECharts饼图实例

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=" 统&nbsp;&nbsp;计 "/>
					</td>
					
					<td width="90px" align="center">
						<input class="btn btn-info" id="btnExport" type="button" value=" 导&nbsp;&nbsp;出 " 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%">&nbsp;</td>
		            <td width="90%">
		                <div id="pagerbar" style="text-align: left;"></div>
		            </td>
		            <td width="1%">&nbsp;</td>
		            <td align="right">
		                <input type="button" class="btn btn-info" id="btnExport" value="导&nbsp;&nbsp;出" disabled  />
		            </td>
		            <td width="1%">&nbsp;</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;
    
}

 

最终显示

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值