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.
 
 
 
 

1242 rivejä
44 KiB

  1. /*
  2. 作者:yimazsq@163.com
  3. 时间:2016-10-18
  4. 描述:单一线路
  5. */
  6. var line_type = getPar('line_type');
  7. //参数url
  8. var urlstr = base_api + 'orderManager/index.php';
  9. var ticketHTML = '';
  10. var channelHTML = '';
  11. //记录去程的 ticket id
  12. var go_ticket_id = '';
  13. //记录返程的ticket id
  14. var back_ticket_id = '';
  15. window.onload = function () {
  16. ticketHTML = $('#list').html();
  17. channelHTML = $('.select_line').html();
  18. //调用展示页面的接口
  19. reloadData();
  20. }
  21. //叶面开始时加载数据
  22. function reloadData() {
  23. var run_id = getPar('run_id');
  24. var data = {
  25. run_id: run_id,
  26. tp: 'singleOrder_getProductDetail'
  27. };
  28. ZZLog(data);
  29. $.ajax({
  30. url: urlstr,
  31. data: data,
  32. type: "post",
  33. dataType: "json",
  34. async: false,
  35. success: function (data) {
  36. if (data.code == "0") {
  37. console.log(data);
  38. //根据班次决定是否显示 返程选择
  39. if (data.area_num > 0) {
  40. $('#back-select').hide();
  41. }
  42. replaceData(data);
  43. } else {
  44. ZZAlertInfo(data.info);
  45. }
  46. }
  47. });
  48. }
  49. //替换页面开始加载的数据
  50. function replaceData(data) {
  51. $('#line_name').text(data.list.line_name);
  52. $('#Wdate1').val(data.list.run_date);
  53. //厦门项目接送机,时间在这个页面选,然后重新获取run_main.run_id
  54. // if(typeof data.list.run_time == "object"){
  55. // var run_time = '';
  56. // $.each(data.list.run_time, function(){
  57. // run_time += '<option value="[0]" selected="selected">' + data.list.run_time + '</option>';
  58. // })
  59. // }else{
  60. $('#go_run_time').html('<option value="[0]" selected="selected">' + data.list.run_time + '</option>');
  61. // }
  62. //调用上车站接口
  63. var run_id = getPar('run_id');
  64. var start_area_id = getPar('start_area_id');
  65. var start_station_id = getPar('start_station_id');
  66. var end_station_id = getPar('end_station_id');
  67. var data = {
  68. run_id: run_id,
  69. start_area_id: start_area_id,
  70. tp: "singleOrder_getStartStation"
  71. };
  72. ZZLog(data);
  73. $.ajax({
  74. url: urlstr, //请求地址
  75. data: data,
  76. type: "post",
  77. dataType: "json",
  78. async: false,
  79. success: function (data) {
  80. if (data.code == "0") {
  81. ZZLog(data);
  82. //替换去程 出发地信息
  83. var start_res_html = '<option value="[0]">请选择</option>';
  84. for (var i = 0; i < data.list.length; i++) {
  85. var tempHTML1 = '<option value="[0]">请选择</option>';
  86. tempHTML1 = tempHTML1.replace('请选择', data.list[i].res_name + '(' + data.list[i].res_time + ')');
  87. tempHTML1 = tempHTML1.replace('[0]', data.list[i].res_id);
  88. start_res_html += tempHTML1;
  89. }
  90. $('#go_get_on').html(start_res_html);
  91. if (start_station_id != "undefined" && start_station_id != "") {
  92. $('#go_get_on').val(start_station_id);
  93. changeGetOnGoExe(start_station_id);
  94. }
  95. if (end_station_id != "undefined" && end_station_id != "") {
  96. $('#go_get_off').val(end_station_id);
  97. changeGetOffGoExe(end_station_id);
  98. }
  99. } else {
  100. ZZAlertInfo(data.info);
  101. }
  102. }
  103. });
  104. }
  105. //切换去程的上车点
  106. function changeGetOnGo(obj) {
  107. var value = $(obj).val(); //去程上车的站点id
  108. changeGetOnGoExe(value);
  109. }
  110. function changeGetOnGoExe(start_res) {
  111. var run_id = getPar('run_id');
  112. var value = start_res; //去程上车的站点id
  113. var end_area_id = getPar('end_area_id'); //去程目的地id
  114. var data = {
  115. run_id: run_id,
  116. end_area_id: end_area_id,
  117. start_res_id: value,
  118. tp: "singleOrder_getEndStation"
  119. };
  120. if (value != '[0]') {
  121. ZZLog(data);
  122. $.ajax({
  123. url: urlstr, //请求地址
  124. data: data,
  125. type: "post",
  126. dataType: "json",
  127. async: false,
  128. success: function (data) {
  129. if (data.code == "0") {
  130. ZZLog(data);
  131. //致空go_ticket_id
  132. go_ticket_id = '';
  133. //--如果上车为区域,显示该区域具体站点列表--//
  134. if (data.start_detail.length) {
  135. var start_sub_html = '<option value="[0]">请选择</option>';
  136. for (var i = 0; i < data.start_detail.length; i++) {
  137. var tempHTML1 = '<option value="[0]">请选择</option>';
  138. tempHTML1 = tempHTML1.replace('请选择', data.start_detail[i].sub_res_name);
  139. tempHTML1 = tempHTML1.replace('[0]', data.start_detail[i].sub_res_id);
  140. start_sub_html += tempHTML1;
  141. }
  142. $('#has_on_sub').val('1'); //是否有上车具体站点 设置 为1
  143. $('#go_on_sub_sel').html(start_sub_html);
  144. $('#go_on_sub').show();
  145. $('#go_on_sub_sel').show();
  146. }
  147. //----//
  148. //替换去程 目的地信息
  149. var end_res_html = '<option value="[0]">请选择</option>';
  150. for (var i = 0; i < data.list.length; i++) {
  151. var tempHTML1 = '<option value="[0]">请选择</option>';
  152. tempHTML1 = tempHTML1.replace('请选择', data.list[i].res_name + '(' + data.list[i].res_time + ')');
  153. tempHTML1 = tempHTML1.replace('[0]', data.list[i].res_id);
  154. end_res_html += tempHTML1;
  155. }
  156. $('#go_get_off').html(end_res_html);
  157. $('#go_down').show();
  158. $('#go_get_off').show();
  159. $('#ifback').attr('checked', false);
  160. ifbackSelected();
  161. $('#list').hide();
  162. } else {
  163. ZZAlertInfo(data.info);
  164. }
  165. }
  166. });
  167. } else {
  168. $('#has_on_sub').val('0') //是否有上车具体站点 设置 为0
  169. $('#go_on_sub').hide(); //隐藏上车具体站点部分
  170. $('#go_on_sub_sel').hide(); //隐藏上车具体站点部分
  171. $('#has_off_sub').val('0') //是否有下车具体站点 设置 为0
  172. $('#go_off_sub').hide(); //隐藏下车具体站点部分
  173. $('#go_off_sub_sel').hide(); //隐藏下车具体站点部分
  174. $('#go_down').hide();
  175. $('#go_get_off').hide();
  176. $('#channel_order').hide();
  177. $('#salesman').html('');
  178. $('#saleman_div').hide();
  179. $('#ifback').attr('checked', false);
  180. $('#list').hide();
  181. $('#back_info').hide();
  182. $('#back_info').children().hide();
  183. }
  184. }
  185. //切换去程的下车站点,改变渠道商
  186. function changeGetOffGo(obj) {
  187. //获取相应的订单渠道
  188. var end_res_id = $('#go_get_off').val();//下车站点id
  189. changeGetOffGoExe(end_res_id);
  190. }
  191. function changeGetOffGoExe(end_res) {
  192. //获取相应的订单渠道
  193. var end_res_id = end_res;//下车站点id
  194. if (end_res_id != '[0]') {
  195. getChannelList(0);
  196. // $('#channel_order').hide();
  197. // $('#salesman').html('');
  198. // $('#saleman_div').hide();
  199. $('#back_info').hide();
  200. $('#back_info').children().hide();
  201. $('#ifback').attr('checked', false);
  202. } else {
  203. $('#has_off_sub').val('0') //是否有下车具体站点 设置 为0
  204. $('#go_off_sub').hide(); //隐藏下车具体站点部分
  205. $('#go_off_sub_sel').hide(); //隐藏下车具体站点部分
  206. $('#list').hide();
  207. $('#channel_order').hide();
  208. $('#salesman').html('');
  209. $('#saleman_div').hide();
  210. $('#back_info').hide();
  211. $('#back_info').children().hide();
  212. $('#ifback').attr('checked', false);
  213. go_ticket_id = '';
  214. }
  215. // var run_id = getPar('run_id');
  216. // var start_res_id = $('#go_get_on').val();//上车站点id
  217. // var end_res_id = $(obj).val();//下车站点id
  218. // var urlstr = base_api + 'orderManager/index.php';
  219. // var data = {
  220. // run_id : run_id,
  221. // start_res_id : start_res_id,
  222. // end_res_id : end_res_id,
  223. // tp : 'singleProduct_getTicketInfo'
  224. // };
  225. // if (end_res_id != '[0]') {
  226. // ZZLog(data);
  227. // $.ajax({
  228. // url:urlstr, //请求地址
  229. // data:data,
  230. // type: "post",
  231. // dataType: "json",
  232. // async:false,
  233. // success: function (data) {
  234. // if(data.code == "0"){
  235. // ZZLog(data);
  236. // //替换去程的票种信息
  237. // replaceTicketInfo(data);
  238. // }else{
  239. // ZZAlertInfo(data.info);
  240. // }
  241. // }
  242. // });
  243. // }
  244. }
  245. //替换去程的票种信息
  246. function replaceTicketInfo(data) {
  247. var list = data.list;
  248. var newHTML = '';
  249. for (var i = 0; i < list.length; i++) {
  250. var tempHTML = ticketHTML;
  251. tempHTML = tempHTML.replace('[座位等级]', list[i].seat_type_name);
  252. tempHTML = tempHTML.replace('[人群]', list[i].human_type_name);
  253. tempHTML = tempHTML.replace('[价格]', list[i].price);
  254. //数量
  255. var maxCount = list[i].stock > 50 ? 50 : list[i].stock;
  256. maxCount = maxCount > 0 ? maxCount : 0;
  257. var newHTML1 = '';
  258. for (var j = 0; j <= maxCount; j++) {
  259. var str = '<option value="[0]">[-]</option> ';
  260. str = str.replace('[0]', j);
  261. str = str.replace('[-]', j);
  262. newHTML1 += str;
  263. }
  264. tempHTML = tempHTML.replace('<option value="[0]">[-]</option>', newHTML1);
  265. tempHTML = tempHTML.replace('[总额]', '0');
  266. var data = {
  267. ticket_id: list[i].ticket_id
  268. };
  269. var jsonArrayFinal = JSON.stringify(data);
  270. jsonArrayFinal = jsonArrayFinal.replace(/"/g, '&quot;');
  271. tempHTML = tempHTML.replace('[data]', jsonArrayFinal);
  272. newHTML += tempHTML;
  273. }
  274. $('#list').html(newHTML);
  275. $('#list').show();
  276. }
  277. //选择返程
  278. function ifbackSelected(obj) {
  279. if (obj == true) {
  280. //选中返程
  281. if ($('#go_get_on').val() == '[0]' || $('#go_get_off').val() == '[0]') {
  282. $('#ifback').attr('checked', false);
  283. ZZAlertInfo('请完善相关的去程信息');
  284. return;
  285. } else {
  286. $('#Wdate2').val(after($('#Wdate1').val()));
  287. $('#back_info').show();
  288. $('#Wdate2').show();
  289. $('#list').hide();
  290. $('#channel_order').hide();
  291. $('#saleman_div').hide();
  292. $('#salesman').html('');
  293. selectBackDate();
  294. }
  295. } else {
  296. $('#back_info').hide();
  297. $('#back_info').children().hide();
  298. changeGetOffGo();
  299. $('#list').show();
  300. }
  301. }
  302. //选中返程的日期
  303. function selectBackDate() {
  304. var run_date = $('#Wdate2').val();
  305. var start_area = getPar('end_area_id');
  306. var end_area = getPar('start_area_id');
  307. var data = {
  308. run_date: run_date,
  309. start_area: start_area,
  310. end_area: end_area,
  311. tp: 'singleOrder_getBackProductList',
  312. line_type: line_type
  313. };
  314. ZZLog(data);
  315. $.ajax({
  316. url: urlstr,
  317. data: data,
  318. type: "post",
  319. dataType: "json",
  320. async: false,
  321. success: function (data) {
  322. if (data.code == "0") {
  323. ZZLog(data);
  324. //替换返程的 班次信息
  325. var back_bus_html = '<option value="[0]">请选择</option> ';
  326. for (var i = 0; i < data.run_list.length; i++) {
  327. var tempHTML1 = '<option value="[0]">请选择</option>';
  328. tempHTML1 = tempHTML1.replace('请选择', data.run_list[i].run_time);
  329. tempHTML1 = tempHTML1.replace('[0]', data.run_list[i].run_id);
  330. back_bus_html += tempHTML1;
  331. }
  332. $('#back_run_time').html(back_bus_html);
  333. $('#back_run_time').show();
  334. $('#back_get_off').hide();
  335. $('#back_down_div').hide();
  336. $('#back_get_on').hide();
  337. $('#back_get_on_div').hide();
  338. } else {
  339. ZZAlertInfo(data.info);
  340. }
  341. }
  342. });
  343. }
  344. //选择返程班次
  345. function changeRunTimeBack(obj) {
  346. var value = $(obj).val();
  347. var start_area_id = getPar('end_area_id');
  348. var data = {
  349. run_id: value,
  350. start_area_id: start_area_id,
  351. tp: "singleOrder_getStartStation",
  352. line_type: line_type
  353. };
  354. ZZLog(data);
  355. $.ajax({
  356. url: urlstr, //请求地址
  357. data: data,
  358. type: "post",
  359. dataType: "json",
  360. async: false,
  361. success: function (data) {
  362. if (data.code == "0") {
  363. ZZLog(data);
  364. //替换返程 出发地信息
  365. var back_start_res_html = '<option value="[0]">请选择</option>';
  366. for (var i = 0; i < data.list.length; i++) {
  367. var tempHTML1 = '<option value="[0]">请选择</option>';
  368. tempHTML1 = tempHTML1.replace('请选择', data.list[i].res_name + '(' + data.list[i].res_time + ')');
  369. tempHTML1 = tempHTML1.replace('[0]', data.list[i].res_id);
  370. back_start_res_html += tempHTML1;
  371. }
  372. $('#back_get_on').html(back_start_res_html);
  373. $('#back_get_on_div').show();
  374. $('#back_get_on').show();
  375. } else {
  376. ZZAlertInfo(data.info);
  377. }
  378. }
  379. });
  380. }
  381. //切换返程的上车站点
  382. function changeGetOnBack(obj) {
  383. var run_id = $('#back_run_time').val();
  384. var value = $('#back_get_on').val(); //返程上车的站点id
  385. var end_area_id = getPar('start_area_id'); //返程目的地id
  386. var data = {
  387. run_id: run_id,
  388. end_area_id: end_area_id,
  389. start_res_id: value,
  390. tp: "singleOrder_getEndStation"
  391. };
  392. if (value != '[0]') {
  393. ZZLog(data);
  394. $.ajax({
  395. url: urlstr, //请求地址
  396. data: data,
  397. type: "post",
  398. dataType: "json",
  399. async: false,
  400. success: function (data) {
  401. if (data.code == "0") {
  402. ZZLog(data);
  403. //智空back_ticket_id
  404. back_ticket_id = '';
  405. //替换去程 目的地信息
  406. var back_end_res_html = '<option value="[0]">请选择</option>';
  407. for (var i = 0; i < data.list.length; i++) {
  408. var tempHTML1 = '<option value="[0]">请选择</option>';
  409. tempHTML1 = tempHTML1.replace('请选择', data.list[i].res_name + '(' + data.list[i].res_time + ')');
  410. tempHTML1 = tempHTML1.replace('[0]', data.list[i].res_id);
  411. back_end_res_html += tempHTML1;
  412. }
  413. $('#back_get_off').html(back_end_res_html);
  414. $('#back_down_div').show();
  415. $('#back_get_off').show();
  416. } else {
  417. ZZAlertInfo(data.info);
  418. }
  419. }
  420. });
  421. }
  422. }
  423. //切换返程下车点
  424. function changeGetOffBack() {
  425. //获取相应的订单渠道
  426. var end_res_id = $('#back_get_off').val();
  427. if (end_res_id != '[0]') {
  428. getChannelList(1);
  429. }
  430. // var run_id = $('#back_run_time').val();
  431. // var start_res_id = $('#back_get_on').val();
  432. // var end_res_id = $('#back_get_off').val();
  433. // var urlstr = base_api + 'orderManager/index.php';
  434. // var data = {
  435. // run_id : run_id,
  436. // start_area_id : start_area_id,
  437. // end_area_id : end_area_id,
  438. // line_type : line_type,
  439. // tp:"singleProduct_getGoChannel"
  440. // };
  441. // ZZLog(data);
  442. // $.ajax({
  443. // url:urlstr, //请求地址
  444. // data:data,
  445. // type: "post",
  446. // dataType: "json",
  447. // async:false,
  448. // success: function (data) {
  449. // if(data.code == "0"){
  450. // ZZLog(data);
  451. // }else{
  452. // ZZAlertInfo(data.info);
  453. // }
  454. // }
  455. // });
  456. }
  457. //获取相关的订单渠道
  458. function getChannelList(value) {
  459. var tp = '';
  460. var run_id = '';
  461. var start_res_id = '';
  462. var end_res_id = '';
  463. if (value == 0) {
  464. //去程
  465. tp = 'singleOrder_getGoChannel';
  466. run_id = getPar('run_id');
  467. start_res_id = $('#go_get_on').val();
  468. end_res_id = $('#go_get_off').val();
  469. var data = {
  470. tp: tp,
  471. run_id: run_id,
  472. start_res_id: start_res_id,
  473. end_res_id: end_res_id,
  474. line_type: line_type
  475. };
  476. ZZLog(data);
  477. $.ajax({
  478. url: urlstr, //请求地址
  479. data: data,
  480. type: "post",
  481. dataType: "json",
  482. async: false,
  483. success: function (data) {
  484. if (data.code == "0") {
  485. ZZLog(data);
  486. var channel_list = channelHTML;
  487. var list = data.list;
  488. for (var i = 0; i < list.length; i++) {
  489. var tempHTML = channelHTML;
  490. tempHTML = tempHTML.replace('请选择', list[i].supplier_name);
  491. tempHTML = tempHTML.replace('[0]', list[i].supplier_id);
  492. tempHTML = tempHTML.replace('[saleman]', list[i].sales_man);
  493. //$('#salesman').html(list[0].sales_man);
  494. channel_list += tempHTML;
  495. }
  496. $('.select_line').html(channel_list);
  497. //--如果下车为区域,显示该区域具体站点列表--//
  498. if (data.end_detail.length) {
  499. var end_sub_html = '<option value="[0]">请选择</option>';
  500. for (var i = 0; i < data.end_detail.length; i++) {
  501. var tempHTML1 = '<option value="[0]">请选择</option>';
  502. tempHTML1 = tempHTML1.replace('请选择', data.end_detail[i].sub_res_name);
  503. tempHTML1 = tempHTML1.replace('[0]', data.end_detail[i].sub_res_id);
  504. end_sub_html += tempHTML1;
  505. }
  506. $('#has_off_sub').val('1'); //是否有下车具体站点 设置 为1
  507. $('#go_off_sub_sel').html(end_sub_html);
  508. $('#go_off_sub').show();
  509. $('#go_off_sub_sel').show();
  510. }
  511. //----//
  512. //替换去程 目的地信息
  513. $('#channel_order').show();
  514. $('#saleman_div').show();
  515. $('.select_line').comboSelect();
  516. //$(".combo-dropdown li:odd").css("background","#eeeeee");
  517. //根据下车站点 展示相关的票种信息
  518. //showTicketInfo(value);
  519. } else {
  520. ZZAlertInfo(data.info);
  521. }
  522. }
  523. });
  524. } else {
  525. //返程
  526. var go_run_id = getPar('run_id');
  527. var go_start_res_id = $('#go_get_on').val(); //上车站点id
  528. var go_end_res_id = $('#go_get_off').val(); //下车站点id
  529. var back_run_id = $('#back_run_time').val();
  530. var back_start_res_id = $('#back_get_on').val();
  531. var back_end_res_id = $('#back_get_off').val();
  532. var data = {
  533. go_run_id: go_run_id,
  534. go_start_res_id: go_start_res_id,
  535. go_end_res_id: go_end_res_id,
  536. tp: 'singleOrder_getBackChannel',
  537. back_run_id: back_run_id,
  538. back_start_res_id: back_start_res_id,
  539. back_end_res_id: back_end_res_id,
  540. line_type: line_type
  541. };
  542. ZZLog(data);
  543. $.ajax({
  544. url: urlstr, //请求地址
  545. data: data,
  546. type: "post",
  547. dataType: "json",
  548. async: false,
  549. success: function (data) {
  550. if (data.code == "0") {
  551. ZZLog(data);
  552. var channel_list = channelHTML;
  553. var list = data.list;
  554. for (var i = 0; i < list.length; i++) {
  555. var tempHTML = channelHTML;
  556. tempHTML = tempHTML.replace('请选择', list[i].supplier_name);
  557. tempHTML = tempHTML.replace('[0]', list[i].supplier_id);
  558. tempHTML = tempHTML.replace('[saleman]', list[i].sales_man);
  559. //$('#salesman').html(list[0].sales_man);
  560. channel_list += tempHTML;
  561. }
  562. $('.select_line').html(channel_list);
  563. $('#channel_order').show();
  564. $('.select_line').comboSelect();
  565. $('#saleman_div').show();
  566. //showTicketInfo(value);
  567. } else {
  568. ZZAlertInfo(data.info);
  569. }
  570. }
  571. });
  572. }
  573. }
  574. //切换订单渠道
  575. function changeChannel() {
  576. var value = $("input[type='checkbox']").is(':checked');
  577. var saleman = $(".select_line").find("option:selected").attr('saleman');
  578. $('#salesman').html(saleman);
  579. if (value == true) {
  580. value = 1;
  581. } else {
  582. value = 0;
  583. }
  584. showTicketInfo(value);
  585. }
  586. //根据下车站点 展示相关的票种信息
  587. function showTicketInfo(value) {
  588. if (value == 0) {
  589. //去程
  590. var run_id = getPar('run_id');
  591. var start_res_id = $('#go_get_on').val(); //上车站点id
  592. var end_res_id = $('#go_get_off').val(); //下车站点id
  593. var channel_id = $('.select_line').val(); //渠道id
  594. var line_type = getPar('line_type');
  595. var data = {
  596. run_id: run_id,
  597. start_res_id: start_res_id,
  598. end_res_id: end_res_id,
  599. tp: 'singleOrder_getTicketInfo',
  600. channel_id: channel_id,
  601. line_type: line_type
  602. };
  603. ZZLog(data);
  604. $.ajax({
  605. url: urlstr, //请求地址
  606. data: data,
  607. type: "post",
  608. dataType: "json",
  609. async: false,
  610. success: function (data) {
  611. if (data.code == "0") {
  612. ZZLog(data);
  613. //替换去程的票种信息
  614. replaceTicketInfo(data);
  615. } else {
  616. ZZAlertInfo(data.info);
  617. }
  618. }
  619. });
  620. } else {
  621. //往返
  622. var line_type = getPar('line_type');
  623. var tp = 'singleOrder_getBackTicketInfo';
  624. var go_run_id = getPar('run_id');
  625. var go_start_res_id = $('#go_get_on').val();
  626. var go_end_res_id = $('#go_get_off').val();
  627. var back_run_id = $('#back_run_time').val();
  628. var back_start_res_id = $('#back_get_on').val();
  629. var back_end_res_id = $('#back_get_off').val();
  630. var channel_id = $('.select_line').val();
  631. var line_type = line_type;
  632. var data = {
  633. tp: tp,
  634. go_run_id: go_run_id,
  635. go_start_res_id: go_start_res_id,
  636. go_end_res_id: go_end_res_id,
  637. back_run_id: back_run_id,
  638. back_start_res_id: back_start_res_id,
  639. back_end_res_id: back_end_res_id,
  640. channel_id: channel_id,
  641. line_type: line_type
  642. };
  643. ZZLog(data);
  644. $.ajax({
  645. url: urlstr,
  646. data: data,
  647. type: "post",
  648. dataType: "json",
  649. async: false,
  650. success: function (data) {
  651. if (data.code == "0") {
  652. ZZLog(data);
  653. showBackTicketInfo(data);
  654. } else {
  655. ZZAlertInfo(data.info);
  656. }
  657. },
  658. error: function (e) {
  659. ZZLog(e);
  660. }
  661. });
  662. }
  663. }
  664. //展示往返的票种信息
  665. function showBackTicketInfo(data) {
  666. var list = data.list;
  667. var newHTML = '';
  668. for (var i = 0; i < list.length; i++) {
  669. var tempHTML = ticketHTML;
  670. tempHTML = tempHTML.replace('[座位等级]', list[i].seat_type_name);
  671. tempHTML = tempHTML.replace('[人群]', list[i].human_type_name);
  672. tempHTML = tempHTML.replace('[价格]', list[i].price);
  673. //数量
  674. var maxCount = list[i].stock > 50 ? 50 : list[i].stock;
  675. maxCount = maxCount > 0 ? maxCount : 0;
  676. var newHTML1 = '';
  677. for (var j = 0; j <= maxCount; j++) {
  678. var str = '<option value="[0]">[-]</option> ';
  679. str = str.replace('[0]', j);
  680. str = str.replace('[-]', j);
  681. newHTML1 += str;
  682. }
  683. tempHTML = tempHTML.replace('<option value="[0]">[-]</option>', newHTML1);
  684. tempHTML = tempHTML.replace('[总额]', '0');
  685. var data = {
  686. go_ticket_id: list[i].go_ticket_id,
  687. go_run_id: list[i].go_run_id,
  688. go_discount_price: list[i].go_discount_price,
  689. back_run_id: list[i].back_run_id,
  690. back_ticket_id: list[i].back_ticket_id,
  691. back_discount_price: list[i].back_discount_price
  692. };
  693. var jsonArrayFinal = JSON.stringify(data);
  694. // jsonArrayFinal = jsonArrayFinal.replace(/"/g,'\'');
  695. jsonArrayFinal = jsonArrayFinal.replace(/"/g, '&quot;');
  696. tempHTML = tempHTML.replace('[data]', jsonArrayFinal);
  697. newHTML += tempHTML;
  698. }
  699. $('#list').html(newHTML);
  700. $('#list').show();
  701. go_ticket_id = list[0].ticket_id;
  702. }
  703. //计算总价
  704. function changeTotalPrice(obj) {
  705. var single_price = $(obj).parent().parent().find('.price').val();
  706. var total_price = parseInt($(obj).val()) * parseFloat(single_price).toFixed(2);
  707. $(obj).parent().parent().find('.total_price').html(total_price);
  708. var count = Math.floor($(obj).val());
  709. if (count > 0) {
  710. //先将输入好的信息存起来
  711. var cache_peoples = [];
  712. $('.travel_people_info').each(function (index, dom) {
  713. var name = $(this).find('.travel_people_name').val();
  714. var mobile = $(this).find('.travel_people_mobile').val();
  715. var cardid = $(this).find('.travel_people_cardid').val();
  716. cache_peoples.push({
  717. name: name,
  718. mobile: mobile,
  719. cardid: cardid
  720. })
  721. });
  722. var html = '';
  723. for (var i = 0; i < count; i++) {
  724. var name = '', mobile = '', cardid = '';
  725. if (i < cache_peoples.length) {
  726. name = cache_peoples[i]['name'];
  727. mobile = cache_peoples[i]['mobile'];
  728. cardid = cache_peoples[i]['cardid'];
  729. }
  730. var tempHTML = '<div class="profile-info-value travel_people_info">' +
  731. '<input class="travel_people_name" type="text" style="width: 220px;" value="' + name + '" placeholder="选填,乘车人姓名" />' +
  732. '<input class="travel_people_mobile" maxlength="11" onkeyup="this.value=this.value.replace(/[^0-9Xx]/g,\'\')" onafterpaste="this.value=this.value.replace(/[^0-9Xx]/g,\'\')" type="text" style="width: 220px;" value="' + mobile + '" placeholder="选填,乘车人手机号" />' +
  733. '<input class="travel_people_cardid" maxlength="18" type="text" style="width: 220px" value="' + cardid + '" placeholder="选填,乘车人身份证号" onkeyup="this.value=this.value.replace(/[^0-9Xx]/g,\'\')"' +
  734. ' onafterpaste="this.value=this.value.replace(/[^0-9Xx]/g,\'\')"/>' +
  735. '</div>';
  736. html += tempHTML;
  737. }
  738. $('.travel_people_list').html(html);
  739. $('.travel_people').show();
  740. } else {
  741. $('.travel_people').hide();
  742. }
  743. }
  744. function setUserList() {
  745. var userListStr = $('#userListTextArea').val();
  746. var userListArr = userListStr.split("\n");
  747. var errMsg = '';
  748. var html = '';
  749. var i = 0;
  750. var travel_people_info_list = $('.travel_people_info');
  751. $.each(userListArr, function (index, value) {
  752. value = value.trim();
  753. if (value !== '') {
  754. var infoArr = value.split(',');
  755. if (typeof(infoArr[0]) === 'undefined' || typeof(infoArr[1]) === 'undefined' || typeof(infoArr[2]) === 'undefined') {
  756. errMsg += '第' + (index + 1) + '行:' + value + '</br>';
  757. } else if (typeof(travel_people_info_list[i]) === 'undefined') {//不做处理
  758. return false;
  759. } else {
  760. var tempHTML = '<div class="profile-info-value travel_people_info">' +
  761. '<input class="travel_people_name" type="text" style="width: 220px;" value="' + infoArr[0].trim() + '" placeholder="选填,乘车人姓名" />' +
  762. '<input class="travel_people_mobile" maxlength="11" onkeyup="this.value=this.value.replace(/[^0-9Xx]/g,\'\')" onafterpaste="this.value=this.value.replace(/[^0-9Xx]/g,\'\')" type="text" style="width: 220px;" value="' + infoArr[1].trim().replace(/[^0-9Xx]/g, '') + '" placeholder="选填,乘车人手机号" />' +
  763. '<input class="travel_people_cardid" maxlength="18" type="text" style="width: 220px" value="' + infoArr[2].trim().replace(/[^0-9Xx]/g, '') + '" placeholder="选填,乘车人身份证号" onkeyup="this.value=this.value.replace(/[^0-9Xx]/g,\'\')"' +
  764. ' onafterpaste="this.value=this.value.replace(/[^0-9Xx]/g,\'\')"/>' +
  765. '</div>';
  766. html += tempHTML;
  767. var temHtmlOld = $(travel_people_info_list[i]);
  768. temHtmlOld.remove();
  769. i++;//计数
  770. }
  771. }
  772. });
  773. $('.travel_people_list').prepend(html);
  774. if (errMsg !== '') {
  775. ZZAlertInfo('异常参数:</br>' + errMsg);
  776. } else {
  777. $('#setUserListCheckBox').click();
  778. }
  779. }
  780. function getCardIdInfo(sId) {
  781. var aCity = {
  782. 11: "北京",
  783. 12: "天津",
  784. 13: "河北",
  785. 14: "山西",
  786. 15: "内蒙古",
  787. 21: "辽宁",
  788. 22: "吉林",
  789. 23: "黑龙江",
  790. 31: "上海",
  791. 32: "江苏",
  792. 33: "浙江",
  793. 34: "安徽",
  794. 35: "福建",
  795. 36: "江西",
  796. 37: "山东",
  797. 41: "河南",
  798. 42: "湖北",
  799. 43: "湖南",
  800. 44: "广东",
  801. 45: "广西",
  802. 46: "海南",
  803. 50: "重庆",
  804. 51: "四川",
  805. 52: "贵州",
  806. 53: "云南",
  807. 54: "西藏",
  808. 61: "陕西",
  809. 62: "甘肃",
  810. 63: "青海",
  811. 64: "宁夏",
  812. 65: "新疆",
  813. 71: "台湾",
  814. 81: "香港",
  815. 82: "澳门",
  816. 91: "国外"
  817. }
  818. var iSum = 0;
  819. var info = "";
  820. var obj = {
  821. flag: false,
  822. msg: "",
  823. province_id: -1,
  824. province_name: "其它",
  825. birthday: "",
  826. year: "",
  827. month: "",
  828. day: "",
  829. old: "",
  830. sex: "其它"
  831. };
  832. if (!/^\d{17}(\d|x)$/i.test(sId)) {
  833. obj.flag = false;
  834. obj.msg = "你输入的身份证长度或格式错误";
  835. return obj;
  836. }
  837. sId = sId.replace(/x$/i, "a");
  838. if (aCity[parseInt(sId.substr(0, 2))] == null) {
  839. obj.flag = false;
  840. obj.msg = "你的身份证地区非法";
  841. return obj;
  842. }
  843. sBirthday = sId.substr(6, 4) + "-" + Number(sId.substr(10, 2))
  844. + "-" + Number(sId.substr(12, 2));
  845. var d = new Date(sBirthday.replace(/-/g, "/"));
  846. var ymdstr = d.getFullYear() + '-' + (d.getMonth() + 1 - 0) + '-' + d.getDate();
  847. if (sBirthday != ymdstr) {
  848. obj.flag = false;
  849. obj.msg = "身份证上的出生日期非法";
  850. return obj;
  851. }
  852. for (var i = 17; i >= 0; i--) iSum += (Math.pow(2, i) % 11) * parseInt(sId.charAt(17 - i), 11);
  853. if (iSum % 11 != 1) {
  854. obj.flag = false;
  855. obj.msg = "你输入的身份证号非法";
  856. return obj;
  857. }
  858. obj.flag = true;
  859. obj.msg = "身份证合法";
  860. obj.province_id = sId.substr(0, 2);
  861. obj.province_name = aCity[parseInt(obj.province_id)];
  862. var myYear = ';' + d.getFullYear() + ';';
  863. var myMonth = ';' + (d.getMonth() + 1 - 0) + ';';
  864. var myDay = ';' + d.getDate() + ';';
  865. if (myMonth.length < 4) myMonth = '0' + myMonth;
  866. if (myDay.length < 4) myDay = '0' + myDay;
  867. var timestr = myYear + '-' + myMonth + '-' + myDay;
  868. timestr = timestr.replace(/;/g, "");
  869. obj.birthday = timestr;
  870. obj.year = timestr.split('-')[0];
  871. obj.month = timestr.split('-')[1];
  872. obj.day = timestr.split('-')[2];
  873. obj.sex = (sId.substr(16, 1) % 2 ? "男" : "女");
  874. // var a=aCity[parseInt(sId.substr(0,2))]+","+sBirthday+","+(sId.substr(16,1)%2?"男":"女");//此次还可以判断出输入的身份证号的人性别
  875. return obj;
  876. };
  877. //保存按钮
  878. function basicInfoSave() {
  879. var ifback = $("input[type='checkbox']").is(':checked');
  880. var buy_insurance = $("input[name='buy_insurance']:checked").val();
  881. var ticket_info = '';
  882. var count_num = 0;
  883. if (ifback == true) {
  884. var down_res = $('#back_get_off').val();
  885. if (down_res == '[0]') {
  886. ZZAlertInfo('返程信息选择不完全!');
  887. return;
  888. }
  889. ifback = 2;
  890. var back_ticket_info = '';
  891. $('.list_info').each(function (index, dom) {
  892. var count = $(this).children().find('.count').val();
  893. var data = $(this).attr('info');
  894. var total_price = $(this).children().find('.total_price').text();
  895. var price = $(this).children().find('.price').val();
  896. count_num += parseInt(count);
  897. //data=data.replace(/'/g,'"');
  898. var info = JSON.parse(data);
  899. //这里 将往返程价格 为设定价格的一半
  900. var back_price = price / 2;
  901. if (count > 0) {
  902. go_info = '{' + '1' + ',' + info.go_run_id + ',' + info.go_ticket_id + ',' + back_price + ',' + count + '}';
  903. var back_info = '{' + '2' + ',' + info.back_run_id + ',' + info.back_ticket_id + ',' + back_price + ',' + count + '}';
  904. back_ticket_info += go_info + back_info;
  905. } else {
  906. return;
  907. }
  908. })
  909. ticket_info = back_ticket_info;
  910. if (ticket_info == '') {
  911. ZZAlertInfo('请完善订单信息,并选择数量!');
  912. return;
  913. }
  914. } else {
  915. var go_down_res = $('#go_get_off').val();
  916. //如果上车或下车站点为区域,判断是否选择具体站点--温依莅
  917. var has_on_sub = $('#has_on_sub').val();
  918. var has_off_sub = $('#has_off_sub').val();
  919. var sub_start_res_id = 0;
  920. var sub_end_res_id = 0;
  921. //--上车具体站点判断
  922. if (has_on_sub == '1') { //如果存在具体上车站点,则必选,传选中具体站点res_id值
  923. sub_start_res_id = $('#go_on_sub_sel').val();
  924. if (sub_start_res_id == '[0]') {
  925. ZZAlertInfo('请选择上车站点');
  926. return;
  927. }
  928. } else { //如果不存在具体上车站点,则不必选,传0值
  929. sub_start_res_id = 0;
  930. }
  931. //--下车具体站点判断
  932. if (has_off_sub == '1') { //如果存在具体下车站点,则必选,传选中具体站点res_id值
  933. sub_end_res_id = $('#go_off_sub_sel').val();
  934. if (sub_end_res_id == '[0]') {
  935. ZZAlertInfo('请选择下车站点');
  936. return;
  937. }
  938. } else { //如果不存在具体下车站点,则不必选,传0值
  939. sub_end_res_id = 0;
  940. }
  941. if (go_down_res == '[0]') {
  942. ZZAlertInfo('去程信息选择不完全!');
  943. return;
  944. }
  945. ifback = 1;
  946. var go_ticket_info = '';
  947. $('.list_info').each(function (index, dom) {
  948. var count = $(this).children().find('.count').val();
  949. var data = $(this).attr('info');
  950. var price = $(this).children().find('.price').val();
  951. count_num += parseInt(count);
  952. var info = '';
  953. if (data != '[data]') {
  954. info = JSON.parse(data);
  955. }
  956. var run_id = getPar('run_id');
  957. var go_info = '';
  958. if (count > 0) {
  959. go_info = '{' + ifback + ',' + run_id + ',' + info.ticket_id + ',' + price + ',' + count + '}';
  960. go_ticket_info += go_info;
  961. } else {
  962. return;
  963. }
  964. })
  965. ticket_info = go_ticket_info;
  966. if (ticket_info == '') {
  967. ZZAlertInfo('请完善订单信息,并选择数量!');
  968. return;
  969. }
  970. }
  971. //订单渠道
  972. var channel_order_id = $('#channel_order_id').val();
  973. if (channel_order_id == '') {
  974. ZZAlertInfo('请准确填写渠道订单号!');
  975. return;
  976. }
  977. var channel_id = $('.select_line').val();
  978. if (isNaN(channel_id)) {
  979. ZZAlertInfo('请选择订单渠道!');
  980. return;
  981. }
  982. var salesman = $('#salesman').html();
  983. //--------如果上车或下车站点为区域,判断是否选择具体站点--温依莅
  984. var has_on_sub = $('#has_on_sub').val();
  985. var has_off_sub = $('#has_off_sub').val();
  986. var sub_start_res_id = 0;
  987. var sub_end_res_id = 0;
  988. //--上车具体站点判断
  989. if (has_on_sub == '1') { //如果存在具体上车站点,则必选,传选中具体站点res_id值
  990. sub_start_res_id = $('#go_on_sub_sel').val();
  991. if (sub_start_res_id == '[0]') {
  992. ZZAlertInfo('请选择上车站点');
  993. return;
  994. }
  995. } else { //如果不存在具体上车站点,则不必选,传0值
  996. sub_start_res_id = 0;
  997. }
  998. //--下车具体站点判断
  999. if (has_off_sub == '1') { //如果存在具体下车站点,则必选,传选中具体站点res_id值
  1000. sub_end_res_id = $('#go_off_sub_sel').val();
  1001. if (sub_end_res_id == '[0]') {
  1002. ZZAlertInfo('请选择下车站点');
  1003. return;
  1004. }
  1005. } else { //如果不存在具体下车站点,则不必选,传0值
  1006. sub_end_res_id = 0;
  1007. }
  1008. //-----------------------------
  1009. //套餐产品
  1010. // var doorPrice = $('#doorPrice').val().trim(); //门票价格
  1011. // var hotelPrice = $('#hotelPrice').val().trim(); //酒店价格
  1012. var doorPrice = '';
  1013. var hotelPrice = '';
  1014. //联系人
  1015. //联系人和手机号有其中一个就可以
  1016. var link_man = $('#name').val().trim();
  1017. var link_tel = $('#tel').val().trim();
  1018. var remarks = $('#remarks').val();
  1019. var idCard = $('#idCard').val();//身份证号
  1020. //如果联系人或者备注中有半角逗号,替换为全角
  1021. link_man = link_man.replace(/,/g, ",");
  1022. remarks = remarks.replace(/,/g, ",");
  1023. if ((link_man == '' && link_tel == '')) {
  1024. ZZAlertInfo('联系人信息填写不完整!');
  1025. return;
  1026. }
  1027. if (link_tel != '' && !validate(link_tel, 'phone')) {
  1028. //ZZAlertInfo('联系人信息填写不完整!');
  1029. return;
  1030. }
  1031. var customer_info = '{' + link_man + ',' + link_tel + ',' + remarks + '}';
  1032. //乘车人 update by fuhc on 2017-11-07
  1033. var travel_peoples = [];
  1034. var travel_people_flag = true;
  1035. $('.travel_people_info').each(function (index, dom) {
  1036. var name = $(this).find('.travel_people_name').val();
  1037. var mobile = $(this).find('.travel_people_mobile').val();
  1038. var cardid = $(this).find('.travel_people_cardid').val();
  1039. travel_peoples.push({
  1040. passenger_name: name,
  1041. passenger_mobile: mobile,
  1042. passenger_cardid: cardid
  1043. })
  1044. });
  1045. //姓名
  1046. var flag_empty = true;
  1047. for (var i = 0; i < travel_peoples.length; i++) {
  1048. var item = travel_peoples[i];
  1049. if (item.passenger_name.trim() === "" && item.passenger_mobile.trim() === "" && item.passenger_cardid.trim() === "") {
  1050. //允许所有为空
  1051. flag_empty = true;
  1052. } else {
  1053. //有一个不为空,那就得填写完整
  1054. flag_empty = false;
  1055. break;
  1056. }
  1057. }
  1058. if (!flag_empty) {
  1059. var name_flag = true, name_index = 0;
  1060. var mobile_flag = true, mobile_index = 0;
  1061. var cardid_flag = true, cardid_index = 0;
  1062. for (var i = 0; i < travel_peoples.length; i++) {
  1063. var item = travel_peoples[i];
  1064. if (item.passenger_name.trim() === "") {
  1065. name_flag = false;
  1066. name_index = i;
  1067. break;
  1068. }
  1069. if (item.passenger_mobile.trim() === "") {
  1070. mobile_flag = true;
  1071. mobile_index = i;
  1072. } else {
  1073. if (!validate(item.passenger_mobile, 'phone')) {
  1074. mobile_flag = false;
  1075. mobile_index = i;
  1076. break;
  1077. } else {
  1078. mobile_flag = true;
  1079. mobile_index = i;
  1080. }
  1081. }
  1082. var info = getCardIdInfo(item.passenger_cardid);
  1083. if (info.flag === false) {
  1084. cardid_flag = false;
  1085. cardid_index = i;
  1086. break;
  1087. }
  1088. }
  1089. if (!name_flag) {
  1090. ZZAlertInfo('请填写乘车人' + Math.floor(name_index + 1) + '姓名');
  1091. return;
  1092. }
  1093. if (!mobile_flag) {
  1094. ZZAlertInfo('乘车人' + Math.floor(mobile_index + 1) + '姓名输入不正确');
  1095. return;
  1096. }
  1097. if (!cardid_flag) {
  1098. ZZAlertInfo('乘车人' + Math.floor(cardid_index + 1) + '身份证输入不正确');
  1099. return;
  1100. }
  1101. } else {
  1102. travel_peoples = [];
  1103. }
  1104. //代收
  1105. //这里单价总价都填写,以总价为准;如果只有单价,则用单价乘以数量来计算总价
  1106. var sin_rec = parseInt($('#substitute').val().trim());
  1107. if (!sin_rec) {
  1108. sin_rec = 0;
  1109. }
  1110. var substitute_all = parseInt($('#substitute_all').val().trim());
  1111. var substitutes = 0;
  1112. if (!substitute_all) {
  1113. substitutes = sin_rec * count_num;
  1114. } else {
  1115. substitutes = substitute_all;
  1116. }
  1117. var data = {
  1118. tp: 'singleOrder_submitOrder',
  1119. channel_id: channel_id,
  1120. channel_order_id: channel_order_id,
  1121. salesman: salesman,
  1122. ticket_info: ticket_info,
  1123. customer_info: customer_info,
  1124. travel_peoples: JSON.stringify(travel_peoples),
  1125. id_card: idCard,
  1126. door_price: doorPrice,
  1127. hotel_price: hotelPrice,
  1128. receive_value: substitutes,
  1129. count_num: count_num,
  1130. sub_start_res_id: sub_start_res_id,
  1131. sub_end_res_id: sub_end_res_id,
  1132. buy_insurance: buy_insurance
  1133. }
  1134. ZZLog(data);
  1135. $.ajax({
  1136. url: urlstr,
  1137. data: data,
  1138. type: "post",
  1139. dataType: "json",
  1140. async: false,
  1141. success: function (data) {
  1142. if (data.code == "0") {
  1143. ZZLog(data);
  1144. ZZAlertInfo('下单成功!', function () {
  1145. window.location.href = "/order_list.html";
  1146. });
  1147. } else {
  1148. ZZAlertInfo(data.info);
  1149. }
  1150. },
  1151. error: function (e) {
  1152. ZZLog(e);
  1153. }
  1154. });
  1155. }
  1156. //校验渠道订单号
  1157. function checkOutsideNo(obj) {
  1158. var outside_no = $(obj).val().trim();
  1159. if (outside_no != '') {
  1160. $.ajax({
  1161. url: urlstr,
  1162. type: 'post',
  1163. async: true,
  1164. dataType: 'json',
  1165. data: {
  1166. tp: 'singleOrder_checkOutsideNo',
  1167. outside_no: outside_no,
  1168. },
  1169. success: function (res_data) {
  1170. if(res_data.code!=0){
  1171. $('#outside_no_err').show();
  1172. }else{
  1173. $('#outside_no_err').hide();
  1174. }
  1175. },
  1176. error: function (e) {
  1177. ZZLog(e);
  1178. }
  1179. })
  1180. }
  1181. }