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.

587 lines
21 KiB

7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
  1. <!DOCTYPE html><html><head><meta http-equiv="content-type" content="text/html;charset=utf-8"/>
  2. <title>确认订单</title><meta content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=0" name="viewport">
  3. <link href="<?php echo env('APP_URL'); ?>/css/weixin/style.css" type="text/css" rel="stylesheet">
  4. <script type="text/javascript" src="<?php echo env('APP_URL'); ?>/js/jquery.min.js"></script>
  5. <script type="text/javascript" src="<?php echo env('APP_URL'); ?>/js/weixin/mobile.js"></script>
  6. <link href="<?php echo env('APP_URL'); ?>/css/font-awesome.min.css" type="text/css" rel="stylesheet">
  7. <meta name="keywords" content="关键词"><meta name="description" content="描述"></head><body style="background-color:#f1f1f1;">
  8. <!-- 订单确认信息-start -->
  9. <div id="checkout_info">
  10. <div class="classreturn loginsignup">
  11. <div class="ds-in-bl return"><a href="javascript:history.back(-1);"><img src="<?php echo env('APP_URL'); ?>/images/weixin/return.png" alt="返回"></a></div>
  12. <div class="ds-in-bl tit center"><span>确认订单</span></div>
  13. <div class="ds-in-bl nav_menu"><a href="javascript:void(0);"><img src="<?php echo env('APP_URL'); ?>/images/weixin/class1.png" alt="菜单"></a></div>
  14. </div>
  15. @include('weixin.common.headerNav')
  16. <form action="<?php echo route('weixin_cart_done'); ?>" method="post" id="myform">
  17. <input type="hidden" name="cartids" id="cartids" value="<?php echo $cartids; ?>">
  18. <!-- 选择收货地址-start -->
  19. <a href="javascript:;" onclick="selectaddress();">
  20. <div class="checkout-addr">
  21. <input name="default_address_id" type="hidden" id="default_address_id" value="<?php if($user_default_address){echo $user_default_address['id'];} ?>">
  22. <p class="title"><span class="name" id="default_consignee"><?php if($user_default_address){echo $user_default_address['name'];} ?></span> <span class="tel" id="default_phone"><?php if($user_default_address){echo $user_default_address['mobile'];} ?></span></p>
  23. <p class="des" id="default_address"><?php if($user_default_address){ ?><?php echo $user_default_address['province_name']; ?><?php echo $user_default_address['city_name']; ?><?php echo $user_default_address['district_name']; ?> <?php echo $user_default_address['address']; ?><?php }else{ ?>请添加收货地址<?php } ?></p>
  24. <i></i>
  25. </div>
  26. </a>
  27. <style>
  28. .checkout-addr{position: relative;/* border-top: 1px solid #e3e3e3;border-bottom: 1px solid #e3e3e3; */background: #fff;margin-top:10px;padding:10px;}
  29. .checkout-addr p{margin-right:20px;}.checkout-addr .title{font-size:18px;color:#353535;}.checkout-addr .des{color:#9b9b9b;}
  30. .checkout-addr i{position: absolute;top: 50%;right:12px;margin-top:-6px;color:#bbb;display:inline-block;border-right:2px solid;border-bottom:2px solid;width:12px;height:12px;transform:rotate(-45deg);}
  31. </style>
  32. <script>
  33. function selectaddress()
  34. {
  35. $('#addressList').show();
  36. $('#checkout_info').hide();
  37. }
  38. </script>
  39. <!-- 选择收货地址-end -->
  40. <!-- 订单商品列表-start -->
  41. <ul class="goodslist">
  42. <?php if($checkout_goods['list']){foreach($checkout_goods['list'] as $k=>$v){ ?>
  43. <li>
  44. <img src="<?php echo $v['litpic']; ?>">
  45. <p><b><?php echo $v['title']; ?></b><span>¥<?php echo $v['final_price']; ?><i>x<?php echo $v['goods_number']; ?></i></span></p>
  46. </li>
  47. <?php }} ?>
  48. </ul>
  49. <style>
  50. .goodslist{background-color:#fff;margin-top:10px;}
  51. .goodslist li{display:-webkit-box;margin:0 10px;padding:10px;border-bottom: 1px solid #f1f1f1;}
  52. .goodslist li img{margin-right:10px;display:block;width:78px;height:78px;border: 1px solid #e1e1e1;}
  53. .goodslist li p {display: block;-webkit-box-flex: 1;width: 100%;}
  54. .goodslist li p b {display:block;font-size:16px;font-weight:400;line-height: 28px;color:#333;}
  55. .goodslist li p span {color:#f23030;font-size:18px;display: block;padding-top:8px;}
  56. .goodslist li p i{color:#666;float:right;font-size:14px;}
  57. </style>
  58. <!-- 订单商品列表-end -->
  59. <div class="floor">
  60. <ul class="fui-list mt10">
  61. <a href="javascript:update_pay_mode_layer();"><li>
  62. <div class="ui-list-info">
  63. <h4 class="ui-nowrap">支付方式</h4>
  64. <div class="ui-txt-info"><span id="paytext">微信支付</span> &nbsp;</div>
  65. <input type="hidden" name="payment" id="payid" value="2">
  66. </div>
  67. <i class="fa fa-angle-right" aria-hidden="true"></i>
  68. </li></a>
  69. <script>
  70. function update_pay_mode_layer()
  71. {
  72. //询问框
  73. layer.open({
  74. content: '<div style="padding:15px;"><?php if($is_balance_enough){ ?><a style="margin-bottom:10px;background-color:#1aad19;border:1px solid #179e16;color:white;border-radius:2px;text-align:center;" class="bottoma" onclick="layer.closeAll();" href="javascript:update_pay_mode(1,\'余额支付\');">账户余额 <?php echo $user_info['money']; ?>元</a><?php }else{ ?><a style="margin-bottom:10px;background-color:#999;border:1px solid #999;color:white;border-radius:2px;text-align:center;" class="bottoma" href="javascript:;">余额不足 <?php echo $user_info['money']; ?>元</a><?php } ?><a style="background-color:#ea5a3d;border:1px solid #dd2727;color:white;border-radius:2px;text-align:center;" class="bottoma" onclick="layer.closeAll();" href="javascript:update_pay_mode(2,\'微信支付\');">微信支付</a></div>'
  75. });
  76. }
  77. function update_pay_mode(id,name)
  78. {
  79. $("#paytext").html(name);
  80. $("#payid").val(id);
  81. }
  82. </script>
  83. <a href="javascript:update_username();"><li>
  84. <div class="ui-list-info">
  85. <h4 class="ui-nowrap">优惠券</h4>
  86. <div class="ui-txt-info">请选择优惠券 &nbsp;</div>
  87. </div>
  88. <i class="fa fa-angle-right" aria-hidden="true"></i>
  89. </li></a>
  90. </ul></div>
  91. <div class="floor" style="background-color:#fff;margin-top:10px;padding:10px;">
  92. <div class="buy_note">
  93. <div class="buy_note_tit"><span>备注</span></div>
  94. <textarea name="message" rows="3" placeholder="给卖家留言"></textarea>
  95. </div>
  96. <div class="order_check_info">
  97. <p><?php echo $checkout_goods['total_goods']; ?>件商品</p>
  98. <p>运费:¥0</p>
  99. <p>满¥15.00减¥1.00</p>
  100. <p>商品总价:¥<?php echo $checkout_goods['total_price']; ?></span></p>
  101. <p>应付款金额:<span class="red">¥<i id="totalamount">99</i></span></p>
  102. </div>
  103. </div>
  104. <style>
  105. .buy_note{margin:5px 0 15px 0;}
  106. .buy_note_tit{font-size:16px;margin-bottom:15px;}
  107. .buy_note textarea{display:block;font-size: 14px;border:1px solid #e1e1e1;width: 100%;padding:10px;box-sizing: border-box;}
  108. .order_check_info p{text-align:right;line-height:22px;color: #666;font-size:14px;}
  109. .order_check_info p .red{color:#ff5500;font-size:18px;}
  110. </style>
  111. <div class="setting"><div class="close"><a href="<?php echo route('weixin_user_logout'); ?>" id="logout">提交</a></div></div>
  112. </form>
  113. </div>
  114. <!-- 订单确认信息-end -->
  115. <!-- 收货地址选择-start -->
  116. <div id="addressList" style="display:none;">
  117. <div class="classreturn loginsignup">
  118. <div class="ds-in-bl return"><a href="javascript:addressback();"><img src="<?php echo env('APP_URL'); ?>/images/weixin/return.png" alt="返回"></a></div>
  119. <div class="ds-in-bl tit center"><span>选择收货地址</span></div>
  120. </div>
  121. <script>
  122. function addressback()
  123. {
  124. $('#checkout_info').show();
  125. $('#addressList').hide();
  126. }
  127. function defaultback(id)
  128. {
  129. setdefault(id);
  130. addressback();
  131. //var url = "";
  132. //location.href = url;
  133. }
  134. function setdefault(id)
  135. {
  136. var access_token = '<?php echo $_SESSION['weixin_user_info']['access_token']; ?>';
  137. var url = '<?php echo env('APP_API_URL').'/user_address_setdefault'; ?>';
  138. $.post(url,{access_token:access_token,id:id},function(res)
  139. {
  140. if (res.code == 0)
  141. {
  142. //订单确认页面
  143. $("#default_address_id").val(id);
  144. $("#default_consignee").html($("#consignee"+id).html());
  145. $("#default_phone").html($("#con_phone"+id).html());
  146. $("#default_address").html($("#con_address"+id).html());
  147. }
  148. else
  149. {
  150. //提示
  151. layer.open({
  152. content: res.msg
  153. ,skin: 'msg'
  154. ,time: 2 //2秒后自动关闭
  155. });
  156. }
  157. }, 'json');
  158. }
  159. </script>
  160. <!-- 收货地址列表-start -->
  161. <div class="address_list mt10">
  162. <style>
  163. .address_list .flow-have-adr{padding:15px;margin-bottom:10px;background-color:#fff;}
  164. .address_list .ect-colory{color:#e23435;}
  165. .address_list .f-h-adr-title label{font-size:18px;color:#000;margin-right:5px;}
  166. .address_list .f-h-adr-con{color:#777;margin-top:5px;margin-bottom:5px;}
  167. </style>
  168. <?php if($address_list){foreach($address_list as $k=>$v){ ?>
  169. <div class="flow-have-adr" onclick="defaultback('<?php echo $v['id']; ?>')">
  170. <p class="f-h-adr-title"><label id="consignee<?php echo $v['id']; ?>"><?php echo $v['name']; ?></label><span class="ect-colory fr" id="con_phone<?php echo $v['id']; ?>"><?php echo $v['mobile']; ?></span></p>
  171. <p class="f-h-adr-con"><span class="ect-colory"><?php if($v['is_default']==1){ ?>[默认地址]<?php } ?></span><span id="con_address<?php echo $v['id']; ?>"><?php echo $v['province_name'].$v['city_name'].$v['district_name'].' '.$v['address']; ?></span></p>
  172. </div>
  173. <?php }}else{ ?>
  174. <div style="text-align:center;line-height:40px;color:#999;">暂无记录</div>
  175. <?php } ?>
  176. </div>
  177. <!-- 收货地址列表-end -->
  178. <!-- 添加收货地址-start -->
  179. <style>
  180. .adr_add{padding:0 10px;background-color:#fff;}
  181. .adr-form-group{margin-top:10px;}
  182. .adr-form-group input[type=text],.adr-form-group textarea{display: block;width: 100%;font-size:16px;padding:10px;color: #777;vertical-align: middle;background-color: #fff;background-image: none;border: 1px solid #ddd;border-radius: 0;box-sizing:border-box;}
  183. .adr-form-group select{padding:5px;margin-right:10px;}
  184. .bottoma{display:block;font-size:18px;padding:10px;color:white;background-color:#f23030;text-align:center;}
  185. </style>
  186. <div class="adr_add">
  187. <div style="font-size:18px;padding-top:10px;text-align:center;">添加新的收货地址</div>
  188. <div class="adr-form-group">
  189. <label for="doc-ipt-email-1">收货人</label>
  190. <input name="name" type="text" class="" id="name" placeholder="输入姓名">
  191. </div>
  192. <div class="adr-form-group">
  193. <label for="doc-ipt-email-1">手机号码</label>
  194. <input type="text" name="mobile" class="" id="mobile" placeholder="输入手机号码">
  195. </div>
  196. <div class="adr-form-group">
  197. 地区: <select id='sheng'></select><select id='shi'></select><select id='qu'></select>
  198. <script>
  199. // JavaScript Document
  200. $(document).ready(function(e) {
  201. //加载省的数据
  202. LoadSheng();
  203. //加载市的数据
  204. LoadShi();
  205. //加载区的数据
  206. LoadQu();
  207. //给省的下拉加点击事件
  208. $("#sheng").change(function(){
  209. //重新加载市
  210. LoadShi();
  211. //重新加载区
  212. LoadQu();
  213. });
  214. //给市的下拉加点击事件
  215. $("#shi").change(function(){
  216. //重新加载区
  217. LoadQu();
  218. });
  219. });
  220. //加载省份的方法
  221. function LoadSheng(parent_id,select_id)
  222. {
  223. //省的父级代号
  224. parent_id = parent_id || '86';
  225. select_id = select_id || 0;
  226. $.ajax({
  227. async:false,
  228. url:'<?php echo env('APP_API_URL')."/region_list"; ?>',
  229. data:{id:parent_id},
  230. type:"GET",
  231. dataType:"json",
  232. success: function(res){
  233. var hang = res.data;
  234. var str = "";
  235. for(var i=0;i<hang.length;i++)
  236. {
  237. if(select_id != 0 && select_id == hang[i].id)
  238. {
  239. str = str+"<option selected='selected' value='"+hang[i].id+"'>"+hang[i].name+"</option>";
  240. }
  241. else
  242. {
  243. str = str+"<option value='"+hang[i].id+"'>"+hang[i].name+"</option>";
  244. }
  245. }
  246. $("#sheng").html(str);
  247. }
  248. });
  249. }
  250. //加载市的方法
  251. function LoadShi(parent_id,select_id)
  252. {
  253. //找市的父级代号
  254. parent_id = parent_id || $("#sheng").val();
  255. select_id = select_id || 0;
  256. $.ajax({
  257. async:false,
  258. url:'<?php echo env('APP_API_URL')."/region_list"; ?>',
  259. data:{id:parent_id},
  260. type:"GET",
  261. dataType:"json",
  262. success: function(res){
  263. var hang = res.data;
  264. var str = "";
  265. for(var i=0;i<hang.length;i++)
  266. {
  267. if(select_id != 0 && select_id == hang[i].id)
  268. {
  269. str = str+"<option selected='selected' value='"+hang[i].id+"'>"+hang[i].name+"</option>";
  270. }
  271. else
  272. {
  273. str = str+"<option value='"+hang[i].id+"'>"+hang[i].name+"</option>";
  274. }
  275. }
  276. $("#shi").html(str);
  277. }
  278. });
  279. }
  280. //加载区的方法
  281. function LoadQu(parent_id,select_id)
  282. {
  283. //找区的父级代号
  284. parent_id = parent_id || $("#shi").val();
  285. select_id = select_id || 0;
  286. $.ajax({
  287. url:'<?php echo env('APP_API_URL')."/region_list"; ?>',
  288. data:{id:parent_id},
  289. type:"GET",
  290. dataType:"json",
  291. success: function(res){
  292. var hang = res.data;
  293. var str = "";
  294. for(var i=0;i<hang.length;i++)
  295. {
  296. if(select_id != 0 && select_id == hang[i].id)
  297. {
  298. str = str+"<option selected='selected' value='"+hang[i].id+"'>"+hang[i].name+"</option>";
  299. }
  300. else
  301. {
  302. str = str+"<option value='"+hang[i].id+"'>"+hang[i].name+"</option>";
  303. }
  304. }
  305. $("#qu").html(str);
  306. }
  307. });
  308. }
  309. </script>
  310. </div>
  311. <div class="adr-form-group">
  312. <label for="doc-ta-1">详细地址</label>
  313. <textarea name="address" class="" rows="3" id="address"></textarea>
  314. </div>
  315. <a style="margin:10px;" class="bottoma" href="javascript:adr_dosubmit();">提交</a>
  316. <br><br>
  317. </div>
  318. <!-- 添加收货地址-start -->
  319. <script type="text/javascript" src="<?php echo env('APP_URL'); ?>/js/layer/mobile/layer.js"></script>
  320. <script>
  321. function adr_dosubmit()
  322. {
  323. var access_token = '<?php echo $_SESSION['weixin_user_info']['access_token']; ?>';
  324. var url = '<?php echo env('APP_API_URL').'/user_address_add'; ?>';
  325. var name = $("#name").val();
  326. var mobile = $("#mobile").val();
  327. var address = $("#address").val();
  328. var province = $("#sheng").val();
  329. var city = $("#shi").val();
  330. var district = $("#qu").val();
  331. var is_default = 0;
  332. //if(document.getElementById("is_default").checked){is_default = 1;}
  333. if(name == '')
  334. {
  335. //提示
  336. layer.open({
  337. content: '姓名不能为空'
  338. ,skin: 'msg'
  339. ,time: 2 //2秒后自动关闭
  340. });
  341. return false;
  342. }
  343. if(mobile == '')
  344. {
  345. //提示
  346. layer.open({
  347. content: '手机号不能为空'
  348. ,skin: 'msg'
  349. ,time: 2 //2秒后自动关闭
  350. });
  351. return false;
  352. }
  353. if(validatemobile(mobile) == false)
  354. {
  355. //提示
  356. layer.open({
  357. content: '手机号格式不正确'
  358. ,skin: 'msg'
  359. ,time: 2 //2秒后自动关闭
  360. });
  361. return false;
  362. }
  363. if(address == '')
  364. {
  365. //提示
  366. layer.open({
  367. content: '地址不能为空'
  368. ,skin: 'msg'
  369. ,time: 2 //2秒后自动关闭
  370. });
  371. return false;
  372. }
  373. $.post(url,{access_token:access_token,name:name,mobile:mobile,address:address,province:province,city:city,district:district,is_default:is_default},function(res)
  374. {
  375. if(res.code==0)
  376. {
  377. setdefault(res.data.id);
  378. window.location.reload();
  379. }
  380. else
  381. {
  382. //提示
  383. layer.open({
  384. content: res.msg
  385. ,skin: 'msg'
  386. ,time: 2 //2秒后自动关闭
  387. });
  388. }
  389. },'json');
  390. }
  391. </script>
  392. </div>
  393. <!-- 收货地址选择-end -->
  394. <script>
  395. function cart_submit()
  396. {
  397. var cart_goods_ids = '';
  398. $('[name="checkItem"][checked]').each(function(){
  399. var goods_id = $(this).attr('data-cart-id');
  400. if(cart_goods_ids){cart_goods_ids = cart_goods_ids+'_'+goods_id;}else{cart_goods_ids = cart_goods_ids+goods_id;}
  401. });
  402. if(cart_goods_ids == '')
  403. {
  404. layer.open({
  405. content: '请选择商品'
  406. ,skin: 'msg'
  407. ,time: 2 //2秒后自动关闭
  408. });
  409. return false;
  410. }
  411. location.href = '<?php echo substr(route('weixin_cart_checkout',array('ids'=>1)), 0, -1); ?>' + cart_goods_ids;
  412. }
  413. function change_goods_number(type, id)
  414. {
  415. var goods_number = document.getElementById('goods_number'+id).value;
  416. if(type != 2)
  417. {
  418. var goods_number = document.getElementById('goods_number'+id).value;
  419. document.getElementById('goods_number'+id).value = goods_number;
  420. }
  421. if(type == 1){goods_number--;}
  422. if(type == 3){goods_number++;}
  423. if(goods_number <= 0){goods_number=1;}
  424. if(!/^[0-9]*$/.test(goods_number)){goods_number = document.getElementById('goods_number'+id).value;}
  425. document.getElementById('goods_number'+id).value = goods_number;
  426. var access_token = '<?php echo $_SESSION['weixin_user_info']['access_token']; ?>';
  427. var url = '<?php echo env('APP_API_URL').'/cart_add'; ?>';
  428. $.post(url,{access_token:access_token,goods_id:id,goods_number:goods_number},function(res)
  429. {
  430. if (res.code == 0)
  431. {
  432. changeCartTotalPrice();
  433. }
  434. else if (res.msg != '')
  435. {
  436. //提示
  437. layer.open({
  438. content: '姓名不能为空'
  439. ,skin: 'msg'
  440. ,time: 2 //2秒后自动关闭
  441. });
  442. var goods_number = document.getElementById('goods_number'+id).value;
  443. document.getElementById('goods_number'+id).value = goods_number;
  444. }
  445. }, 'json');
  446. }
  447. //删除购物车商品
  448. $(function () {
  449. //删除购物车商品事件
  450. $(document).on("click", '.deleteGoods', function (e) {
  451. var access_token = '<?php echo $_SESSION['weixin_user_info']['access_token']; ?>';
  452. var cart_ids = new Array();
  453. cart_ids.push($(this).attr('data-cart-id'));
  454. layer.open({
  455. content: '确定要删除此商品吗'
  456. ,btn: ['确定', '取消']
  457. ,yes: function(index){
  458. layer.close(index);
  459. $.ajax({
  460. type : "POST",
  461. url:"<?php echo env('APP_API_URL').'/cart_delete'; ?>",
  462. dataType:'json',
  463. data: {access_token:access_token,id:cart_ids},
  464. success: function(res){
  465. layer.open({
  466. content: res.msg
  467. ,skin: 'msg'
  468. ,time: 2 //2秒后自动关闭
  469. });
  470. window.location.reload();
  471. }
  472. });
  473. }
  474. });
  475. })
  476. });
  477. //勾选商品
  478. function checkGoods(obj)
  479. {
  480. if($(obj).hasClass('check_t'))
  481. {
  482. //改变颜色
  483. $(obj).removeClass('check_t');
  484. //取消选中
  485. $(obj).find('input').attr('checked',false);
  486. }
  487. else
  488. {
  489. //改变颜色
  490. $(obj).addClass('check_t');
  491. //勾选选中
  492. $(obj).find('input').attr('checked',true);
  493. }
  494. //选中全选多选框
  495. if($(obj).hasClass('checkFull'))
  496. {
  497. if($(obj).hasClass('check_t'))
  498. {
  499. $(".che").each(function(i,o){
  500. $(this).addClass('check_t');
  501. $(this).find('input').attr('checked',true);
  502. });
  503. }
  504. else
  505. {
  506. $(".che").each(function(i,o){
  507. $(this).removeClass('check_t');
  508. $(this).find('input').attr('checked',false);
  509. });
  510. }
  511. }
  512. changeCartTotalPrice();
  513. }
  514. //修改选中商品总价
  515. function changeCartTotalPrice()
  516. {
  517. var total_price = 0;
  518. $('[name="checkItem"][checked]').each(function(){
  519. var goods_id = $(this).attr('data-goods-id');
  520. total_price = total_price + $('#goods_number'+goods_id).val() * $('#goods_price'+goods_id).text();
  521. });
  522. $('#total_fee').text(total_price);
  523. }
  524. </script>
  525. <script>
  526. function unshow(id)
  527. {
  528. $(id).hide();
  529. }
  530. function showmask(id)
  531. {
  532. $(id).show();
  533. }
  534. </script>
  535. </body></html>