wageStats.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425
  1. var myChart = echarts.init(document.getElementById('attendanceStatsChar'),'walden');
  2. var myChart2 = echarts.init(document.getElementById('attendanceStatsChar2'),'walden');
  3. option = {
  4. color: ['#3398DB'],
  5. tooltip: {
  6. trigger: 'axis'
  7. },
  8. grid:{
  9. left: '3%',
  10. right: '4%',
  11. bottom: '1%',
  12. containLabel: true
  13. },
  14. legend: {
  15. data:[],
  16. width:'90%',
  17. left:'center'
  18. },
  19. xAxis:
  20. {
  21. type: 'category',
  22. data: [],
  23. axisLabel: {
  24. interval: 0,
  25. formatter:function(value)
  26. {
  27. var ret = "";//拼接加\n返回的类目项
  28. var maxLength = 1;//每项显示文字个数
  29. var valLength = value.length;//X轴类目项的文字个数
  30. var rowN = Math.ceil(valLength / maxLength); //类目项需要换行的行数
  31. if (rowN > 1)//如果类目项的文字大于3,
  32. {
  33. for (var i = 0; i < rowN; i++) {
  34. var temp = "";//每次截取的字符串
  35. var start = i * maxLength;//开始截取的位置
  36. var end = start + maxLength;//结束截取的位置
  37. //这里也可以加一个是否是最后一行的判断,但是不加也没有影响,那就不加吧
  38. temp = value.substring(start, end) + "\n";
  39. ret += temp; //凭借最终的字符串
  40. }
  41. return ret;
  42. }
  43. else {
  44. return value;
  45. }
  46. }
  47. }
  48. },
  49. yAxis: [
  50. {
  51. type: 'value',
  52. name:'工资支出总金额(元)'
  53. }
  54. ],
  55. dataZoom: [
  56. {
  57. type: 'inside',
  58. start: 0,
  59. end: 100
  60. }
  61. ],
  62. series: [
  63. {
  64. name:'',
  65. type:'bar',
  66. data:[]
  67. }
  68. ]
  69. };
  70. option2 = {
  71. color: ['#3398DB'],
  72. tooltip: {
  73. trigger: 'axis'
  74. },
  75. grid:{
  76. left: '3%',
  77. right: '4%',
  78. bottom: '1%',
  79. containLabel: true
  80. },
  81. legend: {
  82. data:[],
  83. width:'90%',
  84. left:'center'
  85. },
  86. xAxis:
  87. {
  88. type: 'category',
  89. data: ['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月',],
  90. axisLabel: {
  91. interval: 0,
  92. formatter:function(value)
  93. {
  94. var ret = "";//拼接加\n返回的类目项
  95. var maxLength = 1;//每项显示文字个数
  96. var valLength = value.length;//X轴类目项的文字个数
  97. var rowN = Math.ceil(valLength / maxLength); //类目项需要换行的行数
  98. if (rowN > 1)//如果类目项的文字大于3,
  99. {
  100. for (var i = 0; i < rowN; i++) {
  101. var temp = "";//每次截取的字符串
  102. var start = i * maxLength;//开始截取的位置
  103. var end = start + maxLength;//结束截取的位置
  104. //这里也可以加一个是否是最后一行的判断,但是不加也没有影响,那就不加吧
  105. temp = value.substring(start, end) + "\n";
  106. ret += temp; //凭借最终的字符串
  107. }
  108. return ret;
  109. }
  110. else {
  111. return value;
  112. }
  113. }
  114. }
  115. },
  116. yAxis: [
  117. {
  118. type: 'value',
  119. name:'工资支出总金额(元)'
  120. }
  121. ],
  122. dataZoom: [
  123. {
  124. type: 'inside',
  125. start: 0,
  126. end: 100
  127. }
  128. ],
  129. series: [
  130. {
  131. name:'',
  132. type:'bar',
  133. data:[]
  134. }
  135. ]
  136. };
  137. $(function() {
  138. $(document).ready(function() {
  139. attendanceStatssearch();
  140. });
  141. });
  142. function attendanceStatssearch(){
  143. handleAjaxSimple("wageStatsController.do?wageStatsData", $("#attendanceStatsForm").serialize(), handleSuccess);
  144. }
  145. function handleSuccess(data){
  146. if(data.cdata.noData){
  147. $(".content").hide();
  148. $("#uptb").hide();
  149. $("#upbg").hide();
  150. $("#upexport").hide();
  151. $(".err-info").show();
  152. }else{
  153. $(".content").show();
  154. $(".err-info").hide();
  155. //$("#upBtn").show();
  156. $("#uptb").show();
  157. $("#upbg").show();
  158. var srcstr = $("#uptb").attr("src");
  159. if(srcstr.indexOf("tb1.png") < 0){
  160. $("#upexport").show();
  161. }
  162. var rolefalg = $("#roleFlag").val();
  163. var prostr;
  164. if(rolefalg == 1){
  165. prostr = '项目';
  166. }else{
  167. prostr = '部门';
  168. }
  169. var charheadStr;
  170. var attType = $("#attType").val();
  171. if(attType == 0 ){
  172. charheadStr =$("#curYear").val()+"年"+$("#attMonth").val()+"月各"+prostr+"工资费用";
  173. }else if(attType == 1){
  174. var attQuarters = $("#attQuarters").val();
  175. if(attQuarters == 1){
  176. charheadStr = $("#curYear").val()+"年一季度(01月-03月)各"+prostr+"工资费用";
  177. }else if(attQuarters == 2){
  178. charheadStr = $("#curYear").val()+"年二季度(04月-06月)各"+prostr+"工资费用";
  179. }else if(attQuarters == 3){
  180. charheadStr = $("#curYear").val()+"年三季度(07月-09月)各"+prostr+"工资费用";
  181. }else {
  182. charheadStr = $("#curYear").val()+"年四季度(10月-12月)各"+prostr+"工资费用";
  183. }
  184. }else if(attType == 2){
  185. charheadStr = $("#curYear").val()+"年度各"+prostr+"工资费用";
  186. }
  187. $("#upcharheaddiv").html(charheadStr);
  188. initCharDate(data.cdata);
  189. initNdateList(data.tdata);
  190. }
  191. }
  192. function initNdateList(data){
  193. var rolefalg = $("#roleFlag").val();
  194. var pjNamestr;
  195. var pidNamestr;
  196. if(rolefalg == 1){
  197. pjNamestr = '项目名称';
  198. pidNamestr='项目经理';
  199. }else{
  200. pjNamestr = '项目名称';
  201. pidNamestr='部门名称';
  202. }
  203. var attType = $("#attType").val();
  204. var peopleTotalStr;
  205. if(attType == 0 ){
  206. peopleTotalStr="当月工资总人数";
  207. }else{
  208. peopleTotalStr="每月工资平均人数";
  209. }
  210. var colums = [[
  211. {field:'pName',title:pjNamestr,width:150},
  212. {field:'pidName',title:pidNamestr,width:150},
  213. {field:'peopleTotal',title:peopleTotalStr,width:150 ,align:'right',halign:'center' },
  214. {field:'wagePayTotal',title:'工资支出总金额(元)',width:150 ,align:'right',halign:'center'}
  215. ]]
  216. $('#attendanceStatsTable').datagrid({
  217. singleSelect : true,
  218. loadMsg:'数据加载中,请稍后……',
  219. columns:colums,
  220. rownumbers:true,
  221. fitColumns:true
  222. }).datagrid('loadData',data);
  223. }
  224. function initCharDate(data){
  225. myChart.clear();
  226. option.xAxis.data = data.xAxisData;
  227. option.series = data.series;
  228. myChart.setOption(option);
  229. myChart.resize();
  230. }
  231. function showTabel(){
  232. $("#attendanceStatsChar").hide();
  233. $("#tablediv").show();
  234. $("#upexport").show();
  235. $("#uptb").attr("src","images/tb.png");
  236. $("#upbg").attr("src","images/bg1.png");
  237. //$("#attendanceStatsTable").datagrid("resize");
  238. var h=$(".content").height();
  239. $('#attendanceStatsTable').datagrid('resize', {
  240. height :h-50
  241. });
  242. }
  243. function showChar(){
  244. $("#tablediv").hide();
  245. $("#attendanceStatsChar").show();
  246. $("#upexport").hide();
  247. $("#uptb").attr("src","images/tb1.png");
  248. $("#upbg").attr("src","images/bg.png");
  249. myChart.resize();
  250. }
  251. myChart.on('click', function (params) {
  252. console.log(params);
  253. var rolefalg = $("#roleFlag").val();
  254. var attType = $("#attType").val();
  255. if(rolefalg == 1){
  256. $("#downcharheaddiv").html(params.name + "-"+$("#curYear").val()+"年01月~"+$("#curYear").val()+"年12月工资费用趋势变化");
  257. $("#upcharheaddiv2").html($("#curYear").val()+"年度项目工资费用");
  258. if(attType == 2){
  259. var data ={
  260. "attYear" : $("#curYear").val(),
  261. "pid":params.data.id
  262. };
  263. handleAjaxSimple("wageStatsController.do?wageYearInto", data, showDownChar);
  264. }
  265. }else{
  266. $("#downcharheaddiv").html($("#pid").find("option:selected").text()+"-"+$("#curYear").val()+"年"+$("#attMonth").val()+"月"+params.name+"人员工资费用");
  267. if(attType == 0){
  268. var data = {
  269. "attYear" : $("#curYear").val(),
  270. "attMonth" : $("#attMonth").val(),
  271. "pid":$("#pid").val(),
  272. "did":params.data.id
  273. }
  274. handleAjaxSimple("wageStatsController.do?wageMonthInto", data, showDownChar);
  275. }
  276. }
  277. })
  278. function goBefore(){
  279. $("#attendanceStatsChar2").css("display","none");
  280. $("#tablediv2").hide();
  281. $("#searchColums").show();
  282. $("#downcharhead").hide();
  283. $("#attendanceStatsChar").show();
  284. $("#upcharhead").show();
  285. $("#upcharhead2").hide();
  286. $("#upBtn").show();
  287. $("#downBtn").hide();
  288. $("#downexport").hide();
  289. $("#downtb").attr("src","images/tb1.png");
  290. $("#downbg").attr("src","images/bg.png");
  291. myChart.resize();
  292. }
  293. //显示下钻图表
  294. function showDownChar(data){
  295. $("#attendanceStatsChar").css("display","none");
  296. $("#attendanceStatsChar2").show();
  297. $("#upBtn").hide();
  298. $("#downBtn").show();
  299. $("#searchColums").hide();
  300. $("#downcharhead").show();
  301. $("#upcharhead").hide();
  302. $("#upcharhead2").show();
  303. $("#yearspan2").html($("#curYear").val());
  304. initDownCharDate(data.cdata);
  305. initDownTabDate(data.tdata);
  306. }
  307. function initDownCharDate(data){
  308. myChart2.clear();
  309. option2.xAxis.data = data.xAxisData;
  310. option2.series = data.series;
  311. myChart2.setOption(option2);
  312. myChart2.resize();
  313. }
  314. function initDownTabDate(data){
  315. var attType = $("#attType").val();
  316. var peopleTotalStr;
  317. if(attType == 0 ){
  318. peopleTotalStr="当月工资总人数";
  319. }else{
  320. peopleTotalStr="每月工资平均人数";
  321. }
  322. var rolefalg = $("#roleFlag").val();
  323. var pjNamestr;
  324. var pidNamestr;
  325. var userNameField;
  326. var colums ;
  327. if(rolefalg == 1){
  328. colums = [[
  329. {field:'yearMonth',title:'日期范围',width:150},
  330. {field:'pName',title:'项目名称',width:150},
  331. {field:'pidName',title:'项目经理',width:150},
  332. {field:'peopleTotal',title:peopleTotalStr,width:150 ,align:'right',halign:'center' },
  333. {field:'wagePayTotal',title:'工资支出总金额(元)',width:150 ,align:'right',halign:'center' }
  334. ]]
  335. }else{
  336. colums = [[
  337. {field:'pName',title:'项目名称',width:150},
  338. {field:'pidName',title:'部门名称',width:150},
  339. {field:'userName',title:'员工姓名',width:150},
  340. {field:'wagePayTotal',title:'工资支出总金额(元)',width:150}
  341. ]]
  342. }
  343. $('#attendanceStatsTable2').datagrid({
  344. singleSelect : true,
  345. loadMsg:'数据加载中,请稍后……',
  346. columns:colums,
  347. rownumbers:true,
  348. fitColumns:true
  349. }).datagrid('loadData',data);
  350. }
  351. function showDownTabelBtn(){
  352. $("#attendanceStatsChar2").hide();
  353. $("#tablediv2").show();
  354. $("#downexport").show();
  355. $("#downtb").attr("src","images/tb.png");
  356. $("#downbg").attr("src","images/bg1.png");
  357. //$("#attendanceStatsTable2").datagrid("resize");
  358. var h=$(".content").height();
  359. $('#attendanceStatsTable2').datagrid('resize', {
  360. height :h-50
  361. });
  362. }
  363. function showDownCharBtn(){
  364. $("#tablediv2").hide();
  365. $("#downexport").hide();
  366. $("#downtb").attr("src","images/tb1.png");
  367. $("#downbg").attr("src","images/bg.png");
  368. $("#attendanceStatsChar2").show();
  369. myChart2.resize();
  370. }
  371. function exportExcel(flag){
  372. var opts;
  373. if(flag == 1){
  374. opts = $('#attendanceStatsTable').datagrid('getColumnFields'); //这是获取到所有的FIELD
  375. }else{
  376. opts = $('#attendanceStatsTable2').datagrid('getColumnFields'); //这是获取到所有的FIELD
  377. }
  378. var exceltitles=[];
  379. for(i=0;i<opts.length;i++)
  380. {
  381. //var col = $('div[class$="'+opts[i]+'"] :not(.datagrid-sort-icon)').html();
  382. var col = $('td[field="'+opts[i]+'"] div :not(.datagrid-sort-icon)').html();
  383. exceltitles.push(col);//把TITLEPUSH到数组里去
  384. }
  385. var formdom = '<form method="post" id="formdom" action="wageStatsController.do?exportExcel"><input name="flag" value="'+flag+'" /><input name="exceltitles" value="'+exceltitles+'" /><input name="exceltitleIds" value="'+opts+'" /></form>';
  386. $("#export").html(formdom);
  387. $("#formdom").submit();
  388. }