if(document.getElementById('kqtj') != null){ var myChart1 = echarts.init(document.getElementById('kqtj'),'walden'); } if(document.getElementById('gztj') != null){ var myChart2 = echarts.init(document.getElementById('gztj'),'walden'); } if(document.getElementById('rytj') != null){ var myChart3 = echarts.init(document.getElementById('rytj'),'walden'); } if(document.getElementById('jbtj')!= null){ var myChart4 = echarts.init(document.getElementById('jbtj'),'walden'); } if(document.getElementById('gwrl') != null){ var myChart5 = echarts.init(document.getElementById('gwrl'),'walden'); } //考勤调整时长 if(document.getElementById('kqtzsc') != null){ var myChart6 = echarts.init(document.getElementById('kqtzsc'),'walden'); } //考勤调整次数 if(document.getElementById('kqtzcs') != null){ var myChart7 = echarts.init(document.getElementById('kqtzcs'),'walden'); } window.onresize = function(){ location.reload(); } $(function() { $(document).ready(function() { attendanceStatssearch(); var count = $(".board-def .chk .chked").length; var licount = $(".board-def").length; if(count == licount){ $(".all-opr .chk").html(''); } }); }); function attendanceStatssearch(){ if(document.getElementById('kqtj') != null){ handleAjaxSimple("attendanceStatsController.do?attendanceStatsData", $("#statsForm").serialize(), attendhandleSuccess); } if(document.getElementById('gztj') != null){ handleAjaxSimple("wageStatsController.do?wageStatsData", $("#statsForm").serialize(), wagehandleSuccess); } if(document.getElementById('rytj') != null){ handleAjaxSimple("userStatsController.do?userStatsData", $("#statsForm").serialize(), userhandleSuccess); } if(document.getElementById('jbtj')!= null){ handleAjaxSimple("overtimeStatsController.do?overtimeStatsData", $("#statsForm").serialize(), overtimehandleSuccess); } if(document.getElementById('gwrl') != null){ handleAjaxSimple("distributionStatsController.do?distributionStatsData", $("#statsForm").serialize(), distributionhandleSuccess); } //考勤调整排行统计看板 if(document.getElementById('kqtzsc') != null){ handleAjaxSimple("desktopRptController.do?getKaoQinTiaoZhengTime", $("#statsForm").serialize(), kaoqinTiaoZhengTimehandleSuccess); } //考勤调整次数排行看板 if(document.getElementById('kqtzcs') != null){ handleAjaxSimple("desktopRptController.do?getKaoQinTiaoZhengCount", $("#statsForm").serialize(), kaoqinTiaoZhengCounthandleSuccess); } } /** * 考勤统计 * @param data */ function attendhandleSuccess(data){ if(data.cdata.noData){ $("#kqtj").hide(); $("#kqtjerr").show(); }else{ $("#kqtj").show(); $("#kqtjerr").hide(); option = { color: ['#3398DB'], tooltip: { trigger: 'axis' }, grid:{ left: '3%', right: '4%', bottom: '3%', containLabel: true }, legend: { data:[], width:'90%', left:'center' }, xAxis: { type: 'category', data: [], axisLabel: { interval: 0, formatter:function(value) { var ret = "";//拼接加\n返回的类目项 var maxLength = 1;//每项显示文字个数 var valLength = value.length;//X轴类目项的文字个数 var rowN = Math.ceil(valLength / maxLength); //类目项需要换行的行数 if (rowN > 1)//如果类目项的文字大于3, { for (var i = 0; i < rowN; i++) { var temp = "";//每次截取的字符串 var start = i * maxLength;//开始截取的位置 var end = start + maxLength;//结束截取的位置 //这里也可以加一个是否是最后一行的判断,但是不加也没有影响,那就不加吧 temp = value.substring(start, end) + "\n"; ret += temp; //凭借最终的字符串 } return ret; } else { return value; } } } }, yAxis: [ { type: 'value', name:'出勤率(%)', axisLabel: { show: true, interval: 'auto', formatter: function (value, index) { return value+"%"; } //formatter: '{value} ' } } ], dataZoom: [ { type: 'inside', start: 0, end: 100 } ], series: [ { name:'', type:'bar', data:[] } ] }; myChart1.clear(); option.xAxis.data = data.cdata.xAxisData; option.series = data.cdata.series; myChart1.setOption(option); myChart1.resize(); } } /** * 工资统计 * @param data */ function wagehandleSuccess(data){ if(data.cdata.noData){ $("#gztj").hide(); $("#gztjerr").show(); }else{ $("#gztj").show(); $("#gztjerr").hide(); option = { color: ['#3398DB'], tooltip: { trigger: 'axis' }, grid:{ left: '3%', right: '4%', bottom: '3%', containLabel: true }, legend: { data:[], width:'90%', left:'center' }, xAxis: { type: 'category', data: [], axisLabel: { interval: 0, formatter:function(value) { var ret = "";//拼接加\n返回的类目项 var maxLength = 1;//每项显示文字个数 var valLength = value.length;//X轴类目项的文字个数 var rowN = Math.ceil(valLength / maxLength); //类目项需要换行的行数 if (rowN > 1)//如果类目项的文字大于3, { for (var i = 0; i < rowN; i++) { var temp = "";//每次截取的字符串 var start = i * maxLength;//开始截取的位置 var end = start + maxLength;//结束截取的位置 //这里也可以加一个是否是最后一行的判断,但是不加也没有影响,那就不加吧 temp = value.substring(start, end) + "\n"; ret += temp; //凭借最终的字符串 } return ret; } else { return value; } } } }, yAxis: [ { type: 'value', name:'工资支出总金额(元)' } ], dataZoom: [ { type: 'inside', start: 0, end: 100 } ], series: [ { name:'', type:'bar', data:[] } ] }; myChart2.clear(); option.xAxis.data = data.cdata.xAxisData; option.series = data.cdata.series; myChart2.setOption(option); myChart2.resize(); } } /** * 考勤调整时长排行榜 * @param data */ function kaoqinTiaoZhengTimehandleSuccess(data){ if(data.cdata.noData){ $("#kqtzsc").hide(); $("#kqtzscerr").show(); }else{ $("#kqtzsc").show(); $("#kqtzscerr").hide(); option = { color: ['#3398DB'], tooltip: { trigger: 'axis' }, grid:{ left: '3%', right: '4%', bottom: '1%', containLabel: true }, legend: { data:[], width:'90%', left:'center' }, xAxis: { type: 'category', data: [], axisLabel: { interval: 0, formatter:function(value) { var ret = "";//拼接加\n返回的类目项 var maxLength = 1;//每项显示文字个数 var valLength = value.length;//X轴类目项的文字个数 var rowN = Math.ceil(valLength / maxLength); //类目项需要换行的行数 if (rowN > 1)//如果类目项的文字大于3, { for (var i = 0; i < rowN; i++) { var temp = "";//每次截取的字符串 var start = i * maxLength;//开始截取的位置 var end = start + maxLength;//结束截取的位置 //这里也可以加一个是否是最后一行的判断,但是不加也没有影响,那就不加吧 temp = value.substring(start, end) + "\n"; ret += temp; //凭借最终的字符串 } return ret; } else { return value; } } } }, yAxis: [ { type: 'value', name:'考勤调整时长(分钟)' } ], dataZoom: [ { type: 'inside', start: 0, end: 100 } ], series: [ { name:'', type:'bar', data:[] } ] }; myChart6.clear(); option.xAxis.data = data.cdata.xAxisData; option.series = data.cdata.series; myChart6.setOption(option); myChart6.resize(); } } /** * 考勤调整时长排行榜 * @param data */ function kaoqinTiaoZhengCounthandleSuccess(data){ if(data.cdata.noData){ $("#kqtzcs").hide(); $("#kqtzcserr").show(); }else{ $("#kqtzcs").show(); $("#kqtzcserr").hide(); option = { color: ['#3398DB'], tooltip: { trigger: 'axis' }, grid:{ left: '3%', right: '4%', bottom: '1%', containLabel: true }, legend: { data:[], width:'90%', left:'center' }, xAxis: { type: 'category', data: [], axisLabel: { interval: 0, formatter:function(value) { var ret = "";//拼接加\n返回的类目项 var maxLength = 1;//每项显示文字个数 var valLength = value.length;//X轴类目项的文字个数 var rowN = Math.ceil(valLength / maxLength); //类目项需要换行的行数 if (rowN > 1)//如果类目项的文字大于3, { for (var i = 0; i < rowN; i++) { var temp = "";//每次截取的字符串 var start = i * maxLength;//开始截取的位置 var end = start + maxLength;//结束截取的位置 //这里也可以加一个是否是最后一行的判断,但是不加也没有影响,那就不加吧 temp = value.substring(start, end) + "\n"; ret += temp; //凭借最终的字符串 } return ret; } else { return value; } } } }, yAxis: [ { type: 'value', name:'考勤调整次数(次)' } ], dataZoom: [ { type: 'inside', start: 0, end: 100 } ], series: [ { name:'', type:'bar', data:[] } ] }; myChart7.clear(); option.xAxis.data = data.cdata.xAxisData; option.series = data.cdata.series; myChart7.setOption(option); myChart7.resize(); } } /** * 人员统计 * @param data */ function userhandleSuccess(data){ if(data.cdata.noData){ $("#rytj").hide(); $("#rytjerr").show(); }else{ $("#rytj").show(); $("#rytjerr").hide(); option = { color: ['#3398DB'], tooltip: { trigger: 'axis' }, grid:{ left: '3%', right: '4%', bottom: '3%', containLabel: true }, legend: { data:[], width:'90%', left:'center' }, xAxis: { type: 'category', data: [], axisLabel: { interval: 0, formatter:function(value) { var ret = "";//拼接加\n返回的类目项 var maxLength = 1;//每项显示文字个数 var valLength = value.length;//X轴类目项的文字个数 var rowN = Math.ceil(valLength / maxLength); //类目项需要换行的行数 if (rowN > 1)//如果类目项的文字大于3, { for (var i = 0; i < rowN; i++) { var temp = "";//每次截取的字符串 var start = i * maxLength;//开始截取的位置 var end = start + maxLength;//结束截取的位置 //这里也可以加一个是否是最后一行的判断,但是不加也没有影响,那就不加吧 temp = value.substring(start, end) + "\n"; ret += temp; //凭借最终的字符串 } return ret; } else { return value; } } } }, yAxis: [ { type: 'value', name:'员工流动比例(%)', axisLabel: { show: true, interval: 'auto', formatter: function (value, index) { return value+"%"; } //formatter: '{value} ' } } ], dataZoom: [ { type: 'inside', start: 0, end: 100 } ], series: [ { name:'', type:'bar', data:[] } ] }; myChart3.clear(); option.xAxis.data = data.cdata.xAxisData; option.series = data.cdata.series; myChart3.setOption(option); myChart3.resize(); } } /** * 加班统计 * @param data */ function overtimehandleSuccess(data){ if(data.cdata.noData){ $("#jbtj").hide(); $("#jbtjerr").show(); }else{ $("#jbtj").show(); $("#jbtjerr").hide(); option = { tooltip: { trigger: 'axis' }, grid:{ left: '3%', right: '4%', bottom: '3%', containLabel: true }, legend: { data:['加班工时(H)','加班费用(元)'], width:'90%', left:'left' }, xAxis: { type: 'category', data: [], axisLabel: { interval: 0, formatter:function(value) { var ret = "";//拼接加\n返回的类目项 var maxLength = 1;//每项显示文字个数 var valLength = value.length;//X轴类目项的文字个数 var rowN = Math.ceil(valLength / maxLength); //类目项需要换行的行数 if (rowN > 1)//如果类目项的文字大于3, { for (var i = 0; i < rowN; i++) { var temp = "";//每次截取的字符串 var start = i * maxLength;//开始截取的位置 var end = start + maxLength;//结束截取的位置 //这里也可以加一个是否是最后一行的判断,但是不加也没有影响,那就不加吧 temp = value.substring(start, end) + "\n"; ret += temp; //凭借最终的字符串 } return ret; } else { return value; } } } }, yAxis: [ { type: 'value', name:'加班工时(H)', axisLabel: { formatter: '{value} H' } }, { type: 'value', name:'加班费用(元)', axisLabel: { formatter: '{value}元' } } ], dataZoom: [ { type: 'inside', start: 0, end: 100 } ], series: [ { name:'', type:'bar', data:[] } ] }; myChart4.clear(); option.xAxis.data = data.cdata.xAxisData; option.series = data.cdata.series; myChart4.setOption(option); myChart4.resize(); } } /** * 岗位人力统计 * @param data */ function distributionhandleSuccess(data){ if(data.cdata.noData){ $("#gwrl").hide(); $("#gwrl2").hide(); $("#gwrlerr").show(); }else{ $("#gwrl").show(); $("#gwrl2").show(); $("#gwrlerr").hide(); var centerArray = ['50%', '50%']; if(data.cdata.legend.length > 10){ centerArray = ['70%', '50%']; } myChart5.clear(); option = { tooltip: { trigger: 'item', formatter: "{a}
{b}: {c} ({d}%)" }, legend: { orient: 'vertical', x: 'left', right: '1px', bottom: '1%', top:'1%', data:data.cdata.legend }, series: [ { name:'', type:'pie', radius: ['50%', '70%'], center:centerArray, avoidLabelOverlap: false, label: { normal: { show: true, position:'center', formatter:function(){ return ' TOTAL\r\n'+data.totalPeople }, textStyle:{ fontSize: '20', fontWeight: 'bold' } }, emphasis: { show: false, textStyle: { fontSize: '20', fontWeight: 'bold' } } }, labelLine: { normal: { show: false } }, data:data.datamap } ] }; if($("#peopleNum").val()==""){ $("#peopleNum").val(data.totalPeople); } myChart5.setOption(option); myChart5.resize(); handleAjaxSimple("distributionStatsController.do?distributionStatsProsData", $("#statsForm").serialize(), distributionProshandleSuccess); } } function distributionProshandleSuccess(data){ var totalpeople = $("#peopleNum").val(); var htmlStr=""; $.each(data.projects, function(index, value, array) { var widthVal = value.peopleNum / totalpeople * 100 ; htmlStr +=''; }); $("#pros").html(htmlStr); } function queryProDistribution(pid){ $("#pid").val(pid); handleAjaxSimple("distributionStatsController.do?distributionStatsData", $("#statsForm").serialize(), distributionhandleSuccess); } //var loadingimgstr = $('

