extract.html 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport"content="width=device-width,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no">
  6. <meta name="renderer" content="webkit">
  7. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
  8. <!-- 禁止百度转码 -->
  9. <meta http-equiv="Cache-Control" content="no-siteapp" />
  10. <!-- uc强制竖屏 -->
  11. <meta name="screen-orientation" content="portrait">
  12. <!-- QQ强制竖屏 -->
  13. <meta name="x5-orientation" content="portrait">
  14. <title>用户提现</title>
  15. {include file="public/style" /}
  16. </head>
  17. <body>
  18. <div class="user-cash">
  19. <section>
  20. <div class="pay-selection">
  21. <div class="default default-hock"><i style="font-style: normal;">银联卡</i> <div class="icon current"><span></span></div></div>
  22. <div class="selects">
  23. <ul>
  24. <li data-name="alipay">支付宝 <div class="icon"><span></span></div></li>
  25. <li data-name="bank">银联卡 <div class="icon"><span></span></div></li>
  26. <input class="payname" type="hidden" value="{$extractInfo.extract_type ?:'bank'}" />
  27. </ul>
  28. </div>
  29. </div>
  30. <div class="card-wrapper">
  31. <div class="card-info">
  32. <input class="card-name" type="text" placeholder="姓名" value="{$extractInfo.real_name}"/>
  33. <div class="bank">
  34. <input class="card-number" type="number" placeholder="卡号" value="{$extractInfo.bank_code?:''}"/>
  35. <input class="card-address" type="text" placeholder="开户行" value="{$extractInfo.bank_address}"/>
  36. </div>
  37. <div class="alipay">
  38. <input class="alipay-number" type="text" placeholder="支付宝账号" value="{$extractInfo.alipay_code}"/>
  39. </div>
  40. <input class="card-money" type="tel" placeholder="请输入提现金额"/>
  41. <span class="balance">余额:¥<i>{$userInfo.now_money}</i></span>
  42. </div>
  43. </div>
  44. <div class="error-txt" style="margin: 0;"></div>
  45. <div class="submit"><span>提现</span></div>
  46. </section>
  47. </div>
  48. {include file="public/right_nav" /}
  49. <script type="text/javascript">
  50. var def_type = $('.payname').val(), def = $('[data-name='+def_type+']');
  51. def.find('.icon').addClass('current');
  52. $('.default-hock i').text(def.text());
  53. $('.'+def_type).addClass('active');
  54. $(document).ready(function() {
  55. var min_p = '{$minExtractPrice}';
  56. cardOption();
  57. function cardOption() {
  58. $('.default-hock').on('click', function() {
  59. $('.selects').slideToggle();
  60. });
  61. }
  62. function cardTab() {
  63. var cardWrapper = $('.card-wrapper');
  64. var selects = $('.selects');
  65. selects.find('li').on('click', function() {
  66. selects.find('li').find('.icon').removeClass('current');
  67. $(this).find('.icon').addClass('current');
  68. $('.payname').val($(this).attr('data-name'));
  69. if($('.payname').val() == 'alipay'){
  70. $('.bank').removeClass('active');
  71. $('.alipay').addClass('active');
  72. }else{
  73. $('.alipay').removeClass('active');
  74. $('.bank').addClass('active');
  75. }
  76. selects.slideToggle();
  77. $('.default-hock i').text($(this).text());
  78. });
  79. }
  80. cardTab();
  81. function Submit() {
  82. var sub = $('.submit');
  83. sub.on('click', function() {
  84. var payType = $('.payname').val();
  85. $('.error-txt').text('');
  86. var name = $('.card-name').val(),
  87. numbers = $('.card-number').val(),
  88. address = $('.card-address').val(),
  89. alipayNumber = $('.alipay-number').val(),
  90. money = $('.card-money').val();
  91. if(name == ''){
  92. $('.error-txt').css('display', 'block');
  93. $('.error-txt').text('姓名不能为空!');
  94. return false;
  95. }
  96. if(payType =='alipay'){
  97. if(alipayNumber == ''){
  98. $('.error-txt').css('display', 'block');
  99. $('.error-txt').text('支付宝账号不能为空');
  100. return false;
  101. }
  102. }else{
  103. if(numbers == ''){
  104. $('.error-txt').css('display', 'block');
  105. $('.error-txt').text('卡号不能为空');
  106. return false;
  107. }
  108. if(!(/^(\d{16}|\d{19})$/).test(numbers)){
  109. $('.error-txt').css('display', 'block');
  110. $('.error-txt').text('卡号位数不对');
  111. return false;
  112. }
  113. if(address == ''){
  114. $('.error-txt').css('display', 'block');
  115. $('.error-txt').text('开户行不能为空');
  116. return false;
  117. }
  118. }
  119. if(money == ''){
  120. $('.error-txt').css('display', 'block');
  121. $('.error-txt').text('请填写金额');
  122. return false;
  123. }
  124. var yue = parseFloat($('.balance i').text());
  125. if(parseFloat(money)>yue||parseFloat(money)<min_p){
  126. $('.error-txt').css('display', 'block');
  127. $('.error-txt').text('提现金额不能小于'+min_p+'并且不能大于所剩余额');
  128. return false;
  129. }else{
  130. $.post('{:Url("AuthApi/user_extract")}',
  131. {
  132. type: payType,
  133. real_name: name,
  134. alipay_code: alipayNumber,
  135. bank_code: numbers,
  136. bank_address: address,
  137. price: money
  138. },
  139. function(data) {
  140. if(data.code ==200){
  141. $('.error-txt').empty();
  142. $('.balance i').text(accSub(yue, money));
  143. $('.card-money').val('');
  144. alert('申请提现成功!');
  145. window.location.href = '{:Url("user_pro")}';
  146. }else if(data.code =400){
  147. $('.error-txt').text(data.msg);
  148. return false;
  149. }
  150. },"json");
  151. }
  152. });
  153. }
  154. Submit();
  155. // 小数减法
  156. function accSub(arg1, arg2) {
  157. var r1, r2, m, n;
  158. try { r1 = arg1.toString().split(".")[1].length } catch (e) { r1 = 0 }
  159. try { r2 = arg2.toString().split(".")[1].length } catch (e) { r2 = 0 }
  160. m = Math.pow(10, Math.max(r1, r2));
  161. n = (r1 >= r2) ? r1 : r2;
  162. return ((arg1 * m - arg2 * m) / m).toFixed(n);
  163. }
  164. // 验证小数
  165. $(document).on('keypress', '.card-money', function (e) {
  166. // 在 keypress 事件中拦截错误输入
  167. var sCharCode = String.fromCharCode(e.charCode);
  168. var sValue = this.value;
  169. if (/[^0-9.]/g.test(sCharCode) || __getRegex(sCharCode).test(sValue)) {
  170. return false;
  171. }
  172. /**
  173. * 根据用户输入的字符获取相关的正则表达式
  174. * @param {string} sCharCode 用户输入的字符,如 'a','1','.' 等等
  175. * @return {regexp} patt 正则表达式
  176. */
  177. function __getRegex (sCharCode) {
  178. var patt;
  179. if (/[0]/g.test(sCharCode)) {
  180. // 判断是否为空
  181. patt = /^$/g;
  182. } else if (/[.]/g.test(sCharCode)) {
  183. // 判断是否已经包含 . 字符或者为空
  184. patt = /((\.)|(^$))/g;
  185. } else if (/[1-9]/g.test(sCharCode)) {
  186. // 判断是否已经到达小数点后两位
  187. patt = /\.\d{2}$/g;
  188. }
  189. return patt;
  190. }
  191. }).on('keyup paste', '#id', function () {
  192. // 在 keyup paste 事件中进行完整字符串检测
  193. var patt = /^((?!0)\d+(\.\d{1,2})?)$/g;
  194. if (!patt.test(this.value)) {
  195. // 错误提示相关代码,边框变红、气泡提示什么的
  196. console.log('输入格式不正确!');
  197. }
  198. });
  199. });
  200. </script>
  201. </body>
  202. </html>