feat: 添加我的申购页面,更新路由和国际化支持,优化用户体验
This commit is contained in:
@@ -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>;
|
||||||
|
|||||||
@@ -122,7 +122,8 @@
|
|||||||
"trade": {
|
"trade": {
|
||||||
"title": "Trade",
|
"title": "Trade",
|
||||||
"settings": {
|
"settings": {
|
||||||
"bankManagement": "Bank Card"
|
"bankManagement": "Bank Card",
|
||||||
|
"mySubscribe": "Subscribe"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"asset": {
|
"asset": {
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -122,7 +122,8 @@
|
|||||||
"trade": {
|
"trade": {
|
||||||
"title": "交易",
|
"title": "交易",
|
||||||
"settings": {
|
"settings": {
|
||||||
"bankManagement": "银行卡管理"
|
"bankManagement": "银行卡管理",
|
||||||
|
"mySubscribe": "我的申购"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"asset": {
|
"asset": {
|
||||||
|
|||||||
@@ -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"),
|
||||||
|
|||||||
45
src/views/trade-settings/my-subscribe/index.vue
Normal file
45
src/views/trade-settings/my-subscribe/index.vue
Normal 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>
|
||||||
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user