| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807 |
- 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('<span class="chked"></span>');
- }
- });
- });
- 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} <br/>{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 +='<ul class="list-wrapper" onclick="queryProDistribution(\''+value.pid+'\')">';
- htmlStr +='<li class="pro-title">'+value.pName+'</li>';
- htmlStr +='<li class="pro-bar" style="width: '+widthVal+'%;"></li>';
- htmlStr +='</ul>';
- });
- $("#pros").html(htmlStr);
- }
- function queryProDistribution(pid){
- $("#pid").val(pid);
- handleAjaxSimple("distributionStatsController.do?distributionStatsData", $("#statsForm").serialize(), distributionhandleSuccess);
- }
- //var loadingimgstr = $('<div id="loadingimagediv"><img id="loadingimg" src="../img/zxLoading.gif" /><p style="margin-left: -34px;">数据加载中,请稍等...</p></div>');
- var loadingimgstr = "";
- var masklayerstr = $('<div id="masklayer"></div>');
- /**
- * 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("<br/><center>服务器连接异常,请稍后重试!</center>");
- }else{
- if(XMLHttpRequest.status==205){
- $.messager.confirm('提示', '<br/><center>登录超时,请重新登录</center>', function(ok) {
- if (ok) {
- window.location.reload();
- }
- });
- } else {
- layer.alert("<center>操作失败</center>");
- }
- }
- 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();
- }
- }
|