charge_team_schedule.js 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400
  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. // console.log(data);
  28. for(var i=0;i<data.length;i++){
  29. 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};
  30. newEvents.push(obj);
  31. }
  32. // 这里轮训给每天都增加一个事件
  33. var date = new Date();
  34. var end_date =new Date(getCurrentMonthLast2()) ;
  35. if(data_param != undefined){
  36. date = new Date(data_param.start_time);
  37. end_date = new Date(data_param.end_time) ;
  38. }
  39. for(var i =0;i<31;i++){
  40. if( date.setDate(i+1) <= end_date ){
  41. var obj = {id:-1 ,desc:'详细排班' ,title: '+详细排班', start:date.format('yyyy-MM-dd'), end: date.format('yyyy-MM-dd'),color:'#bd7b46'};
  42. newEvents.push(obj);
  43. }
  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. getStation();
  57. var lans = 0;
  58. // 获取收费站信息
  59. function getStation(){
  60. get_common_service( "dept/getFsByDept","",function(data){
  61. if(data != null){
  62. $(".thread_charge").append("<th>"+data.name+"</th>");
  63. // $(".tr-1").append("<td>早班 6:00 - 12:00</td>");
  64. // $(".tr-2").append("<td>中班 12:00 - 20:00</td>");
  65. // $(".tr-3").append("<td>晚班 20:00 - 6:00</td>");
  66. lans = data.lanes_number;
  67. for(var i=0;i<data.lanes_number;i++){
  68. $(".thread_charge").append("<th>车道"+(i+1)+"</th>");
  69. }
  70. }
  71. },function(error){
  72. return "" ;
  73. })
  74. }
  75. // 更新日历数据
  76. function updateCalendar(data){
  77. calendar.events = [];
  78. calendar.display();
  79. calendarInit(data);
  80. }
  81. // 当月第一天
  82. function getCurrentMonthFirst(){
  83. var date=new Date();
  84. date.setDate(1);
  85. return date.toLocaleDateString()+" 00:00:00";
  86. }
  87. // 当月最后一天
  88. function getCurrentMonthLast(){
  89. var date=new Date();
  90. var currentMonth=date.getMonth();
  91. var nextMonth=++currentMonth;
  92. var nextMonthFirstDay=new Date(date.getFullYear(),nextMonth,1);
  93. var oneDay=1000*60*60*24;
  94. return new Date(nextMonthFirstDay-oneDay).toLocaleDateString()+" 00:00:00";
  95. }
  96. // 当月最后一天
  97. function getCurrentMonthLast2(){
  98. var date=new Date();
  99. var currentMonth=date.getMonth();
  100. var nextMonth=++currentMonth;
  101. var nextMonthFirstDay=new Date(date.getFullYear(),nextMonth,1);
  102. var oneDay=1000*60*60*24;
  103. return new Date(nextMonthFirstDay-oneDay).toLocaleDateString()+" 23:59:00";
  104. }
  105. // 上一个月或者下个月的第一天或者最后一天
  106. function getMonthByCondition(pre_or_after,first_or_last){
  107. if(first_or_last == 'first'){
  108. var date=new Date();
  109. date.setDate(1);
  110. date.setMonth(date.getMonth()+pre_or_after);
  111. return date;
  112. }else if(first_or_last == 'last'){
  113. var date = new Date();
  114. var currentMonth=date.getMonth();
  115. var nextMonth=++currentMonth;
  116. var nextMonthFirstDay=new Date(date.getFullYear(),nextMonth,1);
  117. var oneDay=1000*60*60*24;
  118. date = new Date(nextMonthFirstDay-oneDay);
  119. date.setMonth(date.getMonth()+pre_or_after);
  120. return date ;
  121. }
  122. }
  123. $("#save_user_class").click(function(){
  124. var dutyList = [];
  125. var work_date = $("#save_user_class").data("work_date");
  126. for(var j=1;j<4;j++){
  127. var cache = $(".tr-"+j).data("cache");
  128. for(var i=0;i<lans;i++){
  129. var obj = { "work_date":work_date,"dept_id":cache.dept_id,"user_id": $(".tr-"+j+" td select").eq(i).val() , "class_type":j,"team_id":cache.team_id,"start_time":work_date, "end_time":work_date,"lane":i+1 };
  130. dutyList.push(obj);
  131. }
  132. }
  133. post_common_service( "userClass/addList",dutyList,function(data){
  134. tip("添加成功");
  135. $('#add_fee_station').modal('hide');
  136. },function(error){
  137. return "" ;
  138. })
  139. })
  140. $('#calendar').calendar().on("clickEvent.zui.calendar", function(event) {
  141. // console.log(event。event.id);
  142. if(event.event.id == -1){
  143. // 这边负责添加整个页面的数据 按车道排班
  144. $('#add_fee_station').modal();
  145. $(".modal-title").html("收费站排班表-"+event.event.start.format("yyyy-MM-dd"));
  146. $("#save_user_class").data("work_date",event.event.start.format("yyyy-MM-dd 00:00:00"));
  147. var data = {
  148. "dept_id": user_dept_id ,
  149. "start_time":event.event.start.format("yyyy-MM-dd 00:00:00"),
  150. "end_time": event.event.start.format("yyyy-MM-dd 00:00:00"),
  151. 'type':team_type
  152. }
  153. post_common_service( "teamClass/getClassListAndUsers",data,function(data){
  154. $(".tr-1,.tr-2,.tr-3").empty();
  155. if(data.length ==0){
  156. $(".tr-1").append("<td>早班 6:00 - 12:00</td>");
  157. $(".tr-2").append("<td>中班 12:00 - 20:00</td>");
  158. $(".tr-3").append("<td>晚班 20:00 - 6:00</td>");
  159. for(var i=0;i<lans;i++){
  160. $(".tr-1,.tr-2,.tr-3").append("<td></td>");
  161. }
  162. }
  163. for(var i=0;i<data.length;i++){
  164. if(data[i].class_type == 1){
  165. $(".tr-1").data("cache",data[i]);
  166. $(".tr-1").append("<td>早班 6:00 - 12:00</td>");
  167. var selectv = "<select class='form-control'>"
  168. // console.log(data[i]);
  169. for(var j=0;j<data[i].users.length;j++){
  170. var obj = data[i].users[j];
  171. selectv += ("<option value='"+data[i].users[j].id+"'>"+ data[i].users[j].truename +"</option>");
  172. }
  173. selectv += "</select>";
  174. for(var z=0;z<lans;z++){
  175. $(".tr-1").append("<td>"+ selectv +"</td>")
  176. }
  177. }else if(data[i].class_type == 2){
  178. $(".tr-2").append("<td>中班 12:00 - 20:00</td>");
  179. $(".tr-2").data("cache",data[i]);
  180. var selectv2 = "<select class='form-control'>"
  181. for(var j=0;j<data[i].users.length;j++){
  182. if(data[i].users[j]!=null)
  183. selectv2 += ("<option value='"+data[i].users[j].id+"'>"+ data[i].users[j].truename +"</option>")
  184. }
  185. selectv2 += "</select>";
  186. for(var z=0;z<lans;z++){
  187. $(".tr-2").append("<td>"+ selectv2 +"</td>")
  188. }
  189. }else if(data[i].class_type == 3){
  190. $(".tr-3").append("<td>晚班 20:00 - 6:00</td>");
  191. $(".tr-3").data("cache",data[i]);
  192. var selectv3 = "<select class='form-control'>"
  193. for(var j=0;j<data[i].users.length;j++){
  194. if(data[i].users[j]!=null)
  195. selectv3 += "<option value='"+data[i].users[j].id+"'>"+ data[i].users[j].truename +"</option>"
  196. }
  197. selectv3 += "</select>";
  198. for(var z=0;z<lans;z++){
  199. $(".tr-3").append("<td>"+ selectv3 +"</td>")
  200. }
  201. }
  202. }
  203. },function(error){
  204. return "" ;
  205. })
  206. }else{
  207. click_function(event.event.start);
  208. }
  209. });
  210. /**
  211. * 点击日历触发函数
  212. */
  213. function click_function(date){
  214. setAddTermTitle(date.format("yyyy-MM-dd"));
  215. // 保存当前日期
  216. $("#save_term_class").data("date",date.format("yyyy-MM-dd"));
  217. var data = {
  218. "dept_id": user_dept_id ,
  219. "start_time":date.format("yyyy-MM-dd 00:00:00"),
  220. "end_time": date.format("yyyy-MM-dd 00:00:00"),
  221. 'type':team_type
  222. }
  223. getTeamClass(data,function(data){
  224. for(var i=0;i<$("select[id*='_term']").length;i++){
  225. $("select[id*='_term']").eq(i).val("");
  226. }
  227. if(data.length > 0){
  228. $("#save_term_class").data("modify_flag",1);
  229. for(var i=0;i<data.length;i++){
  230. $(".class_team_"+data[i].class_type).val(data[i].team_id);
  231. }
  232. }else{
  233. $("#save_term_class").data("modify_flag",0);
  234. }
  235. $('#myModal').modal();
  236. })
  237. }
  238. $('#calendar').calendar().on("clickCell.zui.calendar", function(event) {
  239. // console.log(event);
  240. click_function(event.date);
  241. });
  242. // 下一个日期
  243. $('#calendar').calendar().on("clickNextBtn.zui.calendar", function(event) {
  244. // console.log(event);
  245. date_cursor++ ;
  246. var data = {
  247. "dept_id": user_dept_id ,
  248. "start_time":getMonthByCondition(date_cursor,'first').format("yyyy-MM-dd 00:00:00"),
  249. "end_time": getMonthByCondition(date_cursor,'last').format("yyyy-MM-dd 00:00:00"),
  250. 'type':team_type
  251. }
  252. updateCalendar(data);
  253. });
  254. // 上一个日期
  255. $('#calendar').calendar().on("clickPrevBtn.zui.calendar", function(event) {
  256. date_cursor-- ;
  257. var data = {
  258. "dept_id": user_dept_id ,
  259. "start_time":getMonthByCondition(date_cursor,'first').format("yyyy-MM-dd 00:00:00"),
  260. "end_time": getMonthByCondition(date_cursor,'last').format("yyyy-MM-dd 00:00:00"),
  261. 'type':team_type
  262. }
  263. updateCalendar(data);
  264. });
  265. // 今天
  266. $('#calendar').calendar().on("clickTodayBtn.zui.calendar", function(event) {
  267. // console.log(event);
  268. date_cursor = 0 ;
  269. calendarInit();
  270. });
  271. $("#save_term_class").click(function(){
  272. var data = [];
  273. for(var i=0;i<$("select[id*='_term']").length;i++){
  274. if($("select[id*='_term']").eq(i).val()!=""){
  275. var obj = {
  276. "class_type":i+1,
  277. "team_id":$("select[id*='_term']").eq(i).val(),
  278. "work_date": $("#save_term_class").data("date")+" 00:00:00",
  279. "start_time": $("#save_term_class").data("date")+" 00:00:00",
  280. "end_time": $("#save_term_class").data("date")+" 00:00:00",
  281. "dept_id":user_dept_id
  282. };
  283. data.push(obj);
  284. }
  285. }
  286. if(data.length == 0 ){
  287. tip("请增加排班!");
  288. return ;
  289. }
  290. if( $("#save_term_class").data("modify_flag") != 1){
  291. post_common_service("teamClass/add/list",data,function(data){
  292. updateCalendar();
  293. $('#myModal').modal('hide');
  294. },function(error){
  295. $('#myModal').modal('hide');
  296. })
  297. }else{
  298. post_common_service("teamClass/update/list",data,function(data){
  299. updateCalendar();
  300. $('#myModal').modal('hide');
  301. },function(error){
  302. $('#myModal').modal('hide');
  303. })
  304. }
  305. })
  306. $(".close_btn").click(function(){
  307. $('#myModal,#add_fee_station').modal('hide');
  308. })
  309. // 获取部门为1的班组信息
  310. getTermClass(user_dept_id);
  311. // 获取班组信息
  312. function getTermClass(dept_id){
  313. var data = {
  314. 'dept_id':dept_id ,
  315. 'type':team_type
  316. }
  317. post_common_service( "team/getTeamByDeptId/1/50",data,function(data){
  318. for(var i=0;i<data.list.length;i++){
  319. $("#mooring_term,#middle_term,#night_term,#all_term").append("<option value='"+data.list[i].id+"'>"+data.list[i].name +"</option>")
  320. }
  321. },function(error){})
  322. }
  323. })
  324. // 根据class_type 获取班次名称
  325. function getTeamName(class_type){
  326. if(class_type == 1){
  327. return "早班";
  328. }else if(class_type == 2){
  329. return "中班";
  330. }else if(class_type == 3){
  331. return "晚班";
  332. }else if(class_type == 4){
  333. return "全班";
  334. }
  335. }
  336. function setAddTermTitle(title){
  337. $(".modal-title").html("添加班组-"+title);
  338. }