taskstats-org.js 14 KB

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