From 7e4fa7d43d84b4faea0fca20ed6dc5e20637aa0e Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期一, 20 十月 2025 16:36:01 +0800
Subject: [PATCH] fix: bug

---
 apps/cMiniApp/src/subpackages/wallet/unboundAlipay/unboundAlipay.vue       |   17 +++++
 apps/cMiniApp/src/constants/router.ts                                      |    1 
 apps/cMiniApp/src/subpackages/wallet/unboundAlipay/unboundAlipay.config.ts |    3 +
 apps/cMiniApp/src/app.config.ts                                            |    1 
 apps/cMiniApp/src/subpackages/wallet/unboundAlipay/InnerPage.vue           |   99 +++++++++++++++++++++++++++++++++
 5 files changed, 121 insertions(+), 0 deletions(-)

diff --git a/apps/cMiniApp/src/app.config.ts b/apps/cMiniApp/src/app.config.ts
index a8ac25a..5d8277b 100644
--- a/apps/cMiniApp/src/app.config.ts
+++ b/apps/cMiniApp/src/app.config.ts
@@ -90,6 +90,7 @@
         'mineWallet/mineWallet',
         'bindBankCard/bindBankCard',
         'unboundBankCard/unboundBankCard',
+        'unboundAlipay/unboundAlipay',
         'incomeDetail/incomeDetail',
         'incomeDetailInfo/incomeDetailInfo',
         'withdraw/withdraw',
diff --git a/apps/cMiniApp/src/constants/router.ts b/apps/cMiniApp/src/constants/router.ts
index bf56af1..114b98d 100644
--- a/apps/cMiniApp/src/constants/router.ts
+++ b/apps/cMiniApp/src/constants/router.ts
@@ -41,6 +41,7 @@
 
   mineWallet = '/subpackages/wallet/mineWallet/mineWallet',
   unboundBankCard = '/subpackages/wallet/unboundBankCard/unboundBankCard',
+  unboundAlipay = '/subpackages/wallet/unboundBankCard/unboundAlipay',
   bindBankCard = '/subpackages/wallet/bindBankCard/bindBankCard',
   incomeDetail = '/subpackages/wallet/incomeDetail/incomeDetail',
   incomeDetailInfo = '/subpackages/wallet/incomeDetailInfo/incomeDetailInfo',
diff --git a/apps/cMiniApp/src/subpackages/wallet/unboundAlipay/InnerPage.vue b/apps/cMiniApp/src/subpackages/wallet/unboundAlipay/InnerPage.vue
new file mode 100644
index 0000000..0356fc6
--- /dev/null
+++ b/apps/cMiniApp/src/subpackages/wallet/unboundAlipay/InnerPage.vue
@@ -0,0 +1,99 @@
+<template>
+  <ContentScrollView :paddingH="false">
+    <nut-form :model-value="form" ref="formRef" :rules="rules">
+      <nut-form-item label="鏀粯瀹濇埛鍚�:" class="bole-form-item" prop="name">
+        <nut-input v-model.trim="form.name" placeholder="璇疯緭鍏ユ敮浠樺疂鎴峰悕" readonly />
+      </nut-form-item>
+      <nut-form-item label="鏀粯瀹濊处鍙�:" class="bole-form-item" prop="code">
+        <nut-input v-model.trim="form.code" placeholder="璇疯緭鍏ユ敮浠樺疂璐﹀彿" />
+      </nut-form-item>
+    </nut-form>
+  </ContentScrollView>
+  <PageFooter>
+    <PageFooterBtn type="primary" @click="handleConfirm">缁戝畾鏀粯瀹�</PageFooterBtn>
+  </PageFooter>
+</template>
+
+<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 * as userServices from '@12333/services/apiV2/user';
+import Taro from '@tarojs/taro';
+import { useQueryClient } from '@tanstack/vue-query';
+import { EnumUserBankCardAccess } from '@12333/constants';
+
+const { userDetail } = useUser();
+const switchTab = useSwitchTab();
+defineOptions({
+  name: 'InnerPage',
+});
+
+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: '璇疯緭鍏ラ獙璇佺爜' }],
+});
+
+async function onGetCaptcha(phoneNumber: string) {
+  await userServices.sendSavePersonalUserBankCardVerifyCode(
+    {
+      phoneNumber: form.phoneNumber,
+    },
+    { showLoading: false }
+  );
+}
+
+const formRef = ref<any>(null);
+function handleConfirm() {
+  if (!formRef.value) return;
+  formRef.value.validate().then(({ valid, errors }: any) => {
+    if (valid) {
+      confirm();
+    }
+  });
+}
+
+async function confirm() {
+  try {
+    let params: API.SavePersonalUserBankCardCommand = {
+      code: form.code,
+      bank: form.bank,
+      phoneNumber: form.phoneNumber,
+      verifyCode: form.verifyCode,
+      access: EnumUserBankCardAccess.Bank,
+    };
+    let res = await userServices.savePersonalUserBankCard(params);
+    if (res) {
+      Message.success('缁戝畾鎴愬姛', {
+        onClosed() {
+          switchTab({
+            url: RouterPath.mine,
+          });
+        },
+      });
+    }
+  } catch (error) {}
+}
+</script>
+
+<style lang="scss">
+@import '@/styles/common.scss';
+</style>
diff --git a/apps/cMiniApp/src/subpackages/wallet/unboundAlipay/unboundAlipay.config.ts b/apps/cMiniApp/src/subpackages/wallet/unboundAlipay/unboundAlipay.config.ts
new file mode 100644
index 0000000..305fdb1
--- /dev/null
+++ b/apps/cMiniApp/src/subpackages/wallet/unboundAlipay/unboundAlipay.config.ts
@@ -0,0 +1,3 @@
+export default definePageConfig({
+  disableScroll: true,
+});
diff --git a/apps/cMiniApp/src/subpackages/wallet/unboundAlipay/unboundAlipay.vue b/apps/cMiniApp/src/subpackages/wallet/unboundAlipay/unboundAlipay.vue
new file mode 100644
index 0000000..c79ecde
--- /dev/null
+++ b/apps/cMiniApp/src/subpackages/wallet/unboundAlipay/unboundAlipay.vue
@@ -0,0 +1,17 @@
+<template>
+  <PageLayout class="unboundBankCard-page-wrapper" title="缁戝畾鏀粯瀹�" has-border>
+    <InnerPage></InnerPage>
+  </PageLayout>
+</template>
+
+<script setup lang="ts">
+import InnerPage from './InnerPage.vue';
+
+defineOptions({
+  name: 'unboundAlipay',
+});
+</script>
+
+<style lang="scss">
+@import '@/styles/common.scss';
+</style>

--
Gitblit v1.9.1