From 0d4707520940affeb4ac1697bbce9cebf5da60f8 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期二, 23 九月 2025 10:37:02 +0800
Subject: [PATCH] feat: 页面

---
 /dev/null                                                                      |  189 ---------------------
 apps/cMiniApp/src/subpackages/authentication/authenticationJBR/InnerPage.vue   |   66 +++---
 apps/cMiniApp/src/subpackages/wallet/bindBankCard/bindBankCard.vue             |    2 
 apps/cMiniApp/src/subpackages/wallet/hooks/index.ts                            |   34 +++
 apps/cMiniApp/src/subpackages/wallet/unboundBankCard/unboundBankCard.vue       |    2 
 apps/cMiniApp/src/subpackages/wallet/incomeDetail/InnerPage.vue                |   27 +-
 apps/cMiniApp/src/subpackages/wallet/withdraw/InnerPage.vue                    |   22 +-
 apps/cMiniApp/src/subpackages/wallet/withdrawDetailInfo/InnerPage.vue          |   37 ++-
 apps/cMiniApp/src/subpackages/wallet/mineWallet/InnerPage.vue                  |   28 +-
 apps/cMiniApp/src/subpackages/wallet/incomeDetailInfo/InnerPage.vue            |   26 --
 apps/cMiniApp/src/subpackages/authentication/authenticationFaRen/InnerPage.vue |   64 +++---
 11 files changed, 171 insertions(+), 326 deletions(-)

diff --git a/apps/cMiniApp/src/subpackages/authentication/authenticationFaRen/InnerPage.vue b/apps/cMiniApp/src/subpackages/authentication/authenticationFaRen/InnerPage.vue
index ff306d0..00859ee 100644
--- a/apps/cMiniApp/src/subpackages/authentication/authenticationFaRen/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/authentication/authenticationFaRen/InnerPage.vue
@@ -1,6 +1,6 @@
 <template>
   <ContentScrollView :paddingH="false">
-    <nut-form :model-value="form" ref="formRef" :rules="rules">
+    <!-- <nut-form :model-value="form" ref="formRef" :rules="rules">
       <nut-form-item label="钀ヤ笟鎵х収:" class="bole-form-item alignTop" prop="licenseUrl" required>
         <Uploader
           v-model:file-list="form.licenseUrl"
@@ -135,17 +135,17 @@
           type="number"
         />
       </nut-form-item>
-    </nut-form>
+    </nut-form> -->
   </ContentScrollView>
   <PageFooter :isOnlyAction="false">
-    <PageFooterBtn type="primary" @click="handleSubmit()" :loading="loading"
+    <!-- <PageFooterBtn type="primary" @click="handleSubmit()" :loading="loading"
       >鎻愪氦璁よ瘉</PageFooterBtn
-    >
+    > -->
   </PageFooter>
 </template>
 
 <script setup lang="ts">
-import { useAuthenticationFlow } from '../hooks';
+// import { useAuthenticationFlow } from '../hooks';
 import {
   UserCertificationModeEnumV2,
   VerificationCodeBusinessType,
@@ -162,35 +162,35 @@
   name: 'InnerPage',
 });
 
-const { form, rules, formRef, handleSubmit, loading } = useAuthenticationFlow({
-  certificationMode: UserCertificationModeEnumV2.LegalPersonPhoneCertification,
-  certificationElement: UserCertificationElementEnum.Identity4,
-});
+// const { form, rules, formRef, handleSubmit, loading } = useAuthenticationFlow({
+//   certificationMode: UserCertificationModeEnumV2.LegalPersonPhoneCertification,
+//   certificationElement: UserCertificationElementEnum.Identity4,
+// });
 
-async function onGetCaptcha(phoneNumber: string) {
-  await commonServices.sendPhoneCertificationVerificationCode(
-    {
-      name: form.legalPersonName,
-      identity: form.legalPersonIdNumber,
-      mobile: form.legalPersonContactPhone,
-      businessType: VerificationCodeBusinessType.UserCertificationPhoneCertification,
-    },
-    { showLoading: false }
-  );
-}
+// async function onGetCaptcha(phoneNumber: string) {
+//   await commonServices.sendPhoneCertificationVerificationCode(
+//     {
+//       name: form.legalPersonName,
+//       identity: form.legalPersonIdNumber,
+//       mobile: form.legalPersonContactPhone,
+//       businessType: VerificationCodeBusinessType.UserCertificationPhoneCertification,
+//     },
+//     { showLoading: false }
+//   );
+// }
 
