Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

bank-card-add.vue 3.6KB

vor 2 Jahren
vor 1 Jahr
vor 2 Jahren
vor 2 Jahren
vor 2 Jahren
vor 2 Jahren
vor 2 Jahren
vor 2 Jahren
vor 2 Jahren
vor 2 Jahren
vor 2 Jahren
vor 2 Jahren
vor 2 Jahren
vor 2 Jahren
vor 2 Jahren
vor 2 Jahren
vor 2 Jahren
vor 2 Jahren
vor 2 Jahren
vor 2 Jahren
vor 2 Jahren
vor 2 Jahren
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. <template>
  2. <view class="container">
  3. <u-form label-width='200' :model="state.form" ref="uForm">
  4. <u-form-item label="对公用户名">
  5. <u-input v-model="state.form.name" placeholder='请输入对公用户名' />
  6. </u-form-item>
  7. <u-form-item label="银行卡号">
  8. <u-input v-model="state.form.card" placeholder='请输入银行卡号' />
  9. </u-form-item>
  10. <u-form-item label="开户银行">
  11. <u-input v-model="state.form.bank" placeholder='请输入开户银行' />
  12. </u-form-item>
  13. <u-form-item label="银行预留手机号">
  14. <u-input v-model="state.form.phone" placeholder='请输入银行预留手机号' />
  15. <text @click="getCode" v-if="waitTime==0" class="search">获取验证码</text>
  16. <text class="btn" v-else>{{waitTime}}后重试</text>
  17. </u-form-item>
  18. <u-form-item label="验证码" placeholder='请输入验证码'>
  19. <u-input v-model="state.form.code" />
  20. </u-form-item>
  21. </u-form>
  22. <view style='margin-top: 40rpx;'>
  23. <submit-button title="提交绑定" @submit="submit"></submit-button>
  24. </view>
  25. </view>
  26. </template>
  27. <script setup lang="ts">
  28. import { reactive, ref } from "vue";
  29. import { request } from "@/utils/network/request.js";
  30. import { addBankCard, sendCode } from "@/utils/network/api.js";
  31. import { stringToJson } from "@/utils/network/encryption.js";
  32. import { msg } from "@/utils/utils";
  33. let waitTime = ref(0);
  34. const state = reactive({
  35. form: {
  36. name: '',
  37. card: '',
  38. bank: '',
  39. phone: '',
  40. code: '',
  41. },
  42. })
  43. const submit = () => {
  44. for (var i in state.form) {
  45. if (!state.form[i]) {
  46. msg('请将信息填写完整!');
  47. return;
  48. }
  49. }
  50. const options = {
  51. type: 2,
  52. data: {
  53. 'accountId': state.form.name,
  54. 'bankCardId': state.form.card,
  55. 'bankAddress': state.form.bank,
  56. 'code': state.form.code,
  57. },
  58. method: "POST",
  59. showLoading: true,
  60. };
  61. request(addBankCard, options).then((res) => {
  62. const data = stringToJson(res.bizContent)
  63. msg('银行卡新增成功')
  64. setTimeout(() => {
  65. uni.navigateBack({
  66. delta: 1
  67. })
  68. }, 1500)
  69. console.log("添加银行卡", data)
  70. })
  71. }
  72. const getCode = () => {
  73. console.log(123);
  74. if (state.form.phone) {
  75. sendCodeApi()
  76. codeInterval()
  77. } else {
  78. uni.showToast({
  79. title: '请输入手机号',
  80. icon: 'none'
  81. });
  82. }
  83. }
  84. // 发送验证码
  85. const sendCodeApi = () => {
  86. //参数说明
  87. let options = {
  88. type: 2, //type: 2,JSON格式提交数据(默认表单形式提交)
  89. data: {
  90. mobile: state.form.phone
  91. }, //请求参数
  92. method: "POST", //提交方式(默认POST)
  93. showLoading: true, //是否显示加载中(默认显示)
  94. };
  95. //调用方式
  96. request(sendCode, options)
  97. .then((res) => {
  98. })
  99. .catch((err) => {
  100. console.log(err);
  101. });
  102. }
  103. //倒计时函数
  104. const codeInterval = () => {
  105. waitTime.value = 60
  106. let timer = setInterval(() => {
  107. if (waitTime.value == 1) {
  108. clearInterval(timer)
  109. }
  110. waitTime.value -= 1
  111. }, 1000)
  112. }
  113. </script>
  114. <style lang="scss" scoped>
  115. .container {
  116. padding: 30rpx;
  117. }
  118. .uni-list-cell {
  119. display: flex;
  120. margin: 10rpx auto;
  121. justify-content: space-between;
  122. align-items: center;
  123. }
  124. ::v-deep .u-form-item--right__content__slot {
  125. display: flex !important;
  126. align-items: center;
  127. }
  128. .btn {
  129. background: #19BE6B;
  130. padding: 0rpx 32rpx;
  131. border-radius: 10rpx;
  132. color: white;
  133. font-size: 24rpx;
  134. height: 46rpx;
  135. line-height: 46rpx;
  136. text-align: center;
  137. }
  138. .search{
  139. color: #ffffff;
  140. border-color: #19be6b;
  141. background-color: #19be6b;
  142. font-size: 28rpx !important;
  143. padding: 8px 30rpx !important;
  144. white-space: nowrap;
  145. height: 30rpx;
  146. line-height: 30rpx;
  147. border-radius: 16rpx;
  148. }
  149. </style>