charge_team_schedule.js 36 KB

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