-const handleLicenseUrlChange = (response: FileItem) => {
-  vatLicense(response, {
-    onSuccess(res) {
-      let tips: string[] = [];
-      res?.name ? (form.enterpriseName = res.name) : tips.push('浼佷笟鍚嶇О');
-      res?.societyCode ? (form.societyCreditCode = res.societyCode) : tips.push('缁熶竴绀句細淇$敤浠g爜');
-      if (tips.length > 0) {
-        Message.error(`鏈兘璇嗗埆鍒版偍涓婁紶鐨勫浘鐗囷紝璇烽噸鏂颁笂浼犳竻鏅扮殑鍥剧墖鎴栨墜鍔ㄨ緭鍏�${tips.join('鍜�')}`);
-      }
-    },
-  });
-};
+// const handleLicenseUrlChange = (response: FileItem) => {
+//   vatLicense(response, {
+//     onSuccess(res) {
+//       let tips: string[] = [];
+//       res?.name ? (form.enterpriseName = res.name) : tips.push('浼佷笟鍚嶇О');
+//       res?.societyCode ? (form.societyCreditCode = res.societyCode) : tips.push('缁熶竴绀句細淇$敤浠g爜');
+//       if (tips.length > 0) {
+//         Message.error(`鏈兘璇嗗埆鍒版偍涓婁紶鐨勫浘鐗囷紝璇烽噸鏂颁笂浼犳竻鏅扮殑鍥剧墖鎴栨墜鍔ㄨ緭鍏�${tips.join('鍜�')}`);
+//       }
+//     },
+//   });
+// };
 
 function handleFrontImgUrlChange(response: FileItem) {
   // userCredentialVerifyOcrIDCard(response, {
diff --git a/apps/cMiniApp/src/subpackages/authentication/authenticationJBR/InnerPage.vue b/apps/cMiniApp/src/subpackages/authentication/authenticationJBR/InnerPage.vue
index a086598..be2f9bb 100644
--- a/apps/cMiniApp/src/subpackages/authentication/authenticationJBR/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/authentication/authenticationJBR/InnerPage.vue
@@ -1,6 +1,6 @@
 <template>
   <ContentScrollView :paddingH="false">
-    <nut-form :model-value="form" ref="formRef" :rules="rules">
+    <!-- <nut-form :model-value="form" ref="formRef" :rules="rules">
       <nut-form-item label="钀ヤ笟鎵х収:" class="bole-form-item alignTop" prop="licenseUrl" required>
         <Uploader
           v-model:file-list="form.licenseUrl"
@@ -161,17 +161,17 @@
           <span class="primary" @click="downloadPowerAttorneyTemplate">鎺堟潈涔︽ā鏉夸笅杞�</span>
         </div>
       </nut-form-item>
-    </nut-form>
+    </nut-form> -->
   </ContentScrollView>
   <PageFooter :isOnlyAction="false">
-    <PageFooterBtn type="primary" @click="handleSubmit()" :loading="loading"
+    <!-- <PageFooterBtn type="primary" @click="handleSubmit()" :loading="loading"
       >鎻愪氦璁よ瘉</PageFooterBtn
-    >
+    > -->
   </PageFooter>
 </template>
 
 <script setup lang="ts">
-import { useAuthenticationFlow, useDownloadPowerAttorneyTemplate } from '../hooks';
+// import { useAuthenticationFlow, useDownloadPowerAttorneyTemplate } from '../hooks';
 import {
   UserCertificationModeEnumV2,
   VerificationCodeBusinessType,
@@ -188,37 +188,37 @@
   name: 'InnerPage',
 });
 
-const { form, rules, formRef, handleSubmit, loading } = useAuthenticationFlow({
-  certificationMode: UserCertificationModeEnumV2.ProxyPersonPhoneCertification,
-  certificationElement: UserCertificationElementEnum.Identity3,
-});
+// const { form, rules, formRef, handleSubmit, loading } = useAuthenticationFlow({
+//   certificationMode: UserCertificationModeEnumV2.ProxyPersonPhoneCertification,
+//   certificationElement: UserCertificationElementEnum.Identity3,
+// });
 
-const { downloadPowerAttorneyTemplate } = useDownloadPowerAttorneyTemplate();
+// const { downloadPowerAttorneyTemplate } = useDownloadPowerAttorneyTemplate();
 
-async function onGetCaptcha(phoneNumber: string) {
-  await commonServices.sendPhoneCertificationVerificationCode(
-    {
-      name: form.proxyPersonName,
-      identity: form.proxyPersonIdNumber,
-      mobile: form.proxyPersonContactPhone,
-      businessType: VerificationCodeBusinessType.UserCertificationPhoneCertification,
-    },
-    { showLoading: false }
-  );
-}
+// async function onGetCaptcha(phoneNumber: string) {
+//   await commonServices.sendPhoneCertificationVerificationCode(
+//     {
+//       name: form.proxyPersonName,
+//       identity: form.proxyPersonIdNumber,
+//       mobile: form.proxyPersonContactPhone,
+//       businessType: VerificationCodeBusinessType.UserCertificationPhoneCertification,
+//     },
+//     { showLoading: false }
+//   );
+// }
 
