饼状图&柱状图

queryReportGraphics.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <script type="text/javascript" src="jquery-2.1.4.js"></script>
    <script type="text/javascript" src="reportGraphics.js"></script>
    <script type="text/javascript" src="echarts.common.min.js"></script>
    <script type="text/javascript" src="echarts.js"></script>
    <script type="text/javascript" src="echarts.min.js"></script>
    <script type="text/javascript" src="queryReportGraphicsl.js"></script>
    <title>queryReportGraphics</title>
</head>
<body>
    <div class="row">
	<div class="box col-md-12">
		<div class="box-inner">
			<div class="box-content">
			  	<div class="charts-content">
                      <!-- 1.饼图 -->
			        <div class="map-area">
		         		<div class="charts-item-task"> 
		         			<div id="regularClass-piechart"></div>
                        </div>
                       
			            <div class="error-content">
			            	<div id="regularSubClass-piechart"></div>
			            </div> 
			        </div>
			        <div class="charts-btm">
                      
			            <div class="charts-item-large">
			                <div id="productName-piechart"></div>
                        </div>
                      
			            <div class="charts-item1">
			                <div id="error-chart"></div> 
			            </div>
                    </div>
                    <!-- 2.柱形图 -->
                    <div class="map-area">
		         		<div class="charts-item-task"> 
		         			<div id="regularProblem-barchart"></div>
                        </div>
                       
			            <div class="error-content">
			            	<div id="regularDistort-barchart"></div>
			            </div> 
			        </div>
			        <div class="charts-btm">
                    
			            <div class="charts-item-large">
			                <div id="productProblem-barchart"></div>
                        </div>
                      
			            <div class="charts-item">
			                <div id="productDistort-barchart"></div> 
			            </div>
                    </div>
			    </div>
			</div>
		</div>
	</div>
</body>
<style>
	.row,.box-inner{
		/* min-width:1140px; */
		overflow:auto;
	}
    .charts-content {
       width: 100%;
       min-width:1100px;
       overflow: hidden; 
    }

    #world-map {
        width: 1100px;
        min-width:800px;
        height: 400px;
        margin-left: -50px; 
        cursor: default; 
    }

    #productDistort-barchart {
        width: 500px;
        /* min-width:180px; */ 
        height: 250px;
        z-index:100;
    }
    
    .invisible-bolck{
    	width:10%;
    	height:100%;
    	min-width:100px;
    	opacity:0;
    }

    .error-content{
    	display: flex;
        display: -webkit-flex;
    	/* width: 25%; */
    	width:48%;
    	height: 270px;
    	border: 1px solid #2fa4e7;
    	/* position:absolute; */
    	background-color: #fff;
    	align-items:center;
    	justify-content: center;
    	right:1%;
    	border-radius: 6px;
    	overflow-x: hidden; 
    	/* box-shadow: -2px -2px 5px #2fa4e7; */
    }
    
    .task-content{
    	display: flex;
        display: -webkit-flex;
    	position:absolute;
    	left:10px;
    	/* width: 25%; */
    	width:270px;
    	background-color: #fff;
    	height: 80%;
    	border: 1px solid #2fa4e7;
    	border-radius: 6px;
    	overflow-x: hidden; 
    	align-items:center;
    	justify-content: center;
    	/* box-shadow: -2px -2px 5px #2fa4e7; */
    }
    
    #regularClass-piechart{
    	width: 500px;
        height: 250px; 
        z-index:100;
    }
    #regularProblem-barchart{
    	width: 500px;
        height: 250px; 
        z-index:100;
    }
    .charts-btm {
        width: 100%;
        display: flex;
        display: -webkit-flex;
        justify-content: space-around; 
        margin-bottom: 10px;
    }

    .map-area {
        position: relative;
        display: flex;
        align-items: center;
        /* height: 350px; */
        margin-bottom: 20px;
        margin-top: 10px; 
        width: 100%;
        /* min-width:1000px; */
        justify-content: space-around;
    }

    #agent-chart,
    #productName-piechart {
        width: 500px; 
        /* max-width:100%; */
        height: 250px;
    }
    #productProblem-barchart {
    width: 500px; 
    /* max-width:100%; */
    height: 250px;
    }

    #regularSubClass-piechart{
    width: 500px;
    /* max-width:100%; */
    height: 250px;
    }
    
    #regularDistort-barchart{
    	width: 500px;
        /* max-width:100%; */
        height: 250px;
    }
    .charts-item1 {
    	display:flex;
    	display:-webkit-flex;
        justify-content: center;
        align-items: center;
        width: 48%;
        min-width:320px;
        height: 270px;
        border: 1px solid hsl(210, 100%, 99%);
        border-radius: 6px;
        overflow-x: hidden;
        /* box-shadow: -2px -2px 5px #2fa4e7; */
    }
    .charts-item {
    	display:flex;
    	display:-webkit-flex;
        justify-content: center;
        align-items: center;
        width: 48%;
        min-width:320px;
        height: 270px;
        border: 1px solid #2fa4e7;
        border-radius: 6px;
        overflow-x: hidden;
        /* box-shadow: -2px -2px 5px #2fa4e7; */
    }
    
      .charts-item-large {
    	display:flex;
    	display:-webkit-flex;
        justify-content: center;
        align-items: center;
        width: 48%;
        min-width:450px;
        height: 270px;
        border: 1px solid #2fa4e7;
        border-radius: 6px;
        overflow: hidden; 
        /* box-shadow: -2px -2px 5px #2fa4e7; */ 
    }
    
   .charts-item-task{
   		display:flex;
    	display:-webkit-flex;
        justify-content: center;
        align-items: center;
        width: 48%;
        min-width:450px;
        height: 270px; 
        border: 1px solid #2fa4e7;
        border-radius: 6px;
        overflow: hidden; 
        /* box-shadow: -2px -2px 5px #2fa4e7; */
   }
    
