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.

single_order.js 33 KiB

3 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932
  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 data = {
  66. run_id: run_id,
  67. start_area_id: start_area_id,
  68. tp: "singleOrder_getStartStation"
  69. };
  70. ZZLog(data);
  71. $.ajax({
  72. url: urlstr, //请求地址
  73. data: data,
  74. type: "post",
  75. dataType: "json",
  76. async: false,
  77. success: function (data) {
  78. if (data.code == "0") {
  79. ZZLog(data);
  80. //替换去程 出发地信息
  81. var start_res_html = '<option value="[0]">请选择</option>';
  82. for (var i = 0; i < data.list.length; i++) {
  83. var tempHTML1 = '<option value="[0]">请选择</option>';
  84. tempHTML1 = tempHTML1.replace('请选择', data.list[i].res_name + '(' + data.list[i].res_time + ')');
  85. tempHTML1 = tempHTML1.replace('[0]', data.list[i].res_id);
  86. start_res_html += tempHTML1;
  87. }
  88. $('#go_get_on').html(start_res_html);
  89. } else {
  90. ZZAlertInfo(data.info);
  91. }
  92. }
  93. });
  94. }
  95. //切换去程的上车点
  96. function changeGetOnGo(obj) {
  97. var value = $(obj).val(); //去程上车的站点id
  98. changeGetOnGoExe(value);
  99. }
  100. function changeGetOnGoExe(start_res) {
  101. var run_id = getPar('run_id');
  102. var value = start_res; //去程上车的站点id
  103. var end_area_id = getPar('end_area_id'); //去程目的地id
  104. var data = {
  105. run_id: run_id,
  106. end_area_id: end_area_id,
  107. start_res_id: value,
  108. tp: "singleOrder_getEndStation"
  109. };
  110. if (value != '[0]') {
  111. ZZLog(data);
  112. $.ajax({
  113. url: urlstr, //请求地址
  114. data: data,
  115. type: "post",
  116. dataType: "json",
  117. async: false,
  118. success: function (data) {
  119. if (data.code == "0") {
  120. ZZLog(data);
  121. //致空go_ticket_id
  122. go_ticket_id = '';
  123. //--如果上车为区域,显示该区域具体站点列表--//
  124. if (data.start_detail.length) {
  125. var start_sub_html = '<option value="[0]">请选择</option>';
  126. for (var i = 0; i < data.start_detail.length; i++) {
  127. var tempHTML1 = '<option value="[0]">请选择</option>';
  128. tempHTML1 = tempHTML1.replace('请选择', data.start_detail[i].sub_res_name);
  129. tempHTML1 = tempHTML1.replace('[0]', data.start_detail[i].sub_res_id);
  130. start_sub_html += tempHTML1;
  131. }
  132. $('#has_on_sub').val('1'); //是否有上车具体站点 设置 为1
  133. $('#go_on_sub_sel').html(start_sub_html);
  134. $('#go_on_sub').show();
  135. $('#go_on_sub_sel').show();
  136. }
  137. //----//
  138. //替换去程 目的地信息
  139. var end_res_html = '<option value="[0]">请选择</option>';
  140. for (var i = 0; i < data.list.length; i++) {
  141. var tempHTML1 = '<option value="[0]">请选择</option>';
  142. tempHTML1 = tempHTML1.replace('请选择', data.list[i].res_name+ '(' + data.list[i].res_time + ')');
  143. tempHTML1 = tempHTML1.replace('[0]', data.list[i].res_id);
  144. end_res_html += tempHTML1;
  145. }
  146. $('#go_get_off').html(end_res_html);
  147. $('#go_down').show();
  148. $('#go_get_off').show();
  149. $('#ifback').attr('checked', false);
  150. ifbackSelected();
  151. $('#list').hide();
  152. } else {
  153. ZZAlertInfo(data.info);
  154. }
  155. }
  156. });
  157. } else {
  158. $('#has_on_sub').val('0') //是否有上车具体站点 设置 为0
  159. $('#go_on_sub').hide(); //隐藏上车具体站点部分
  160. $('#go_on_sub_sel').hide(); //隐藏上车具体站点部分
  161. $('#has_off_sub').val('0') //是否有下车具体站点 设置 为0
  162. $('#go_off_sub').hide(); //隐藏下车具体站点部分
  163. $('#go_off_sub_sel').hide(); //隐藏下车具体站点部分
  164. $('#go_down').hide();
  165. $('#go_get_off').hide();
  166. $('#channel_order').hide();
  167. $('#salesman').html('');
  168. $('#saleman_div').hide();
  169. $('#ifback').attr('checked', false);
  170. $('#list').hide();
  171. $('#back_info').hide();
  172. $('#back_info').children().hide();
  173. }
  174. }
  175. //切换去程的下车站点,改变渠道商
  176. function changeGetOffGo(obj) {
  177. //获取相应的订单渠道
  178. var end_res_id = $('#go_get_off').val();//下车站点id
  179. changeGetOffGoExe(end_res_id);
  180. }
  181. function changeGetOffGoExe(end_res) {
  182. //获取相应的订单渠道
  183. var end_res_id = end_res;//下车站点id
  184. if (end_res_id != '[0]') {
  185. getChannelList(0);
  186. // $('#channel_order').hide();
  187. // $('#salesman').html('');
  188. // $('#saleman_div').hide();
  189. $('#back_info').hide();
  190. $('#back_info').children().hide();
  191. $('#ifback').attr('checked', false);
  192. } else {
  193. $('#has_off_sub').val('0') //是否有下车具体站点 设置 为0
  194. $('#go_off_sub').hide(); //隐藏下车具体站点部分
  195. $('#go_off_sub_sel').hide(); //隐藏下车具体站点部分
  196. $('#list').hide();
  197. $('#channel_order').hide();
  198. $('#salesman').html('');
  199. $('#saleman_div').hide();
  200. $('#back_info').hide();
  201. $('#back_info').children().hide();
  202. $('#ifback').attr('checked', false);
  203. go_ticket_id = '';
  204. }
  205. // var run_id = getPar('run_id');
  206. // var start_res_id = $('#go_get_on').val();//上车站点id
  207. // var end_res_id = $(obj).val();//下车站点id
  208. // var urlstr = base_api + 'orderManager/index.php';
  209. // var data = {
  210. // run_id : run_id,
  211. // start_res_id : start_res_id,
  212. // end_res_id : end_res_id,
  213. // tp : 'singleProduct_getTicketInfo'
  214. // };
  215. // if (end_res_id != '[0]') {
  216. // ZZLog(data);
  217. // $.ajax({
  218. // url:urlstr, //请求地址
  219. // data:data,
  220. // type: "post",
  221. // dataType: "json",
  222. // async:false,
  223. // success: function (data) {
  224. // if(data.code == "0"){
  225. // ZZLog(data);
  226. // //替换去程的票种信息
  227. // replaceTicketInfo(data);
  228. // }else{
  229. // ZZAlertInfo(data.info);
  230. // }
  231. // }
  232. // });
  233. // }
  234. }
  235. //替换去程的票种信息
  236. function replaceTicketInfo(data) {
  237. var list = data.list;
  238. var newHTML = '';
  239. for (var i = 0; i < list.length; i++) {
  240. var tempHTML = ticketHTML;
  241. tempHTML = tempHTML.replace('[座位等级]', list[i].seat_type_name);
  242. tempHTML = tempHTML.replace('[人群]', list[i].human_type_name);
  243. tempHTML = tempHTML.replace('[价格]', list[i].price);
  244. //数量
  245. var maxCount = list[i].stock > 50 ? 50 : list[i].stock;
  246. maxCount = maxCount > 0 ? maxCount : 0;
  247. var newHTML1 = '';
  248. for (var j = 0; j <= maxCount; j++) {
  249. var str = '<option value="[0]">[-]</option> ';
  250. str = str.replace('[0]', j);
  251. str = str.replace('[-]', j);
  252. newHTML1 += str;
  253. }
  254. tempHTML = tempHTML.replace('<option value="[0]">[-]</option>', newHTML1);
  255. tempHTML = tempHTML.replace('[总额]', '0');
  256. var data = {
  257. ticket_id: list[i].ticket_id
  258. };
  259. var jsonArrayFinal = JSON.stringify(data);
  260. jsonArrayFinal = jsonArrayFinal.replace(/"/g, '&quot;');
  261. tempHTML = tempHTML.replace('[data]', jsonArrayFinal);
  262. newHTML += tempHTML;
  263. }
  264. $('#list').html(newHTML);
  265. $('#list').show();
  266. }
  267. //选择返程
  268. function ifbackSelected(obj) {
  269. if (obj == true) {
  270. //选中返程
  271. if ($('#go_get_on').val() == '[0]' || $('#go_get_off').val() == '[0]') {
  272. $('#ifback').attr('checked', false);
  273. ZZAlertInfo('请完善相关的去程信息');
  274. return;
  275. } else {
  276. $('#Wdate2').val(after($('#Wdate1').val()));
  277. $('#back_info').show();
  278. $('#Wdate2').show();
  279. $('#list').hide();
  280. $('#channel_order').hide();
  281. $('#saleman_div').hide();
  282. $('#salesman').html('');
  283. selectBackDate();
  284. }
  285. } else {
  286. $('#back_info').hide();
  287. $('#back_info').children().hide();
  288. changeGetOffGo();
  289. $('#list').show();
  290. }
  291. }
  292. //选中返程的日期
  293. function selectBackDate() {
  294. var run_date = $('#Wdate2').val();
  295. var start_area = getPar('end_area_id');
  296. var end_area = getPar('start_area_id');
  297. var data = {
  298. run_date: run_date,
  299. start_area: start_area,
  300. end_area: end_area,
  301. tp: 'singleOrder_getBackProductList',
  302. line_type: line_type
  303. };
  304. ZZLog(data);
  305. $.ajax({
  306. url: urlstr,
  307. data: data,
  308. type: "post",
  309. dataType: "json",
  310. async: false,
  311. success: function (data) {
  312. if (data.code == "0") {
  313. ZZLog(data);
  314. //替换返程的 班次信息
  315. var back_bus_html = '<option value="[0]">请选择</option> ';
  316. for (var i = 0; i < data.run_list.length; i++) {
  317. var tempHTML1 = '<option value="[0]">请选择</option>';
  318. tempHTML1 = tempHTML1.replace('请选择', data.run_list[i].run_time);
  319. tempHTML1 = tempHTML1.replace('[0]', data.run_list[i].run_id);
  320. back_bus_html += tempHTML1;
  321. }
  322. $('#back_run_time').html(back_bus_html);
  323. $('#back_run_time').show();
  324. $('#back_get_off').hide();
  325. $('#back_down_div').hide();
  326. $('#back_get_on').hide();
  327. $('#back_get_on_div').hide();
  328. } else {
  329. ZZAlertInfo(data.info);
  330. }
  331. }
  332. });
  333. }
  334. //选择返程班次
  335. function changeRunTimeBack(obj) {
  336. var value = $(obj).val();
  337. var start_area_id = getPar('end_area_id');
  338. var data = {
  339. run_id: value,
  340. start_area_id: start_area_id,
  341. tp: "singleOrder_getStartStation",
  342. line_type: line_type
  343. };
  344. ZZLog(data);
  345. $.ajax({
  346. url: urlstr, //请求地址
  347. data: data,
  348. type: "post",
  349. dataType: "json",
  350. async: false,
  351. success: function (data) {
  352. if (data.code == "0") {
  353. ZZLog(data);
  354. //替换返程 出发地信息
  355. var back_start_res_html = '<option value="[0]">请选择</option>';
  356. for (var i = 0; i < data.list.length; i++) {
  357. var tempHTML1 = '<option value="[0]">请选择</option>';
  358. tempHTML1 = tempHTML1.replace('请选择', data.list[i].res_name + '(' + data.list[i].res_time + ')');
  359. tempHTML1 = tempHTML1.replace('[0]', data.list[i].res_id);
  360. back_start_res_html += tempHTML1;
  361. }
  362. $('#back_get_on').html(back_start_res_html);
  363. $('#back_get_on_div').show();
  364. $('#back_get_on').show();
  365. } else {
  366. ZZAlertInfo(data.info);
  367. }
  368. }
  369. });
  370. }
  371. //切换返程的上车站点
  372. function changeGetOnBack(obj) {
  373. var run_id = $('#back_run_time').val();
  374. var value = $('#back_get_on').val(); //返程上车的站点id
  375. var end_area_id = getPar('start_area_id'); //返程目的地id
  376. var data = {
  377. run_id: run_id,
  378. end_area_id: end_area_id,
  379. start_res_id: value,
  380. tp: "singleOrder_getEndStation"
  381. };
  382. if (value != '[0]') {
  383. ZZLog(data);
  384. $.ajax({
  385. url: urlstr, //请求地址
  386. data: data,
  387. type: "post",
  388. dataType: "json",
  389. async: false,
  390. success: function (data) {
  391. if (data.code == "0") {
  392. ZZLog(data);
  393. //智空back_ticket_id
  394. back_ticket_id = '';
  395. //替换去程 目的地信息
  396. var back_end_res_html = '<option value="[0]">请选择</option>';
  397. for (var i = 0; i < data.list.length; i++) {
  398. var tempHTML1 = '<option value="[0]">请选择</option>';
  399. tempHTML1 = tempHTML1.replace('请选择', data.list[i].res_name+ '(' + data.list[i].res_time + ')');
  400. tempHTML1 = tempHTML1.replace('[0]', data.list[i].res_id);
  401. back_end_res_html += tempHTML1;
  402. }
  403. $('#back_get_off').html(back_end_res_html);
  404. $('#back_down_div').show();
  405. $('#back_get_off').show();
  406. } else {
  407. ZZAlertInfo(data.info);
  408. }
  409. }
  410. });
  411. }
  412. }
  413. //切换返程下车点
  414. function changeGetOffBack() {
  415. //获取相应的订单渠道
  416. var end_res_id = $('#back_get_off').val();
  417. if (end_res_id != '[0]') {
  418. getChannelList(1);
  419. }
  420. // var run_id = $('#back_run_time').val();
  421. // var start_res_id = $('#back_get_on').val();
  422. // var end_res_id = $('#back_get_off').val();
  423. // var urlstr = base_api + 'orderManager/index.php';
  424. // var data = {
  425. // run_id : run_id,
  426. // start_area_id : start_area_id,
  427. // end_area_id : end_area_id,
  428. // line_type : line_type,
  429. // tp:"singleProduct_getGoChannel"
  430. // };
  431. // ZZLog(data);
  432. // $.ajax({
  433. // url:urlstr, //请求地址
  434. // data:data,
  435. // type: "post",
  436. // dataType: "json",
  437. // async:false,
  438. // success: function (data) {
  439. // if(data.code == "0"){
  440. // ZZLog(data);
  441. // }else{
  442. // ZZAlertInfo(data.info);
  443. // }
  444. // }
  445. // });
  446. }
  447. //获取相关的订单渠道
  448. function getChannelList(value) {
  449. var tp = '';
  450. var run_id = '';
  451. var start_res_id = '';
  452. var end_res_id = '';
  453. if (value == 0) {
  454. //去程
  455. tp = 'singleOrder_getGoChannel';
  456. run_id = getPar('run_id');
  457. start_res_id = $('#go_get_on').val();
  458. end_res_id = $('#go_get_off').val();
  459. var data = {
  460. tp: tp,
  461. run_id: run_id,
  462. start_res_id: start_res_id,
  463. end_res_id: end_res_id,
  464. line_type: line_type
  465. };
  466. ZZLog(data);
  467. $.ajax({
  468. url: urlstr, //请求地址
  469. data: data,
  470. type: "post",
  471. dataType: "json",
  472. async: false,
  473. success: function (data) {
  474. if (data.code == "0") {
  475. ZZLog(data);
  476. var channel_list = channelHTML;
  477. var list = data.list;
  478. for (var i = 0; i < list.length; i++) {
  479. var tempHTML = channelHTML;
  480. tempHTML = tempHTML.replace('请选择', list[i].supplier_name);
  481. tempHTML = tempHTML.replace('[0]', list[i].supplier_id);
  482. tempHTML = tempHTML.replace('[saleman]', list[i].sales_man);
  483. //$('#salesman').html(list[0].sales_man);
  484. channel_list += tempHTML;
  485. }
  486. $('.select_line').html(channel_list);
  487. //--如果下车为区域,显示该区域具体站点列表--//
  488. if (data.end_detail.length) {
  489. var end_sub_html = '<option value="[0]">请选择</option>';
  490. for (var i = 0; i < data.end_detail.length; i++) {
  491. var tempHTML1 = '<option value="[0]">请选择</option>';
  492. tempHTML1 = tempHTML1.replace('请选择', data.end_detail[i].sub_res_name);
  493. tempHTML1 = tempHTML1.replace('[0]', data.end_detail[i].sub_res_id);
  494. end_sub_html += tempHTML1;
  495. }
  496. $('#has_off_sub').val('1'); //是否有下车具体站点 设置 为1
  497. $('#go_off_sub_sel').html(end_sub_html);
  498. $('#go_off_sub').show();
  499. $('#go_off_sub_sel').show();
  500. }
  501. //----//
  502. //替换去程 目的地信息
  503. $('#channel_order').show();
  504. $('#saleman_div').show();
  505. $('.select_line').comboSelect();
  506. //根据下车站点 展示相关的票种信息
  507. //showTicketInfo(value);
  508. } else {
  509. ZZAlertInfo(data.info);
  510. }
  511. }
  512. });
  513. } else {
  514. //返程
  515. var go_run_id = getPar('run_id');
  516. var go_start_res_id = $('#go_get_on').val(); //上车站点id
  517. var go_end_res_id = $('#go_get_off').val(); //下车站点id
  518. var back_run_id = $('#back_run_time').val();
  519. var back_start_res_id = $('#back_get_on').val();
  520. var back_end_res_id = $('#back_get_off').val();
  521. var data = {
  522. go_run_id: go_run_id,
  523. go_start_res_id: go_start_res_id,
  524. go_end_res_id: go_end_res_id,
  525. tp: 'singleOrder_getBackChannel',
  526. back_run_id: back_run_id,
  527. back_start_res_id: back_start_res_id,
  528. back_end_res_id: back_end_res_id,
  529. line_type: line_type
  530. };
  531. ZZLog(data);
  532. $.ajax({
  533. url: urlstr, //请求地址
  534. data: data,
  535. type: "post",
  536. dataType: "json",
  537. async: false,
  538. success: function (data) {
  539. if (data.code == "0") {
  540. ZZLog(data);
  541. var channel_list = channelHTML;
  542. var list = data.list;
  543. for (var i = 0; i < list.length; i++) {
  544. var tempHTML = channelHTML;
  545. tempHTML = tempHTML.replace('请选择', list[i].supplier_name);
  546. tempHTML = tempHTML.replace('[0]', list[i].supplier_id);
  547. tempHTML = tempHTML.replace('[saleman]', list[i].sales_man);
  548. //$('#salesman').html(list[0].sales_man);
  549. channel_list += tempHTML;
  550. }
  551. $('.select_line').html(channel_list);
  552. $('#channel_order').show();
  553. $('.select_line').comboSelect();
  554. $('#saleman_div').show();
  555. //showTicketInfo(value);
  556. } else {
  557. ZZAlertInfo(data.info);
  558. }
  559. }
  560. });
  561. }
  562. }
  563. //切换订单渠道
  564. function changeChannel() {
  565. var value = $("input[type='checkbox']").is(':checked');
  566. var saleman = $(".select_line").find("option:selected").attr('saleman');
  567. $('#salesman').html(saleman);
  568. if (value == true) {
  569. value = 1;
  570. } else {
  571. value = 0;
  572. }
  573. showTicketInfo(value);
  574. }
  575. //根据下车站点 展示相关的票种信息
  576. function showTicketInfo(value) {
  577. if (value == 0) {
  578. //去程
  579. var run_id = getPar('run_id');
  580. var start_res_id = $('#go_get_on').val(); //上车站点id
  581. var end_res_id = $('#go_get_off').val(); //下车站点id
  582. var channel_id = $('.select_line').val(); //渠道id
  583. var line_type = getPar('line_type');
  584. var data = {
  585. run_id: run_id,
  586. start_res_id: start_res_id,
  587. end_res_id: end_res_id,
  588. tp: 'singleOrder_getTicketInfo',
  589. channel_id: channel_id,
  590. line_type: line_type
  591. };
  592. ZZLog(data);
  593. $.ajax({
  594. url: urlstr, //请求地址
  595. data: data,
  596. type: "post",
  597. dataType: "json",
  598. async: false,
  599. success: function (data) {
  600. if (data.code == "0") {
  601. ZZLog(data);
  602. //替换去程的票种信息
  603. replaceTicketInfo(data);
  604. } else {
  605. ZZAlertInfo(data.info);
  606. }
  607. }
  608. });
  609. } else {
  610. //往返
  611. var line_type = getPar('line_type');
  612. var tp = 'singleOrder_getBackTicketInfo';
  613. var go_run_id = getPar('run_id');
  614. var go_start_res_id = $('#go_get_on').val();
  615. var go_end_res_id = $('#go_get_off').val();
  616. var back_run_id = $('#back_run_time').val();
  617. var back_start_res_id = $('#back_get_on').val();
  618. var back_end_res_id = $('#back_get_off').val();
  619. var channel_id = $('.select_line').val();
  620. var line_type = line_type;
  621. var data = {
  622. tp: tp,
  623. go_run_id: go_run_id,
  624. go_start_res_id: go_start_res_id,
  625. go_end_res_id: go_end_res_id,
  626. back_run_id: back_run_id,
  627. back_start_res_id: back_start_res_id,
  628. back_end_res_id: back_end_res_id,
  629. channel_id: channel_id,
  630. line_type: line_type
  631. };
  632. ZZLog(data);
  633. $.ajax({
  634. url: urlstr,
  635. data: data,
  636. type: "post",
  637. dataType: "json",
  638. async: false,
  639. success: function (data) {
  640. if (data.code == "0") {
  641. ZZLog(data);
  642. showBackTicketInfo(data);
  643. } else {
  644. ZZAlertInfo(data.info);
  645. }
  646. },
  647. error: function (e) {
  648. ZZLog(e);
  649. }
  650. });
  651. }
  652. }
  653. //展示往返的票种信息
  654. function showBackTicketInfo(data) {
  655. var list = data.list;
  656. var newHTML = '';
  657. for (var i = 0; i < list.length; i++) {
  658. var tempHTML = ticketHTML;
  659. tempHTML = tempHTML.replace('[座位等级]', list[i].seat_type_name);
  660. tempHTML = tempHTML.replace('[人群]', list[i].human_type_name);
  661. tempHTML = tempHTML.replace('[价格]', list[i].price);
  662. //数量
  663. var maxCount = list[i].stock > 50 ? 50 : list[i].stock;
  664. maxCount = maxCount > 0 ? maxCount : 0;
  665. var newHTML1 = '';
  666. for (var j = 0; j <= maxCount; j++) {
  667. var str = '<option value="[0]">[-]</option> ';
  668. str = str.replace('[0]', j);
  669. str = str.replace('[-]', j);
  670. newHTML1 += str;
  671. }
  672. tempHTML = tempHTML.replace('<option value="[0]">[-]</option>', newHTML1);
  673. tempHTML = tempHTML.replace('[总额]', '0');
  674. var data = {
  675. go_ticket_id: list[i].go_ticket_id,
  676. go_run_id: list[i].go_run_id,
  677. go_discount_price: list[i].go_discount_price,
  678. back_run_id: list[i].back_run_id,
  679. back_ticket_id: list[i].back_ticket_id,
  680. back_discount_price: list[i].back_discount_price
  681. };
  682. var jsonArrayFinal = JSON.stringify(data);
  683. // jsonArrayFinal = jsonArrayFinal.replace(/"/g,'\'');
  684. jsonArrayFinal = jsonArrayFinal.replace(/"/g, '&quot;');
  685. tempHTML = tempHTML.replace('[data]', jsonArrayFinal);
  686. newHTML += tempHTML;
  687. }
  688. $('#list').html(newHTML);
  689. $('#list').show();
  690. go_ticket_id = list[0].ticket_id;
  691. }
  692. //计算总价
  693. function changeTotalPrice(obj) {
  694. var single_price = $(obj).parent().parent().find('.price').val();
  695. var total_price = parseInt($(obj).val()) * parseFloat(single_price).toFixed(2);
  696. $(obj).parent().parent().find('.total_price').html(total_price);
  697. }
  698. //保存按钮
  699. function basicInfoSave() {
  700. var ifback = $("input[type='checkbox']").is(':checked');
  701. var ticket_info = '';
  702. var count_num = 0;
  703. if (ifback == true) {
  704. var down_res = $('#back_get_off').val();
  705. if (down_res == '[0]') {
  706. ZZAlertInfo('返程信息选择不完全!');
  707. return;
  708. }
  709. ifback = 2;
  710. var back_ticket_info = '';
  711. $('.list_info').each(function (index, dom) {
  712. var count = $(this).children().find('.count').val();
  713. var data = $(this).attr('info');
  714. var total_price = $(this).children().find('.total_price').text();
  715. var price = $(this).children().find('.price').val();
  716. count_num += parseInt(count);
  717. //data=data.replace(/'/g,'"');
  718. var info = JSON.parse(data);
  719. //这里 将往返程价格 为设定价格的一半
  720. var back_price=price/2;
  721. if (count > 0) {
  722. go_info = '{' + '1' + ',' + info.go_run_id + ',' + info.go_ticket_id + ',' + back_price + ',' + count + '}';
  723. var back_info = '{' + '2' + ',' + info.back_run_id + ',' + info.back_ticket_id + ',' + back_price + ',' + count + '}';
  724. back_ticket_info += go_info + back_info;
  725. } else {
  726. return;
  727. }
  728. })
  729. ticket_info = back_ticket_info;
  730. if (ticket_info == '') {
  731. ZZAlertInfo('请完善订单信息,并选择数量!');
  732. return;
  733. }
  734. } else {
  735. var go_down_res = $('#go_get_off').val();
  736. //如果上车或下车站点为区域,判断是否选择具体站点--温依莅
  737. var has_on_sub = $('#has_on_sub').val();
  738. var has_off_sub = $('#has_off_sub').val();
  739. var sub_start_res_id = 0;
  740. var sub_end_res_id = 0;
  741. //--上车具体站点判断
  742. if (has_on_sub == '1') { //如果存在具体上车站点,则必选,传选中具体站点res_id值
  743. sub_start_res_id = $('#go_on_sub_sel').val();
  744. if (sub_start_res_id == '[0]') {
  745. ZZAlertInfo('请选择上车站点');
  746. return;
  747. }
  748. } else { //如果不存在具体上车站点,则不必选,传0值
  749. sub_start_res_id = 0;
  750. }
  751. //--下车具体站点判断
  752. if (has_off_sub == '1') { //如果存在具体下车站点,则必选,传选中具体站点res_id值
  753. sub_end_res_id = $('#go_off_sub_sel').val();
  754. if (sub_end_res_id == '[0]') {
  755. ZZAlertInfo('请选择下车站点');
  756. return;
  757. }
  758. } else { //如果不存在具体下车站点,则不必选,传0值
  759. sub_end_res_id = 0;
  760. }
  761. if (go_down_res == '[0]') {
  762. ZZAlertInfo('去程信息选择不完全!');
  763. return;
  764. }
  765. ifback = 1;
  766. var go_ticket_info = '';
  767. $('.list_info').each(function (index, dom) {
  768. var count = $(this).children().find('.count').val();
  769. var data = $(this).attr('info');
  770. var price = $(this).children().find('.price').val();
  771. count_num += parseInt(count);
  772. var info = '';
  773. if (data != '[data]') {
  774. info = JSON.parse(data);
  775. }
  776. var run_id = getPar('run_id');
  777. var go_info = '';
  778. if (count > 0) {
  779. go_info = '{' + ifback + ',' + run_id + ',' + info.ticket_id + ',' + price + ',' + count + '}';
  780. go_ticket_info += go_info;
  781. } else {
  782. return;
  783. }
  784. })
  785. ticket_info = go_ticket_info;
  786. if (ticket_info == '') {
  787. ZZAlertInfo('请完善订单信息,并选择数量!');
  788. return;
  789. }
  790. }
  791. //订单渠道
  792. var channel_order_id = $('#channel_order_id').val();
  793. var channel_id = $('.select_line').val();
  794. var salesman = $('#salesman').html();
  795. //--------如果上车或下车站点为区域,判断是否选择具体站点--温依莅
  796. var has_on_sub = $('#has_on_sub').val();
  797. var has_off_sub = $('#has_off_sub').val();
  798. var sub_start_res_id = 0;
  799. var sub_end_res_id = 0;
  800. //--上车具体站点判断
  801. if (has_on_sub == '1') { //如果存在具体上车站点,则必选,传选中具体站点res_id值
  802. sub_start_res_id = $('#go_on_sub_sel').val();
  803. if (sub_start_res_id == '[0]') {
  804. ZZAlertInfo('请选择上车站点');
  805. return;
  806. }
  807. } else { //如果不存在具体上车站点,则不必选,传0值
  808. sub_start_res_id = 0;
  809. }
  810. //--下车具体站点判断
  811. if (has_off_sub == '1') { //如果存在具体下车站点,则必选,传选中具体站点res_id值
  812. sub_end_res_id = $('#go_off_sub_sel').val();
  813. if (sub_end_res_id == '[0]') {
  814. ZZAlertInfo('请选择下车站点');
  815. return;
  816. }
  817. } else { //如果不存在具体下车站点,则不必选,传0值
  818. sub_end_res_id = 0;
  819. }
  820. //-----------------------------
  821. //套餐产品
  822. var doorPrice = $('#doorPrice').val().trim(); //门票价格
  823. var hotelPrice = $('#hotelPrice').val().trim(); //酒店价格
  824. //联系人
  825. //联系人和手机号有其中一个就可以
  826. var link_man = $('#name').val().trim();
  827. var link_tel = $('#tel').val().trim();
  828. var remarks = $('#remarks').val();
  829. var idCard = $('#idCard').val();//身份证号
  830. //如果联系人或者备注中有半角逗号,替换为全角
  831. link_man = link_man.replace(/,/g, ",");
  832. remarks = remarks.replace(/,/g, ",");
  833. if ((link_man == '' && link_tel == '')) {
  834. ZZAlertInfo('联系人信息填写不完整!');
  835. return;
  836. }
  837. if (link_tel != '' && !validate(link_tel, 'phone')) {
  838. //ZZAlertInfo('联系人信息填写不完整!');
  839. return;
  840. }
  841. var customer_info = '{' + link_man + ',' + link_tel + ',' + remarks + '}';
  842. //代收
  843. //这里单价总价都填写,以总价为准;如果只有单价,则用单价乘以数量来计算总价
  844. var sin_rec = parseInt($('#substitute').val().trim());
  845. if (!sin_rec) {
  846. sin_rec = 0;
  847. }
  848. var substitute_all = parseInt($('#substitute_all').val().trim());
  849. var substitutes = 0;
  850. if (!substitute_all) {
  851. substitutes = sin_rec * count_num;
  852. } else {
  853. substitutes = substitute_all;
  854. }
  855. var data = {
  856. tp: 'singleOrder_submitOrder',
  857. channel_id: channel_id,
  858. channel_order_id: channel_order_id,
  859. salesman: salesman,
  860. ticket_info: ticket_info,
  861. customer_info: customer_info,
  862. id_card:idCard,
  863. door_price:doorPrice,
  864. hotel_price:hotelPrice,
  865. receive_value: substitutes,
  866. count_num: count_num,
  867. sub_start_res_id: sub_start_res_id,
  868. sub_end_res_id: sub_end_res_id
  869. }
  870. ZZLog(data);
  871. $.ajax({
  872. url: urlstr,
  873. data: data,
  874. type: "post",
  875. dataType: "json",
  876. async: false,
  877. success: function (data) {
  878. if (data.code == "0") {
  879. ZZLog(data);
  880. ZZAlertInfo('下单成功!', function () {
  881. window.location.href = "/order_list.html";
  882. });
  883. } else {
  884. ZZAlertInfo(data.info);
  885. }
  886. },
  887. error: function (e) {
  888. ZZLog(e);
  889. }
  890. });
  891. }