-const handleLicenseUrlChange = (response: FileItem) => {
-  vatLicense(response, {
-    onSuccess(res) {
-      let tips: string[] = [];
-      res?.name ? (form.enterpriseName = res.name) : tips.push('浼佷笟鍚嶇О');
-      res?.societyCode ? (form.societyCreditCode = res.societyCode) : tips.push('缁熶竴绀句細淇$敤浠g爜');
-      if (tips.length > 0) {
-        Message.error(`鏈兘璇嗗埆鍒版偍涓婁紶鐨勫浘鐗囷紝璇烽噸鏂颁笂浼犳竻鏅扮殑鍥剧墖鎴栨墜鍔ㄨ緭鍏�${tips.join('鍜�')}`);
-      }
-    },
-  });
-};
+// const handleLicenseUrlChange = (response: FileItem) => {
+//   vatLicense(response, {
+//     onSuccess(res) {
+//       let tips: string[] = [];
+//       res?.name ? (form.enterpriseName = res.name) : tips.push('浼佷笟鍚嶇О');
+//       res?.societyCode ? (form.societyCreditCode = res.societyCode) : tips.push('缁熶竴绀句細淇$敤浠g爜');
+//       if (tips.length > 0) {
+//         Message.error(`鏈兘璇嗗埆鍒版偍涓婁紶鐨勫浘鐗囷紝璇烽噸鏂颁笂浼犳竻鏅扮殑鍥剧墖鎴栨墜鍔ㄨ緭鍏�${tips.join('鍜�')}`);
+//       }
+//     },
+//   });
+// };
 
 function handleFrontImgUrlChange(response: FileItem) {
   // userCredentialVerifyOcrIDCard(response, {
diff --git a/apps/cMiniApp/src/subpackages/authentication/hooks/index.ts b/apps/cMiniApp/src/subpackages/authentication/hooks/index.ts
deleted file mode 100644
index 809bbad..0000000
--- a/apps/cMiniApp/src/subpackages/authentication/hooks/index.ts
+++ /dev/null
@@ -1,189 +0,0 @@
-import { FormRules } from '@nutui/nutui-taro/dist/types/__VUE/form/types';
-import { useUser } from '@/hooks';
-import { FileItem } from '@nutui/nutui-taro/dist/types/__VUE/uploader/type';
-import {
-  EnterpriseType,
-  UserCertificationModeEnumV2,
-  VerificationCodeBusinessType,
-  UserCertificationElementEnum,
-  UserCertificationChannelEnum,
-  UserCertificationPayType,
-} from '@12333/constants';
-import { FormValidator, Message } from '@12333/utils';
-import { useUserCertificationSetting } from '@12333/hooks';
-import Taro from '@tarojs/taro';
-
-type UseAuthenticationFlowOptions = {
-  certificationMode: UserCertificationModeEnumV2;
-  certificationElement: UserCertificationElementEnum;
-};
-
-export function useAuthenticationFlow({
-  certificationMode,
-  certificationElement,
-}: UseAuthenticationFlowOptions) {
-  const { userDetail } = useUser();
-
-  const form = reactive({
-    licenseUrl: [] as FileItem[],
-    enterpriseType: userDetail.value?.authType ?? EnterpriseType.HREnterprise,
-    enterpriseName: '',
-    societyCreditCode: '',
-    certificationMode: certificationMode,
-    certificationElement: certificationElement,
-    legalPersonName: '',
-    legalPersonIdNumber: '',
-    legalPersonIdFrontImgUrl: [] as FileItem[],
-    legalPersonIdBackImgUrl: [] as FileItem[],
-    legalPersonBankCardImgUrl: [] as FileItem[],
-    legalPersonContactPhone: '',
-    verificationCode: '',
-    proxyPersonName: '',
-    proxyPersonIdNumber: '',
-    proxyPersonContactPhone: '',
-    proxyPersonIdFrontImgUrl: [] as FileItem[],
-    proxyPersonIdBackImgUrl: [] as FileItem[],
-    proxyPersonBankCardImgUrl: [] as FileItem[],
-    proxyPowerAttorneyUrl: [] as FileItem[],
-    bankCardNumber: '',
-  });
-
-  const rules: FormRules = {
-    licenseUrl: [
-      { required: true, message: '璇蜂笂浼犺惀涓氭墽鐓�', validator: FormValidator.validatorArray },
-    ],
-    enterpriseName: [{ required: true, message: '璇疯緭鍏ヤ紒涓氬悕绉�' }],
-    societyCreditCode: [
-      { required: true, message: '璇疯緭鍏ユ偍钀ヤ笟鎵х収涓婄殑淇$敤浠g爜' },
-      { message: '璇疯緭鍏ユ纭殑淇$敤浠g爜', validator: FormValidator.validatorSocietyCreditCode },
-    ],
-    legalPersonName: [{ required: true, message: '璇峰~鍐欎紒涓氭硶浜虹殑濮撳悕' }],
-    legalPersonIdFrontImgUrl: [
-      { required: true, message: '璇蜂笂浼犺韩浠借瘉浜哄儚闈�', validator: FormValidator.validatorArray },
-    ],
-    legalPersonIdBackImgUrl: [
-      { required: true, message: '璇蜂笂浼犺韩浠借瘉鍥藉窘闈�', validator: FormValidator.validatorArray },
-    ],
-    legalPersonIdNumber: [
-      { required: true, message: '璇峰~鍐欎紒涓氭硶浜虹殑韬唤璇佸彿鐮�' },
-      { message: '璇疯緭鍏ユ纭殑韬唤璇佸彿鐮�', validator: FormValidator.validatorIDCard },
-    ],
-    legalPersonContactPhone: [
-      { required: true, message: '璇峰~鍐欎紒涓氭硶浜虹殑鎵嬫満鍙风爜' },
-      { message: '璇疯緭鍏ユ纭殑鎵嬫満鍙风爜', validator: FormValidator.validatorPhoneNumber },
-    ],
-    verificationCode: [{ required: true, message: '璇疯緭鍏ラ獙璇佺爜' }],
-    proxyPersonName: [{ required: true, message: '璇峰~鍐欑粡鍔炰汉鐨勫鍚�' }],
-    proxyPersonIdNumber: [
-      { required: true, message: '璇峰~鍐欑粡鍔炰汉鐨勮韩浠借瘉鍙风爜' },
-      { message: '璇疯緭鍏ユ纭殑韬唤璇佸彿鐮�', validator: FormValidator.validatorIDCard },
-    ],
-    proxyPersonContactPhone: [
-      { required: true, message: '璇峰~鍐欑粡鍔炰汉鐨勬墜鏈哄彿鐮�' },
-      { message: '璇疯緭鍏ユ纭殑鎵嬫満鍙风爜', validator: FormValidator.validatorPhoneNumber },
-    ],
-    proxyPowerAttorneyUrl: [
-      { required: true, message: '璇蜂笂浼犱紒涓氭巿鏉冧功', validator: FormValidator.validatorArray },
-    ],
-  };
-
-  const { updateUserInfo } = useUser();
-
-  const formRef = ref<any>(null);
-
-  function handleSubmit() {
-    if (!formRef.value) return;
-    formRef.value.validate().then(({ valid, errors }: any) => {
-      if (valid) {
-        // addUserCertificationAudit();
-      }
-    });
-  }
-
-  const loading = ref(false);
-
-  async function addUserCertificationAudit() {
-    try {
-      // let params: API.AddUserCertificationAuditInput = {
-      //   enterpriseType: form.enterpriseType,
-      //   licenseUrl: form.licenseUrl[0].path,
-      //   enterpriseName: form.enterpriseName,
-      //   societyCreditCode: form.societyCreditCode,
-      //   certificationMode: form.certificationMode,
-      //   legalPersonName: form.legalPersonName,
-      //   legalPersonIdNumber: form.legalPersonIdNumber,
-      //   legalPersonIdImgUrl: form.legalPersonIdFrontImgUrl?.[0]?.path ?? '',
-      //   legalPersonIdBackImgUrl: form.legalPersonIdBackImgUrl?.[0]?.path ?? '',
-      //   legalPersonBankCardImgUrl: form.legalPersonBankCardImgUrl?.[0]?.path ?? '',
-      //   certificationContact:
-      //     form.certificationElement === UserCertificationElementEnum.Identity4
-      //       ? form.legalPersonName
-      //       : form.proxyPersonName,
-      //   certificationContactPhone:
-      //     form.certificationElement === UserCertificationElementEnum.Identity4
-      //       ? form.legalPersonContactPhone
-      //       : form.proxyPersonContactPhone,
-      //   proxyPersonName: form.proxyPersonName,
-      //   proxyPersonIdNumber: form.proxyPersonIdNumber,
-      //   proxyPersonIdImgUrl: form.proxyPersonIdFrontImgUrl?.[0]?.path ?? '',
-      //   proxyPersonIdBackImgUrl: form.proxyPersonIdBackImgUrl?.[0]?.path ?? '',
-      //   proxyPersonBankCardImgUrl: form.proxyPersonBankCardImgUrl?.[0]?.path ?? '',
-      //   proxyPowerAttorneyUrl: form.proxyPowerAttorneyUrl?.[0]?.path ?? '',
-      //   certificationChannel: UserCertificationChannelEnum.ThirdParty,
-      //   certificationElement: form.certificationElement,
-      //   vCode: form.verificationCode,
-      //   bankCardNumber: form.bankCardNumber,
-      //   payType: UserCertificationPayType.NotNeedPay,
-      // };
-      // loading.value = true;
-      // let res = await userServices.addUserCertificationAudit(params, { showLoading: false });
-      // if (res) {
-      //   updateUserInfo();
-      //   Taro.redirectTo({
-      //     url: RouterPath.authenticationResult,
-      //   });
-      // }
-    } catch (error) {
-    } finally {
-      loading.value = false;
-    }
-  }
-
-  return {
-    form,
-    rules,
-    formRef,
-    handleSubmit,
-    loading,
-  };
-}
-
-export function useDownloadPowerAttorneyTemplate() {
-  const { userCertificationSetting } = useUserCertificationSetting();
-
-  function downloadPowerAttorneyTemplate() {
-    Taro.showLoading({
-      title: '涓嬭浇涓�',
-    });
-    Taro.downloadFile({
-      url: userCertificationSetting.value.enterprisePowerAttorneyTempPath,
-      success: function (res) {
-        Taro.hideLoading();
-        // Message.success('涓嬭浇鎴愬姛');
-        var filePath = res.tempFilePath;
-        Taro.openDocument({
-          filePath: filePath,
-          showMenu: true,
-        });
-      },
-      fail: function (error: any) {
-        Taro.hideLoading();
-        Message.error('涓嬭浇澶辫触');
-      },
-    });
-  }
-
-  return {
-    downloadPowerAttorneyTemplate,
-  };
-}
diff --git a/apps/cMiniApp/src/subpackages/wallet/bindBankCard/bindBankCard.vue b/apps/cMiniApp/src/subpackages/wallet/bindBankCard/bindBankCard.vue
index af0557f..f3ee2e4 100644
--- a/apps/cMiniApp/src/subpackages/wallet/bindBankCard/bindBankCard.vue
+++ b/apps/cMiniApp/src/subpackages/wallet/bindBankCard/bindBankCard.vue
@@ -1,5 +1,5 @@
 <template>
-  <PageLayout class="bindBankCard-page-wrapper" :title="'缁戝畾閾惰鍗�'" developing>
+  <PageLayout class="bindBankCard-page-wrapper" :title="'缁戝畾閾惰鍗�'">
     <InnerPage></InnerPage>
   </PageLayout>
 </template>
diff --git a/apps/cMiniApp/src/subpackages/wallet/hooks/index.ts b/apps/cMiniApp/src/subpackages/wallet/hooks/index.ts
new file mode 100644
index 0000000..c3da143
--- /dev/null
+++ b/apps/cMiniApp/src/subpackages/wallet/hooks/index.ts
@@ -0,0 +1,34 @@
+import { useQuery } from '@tanstack/vue-query';
+import * as userServices from '@12333/services/apiV2/user';
+import { MaybeRef, unref } from 'vue';
+
+type UsePersonalUserTransactionOptions = {
+  id?: MaybeRef<string>;
+};
+
+export function useGetPersonalUserTransaction(options: UsePersonalUserTransactionOptions = {}) {
+  const { id } = options;
+
+  const {
+    isLoading,
+    isError,
+    data: detail,
+    refetch,
+  } = useQuery({
+    queryKey: ['userServices/getPersonalUserTransaction', id],
+    queryFn: async () => {
+      return await userServices.getPersonalUserTransaction(
+        { id: unref(id) },
+        {
+          showLoading: false,
+        }
+      );
+    },
+    placeholderData: () => ({} as API.GetPersonalUserTransactionQueryResult),
+    enabled: computed(() => !!unref(id)),
+  });
+
+  return {
+    detail,
+  };
+}
diff --git a/apps/cMiniApp/src/subpackages/wallet/incomeDetail/InnerPage.vue b/apps/cMiniApp/src/subpackages/wallet/incomeDetail/InnerPage.vue
index 8693177..68bd0c0 100644
--- a/apps/cMiniApp/src/subpackages/wallet/incomeDetail/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/wallet/incomeDetail/InnerPage.vue
@@ -1,5 +1,5 @@
 <template>
-  <!-- <ProTabs
+  <ProTabs
     v-model="queryState.type"
     name="home-tab"
     :showPaneContent="false"
@@ -11,7 +11,7 @@
     <ProTabPane :title="`鍏ㄩ儴`" :pane-key="0"></ProTabPane>
     <ProTabPane :title="`鏀跺叆`" :pane-key="EnumUserWalletTransactionType.Income"></ProTabPane>
     <ProTabPane :title="`鎻愮幇`" :pane-key="EnumUserWalletTransactionType.Withdraw"></ProTabPane>
-  </ProTabs> -->
+  </ProTabs>
   <List>
     <IncomeDetailListItem :item="`鏀跺叆锛氾骏${toThousand(sumIncome)} `">
       <template #title>
@@ -87,11 +87,10 @@
         page: pageParam,
         orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
       },