</style>
</html>

  queryReportGraphicsl.js

$(function () {
    //饼图-声明变量
    var pieRegularClass = {
      "ruleType": {
        "types": {
          "WEB_LDAP": 0,
          "文件操作": 0,
          "WEB_XSS": 0,
          "Cherry.zip": 0,
          "WEB_SQL": 0,
          "Orange.zip": 2,
          "存储和传输": 0,
          "Android": 0,
          "密码算法": 0,
          "WEB_XXE": 0,
          "认证鉴权": 0,
          "WEB_CRLF": 0,
          "信息泄露": 6,
          "WEB_代码注入": 0,
          "密码算法:Android": 0,
          "WEB_代码注入:Android": 0,
          "Mango.zip": 239
        },
        "ruleTypeTotal": 27530,
        "ruleTypeDistortTotal": 135,
        "ruleTypeTagTotal": 247
      },
      "ruleName": {
        "ruleNameTypeDistortTotal": 135,
        "types": {
          "FIND_XXE": 0,
          "FIND_MD5": 0,
          "FIND_HTML_PASSWORD": 0,
          "Cherry.zip": 0,
          "Orange.zip": 2,
          "FIND_MODE_WORLD": 0,
          "FIND_GEOLOCATIONENABLED": 0,
          "FIND_JSP_EVAL": 0,
          "FIND_WebView_Html": 0,
          "FIND_SHA1": 0,
          "FIND_UNLINK": 0,
          "FIND_LDAP": 0,
          "FIND_CANONICALPATH": 0,
          "FIND_SSL": 0,
          "FIND_SHELL_system": 0,
          "Mango.zip": 22,
          "FIND_HTML_AUTOCOMPLETE": 0,
          "FIND_PASSWORD": 6,
          "FIND_INTENT_ACTIVITY": 0,
          "FIND_SHELL": 0,
          "FIND_RSA_KeyFactory": 0,
          "FIND_NEXTENTRY": 0,
          "FIND_HmacSHA_KeyFactory": 0,
          "FIND_XXE_SAXParser": 0,
          "FIND_CLIPBOAR": 0,
          "FIND_RSA": 0,
          "FIND_HTTP_HEADER": 0,
          "FIND_SETRESULT": 0,
          "其他": 217,
          "FIND_MYBATIS": 0,
          "FIND_AESECB": 0,
          "FIND_RANDOM": 0,
          "FIND_HmacSHA": 0,
          "FIND_OS_INJECT": 0,
          "FIND_CIPHERSUITES": 0,
          "FIND_PROTOCOLS": 0,
          "FIND_AES_128": 0,
          "FIND_OPENFILEOUTPUT": 0,
          "FIND_CLASSLOADER": 0,
          "FIND_PREFERENCES": 0
        },
        "ruleNameTypeTagTotal": 247,
        "ruleNameTypeTotal": 27530
      },
      "productName": {
		"productNameTotal": 27530,
		"distortTypes":{
            "社交":9,
            "游戏中心":37,
            "Hicloud云服务":0,
            "华为帐号":0,
            "应用市场":0,
            "HMS":99
        },
        "types": {
          "社交": 8,
          "游戏中心": 39,
          "华为帐号": 0,
          "应用市场": 2,
          "HMS": 198
        },
        "productNameTagTotal": 247,
        "productNameDistortTotal": 135
      }
    }
	// console.log(pieRegularClass)
	// console.log(pieRegularClass.ruleType)
	// console.log(pieRegularClass.ruleName)
	// console.log(pieRegularClass.productName)
    
    // 大类声明
    textpie1 = '大类';
    var data1 = [];
    // 小类声明	
    textpie2 = '小类';
    var data2 = [];
    //产品声明
    textpie3 = '产品'
	var data3 = [];
	
	var ruleTypeObj = pieRegularClass.ruleType.types;
    for (var key in ruleTypeObj) {
		if(ruleTypeObj[key]!==0){
			data1.push({value:ruleTypeObj[key],name:key})
		}	
	}
	var ruleNameObj=pieRegularClass.ruleName.types;
	for(var key in ruleNameObj){
		if(ruleNameObj[key]!==0){
			data2.push({value:ruleNameObj[key],name:key})
		}
	}  
	var productNameObj=pieRegularClass.productName.types;
	for(var key in productNameObj){
		if(productNameObj[key]!==0){
			data3.push({value:productNameObj[key],name:key})
		}
	}
    //饼状图-模板		
    function fun_echarts_PIE(echartsPieCnt, pieName, datas) {
      echartsPieCnt.setOption({
        title: {
          text: pieName, //名字
          subtext: '',
           left: 10
        },
        tooltip: {
          trigger: 'item',
          formatter: "{a} <br/>{b} : {c} ({d}%)"
        },
        legend: {
          orient: 'vertical',
          left: 'left',
        },
        series: [{
          type: 'pie',
          radius: '55%',
          center: ['50%', '60%'],
          data: datas, //数据
          itemStyle: {
            emphasis: {
              shadowBlur: 10,
              shadowOffsetX: 0,
              shadowColor: 'rgba(0, 0, 0, 0.5)'
            },
            normal: {
              color: function (params) {
                var colorList = ['#4F6D9F', '#0cA98C', '#F8B131', '#EB5345', '#635CA0', '#4275AA',
                  '#4F6D9F', '#0cA98C', '#F8B131', '#EB5345', '#635CA0', '#4275AA'
                ];
                return colorList[params.dataIndex];
              }
            }
          }
        }]
      });
    };

    // 饼图-初始化图表标签
    var myChart1 = echarts.init(document.getElementById('regularClass-piechart'));
    fun_echarts_PIE(myChart1, textpie1, data1);

    var myChart2 = echarts.init(document.getElementById('regularSubClass-piechart'));
    fun_echarts_PIE(myChart2, textpie2, data2);

    var myChart3 = echarts.init(document.getElementById('productName-piechart'));
    fun_echarts_PIE(myChart3, textpie3, data3);

	//柱状图-声明变量
    textbar1 = '大类'
    var data_Type1 = [],
      	data_Qty1 = [],
     	textbar2 = '小类'
    var data_Type2 = [],
     	data_Qty2 = []
    textbar3 = '产品(有效问题数图)'
    var data_Type3 = [],
      	data_Qty3 = []
    textbar4 = '产品(误报率图)'
    var data_Type4 = [],
	  	data_Qty4 = []
	var ruleTypeObjBar = pieRegularClass.ruleType.types;
	for( var key in ruleTypeObjBar){
		if(ruleTypeObjBar[key]!==0){
			data_Type1.push(key);
			data_Qty1.push(ruleTypeObjBar[key]);
		}
	};
	var ruleNameObjBar=pieRegularClass.ruleName.types;
	for(var key in ruleNameObjBar){
		if(ruleNameObjBar[key]!==0){
			data_Type2.push(key);
			data_Qty2.push(ruleNameObjBar[key]);
		}
	}
	var productNameObjBar=pieRegularClass.productName.types;
	for(var key in productNameObjBar){
		if(productNameObjBar[key]!==0){
			data_Type3.push(key);
			data_Qty3.push(productNameObjBar[key]);
		}
	}
	var productNameObjBar=pieRegularClass.productName.distortTypes;
	for(var key in productNameObjBar){
		if(productNameObjBar[key]!==0){
			data_Type4.push(key);
			data_Qty4.push(productNameObjBar[key]);
		}
	}

// 	console.log(data_Qty1);
// console.log(data_Type1);
  //console.log(pieRegularClass.ruleType.types)
    //柱状图-模板
    function fun_echarts_BAR(echartsBarCnt, barName, data_Types, data_Qtys) {
      echartsBarCnt.setOption({
        title: {
          text: barName,
          x: 'center'
        },
        color: ['#3398DB'],
        tooltip: {
          trigger: 'axis',
          axisPointer: { // 坐标轴指示器,坐标轴触发有效
            type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
          }
        },
        grid: {
          left: '3%',
          right: '4%',
          bottom: '3%',
          containLabel: true
        },
        xAxis: [{
          type: 'category',
          data: data_Types, // ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
          axisTick: {
            alignWithLabel: true
          }
        }],
        yAxis: [{
          type: 'value'
        }],
        series: [{
          name: '直接访问',
		  type: 'bar',
		  center: ['45%', '45%'],
          barWidth: '18%',
          data: data_Qtys, //[10, 52, 200, 334, 390, 330, 220],
          itemStyle: {
            normal: {
              color: function (params) {
                var colorList = ['#4F6D9F', '#0cA98C', '#F8B131', '#EB5345', '#635CA0', '#4275AA',
                  '#4F6D9F', '#0cA98C', '#F8B131', '#EB5345', '#635CA0', '#4275AA'
                ];
                return colorList[params.dataIndex];
              }
            }
          }
        }]
      });
    }
    //柱状图-初始化图表标签
    var myBarChart1 = echarts.init(document.getElementById('regularProblem-barchart'));
    fun_echarts_BAR(myBarChart1,  textbar1, data_Type1, data_Qty1);

    var myBarChart2 = echarts.init(document.getElementById('regularDistort-barchart'));
    fun_echarts_BAR(myBarChart2,  textbar2, data_Type2, data_Qty2)

    var myBarChart3 = echarts.init(document.getElementById('productProblem-barchart'));
    fun_echarts_BAR(myBarChart3,  textbar3, data_Type3, data_Qty3);

    var myBarChart4 = echarts.init(document.getElementById('productDistort-barchart'));
    fun_echarts_BAR(myBarChart4,  textbar4, data_Type4, data_Qty4)
  });

  

posted @ 2019-08-15 14:37  77芽儿  阅读(328)  评论(0编辑  收藏  举报