You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

1256 lines
38 KiB

  1. //author:zhaojian
  2. //date:20161030
  3. //组合线路的调度
  4. var dispatch_status = ''; //调度状态
  5. var current_page = 1; //当前页
  6. var page_size = 6; //每页个数
  7. var start_area = ''; //出发地
  8. var end_area = ''; //目的地
  9. var start_date = ''; //开始时间
  10. var end_date = ''; //结束时间
  11. var bus_type = '0'; //0单一全部 255直通 256穿梭 316组合
  12. var line_group = '0'; //线路组合
  13. var line = ''; //线路
  14. var sort_id = 0; // 排序
  15. var trHTML = ''; //待替换的HTML
  16. var sale_people_count = '0'; //列表中的已售人数
  17. var run_bus_id = ''; //run_bus中的唯一id
  18. var product_type = "" //产品线
  19. var t_time = "08:00";
  20. $(document).ready(function () {
  21. $('#tbodySingle').show();
  22. trHTML = $('#tbodySingle').html();
  23. $('#tbodySingle').html('');
  24. start_date = $('#start_date').val().trim();
  25. $('#tbodyGroup').show();
  26. $('#tbodyGroup').html('');
  27. start_date = $('#start_date').val().trim();
  28. $('#start_date').val(getDateTime(0));
  29. $('#end_date').val(getDateTime(11));
  30. base_info();
  31. //加载公司
  32. loadCompany();
  33. });
  34. //今天
  35. function today() {
  36. $('#start_date').val(getDateTime(0));
  37. $('#end_date').val(getDateTime(0));
  38. start_date = getDateTime(0);
  39. end_date = getDateTime(0);
  40. httpFirstData();
  41. }
  42. //明天
  43. function tomorrow() {
  44. $('#start_date').val(getDateTime(11));
  45. $('#end_date').val(getDateTime(11));
  46. start_date = getDateTime(11);
  47. end_date = getDateTime(11);
  48. httpFirstData();
  49. }
  50. //查询
  51. function searchBtnDidClicked() {
  52. httpFirstData();
  53. //头部产品线列表
  54. product_line();
  55. }
  56. //车辆事件
  57. function addCarEvent() {
  58. $('.td_car_input').bind('input', function () {
  59. ZZLog('carEvent click');
  60. })
  61. $('.td_car_input').bind('click', function () {
  62. var jsonstr = $(this).closest('tr').attr('data-param');
  63. var datajson = getJsonHtml(jsonstr);
  64. var _saled_count = datajson['order_cnt'];
  65. var _bus_id = datajson['id'];
  66. var _run_id = $(this).closest('tr').find('.run_id').val();
  67. var tbody = $(this).closest('tbody').attr('id');
  68. var _run_id2;
  69. if (tbody == 'tbodyGroup')
  70. _run_id2 = $("#tbodySingle .run_id:first").val();
  71. else
  72. _run_id2 = 0;
  73. //检索车俩时需要已售人数
  74. sale_people_count = _saled_count;
  75. //派遣时需要的run_bus_id
  76. run_bus_id = _bus_id;
  77. var _obj = $('.right_list_top[dataStr="vehicle"]');
  78. carDriverGuide(_obj); //车辆-司机-导游切换
  79. loadVehicleList(_run_id, _run_id2); //加载车辆
  80. })
  81. }
  82. //司机事件
  83. function addDriveEvent() {
  84. $('.td_driver_input').bind('input', function () {
  85. ZZLog('driverEvent');
  86. })
  87. $('.td_driver_input').bind('click', function () {
  88. ZZLog('driverEvent click');
  89. var jsonstr = $(this).closest('tr').attr('data-param');
  90. var datajson = getJsonHtml(jsonstr);
  91. var _saled_count = datajson['order_cnt'];
  92. var _bus_id = datajson['id'];
  93. var _run_id = $(this).closest('tr').find('.run_id').val();
  94. var tbody = $(this).closest('tbody').attr('id');
  95. var _run_id2;
  96. if (tbody == 'tbodyGroup')
  97. _run_id2 = $("#tbodySingle .run_id:first").val();
  98. else
  99. _run_id2 = 0;
  100. //检索车俩时需要已售人数
  101. sale_people_count = _saled_count;
  102. //派遣时需要的run_bus_id
  103. run_bus_id = _bus_id;
  104. var _obj = $('.right_list_top[dataStr="driver"]');
  105. carDriverGuide(_obj); //车辆-司机-导游切换
  106. loadDriverList(_run_id, _run_id2); //加载车辆
  107. })
  108. }
  109. //导游事件
  110. function addGuideEvent() {
  111. $('.td_guide_input').bind('input', function () {
  112. ZZLog('guideEvent');
  113. })
  114. $('.td_guide_input').bind('click', function () {
  115. ZZLog('guideEvent click');
  116. var jsonstr = $(this).closest('tr').attr('data-param');
  117. var datajson = getJsonHtml(jsonstr);
  118. var _saled_count = datajson['order_cnt'];
  119. var _bus_id = datajson['id'];
  120. var _run_id = $(this).closest('tr').find('.run_id').val();
  121. var tbody = $(this).closest('tbody').attr('id');
  122. var _run_id2;
  123. if (tbody == 'tbodyGroup')
  124. _run_id2 = $("#tbodySingle .run_id:first").val();
  125. else
  126. _run_id2 = 0;
  127. //检索车俩时需要已售人数
  128. sale_people_count = _saled_count;
  129. //派遣时需要的run_bus_id
  130. run_bus_id = _bus_id;
  131. var _obj = $('.right_list_top[dataStr="guide"]');
  132. carDriverGuide(_obj); //车辆-司机-导游切换
  133. loadGuideList(_run_id, _run_id2); //加载车辆
  134. })
  135. }
  136. ////可用,弹出调用取消;
  137. //function can_need(index){
  138. // //解决冒泡
  139. // solveBubbing();
  140. //
  141. // $(index).children().eq(3).hide();
  142. // $(index).children().eq(4).show();
  143. //}
  144. /**改变车辆-司机-导游*/
  145. //改变车牌号
  146. function changeVehicle(obj) {
  147. loadVehicleList();
  148. }
  149. //改变车辆公司
  150. function changeVehicleCompany(obj) {
  151. loadVehicleList();
  152. }
  153. //改变司机姓名手机
  154. function changeDriver(obj) {
  155. loadDriverList();
  156. }
  157. //改变司机公司
  158. function changeDriverCompany(obj) {
  159. loadDriverList();
  160. }
  161. //改变导游姓名手机
  162. function changeGuide(obj) {
  163. loadGuideList();
  164. }
  165. //改变导游公司
  166. function changeGuideCompany(obj) {
  167. loadGuideList();
  168. }
  169. //加载公司
  170. function loadCompany() {
  171. var param = {
  172. tp: "singleDispatch_getCompanyList"
  173. }
  174. ZZLog(base_api + "carDispatchManager/index.php" + JSON.stringify(param));
  175. $.ajax({
  176. type: "post",
  177. url: base_api + "carDispatchManager/index.php",
  178. data: param,
  179. dataType: 'json',
  180. success: function (res_data) {
  181. ZZLog(res_data);
  182. if (res_data['code'] != "0") {
  183. ZZAlertInfo(res_data['info']);
  184. } else {
  185. //公司
  186. var comHTML = '<option value="0">请选择</option>';
  187. var company_list = res_data['company_list'];
  188. for (var i = 0, m = company_list.length; i < m; i++) {
  189. var dict = company_list[i];
  190. var tempHTML = '<option value="' + dict['res_id'] + '">' + dict['res_name'] + '</option>'
  191. comHTML += tempHTML;
  192. }
  193. $('select[name="company"]').html(comHTML);
  194. }
  195. },
  196. error: function (e) {
  197. ZZLog(e);
  198. ZZAlertInfo('php 500');
  199. }
  200. });
  201. }
  202. function base_info() {
  203. var param = {
  204. tp: "carDispatch_groupDispatch_getBaseInfo"
  205. }
  206. ZZLog(base_api + "carDispatchManager/index.php" + JSON.stringify(param));
  207. //请求车次列表数据
  208. $.ajax({
  209. type: "post",
  210. url: base_api + "index.php",
  211. data: param,
  212. dataType: "json",
  213. success: function (data) {
  214. console.log(data);
  215. if (data['code'] != "0") {
  216. ZZAlertInfo(data['info']);
  217. } else {
  218. var base_info_html = '';
  219. for (var i = 0, j = data.base_info.length; i < j; i++) {
  220. base_info_html += '<option value="' + data.base_info[i].id + '">' + data.base_info[i].type_name + '</option>';
  221. }
  222. $("#product_type").html(base_info_html);
  223. //头部产品线列表
  224. product_line();
  225. //第一次加载数据
  226. httpFirstData();
  227. }
  228. },
  229. error: function (e) {
  230. ZZLog(e);
  231. ZZAlertInfo('php 500');
  232. }
  233. });
  234. }
  235. //头部产品线列表
  236. function product_line() {
  237. start_date = $('#start_date').val().trim();
  238. product_type = $("#product_type").val();
  239. var param = {
  240. tp: "carDispatch_groupDispatch_getOrderList",
  241. start_date: start_date,
  242. product_type: product_type
  243. }
  244. ZZLog(base_api + "index.php" + JSON.stringify(param));
  245. //请求车次列表数据
  246. $.ajax({
  247. type: "post",
  248. url: base_api + "index.php",
  249. data: param,
  250. dataType: "json",
  251. success: function (data) {
  252. console.log(data);
  253. if (data['code'] != "0") {
  254. ZZAlertInfo(data['info']);
  255. } else {
  256. productHTML(data);
  257. }
  258. },
  259. error: function (e) {
  260. ZZLog(e);
  261. ZZAlertInfo('php 500');
  262. }
  263. });
  264. };
  265. //替换产品线html
  266. function productHTML(data) {
  267. var product_name_temp = '<th style="min-width: 70px;background-color: #e5e5e5;">总计</th>';
  268. var product_no_temp = '<td style="width: 70px;"><span style="cursor: pointer;" line_id="-1" class="amend_line">' + data.total_num + '</span></td>';
  269. var pro_no = "";
  270. for (var i = 0, j = data.list.length; i < j; i++) {
  271. pro_no = data.list[i].num;
  272. if (data.list[i].num == "0") {
  273. pro_no = "";
  274. } else {
  275. pro_no = data.list[i].num;
  276. }
  277. product_name_temp += '<th style="min-width: 70px;background-color: #e5e5e5;">' + data.list[i].line_code + '</th>'
  278. product_no_temp += '<td style="width: 70px;"><span style="cursor: pointer;" line_id="' + data.list[i].line_id + '" class="amend_line">' + pro_no + '</span></td>'
  279. }
  280. $("#product_line_name").html(product_name_temp);
  281. $("#product_line_no").html(product_no_temp);
  282. //修改分车
  283. $(".amend_line").click(function () {
  284. var line_id = $(this).attr("line_id");
  285. var product_type = $('#product_type').val();
  286. var param = {
  287. tp: "carDispatch_groupDispatch_getOrderDetail",
  288. start_date: start_date,
  289. product_id: product_type,
  290. line_id: line_id
  291. }
  292. ZZLog(base_api + "index.php" + JSON.stringify(param));
  293. //请求车次列表数据
  294. $.ajax({
  295. type: "post",
  296. url: base_api + "index.php",
  297. data: param,
  298. dataType: "json",
  299. success: function (data) {
  300. console.log(data);
  301. if (data['code'] != "0") {
  302. ZZAlertInfo(data['info']);
  303. } else {
  304. re_amend_html(data);
  305. }
  306. },
  307. error: function (e) {
  308. ZZLog(e);
  309. ZZAlertInfo('php 500');
  310. }
  311. });
  312. });
  313. }
  314. //替换修改车次列表
  315. function re_amend_html(data, tbody) {
  316. var amend_list_temp = "";
  317. var amend_car_temp = '<option value="">选择车次号</option>';
  318. for (var i = 0, j = data.list_order.length; i < j; i++) {
  319. amend_list_temp += '<tr class="trRow">'
  320. + '<td><input class="ace_check2" type="checkbox" name="' + data.list_order[i].order_id + '" man_no="' + data.list_order[i].num + '" sin_bus_id="' + data.list_order[i].run_bus_id +'" style="width: 18px;height: 18px;" onclick="selectChecked2(1)" /></td>'
  321. + '<td>' + data.list_order[i].num + '</td>';
  322. if (data.list_order[i].day == 2)
  323. amend_list_temp += '<td>' + data.list_order[i].line_codes + ' 第二日' + '</td>';
  324. else
  325. amend_list_temp += '<td>' + data.list_order[i].line_codes + '</td>';
  326. amend_list_temp += '<td>' + data.list_order[i].start_station + '</td>'
  327. + '<td>' + data.list_order[i].trans_name + '</td>'
  328. + '<td>' + data.list_order[i].tel + '</td>'
  329. + '<td>' + data.list_order[i].run_bus_id + '</td>'
  330. + '</tr>'
  331. }
  332. for (var i = 0, j = data.list_bus.length; i < j; i++) {
  333. amend_car_temp += '<option value="' + data.list_bus[i].run_bus_id + ',' + data.list_bus[i].run_id + '">' + data.list_bus[i].run_bus_id + '(余位' + data.list_bus[i].stock + ')' + '</option>'
  334. }
  335. $("#amend_list").html(amend_list_temp);
  336. $("#amend_car_list").html(amend_car_temp);
  337. if (tbody == 'tbodySingle')
  338. $(".amend_car_bottom").show();
  339. else
  340. $(".amend_car_bottom").show();
  341. $(".alert-block").show();
  342. }
  343. //第一次加载
  344. function httpFirstData() {
  345. var tpSingle, tpGroup;
  346. current_page = 1;
  347. tpSingle = 'carDispatch_groupDispatch_getSingleResult';
  348. tpGroup = 'carDispatch_groupDispatch_getDispatchResult';
  349. httpLoadData(tpSingle, 'tbodySingle');
  350. httpLoadData(tpGroup, 'tbodyGroup');
  351. }
  352. function httpLoadData(tp, tbody) {
  353. start_date = $('#start_date').val().trim();
  354. product_type = $('#product_type').val();
  355. var param = {
  356. tp: tp,
  357. run_date: start_date,
  358. product_id: product_type,
  359. current_page: current_page,
  360. page_size: page_size
  361. }
  362. ZZLog(base_api + "index.php" + JSON.stringify(param));
  363. //请求车次列表数据
  364. $.ajax({
  365. type: "post",
  366. url: base_api + "index.php",
  367. data: param,
  368. dataType: "json",
  369. success: function (res_data) {
  370. ZZLog(res_data);
  371. //加载车辆
  372. loadVehicleList();
  373. //加载司机
  374. loadDriverList();
  375. //加载导游
  376. loadGuideList();
  377. if (res_data['code'] != "0") {
  378. ZZAlertInfo(res_data['info']);
  379. } else {
  380. setTrHTML(res_data, tbody);
  381. initPageDiv(res_data, tbody, tp);
  382. }
  383. $("#travel-1").height('auto');
  384. $("#travel-2").height('auto');
  385. if ($("#travel-1").height() >= 230)
  386. $("#travel-1").height($('#travel-1').height() + 60);
  387. if ($("#travel-2").height() >= 230)
  388. $("#travel-2").height($('#travel-2').height() + 60)
  389. $(".right ul").height($('.left').height() - 101);
  390. },
  391. error: function (e) {
  392. ZZLog(e);
  393. ZZAlertInfo('php 500');
  394. }
  395. });
  396. }
  397. function initPageDiv(res_data, tbody, tp) {
  398. var pageCount = res_data['page']['total_page'];
  399. if (2 <= 0) {
  400. $('#' + tbody + ' .pageDiv').hide();
  401. } else {
  402. $('#' + tbody).closest('table').next().createPage({
  403. pageCount: pageCount, //总页数
  404. current: current_page, //当前页
  405. turndown: 'true', //是否显示跳转框,显示为true,不现实为false,一定记得加上引号...
  406. backFn: function (p) {
  407. current_page = p;
  408. httpLoadData(tp, tbody);
  409. }
  410. });
  411. $('#' + tbody).closest('table').next().show();
  412. }
  413. }
  414. //设置表格HTML
  415. function setTrHTML(res_data, tbody) {
  416. var run_list = res_data['data'];
  417. var HTML = '';
  418. for (var i = 0, m = run_list.length; i < m; i++) {
  419. var dict = run_list[i];
  420. var tempHTML = trHTML;
  421. tempHTML = tempHTML.replace('[data-param]', setJsonHtml(dict));
  422. tempHTML = tempHTML.replace('[name]', dict['run_bus_order_id']);
  423. tempHTML = tempHTML.replace('[序号]', dict['run_bus_order_id']);
  424. tempHTML = tempHTML.replace('[出发日期]', dict['run_date']);
  425. tempHTML = tempHTML.replace('[人数]', dict['order_cnt']);
  426. tempHTML = tempHTML.replace('[组成]', dict['line_code']);
  427. tempHTML = tempHTML.replace('[座位数]', dict['seat_count']);
  428. tempHTML = tempHTML.replace('[余位]', dict['remain_cnt']);
  429. tempHTML = tempHTML.replace('[bus_num]', dict['run_bus_order_id']);
  430. tempHTML = tempHTML.replace('[run_id]', dict['run_id']);
  431. var carcstr = '';
  432. if ("" == dict['send_bus_res_name'].trim()) {
  433. carcstr = '<input class="td_car_input" />';
  434. } else {
  435. // carcstr = '<span class="tdcar">' + dict['send_bus_res_name'] + '</span>';
  436. carcstr = '<input class="tdcar td_car_input" value="' + dict['send_bus_res_name'] + '" />';
  437. }
  438. carcstr += '<input class="run_id" type="hidden" value="' + dict['run_id'] + '" />';
  439. tempHTML = tempHTML.replace('[车辆]', carcstr);
  440. var drivercstr = '';
  441. if ("" == dict['send_driver_name'].trim()) {
  442. drivercstr = '<input class="td_driver_input" />';
  443. } else {
  444. // drivercstr = '<span class="tddriver">' + dict['send_bus_driver_res_name'] + '</span>';
  445. drivercstr = '<input class="tddriver td_driver_input" value="' + dict['send_driver_name'] + '" />';
  446. }
  447. tempHTML = tempHTML.replace('[司机]', drivercstr);
  448. var guidecstr = '';
  449. if ("" == dict['send_tour_guide_name'].trim()) {
  450. guidecstr = '<input class="td_guide_input" />';
  451. } else {
  452. // guidecstr = '<span class="tdguide">' + dict['send_tour_guide_name'] + '</span>';
  453. guidecstr = '<input class="tdguide td_guide_input" value="' + dict['send_tour_guide_name'] + '" />';
  454. }
  455. tempHTML = tempHTML.replace('[导游]', guidecstr);
  456. HTML += tempHTML;
  457. }
  458. $('#' + tbody).html(HTML);
  459. //给车辆 司机 导游绑定事件
  460. addCarEvent();
  461. addDriveEvent();
  462. addGuideEvent();
  463. //修改分车
  464. $('#' + tbody).find(".amend_line2").click(function () {
  465. //$("#amend_button").removeAttr("onclick");
  466. $("#amend_button").attr("onclick","amend_save();");
  467. var tp = '';
  468. var product_type = $('#product_type').val();
  469. if (tbody == 'tbodySingle')
  470. tp = 'carDispatch_getGroupInfo_getTransmsg';
  471. else
  472. tp = 'carDispatch_getGroupInfo_getRunmsg';
  473. var bus_num = $(this).attr("bus_num"),
  474. run_id = $(this).attr("run_id");
  475. var param = {
  476. tp: tp,
  477. run_date: start_date,
  478. product_id: product_type,
  479. run_id: run_id,
  480. bus_num: bus_num
  481. }
  482. ZZLog(base_api + "index.php" + JSON.stringify(param));
  483. //请求车次列表数据
  484. $.ajax({
  485. type: "post",
  486. url: base_api + "index.php",
  487. data: param,
  488. dataType: "json",
  489. success: function (data) {
  490. console.log(data);
  491. if (data['code'] != "0") {
  492. ZZAlertInfo(data['info']);
  493. } else {
  494. re_amend_html(data, tbody);
  495. }
  496. },
  497. error: function (e) {
  498. ZZLog(e);
  499. ZZAlertInfo('php 500');
  500. }
  501. });
  502. });
  503. }
  504. //取消,调用取消;
  505. function dispatchCancel(index) {
  506. //解决冒泡
  507. solveBubbing();
  508. $(index).parent().prev().show();
  509. $(index).parent().hide();
  510. }
  511. //复选框判断
  512. function selectChecked(index) {
  513. //index=0最上面的全选 index=1表示的是下面所有的
  514. var cur_check = $('.ace_check')[0];
  515. var checkList = $('.ace_check');
  516. var checkCount = checkList.length - 1;
  517. var true_count = 0;
  518. for (var i = 1; i < checkList.length; i++) {
  519. if (index == '0') {
  520. checkList[i].checked = cur_check.checked;
  521. } else {
  522. if (checkList[i].checked == false) {
  523. cur_check.checked = false
  524. } else {
  525. true_count = true_count + 1;
  526. }
  527. }
  528. }
  529. //判断下面是否选中完
  530. if (checkCount == true_count) {
  531. cur_check.checked = true;
  532. }
  533. }
  534. //车辆-司机-导游切换
  535. function carDriverGuide(obj) {
  536. $('.right_list_top').each(function (index, domEle) {
  537. $(this).addClass('right_com_line btn-primary');
  538. $(this).removeClass('right_sole_line');
  539. var typestr = $(this).attr('dataStr');
  540. $('#' + typestr).hide();
  541. });
  542. $(obj).addClass('right_sole_line');
  543. $(obj).removeClass('right_com_line btn-primary');
  544. $('#' + $(obj).attr('dataStr')).show();
  545. }
  546. //加载车辆
  547. function loadVehicleList(run_id, run_id2) {
  548. var _keyword = $('input[type="text"][name="vehicle"]').val().trim();
  549. var _company = $('#vehicleCompany').val();
  550. if (typeof run_id == null)
  551. run_id = '';
  552. if (typeof run_id2 == null)
  553. run_id2 = '';
  554. var param = {
  555. tp: 'carDispatch_groupDispatch_getVehicleList',
  556. keyword: _keyword,
  557. company: _company,
  558. salecount: sale_people_count,
  559. run_date: start_date,
  560. run_time: t_time,
  561. run_id1: run_id,
  562. run_id2: run_id2
  563. }
  564. ZZLog(base_api + "index.php" + JSON.stringify(param));
  565. //请求车辆列表
  566. $.ajax({
  567. type: "post",
  568. url: base_api + 'index.php',
  569. data: param,
  570. dataType: "json",
  571. success: function (res_data) {
  572. ZZLog(res_data);
  573. if (res_data['code'] != '0') {
  574. ZZAlertInfo(res_data['info']);
  575. } else {
  576. //车辆
  577. //设置车辆的HTML
  578. setVehicleHTML(res_data);
  579. // 给li绑定事件
  580. setLiBindEvent()
  581. }
  582. },
  583. error: function (e) {
  584. ZZLog(e);
  585. }
  586. });
  587. }
  588. //给li绑定事件
  589. function setLiBindEvent() {
  590. var $temp = null;
  591. $('.statusOK').bind('click', function () {
  592. $(this).parent().find(".status_div_show1").show();
  593. $(this).parent().find(".status_div_hide").hide();
  594. $(this).children().eq(3).hide();
  595. $(this).children().eq(4).show();
  596. })
  597. }
  598. //加载司机
  599. function loadDriverList(run_id, run_id2) {
  600. var _keyword = $('input[type="text"][name="driver"]').val().trim();
  601. var _company = $('#driverCompany').val();
  602. if (typeof run_id == null)
  603. run_id = '';
  604. if (typeof run_id2 == null)
  605. run_id2 = '';
  606. var param = {
  607. tp: 'carDispatch_groupDispatch_getDriverList',
  608. keyword: _keyword,
  609. company: _company,
  610. run_date: start_date,
  611. run_time: t_time,
  612. run_id1: run_id,
  613. run_id2: run_id2
  614. }
  615. ZZLog(base_api + "index.php" + JSON.stringify(param));
  616. //请求车辆列表
  617. $.ajax({
  618. type: "post",
  619. url: base_api + 'index.php',
  620. data: param,
  621. dataType: "json",
  622. success: function (res_data) {
  623. ZZLog(res_data);
  624. if (res_data['code'] != '0') {
  625. ZZAlertInfo(res_data['info']);
  626. } else {
  627. //司机
  628. //设置司机的HTML
  629. setDriverHTML(res_data);
  630. // 给li绑定事件
  631. setLiBindEvent()
  632. }
  633. },
  634. error: function (e) {
  635. ZZLog(e);
  636. }
  637. });
  638. }
  639. //加载导游
  640. function loadGuideList(run_id, run_id2) {
  641. var _keyword = $('input[type="text"][name="guide"]').val().trim();
  642. var _company = $('#guideCompany').val();
  643. if (typeof run_id == null)
  644. run_id = '';
  645. if (typeof run_id2 == null)
  646. run_id2 = '';
  647. var param = {
  648. tp: 'carDispatch_groupDispatch_getGuideList',
  649. keyword: _keyword,
  650. company: _company,
  651. run_date: start_date,
  652. run_time: t_time,
  653. run_id1: run_id,
  654. run_id2: run_id2
  655. }
  656. ZZLog(base_api + "index.php" + JSON.stringify(param));
  657. //请求车辆列表
  658. $.ajax({
  659. type: "post",
  660. url: base_api + 'index.php',
  661. data: param,
  662. dataType: "json",
  663. success: function (res_data) {
  664. ZZLog(res_data);
  665. if (res_data['code'] != '0') {
  666. ZZAlertInfo(res_data['info']);
  667. } else {
  668. //导游
  669. //设置导游的HTML
  670. setGuideHTML(res_data);
  671. // 给li绑定事件
  672. setLiBindEvent()
  673. }
  674. },
  675. error: function (e) {
  676. ZZLog(e);
  677. }
  678. });
  679. }
  680. //设置车辆-司机-导游的HTML
  681. //设置车辆的HTML
  682. function setVehicleHTML(res_data) {
  683. var carHTML = '';
  684. var vehicle_list = res_data['vehicle_list'];
  685. for (var i = 0, m = vehicle_list.length; i < m; i++) {
  686. var dict = vehicle_list[i];
  687. var cstr1 = '';
  688. var cstr2 = '';
  689. if (dict['bus_status'] == '336') {
  690. cstr1 = '<span class="right_status_OK">可用</span>';
  691. cstr2 = 'statusOK';
  692. } else {
  693. cstr1 = '<span class="right_status_NO">被用</span>';
  694. cstr2 = 'statusNO';
  695. }
  696. var tempHTML = '<li class="' + cstr2 + '" data-param=' + setJsonHtml(dict) + '>' +
  697. '<span class="car_list_1">' + dict['vihicle_number'] + '</span>' +
  698. '<span class="car_list_1">| ' + dict['vihicle_seat'] + '</span>' +
  699. '<span class="car_list_1">| ' + dict['company_name'] + '</span>' +
  700. '<span class="status_div_show1">' +
  701. cstr1 +
  702. '</span> ' +
  703. '<span class="status_div_hide">' +
  704. '<span class="status_two status_two_left" onclick="dispatchVehicle(this)">调用</span>' +
  705. '<span class="status_two status_two_right" onclick="dispatchCancel(this)">取消</span>' +
  706. '</span>' +
  707. '</li>';
  708. carHTML += tempHTML;
  709. }
  710. $('#vehicle_list').html(carHTML);
  711. }
  712. //设置司机的HTML
  713. function setDriverHTML(res_data) {
  714. var driverHTML = '';
  715. var driver_list = res_data['driver_list'];
  716. for (var i = 0, m = driver_list.length; i < m; i++) {
  717. var dict = driver_list[i];
  718. var cstr1 = '';
  719. var cstr2 = '';
  720. // if (dict['driver_status'] == '0') {
  721. cstr1 = '<span class="right_status_OK">可用</span>';
  722. cstr2 = 'statusOK';
  723. // } else {
  724. // cstr1 = '<span class="right_status_NO">被用</span>';
  725. // cstr2 = 'statusNO';
  726. // }
  727. var tempHTML = '<li class="' + cstr2 + '" data-param=' + setJsonHtml(dict) + '>' +
  728. '<span class="car_list_1">' + dict['driver_name'] + '</span>' +
  729. '<span class="car_list_1">| ' + dict['driver_phone'] + '</span>' +
  730. '<span class="car_list_1">| ' + dict['company_name'] + '</span>' +
  731. '<span class="status_div_show1">' +
  732. cstr1 +
  733. '</span> ' +
  734. '<span class="status_div_hide">' +
  735. '<span class="status_two status_two_left" onclick="dispatchDriver(this)">调用</span>' +
  736. '<span class="status_two status_two_right" onclick="dispatchCancel(this)">取消</span>' +
  737. '</span>' +
  738. '</li>';
  739. driverHTML += tempHTML;
  740. }
  741. $('#driver_list').html(driverHTML);
  742. }
  743. //设置导游的HTML
  744. function setGuideHTML(res_data) {
  745. var guideHTML = '';
  746. var guide_list = res_data['guide_list'];
  747. for (var i = 0, m = guide_list.length; i < m; i++) {
  748. var dict = guide_list[i];
  749. var cstr1 = '';
  750. var cstr2 = '';
  751. // if (dict['guide_status'] == '0') {
  752. cstr1 = '<span class="right_status_OK">可用</span>';
  753. cstr2 = 'statusOK';
  754. // } else {
  755. // cstr1 = '<span class="right_status_NO">被用</span>';
  756. // cstr2 = 'statusNO';
  757. // }
  758. var tempHTML = '<li class="' + cstr2 + '" data-param=' + setJsonHtml(dict) + '>' +
  759. '<span class="car_list_1">' + dict['guide_name'] + '</span>' +
  760. '<span class="car_list_1">| ' + dict['guide_phone'] + '</span>' +
  761. '<span class="car_list_1">| ' + dict['company_name'] + '</span>' +
  762. '<span class="status_div_show1">' +
  763. cstr1 +
  764. '</span> ' +
  765. '<span class="status_div_hide">' +
  766. '<span class="status_two status_two_left" onclick="dispatchGuide(this)">调用</span>' +
  767. '<span class="status_two status_two_right" onclick="dispatchCancel(this)">取消</span>' +
  768. '</span>' +
  769. '</li>';
  770. guideHTML += tempHTML;
  771. }
  772. $('#guide_list').html(guideHTML);
  773. }
  774. /*派遣*/
  775. //重置
  776. function resetDispatch(obj) {
  777. var _idstr = '';
  778. var _idarr = [];
  779. $('.ace_check').each(function (index, domEle) {
  780. if (domEle.checked && index != 0) {
  781. var jsonstr = $(this).closest('tr').attr('data-param');
  782. var datajson = getJsonHtml(jsonstr);
  783. if (typeof datajson != 'undefined' && datajson['id'] != "") {
  784. _idarr.push(datajson['id']);
  785. }
  786. }
  787. })
  788. if (_idarr.length <= 0) {
  789. ZZAlertInfo('请选择');
  790. return;
  791. }
  792. _idstr = _idarr.join(',');
  793. var param = {
  794. tp: 'singleDispatch_resetDispatch',
  795. idstr: _idstr
  796. }
  797. ZZLog(base_api + 'carDispatchManager/index.php' + JSON.stringify(param));
  798. $.ajax({
  799. type: "post",
  800. url: base_api + 'carDispatchManager/index.php',
  801. data: param,
  802. dataType: "json",
  803. success: function (res_data) {
  804. ZZLog(res_data);
  805. if (res_data['code'] != "0") {
  806. ZZAlertInfo(res_data['info'], function () {
  807. $('.ace_check').each(function (index, domEle) {
  808. domEle.checked = false;
  809. })
  810. });
  811. } else {
  812. httpFirstData();
  813. }
  814. }, error: function (e) {
  815. ZZLog(e);
  816. }
  817. });
  818. }
  819. //调用车辆
  820. function dispatchVehicle(obj) {
  821. //解决冒泡
  822. solveBubbing();
  823. var $li = $(obj).closest('li');
  824. var json_str = $li.attr('data-param');
  825. var li_json = getJsonHtml(json_str);
  826. if ("" == run_bus_id.trim()) {
  827. ZZAlertInfo('未选择需派遣线路车辆');
  828. return;
  829. }
  830. var _bus_id = run_bus_id;
  831. var _res_id = li_json['res_id'];
  832. var param = {
  833. tp: 'singleDispatch_vehicleDispatch',
  834. bus_id: _bus_id,
  835. res_id: _res_id
  836. }
  837. ZZLog(base_api + 'carDispatchManager/index.php' + JSON.stringify(param));
  838. loading();
  839. $.ajax({
  840. type: "post",
  841. url: base_api + 'carDispatchManager/index.php',
  842. data: param,
  843. dataType: 'json',
  844. success: function (res_data) {
  845. ZZLog(res_data);
  846. if (res_data['code'] != '0') {
  847. ZZAlertInfo(res_data['info']);
  848. } else {
  849. run_bus_id = ''; //置空run_bus_id
  850. httpFirstData();
  851. }
  852. closeLoading();
  853. }, error: function (e) {
  854. ZZLog(e);
  855. closeLoading();
  856. }
  857. });
  858. dispatchCancel(obj);
  859. }
  860. //派遣司机
  861. function dispatchDriver(obj) {
  862. //解决冒泡
  863. solveBubbing();
  864. var $li = $(obj).closest('li');
  865. var json_str = $li.attr('data-param');
  866. var li_json = getJsonHtml(json_str);
  867. if ("" == run_bus_id.trim()) {
  868. ZZAlertInfo('未选择需派遣线路司机');
  869. return;
  870. }
  871. var _bus_id = run_bus_id;
  872. var _res_id = li_json['res_id'];
  873. var param = {
  874. tp: 'singleDispatch_DriverDispatch',
  875. bus_id: _bus_id,
  876. res_id: _res_id
  877. }
  878. ZZLog(base_api + 'carDispatchManager/index.php' + JSON.stringify(param));
  879. $.ajax({
  880. type: "post",
  881. url: base_api + 'carDispatchManager/index.php',
  882. data: param,
  883. dataType: 'json',
  884. success: function (res_data) {
  885. ZZLog(res_data);
  886. if (res_data['code'] != '0') {
  887. ZZAlertInfo(res_data['info']);
  888. } else {
  889. run_bus_id = ''; //置空run_bus_id
  890. httpFirstData(); //重新加载数据
  891. }
  892. }, error: function (e) {
  893. ZZLog(e);
  894. }
  895. });
  896. dispatchCancel(obj);
  897. }
  898. //派遣导游
  899. function dispatchGuide(obj) {
  900. //解决冒泡
  901. solveBubbing();
  902. var $li = $(obj).closest('li');
  903. var json_str = $li.attr('data-param');
  904. var li_json = getJsonHtml(json_str);
  905. if ("" == run_bus_id.trim()) {
  906. ZZAlertInfo('未选择需派遣线路导游');
  907. return;
  908. }
  909. var _bus_id = run_bus_id;
  910. var _res_id = li_json['res_id'];
  911. var param = {
  912. tp: 'singleDispatch_GuideDispatch',
  913. bus_id: _bus_id,
  914. res_id: _res_id
  915. }
  916. ZZLog(base_api + 'carDispatchManager/index.php' + JSON.stringify(param));
  917. $.ajax({
  918. type: "post",
  919. url: base_api + 'carDispatchManager/index.php',
  920. data: param,
  921. dataType: 'json',
  922. success: function (res_data) {
  923. ZZLog(res_data);
  924. if (res_data['code'] != '0') {
  925. ZZAlertInfo(res_data['info']);
  926. } else {
  927. run_bus_id = ''; //置空run_bus_id
  928. httpFirstData(); //重新加载数据
  929. }
  930. }, error: function (e) {
  931. ZZLog(e);
  932. }
  933. });
  934. dispatchCancel(obj);
  935. }
  936. //取消修改
  937. function cancel_amend() {
  938. solveBubbing();
  939. $(".alert-block").hide();
  940. }
  941. //加车
  942. function add_car() {
  943. start_date = $('#start_date').val().trim();
  944. var param = {
  945. tp: 'carDispatch_groupDispatch_addBus',
  946. run_date: start_date
  947. }
  948. ZZLog(base_api + 'index.php' + JSON.stringify(param));
  949. $.ajax({
  950. type: "post",
  951. url: base_api + 'index.php',
  952. data: param,
  953. dataType: 'json',
  954. success: function (res_data) {
  955. ZZLog(res_data);
  956. if (res_data['code'] != '0') {
  957. ZZAlertInfo(res_data['info']);
  958. } else {
  959. ZZAlertInfo("加车成功", function () {
  960. httpFirstData();
  961. });
  962. }
  963. }, error: function (e) {
  964. ZZLog(e);
  965. }
  966. });
  967. }
  968. //减车
  969. function cut_car() {
  970. var _car_str = '';
  971. var _car_arr = [];
  972. start_date = $('#start_date').val().trim();
  973. $('.ace_check').each(function (index, domEle) {
  974. if (domEle.checked && index != 0) {
  975. var car_id = $(this).attr('name');
  976. _car_arr.push(car_id);
  977. }
  978. })
  979. if (_car_arr.length <= 0) {
  980. ZZAlertInfo('请选择');
  981. return;
  982. }
  983. _car_str = _car_arr.join(',');
  984. var param = {
  985. tp: 'carDispatch_groupDispatch_delBus',
  986. bus_order_id: _car_str,
  987. run_date: start_date
  988. }
  989. ZZLog(base_api + 'index.php' + JSON.stringify(param));
  990. $.ajax({
  991. type: "post",
  992. url: base_api + 'index.php',
  993. data: param,
  994. dataType: 'json',
  995. success: function (res_data) {
  996. ZZLog(res_data);
  997. if (res_data['code'] != '0') {
  998. ZZAlertInfo(res_data['info']);
  999. } else {
  1000. ZZAlertInfo("减车成功!", function () {
  1001. httpFirstData();
  1002. });
  1003. }
  1004. }, error: function (e) {
  1005. ZZLog(e);
  1006. }
  1007. });
  1008. }
  1009. //车次复选框判断
  1010. function selectChecked(index) {
  1011. //index=0最上面的全选 index=1表示的是下面所有的
  1012. var cur_check = $('.ace_check')[0];
  1013. var checkList = $('.ace_check');
  1014. var checkCount = checkList.length - 1;
  1015. var true_count = 0;
  1016. for (var i = 1; i < checkList.length; i++) {
  1017. if (index == '0') {
  1018. checkList[i].checked = cur_check.checked;
  1019. } else {
  1020. if (checkList[i].checked == false) {
  1021. cur_check.checked = false
  1022. } else {
  1023. true_count = true_count + 1;
  1024. }
  1025. }
  1026. }
  1027. //判断下面是否选中完
  1028. if (checkCount == true_count) {
  1029. cur_check.checked = true;
  1030. }
  1031. }
  1032. //修改车次复选框判断
  1033. function selectChecked2(index) {
  1034. //index=0最上面的全选 index=1表示的是下面所有的
  1035. var cur_check = $('.ace_check2')[0];
  1036. var checkList = $('.ace_check2');
  1037. var checkCount = checkList.length - 1;
  1038. var true_count = 0;
  1039. for (var i = 1; i < checkList.length; i++) {
  1040. if (index == '0') {
  1041. checkList[i].checked = cur_check.checked;
  1042. } else {
  1043. if (checkList[i].checked == false) {
  1044. cur_check.checked = false
  1045. } else {
  1046. true_count = true_count + 1;
  1047. }
  1048. }
  1049. var man_no_arr = 0;
  1050. $('.ace_check2').each(function (index, item) {
  1051. if (this.checked && index != 0) {
  1052. var man_no_one = Math.floor($(this).attr('man_no'));
  1053. man_no_arr += man_no_one;
  1054. }
  1055. });
  1056. $("#select_no").text(man_no_arr);
  1057. }
  1058. //判断下面是否选中完
  1059. if (checkCount == true_count) {
  1060. cur_check.checked = true;
  1061. }
  1062. }
  1063. function selectBarInfo(index) {
  1064. window.location.href = "single_dispatch.html?bus_type=" + index;
  1065. }
  1066. function amend_save() {
  1067. $("#amend_button").removeAttr("onclick");
  1068. var ary = [];//主订单号集合
  1069. var bus_arr = [];//要修改的车次号集合
  1070. var alter_arr=[];//每个订单要修改的人数详情
  1071. var man_no_arr = 0;
  1072. $('.ace_check2').each(function (index, item) {
  1073. if (this.checked && index != 0) {
  1074. ary.push($(this).attr('name'));
  1075. bus_arr.push($(this).attr('sin_bus_id'));
  1076. alter_arr.push($(this).attr('man_no'));
  1077. var man_no_one = Math.floor($(this).attr('man_no'));
  1078. man_no_arr += man_no_one;
  1079. }
  1080. });
  1081. if (ary.length <= 0) {
  1082. ZZAlertInfo('请勾选!!!');
  1083. $("#amend_button").attr("onclick","amend_save();");
  1084. return;
  1085. }
  1086. var pro_str = ary.join(',');
  1087. //ZZAlertInfo(pro_str);
  1088. var bus_str = bus_arr.join(',');
  1089. var alter_str = alter_arr.join(',');
  1090. //ZZAlertInfo(bus_str);return;
  1091. var bus_and_run_arr = $("#amend_car_list").val().split(",");
  1092. var bus_num = bus_and_run_arr[0];
  1093. var run_id = bus_and_run_arr[1];
  1094. var param = {
  1095. tp: 'carDispatch_getGroupInfo_uptRunId',
  1096. orderid: pro_str,
  1097. bus_ori_str:bus_str,
  1098. alter_str:alter_str,
  1099. run_id: run_id,
  1100. p_num: man_no_arr,
  1101. bus_num: bus_num
  1102. }
  1103. ZZLog(base_api + 'index.php' + JSON.stringify(param));
  1104. $.ajax({
  1105. type: "post",
  1106. url: base_api + 'index.php',
  1107. data: param,
  1108. dataType: 'json',
  1109. success: function (res_data) {
  1110. ZZLog(res_data);
  1111. if (res_data['code'] != '0') {
  1112. ZZAlertInfo(res_data['info']);
  1113. } else {
  1114. ZZAlertInfo("修改成功");
  1115. $(".alert-block").hide();
  1116. httpFirstData();
  1117. }
  1118. $("#amend_button").attr("onclick","amend_save();");
  1119. }, error: function (e) {
  1120. ZZLog(e);
  1121. $("#amend_button").attr("onclick","amend_save();");
  1122. }
  1123. });
  1124. }
  1125. //自动分车
  1126. function auto_bus() {
  1127. if ($("#tbodySingle").html().trim() != '' || $("#tbodyGroup").html().trim() != '') {
  1128. ZZConfirm(
  1129. '自动分车将重置当前分车与派车结果<br />确定要自动分车吗?', function () {
  1130. auto_bus_dispatch();
  1131. }
  1132. )
  1133. } else {
  1134. auto_bus_dispatch();
  1135. }
  1136. }
  1137. function auto_bus_dispatch() {
  1138. start_date = $('#start_date').val().trim();
  1139. product_type = $('#product_type').val();
  1140. var param = {
  1141. tp: 'carDispatch_groupDispatch_dispatch',
  1142. run_date: start_date,
  1143. product_id: product_type
  1144. }
  1145. ZZLog(base_api + 'index.php' + JSON.stringify(param));
  1146. loading();
  1147. $.ajax({
  1148. type: "post",
  1149. url: base_api + 'index.php',
  1150. data: param,
  1151. dataType: 'json',
  1152. success: function (res_data) {
  1153. ZZLog(res_data);
  1154. if (res_data['code'] != '0') {
  1155. ZZAlertInfo(res_data['info']);
  1156. } else {
  1157. searchBtnDidClicked();
  1158. }
  1159. closeLoading();
  1160. }, error: function (e) {
  1161. ZZLog(e);
  1162. closeLoading();
  1163. }
  1164. });
  1165. }