-      type: EnumUserWalletTransactionType.Income,
     };
-    // if (Number(queryState.type)) {
-    //   params.type = queryState.type;
-    // }
+    if (Number(queryState.type)) {
+      params.type = queryState.type;
+    }
     if (queryState.month) {
       params.createdTimeStart = dayjs(queryState.month).startOf('month').format('YYYY-MM-DD');
       params.createdTimeEnd = dayjs(queryState.month).endOf('month').format('YYYY-MM-DD');
@@ -106,12 +105,16 @@
 );
 
 function goIncomeDetailInfo(row: API.GetPersonalUserTransactionsQueryResultItem) {
-  Taro.navigateTo({
-    url: `${RouterPath.incomeDetailInfo}?id=${row.id}`,
-  });
-  // Taro.navigateTo({
-  //   url: `${RouterPath.withdrawDetailInfo}`,
-  // });
+  if (row.type === EnumUserWalletTransactionType.Income) {
+    Taro.navigateTo({
+      url: `${RouterPath.incomeDetailInfo}?id=${row.id}`,
+    });
+  }
+  if (row.type === EnumUserWalletTransactionType.Withdraw) {
+    Taro.navigateTo({
+      url: `${RouterPath.withdrawDetailInfo}?id=${row.id}`,
+    });
+  }
 }
 </script>
 
