bindBank.vue 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. <template>
  2. <view>
  3. <!-- 公共组件-每个页面必须引入 -->
  4. <public-module></public-module>
  5. <!-- 步骤条Start -->
  6. <view class="weui-flex bindBank-step d-flex a-center j-center">
  7. <view class="weui-flex-item">
  8. <view class="bindBank-step-icon bindBank-step-iconCard"></view>
  9. <view class="bindBank-step-des">绑定银行卡</view>
  10. </view>
  11. </view>
  12. <!-- 步骤条End -->
  13. <!-- 持卡人信息Start -->
  14. <view class="bindBankCard">
  15. <view class="bindBank-infor">
  16. <view class="header row">请填写本人银行卡信息(储蓄卡)</view>
  17. <view class="inputData d-flex">
  18. <view class="d-flex a-center">提现人</view>
  19. <view class="d-flex a-center flex-1">
  20. <input style="font-size: 28upx;" type="text" disabled v-model="userInfo.sysUser.name" />
  21. </view>
  22. </view>
  23. <!-- <view class="inputData d-flex">
  24. <view class="d-flex a-center">证件号</view>
  25. <view class="d-flex a-center flex-1">
  26. <input style="font-size: 28upx;" type="text" disabled v-model="userInfo.esmUserInternal.identity" />
  27. </view>
  28. </view> -->
  29. <view class="inputData d-flex">
  30. <view class="d-flex a-center">选择银行</view>
  31. <view class="d-flex a-center flex-1">
  32. <input style="font-size: 28upx;" type="text" disabled v-model="bankname" placeholder="系统自动识别" />
  33. </view>
  34. </view>
  35. <view class="inputData d-flex">
  36. <view class="d-flex a-center">银行卡卡号</view>
  37. <view class="d-flex a-center flex-1">
  38. <input type="text" v-model="accountno" @blur="validateBankCard" placeholder="请输入银行卡卡号" style="font-size: 28upx;"/>
  39. </view>
  40. </view>
  41. </view>
  42. </view>
  43. <!-- 持卡人信息End -->
  44. <button class="user-set-btn d-flex a-center j-center main-bg-color" :class="{'main-bf-hover-color':disabled}"
  45. type="primary" @tap="submit" :disabled="disabled" style="margin: 40upx 30upx;">绑定银行卡</button>
  46. </view>
  47. </template>
  48. <script>
  49. import {mapState,mapMutations} from "vuex"
  50. import bankBin from "@/common/bankcardinfo.js"
  51. export default {
  52. data() {
  53. return {
  54. bankname:"",//银行名称
  55. accountno:"",//银行卡账号
  56. disabled:true,
  57. validateBankCardStatus:false,//银行卡验证状态
  58. }
  59. },
  60. computed:{
  61. ...mapState(['userInfo'])
  62. },
  63. watch:{
  64. bankname(val){
  65. this.OnBtnChange();
  66. },
  67. accountno(val){
  68. this.OnBtnChange();
  69. },
  70. },
  71. methods: {
  72. ...mapMutations(['setUserModules']),
  73. // 改变按钮状态
  74. OnBtnChange(){
  75. if(this.accountno && this.bankname){
  76. this.disabled=false; return;
  77. }
  78. this.disabled=true;
  79. },
  80. // 验证银行卡
  81. async validateBankCard(){
  82. var that = this;
  83. that.bankname = "";
  84. await bankBin.getBankBin(this.accountno)
  85. .then((data)=> {
  86. console.log(data)
  87. that.bankname = data.bankName;
  88. that.validateBankCardStatus = true;
  89. return true;
  90. })
  91. .catch((err)=> {
  92. console.log(err)
  93. that.validateBankCardStatus = false;
  94. return uni.showToast({ title: err.split(":")[1] , icon:"none" });
  95. })
  96. },
  97. async submit(){
  98. var params = {
  99. "accountno":this.accountno,
  100. "bankname":this.bankname,
  101. "id":this.userInfo.sysUser.id
  102. }
  103. let res = await this.$http.post('/esmUserInternal/saveUser',params);
  104. let info = {
  105. sysUser:{},
  106. esmUserInternal:{},
  107. esmUserAgent:{}
  108. };
  109. Object.assign(info.sysUser,this.userInfo.sysUser);
  110. Object.assign(info.esmUserInternal,this.userInfo.esmUserInternal);
  111. Object.assign(info.esmUserAgent,this.userInfo.esmUserAgent);
  112. info.esmUserInternal.accountno = this.accountno;
  113. info.esmUserInternal.bankname = this.bankname;
  114. this.setUserModules({title:'userInfo',data:info})
  115. uni.showToast({ title: '更改银行卡成功',duration:2000,icon:"none"});
  116. setTimeout(() => {
  117. return uni.navigateBack();
  118. }, 2000);
  119. }
  120. }
  121. }
  122. </script>
  123. <style lang="scss" scoped>
  124. @import '@/style/mixin.scss';
  125. page{
  126. background-color: #F5F5F5;
  127. }
  128. .bindBank-step {
  129. padding: 72upx 0 78upx;
  130. background: rgba($themeColor, 0.8);
  131. text-align: center;
  132. }
  133. .bindBank-step>view{
  134. position:relative;
  135. width: 50%;
  136. }
  137. .bindBank-step-icon{
  138. width: 76upx;
  139. height: 76upx;
  140. line-height: 76upx;
  141. position: relative;
  142. z-index: 3;
  143. display: inline-block;
  144. overflow: hidden;
  145. }
  146. .bindBank-step-des{
  147. font-size: 24upx;
  148. color: #fff;
  149. }
  150. .bindBank-step-iconCard{
  151. background: url('/static/image/bindBank/icon-card.png') no-repeat 0 0;
  152. background-size: 100%;
  153. }
  154. .bindBank-step-iconEnd{
  155. background: url('/static/image/bindBank/icon-Password.png') no-repeat 0 0;
  156. background-size: 100%;
  157. }
  158. /* 银行卡信息Start */
  159. .bindBankCard{
  160. background-color: #f0eff5;
  161. margin-top: -40upx;
  162. border-radius: 40upx 40upx 0upx 0upx ;
  163. overflow: hidden;
  164. font-size: 28upx;
  165. }
  166. .bindBankCard .row{
  167. padding: 0upx 30upx ;
  168. box-sizing: border-box;
  169. }
  170. .bindBankCard .inputData{
  171. padding: 10upx 15upx;
  172. color: #333;
  173. background-color: #fff;
  174. height: 80upx;
  175. }
  176. .bindBank-infor>.header{
  177. height: 90upx;
  178. line-height: 90upx;
  179. }
  180. .bindBankCard .inputData>view:nth-of-type(1){
  181. padding: 20upx 0;
  182. text-indent: 10upx;
  183. width:210upx;
  184. flex-shrink: 1;
  185. font-size: 30upx;
  186. }
  187. /* 银行卡信息End */
  188. </style>