charge_team_schedule.js 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822
  1. // $(document).ready(function() {
  2. // initChargeTeamSchedule()
  3. // })
  4. var user_dept_id = null;
  5. function initChargeTeamSchedule() {
  6. // $("#main_content_title").html("收费人员排班")
  7. var user = $.zui.store.get("user"); // 缓存用户信息,取出dept_id
  8. // 用户的dept_id
  9. user_dept_id = user.organid;
  10. // 收费小组type
  11. var team_type = 1;
  12. // 日期游标
  13. var date_cursor = 0;
  14. $('#calendar').calendar();
  15. var calendar = $('#calendar').data('zui.calendar');
  16. calendarInit();
  17. // 请求收费人员排班数据
  18. function calendarInit(data_param) {
  19. var datap = {
  20. "dept_id": user_dept_id,
  21. "start_time": getMonthByCondition(date_cursor, 'first').Format("yyyy-MM-dd HH:mm:ss"), //getCurrentMonthFirst(),
  22. "end_time": getMonthByCondition(date_cursor, 'last').Format("yyyy-MM-dd HH:mm:ss"), //getCurrentMonthLast(),
  23. 'type': team_type
  24. }
  25. if (data_param != undefined) {
  26. datap = data_param;
  27. }
  28. getTeamClass(datap, function(data) {
  29. var newEvents = [];
  30. for (var i = 0; i < data.length; i++) {
  31. var obj = '';
  32. if (data[i].class_type == 1) {
  33. obj = { id: data[i].id, desc: data[i].team_name, title: data[i].team_name + "-" + getTeamName(data[i].class_type), start: data[i].end_time + ":02", end: data[i].end_time + ":03" };
  34. } else if (data[i].class_type == 2) {
  35. obj = { id: data[i].id, desc: data[i].team_name, title: data[i].team_name + "-" + getTeamName(data[i].class_type), start: data[i].end_time + ":01", end: data[i].end_time + ":02" };
  36. } else {
  37. obj = { id: data[i].id, desc: data[i].team_name, title: data[i].team_name + "-" + getTeamName(data[i].class_type), start: data[i].end_time + ":03", end: data[i].end_time + ":04" };
  38. }
  39. newEvents.push(obj);
  40. }
  41. // 这里轮训给每天都增加一个事件
  42. var date = getMonthByCondition(date_cursor, 'first'); //new Date();
  43. var end_date = getMonthByCondition(date_cursor, 'last'); //new Date(getCurrentMonthLast2()) ;
  44. if (data_param != undefined) {
  45. date = new Date(data_param.start_time);
  46. end_date = new Date(data_param.end_time);
  47. }
  48. for (var i = 0; i < 31; i++) {
  49. if (date.setDate(i + 1) < end_date) {
  50. var obj = { id: -1, desc: '详细排班', title: '+详细排班', start: date.Format('yyyy-MM-dd 00:00:05'), end: date.Format('yyyy-MM-dd 00:00:06'), color: '#bd7b46' };
  51. newEvents.push(obj);
  52. }
  53. }
  54. calendar.addEvents(newEvents);
  55. })
  56. }
  57. // 获取排班信息
  58. function getTeamClass(data, _function) {
  59. post_common_service("teamClass/getClassList", data, function(data) {
  60. _function(data);
  61. }, function(error) {
  62. return "";
  63. })
  64. }
  65. getStation();
  66. var lans = 0;
  67. var entrance_number = 0;
  68. var exit_number = 0;
  69. // 获取收费站信息
  70. function getStation() {
  71. get_common_service("dept/getFsByDept", "", function(data) {
  72. if (data != null) {
  73. $(".thread_charge").append("<th>" + data.name + "</th>");
  74. $(".thread_charge").append("<th>值机班长</th>");
  75. //灌南东
  76. if (user_dept_id == 35) {
  77. $(".thread_charge").append("<th>收费班长(西)</th>");
  78. $(".thread_charge").append("<th>收费班长(东)</th>");
  79. } else {
  80. $(".thread_charge").append("<th>收费班长</th>");
  81. }
  82. $(".thread_charge").append("<th>值班室</th>");
  83. // console.log(data);
  84. lans = data.lanes_number;
  85. entrance_number = data.entrance_numer;
  86. exit_number = data.exit_numer;
  87. // for(var i=0;i<data.lanes_number;i++){
  88. // $(".thread_charge").append("<th>进口车道"+(i+1)+"</th>");
  89. // }
  90. for (var i = 0; i < entrance_number; i++) {
  91. $(".thread_charge").append("<th>入口" + (i + 1) + "</th>");
  92. }
  93. for (var i = 0; i < exit_number; i++) {
  94. $(".thread_charge").append("<th>出口" + (i + 1) + "</th>");
  95. }
  96. }
  97. }, function(error) {
  98. return "";
  99. })
  100. }
  101. getClassCode();
  102. var classCode = {};
  103. /**
  104. * 获取班组信息
  105. */
  106. function getClassCode() {
  107. var data = {};
  108. post_common_service("teamClass/getClassCode", data, function(data) {
  109. for (var i = 0; i < data.length; i++) {
  110. classCode[data[i].code] = data[i];
  111. }
  112. // console.log(classCode);
  113. $(".class_type_1").html(classCode[1].class_name);
  114. $(".class_type_2").html(classCode[2].class_name);
  115. $(".class_type_3").html(classCode[3].class_name);
  116. }, function(error) {
  117. return "";
  118. })
  119. }
  120. // 更新日历数据
  121. function updateCalendar(data) {
  122. calendar.events = [];
  123. calendar.display();
  124. calendarInit(data);
  125. }
  126. // 当月第一天
  127. function getCurrentMonthFirst() {
  128. var date = new Date();
  129. date.setDate(1);
  130. date.setHours(0);
  131. date.setMinutes(0);
  132. date.setSeconds(0);
  133. return date.Format("yyyy-MM-dd HH:mm:ss");
  134. }
  135. // 当月最后一天
  136. function getCurrentMonthLast() {
  137. var date = new Date();
  138. var currentMonth = date.getMonth();
  139. var nextMonth = ++currentMonth;
  140. var nextMonthFirstDay = new Date(date.getFullYear(), nextMonth, 1);
  141. var oneDay = 1000 * 60 * 60 * 24;
  142. var date1 = new Date(nextMonthFirstDay - oneDay);
  143. date1.setHours(23);
  144. date1.setMinutes(59);
  145. date1.setSeconds(59);
  146. return date1.Format("yyyy-MM-dd HH:mm:ss");
  147. }
  148. // 当月最后一天
  149. function getCurrentMonthLast2() {
  150. var date = new Date();
  151. var currentMonth = date.getMonth();
  152. var nextMonth = ++currentMonth;
  153. var nextMonthFirstDay = new Date(date.getFullYear(), nextMonth, 1);
  154. var oneDay = 0; //1000*60*60*24;
  155. var date1 = new Date(nextMonthFirstDay - oneDay);
  156. date1.setHours(0);
  157. date1.setMinutes(0);
  158. date1.setSeconds(0);
  159. return date1.Format("yyyy-MM-dd HH:mm:ss");
  160. }
  161. // 上一个月或者下个月的第一天或者最后一天
  162. function getMonthByCondition(pre_or_after, first_or_last) {
  163. if (first_or_last == 'first') {
  164. var date = new Date();
  165. date.setDate(1);
  166. date.setHours(0);
  167. date.setMinutes(0);
  168. date.setSeconds(0);
  169. date.setMonth(date.getMonth() + pre_or_after);
  170. return date;
  171. } else if (first_or_last == 'last') {
  172. var date = new Date();
  173. date.setMonth(date.getMonth() + pre_or_after); //此处月份加减,不能放到最后加减,会引起月份天数不对
  174. var currentMonth = date.getMonth();
  175. var nextMonth = ++currentMonth;
  176. var nextMonthFirstDay = new Date(date.getFullYear(), nextMonth, 1);
  177. var date1 = nextMonthFirstDay;
  178. date1.setDate(date1.getDate() - 1);
  179. date1.setHours(23);
  180. date1.setMinutes(59);
  181. date1.setSeconds(59);
  182. return date1;
  183. }
  184. }
  185. /**
  186. * 顶班日期
  187. */
  188. function date_time() {
  189. $.jeDate("#start_time", {
  190. format: "hh:mm:00",
  191. isinitVal: true,
  192. zIndex: 99999999
  193. });
  194. $.jeDate("#end_time", {
  195. format: "hh:mm:00",
  196. isinitVal: true,
  197. zIndex: 99999999
  198. });
  199. }
  200. date_time();
  201. $("#save_user_class").click(function() {
  202. var now_date = moment(nowStr).toDate(); //new Date();
  203. now_date.setDate(now_date.getDate() - 1);
  204. // if(now_date.Format('yyyy-MM-dd') >= $("#save_user_class").data("work_date").trim() ){
  205. // tip("不能生成过期的排班");
  206. // return ;
  207. // }
  208. // if($("#save_user_class").data("work_date").trim() >'2017-06-25'){
  209. // tip("只能生成6月份排班");// tip("不能生成过期的排班");
  210. // return ;
  211. // }
  212. var dutyList = [];
  213. var work_date = $("#save_user_class").data("work_date") + "00:00:00";
  214. for (var j = 1; j < 4; j++) {
  215. var cache = $(".tr-" + j).data("cache");
  216. var zhiji_m_id = $(".c-" + j + "_0 select").val();
  217. var station_m_id = $(".c-" + j + "_1 select").val();
  218. var station_m_id1 = null;
  219. if (user_dept_id == 35) {
  220. station_m_id1 = $(".c-" + j + "_2 select").val();
  221. if (station_m_id1 == "" || station_m_id1 == null || typeof(station_m_id1) == "undefined") {
  222. station_m_id1 = 0;
  223. }
  224. }
  225. if (zhiji_m_id == "" || zhiji_m_id == null || typeof(zhiji_m_id) == "undefined") {
  226. zhiji_m_id = 0;
  227. }
  228. if (station_m_id == "" || station_m_id == null || typeof(station_m_id) == "undefined") {
  229. station_m_id = 0;
  230. }
  231. if (user_dept_id == 35) {
  232. station_m_id1 = parseInt(station_m_id1)
  233. }
  234. zhiji_m_id = parseInt(zhiji_m_id)
  235. station_m_id = parseInt(station_m_id)
  236. if (cache) {
  237. for (var i = 2; i < lans + 1 + 2; i++) {
  238. if ($(".tr-" + j + " td select").eq(i).val() != '' && $(".tr-" + j + " td select").eq(i).val() != null) {
  239. var start_time = $("#save_user_class").data("work_date") + classCode[j].start_time + ":00";
  240. if (j == 3) {
  241. var date = new Date($("#save_user_class").data("work_date").replace(/-/, "/"));
  242. date.setDate(date.getDate() - 1);
  243. start_time = date.Format("yyyy-MM-dd") + " " + classCode[j].start_time + ":00";
  244. }
  245. var end_time = $("#save_user_class").data("work_date") + classCode[j].end_time + ":00";
  246. var lane_id = $(".tr-" + j + " td select").eq(i).parent().attr('tag');
  247. if (lane_id == null || typeof(lane_id) == "undefined") {
  248. continue;
  249. }
  250. var m_id = station_m_id
  251. if (lane_id == 0) {
  252. m_id = zhiji_m_id;
  253. } else {
  254. if (user_dept_id == 35) {
  255. if (Math.abs(lane_id) <= 2) {
  256. m_id = station_m_id;
  257. } else {
  258. m_id = station_m_id1;
  259. }
  260. }
  261. }
  262. var list = $(".tr-" + j + " td select").eq(i).data("data");
  263. var obj = { "list": list, "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": start_time, "end_time": end_time, "lane": lane_id, "monitor_user_id": m_id };
  264. console.log(obj)
  265. dutyList.push(obj);
  266. }
  267. }
  268. }
  269. }
  270. $("#save_user_class").attr("disabled", "disabled");
  271. if ($("#save_user_class").data("modify_flag")) {
  272. $("#save_user_class").data("modify_flag", false);
  273. post_common_service("userClass/updateList", dutyList, function(data) {
  274. tip("修改成功");
  275. $('#add_fee_station').modal('hide');
  276. $("#save_user_class").attr("disabled", false);
  277. }, function(error) {
  278. return "";
  279. })
  280. return;
  281. }
  282. post_common_service("userClass/addList", dutyList, function(data) {
  283. tip("添加成功");
  284. $('#add_fee_station').modal('hide');
  285. $("#save_user_class").attr("disabled", false);
  286. }, function(error) {
  287. return "";
  288. })
  289. })
  290. var cols = [{ width: 60, text: '序号', type: 'number', flex: false, colClass: 'text-center' },
  291. { width: 130, text: '开始时间', type: 'string', flex: false, colClass: 'text-center' },
  292. { width: 130, text: '结束时间', type: 'string', flex: false, sort: 'down', colClass: 'text-center' },
  293. { width: 130, text: '人员姓名', type: 'string', flex: false, colClass: 'text-center' },
  294. { width: 230, text: '操作', type: 'string', flex: false, colClass: 'text-center' }
  295. ];
  296. $('.datatable').datatable({
  297. checkable: false,
  298. sortable: false,
  299. data: {
  300. cols: cols,
  301. rows: []
  302. }
  303. });
  304. var temp_data;
  305. // 更新表格数据
  306. function updateTableData(obj) {
  307. var rowdata = [];
  308. if (obj != null && obj.length > 0) {
  309. for (var i = 0; i < obj.length; i++) {
  310. var userdata = {};
  311. userdata["checked"] = false;
  312. userdata["data"] = [i + 1, obj[i].start_time, obj[i].end_time, obj[i].user_name, ' <button class="btn btn-primary btn_remove" value=' + i + ' ><i class="icon icon-remove-circle"></i>删除</button>'];
  313. rowdata.push(userdata);
  314. }
  315. }
  316. $('.datatable').datatable('load', {
  317. cols: cols,
  318. rows: rowdata
  319. });
  320. }
  321. $(".datatable").delegate(".btn_remove", "click", function() {
  322. var bind_data = temp_data;
  323. // alert($(this).val())
  324. if ($(this).val() != null && $(this).val() != '') {
  325. bind_data.splice($(this).val(), 1)
  326. // $(".add-btn").data("data",bind_data);
  327. temp_data = bind_data;
  328. updateTableData(temp_data);
  329. }
  330. })
  331. var time_interval_obj = "";
  332. $(".table").delegate(".i-self", "click", function() {
  333. $("#team_info_ti").html($(this).prev().html());
  334. $(".save_class_info").data("data", $(this).prev());
  335. // 将时间区间值的span 对象缓存起来
  336. time_interval_obj = $(this).parent().parent().children().eq(0).children();
  337. //console.log(time_interval_obj);
  338. temp_data = $(this).prev().data("data");
  339. $("#lists").show();
  340. $("#add_update").hide();
  341. updateTableData(temp_data);
  342. showPopup4CommonBtns("添加顶班详情", "720px", "#add_detail_info", "", function() {
  343. }, function() {})
  344. })
  345. // 增加按钮
  346. $(".add-btn").click(function() {
  347. $("#team_info_ti").val("");
  348. $("#lists").hide();
  349. $("#add_update").show();
  350. $("#start_time").val(time_interval_obj.eq(1).html() + ':00');
  351. $("#end_time").val(time_interval_obj.eq(2).html() + ':00');
  352. })
  353. // 保存班组信息
  354. $(".save_class_info").click(function() {
  355. $(".save_class_info").data("data").data("data", temp_data);
  356. layer.closeAll();
  357. })
  358. $(".return-btn").click(function() {
  359. $("#lists").show();
  360. $("#add_update").hide();
  361. })
  362. // 保存
  363. $("#save_btn").click(function() {
  364. var bind_data = temp_data;
  365. if (bind_data == null) {
  366. bind_data = [];
  367. }
  368. // 判断时间区间
  369. // $(".modal-title span").html()
  370. var start_time_interval = $(".modal-title span").html() + ' ' + time_interval_obj.eq(1).html() + ":00";
  371. var end_time_interval = $(".modal-title span").html() + ' ' + time_interval_obj.eq(2).html() + ":00";
  372. var id = $("#team_info_ti").val();
  373. var start_time = $(".modal-title span").html() + ' ' + $("#start_time").val();
  374. var end_time = $(".modal-title span").html() + ' ' + $("#end_time").val();
  375. var name = $("#team_info_ti").find("option:selected").text();
  376. if (start_time_interval > end_time_interval) {
  377. var prev_date = new Date((start_time_interval).replace(/-/, "/"));
  378. prev_date.setDate(prev_date.getDate() - 1);
  379. start_time_interval = prev_date.Format("yyyy-MM-dd HH:mm:ss");
  380. if ($("#start_time").val() >= '23:00:00') {
  381. prev_date = new Date((start_time).replace(/-/, "/"));
  382. prev_date.setDate(prev_date.getDate() - 1);
  383. start_time = prev_date.Format("yyyy-MM-dd HH:mm:00");
  384. }
  385. if ($("#end_time").val() > '23:00:00') {
  386. prev_date = new Date((end_time).replace(/-/, "/"));
  387. prev_date.setDate(prev_date.getDate() - 1);
  388. end_time = prev_date.Format("yyyy-MM-dd HH:mm:00");
  389. }
  390. }
  391. // alert( 'start_time:'+start_time + 'end_time:'+end_time + 'start_time_i:'+start_time_interval +'end_time_i:'+end_time_interval );
  392. if (start_time >= end_time) {
  393. tip("时间设置不合理,开始时间不能大于结束时间");
  394. return;
  395. }
  396. if (!(start_time >= start_time_interval && end_time <= end_time_interval)) {
  397. tip("不是当前值班时间段");
  398. return;
  399. }
  400. // 这边需要判断一下,时间不能重叠
  401. for (var i = 0; i < bind_data.length; i++) {
  402. if (!(start_time >= bind_data[i].end_time || end_time <= bind_data[i].start_time)) {
  403. tip("设置的时间不能重叠");
  404. return;
  405. }
  406. }
  407. if (id != "" && start_time != '' && end_time != '') {
  408. bind_data.push({ "user_name": name, "start_time": start_time, "end_time": end_time, "id": id });
  409. temp_data = bind_data;
  410. $("#lists").show();
  411. $("#add_update").hide();
  412. updateTableData(temp_data);
  413. } else {
  414. tip("信息需填写完整");
  415. }
  416. })
  417. $('#calendar').calendar().on("clickEvent.zui.calendar", function(event) {
  418. // console.log(event。event.id);
  419. if (event.event.id == -1) {
  420. // 这边负责添加整个页面的数据 按车道排班
  421. $('#add_fee_station').modal({ 'backdrop': 'static' });
  422. $(".modal-title").html("收费站排班表-<span>" + event.event.start.Format("yyyy-MM-dd") + "</span>");
  423. $("#save_user_class").data("work_date", event.event.start.Format("yyyy-MM-dd "));
  424. var data = {
  425. "dept_id": user_dept_id,
  426. "start_time": event.event.start.Format("yyyy-MM-dd 00:00:00"),
  427. "end_time": event.event.start.Format("yyyy-MM-dd 00:00:00"),
  428. 'type': team_type
  429. }
  430. post_common_service("teamClass/getClassListAndUsers", data, function(data) {
  431. $("#save_user_class").html("生成今日值班");
  432. $(".tr-1,.tr-2,.tr-3").empty();
  433. console.error(data)
  434. for (var i = 0; i < data.length; i++) {
  435. var ct = data[i].class_type;
  436. $(".tr-" + ct).data("cache", data[i]);
  437. $(".tr-" + ct).append("<td vertical-align='middle' align='center' style='width:140px;'><span style='font-weight:bold;'>" + classCode[ct].class_name + "<br></span><span>" + classCode[ct].start_time + "</span> - <span>" + classCode[ct].end_time + "</span></td>");
  438. var selectv = "<select class='form-control select-self' style='width:100px;'>"
  439. selectv += ("<option value=''>请选择</option>");
  440. selectv += ("<option value='0'>临时开道</option>");
  441. for (var j = 0; j < data[i].users.length; j++) {
  442. var obj = data[i].users[j];
  443. selectv += ("<option value='" + data[i].users[j].id + "'>" + data[i].users[j].truename + "</option>");
  444. }
  445. selectv += "</select>";
  446. var selectv1 = selectv;
  447. selectv1 = selectv1.replace("<option value='0'>临时开道</option>", "");
  448. selectv1 = selectv1.replace("<option value=''>请选择</option>", "<option value='0'>请选择</option>");
  449. $(".tr-" + ct).append("<td style='vertical-align:top;width:137px;padding:2px;' class='c-" + ct + "_0' >" + selectv1 + "</td>")
  450. if (user_dept_id == 35) {
  451. $(".tr-" + ct).append("<td style='vertical-align:top;width:137px;padding:2px;' class='c-" + ct + "_1' >" + selectv1 + "</td>");
  452. $(".tr-" + ct).append("<td style='vertical-align:top;width:137px;padding:2px;' class='c-" + ct + "_2' >" + selectv1 + "</td>");
  453. } else {
  454. $(".tr-" + ct).append("<td style='vertical-align:top;width:137px;padding:2px;' class='c-" + ct + "_1' >" + selectv1 + "</td>");
  455. }
  456. selectv += "<i title='顶班详情' alt='顶班详情' class='icon icon-tags i-self' style='float:right;margin-top:7px;'></i>";
  457. selectv += "<ul style='padding:0px;'></ul>"
  458. var selectv2 = selectv;
  459. selectv2 = selectv2.replace("<option value='0'>临时开道</option>", "");
  460. $(".tr-" + ct).append("<td style='vertical-align:top;width:137px;padding:2px;' class='c-" + ct + "-0' tag='0'>" + selectv2 + "</td>")
  461. for (var z = 0; z < entrance_number; z++) {
  462. $(".tr-" + ct).append("<td style='vertical-align:top;width:137px;padding:2px;' class='c-" + ct + "-" + (z + 1) + "' tag='" + (z + 1) + "'>" + selectv + "</td>")
  463. }
  464. for (var z = 0; z < exit_number; z++) {
  465. $(".tr-" + ct).append("<td style='vertical-align:top;width:137px;padding:2px;' class='c-" + ct + "--" + (z + 1) + "' tag='-" + (z + 1) + "'>" + selectv + "</td>")
  466. }
  467. }
  468. if (data.length == 0) {
  469. $(".tr-1").append("<td>" + classCode["1"].class_name + " " + classCode["1"].start_time + " - " + classCode["1"].end_time + "</td>");
  470. $(".tr-2").append("<td>" + classCode[2].class_name + " " + classCode[2].start_time + " - " + classCode[2].end_time + "</td>");
  471. $(".tr-3").append("<td>" + classCode[3].class_name + " " + classCode[3].start_time + " - " + classCode[3].end_time + "</td>");
  472. for (var i = 0; i < lans + 1 + 2; i++) {
  473. $(".tr-1,.tr-2,.tr-3").append("<td></td>");
  474. }
  475. } else {
  476. var cache = $(".tr-1").data("cache");
  477. var work_date = $("#save_user_class").data("work_date") + "00:00:00";
  478. var param = {
  479. 'dept_id': user_dept_id,
  480. 'work_date': work_date
  481. }
  482. post_common_service("userClass/getList", param, function(data) {
  483. // 这边将值班数据检索出来,初始化收费站车道排班中
  484. // console.log(data);
  485. if (data.length > 0) {
  486. $("#save_user_class").data("modify_flag", true);
  487. $("#save_user_class").html("修改今日值班");
  488. } else {
  489. $("#save_user_class").html("生成今日值班");
  490. $("#save_user_class").data("modify_flag", false);
  491. }
  492. for (var i = 0; i < data.length; i++) {
  493. // console.log(data[i].list)
  494. // 这边需要把id转换成user_id
  495. var m_id = data[i].monitor_user_id;
  496. m_id = m_id <= 0 ? 0 : m_id;
  497. if (data[i].list != null)
  498. $(".c-" + data[i].class_type + "-" + data[i].lane + " select").data("data", data[i].list);
  499. var liStr = "";
  500. for (var mm = 0; mm < data[i].list.length; mm++) {
  501. var obj = data[i].list[mm];
  502. liStr += "<li style='list-style-type:none;font-size:12px;color:#777777'>" + obj.start_time.substr(11, 5) + "-" + obj.end_time.substr(11, 5) + " " + obj.user_name + "</li>";
  503. }
  504. $(".c-" + data[i].class_type + "-" + data[i].lane + " ul").append(liStr);
  505. for (var j = 0; j < data[i].list.length; j++) {
  506. data[i].list[j].id = data[i].list[j].user_id;
  507. }
  508. var aim_selector = $(".c-" + data[i].class_type + "-" + data[i].lane + " select");
  509. var zhiji_m_id = $(".c-" + data[i].class_type + "_0 select");
  510. var station_m_id = $(".c-" + data[i].class_type + "_1 select");
  511. var station_m_id1 = null;
  512. if (user_dept_id == 35) {
  513. station_m_id1 = $(".c-" + data[i].class_type + "_2 select");
  514. }
  515. if (data[i].lane == 0) {
  516. zhiji_m_id.val(m_id);
  517. } else {
  518. if (user_dept_id == 35) {
  519. if (Math.abs(data[i].lane) <= 2) {
  520. station_m_id.val(m_id)
  521. } else {
  522. station_m_id1.val(m_id)
  523. }
  524. } else {
  525. station_m_id.val(m_id);
  526. }
  527. }
  528. aim_selector.val(data[i].user_id);
  529. if (aim_selector.find("option:selected").text() == '') {
  530. aim_selector.append("<option value='" + data[i].user_id + "' selected='selected'>" + data[i].user_name + "</option>")
  531. }
  532. // $(".table .tr-"+data[i].class_type+" select").eq(i%(lans+1)).val(data[i].user_id);
  533. }
  534. }, function(error) {
  535. return "";
  536. })
  537. }
  538. }, function(error) {
  539. return "";
  540. })
  541. } else {
  542. click_function(event.event.start);
  543. }
  544. });
  545. /**
  546. * 点击日历触发函数
  547. */
  548. function click_function(date) {
  549. setAddTermTitle(date.Format("yyyy-MM-dd"));
  550. // 保存当前日期
  551. $("#save_term_class").data("date", date.Format("yyyy-MM-dd"));
  552. var data = {
  553. "dept_id": user_dept_id,
  554. "start_time": date.Format("yyyy-MM-dd 00:00:00"),
  555. "end_time": date.Format("yyyy-MM-dd 00:00:00"),
  556. 'type': team_type
  557. }
  558. getTeamClass(data, function(data) {
  559. for (var i = 0; i < $("select[id*='_term']").length; i++) {
  560. $("select[id*='_term']").eq(i).val("");
  561. }
  562. if (data.length > 0) {
  563. $("#save_term_class").data("modify_flag", 1);
  564. for (var i = 0; i < data.length; i++) {
  565. $(".class_team_" + data[i].class_type).val(data[i].team_id);
  566. }
  567. } else {
  568. $("#save_term_class").data("modify_flag", 0);
  569. }
  570. $('#myModal').modal();
  571. })
  572. }
  573. $('#calendar').calendar().on("clickCell.zui.calendar", function(event) {
  574. // console.log(event);
  575. click_function(event.date);
  576. });
  577. // 下一个日期
  578. $('#calendar').calendar().on("clickNextBtn.zui.calendar", function(event) {
  579. // console.log(event);
  580. date_cursor++;
  581. var data = {
  582. "dept_id": user_dept_id,
  583. "start_time": getMonthByCondition(date_cursor, 'first').Format("yyyy-MM-dd HH:mm:ss"),
  584. "end_time": getMonthByCondition(date_cursor, 'last').Format("yyyy-MM-dd HH:mm:ss"),
  585. 'type': team_type
  586. }
  587. updateCalendar(data);
  588. });
  589. // 上一个日期
  590. $('#calendar').calendar().on("clickPrevBtn.zui.calendar", function(event) {
  591. date_cursor--;
  592. var data = {
  593. "dept_id": user_dept_id,
  594. "start_time": getMonthByCondition(date_cursor, 'first').Format("yyyy-MM-dd HH:mm:ss"),
  595. "end_time": getMonthByCondition(date_cursor, 'last').Format("yyyy-MM-dd HH:mm:ss"),
  596. 'type': team_type
  597. }
  598. updateCalendar(data);
  599. });
  600. // 今天
  601. $('#calendar').calendar().on("clickTodayBtn.zui.calendar", function(event) {
  602. // console.log(event);
  603. date_cursor = 0;
  604. calendarInit();
  605. });
  606. $("#save_term_class").click(function() {
  607. // 判断当前时间和待添加班组时间判断
  608. var now_date = moment(nowStr).toDate(); //new Date();
  609. now_date.setDate(now_date.getDate() - 1);
  610. // if(now_date.Format('yyyy-MM-dd') >= $("#save_term_class").data("date").trim() ){
  611. // tip("不能生成过期的排班");
  612. // return ;
  613. // }
  614. // if($("#save_term_class").data("date").trim() >'2017-06-25'){
  615. // tip("只能生成6月份排班");// tip("不能生成过期的排班");
  616. // return ;
  617. // }
  618. var data = [];
  619. for (var i = 0; i < $("select[id*='_term']").length; i++) {
  620. if ($("select[id*='_term']").eq(i).val() != "") {
  621. // 这边需要转换一下,关于值
  622. var team_type_value = 1;
  623. if (i == 0) {
  624. team_type_value = 3;
  625. } else if (i == 1) {
  626. team_type_value = 1;
  627. } else {
  628. team_type_value = 2;
  629. }
  630. var start_time = $("#save_term_class").data("date") + " " + classCode[team_type_value].start_time + ":00";
  631. if (i == 0) {
  632. var date = new Date($("#save_term_class").data("date").replace(/-/, "/"));
  633. date.setDate(date.getDate() - 1);
  634. start_time = date.Format("yyyy-MM-dd") + " " + classCode[team_type_value].start_time + ":00";
  635. }
  636. var obj = {
  637. "class_type": team_type_value,
  638. "team_id": $("select[id*='_term']").eq(i).val(),
  639. "work_date": $("#save_term_class").data("date") + " 00:00:00",
  640. "start_time": start_time,
  641. "end_time": $("#save_term_class").data("date") + " " + classCode[team_type_value].end_time + ":00",
  642. "dept_id": user_dept_id,
  643. "user_type": 1 //表示收费站
  644. };
  645. data.push(obj);
  646. }
  647. }
  648. if (data.length == 0) {
  649. tip("请增加排班!");
  650. return;
  651. }
  652. if ($("#save_term_class").data("modify_flag") != 1) {
  653. post_common_service("teamClass/add/list", data, function(data) {
  654. updateCalendar();
  655. $('#myModal').modal('hide');
  656. }, function(error) {
  657. $('#myModal').modal('hide');
  658. })
  659. } else {
  660. post_common_service("teamClass/update/list", data, function(data) {
  661. updateCalendar();
  662. $('#myModal').modal('hide');
  663. }, function(error) {
  664. $('#myModal').modal('hide');
  665. })
  666. }
  667. })
  668. $(".close_btn").click(function() {
  669. $('#myModal,#add_fee_station').modal('hide');
  670. })
  671. // 获取部门为1的班组信息
  672. getTermClass(user_dept_id);
  673. // 获取班组信息
  674. function getTermClass(dept_id) {
  675. var data = {
  676. 'dept_id': dept_id,
  677. 'type': team_type
  678. }
  679. post_common_service("team/getTeamByDeptId/1/50", data, function(data) {
  680. for (var i = 0; i < data.list.length; i++) {
  681. $("#mooring_term,#middle_term,#night_term,#all_term").append("<option value='" + data.list[i].id + "'>" + data.list[i].name + "</option>")
  682. }
  683. }, function(error) {})
  684. }
  685. }
  686. // 根据class_type 获取班次名称
  687. function getTeamName(class_type) {
  688. if (class_type == 1) {
  689. return "早班";
  690. } else if (class_type == 2) {
  691. return "中班";
  692. } else if (class_type == 3) {
  693. return "夜班";
  694. } else if (class_type == 4) {
  695. return "全班";
  696. }
  697. }
  698. function setAddTermTitle(title) {
  699. $(".modal-title").html("添加班组-" + title);
  700. }