diff --git a/apps/cMiniApp/src/subpackages/wallet/incomeDetailInfo/InnerPage.vue b/apps/cMiniApp/src/subpackages/wallet/incomeDetailInfo/InnerPage.vue
index 5cce9d9..2b1a544 100644
--- a/apps/cMiniApp/src/subpackages/wallet/incomeDetailInfo/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/wallet/incomeDetailInfo/InnerPage.vue
@@ -38,12 +38,11 @@
 
 <script setup lang="ts">
 import { List, ListItem, WithdrawMoneyCard } from '@12333/components';
-import { EnumUserWalletTransactionType, EnumUserWalletTransactionTypeText } from '@12333/constants';
+import { EnumUserWalletTransactionTypeText } from '@12333/constants';
 import Taro from '@tarojs/taro';
-import * as userServices from '@12333/services/apiV2/user';
-import { useQuery } from '@tanstack/vue-query';
 import dayjs from 'dayjs';
 import { toThousand } from '@12333/utils';
+import { useGetPersonalUserTransaction } from '../hooks';
 
 defineOptions({
   name: 'InnerPage',
@@ -52,25 +51,8 @@
 const router = Taro.useRouter();
 const id = router.params?.id;
 
-const {
-  isLoading,
-  isError,
-  data: detail,
-  refetch,
-} = useQuery({
-  queryKey: ['userServices/getPersonalUserTransaction', id],
-  queryFn: async () => {
-    return await userServices.getPersonalUserTransaction(
-      { id: id },
-      {
-        showLoading: false,
-      }
-    );
-  },
-  placeholderData: () => ({} as API.GetPersonalUserTransactionQueryResult),
-  onSuccess(data) {
-    // if (data.isExistTradeChatRecord) setTrue();
-  },
+const { detail } = useGetPersonalUserTransaction({
+  id: id,
 });
 </script>
 
diff --git a/apps/cMiniApp/src/subpackages/wallet/mineWallet/InnerPage.vue b/apps/cMiniApp/src/subpackages/wallet/mineWallet/InnerPage.vue
index 894746e..b8a68cf 100644
--- a/apps/cMiniApp/src/subpackages/wallet/mineWallet/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/wallet/mineWallet/InnerPage.vue
@@ -1,17 +1,17 @@
 <template>
-  <!-- <div class="mine-wallet-balance">
-    <WithdrawMoneyCard :money="100" title="璐︽埛浣欓(鍏�)"></WithdrawMoneyCard>
+  <div class="mine-wallet-balance">
+    <WithdrawMoneyCard :money="userDetail.balance" title="璐︽埛浣欓(鍏�)"></WithdrawMoneyCard>
     <nut-button type="primary" class="mine-wallet-balance-btn" @click="goWithdraw">鎻愮幇</nut-button>
-  </div> -->
+  </div>
   <List>
     <ListItem title="鏀跺叆鏄庣粏" @click="goIncomeDetail"> </ListItem>
-    <!-- <ListItem title="鏀粯瀹濊处鎴�" @click="goWithdraw">
+    <ListItem title="閾惰鍗�" @click="goBankBind">
       <template #extra>
         <div class="bind-bank-card">
           {{ isBinding ? '宸茬粦瀹�' : '鏈粦瀹氥�佺珛鍗崇粦瀹�' }}
         </div>
       </template>
-    </ListItem> -->
+    </ListItem>
   </List>
 </template>
 
@@ -23,7 +23,7 @@
   name: 'InnerPage',
 });
 
-const { isCertified } = useUser();
+const { userDetail } = useUser();
 
 const isBinding = ref(false);
 
@@ -41,14 +41,14 @@
   },
   { message: '瀹屾垚瀹炲悕璁よ瘉鍚庢墠鍙彁鐜�' }
 );
