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.

fill_order_unbus.js 9.2 KiB

3 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305
  1. //订单填写:非巴士
  2. //接收参数:param
  3. //详:
  4. //pro_cate_id: '', 父级产品id
  5. //pro_cate_name:'迪士尼乐园门票' //父级产品名称
  6. //start_date: '', 乘车日期(游玩日期)
  7. //prod_arr:[{prod_id:1,prod_count:1,prod_name:"成人"},{prod_id:2,prod_count:2,prod_name:"儿童"}] 产品明细数组
  8. //total_money: 385, 订单总金额
  9. var param = null;
  10. window.onload = function() {
  11. ifLogin(function(flag) {
  12. $('body').show();
  13. param = getStorJson('fill_order_unbus_20170306');
  14. // param = {
  15. // pro_cate_id: '1',
  16. // pro_cate_name: "迪士尼乐园门票",
  17. // start_date: "2017-03-08",
  18. // prod_arr: [{ prod_id: '1', prod_count: '1', prod_name: "成人" }, { prod_id: '2', prod_count: '1', prod_name: "儿童" }],
  19. // total_money: '200'
  20. // }
  21. if(!param) {
  22. alert('缺少参数');
  23. $('body').hide();
  24. return;
  25. }
  26. $('body').show();
  27. var m = getMonthAndDayByDate(param['start_date'], 'month');
  28. var d = getMonthAndDayByDate(param['start_date'], 'day');
  29. $('#start_date').text('游玩日期:' + m + '月' + d + '日');
  30. var arr = param['prod_arr'];
  31. var HTML = '';
  32. for(var i = 0, m = arr.length; i < m; i++) {
  33. var dict = arr[i];
  34. if(dict['prod_count'] <= 0) {
  35. continue;
  36. }
  37. var cstr = '';
  38. if(i != 0 && dict['prod_count'] > 0) {
  39. cstr = '<br>';
  40. }
  41. var tempHTML = cstr + '<span class="text_c_2b ulev1">' + dict['prod_count'] + '</span>' +
  42. '<span class="text_c_2b ulev1 ui_m_r05">' + dict['prod_name'] + '</span>';
  43. HTML += tempHTML;
  44. }
  45. $('#person_count').html(HTML);
  46. $('#pro_cate_name').html(param['pro_cate_name']);
  47. $('#total_balance').text(param['total_money']);
  48. });
  49. }
  50. $(document).ready(function() {
  51. var timer_paysuccess = null; //实时刷是否支付
  52. var _pay_type = '1'; //微信支付:1 支付宝支付:2 预付款支付:3
  53. $('#wx_pay').on('click', function() {
  54. _pay_type = '1';
  55. resetPayTypeCSS()
  56. $('#wx_pay').removeClass('bor_pay_un');
  57. $('.p_wx').removeClass('pay_w_icon_unsel');
  58. $('#wx_pay').addClass('bor_pay');
  59. $('.p_wx').addClass('pay_w_icon_sel');
  60. })
  61. // $('#ali_pay').on('click', function() {
  62. // _pay_type = '2';
  63. // resetPayTypeCSS()
  64. // $('#ali_pay').addClass('bor_pay');
  65. // $('.p_ali').addClass('pay_z_icon_sel');
  66. // $('#ali_pay').removeClass('bor_pay_un');
  67. // $('.p_ali').removeClass('pay_z_icon_unsel');
  68. //
  69. // })
  70. $('#advance_pay').on('click', function() {
  71. _pay_type = '3';
  72. resetPayTypeCSS()
  73. $('#advance_pay').addClass('bor_pay');
  74. $('.p_advance').addClass('pay_advance_icon_sel');
  75. $('#advance_pay').removeClass('bor_pay_un');
  76. $('.p_advance').removeClass('pay_advance_icon_unsel');
  77. })
  78. function resetPayTypeCSS() {
  79. $('#wx_pay').removeClass('bor_pay');
  80. $('.p_wx').removeClass('pay_w_icon_sel');
  81. $('#wx_pay').addClass('bor_pay_un');
  82. $('.p_wx').addClass('pay_w_icon_unsel');
  83. // $('#ali_pay').removeClass('bor_pay');
  84. // $('.p_ali').removeClass('pay_z_icon_sel');
  85. // $('#ali_pay').addClass('bor_pay_un');
  86. // $('.p_ali').addClass('pay_z_icon_unsel');
  87. $('#advance_pay').removeClass('bor_pay');
  88. $('.p_advance').removeClass('pay_advance_icon_sel');
  89. $('#advance_pay').addClass('bor_pay_un');
  90. $('.p_advance').addClass('pay_advance_icon_unsel');
  91. }
  92. $('#close_cha').on('click', function() {
  93. close_cha();
  94. })
  95. function close_cha() {
  96. $('.model').fadeOut();
  97. $('.container-div').removeClass('mod_fil');
  98. clearInterval(timer_paysuccess);
  99. timer_paysuccess = null;
  100. }
  101. // $('#contact_cardId').on('keyup', function() {
  102. // var value = $(this).val().replace(/\s/g, '').replace(/(\d{4})(?=\d)/g, "$1 ");
  103. // $(this).val(value);
  104. // })
  105. //去结算
  106. $('#go_settlement').on('click', function() {
  107. $('#qr_code_img').attr('src', 'images/base.png');
  108. $('#close_cha').hide();
  109. if(timer_paysuccess) {
  110. clearInterval(timer_paysuccess);
  111. timer_paysuccess = null;
  112. }
  113. var prod_arr = [];
  114. for(var i = 0, m = param['prod_arr'].length; i < m; i++) {
  115. var dict = param['prod_arr'][i];
  116. var obj = {
  117. prod_id: dict['prod_id'],
  118. prod_count: dict['prod_count']
  119. }
  120. prod_arr.push(obj);
  121. }
  122. var _pro_cate_id = param['pro_cate_id'] ? param['pro_cate_id'] : "";
  123. var _start_date = param['start_date'] ? param['start_date'] : "";
  124. var _prod_arr = JSON.stringify(prod_arr) ? JSON.stringify(prod_arr) : [];
  125. var _contacts_name = $('#contact_person').val();
  126. var _contacts_phone = $('#contact_phone').val();
  127. var _contacts_ID = $('#contact_cardId').val();
  128. var _total_money = param['total_money'] ? param['total_money'] : "";
  129. if(_pro_cate_id.trim().length <= 0) return;
  130. if(_start_date.trim().length <= 0) return;
  131. if(_prod_arr.length <= 0) return;
  132. if(_contacts_name.trim().length <= 0) {
  133. alert('请输入预订人姓名');
  134. $('#contact_person').focus();
  135. return;
  136. }
  137. if(_contacts_phone.trim().length != 11) {
  138. alert('手机号格式不正确');
  139. $('#contact_phone').focus();
  140. return;
  141. }
  142. // if(_contacts_ID.trim().length != 18) {
  143. // alert('身份证号码格式不正确');
  144. // $('#contact_cardID').focus();
  145. // return;
  146. // }
  147. if(_pay_type.trim().length <= 0) return;
  148. // if(_total_money.trim().length <= 0) return;
  149. var _data = {
  150. pro_cate_id: _pro_cate_id,
  151. start_date: _start_date,
  152. prod_arr: _prod_arr,
  153. contacts_name: _contacts_name.trim(),
  154. contacts_phone: _contacts_phone.trim(),
  155. contacts_ID: _contacts_ID.trim(),
  156. pay_type: _pay_type,
  157. total_money: _total_money,
  158. }
  159. ZZLog(base_api + 'prod/prod/make-order', JSON.stringify(_data));
  160. if(_pay_type == '1') {
  161. $('.pay_type').addClass('weixin');
  162. $('.pay_type').removeClass('zhifubao');
  163. $('.qr_pay_type').text('微信扫码支付:');
  164. $('.model').fadeIn();
  165. $('.container-div').addClass('mod_fil');
  166. } else if(_pay_type == '2'){
  167. $('.pay_type').addClass('zhifubao');
  168. $('.pay_type').removeClass('weixin');
  169. $('.qr_pay_type').text('支付宝扫码支付:');
  170. $('.model').fadeIn();
  171. $('.container-div').addClass('mod_fil');
  172. } else if(_pay_type == '3'){
  173. var result = confirm('预付款支付 ' + param.total_money + '元');
  174. if(!result) return;
  175. }else {}
  176. $('#pay_money').text(_total_money);
  177. submit();
  178. function submit() {
  179. $.ajax({
  180. type: "post",
  181. url: base_api + 'prod/prod/make-order',
  182. data: _data,
  183. dataType: 'json',
  184. // traditional: true, //这里设置为true
  185. success: function(res_data) {
  186. ZZLog(res_data);
  187. if(false == res_data['flag']) {
  188. if(codeNotLogin == res_data['code']) {
  189. location.href = res_data['url'];
  190. // alert(infoNotLogin);
  191. } else if(codeNotRegister == res_data['code']) {
  192. location.href = 'register.html';
  193. } else {
  194. alert(res_data['msg']);
  195. }
  196. close_cha();
  197. } else {
  198. //..
  199. if(_pay_type=='3'){
  200. location.href = 'pay_success.html';
  201. return;
  202. }
  203. $('#close_cha').show();
  204. var data = res_data['data'];
  205. var total_money = data['total_money'];
  206. var qr_code = data['qr_code'];
  207. var pay_type = data['pay_type'];
  208. var order_id = data['order_id'];
  209. if(pay_type == '1') {
  210. $('.pay_type').addClass('weixin');
  211. $('.pay_type').removeClass('zhifubao');
  212. $('.qr_pay_type').text('微信扫码支付:');
  213. } else if(pay_type=='2'){
  214. $('.pay_type').addClass('zhifubao');
  215. $('.pay_type').removeClass('weixin');
  216. $('.qr_pay_type').text('支付宝扫码支付:');
  217. }else{}
  218. $('#pay_money').text(total_money);
  219. if(!order_id) {
  220. alert('未生成订单号,请重试');
  221. close_cha();
  222. return;
  223. }
  224. $('#qr_code_img').attr('src', qr_code);
  225. timer_paysuccess = setInterval(ifPaySuccess, 3000);
  226. function ifPaySuccess() {
  227. var _data = {
  228. order_id: order_id
  229. }
  230. ZZLog(base_api + 'prod/prod/check-order', JSON.stringify(_data));
  231. $.ajax({
  232. type: "post",
  233. url: base_api + 'prod/prod/check-order',
  234. data: _data,
  235. dataType: 'json',
  236. success: function(res_data) {
  237. ZZLog(res_data);
  238. if(false == res_data['flag']) {
  239. if(codeNotLogin == res_data['code']) {
  240. var URL = '/web/fx/fill_order_unbus.html';
  241. URL = encodeURI(URL);
  242. location.href = res_data['url'] + URL;
  243. } else if(codeNotRegister == res_data['code']) {
  244. location.href = 'register.html';
  245. } else {
  246. alert(res_data['msg']);
  247. }
  248. } else {
  249. //..
  250. var data = res_data['data'];
  251. var order_status = data['order_status'];
  252. //1:待支付 2:已支付
  253. if('2' == order_status) {
  254. //清空缓存:决定不清除
  255. // clearStorage('fill_order_unbus_20170306');
  256. close_cha();
  257. setTimeout(function() {
  258. location.href = 'pay_success.html';
  259. }, 1000);
  260. }
  261. }
  262. },
  263. error: function() {
  264. close_cha();
  265. alert(infoApiError);
  266. }
  267. });
  268. }
  269. // var time_s = 30;
  270. // $('#third_second').text(time_s);
  271. // var timer = setInterval(function(){
  272. // time_s--;
  273. // $('#third_second').text(time_s);
  274. // if(time_s<=0){
  275. //// $('#third_second')
  276. // }
  277. // },1000);
  278. }
  279. },
  280. error: function() {
  281. close_cha();
  282. alert(infoApiError);
  283. }
  284. });
  285. }
  286. })
  287. })