//初始化 $(function(){ //上方组图 //加载权限操作饼图 systemOperPieEchart(); //加载在线用户统计折线图 aLineLineEchart(); //加载在线用户统计柱状图 aLineBarEchart(); //下方组图 //服务器监控1 仪表盘 serverListenGaugeEchart1(); //服务器监控2 仪表盘 serverListenGaugeEchart2(); //服务器监控3 多环形 serverListenGaugeEchart3(); }) //定时刷新数据 //1 setInterval(function () { systemOperPieEchart(); },1000); //2 setInterval(function () { aLineLineEchart(); },1000); //3 setInterval(function () { aLineBarEchart(); },1000); //4 setInterval(function () { serverListenGaugeEchart1(); },1000); //5 setInterval(function () { serverListenGaugeEchart2(); },60000); //6 setInterval(function () { serverListenGaugeEchart3(); },1000); /*****************************************工具类公共方法***************************************************/ //工具栏公共方法 var toolbox = { feature: { dataView: {//数据视图工具,可以展现当前图表所用的数据,编辑后可以动态更新。 show: true,//是否显示组件。 readOnly: false }, saveAsImage: {} } }; //工具栏公共方法1折线图和柱状图 var toolbox1 = { feature: { dataView: {//数据视图工具,可以展现当前图表所用的数据,编辑后可以动态更新。 show: true,//是否显示组件。 readOnly: false }, magicType:{//动态类型切换 示例:feature: { magicType: {type: ['line', 'bar', 'stack', 'tiled']}} show:true, type:['line','bar'] }, restore: {}, saveAsImage: {} } }; /************************************加载动态数据***********************************************/ //加载权限操作饼图 function systemOperPieEchart(){ var myChart = echarts.init(document.getElementById('systemOperDivMain')); //设置实际值 myChart.setOption({ legend: { top:46, data:['无异常','异常','锁定'] }, color: ['#008000','#F7464A','#FFC870'], }); $.ajax({ type:'get', url:path+'/getEcharts1', dataType:'json', success:function(data){ if(data.code == 100){ var data = data.extend.list; getPieEcharts(myChart,'',data); }else{ toastr.error(data.msg); } } }) /*var data = [ {value:335,name:'无异常'}, {value:310,name:'异常'}, {value:234,name:'锁定'}, ];*/ } //加载在线用户统计折线图 function aLineLineEchart(){ var myChart = echarts.init(document.getElementById('alineLineDivMain')); var name1 = '意向客户'; var name2 = '签约客户'; var name3 = '长期客户'; var name4 = '流失客户'; var names = [name1,name2,name3,name4]; myChart.setOption({ legend: { data:names }, color: ['#CC324B','#FFCE55','#8CC474','#5DB2FF'], }); $.ajax({ type:'get', url:path+'/getEcharts2', dataType:'json', sync:false, success:function(data){ if(data.code == 100){ //最大登录数 var maxCountList = data.extend.list.maxCountList; $("#maxCountList").text(maxCountList); //日期集合 var xAsisData = data.extend.list.dayList; var intentionalList = data.extend.list.intentionalList; var contractedList = data.extend.list.contractedList; var longTermList = data.extend.list.longTermList; var lossList = data.extend.list.lossList; var data = [ { name:name1, type:'line', data:intentionalList }, { name:name2, type:'line', data:contractedList }, { name:name3, type:'line', data:longTermList }, { name:name4, type:'line', data:lossList }, ]; getLineEcharts(myChart,xAsisData,data); } } }) //$("#alineLineDivMain canvas").attr("height",190); } //加载在线用户统计柱状图 function aLineBarEchart(){ var myChart = echarts.init(document.getElementById('alineBarDivMain')); myChart.setOption({ title:{ text:'本月拜访量趋势图', x:'left' }, }); var xAsisData,echartData; $.ajax({ type:'get', url:path+'/getEcharts3', dataType:'json', sync:false, success:function(data){ if(data.code == 100){ //最大登录数 var maxCountList = data.extend.list.maxCountList; $("#loginCount").text(maxCountList); //日期集合 xAsisData = data.extend.list.dayList; echartData = data.extend.list.dataList; var color = '#D55462'; getBarEcharts(myChart,xAsisData,echartData,color); } } }) //$("#alineBarDivMain canvas").attr("height",190) } //加载服务器监控1仪表盘 function serverListenGaugeEchart1(){ var myChart = echarts.init(document.getElementById('serverListenGaugeDiv1')); var name = 'cpu使用率'; var color = [[0.2,'#90EE90'],[0.4, '#FFA500'],[0.8,'#87CEEB'],[1, '#FF4500']]; $.ajax({ type:'get', url:path+'/getEcharts4', dataType:'json', sync:false, success:function(data){ if(data.code == 100){ var data = data.extend.list; gaugeEchart1(myChart,name,color,data); } } }) } //加载服务器监控2仪表盘 function serverListenGaugeEchart2(){ var myChart = echarts.init(document.getElementById('serverListenGaugeDiv2')); //设置实际值 var color = [[0.4, '#2EC7C9'], [0.7, '#5AB1EF'], [1, '#D87A80']]; $.ajax({ type:'get', url:path+'/getEcharts5', dataType:'json', sync:false, success:function(data){ if(data.code == 100){ var value = data.extend.temperature; var data = [{value: value, name: 'cpu温度'}]; getGaugeEcharts(myChart,'cpu温度',data,color); } } }) } //加载服务器监控3仪表盘 function serverListenGaugeEchart3(){ var myChart = echarts.init(document.getElementById('serverListenGaugeDiv3')); var text = '内存使用率'; var name1 = '总内存'; var name2 = '物理内存'; var name3 = '使用中'; var name = [name1,name2,name3]; var color1 = '#2EC7C9'; var color2 = '#B6A2DE'; var color3 = '#5AB1EF'; var color = [color1,color2,color3]; $.ajax({ type:'get', url:path+'/getEcharts6', dataType:'json', sync:false, success:function(data){ if(data.code == 100){ var value = data.extend.list; var data = Math.round((value[2]/value[1])*100) + "%"; gaugeEchart3(myChart,text,name,color,value,data); } } }) } /**************************************基本代码*************************************************/ /** * myChart:实例化对象 name:饼图名称 data:动态数据var data = [ {value:335, name:'无异常'}, {value:310, name:'异常'}, {value:234, name:'锁定'}, ]; * */ function getPieEcharts(myChart,name,data){ // 基于准备好的dom,初始化echarts实例 // 指定图表的配置项和数据 var option = { tooltip: { trigger: 'item', formatter: "{a}
{b}: {c} ({d}%)" }, legend: { orient: 'vertical', x: 'right', }, toolbox:toolbox, series: [ { name:name, type:'pie', radius: ['40%', '70%'], avoidLabelOverlap: false, label: { normal: { show: false, position: 'center' }, emphasis: { show: true, textStyle: { fontSize: '30', fontWeight: 'bold' } } }, labelLine: { normal: { show: false } }, data:data, } ] }; // 使用刚指定的配置项和数据显示图表。 myChart.setOption(option); } /** * myChart:实例化对象 xAsisData:x轴数据 data:动态数据var data = [ {value:335, name:'无异常'}, {value:310, name:'异常'}, {value:234, name:'锁定'}, ]; * */ function getLineEcharts(myChart,xAsisData,data){ var option = { tooltip: { trigger: 'axis' }, toolbox:toolbox1, xAxis: { type: 'category', boundaryGap: false, data: xAsisData }, yAxis: { type: 'value' }, series: data }; myChart.setOption(option); } /** * myChart:实例化对象 xAsisData:x轴数据 var xAsisData = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30]; var data = [120, 200, 150, 80, 70, 110, 130]; * */ //加载柱状图 function getBarEcharts(myChart,xAsisData,data,color){ var option = { tooltip : { trigger: 'axis', axisPointer : { // 坐标轴指示器,坐标轴触发有效 type : 'shadow' // 默认为直线,可选为:'line' | 'shadow' } }, color:color, toolbox:toolbox1, xAxis: { type: 'category', data: xAsisData }, yAxis: { type: 'value' }, series: [{ data:data, type: 'bar' }] }; myChart.setOption(option); } //加载仪表图1 function gaugeEchart1(myChart,name,color,data){ var labelTop = { normal : { label : { show : true, position : 'center', formatter : '{b}', textStyle: { baseline : 'bottom', fontSize : '12', fontWeight : 'bold' } }, labelLine : { show : false } } }; var labelFromatter = { normal : { label : { formatter : function (a,b,c,d){return (100 - d).toFixed(2) + '%'}, textStyle: { baseline : 'top', fontSize : '12', fontWeight : 'bold' } } }, } var labelBottom = { normal : { label : { show : true, position : 'center' }, labelLine : { show : false } }, emphasis: { } }; var option= { tooltip : { formatter: "{a}
{b}:{c}%" }, toolbox:toolbox, series : [ { name:name, type:'gauge', center : ['50%', '50%'],    // 默认全局居中 radius : '90%', startAngle: 140, endAngle : -140, min: 0,                     // 最小值 max: 100,                   // 最大值 precision: 0,               // 小数精度,默认为0,无小数点 splitNumber: 10,             // 分割段数,默认为5 axisLine: {            // 坐标轴线 show: true,        // 默认显示,属性show控制显示与否 lineStyle: {       // 属性lineStyle控制线条样式 color: color, width: 28 } }, axisTick: {            // 坐标轴小标记 show: true,        // 属性show控制显示与否,默认不显示 splitNumber: 5,    // 每份split细分多少段 length :8,         // 属性length控制线长 lineStyle: {       // 属性lineStyle控制线条样式 color: '#eee', width: 1, type: 'solid' } }, axisLabel: {           // 坐标轴文本标签,详见axis.axisLabel show: true, formatter: function(v){ switch (v+''){ case '10': return '弱'; case '30': return '低'; case '60': return '中'; case '90': return '高'; default: return ''; } }, textStyle: {       // 其余属性默认使用全局文本样式,详见TEXTSTYLE color: '#333', fontSize : 10 } }, splitLine: {           // 分隔线 show: true,        // 默认显示,属性show控制显示与否 length :13,         // 属性length控制线长 lineStyle: {       // 属性lineStyle(详见lineStyle)控制线条样式 color: '#eee', width: 2, type: 'solid' } }, pointer : { length : '80%', width : 8, color : 'auto' }, title : { show : true, offsetCenter: ['-75%', -10],       // x, y,单位px textStyle: {       // 其余属性默认使用全局文本样式,详见TEXTSTYLE color: '#333', fontSize : 14 } }, detail : { show : true, backgroundColor: 'rgba(0,0,0,0)', borderWidth: 0, borderColor: '#ccc', width: 0, height:0, offsetCenter: ['-70%', 10],       // x, y,单位px formatter:'{value}%', textStyle: {       // 其余属性默认使用全局文本样式,详见TEXTSTYLE color: 'auto', fontSize : 26 } }, data:[{value:data, name: name}] } ] }; myChart.setOption(option); } /** * myChart:实例化对象 name:图名, var color = [[0.4, '#2EC7C9'], [0.7, '#5AB1EF'], [1, '#D87A80']]; var data = [{value: 50, name: 'cpu温度'}]; * */ //加载仪表盘2 function getGaugeEcharts(myChart,name,data,color){ var option = { tooltip : { formatter: "{a}
{b} : {c}℃" }, toolbox: toolbox, series: [ { name: name, type: 'gauge', radius:'90%', axisLabel:{ distance:-20 }, axisLine: { // 坐标轴线 lineStyle: { // 属性lineStyle控制线条样式 color: color, width:10 } }, detail: {formatter:'{value}℃'}, data: data } ] }; myChart.setOption(option); } //加载三环形图 function gaugeEchart3(myChart,text,name,color,value,data){ var total = value[0] * 2; var placeHolderStyle = { normal: { label: { show: false, }, labelLine: { show: false, } } }; var option={ title : { text: text,//主标题 subtext: data,//副标题 textStyle: {//主标题样式 fontWeight: 'bold', fontSize: 14 }, subtextStyle: {//副标题样式 fontSize: 20, fontWeight: 'bold', }, left:'center', top: 'middle' }, tooltip: { show: true, trigger: 'item',//提示框触发类型,item数据项图形触发,主要应用于无类目轴的图表(散点图、饼形图等) formatter: function(params, ticket, callback) {//第一个参数数据集、第二个参数是异步回调标志、第三个参数是异步回调 return params.seriesName + ": " + params.value + "G";//系列名称:数据值 } }, toolbox: toolbox, color:color,//调色盘颜色列表,默认情况下图例和饼形环图颜色使用 legend: { top: "44px", left: "50%", itemHeight: 20,//图例的高度 data: name,//图例的数据数组 selectedMode: true,//图例选择模式 orient: "vertical"//图例布局方式 }, series: [ { name: name[0], type: 'pie', clockWise: false, //顺时加载 hoverAnimation: false, //鼠标移入变大 radius: [100, 120], itemStyle: placeHolderStyle, label: { normal: { show: false, } }, data: [{ value: value[0], itemStyle: { normal: { color: color[0] } } }, { value: total-value[0], itemStyle: { normal: { color: 'transparent' } } }] }, { name: name[1], type: 'pie', clockWise: false, //顺时加载 hoverAnimation: false, //鼠标移入变大 radius: [80, 100], itemStyle: placeHolderStyle, data: [{ value: value[1], itemStyle: { normal: { color: color[1] } } }, { value: total-value[1], itemStyle: { normal: { color: 'transparent' } } }] }, { name: name[2], type: 'pie', clockWise: false, //顺时加载 hoverAnimation: false, //鼠标移入变大 radius: [60, 80], itemStyle: placeHolderStyle, data: [{ value: value[2], itemStyle: { normal: { color: color[2] } } }, { value: total-value[2], itemStyle: { normal: { color: 'transparent' } } }] }] }; myChart.setOption(option); }