-// const goBankBind = useAccessReal(
-//   () => {
-//     Taro.navigateTo({
-//       url: `${isBinding.value ? RouterPath.bindBankCard : RouterPath.unboundBankCard}`,
-//     });
-//   },
-//   { message: '瀹屾垚瀹炲悕璁よ瘉鍚庢墠鍙繘琛岄摱琛屽崱缁戝畾' }
-// );
+const goBankBind = useAccessReal(
+  () => {
+    Taro.navigateTo({
+      url: `${isBinding.value ? RouterPath.bindBankCard : RouterPath.unboundBankCard}`,
+    });
+  },
+  { message: '瀹屾垚瀹炲悕璁よ瘉鍚庢墠鍙繘琛岄摱琛屽崱缁戝畾' }
+);
 </script>
 
 <style lang="scss">
diff --git a/apps/cMiniApp/src/subpackages/wallet/unboundBankCard/unboundBankCard.vue b/apps/cMiniApp/src/subpackages/wallet/unboundBankCard/unboundBankCard.vue
index af80f44..0108c1a 100644
--- a/apps/cMiniApp/src/subpackages/wallet/unboundBankCard/unboundBankCard.vue
+++ b/apps/cMiniApp/src/subpackages/wallet/unboundBankCard/unboundBankCard.vue
@@ -1,5 +1,5 @@
 <template>