数据加载中,请稍等...

'); var loadingimgstr = ""; var masklayerstr = $('
'); /** * ajax 共通模块 * @param url 请求连接 * @param data 请求实体 * @param handleSuccess 成功后回调函数 * @param handleError 失败后回调函数 可不传入 * @param toggle 是否启用蒙版 默认值为true */ function handleAjaxSimple(url, data, handleSuccess, handleError,toggle) { var divtoggleflag = true; if (undefined == toggle || true == toggle || $.isFunction(toggle)) { divtoggleflag = true; } else { divtoggleflag = false; } $.ajax({ type : "post", url : url, data : data, dataType : "json", async : true, cache : false, beforeSend:function(){ if(divtoggleflag) { //divtoggle(true); } }, error: function(XMLHttpRequest, textStatus, errorThrown) { if($.isFunction(handleError)) { handleError(); } if(XMLHttpRequest.readyState==0){ layer.alert("
服务器连接异常,请稍后重试!
"); }else{ if(XMLHttpRequest.status==205){ $.messager.confirm('提示', '
登录超时,请重新登录
', function(ok) { if (ok) { window.location.reload(); } }); } else { layer.alert("
操作失败
"); } } if(divtoggleflag) { //divtoggle(false); } }, success : function(json) { handleSuccess(json); if(divtoggleflag) { //divtoggle(false); } } }); } function divtoggle(isshow){ if (isshow){ loadingimgstr.appendTo("body").show(); masklayerstr.appendTo("body").show(); }else{ loadingimgstr.remove(); masklayerstr.remove(); } }