|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <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(); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|