-  <PageLayout class="unboundBankCard-page-wrapper" title="缁戝畾閾惰鍗�" has-border developing>
+  <PageLayout class="unboundBankCard-page-wrapper" title="缁戝畾閾惰鍗�" has-border>
     <InnerPage></InnerPage>
   </PageLayout>
 </template>
diff --git a/apps/cMiniApp/src/subpackages/wallet/withdraw/InnerPage.vue b/apps/cMiniApp/src/subpackages/wallet/withdraw/InnerPage.vue
index 0f1acb2..9d5c397 100644
--- a/apps/cMiniApp/src/subpackages/wallet/withdraw/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/wallet/withdraw/InnerPage.vue
@@ -14,25 +14,27 @@
             <nut-radio label="alipay"> {{ '鎻愮幇鍒版敮浠樺疂' }} </nut-radio>
             <img :src="IconWalletAlipay" class="withdraw-icon" />
           </div>
-          <!-- <div class="withdraw-form-item">
+          <div class="withdraw-form-item">
             <nut-radio label="wechat"> {{ '鎻愮幇鍒板井淇�' }} </nut-radio>
             <img :src="IconWalletWechat" class="withdraw-icon" />
           </div>
           <div class="withdraw-form-item">
             <nut-radio label="bank"> {{ '鎻愮幇鍒伴摱琛屽崱' }} </nut-radio>
             <img :src="IconWalletBank" class="withdraw-icon" />
-          </div> -->
+          </div>
         </nut-radio-group>
       </nut-form-item>
-      <nut-form-item label="鏀粯瀹濇埛鍚�:" class="bole-form-item" prop="name">
-        <nut-input readonly v-model.trim="form.name" placeholder="璇疯緭鍏ユ敮浠樺疂鎴峰悕" />
-      </nut-form-item>
-      <nut-form-item label="韬唤璇佸彿:" class="bole-form-item" prop="name">
+      <template v-if="form.alipay === 'alipay'">
+        <nut-form-item label="鏀粯瀹濇埛鍚�:" class="bole-form-item" prop="name">
+          <nut-input readonly v-model.trim="form.name" placeholder="璇疯緭鍏ユ敮浠樺疂鎴峰悕" />
+        </nut-form-item>
+        <!-- <nut-form-item label="韬唤璇佸彿:" class="bole-form-item" prop="name">
         <nut-input readonly v-model.trim="form.name" placeholder="璇疯緭鍏ヨ韩浠借瘉鍙�" />
