define(['utils', 'api'], function (utils, api) { var modVars = { "chart": null }; function init() { //setUserName(); initCharts(); // 初始化图表实例 } function setUserName() { var option = { type: 'post', url: api.user.getSystemUser, success: function (ret) { if (ret.code === 200) { console.log(ret.obj); }else { layer.msg('code:' + ret.code + ' 信息: ' + ret.msg, {icon: 2}); } } }; utils.ajax(option); } /** * 初始化图表实例 * @author [刘耀填] * @date 2018/10/08 */ function initCharts() { modVars.chart = { "barChart": echarts.init($('#barChart')[0], 'shine'), "stackedLineChart": echarts.init($('#lineChart')[0], 'shine'), "pieChart": echarts.init($('#pieChart')[0], 'shine') }; // ECharts图表在div尺寸变化时的自适应 window.onresize = function(){ modVars.chart.barChart.resize(); modVars.chart.stackedLineChart.resize(); modVars.chart.pieChart.resize(); }; getChartsData(); // 获取所有图表的数据 } /** * 获取所有图表的数据 * @author [刘耀填] * @date 2018/10/08 */ function getChartsData() { function successFun(ret) { if (ret.code === 200) { var obj = ret.obj; renderCharts(obj); } else { layer.msg("首页数据获取失败!"); } } /*var option = { url: api.home.getHomePageStatistics, success: successFun }; utils.ajax(option);*/ $.getJSON("../../js/model/home/content.json", "", successFun); } /** * 渲染图表 * @author [刘耀填] * @date 2018/10/08 */ function renderCharts(data) { $('#userCount').html(data.userCount); // 总用户数 $('#monthloginCount').html(data.monthloginCount); // 本月登录用户数 $('#dayloginCount').html(data.dayloginCount); // 今日登录用户数 $('#loginTotalCount').html(data.loginTotalCount); // 总登录次数 // 数字从低到高动态累加 $('.counter').counterUp({ delay: 100, time: 1200 }); $('#appTotalCount').html(data.appTotalCount); // 总应用数量 renderBar(data.activiUserRanking); // 渲染柱状图(活跃用户排行榜) renderStackedLine(data.appRateRanking); // 渲染堆叠折线图(系统使用频率分析) renderPie(data.appRateStatistic); // 渲染圆饼图(每个应用登录次数) } /** * 渲染柱状图(活跃用户排行榜) * @author [刘耀填] * @date 2018/10/08 */ function renderBar(barData) { var one = barData[0].loginCount, two = barData[1].userCount, ranking = barData[2].ranking; // 排行榜数据 var xAxisData = [], // x轴上的类别 oneData = [], twoData = []; // 获取状元,榜眼,探花每个月的登录次数 for (monthName in one) { if (one.hasOwnProperty(monthName)) { xAxisData.push(monthName); var oneItem = (one[monthName] === 0) ? 0 : one[monthName]; oneData.push(oneItem); var twoItem = (two[monthName] === 0) ? 0 : two[monthName]; twoData.push(twoItem); } } // 获取当前月的状元,榜眼,探花 (短路&&) ranking.one && $('#first').html(ranking.one.username); ranking.two && $('#second').html(ranking.two.username); ranking.three && $('#third').html(ranking.three.username); // 配置项:用于控制条形柱顶部显示数量,或文字等 var itemStyle = { normal: { label: { show: false, // 不显示(暂时) position: 'top', // 在上方显示 textStyle: { // 数值样式 color: 'black', fontSize: 14 }, formatter: function (param) { if (param.value === 0) { return ''; } else { return param.data.username; } } } } }; var option = { tooltip: { trigger: 'axis', axisPointer: { // 坐标轴指示器,坐标轴触发有效 type: 'shadow' // 默认为直线,可选为:'line' | 'shadow' } }, // 自定义tooltip显示 // formatter: function (params) { // var res = params[0].name; // res += '
' + params[0].marker + '状元: | ' + params[0].data.username + ' |
' + params[1].marker + '榜眼: | ' + params[1].data.username + ' |
' + params[2].marker + '探花: | ' + params[2].data.username + ' |