index.vue 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. <template>
  2. <div style="background: #f5f5f5">
  3. <m-nav-bar title="银行卡提现" style="color: #333;background:#fff;" />
  4. <div class="rect1"></div>
  5. <van-form @submit="onSubmit" ref="drawByBank" class="custom-from">
  6. <van-cell-group inset>
  7. <van-field v-model="form.encTrueName" name="提现户名" label="提现户名" placeholder="提现户名" :rules="[{ required: true, message: '请填写提现户名' }]" />
  8. <van-field v-model="form.encBankNo" type="number" name="提现至账户" label="提现至账户" placeholder="提现至账户" :rules="[{ required: true, message: '请填写提现至账户' }]" />
  9. <van-field
  10. @click="
  11. () => {
  12. bankVisible = true;
  13. }
  14. "
  15. readonly
  16. is-link
  17. v-model="form.bankName"
  18. type="text"
  19. name="银行"
  20. label="银行"
  21. placeholder="银行"
  22. :rules="[{ required: true, message: '请选择银行' }]" />
  23. </van-cell-group>
  24. <van-popup v-model:show="bankVisible">
  25. <van-picker
  26. :columns-field-names="{
  27. text: 'bankName',
  28. value: 'bankCode',
  29. }"
  30. @confirm="selectBank"
  31. @cancel="
  32. () => {
  33. bankVisible = false;
  34. }
  35. "
  36. title="选择银行"
  37. :columns="wxBankList" />
  38. </van-popup>
  39. <div class="rect1"></div>
  40. <div class="money">
  41. <div class="header">提现金额</div>
  42. <div class="mid"><span>¥</span>
  43. <!-- <input v-model="form.amount" class="money-input" type="text" /> -->
  44. <van-field style="font-size:25px;" :rules="[{ required: true, message: '请填写金额' }]" v-model="form.amount" type="number" />
  45. </div>
  46. <div class="bottom">
  47. <span>(可提现余额{{ profitPrice }}元)</span>
  48. <span
  49. style="color: #498ef5"
  50. @click="
  51. () => {
  52. form.amount = profitPrice;
  53. }
  54. "
  55. class=""
  56. >全部提现</span
  57. >
  58. </div>
  59. </div>
  60. <div style="margin: 16px">
  61. <van-button round block type="primary" native-type="primary"> 提交 </van-button>
  62. </div>
  63. </van-form>
  64. </div>
  65. </template>
  66. <script setup lang="ts">
  67. import { onMounted, reactive, ref } from "vue";
  68. import type { FormInstance } from "vant";
  69. import { useProfitPrice } from "@/hooks/user";
  70. import { cashOut } from "@/api";
  71. import { Dialog } from "vant";
  72. import { useRouter } from "vue-router";
  73. import { useWxBank } from "@/hooks/bank/wxBank"
  74. const query = useRouter().currentRoute.value.query
  75. const drawByBank = ref<FormInstance>();
  76. const { profitPrice } = useProfitPrice();
  77. const bankVisible = ref(false);
  78. const { wxBankList,getBankNameByCode } = useWxBank()
  79. // const wxBankList = reactive([
  80. // { bankName: "工商银行", bankCode: 1002 },
  81. // { bankName: "农业银行", bankCode: 1005 },
  82. // { bankName: "建设银行", bankCode: 1003 },
  83. // { bankName: "中国银行", bankCode: 1026 },
  84. // { bankName: "交通银行", bankCode: 1020 },
  85. // { bankName: "招商银行", bankCode: 1001 },
  86. // { bankName: "邮储银行", bankCode: 1066 },
  87. // { bankName: "民生银行", bankCode: 1006 },
  88. // { bankName: "平安银行", bankCode: 1010 },
  89. // { bankName: "中信银行", bankCode: 1021 },
  90. // { bankName: "浦发银行", bankCode: 1004 },
  91. // { bankName: "兴业银行", bankCode: 1009 },
  92. // { bankName: "光大银行", bankCode: 1022 },
  93. // { bankName: "广发银行", bankCode: 1027 },
  94. // { bankName: "华夏银行", bankCode: 1025 },
  95. // { bankName: "宁波银行", bankCode: 1056 },
  96. // { bankName: "北京银行", bankCode: 4836 },
  97. // { bankName: "上海银行", bankCode: 1024 },
  98. // { bankName: "南京银行", bankCode: 1054 },
  99. // { bankName: "长子县融汇村镇银行", bankCode: 475 },
  100. // { bankName: "长沙银行", bankCode: 4216 },
  101. // { bankName: "浙江泰隆商业银行", bankCode: 4051 },
  102. // { bankName: "中原银行", bankCode: 4753 },
  103. // { bankName: "企业银行(中国)", bankCode: 4761 },
  104. // { bankName: "顺德农商银行", bankCode: 4036 },
  105. // { bankName: "衡水银行", bankCode: 4752 },
  106. // { bankName: "长治银行", bankCode: 4756 },
  107. // { bankName: "大同银行", bankCode: 4767 },
  108. // { bankName: "河南省农村信用社", bankCode: 4115 },
  109. // { bankName: "宁夏黄河农村商业银行", bankCode: 4150 },
  110. // { bankName: "山西省农村信用社", bankCode: 4156 },
  111. // { bankName: "安徽省农村信用社", bankCode: 4166 },
  112. // { bankName: "甘肃省农村信用社", bankCode: 4157 },
  113. // { bankName: "天津农村商业银行", bankCode: 4153 },
  114. // { bankName: "广西壮族自治区农村信用社", bankCode: 4113 },
  115. // { bankName: "陕西省农村信用社", bankCode: 4108 },
  116. // { bankName: "深圳农村商业银行", bankCode: 4076 },
  117. // { bankName: "宁波鄞州农村商业银行", bankCode: 4052 },
  118. // { bankName: "浙江省农村信用社联合社", bankCode: 4764 },
  119. // { bankName: "江苏省农村信用社联合社", bankCode: 4217 },
  120. // { bankName: "江苏紫金农村商业银行股份有限公司", bankCode: 4072 },
  121. // { bankName: "北京中关村银行股份有限公司", bankCode: 4769 },
  122. // { bankName: "星展银行(中国)有限公司", bankCode: 4778 },
  123. // { bankName: "枣庄银行股份有限公司", bankCode: 4766 },
  124. // { bankName: "海口联合农村商业银行股份有限公司", bankCode: 4758 },
  125. // { bankName: "南洋商业银行(中国)有限公司", bankCode: 4763 },
  126. // ]);
  127. const form = reactive({
  128. encTrueName: "",
  129. encBankNo: "",
  130. bankName: "",
  131. bankCode: 0,
  132. amount: 0,
  133. });
  134. const selectBank = (item: any) => {
  135. form.bankCode = item.bankCode;
  136. form.bankName = item.bankName;
  137. bankVisible.value = false;
  138. };
  139. onMounted(()=>{
  140. if(query.encTrueName&&query.bankCode&&query.encBankNo){
  141. form.encTrueName = query.encTrueName as string
  142. form.bankCode = Number(query.bankCode)
  143. form.encBankNo = query.encBankNo as string
  144. form.bankName = getBankNameByCode(form.bankCode)
  145. }
  146. })
  147. const onSubmit = () => {
  148. // drawByBank.drawByBank
  149. let submitForm = {
  150. ...form,
  151. };
  152. submitForm.amount = Number(submitForm.amount) * 100;
  153. // console.log(drawByBank,"drawByBank")
  154. drawByBank.value.validate(["encTrueName", "encBankNo", "bankCode","amount"]).then(() => {
  155. cashOut.studentWxExtractWxwithbankdrawal(submitForm).then((res) => {
  156. if (res.data.code == 200) {
  157. Dialog({ title: "成功", message: "提现成功,1到3个工作日到账" });
  158. } else {
  159. Dialog({ title: "失败", message: "提现失败,请检查输入的值" });
  160. }
  161. });
  162. });
  163. };
  164. </script>
  165. <style lang="scss" scoped>
  166. .rect1 {
  167. width: 100%;
  168. height: 13px;
  169. background: #f5f5f5;
  170. }
  171. .custom-from {
  172. :deep .van-cell-group {
  173. margin: 0;
  174. }
  175. }
  176. .money {
  177. width: 100%;
  178. height: 152px;
  179. background: #fff;
  180. padding: 0px 15px;
  181. .header {
  182. font-size: 13px;
  183. height: 44px;
  184. line-height: 44px;
  185. border-bottom: 1px solid #e8e8e8;
  186. }
  187. .mid {
  188. height: 64px;
  189. display: flex;
  190. align-content: center;
  191. align-items: center;
  192. .money-input {
  193. border: 0;
  194. width: 250px;
  195. }
  196. }
  197. .bottom {
  198. border-top: 1px solid #e8e8e8;
  199. width: 100%;
  200. color: #8a9099;
  201. font-size: 13px;
  202. display: flex;
  203. justify-content: space-between;
  204. align-content: center;
  205. line-height: 44px;
  206. align-items: center;
  207. }
  208. }
  209. </style>