emergency.blade.php 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383
  1. @extends('mobile.module.layouts.content')
  2. @push('meta')
  3. @endpush
  4. @push('css')
  5. <link rel="stylesheet" href="{{ theme_asset('mobile/css/company.css') }}">
  6. @endpush
  7. @push('js')
  8. @endpush
  9. @section('content')
  10. <div class="order-top">
  11. <div class="txt">
  12. 增值包有效期与您的套餐到期时间一致,购买后请尽快使用。当前套餐到期时间:<span class="font_yellow">@if(!$mysetmeal->endtime) 无期限 @else {{ date('Y-m-d',strtotime($mysetmeal->endtime)) }} @endif</span>
  13. </div>
  14. </div>
  15. <div class="split-block"></div>
  16. <div class="list_height plist-txt last">
  17. <div class="pic"></div>
  18. <div class="tit font14">选择职位</div>
  19. <div class="describe font13">
  20. @if($joblist)
  21. <span class="for-select"></span>
  22. <select id="jobs_choose">
  23. @foreach($joblist as $key => $val)
  24. <option value="{{ $val['id'] }}- {{ $val['stick'] }}" @if($val['id'] == $job_id) selected @endif>{{ $val['jobs_name'] }}</option>
  25. @endforeach
  26. </select>
  27. @else
  28. <span id="no_jobs_choose">没有可选择的职位</span>
  29. @endif
  30. </div>
  31. <div class="arrow"></div>
  32. <div class="clear"></div>
  33. </div>
  34. <div class="clear"></div>
  35. <div class="split-block"></div>
  36. <div class="ptitle border">
  37. <div class="th1">选择紧急增值包</div>
  38. </div>
  39. @foreach($cat_arr as $key => $vo)
  40. <div class="list_height plist-txt order-service-item @if($key == '0') active @endif @if($key == count($cat_arr)-1)last @endif " service_id="{{ $vo->id }}" service_type="{{ $vo->cat }}" service_price="{{ $vo->service_price }}" service_points="{{ $vo->service_points }}" service_name="{{ $vo->name }}">
  41. <div class="pic"></div>
  42. <div class="tit font14">{{ $vo->name }},<span class="font_yellow">{{ $vo->service_price }}元</span><span class="font_gray9">(VIP价:{{ $vo->vip_price}}元)</span></div>
  43. <div class="clear"></div>
  44. </div>
  45. @endforeach
  46. <div class="clear"></div>
  47. <div class="split-block"></div>
  48. <div class="list_height plist-txt notarrow">
  49. <div class="pic"></div>
  50. <div class="tit font14">订单金额</div>
  51. <div class="describe font13"><span class="discount_notice font12">触屏版专享优惠价</span><span class="font_yellow" id="total_amount">{{ $cat_arr[0]->service_price }}</span>元</div>
  52. <div class="arrow"></div>
  53. <div class="clear"></div>
  54. </div>
  55. <div class="list_height plist-txt notarrow pay-type">
  56. <div class="pic"></div>
  57. <div class="tit font14">支付方式</div>
  58. <div class="describe font12">
  59. <div class="radio-list pay-type-list">
  60. <div class="radio points active">
  61. <div class="pic"></div>
  62. <div class="txt">积分支付</div>
  63. </div>
  64. <div class="radio cash">
  65. <div class="pic"></div>
  66. <div class="txt">在线支付</div>
  67. </div>
  68. <div class="clear"></div>
  69. </div>
  70. </div>
  71. <div class="arrow"></div>
  72. <div class="clear"></div>
  73. </div>
  74. <div class="list_height plist-txt notarrow points-pay-relation last">
  75. <div class="pic"></div>
  76. <div class="tit font14">所需积分</div>
  77. <div class="describe font13"><span class="font_yellow" id="total_points">{{ $cat_arr[0]->service_points }}</span></div>
  78. <div class="arrow"></div>
  79. <div class="clear"></div>
  80. </div>
  81. <div class="list_height plist-txt notarrow cash-pay-relation">
  82. <div class="pic"></div>
  83. <div class="tit font14">积分抵扣</div>
  84. <div class="describe font13"><input type="number" value="" placeholder="当前共有{{ $mypoint->points }}积分" id="deductible_val"></div>
  85. <div class="arrow"></div>
  86. <div class="clear"></div>
  87. </div>
  88. <div class="list_height plist-txt notarrow cash-pay-relation last">
  89. <div class="pic"></div>
  90. <div class="tit font14">应付金额</div>
  91. <div class="describe font13"><span class="font_yellow" id="need_amount">{{ $cat_arr[0]->service_price }}</span></div>
  92. <div class="arrow"></div>
  93. <div class="clear"></div>
  94. </div>
  95. <div class="split-block"></div>
  96. <div class="payment-list cash-pay-relation" style="display:none;">
  97. @if(is_weixin())
  98. <div class="payment wechat active">
  99. <div class="pic wechat"></div>
  100. <div class="txt">
  101. <div class="payment-name font14">微信支付</div>
  102. <div class="payment-intro font12 font_gray9">推荐已在微信中绑定银行卡的用户使用</div>
  103. </div>
  104. <div class="radio active"></div>
  105. </div>
  106. @else
  107. <div class="payment alipay active">
  108. <div class="pic alipay"></div>
  109. <div class="txt">
  110. <div class="payment-name font14">支付宝支付</div>
  111. <div class="payment-intro font12 font_gray9">推荐已下载支付宝客户端的用户使用</div>
  112. </div>
  113. <div class="radio active"></div>
  114. </div>
  115. <div class="payment wechat last">
  116. <div class="pic wechat"></div>
  117. <div class="txt">
  118. <div class="payment-name font14">微信支付</div>
  119. <div class="payment-intro font12 font_gray9">推荐已在微信中绑定银行卡的用户使用</div>
  120. </div>
  121. <div class="radio "></div>
  122. </div>
  123. @endif
  124. <div class="clear"></div>
  125. </div>
  126. <div class="btn-spacing"><div class="qs-btn qs-btn-blue font18" id="submit_pay">提交订单</div></div>
  127. @if($job_id)
  128. <input name="jobs_id" id="jobs_id" type="hidden" value="{{ $job_id }}" />
  129. <input name="buy" id="buy" type="hidden" value="{{ $jobs_buy }}" />
  130. @else
  131. <input name="jobs_id" id="jobs_id" type="hidden" value="{{ $joblist[0]['id'] or 0 }}" />
  132. <input name="buy" id="buy" type="hidden" value="{{ $joblist[0]['stick'] or 0 }}" />
  133. @endif
  134. <div class="split-block"></div>
  135. <!--当前用户的积分数-->
  136. <input type="hidden" name="my_points" id="my_points" value=" {{ $mypoint->points }} ">
  137. <!--当前服务类型id-->
  138. <input type="hidden" name="service_id" id="service_id" value="{{ $cat_arr[0]->id }}">
  139. <!--当前服务类型名称-->
  140. <input type="hidden" name="service_type" id="service_type" value="{{ $cat}}">
  141. <!--当前服务类型所需积分数-->
  142. <input type="hidden" name="service_points" id="service_points" value="{{ $cat_arr[0]->service_points }}">
  143. <!--当前服务类型所需人民币-->
  144. <input type="hidden" name="service_price" id="service_price" value="{{ $cat_arr[0]->service_price }}">
  145. <!--当前选择的支付方式-->
  146. <input type="hidden" name="payment" id="payment" value="@if(is_weixin()) wechat @else alipay @endif">
  147. <!--当前需要支付的金额-->
  148. <input type="hidden" name="pay_amount" id="pay_amount" value="{{ $cat_arr[0]->service_price }}">
  149. @endsection
  150. @section('script')
  151. <script type="text/javascript">
  152. //定义当前用户的积分数
  153. var my_points = parseInt($('#my_points').val());
  154. //设置支付方式
  155. function set_payment(){
  156. if($('.pay-type-list .radio.points').hasClass('active')){
  157. $('#payment').val('points');
  158. }else{
  159. $('#payment').val($('.payment-list .payment.active').hasClass('wechat')?'wechat':'alipay');
  160. }
  161. }
  162. //初始化界面显示
  163. function init_shows(choose_pay_type){
  164. $('#submit_pay').addClass('enable');
  165. $('#submit_pay').addClass('qs-btn-blue');
  166. $('#submit_pay').removeClass('qs-btn-border-gray');
  167. $('#submit_pay').html("提交订单");
  168. //定义当前服务类型所需积分数
  169. var service_points = parseFloat($('#service_points').val());
  170. if(choose_pay_type){
  171. //定义当前所选支付类型
  172. var pay_type = $('.pay-type-list .radio.points').hasClass('active')?'points':'cash';
  173. if(pay_type=='points'){
  174. $('.cash-pay-relation').hide();
  175. $('.points-pay-relation').show();
  176. if(my_points<service_points){
  177. $('#submit_pay').removeClass('enable');
  178. $('#submit_pay').addClass('qs-btn-border-gray');
  179. $('#submit_pay').removeClass('qs-btn-blue');
  180. $('#submit_pay').html("积分不足,无法完成支付");
  181. }
  182. }else{
  183. $('.cash-pay-relation').show();
  184. $('.points-pay-relation').hide();
  185. }
  186. }else{
  187. if(my_points>=service_points){
  188. $('.cash-pay-relation').hide();
  189. $('.points-pay-relation').show();
  190. $('.pay-type-list .radio').removeClass('active');
  191. $('.pay-type-list .radio.points').addClass('active');
  192. }else{
  193. $('.cash-pay-relation').show();
  194. $('.points-pay-relation').hide();
  195. $('.pay-type-list .radio').removeClass('active');
  196. $('.pay-type-list .radio.cash').addClass('active');
  197. }
  198. }
  199. }
  200. init_shows(false);
  201. set_payment();
  202. //选择服务类型
  203. $('.order-service-item').on('click',function(){
  204. $('.order-service-item').removeClass('active');
  205. $(this).addClass('active');
  206. $('#service_id').val($(this).attr('service_id'));
  207. $('#service_type').val($(this).attr('service_type'));
  208. $('#service_points').val($(this).attr('service_points'));
  209. $('#service_price').val($(this).attr('service_price'));
  210. //订单金额显示
  211. $('#total_amount').html($(this).attr('service_price'));
  212. //应付金额显示
  213. $('#need_amount').html($(this).attr('service_price'));
  214. //所需积分显示
  215. $('#total_points').html($(this).attr('service_points'));
  216. init_shows(false);
  217. after_deductible();
  218. set_payment();
  219. });
  220. //选择支付类型(积分?现金?)
  221. $('.pay-type-list .radio').on('click',function(){
  222. $('.pay-type-list .radio').removeClass('active');
  223. $(this).addClass('active');
  224. init_shows(true);
  225. set_payment();
  226. });
  227. //选择支付方式(支付宝?微信?)
  228. $('.payment-list .payment').on('click',function(){
  229. $('.payment-list .payment').removeClass('active');
  230. $('.payment-list .payment .radio').removeClass('active');
  231. $(this).addClass('active');
  232. $(this).children('.radio').addClass('active');
  233. $('#payment').val($(this).hasClass('wechat')?'wechat':'alipay');
  234. });
  235. //填写抵扣积分数
  236. $('#deductible_val').on('keyup',function(){
  237. var input_val = parseInt($(this).val());
  238. var service_points = parseInt($('#service_points').val());
  239. var max_val = my_points<service_points?my_points:service_points;
  240. if(input_val>max_val){
  241. $(this).val(max_val);
  242. }
  243. after_deductible();
  244. });
  245. //计算抵扣后的金额
  246. function after_deductible(){
  247. var return_val = 0.0;
  248. var service_points = parseInt($('#service_points').val());
  249. var deductible = $('#deductible_val').val()==''?0:parseInt($('#deductible_val').val());
  250. var rate = parseInt("{{ $payment_rate}}");
  251. var minus_val = service_points-deductible;
  252. if(minus_val>0){
  253. return_val = parseFloat(minus_val/rate);
  254. }
  255. $('#need_amount').html(return_val);
  256. $('#pay_amount').val(return_val);
  257. }
  258. //没有职位的提示
  259. $('#no_jobs_choose').on('click',function(){
  260. qsToast({type:2,context: "没有可选择的职位!"});
  261. return false;
  262. });
  263. //选择职位赋值
  264. $("#jobs_choose").on('change',function(){
  265. var val_str = $(this).val();
  266. var val_arr = val_str.split('-');
  267. $("#jobs_id").val(val_arr[0]);
  268. $("#buy").val(val_arr[1]);
  269. });
  270. function isWeiXin() {
  271. var ua = window.navigator.userAgent.toLowerCase();
  272. console.log(ua);//mozilla/5.0 (iphone; cpu iphone os 9_1 like mac os x) applewebkit/601.1.46 (khtml, like gecko)version/9.0 mobile/13b143 safari/601.1
  273. if (ua.match(/MicroMessenger/i) == 'micromessenger') {
  274. return true;
  275. } else {
  276. return false;
  277. }
  278. }
  279. function onBridgeReady(result){
  280. WeixinJSBridge.invoke(
  281. 'getBrandWCPayRequest', {
  282. "appId":result.appId, //公众号名称,由商户传入
  283. "timeStamp":result.timeStamp, //时间戳,自1970年以来的秒数
  284. "nonceStr":result.nonceStr, //随机串
  285. "package":result.package,
  286. "signType":result.signType, //微信签名方式:
  287. "paySign":result.paySign //微信签名
  288. },
  289. function(res){
  290. if(res.err_msg == "get_brand_wcpay_request:ok" ){
  291. // 使用以上方式判断前端返回,微信团队郑重提示:
  292. //res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。
  293. alert("支付成功!")
  294. window.location.href ="{{route($sub_site.'mobile.firm.service.order.index')}}";
  295. }
  296. });
  297. }
  298. //提交订单
  299. var lock = 0;
  300. $('#submit_pay').on('click',function(){
  301. if($(this).hasClass('enable') && !lock){
  302. lock = 1;
  303. var jobs_id = $('#jobs_id').val();
  304. var payment = $('#payment').val();
  305. var service_id = $('#service_id').val();
  306. var service_type = $('#service_type').val();
  307. var deductible_val = $('#deductible_val').val();
  308. var need_amount = $("#pay_amount").val();
  309. var url = "{{ route($sub_site.'mobile.firm.service.increment.pay') }}";
  310. var is_deductible = 0;
  311. if(deductible_val) {
  312. is_deductible = 1;
  313. }
  314. if(jobs_id == 0){
  315. qsToast({type:2,context: "请选择职位!"});
  316. lock = 0;
  317. return false;
  318. }
  319. if(parseInt($("#buy").val())!=0){
  320. qsToast({type:2,context: "该职位已设置【紧急】,不能重复购买!"});
  321. lock = 0;
  322. return false;
  323. }
  324. if(need_amount == 0) {
  325. payment ='points';
  326. }
  327. if(payment != "points") {
  328. var data = "?service_type="+service_type+"&jobs_id="+jobs_id+"&amount="+need_amount+"&cat={{ $cat }}&is_deductible="+is_deductible+"&payment_name="+payment+"&pay_type="+payment+"&project_id="+service_id+"&deductible="+deductible_val;
  329. url = url+data;
  330. if(!isWeiXin()){ //H5 支付
  331. window.location.href = url;
  332. }else{ //微信内支付
  333. $.get(url,function (result) {
  334. if(result.status==0){
  335. alert(result.msg);
  336. }else{
  337. onBridgeReady(result.msg)
  338. }
  339. }, 'json');
  340. }
  341. } else {
  342. $.post(url, {
  343. jobs_id: jobs_id,
  344. payment_name: payment,
  345. pay_type: payment,
  346. cat: "{{ $cat }}",
  347. amount: need_amount,
  348. is_deductible: is_deductible,
  349. service_type: service_type,
  350. project_id: service_id,
  351. deductible: deductible_val,
  352. _token: "{{ csrf_token() }}"
  353. }, function (result) {
  354. if (result.status == 1) {
  355. qsToast({type: 1, context: "该职位已成功设置【紧急推广】"});
  356. setTimeout(function () {
  357. location.href = "{{ route($sub_site.'mobile.firm.service.order.index') }}";
  358. },2000)
  359. } else {
  360. qsToast({type: 2, context: result.msg});
  361. lock = 0;
  362. return false;
  363. }
  364. }, 'json');
  365. }
  366. }
  367. });
  368. </script>
  369. @endsection