feat: 添加我的申购页面,更新路由和国际化支持,优化用户体验

This commit is contained in:
2025-12-20 00:42:35 +07:00
parent 13943eec20
commit 521585035e
7 changed files with 65 additions and 4 deletions

View File

@@ -47,3 +47,7 @@ export type AvailableSubscriptionData = Treaty.Data<typeof client.api.rwa.subscr
export type AvailableSubscriptionBody = TreatyQuery<typeof client.api.rwa.subscription.available_editions.get>; export type AvailableSubscriptionBody = TreatyQuery<typeof client.api.rwa.subscription.available_editions.get>;
export type RwaData = Treaty.Data<typeof client.api.rwa.subscription.available_editions.get>; export type RwaData = Treaty.Data<typeof client.api.rwa.subscription.available_editions.get>;
export type MySubscribeRwaData = Treaty.Data<typeof client.api.rwa.subscription.my_subscriptions.get>;
export type MySubscribeRwaBody = TreatyQuery<typeof client.api.rwa.subscription.my_subscriptions.get>;

View File

@@ -122,7 +122,8 @@
"trade": { "trade": {
"title": "Trade", "title": "Trade",
"settings": { "settings": {
"bankManagement": "Bank Card" "bankManagement": "Bank Card",
"mySubscribe": "Subscribe"
} }
}, },
"asset": { "asset": {

View File

@@ -6,7 +6,7 @@ export type MessageSchema = typeof enUS;
const i18n = createI18n<MessageSchema, "en-US" | "zh-CN">({ const i18n = createI18n<MessageSchema, "en-US" | "zh-CN">({
legacy: false, legacy: false,
locale: "en-US", locale: "zh-CN",
fallbackLocale: "en-US", fallbackLocale: "en-US",
messages: { messages: {
"en-US": enUS, "en-US": enUS,

View File

@@ -122,7 +122,8 @@
"trade": { "trade": {
"title": "交易", "title": "交易",
"settings": { "settings": {
"bankManagement": "银行卡管理" "bankManagement": "银行卡管理",
"mySubscribe": "我的申购"
} }
}, },
"asset": { "asset": {

View File

@@ -62,6 +62,10 @@ const routes: Array<RouteRecordRaw> = [
path: "/trade-settings/bank-management", path: "/trade-settings/bank-management",
component: () => import("@/views/trade-settings/bank-management/index.vue"), component: () => import("@/views/trade-settings/bank-management/index.vue"),
}, },
{
path: "/trade-settings/my-subscribe",
component: () => import("@/views/trade-settings/my-subscribe/index.vue"),
},
{ {
path: "/trade-settings/bank-management/add", path: "/trade-settings/bank-management/add",
component: () => import("@/views/trade-settings/bank-management/add.vue"), component: () => import("@/views/trade-settings/bank-management/add.vue"),

View File

@@ -0,0 +1,45 @@
<script lang='ts' setup>
import type { MySubscribeRwaBody, MySubscribeRwaData } from "@/api/types";
import { client, safeClient } from "@/api";
const [query] = useResetRef<MySubscribeRwaBody>({
limit: 20,
offset: 0,
});
const subscribeData = ref<MySubscribeRwaData>([]);
const isFinished = ref(false);
async function fetchRwaData() {
const { data } = await safeClient(() => client.api.rwa.subscription.my_subscriptions.get({
query: query.value,
}));
subscribeData.value.push(...(data.value || []));
isFinished.value = (data.value?.length || 0) < query.value.limit!;
}
onBeforeMount(() => {
fetchRwaData();
});
</script>
<template>
<ion-page>
<ion-header>
<ion-toolbar class="ui-toolbar">
<ion-back-button slot="start" />
<ion-title>我的申购</ion-title>
</ion-toolbar>
</ion-header>
<ion-content :fullscreen="true" class="ion-padding">
<ion-refresher slot="fixed">
<ion-refresher-content />
</ion-refresher>
<div class="space-y-3 antialiased mt-5" />
</ion-content>
</ion-page>
</template>
<style scoped></style>

View File

@@ -1,5 +1,5 @@
<script lang='ts' setup> <script lang='ts' setup>
import { cardOutline } from "ionicons/icons"; import { cardOutline, documentOutline } from "ionicons/icons";
const { t } = useI18n(); const { t } = useI18n();
</script> </script>
@@ -16,6 +16,12 @@ const { t } = useI18n();
{{ t('trade.settings.bankManagement') }} {{ t('trade.settings.bankManagement') }}
</div> </div>
</div> </div>
<div class="col-span-1 flex-col-center gap-2" @click="$router.push('/trade-settings/my-subscribe')">
<ion-icon :icon="documentOutline" />
<div class="text-xs">
{{ t('trade.settings.mySubscribe') }}
</div>
</div>
</div> </div>
</div> </div>
</template> </template>