charge_team_schedule.js 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279
  1. $(document).ready(function() {
  2. $("#main_content_title").html("收费人员排班")
  3. // 用户的dept_id
  4. var user_dept_id = '' ;
  5. // 收费小组type
  6. var team_type = 1 ;
  7. // 日期游标
  8. var date_cursor = 0 ;
  9. // var user = $.zui.store.get("user") ; // 缓存用户信息,取出dept_id
  10. // console.log(user);
  11. $('#calendar').calendar();
  12. var calendar = $('#calendar').data('zui.calendar');
  13. calendarInit();
  14. // 请求稽查人员排班数据
  15. function calendarInit(data_param){
  16. var data = {
  17. "dept_id": user_dept_id ,
  18. "start_time":getCurrentMonthFirst(),
  19. "end_time":getCurrentMonthLast(),
  20. 'type':team_type
  21. }
  22. if(data_param != undefined){
  23. data = data_param ;
  24. }
  25. getTeamClass(data,function(data){
  26. var newEvents = [];
  27. // 这里轮训给每天都增加一个事件
  28. var date = new Date();
  29. var end_date =new Date(getCurrentMonthLast2()) ;
  30. if(data_param != undefined){
  31. date = new Date(data_param.start_time);
  32. end_date = new Date(data_param.end_time) ;
  33. }
  34. for(var i =0;i<31;i++){
  35. if( date.setDate(i+1) <= end_date ){
  36. var obj = {id:-1 ,desc:'详细排班' ,title: '+详细排班', start:date.format('yyyy-MM-dd'), end: date.format('yyyy-MM-dd'),color:'#bd7b46'};
  37. newEvents.push(obj);
  38. }
  39. }
  40. // console.log(data);
  41. for(var i=0;i<data.length;i++){
  42. var obj = {id:data[i].id ,desc:data[i].team_name ,title: data[i].team_name+"-"+getTeamName(data[i].class_type), start: data[i].start_time, end: data[i].end_time};
  43. newEvents.push(obj);
  44. }
  45. calendar.addEvents(newEvents);
  46. })
  47. }
  48. // 获取排班信息
  49. function getTeamClass(data,_function){
  50. post_common_service( "teamClass/getClassList",data,function(data){
  51. _function(data);
  52. },function(error){
  53. return "" ;
  54. })
  55. }
  56. // 更新日历数据
  57. function updateCalendar(data){
  58. calendar.events = [];
  59. calendar.display();
  60. calendarInit(data);
  61. }
  62. // 当月第一天
  63. function getCurrentMonthFirst(){
  64. var date=new Date();
  65. date.setDate(1);
  66. return date.toLocaleDateString()+" 00:00:00";
  67. }
  68. // 当月最后一天
  69. function getCurrentMonthLast(){
  70. var date=new Date();
  71. var currentMonth=date.getMonth();
  72. var nextMonth=++currentMonth;
  73. var nextMonthFirstDay=new Date(date.getFullYear(),nextMonth,1);
  74. var oneDay=1000*60*60*24;
  75. return new Date(nextMonthFirstDay-oneDay).toLocaleDateString()+" 00:00:00";
  76. }
  77. // 当月最后一天
  78. function getCurrentMonthLast2(){
  79. var date=new Date();
  80. var currentMonth=date.getMonth();
  81. var nextMonth=++currentMonth;
  82. var nextMonthFirstDay=new Date(date.getFullYear(),nextMonth,1);
  83. var oneDay=1000*60*60*24;
  84. return new Date(nextMonthFirstDay-oneDay).toLocaleDateString()+" 23:59:00";
  85. }
  86. // 上一个月或者下个月的第一天或者最后一天
  87. function getMonthByCondition(pre_or_after,first_or_last){
  88. if(first_or_last == 'first'){
  89. var date=new Date();
  90. date.setDate(1);
  91. date.setMonth(date.getMonth()+pre_or_after);
  92. return date;
  93. }else if(first_or_last == 'last'){
  94. var date = new Date();
  95. var currentMonth=date.getMonth();
  96. var nextMonth=++currentMonth;
  97. var nextMonthFirstDay=new Date(date.getFullYear(),nextMonth,1);
  98. var oneDay=1000*60*60*24;
  99. date = new Date(nextMonthFirstDay-oneDay);
  100. date.setMonth(date.getMonth()+pre_or_after);
  101. return date ;
  102. }
  103. }
  104. $('#calendar').calendar().on("clickEvent.zui.calendar", function(event) {
  105. // console.log(event。event.id);
  106. if(event.event.id == -1){
  107. // 这边负责添加整个页面的数据 按车道排班
  108. $('#add_fee_station').modal();
  109. }else{
  110. click_function(event.event.start);
  111. }
  112. });
  113. /**
  114. * 点击日历触发函数
  115. */
  116. function click_function(date){
  117. setAddTermTitle(date.format("yyyy-MM-dd"));
  118. // 保存当前日期
  119. $("#save_term_class").data("date",date.format("yyyy-MM-dd"));
  120. var data = {
  121. "dept_id": user_dept_id ,
  122. "start_time":date.format("yyyy-MM-dd 00:00:00"),
  123. "end_time": date.format("yyyy-MM-dd 00:00:00"),
  124. 'type':team_type
  125. }
  126. getTeamClass(data,function(data){
  127. for(var i=0;i<$("select[id*='_term']").length;i++){
  128. $("select[id*='_term']").eq(i).val("");
  129. }
  130. if(data.length > 0){
  131. $("#save_term_class").data("modify_flag",1);
  132. for(var i=0;i<data.length;i++){
  133. $(".class_team_"+data[i].class_type).val(data[i].team_id);
  134. }
  135. }else{
  136. $("#save_term_class").data("modify_flag",0);
  137. }
  138. $('#myModal').modal();
  139. })
  140. }
  141. $('#calendar').calendar().on("clickCell.zui.calendar", function(event) {
  142. // console.log(event);
  143. click_function(event.date);
  144. });
  145. // 下一个日期
  146. $('#calendar').calendar().on("clickNextBtn.zui.calendar", function(event) {
  147. // console.log(event);
  148. date_cursor++ ;
  149. var data = {
  150. "dept_id": user_dept_id ,
  151. "start_time":getMonthByCondition(date_cursor,'first').format("yyyy-MM-dd 00:00:00"),
  152. "end_time": getMonthByCondition(date_cursor,'last').format("yyyy-MM-dd 00:00:00"),
  153. 'type':team_type
  154. }
  155. updateCalendar(data);
  156. });
  157. // 上一个日期
  158. $('#calendar').calendar().on("clickPrevBtn.zui.calendar", function(event) {
  159. date_cursor-- ;
  160. var data = {
  161. "dept_id": user_dept_id ,
  162. "start_time":getMonthByCondition(date_cursor,'first').format("yyyy-MM-dd 00:00:00"),
  163. "end_time": getMonthByCondition(date_cursor,'last').format("yyyy-MM-dd 00:00:00"),
  164. 'type':team_type
  165. }
  166. updateCalendar(data);
  167. });
  168. // 今天
  169. $('#calendar').calendar().on("clickTodayBtn.zui.calendar", function(event) {
  170. // console.log(event);
  171. date_cursor = 0 ;
  172. calendarInit();
  173. });
  174. $("#save_term_class").click(function(){
  175. var data = [];
  176. for(var i=0;i<$("select[id*='_term']").length;i++){
  177. if($("select[id*='_term']").eq(i).val()!=""){
  178. var obj = {
  179. "class_type":i+1,
  180. "team_id":$("select[id*='_term']").eq(i).val(),
  181. "work_date": $("#save_term_class").data("date")+" 00:00:00",
  182. "start_time": $("#save_term_class").data("date")+" 00:00:00",
  183. "end_time": $("#save_term_class").data("date")+" 00:00:00",
  184. "dept_id":user_dept_id
  185. };
  186. data.push(obj);
  187. }
  188. }
  189. if(data.length == 0 ){
  190. tip("请增加排班!");
  191. return ;
  192. }
  193. if( $("#save_term_class").data("modify_flag") != 1){
  194. post_common_service("teamClass/add/list",data,function(data){
  195. updateCalendar();
  196. $('#myModal').modal('hide');
  197. },function(error){
  198. $('#myModal').modal('hide');
  199. })
  200. }else{
  201. post_common_service("teamClass/update/list",data,function(data){
  202. updateCalendar();
  203. $('#myModal').modal('hide');
  204. },function(error){
  205. $('#myModal').modal('hide');
  206. })
  207. }
  208. })
  209. $("#close_btn").click(function(){
  210. $('#myModal').modal('hide');
  211. })
  212. // 获取部门为1的班组信息
  213. getTermClass(user_dept_id);
  214. // 获取班组信息
  215. function getTermClass(dept_id){
  216. var data = {
  217. 'dept_id':dept_id ,
  218. 'type':team_type
  219. }
  220. post_common_service( "team/getTeamByDeptId/1/50",data,function(data){
  221. for(var i=0;i<data.list.length;i++){
  222. $("#mooring_term,#middle_term,#night_term,#all_term").append("<option value='"+data.list[i].id+"'>"+data.list[i].name +"</option>")
  223. }
  224. },function(error){})
  225. }
  226. })
  227. // 根据class_type 获取班次名称
  228. function getTeamName(class_type){
  229. if(class_type == 1){
  230. return "早班";
  231. }else if(class_type == 2){
  232. return "中班";
  233. }else if(class_type == 3){
  234. return "晚班";
  235. }else if(class_type == 4){
  236. return "全班";
  237. }
  238. }
  239. function setAddTermTitle(title){
  240. $(".modal-title").html("添加班组-"+title);
  241. }