charge_team_schedule.js 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830
  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. var n_c = 2;
  238. if (user_dept_id == 35) {
  239. n_c = 3;
  240. }
  241. for (var i = 2; i < lans + 1 + n_c; i++) {
  242. if ($(".tr-" + j + " td select").eq(i).val() != '' && $(".tr-" + j + " td select").eq(i).val() != null) {
  243. var start_time = $("#save_user_class").data("work_date") + classCode[j].start_time + ":00";
  244. if (j == 3) {
  245. var date = new Date($("#save_user_class").data("work_date").replace(/-/, "/"));
  246. date.setDate(date.getDate() - 1);
  247. start_time = date.Format("yyyy-MM-dd") + " " + classCode[j].start_time + ":00";
  248. }
  249. var end_time = $("#save_user_class").data("work_date") + classCode[j].end_time + ":00";
  250. var lane_id = $(".tr-" + j + " td select").eq(i).parent().attr('tag');
  251. if (lane_id == null || typeof(lane_id) == "undefined") {
  252. continue;
  253. }
  254. var m_id = station_m_id
  255. if (lane_id == 0) {
  256. m_id = zhiji_m_id;
  257. } else {
  258. if (user_dept_id == 35) {
  259. if (Math.abs(lane_id) <= 2) {
  260. m_id = station_m_id;
  261. } else {
  262. m_id = station_m_id1;
  263. }
  264. }
  265. }
  266. var list = $(".tr-" + j + " td select").eq(i).data("data");
  267. 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 };
  268. console.log(obj)
  269. dutyList.push(obj);
  270. }
  271. }
  272. }
  273. }
  274. $("#save_user_class").attr("disabled", "disabled");
  275. if ($("#save_user_class").data("modify_flag")) {
  276. $("#save_user_class").data("modify_flag", false);
  277. post_common_service("userClass/updateList", dutyList, function(data) {
  278. tip("修改成功");
  279. $('#add_fee_station').modal('hide');
  280. $("#save_user_class").attr("disabled", false);
  281. }, function(error) {
  282. return "";
  283. })
  284. return;
  285. }
  286. post_common_service("userClass/addList", dutyList, function(data) {
  287. tip("添加成功");
  288. $('#add_fee_station').modal('hide');
  289. $("#save_user_class").attr("disabled", false);
  290. }, function(error) {
  291. return "";
  292. })
  293. })
  294. var cols = [{ width: 60, text: '序号', type: 'number', flex: false, colClass: 'text-center' },
  295. { width: 130, text: '开始时间', type: 'string', flex: false, colClass: 'text-center' },
  296. { width: 130, text: '结束时间', type: 'string', flex: false, sort: 'down', colClass: 'text-center' },
  297. { width: 130, text: '人员姓名', type: 'string', flex: false, colClass: 'text-center' },
  298. { width: 230, text: '操作', type: 'string', flex: false, colClass: 'text-center' }
  299. ];
  300. $('.datatable').datatable({
  301. checkable: false,
  302. sortable: false,
  303. data: {
  304. cols: cols,
  305. rows: []
  306. }
  307. });
  308. var temp_data;
  309. // 更新表格数据
  310. function updateTableData(obj) {
  311. var rowdata = [];
  312. if (obj != null && obj.length > 0) {
  313. for (var i = 0; i < obj.length; i++) {
  314. var userdata = {};
  315. userdata["checked"] = false;
  316. 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>'];
  317. rowdata.push(userdata);
  318. }
  319. }
  320. $('.datatable').datatable('load', {
  321. cols: cols,
  322. rows: rowdata
  323. });
  324. }
  325. $(".datatable").delegate(".btn_remove", "click", function() {
  326. var bind_data = temp_data;
  327. // alert($(this).val())
  328. if ($(this).val() != null && $(this).val() != '') {
  329. bind_data.splice($(this).val(), 1)
  330. // $(".add-btn").data("data",bind_data);
  331. temp_data = bind_data;
  332. updateTableData(temp_data);
  333. }
  334. })
  335. var time_interval_obj = "";
  336. $(".table").delegate(".i-self", "click", function() {
  337. $("#team_info_ti").html($(this).prev().html());
  338. $(".save_class_info").data("data", $(this).prev());
  339. // 将时间区间值的span 对象缓存起来
  340. time_interval_obj = $(this).parent().parent().children().eq(0).children();
  341. //console.log(time_interval_obj);
  342. temp_data = $(this).prev().data("data");
  343. $("#lists").show();
  344. $("#add_update").hide();
  345. updateTableData(temp_data);
  346. showPopup4CommonBtns("添加顶班详情", "720px", "#add_detail_info", "", function() {
  347. }, function() {})
  348. })
  349. // 增加按钮
  350. $(".add-btn").click(function() {
  351. $("#team_info_ti").val("");
  352. $("#lists").hide();
  353. $("#add_update").show();
  354. $("#start_time").val(time_interval_obj.eq(1).html() + ':00');
  355. $("#end_time").val(time_interval_obj.eq(2).html() + ':00');
  356. })
  357. // 保存班组信息
  358. $(".save_class_info").click(function() {
  359. $(".save_class_info").data("data").data("data", temp_data);
  360. layer.closeAll();
  361. })
  362. $(".return-btn").click(function() {
  363. $("#lists").show();
  364. $("#add_update").hide();
  365. })
  366. // 保存
  367. $("#save_btn").click(function() {
  368. var bind_data = temp_data;
  369. if (bind_data == null) {
  370. bind_data = [];
  371. }
  372. // 判断时间区间
  373. // $(".modal-title span").html()
  374. var start_time_interval = $(".modal-title span").html() + ' ' + time_interval_obj.eq(1).html() + ":00";
  375. var end_time_interval = $(".modal-title span").html() + ' ' + time_interval_obj.eq(2).html() + ":00";
  376. var id = $("#team_info_ti").val();
  377. var start_time = $(".modal-title span").html() + ' ' + $("#start_time").val();
  378. var end_time = $(".modal-title span").html() + ' ' + $("#end_time").val();
  379. var name = $("#team_info_ti").find("option:selected").text();
  380. if (start_time_interval > end_time_interval) {
  381. var prev_date = new Date((start_time_interval).replace(/-/, "/"));
  382. prev_date.setDate(prev_date.getDate() - 1);
  383. start_time_interval = prev_date.Format("yyyy-MM-dd HH:mm:ss");
  384. if ($("#start_time").val() >= '23:00:00') {
  385. prev_date = new Date((start_time).replace(/-/, "/"));
  386. prev_date.setDate(prev_date.getDate() - 1);
  387. start_time = prev_date.Format("yyyy-MM-dd HH:mm:00");
  388. }
  389. if ($("#end_time").val() > '23:00:00') {
  390. prev_date = new Date((end_time).replace(/-/, "/"));
  391. prev_date.setDate(prev_date.getDate() - 1);
  392. end_time = prev_date.Format("yyyy-MM-dd HH:mm:00");
  393. }
  394. }
  395. // alert( 'start_time:'+start_time + 'end_time:'+end_time + 'start_time_i:'+start_time_interval +'end_time_i:'+end_time_interval );
  396. if (start_time >= end_time) {
  397. tip("时间设置不合理,开始时间不能大于结束时间");
  398. return;
  399. }
  400. if (!(start_time >= start_time_interval && end_time <= end_time_interval)) {
  401. tip("不是当前值班时间段");
  402. return;
  403. }
  404. // 这边需要判断一下,时间不能重叠
  405. for (var i = 0; i < bind_data.length; i++) {
  406. if (!(start_time >= bind_data[i].end_time || end_time <= bind_data[i].start_time)) {
  407. tip("设置的时间不能重叠");
  408. return;
  409. }
  410. }
  411. if (id != "" && start_time != '' && end_time != '') {
  412. bind_data.push({ "user_name": name, "start_time": start_time, "end_time": end_time, "id": id });
  413. temp_data = bind_data;
  414. $("#lists").show();
  415. $("#add_update").hide();
  416. updateTableData(temp_data);
  417. } else {
  418. tip("信息需填写完整");
  419. }
  420. })
  421. $('#calendar').calendar().on("clickEvent.zui.calendar", function(event) {
  422. // console.log(event。event.id);
  423. if (event.event.id == -1) {
  424. // 这边负责添加整个页面的数据 按车道排班
  425. $('#add_fee_station').modal({ 'backdrop': 'static' });
  426. $(".modal-title").html("收费站排班表-<span>" + event.event.start.Format("yyyy-MM-dd") + "</span>");
  427. $("#save_user_class").data("work_date", event.event.start.Format("yyyy-MM-dd "));
  428. var data = {
  429. "dept_id": user_dept_id,
  430. "start_time": event.event.start.Format("yyyy-MM-dd 00:00:00"),
  431. "end_time": event.event.start.Format("yyyy-MM-dd 00:00:00"),
  432. 'type': team_type
  433. }
  434. post_common_service("teamClass/getClassListAndUsers", data, function(data) {
  435. $("#save_user_class").html("生成今日值班");
  436. $(".tr-1,.tr-2,.tr-3").empty();
  437. console.error(data)
  438. for (var i = 0; i < data.length; i++) {
  439. var ct = data[i].class_type;
  440. $(".tr-" + ct).data("cache", data[i]);
  441. $(".tr-" + ct).append("<td vertical-align='middle' align='center' style='width:140px;background:#F8F8F8;'><span style='font-weight:bold;'>" + classCode[ct].class_name + "<br></span><span>" + classCode[ct].start_time + "</span> - <span>" + classCode[ct].end_time + "</span></td>");
  442. var selectv = "<select class='form-control select-self' style='width:100px;'>"
  443. selectv += ("<option value=''>请选择</option>");
  444. selectv += ("<option value='0'>临时开道</option>");
  445. for (var j = 0; j < data[i].users.length; j++) {
  446. var obj = data[i].users[j];
  447. selectv += ("<option value='" + data[i].users[j].id + "'>" + data[i].users[j].truename + "</option>");
  448. }
  449. selectv += "</select>";
  450. var selectv1 = selectv;
  451. selectv1 = selectv1.replace("<option value='0'>临时开道</option>", "");
  452. selectv1 = selectv1.replace("<option value=''>请选择</option>", "<option value='0'>请选择</option>");
  453. $(".tr-" + ct).append("<td style='vertical-align:top;width:137px;padding:2px;' class='c-" + ct + "_0' >" + selectv1 + "</td>")
  454. if (user_dept_id == 35) {
  455. $(".tr-" + ct).append("<td style='vertical-align:top;width:137px;padding:2px;' class='c-" + ct + "_1' >" + selectv1 + "</td>");
  456. $(".tr-" + ct).append("<td style='vertical-align:top;width:137px;padding:2px;' class='c-" + ct + "_2' >" + selectv1 + "</td>");
  457. } else {
  458. $(".tr-" + ct).append("<td style='vertical-align:top;width:137px;padding:2px;' class='c-" + ct + "_1' >" + selectv1 + "</td>");
  459. }
  460. selectv += "<i title='顶班详情' alt='顶班详情' class='icon icon-tags i-self' style='float:right;margin-top:7px;'></i>";
  461. selectv += "<ul style='padding:0px;'></ul>"
  462. var selectv2 = selectv;
  463. selectv2 = selectv2.replace("<option value='0'>临时开道</option>", "");
  464. $(".tr-" + ct).append("<td style='vertical-align:top;width:137px;padding:2px;' class='c-" + ct + "-0' tag='0'>" + selectv2 + "</td>")
  465. for (var z = 0; z < entrance_number; z++) {
  466. $(".tr-" + ct).append("<td style='vertical-align:top;width:137px;padding:2px;' class='c-" + ct + "-" + (z + 1) + "' tag='" + (z + 1) + "'>" + selectv + "</td>")
  467. }
  468. for (var z = 0; z < exit_number; z++) {
  469. $(".tr-" + ct).append("<td style='vertical-align:top;width:137px;padding:2px;' class='c-" + ct + "--" + (z + 1) + "' tag='-" + (z + 1) + "'>" + selectv + "</td>")
  470. }
  471. }
  472. if (data.length == 0) {
  473. $(".tr-1").append("<td>" + classCode["1"].class_name + " " + classCode["1"].start_time + " - " + classCode["1"].end_time + "</td>");
  474. $(".tr-2").append("<td>" + classCode[2].class_name + " " + classCode[2].start_time + " - " + classCode[2].end_time + "</td>");
  475. $(".tr-3").append("<td>" + classCode[3].class_name + " " + classCode[3].start_time + " - " + classCode[3].end_time + "</td>");
  476. var n_c = 2;
  477. if (user_dept_id == 35) {
  478. n_c = 3;
  479. }
  480. for (var i = 0; i < lans + 1 + n_c; i++) {
  481. $(".tr-1,.tr-2,.tr-3").append("<td></td>");
  482. }
  483. } else {
  484. var cache = $(".tr-1").data("cache");
  485. var work_date = $("#save_user_class").data("work_date") + "00:00:00";
  486. var param = {
  487. 'dept_id': user_dept_id,
  488. 'work_date': work_date
  489. }
  490. post_common_service("userClass/getList", param, function(data) {
  491. // 这边将值班数据检索出来,初始化收费站车道排班中
  492. // console.log(data);
  493. if (data.length > 0) {
  494. $("#save_user_class").data("modify_flag", true);
  495. $("#save_user_class").html("修改今日值班");
  496. } else {
  497. $("#save_user_class").html("生成今日值班");
  498. $("#save_user_class").data("modify_flag", false);
  499. }
  500. for (var i = 0; i < data.length; i++) {
  501. // console.log(data[i].list)
  502. // 这边需要把id转换成user_id
  503. var m_id = data[i].monitor_user_id;
  504. m_id = m_id <= 0 ? 0 : m_id;
  505. if (data[i].list != null)
  506. $(".c-" + data[i].class_type + "-" + data[i].lane + " select").data("data", data[i].list);
  507. var liStr = "";
  508. for (var mm = 0; mm < data[i].list.length; mm++) {
  509. var obj = data[i].list[mm];
  510. 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>";
  511. }
  512. $(".c-" + data[i].class_type + "-" + data[i].lane + " ul").append(liStr);
  513. for (var j = 0; j < data[i].list.length; j++) {
  514. data[i].list[j].id = data[i].list[j].user_id;
  515. }
  516. var aim_selector = $(".c-" + data[i].class_type + "-" + data[i].lane + " select");
  517. var zhiji_m_id = $(".c-" + data[i].class_type + "_0 select");
  518. var station_m_id = $(".c-" + data[i].class_type + "_1 select");
  519. var station_m_id1 = null;
  520. if (user_dept_id == 35) {
  521. station_m_id1 = $(".c-" + data[i].class_type + "_2 select");
  522. }
  523. if (data[i].lane == 0) {
  524. zhiji_m_id.val(m_id);
  525. } else {
  526. if (user_dept_id == 35) {
  527. if (Math.abs(data[i].lane) <= 2) {
  528. station_m_id.val(m_id)
  529. } else {
  530. station_m_id1.val(m_id)
  531. }
  532. } else {
  533. station_m_id.val(m_id);
  534. }
  535. }
  536. aim_selector.val(data[i].user_id);
  537. if (aim_selector.find("option:selected").text() == '') {
  538. aim_selector.append("<option value='" + data[i].user_id + "' selected='selected'>" + data[i].user_name + "</option>")
  539. }
  540. // $(".table .tr-"+data[i].class_type+" select").eq(i%(lans+1)).val(data[i].user_id);
  541. }
  542. }, function(error) {
  543. return "";
  544. })
  545. }
  546. }, function(error) {
  547. return "";
  548. })
  549. } else {
  550. click_function(event.event.start);
  551. }
  552. });
  553. /**
  554. * 点击日历触发函数
  555. */
  556. function click_function(date) {
  557. setAddTermTitle(date.Format("yyyy-MM-dd"));
  558. // 保存当前日期
  559. $("#save_term_class").data("date", date.Format("yyyy-MM-dd"));
  560. var data = {
  561. "dept_id": user_dept_id,
  562. "start_time": date.Format("yyyy-MM-dd 00:00:00"),
  563. "end_time": date.Format("yyyy-MM-dd 00:00:00"),
  564. 'type': team_type
  565. }
  566. getTeamClass(data, function(data) {
  567. for (var i = 0; i < $("select[id*='_term']").length; i++) {
  568. $("select[id*='_term']").eq(i).val("");
  569. }
  570. if (data.length > 0) {
  571. $("#save_term_class").data("modify_flag", 1);
  572. for (var i = 0; i < data.length; i++) {
  573. $(".class_team_" + data[i].class_type).val(data[i].team_id);
  574. }
  575. } else {
  576. $("#save_term_class").data("modify_flag", 0);
  577. }
  578. $('#myModal').modal();
  579. })
  580. }
  581. $('#calendar').calendar().on("clickCell.zui.calendar", function(event) {
  582. // console.log(event);
  583. click_function(event.date);
  584. });
  585. // 下一个日期
  586. $('#calendar').calendar().on("clickNextBtn.zui.calendar", function(event) {
  587. // console.log(event);
  588. date_cursor++;
  589. var data = {
  590. "dept_id": user_dept_id,
  591. "start_time": getMonthByCondition(date_cursor, 'first').Format("yyyy-MM-dd HH:mm:ss"),
  592. "end_time": getMonthByCondition(date_cursor, 'last').Format("yyyy-MM-dd HH:mm:ss"),
  593. 'type': team_type
  594. }
  595. updateCalendar(data);
  596. });
  597. // 上一个日期
  598. $('#calendar').calendar().on("clickPrevBtn.zui.calendar", function(event) {
  599. date_cursor--;
  600. var data = {
  601. "dept_id": user_dept_id,
  602. "start_time": getMonthByCondition(date_cursor, 'first').Format("yyyy-MM-dd HH:mm:ss"),
  603. "end_time": getMonthByCondition(date_cursor, 'last').Format("yyyy-MM-dd HH:mm:ss"),
  604. 'type': team_type
  605. }
  606. updateCalendar(data);
  607. });
  608. // 今天
  609. $('#calendar').calendar().on("clickTodayBtn.zui.calendar", function(event) {
  610. // console.log(event);
  611. date_cursor = 0;
  612. calendarInit();
  613. });
  614. $("#save_term_class").click(function() {
  615. // 判断当前时间和待添加班组时间判断
  616. var now_date = moment(nowStr).toDate(); //new Date();
  617. now_date.setDate(now_date.getDate() - 1);
  618. if(now_date.Format('yyyy-MM-dd') >= $("#save_term_class").data("date").trim() ){
  619. tip("不能生成过期的排班");
  620. return ;
  621. }
  622. // if($("#save_term_class").data("date").trim() >'2017-06-25'){
  623. // tip("只能生成6月份排班");// tip("不能生成过期的排班");
  624. // return ;
  625. // }
  626. var data = [];
  627. for (var i = 0; i < $("select[id*='_term']").length; i++) {
  628. if ($("select[id*='_term']").eq(i).val() != "") {
  629. // 这边需要转换一下,关于值
  630. var team_type_value = 1;
  631. if (i == 0) {
  632. team_type_value = 3;
  633. } else if (i == 1) {
  634. team_type_value = 1;
  635. } else {
  636. team_type_value = 2;
  637. }
  638. var start_time = $("#save_term_class").data("date") + " " + classCode[team_type_value].start_time + ":00";
  639. if (i == 0) {
  640. var date = new Date($("#save_term_class").data("date").replace(/-/, "/"));
  641. date.setDate(date.getDate() - 1);
  642. start_time = date.Format("yyyy-MM-dd") + " " + classCode[team_type_value].start_time + ":00";
  643. }
  644. var obj = {
  645. "class_type": team_type_value,
  646. "team_id": $("select[id*='_term']").eq(i).val(),
  647. "work_date": $("#save_term_class").data("date") + " 00:00:00",
  648. "start_time": start_time,
  649. "end_time": $("#save_term_class").data("date") + " " + classCode[team_type_value].end_time + ":00",
  650. "dept_id": user_dept_id,
  651. "user_type": 1 //表示收费站
  652. };
  653. data.push(obj);
  654. }
  655. }
  656. if (data.length == 0) {
  657. tip("请增加排班!");
  658. return;
  659. }
  660. if ($("#save_term_class").data("modify_flag") != 1) {
  661. post_common_service("teamClass/add/list", data, function(data) {
  662. updateCalendar();
  663. $('#myModal').modal('hide');
  664. }, function(error) {
  665. $('#myModal').modal('hide');
  666. })
  667. } else {
  668. post_common_service("teamClass/update/list", data, function(data) {
  669. updateCalendar();
  670. $('#myModal').modal('hide');
  671. }, function(error) {
  672. $('#myModal').modal('hide');
  673. })
  674. }
  675. })
  676. $(".close_btn").click(function() {
  677. $('#myModal,#add_fee_station').modal('hide');
  678. })
  679. // 获取部门为1的班组信息
  680. getTermClass(user_dept_id);
  681. // 获取班组信息
  682. function getTermClass(dept_id) {
  683. var data = {
  684. 'dept_id': dept_id,
  685. 'type': team_type
  686. }
  687. post_common_service("team/getTeamByDeptId/1/50", data, function(data) {
  688. for (var i = 0; i < data.list.length; i++) {
  689. $("#mooring_term,#middle_term,#night_term,#all_term").append("<option value='" + data.list[i].id + "'>" + data.list[i].name + "</option>")
  690. }
  691. }, function(error) {})
  692. }
  693. }
  694. // 根据class_type 获取班次名称
  695. function getTeamName(class_type) {
  696. if (class_type == 1) {
  697. return "早班";
  698. } else if (class_type == 2) {
  699. return "中班";
  700. } else if (class_type == 3) {
  701. return "夜班";
  702. } else if (class_type == 4) {
  703. return "全班";
  704. }
  705. }
  706. function setAddTermTitle(title) {
  707. $(".modal-title").html("添加班组-" + title);
  708. }