-      </nut-form-item>
-      <nut-form-item label="鏀粯瀹濊处鍙�:" class="bole-form-item" prop="phoneNumber">
-        <nut-input v-model.trim="form.name" placeholder="璇疯緭鍏ユ敮浠樺疂璐﹀彿/鎵嬫満鍙�" />
-      </nut-form-item>
+      </nut-form-item> -->
+        <nut-form-item label="鏀粯瀹濊处鍙�:" class="bole-form-item" prop="phoneNumber">
+          <nut-input v-model.trim="form.name" placeholder="璇疯緭鍏ユ敮浠樺疂璐﹀彿/鎵嬫満鍙�" />
+        </nut-form-item>
+      </template>
     </nut-form>
   </ContentScrollView>
   <PageFooter>
diff --git a/apps/cMiniApp/src/subpackages/wallet/withdrawDetailInfo/InnerPage.vue b/apps/cMiniApp/src/subpackages/wallet/withdrawDetailInfo/InnerPage.vue
index 75882a7..f682131 100644
--- a/apps/cMiniApp/src/subpackages/wallet/withdrawDetailInfo/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/wallet/withdrawDetailInfo/InnerPage.vue
@@ -1,24 +1,24 @@
 <template>
-  <WithdrawMoneyCard :money="100" :title="`鎻愮幇-${'鏀粯瀹�'}鎻愮幇`"></WithdrawMoneyCard>
+  <WithdrawMoneyCard
+    :money="detail?.amount"
+    :title="EnumUserWalletTransactionTypeText[detail.type]"
+  ></WithdrawMoneyCard>
   <List>
     <ListItem title="鎻愮幇鍗曞彿" :show-arrow="false">
       <template #extra>
-        <div class="income-detail-info-value">{{ '5893485943859843095843' }}</div>
+        <div class="income-detail-info-value">{{ detail?.code }}</div>
       </template>
     </ListItem>
     <ListItem title="鎻愮幇閲戦" :show-arrow="false">
       <template #extra>
-        <div class="income-detail-info-value">{{ '瀹佹尝浜哄姏鏃犲咖' }}</div>
+        <div class="income-detail-info-value">{{ toThousand(detail?.amount) }}</div>
       </template>
     </ListItem>
     <ListItem title="鎻愮幇鏂瑰紡" :show-arrow="false">
       <template #extra>
-        <div class="income-detail-info-value">{{ '2024.11.13' }}</div>
-      </template>
-    </ListItem>
-    <ListItem title="鏈嶅姟璐�" :show-arrow="false">
-      <template #extra>
-        <div class="income-detail-info-value">{{ '33.33鍏�' }}</div>
+        <div class="income-detail-info-value">
+          {{ detail.type ? EnumUserWalletTransactionTypeText[detail.type] : '' }}
+        </div>
       </template>
     </ListItem>
     <ListItem title="鏀粯瀹濇埛鍚�" :show-arrow="false">
@@ -31,9 +31,14 @@
         <div class="income-detail-info-value">{{ '5893485943859843095843' }}</div>
       </template>
     </ListItem>
+    <ListItem title="鏈嶅姟璐�" :show-arrow="false">
+      <template #extra>
+        <div class="income-detail-info-value">{{ toThousand(detail?.serviceFee) }}</div>
+      </template>
+    </ListItem>
     <ListItem title="瀹為檯鍒拌处" :show-arrow="false">
       <template #extra>
-        <div class="income-detail-info-value">{{ '33.33鍏�' }}</div>
+        <div class="income-detail-info-value">{{ toThousand(detail?.actualAmount) }}</div>
       </template>
     </ListItem>
   </List>
@@ -41,13 +46,21 @@
 
 <script setup lang="ts">
 import { List, ListItem, WithdrawMoneyCard } from '@12333/components';
-import { useUserStore } from '@/stores/modules/user';
+import { EnumUserWalletTransactionTypeText } from '@12333/constants';
+import Taro from '@tarojs/taro';
+import { useGetPersonalUserTransaction } from '../hooks';
+import { toThousand } from '@12333/utils';
 
 defineOptions({
   name: 'InnerPage',
 });
 
-const userStore = useUserStore();
+const router = Taro.useRouter();
+const id = router.params?.id;
+
+const { detail } = useGetPersonalUserTransaction({
+  id: id,
+});
 </script>
 
 <style lang="scss">

--
Gitblit v1.9.1