addBankCard.vue 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267
  1. <template>
  2. <view class="page">
  3. <view class="view">
  4. <u--form labelPosition="left" :model="carInfo" :rules="carRules" ref="uForm" labelWidth="100"
  5. errorType="toast">
  6. <u-form-item label="持卡人姓名" borderBottom prop="cardHolderName" :required="true">
  7. <u--input v-model="carInfo.cardHolderName" border="none" clearable placeholder="请输入持卡人姓名"
  8. placeholderStyle="text-align:right;" maxlength="20"></u--input>
  9. </u-form-item>
  10. <u-form-item label="持卡人手机号" borderBottom prop="cardHolderMobile" :required="true">
  11. <u--input v-model="carInfo.cardHolderMobile" border="none" type="number" clearable
  12. placeholder="请输入持卡人手机号" placeholderStyle="text-align:right;" maxlength="11"></u--input>
  13. </u-form-item>
  14. <u-form-item label="银行卡号" prop="bankCardNumber" borderBottom :required="true">
  15. <u--input v-model="carInfo.bankCardNumber" border="none" type="number" clearable
  16. placeholder="请输入15-19位的银行卡号" placeholderStyle="text-align:right;" maxlength="19"></u--input>
  17. </u-form-item>
  18. <u-form-item label="银行" prop="bankName" borderBottom @tap="carnatureShow=true" :required="true">
  19. <u--input v-model="carInfo.bankName" disabled disabledColor="#ffffff" suffixIcon='arrow-down'
  20. suffixIconStyle="color:#333;font-size:30rpx" placeholder="请选择"
  21. placeholderStyle="text-align:right;" clearable border="none"
  22. style="pointer-events: none"></u--input>
  23. </u-form-item>
  24. <u-form-item label="开户行" prop="bankAddress" :required="true">
  25. <u--input v-model="carInfo.bankAddress" border="none" clearable placeholder="请输入开户行"
  26. placeholderStyle="text-align:right;" maxlength="20"></u--input>
  27. </u-form-item>
  28. </u--form>
  29. </view>
  30. <view class="btn dis a-c j-c " @click="submitAudit">
  31. 提交审核
  32. </view>
  33. <u-picker :show="carnatureShow" :columns="bnklist" keyName="label" @cancel="carnatureShow=false"
  34. @confirm="dictionaryConfirm" @close="carnatureShow=false" :closeOnClickOverlay="true"></u-picker>
  35. </view>
  36. </template>
  37. <script>
  38. import {
  39. mapState,
  40. mapMutations
  41. } from "vuex"
  42. export default {
  43. data() {
  44. return {
  45. carnatureShow: false,
  46. carInfo: {
  47. userJzgInfoId: "",
  48. bankCardNumber: "",
  49. bankName: "",
  50. bankAddress: "",
  51. cardHolderName: "",
  52. cardHolderMobile: "",
  53. },
  54. carRules: {
  55. cardHolderName: [{
  56. required: true,
  57. message: '请输入持卡人姓名',
  58. trigger: 'blur',
  59. }],
  60. cardHolderMobile: [{
  61. required: true,
  62. message: '请输入持卡人手机号',
  63. trigger: 'blur'
  64. }, {
  65. pattern: /^1[3-9]\d{9}$/,
  66. message: '请输入正确格式的手机号',
  67. }],
  68. bankCardNumber: [{
  69. required: true,
  70. message: '请输入卡号',
  71. trigger: 'blur',
  72. }],
  73. bankAddress: [{
  74. required: true,
  75. message: '请输入开户行',
  76. trigger: 'blur',
  77. }],
  78. bankName: [{
  79. required: true,
  80. message: '银行必选',
  81. trigger: 'change',
  82. }],
  83. },
  84. //银行卡下拉列表
  85. bnklist: [
  86. [{
  87. value: '1',
  88. label: '中国工商银行'
  89. },
  90. {
  91. value: '2',
  92. label: '中国农业银行'
  93. },
  94. {
  95. value: '3',
  96. label: '中国银行'
  97. },
  98. {
  99. value: '4',
  100. label: '中国建设银行'
  101. },
  102. {
  103. value: '5',
  104. label: '交通银行'
  105. },
  106. {
  107. value: '6',
  108. label: '中国邮政储蓄银行'
  109. },
  110. {
  111. value: '7',
  112. label: '招商银行'
  113. },
  114. {
  115. value: '8',
  116. label: '中信银行'
  117. },
  118. {
  119. value: '9',
  120. label: '中国光大银行'
  121. },
  122. {
  123. value: '10',
  124. label: '华夏银行'
  125. },
  126. {
  127. value: '11',
  128. label: '中国民生银行'
  129. },
  130. {
  131. value: '12',
  132. label: '广发银行'
  133. },
  134. {
  135. value: '13',
  136. label: '平安银行'
  137. },
  138. {
  139. value: '14',
  140. label: '上海浦东发展银行'
  141. },
  142. {
  143. value: '15',
  144. label: '兴业银行'
  145. },
  146. {
  147. value: '16',
  148. label: '浙商银行'
  149. },
  150. {
  151. value: '17',
  152. label: '渤海银行'
  153. },
  154. {
  155. value: '18',
  156. label: '恒丰银行'
  157. },
  158. {
  159. value: '19',
  160. label: '北京银行'
  161. },
  162. {
  163. value: '20',
  164. label: '上海银行'
  165. },
  166. {
  167. value: '21',
  168. label: '晋商银行'
  169. },
  170. {
  171. value: '22',
  172. label: '山西银行'
  173. },
  174. {
  175. value: '23',
  176. label: '农村商业银行'
  177. },
  178. ],
  179. ],
  180. }
  181. },
  182. onShow() {
  183. this.carInfo.userJzgInfoId = this.userInfo.sysUser.infoId;
  184. },
  185. onLoad() {},
  186. computed: {
  187. ...mapState(['userInfo']),
  188. },
  189. methods: {
  190. //提交审核
  191. submitAudit() {
  192. this.$refs.uForm.validate().then(async res => {
  193. let bankres = await this.$http.post('/userInfo/addBankCard', this.carInfo) //添加银行卡
  194. if (bankres.code == 200) {
  195. uni.showToast({ //提示
  196. icon: 'none',
  197. title: '银行卡添加成功'
  198. })
  199. setTimeout(() => {
  200. uni.navigateBack({
  201. delta: 1
  202. });
  203. }, 1000)
  204. }
  205. }).catch(errors => {
  206. uni.$u.toast(errors[0].message)
  207. })
  208. // 接口
  209. },
  210. //银行卡选择事件
  211. dictionaryConfirm(e) {
  212. this.carInfo.bankName = e.value[0].label
  213. this.carnatureShow = false;
  214. }
  215. }
  216. }
  217. </script>
  218. <style lang="scss" scoped>
  219. .page {
  220. background-color: #f8f8f8;
  221. height: calc(100vh - 88rpx);
  222. }
  223. //表单外容器
  224. .view {
  225. padding: 0 30rpx 0;
  226. box-sizing: border-box;
  227. background: #fff;
  228. }
  229. //覆盖表单样式
  230. ::v-deep {
  231. .uni-input-input {
  232. text-align: right !important;
  233. font-weight: bold;
  234. }
  235. .uni-input-placeholder {
  236. color: #999;
  237. }
  238. .u-form-item__body {
  239. padding: 25rpx 0;
  240. }
  241. }
  242. //提交按钮
  243. .btn {
  244. background: #FDE935;
  245. padding: 20rpx;
  246. box-sizing: border-box;
  247. border-radius: 45rpx 45rpx 45rpx 45rpx;
  248. margin: 160rpx 40rpx 0;
  249. font-size: 36rpx;
  250. color: #1F1F1F;
  251. font-weight: bold;
  252. }
  253. </style>