assess_ranking.js 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249
  1. $(function(){
  2. // 道管中心选择变化
  3. $("#center-manager").change(function(){
  4. $("#fsList").empty();
  5. if(GV(this)!=''){
  6. getFsStationList(GV(this),function(options){
  7. $("#fsList").append(options);
  8. });
  9. }
  10. })
  11. // end
  12. })
  13. function queryEmpClick(){
  14. //每次点击前清空表格数据
  15. $(".table-tbody").empty('');
  16. var start_date = $("#start-time").val();
  17. var end_date = $("#end-time").val();
  18. var start_score = $("#start-score").val();
  19. var end_score = $("#end-score").val();
  20. var flag = param_method(start_score,end_score);
  21. if(flag==false){
  22. return;
  23. }
  24. if( start_date=='' || end_date==''){
  25. tip("请选择起止日期");
  26. return;
  27. }else{
  28. start_date += " 23:00:00";
  29. end_date += " 23:00:00";
  30. }
  31. var startStr = start_date.replace(/-/g, '/');
  32. var endStr = end_date.replace(/-/g, '/');
  33. var start = new Date(startStr);
  34. var end = new Date(endStr);
  35. if(start>end){
  36. tip("开始时间不能比结束时间大");
  37. return;
  38. }
  39. var param = {
  40. "parent_dept_id":GV("#center-manager"),
  41. "dept_id": GV("#fsList"),
  42. "start_date": start_date,
  43. "end_date": end_date,
  44. }
  45. var url = "statistics/employee/order";
  46. getEmployeeInfosClick(url,param,start_score,end_score)
  47. }
  48. function initQueryEmp(){
  49. //默认初始化前一周查所有
  50. var endD = new Date();
  51. var now = new Date();
  52. var startD = new Date(now.getTime() - 7 * 24 * 3600 * 1000);
  53. var start_time = startD.getFullYear()+"-"+(startD.getMonth()+1)+"-"+startD.getDate();
  54. var end_time = endD.getFullYear()+"-"+(endD.getMonth()+1)+"-"+endD.getDate();
  55. var start_score = $("#start-score").val();
  56. var end_score = $("#end-score").val();
  57. setJobSelect("#jobSelect");
  58. //默认初始化时间页面回显
  59. $("#start-time").val(start_time);
  60. $("#end-time").val(end_time);
  61. var start_date = start_time+" 23:00:00";
  62. var end_date = end_time+" 23:00:00";
  63. var param = {
  64. "start_date": start_date,
  65. "end_date": end_date,
  66. }
  67. var url = "statistics/employee/order";
  68. getEmployeeInfosClick(url,param,start_score,end_score);
  69. }
  70. /**
  71. * click
  72. * @param {*} url
  73. * @param {*} param
  74. */
  75. function getEmployeeInfosClick(url,param,start_score,end_score){
  76. post_common_service( url,param,function(data){
  77. var strTbody='';
  78. var count=0;
  79. for(var i=0;i<data.length;i++){
  80. var score = 1000-filterByZeroHandle(average(data[i]).toFixed(2),'0');
  81. var flag = judgeParamFilter(data, i,score, start_score,end_score)
  82. if(flag){
  83. strTbody+="<tr><td width='4%;'>"+(count+1)+"</td><td width='6%;'>"+data[i].user.fee_station_name+"</td>"
  84. +"<td width='6%;'>"+data[i].user.truename+"</td><td width='6%;'>"+data[i].user.position_name+"</td>"
  85. +"<td width='6%;'>"+data[i].user.workno+"</td><td width='4%;'>"+data[i].company_ranking+"</td>"
  86. +"<td width='4%;'>"+data[i].center_ranking+"</td><td width='4%;'>"+data[i].fee_station_ranking
  87. +"</td><td width='4%;'>"+ getItemScore(data[i], '环境') +"</td>"
  88. +"<td width='4%;'>"+getItemScore(data[i], '仪容仪表')+"</td><td width='4%;'>"+getItemScore(data[i], '表情')+"</td>"
  89. +"<td width='4%;'>"+getItemScore(data[i], '动作')+"</td><td width='4%;'>"+getItemScore(data[i], '文明用语')+"</td>"
  90. +"<td width='4%;'>"+ getItemScore(data[i], '工作纪律') +"</td><td width='4%'>"+getItemScore(data[i], '便民服务')+"</td><td width='4%;'>"
  91. +getItemScore(data[i], '安全管理')+"</td><td width='4%;'>"+data[i].check_all_score+"</td>"
  92. +"<td width='4%;'>"+filter(data[i].checked_num,'0')+"</td><td width='4%;'>"+filterSlash(filterByZeroHandle(average(data[i]).toFixed(2),'0'),filter(data[i].checked_num,'0'))+"</td>"
  93. +"<td width='4%;'>"+filterSlash(score,filter(data[i].checked_num,'0'))+"</td><td width='4%;'>"+"</td><td width='4%;'>"+"</td></tr>";
  94. count++;
  95. }
  96. }
  97. $(".table-tbody").append(strTbody);
  98. },function(error){
  99. return "" ;
  100. });
  101. }
  102. /**
  103. * 对于受检次数为0,扣分和得分都为 /
  104. * @param {*} value , check_num 受此次数
  105. * @return value or /
  106. */
  107. function filterSlash(value,check_num){
  108. if(check_num == 0 ){
  109. return '/' ;
  110. }else{
  111. return value ;
  112. }
  113. }
  114. function judgeParamFilter(data,i,score, start_score,end_score){
  115. var flag1=false;
  116. if(score>=parseFloat(start_score) && score<=parseFloat(end_score)){
  117. flag1=true;
  118. }else{
  119. flag1=false;
  120. }
  121. var checkCount = $("#check_count").val();
  122. if(checkCount){
  123. if(filter(data[i].checked_num,'0')==checkCount){
  124. flag2=true;
  125. }else{
  126. flag2=false;
  127. }
  128. }else{
  129. flag2=true;
  130. }
  131. var jobSelect = $("#jobSelect").val();
  132. if(jobSelect){
  133. if(data[i].user.positionid==jobSelect){
  134. flag3=true;
  135. }else{
  136. flag3=false;
  137. }
  138. }else{
  139. flag3=true;
  140. }
  141. return flag1&flag2&flag3;
  142. }
  143. function average(obj){
  144. if(filter(obj.checked_num,'0') == 0){
  145. return 0 ;
  146. }else{
  147. return obj.check_all_score / filter(obj.checked_num,'1')
  148. }
  149. }
  150. /**
  151. * 过滤undefined
  152. * @param {*} value
  153. * @param {*} default_display_value
  154. */
  155. function filter(value , default_display_value){
  156. if(value!='' && value!=undefined ){
  157. return value ;
  158. }else if(default_display_value != undefined){
  159. return default_display_value ;
  160. }else{
  161. return "" ;
  162. }
  163. }
  164. /**
  165. * 获取扣分详情
  166. * @param {*} obj
  167. * @param {*} check_item_name
  168. */
  169. function getItemScore(obj, check_item_name){
  170. var names = obj.checked_socre_name ;
  171. var scores = obj.checked_score ;
  172. for(var i=0;i<names.length ;i++){
  173. if( names[i].indexOf(check_item_name) > -1){
  174. return scores[i] ;
  175. }
  176. }
  177. return 0 ;
  178. }
  179. /**
  180. * 过滤除数为0和保留二位小数时出现的0.00
  181. * @param {*} value
  182. * @param {*} default_display_value
  183. */
  184. function filterByZeroHandle(value , default_display_value){
  185. if(isNaN(value)){
  186. return default_display_value ;
  187. }else{
  188. if((value+'').endsWith('.00')){
  189. return value.substring(0,value.length-3);
  190. }
  191. return value ;
  192. }
  193. }
  194. function exportExcel(){
  195. var dept_id = $("#fsList").val();
  196. var start_date = $("#start-time").val();
  197. var end_date = $("#end-time").val();
  198. var start_score = $("#start-score").val();
  199. var end_score = $("#end-score").val();
  200. var flag = param_method(start_score,end_score);
  201. if(flag==false){
  202. return;
  203. }
  204. if( start_date=='' || end_date==''){
  205. tip("请选择起止日期");
  206. return ;
  207. }else{
  208. start_date += " 23:00:00";
  209. end_date += " 23:00:00";
  210. }
  211. window.open( getserveraddr() + "/file/employee/order?dept_id="+dept_id+
  212. "&start_date="+start_date+"&end_date="+end_date+"&start_score="+start_score+"&end_score="+end_score);
  213. }
  214. function param_method(start_score,end_score){
  215. if(start_score==''||end_score==''){
  216. tip("请输入得分区间");
  217. return false;
  218. }else if(!(/^[0-9]*$/).test(start_score) || !(/^[0-9]*$/).test(end_score)){
  219. tip("数字不合法!");
  220. return false;
  221. }else if(parseInt(start_score)>parseInt(end_score)){
  222. tip("开始得分不能比结束得分大");
  223. return false;
  224. }else if(start_score<0 || start_score>1000 || end_score<0 || end_score>1000){
  225. tip("得分只能在0-1000之间");
  226. return false;
  227. }else{
  228. return true;
  229. }
  230. }