manual.blade.php 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279
  1. @extends('user.layouts')
  2. @section('css')
  3. <style>
  4. .tab {
  5. display: none;
  6. }
  7. .hide {
  8. display: none;
  9. }
  10. @media (max-width: 768px) {
  11. #ad {
  12. right: 1vw;
  13. bottom: 20vh;
  14. }
  15. #ad img {
  16. width: 40vw;
  17. }
  18. }
  19. @media (min-width: 768px) {
  20. #ad {
  21. right: 3vw;
  22. bottom: 15vh;
  23. }
  24. #ad img {
  25. width: 30vw;
  26. }
  27. }
  28. @media (min-width: 1200px) {
  29. #ad {
  30. right: 10vw;
  31. bottom: 15vh;
  32. }
  33. #ad img {
  34. width: 20vw;
  35. }
  36. }
  37. #ad {
  38. position: fixed;
  39. z-index: 9999;
  40. margin-right: auto;
  41. }
  42. #ad img {
  43. max-width: 300px;
  44. }
  45. #ad>button {
  46. position: absolute;
  47. right: 0;
  48. top: 0;
  49. }
  50. </style>
  51. @endsection
  52. @section('content')
  53. <div id="ad">
  54. <button class="btn btn-pure btn-outline-light icon wb-close" type="button" onclick="document.getElementById('ad').style.display = 'none'"></button>
  55. <img src="{{ asset('assets/images/help/作者要饭求放过.PNG') }}" alt="{{ trans('user.payment.manual.red_packet') }}">
  56. </div>
  57. <div class="page-content container">
  58. <div class="panel panel-bordered">
  59. <div class="panel-heading">
  60. <h1 class="panel-title cyan-600">
  61. <i class="icon wb-payment"></i>{{ sysConfig('website_name') . ' ' . trans('common.payment.manual') }}
  62. </h1>
  63. </div>
  64. <div class="panel-body">
  65. <div class="alert alert-info text-center">
  66. <p>{{ trans('user.payment.manual.hint') }}</p>
  67. </div>
  68. <div class="steps row w-p100">
  69. <div class="step col-lg-4 current">
  70. <span class="step-number">1</span>
  71. <div class="step-desc">
  72. <span class="step-title">{{ trans('user.payment.manual.steps.notice.title') }}</span>
  73. <p>{{ trans('user.payment.manual.steps.notice.description') }}</p>
  74. </div>
  75. </div>
  76. <div class="step col-lg-4">
  77. <span class="step-number">2</span>
  78. <div class="step-desc">
  79. <span class="step-title">{{ trans('user.payment.manual.steps.payment.title') }}</span>
  80. <p>{{ trans('user.payment.manual.steps.payment.description') }}</p>
  81. </div>
  82. </div>
  83. <div class="step col-lg-4">
  84. <span class="step-number">3</span>
  85. <div class="step-desc">
  86. <span class="step-title">{{ trans('user.payment.manual.steps.complete.title') }}</span>
  87. <p>{{ trans('user.payment.manual.steps.complete.description') }}</p>
  88. </div>
  89. </div>
  90. </div>
  91. <div class="w-p100 text-center mb-20" id="payment-group">
  92. <div class="w-md-p50 w-p100 mx-auto btn-group">
  93. @if (sysConfig('wechat_qrcode'))
  94. <button class="btn btn-lg btn-block" id="btn-wechat" onclick="show(0)">{{ trans('common.payment.wechat') }}</button>
  95. @endif
  96. @if (sysConfig('alipay_qrcode'))
  97. <button class="btn mt-0 btn-lg btn-block" id="btn-alipay" onclick="show(1)">{{ trans('common.payment.alipay') }}</button>
  98. @endif
  99. </div>
  100. </div>
  101. <div class="tab">
  102. <div class="wechat hide">
  103. <div class="mx-auto text-center">
  104. <h4>{{ trans('user.payment.manual.steps.remark.title') }}</h4>
  105. <img class="w-lg-350 w-md-p50 w-p100 mb-10" src="{{ asset('assets/images/help/manual_wechat1.png') }}" alt="" />
  106. <h4>{{ trans('user.payment.manual.steps.remark.description') }}</h4>
  107. <img class="w-lg-350 w-md-p50 w-p100 mb-10" src="{{ asset('assets/images/help/manual_wechat2.png') }}" alt="" />
  108. </div>
  109. </div>
  110. <div class="alipay hide">
  111. <div class="mx-auto text-center">
  112. <h4>{{ trans('user.payment.manual.steps.remark.title') }}</h4>
  113. <img class="w-lg-350 w-md-p50 w-p100 mb-10" src="{{ asset('assets/images/help/manual_alipay1.png') }}" alt="" />
  114. <h4>{{ trans('user.payment.manual.steps.remark.description') }}</h4>
  115. <img class="w-lg-350 w-md-p50 w-p100 mb-10" src="{{ asset('assets/images/help/manual_alipay2.png') }}" alt="" />
  116. </div>
  117. </div>
  118. </div>
  119. <div class="tab">
  120. <div class="wechat hide">
  121. <div class="mx-auto text-center">
  122. <div class="alert alert-info">
  123. {!! trans('user.payment.qrcode_tips', ['software' => trans('common.payment.wechat')]) !!}
  124. </div>
  125. <img class="w-lg-350 w-md-p50 w-p100 mb-10" src="{{ asset(sysConfig('wechat_qrcode')) }}" alt="" />
  126. </div>
  127. </div>
  128. <div class="alipay hide">
  129. <div class="mx-auto text-center">
  130. <div class="alert alert-info">
  131. {!! trans('user.payment.qrcode_tips', ['software' => trans('common.payment.alipay')]) !!}
  132. </div>
  133. <img class="w-lg-350 w-md-p50 w-p100 mb-10" src="{{ asset(sysConfig('alipay_qrcode')) }}" alt="" />
  134. </div>
  135. </div>
  136. <div class="alert alert-danger text-center">
  137. {!! trans('user.payment.mobile_tips') !!}
  138. </div>
  139. </div>
  140. <div class="tab">
  141. <div class="alert alert-danger text-center">
  142. {{ trans('user.payment.manual.payment_tips') }}
  143. </div>
  144. <div class="mx-auto w-md-p50 w-lg-p25">
  145. <ul class="list-group list-group-dividered">
  146. <li class="list-group-item">{{ trans('user.shop.service') . ': ' . $name }}</li>
  147. <li class="list-group-item">{{ trans('user.shop.price') . ': ' . $payment->amount_tag }}</li>
  148. @if ($days !== 0)
  149. <li class="list-group-item">{{ trans('common.available_date') . ': ' . $days . trans_choice('common.days.attribute', 1) }}</li>
  150. @endif
  151. </ul>
  152. </div>
  153. </div>
  154. <div class="clearfix">
  155. <button class="btn btn-lg btn-default float-left" id="prevBtn" type="button"
  156. onclick="nextPrev(-1)">{{ trans('user.payment.manual.pre') }}</button>
  157. <button class="btn btn-lg btn-primary float-right" id="nextBtn" type="button"
  158. onclick="nextPrev(1)">{{ trans('user.payment.manual.next') }}</button>
  159. </div>
  160. </div>
  161. </div>
  162. </div>
  163. @endsection
  164. @section('javascript')
  165. <script>
  166. let currentTab = 0; // Current tab is set to be the first tab (0)
  167. showTab(currentTab); // Display the current tab
  168. show({{ sysConfig('wechat_qrcode') ? 0 : 1 }});
  169. function showTab(n) {
  170. // This function will display the specified tab of the form ...
  171. const x = document.getElementsByClassName('tab');
  172. x[n].style.display = 'block';
  173. // ... and fix the Previous/Next buttons:
  174. if (n === 0) {
  175. document.getElementById('prevBtn').style.display = 'none';
  176. } else {
  177. document.getElementById('prevBtn').style.display = 'inline';
  178. }
  179. if (n === x.length - 1) {
  180. document.getElementById('payment-group').style.display = 'none';
  181. document.getElementById('nextBtn').classList.remove('btn-primary');
  182. document.getElementById('nextBtn').classList.add('btn-success');
  183. document.getElementById('nextBtn').innerHTML = '{{ trans('common.submit') }}';
  184. } else {
  185. document.getElementById('payment-group').style.display = 'inline-flex';
  186. document.getElementById('nextBtn').innerHTML = '{{ trans('user.payment.manual.next') }}';
  187. document.getElementById('nextBtn').classList.remove('btn-success');
  188. document.getElementById('nextBtn').classList.add('btn-primary');
  189. document.getElementById('nextBtn').style.display = 'inline';
  190. }
  191. fixStepIndicator(n);
  192. }
  193. function nextPrev(n) {
  194. // This function will figure out which tab to display
  195. const x = document.getElementsByClassName('tab');
  196. // if you have reached the end of the form... :
  197. if (currentTab === x.length - 1 && n === 1) {
  198. //...the form gets submitted:
  199. ajaxPost('{{ route('manual.inform', ['payment' => $payment->trade_no]) }}', {}, {
  200. success: function(ret) {
  201. handleResponse(ret, {
  202. redirectUrl: '{{ route('invoice.index') }}'
  203. });
  204. }
  205. });
  206. return false;
  207. } else {
  208. x[currentTab].style.display = 'none'; // Hide the current tab:
  209. currentTab += n; // Increase or decrease the current tab by 1:
  210. }
  211. showTab(currentTab);
  212. }
  213. function fixStepIndicator(n) {
  214. // This function removes the "current" class of all steps...
  215. let i, x = document.getElementsByClassName('step');
  216. for (i = 0; i < x.length; i++) {
  217. x[i].className = x[i].className.replace(' current', ' ');
  218. }
  219. //... and adds the "active" class to the current step:
  220. x[n].className += ' current';
  221. }
  222. function show(check) {
  223. @if (sysConfig('wechat_qrcode'))
  224. const $wechat = document.getElementsByClassName('wechat');
  225. const $btn_wechat = document.getElementById('btn-wechat');
  226. if (check) {
  227. for (let i = 0; i < $wechat.length; i++) {
  228. $wechat[i].style.display = 'none';
  229. }
  230. $btn_wechat.classList.remove('btn-success');
  231. } else {
  232. for (let i = 0; i < $wechat.length; i++) {
  233. $wechat[i].style.display = 'inline';
  234. }
  235. $btn_wechat.classList.add('btn-success');
  236. }
  237. @endif
  238. @if (sysConfig('alipay_qrcode'))
  239. const $alipay = document.getElementsByClassName('alipay');
  240. const $btn_alipay = document.getElementById('btn-alipay');
  241. if (check) {
  242. for (let i = 0; i < $alipay.length; i++) {
  243. $alipay[i].style.display = 'inline';
  244. }
  245. $btn_alipay.classList.add('btn-primary');
  246. } else {
  247. for (let i = 0; i < $alipay.length; i++) {
  248. $alipay[i].style.display = 'none';
  249. }
  250. $btn_alipay.classList.remove('btn-primary');
  251. }
  252. @endif
  253. }
  254. </script>
  255. @endsection