diff --git a/components.d.ts b/components.d.ts index 0c2df39..22b8917 100644 --- a/components.d.ts +++ b/components.d.ts @@ -31,6 +31,8 @@ declare module 'vue' { IonLabel: typeof import('@ionic/vue')['IonLabel'] IonList: typeof import('@ionic/vue')['IonList'] IonPage: typeof import('@ionic/vue')['IonPage'] + IonRefresher: typeof import('@ionic/vue')['IonRefresher'] + IonRefresherContent: typeof import('@ionic/vue')['IonRefresherContent'] IonRouterOutlet: typeof import('@ionic/vue')['IonRouterOutlet'] IonSegment: typeof import('@ionic/vue')['IonSegment'] IonSegmentButton: typeof import('@ionic/vue')['IonSegmentButton'] @@ -71,6 +73,8 @@ declare global { const IonLabel: typeof import('@ionic/vue')['IonLabel'] const IonList: typeof import('@ionic/vue')['IonList'] const IonPage: typeof import('@ionic/vue')['IonPage'] + const IonRefresher: typeof import('@ionic/vue')['IonRefresher'] + const IonRefresherContent: typeof import('@ionic/vue')['IonRefresherContent'] const IonRouterOutlet: typeof import('@ionic/vue')['IonRouterOutlet'] const IonSegment: typeof import('@ionic/vue')['IonSegment'] const IonSegmentButton: typeof import('@ionic/vue')['IonSegmentButton'] diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f9cdfd3..0881189 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -52,8 +52,8 @@ catalogs: specifier: 8.0.0 version: 8.0.0 '@capp/eden': - specifier: http://192.168.1.2:9538/api/capp-eden-0.0.15.tgz - version: 0.0.15 + specifier: http://192.168.1.2:9538/api/capp-eden-0.0.19.tgz + version: 0.0.19 '@cloudflare/workers-types': specifier: ^4.20260113.0 version: 4.20260116.0 @@ -298,7 +298,7 @@ importers: version: 8.0.0(@capacitor/core@8.0.0) '@capp/eden': specifier: 'catalog:' - version: http://192.168.1.2:9538/api/capp-eden-0.0.15.tgz(@elysiajs/eden@1.4.6(elysia@1.4.22(@sinclair/typebox@0.34.47)(exact-mirror@0.2.6(@sinclair/typebox@0.34.47))(file-type@21.3.0)(openapi-types@12.1.3)(typescript@5.9.3))) + version: http://192.168.1.2:9538/api/capp-eden-0.0.19.tgz(@elysiajs/eden@1.4.6(elysia@1.4.22(@sinclair/typebox@0.34.47)(exact-mirror@0.2.6(@sinclair/typebox@0.34.47))(file-type@21.3.0)(openapi-types@12.1.3)(typescript@5.9.3))) '@elysiajs/eden': specifier: 'catalog:' version: 1.4.6(elysia@1.4.22(@sinclair/typebox@0.34.47)(exact-mirror@0.2.6(@sinclair/typebox@0.34.47))(file-type@21.3.0)(openapi-types@12.1.3)(typescript@5.9.3)) @@ -1182,9 +1182,9 @@ packages: '@capacitor/synapse@1.0.4': resolution: {integrity: sha512-/C1FUo8/OkKuAT4nCIu/34ny9siNHr9qtFezu4kxm6GY1wNFxrCFWjfYx5C1tUhVGz3fxBABegupkpjXvjCHrw==} - '@capp/eden@http://192.168.1.2:9538/api/capp-eden-0.0.15.tgz': - resolution: {tarball: http://192.168.1.2:9538/api/capp-eden-0.0.15.tgz} - version: 0.0.15 + '@capp/eden@http://192.168.1.2:9538/api/capp-eden-0.0.19.tgz': + resolution: {tarball: http://192.168.1.2:9538/api/capp-eden-0.0.19.tgz} + version: 0.0.19 peerDependencies: '@elysiajs/eden': ^1.4.6 @@ -6903,7 +6903,7 @@ snapshots: '@capacitor/synapse@1.0.4': {} - '@capp/eden@http://192.168.1.2:9538/api/capp-eden-0.0.15.tgz(@elysiajs/eden@1.4.6(elysia@1.4.22(@sinclair/typebox@0.34.47)(exact-mirror@0.2.6(@sinclair/typebox@0.34.47))(file-type@21.3.0)(openapi-types@12.1.3)(typescript@5.9.3)))': + '@capp/eden@http://192.168.1.2:9538/api/capp-eden-0.0.19.tgz(@elysiajs/eden@1.4.6(elysia@1.4.22(@sinclair/typebox@0.34.47)(exact-mirror@0.2.6(@sinclair/typebox@0.34.47))(file-type@21.3.0)(openapi-types@12.1.3)(typescript@5.9.3)))': dependencies: '@elysiajs/eden': 1.4.6(elysia@1.4.22(@sinclair/typebox@0.34.47)(exact-mirror@0.2.6(@sinclair/typebox@0.34.47))(file-type@21.3.0)(openapi-types@12.1.3)(typescript@5.9.3)) diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index fa85104..4891083 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -18,7 +18,7 @@ catalog: '@capacitor/keyboard': 8.0.0 '@capacitor/share': ^8.0.0 '@capacitor/status-bar': 8.0.0 - '@capp/eden': http://192.168.1.2:9538/api/capp-eden-0.0.15.tgz + '@capp/eden': http://192.168.1.2:9538/api/capp-eden-0.0.19.tgz '@cloudflare/workers-types': ^4.20260113.0 '@elysiajs/eden': ^1.4.6 '@faker-js/faker': ^10.2.0 diff --git a/src/assets/images/user-banner.jpg b/src/assets/images/user-banner.jpg new file mode 100644 index 0000000..329e174 Binary files /dev/null and b/src/assets/images/user-banner.jpg differ diff --git a/src/assets/images/user-header.jpg b/src/assets/images/user-header.jpg new file mode 100644 index 0000000..486a54a Binary files /dev/null and b/src/assets/images/user-header.jpg differ diff --git a/src/router/index.ts b/src/router/index.ts index 14cef5f..348ac14 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -134,6 +134,11 @@ const routes: Array = [ component: () => import("@/views/transfer/index.vue"), meta: { requiresAuth: true }, }, + { + path: "/transfer/records", + component: () => import("@/views/transfer/records.vue"), + meta: { requiresAuth: true }, + }, { path: "/exchange", component: () => import("@/views/exchange/index.vue"), diff --git a/src/views/profile/index.vue b/src/views/profile/index.vue index 0cbc60a..c856ede 100644 --- a/src/views/profile/index.vue +++ b/src/views/profile/index.vue @@ -63,6 +63,9 @@ async function handleLogout() { diff --git a/src/views/withdraw/index.vue b/src/views/withdraw/index.vue index 475b0fd..3493b22 100644 --- a/src/views/withdraw/index.vue +++ b/src/views/withdraw/index.vue @@ -10,7 +10,7 @@ type Receipt = Treaty.Data["data"][number] const router = useRouter(); const walletStore = useWalletStore(); const { wallets } = storeToRefs(walletStore); -const filterWallets = computed(() => wallets.value.filter(w => w.walletType.allowWithdraw === true)); +const filterWallets = ref([]); const withdrawAmount = ref(""); const quickAmounts = [100, 500, 1000, 2000]; const selectedWallet = ref(null); @@ -20,8 +20,9 @@ const { data: bankAccounts } = await safeClient(client.api.receipt_method.get()) onMounted(async () => { await walletStore.syncWallets(); - if (wallets.value.length > 0) { - selectedWallet.value = wallets.value[0]; + filterWallets.value = wallets.value.filter(w => w.walletType.allowWithdraw === true); + if (filterWallets.value.length > 0) { + selectedWallet.value = filterWallets.value[0]; } }); @@ -121,12 +122,12 @@ async function handleSubmit() { { text: "确认提现", handler: async () => { - // const { error } = await safeClient(client.api.withdraw.post({ - // walletId: selectedWallet.value.id, - // amount, - // bankAccountId: selectedBankAccount.value.id, - // transactionPassword: transactionPassword.value, - // })); + await safeClient(client.api.withdraw.post({ + amount: amount.toString(), + walletTypeId: selectedWallet.value!.walletType.id, + receiptMethodId: selectedBankAccount.value!.id, + transactionPassword: transactionPassword.value, + })); await showToast("提现申请已提交,请等待审核"); withdrawAmount.value = "";