extract.php 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. {extend name="public/container" /}
  2. {block name="content"}
  3. <div v-cloak id="app" class="layui-fluid">
  4. <div class="layui-card">
  5. <div class="layui-card-body">
  6. <form class="layui-form" lay-filter="form" action="">
  7. <input type="hidden" name="gold_num">
  8. <input type="hidden" name="gold_coin_ratio">
  9. <div v-if="goldName" class="layui-form-item">
  10. <label class="layui-form-label">提现{{ goldName }}:</label>
  11. <div class="layui-input-inline">
  12. <input v-model.trim="goldNum" type="text" name="gold" :placeholder="'请输入提现' + goldName" autocomplete="off" class="layui-input">
  13. </div>
  14. <div class="layui-form-mid">-</div>
  15. <div class="layui-input-inline">
  16. <input :value="transfer" type="text" readonly class="layui-input">
  17. </div>
  18. <div class="layui-form-mid layui-word-aux">元</div>
  19. </div>
  20. <template v-else>
  21. <div class="layui-form-item">
  22. <label class="layui-form-label">提现方式:</label>
  23. <div class="layui-input-block">
  24. <input type="radio" name="extract_type" value="bank" title="银行卡" lay-filter="type">
  25. <input type="radio" name="extract_type" value="alipay" title="支付宝" lay-filter="type">
  26. <input type="radio" name="extract_type" value="weixin" title="微信" lay-filter="type">
  27. </div>
  28. </div>
  29. <div v-if="merchat.extract_type === 'bank'" class="layui-form-item">
  30. <label class="layui-form-label">银行卡号:</label>
  31. <div class="layui-input-inline">
  32. <input type="text" name="bank_code" required lay-verify="required|number|cardNumber" placeholder="请输入银行卡号" autocomplete="off" class="layui-input">
  33. </div>
  34. </div>
  35. <div v-if="merchat.extract_type === 'bank'" class="layui-form-item">
  36. <label class="layui-form-label">持卡人姓名:</label>
  37. <div class="layui-input-inline">
  38. <input type="text" name="real_name" required lay-verify="required" placeholder="请输入持卡人姓名" autocomplete="off" class="layui-input">
  39. </div>
  40. </div>
  41. <div v-if="merchat.extract_type === 'bank'" class="layui-form-item">
  42. <label class="layui-form-label">开户行地址:</label>
  43. <div class="layui-input-inline">
  44. <input type="text" name="bank_address" required lay-verify="required" placeholder="请输入开户行地址" autocomplete="off" class="layui-input">
  45. </div>
  46. </div>
  47. <div v-if="merchat.extract_type === 'weixin'" class="layui-form-item">
  48. <label class="layui-form-label">微信号:</label>
  49. <div class="layui-input-inline">
  50. <input type="text" name="weixin" required lay-verify="required|WeChatNumber" placeholder="请输入微信号" autocomplete="off" class="layui-input">
  51. </div>
  52. </div>
  53. <div v-if="merchat.extract_type === 'alipay'" class="layui-form-item">
  54. <label class="layui-form-label">支付宝账号:</label>
  55. <div class="layui-input-inline">
  56. <input type="text" name="alipay_code" required lay-verify="required" placeholder="请输入支付宝账号" autocomplete="off" class="layui-input">
  57. </div>
  58. </div>
  59. <div class="layui-form-item">
  60. <label class="layui-form-label">提现金额:</label>
  61. <div class="layui-input-inline">
  62. <input type="text" name="extract_price" required lay-verify="required|money" placeholder="请输入提现金额" autocomplete="off" class="layui-input">
  63. </div>
  64. </div>
  65. </template>
  66. <div class="layui-form-item">
  67. <div class="layui-input-block">
  68. <button type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="*">提现</button>
  69. </div>
  70. </div>
  71. </form>
  72. </div>
  73. </div>
  74. </div>
  75. {/block}
  76. {block name="foot"}
  77. <script>
  78. require(['vue'], function (Vue) {
  79. var merchat = {$merchat},
  80. form = layui.form,
  81. layer = layui.layer,
  82. parentLayer = parent.layui.layer;
  83. merchat.extract_type = 'bank';
  84. new Vue({
  85. el: '#app',
  86. data: {
  87. merchat: merchat,
  88. goldName: window.gold_name,
  89. transfer: 0,
  90. goldNum: window.gold_num
  91. },
  92. watch: {
  93. 'merchat.extract_type': function (value) {
  94. this.$nextTick(function () {
  95. if (value === 'bank') {
  96. form.val('form', merchat);
  97. }
  98. });
  99. },
  100. goldNum: {
  101. handler: function (value) {
  102. this.transfer = value * $('[name="gold_coin_ratio"]').val() / 100;
  103. },
  104. immediate: true
  105. }
  106. },
  107. mounted: function () {
  108. this.$nextTick(function () {
  109. var vm = this;
  110. // 判断是虚拟币提现
  111. if (!this.goldName) {
  112. form.val('form', merchat);
  113. form.render();
  114. form.on('radio(type)', function (data) {
  115. merchat.extract_type = data.value;
  116. });
  117. }
  118. form.on('submit(*)', function (data) {
  119. // 判断虚拟币提现
  120. if (vm.goldName) {
  121. $.getJSON("{:url('save_gold')}", data.field, function (data) {
  122. layer.msg(data.msg, {
  123. icon: data.code === 200 ? 1 : 5,
  124. time: 2000
  125. }, function () {
  126. if (data.code === 200) {
  127. parentLayer.close(parentLayer.getFrameIndex(window.name));
  128. parent.location.reload();
  129. }
  130. });
  131. });
  132. } else {
  133. $.post("{:url('save_extract')}", data.field, function (data) {
  134. layer.msg(data.msg, {
  135. icon: data.code === 200 ? 1 : 5,
  136. time: 2000
  137. }, function () {
  138. if (data.code === 200) {
  139. parentLayer.close(parentLayer.getFrameIndex(window.name));
  140. parent.location.reload();
  141. }
  142. });
  143. }, 'json');
  144. }
  145. return false;
  146. });
  147. });
  148. }
  149. });
  150. });
  151. </script>
  152. {/block}