|  |  | 
 |  |  |  | 
 |  |  | <script setup lang="ts"> | 
 |  |  | import { FormRules } from '@nutui/nutui-taro/dist/types/__VUE/form/types'; | 
 |  |  | import { ProFormCaptcha } from 'senin-mini/components'; | 
 |  |  | import { FormValidator, Message } from '@12333/utils'; | 
 |  |  | import { Message } from '@12333/utils'; | 
 |  |  | import * as userServices from '@12333/services/apiV2/user'; | 
 |  |  | import Taro from '@tarojs/taro'; | 
 |  |  | import { useQueryClient } from '@tanstack/vue-query'; | 
 |  |  | import { EnumUserBankCardAccess } from '@12333/constants'; | 
 |  |  | import { goBack } from '@/utils'; | 
 |  |  |  | 
 |  |  | const { userDetail } = useUser(); | 
 |  |  | const switchTab = useSwitchTab(); | 
 |  |  | defineOptions({ | 
 |  |  |   name: 'InnerPage', | 
 |  |  | }); | 
 |  |  |  | 
 |  |  | const { userDetail, updateUserInfo } = useUser(); | 
 |  |  | const form = reactive({ | 
 |  |  |   name: userDetail.value?.name ?? '', | 
 |  |  |   identity: userDetail.value?.identity ?? '', | 
 |  |  |   phoneNumber: '', | 
 |  |  |   code: '', | 
 |  |  |   bank: '', | 
 |  |  |   bankBranch: '', | 
 |  |  |   verifyCode: '', | 
 |  |  | }); | 
 |  |  |  | 
 |  |  | const rules = reactive<FormRules>({ | 
 |  |  |   code: [ | 
 |  |  |     { required: true, message: '请输入银行卡号' }, | 
 |  |  |     { message: '请输入正确的银行卡号', validator: FormValidator.validatorBankCard }, | 
 |  |  |   ], | 
 |  |  |   bank: [{ required: true, message: '请输入开户行' }], | 
 |  |  |   phoneNumber: [ | 
 |  |  |     { required: true, message: '请填写手机号码' }, | 
 |  |  |     { message: '请输入正确的手机号码', validator: FormValidator.validatorPhoneNumber }, | 
 |  |  |   ], | 
 |  |  |   verifyCode: [{ required: true, message: '请输入验证码' }], | 
 |  |  |   code: [{ required: true, message: '请输入支付宝账号' }], | 
 |  |  | }); | 
 |  |  |  | 
 |  |  | async function onGetCaptcha(phoneNumber: string) { | 
 |  |  |   await userServices.sendSavePersonalUserBankCardVerifyCode( | 
 |  |  |     { | 
 |  |  |       phoneNumber: form.phoneNumber, | 
 |  |  |     }, | 
 |  |  |     { showLoading: false } | 
 |  |  |   ); | 
 |  |  | } | 
 |  |  |  | 
 |  |  | const formRef = ref<any>(null); | 
 |  |  | function handleConfirm() { | 
 |  |  | 
 |  |  |   try { | 
 |  |  |     let params: API.SavePersonalUserBankCardCommand = { | 
 |  |  |       code: form.code, | 
 |  |  |       bank: form.bank, | 
 |  |  |       phoneNumber: form.phoneNumber, | 
 |  |  |       verifyCode: form.verifyCode, | 
 |  |  |       access: EnumUserBankCardAccess.Bank, | 
 |  |  |       access: EnumUserBankCardAccess.AliPay, | 
 |  |  |     }; | 
 |  |  |     let res = await userServices.savePersonalUserBankCard(params); | 
 |  |  |     if (res) { | 
 |  |  |       Message.success('绑定成功', { | 
 |  |  |         onClosed() { | 
 |  |  |           switchTab({ | 
 |  |  |             url: RouterPath.mine, | 
 |  |  |           }); | 
 |  |  |           updateUserInfo(); | 
 |  |  |           goBack(); | 
 |  |  |         }, | 
 |  |  |       }); | 
 |  |  |     } |