feat: 更新用户界面,添加 Rwa 组件并优化交易视图

This commit is contained in:
2025-12-27 00:49:00 +07:00
parent 96608a769b
commit 6b7a2c7ef1
6 changed files with 67 additions and 34 deletions

View File

@@ -6,7 +6,6 @@ const { isAuthenticated } = storeToRefs(userStore);
const { locale, loadSavedLanguage } = useLanguage();
const { initializeWallet } = useWalletStore();
const { updateProfile } = useUserStore();
const route = useRoute();
onMounted(() => {
if (!isAuthenticated.value)

View File

@@ -1,7 +1,17 @@
<script lang='ts' setup></script>
<script lang='ts' setup>
import type { ComponentInstance } from "vue";
const vm = getCurrentInstance()!;
function changeRef(exposed: any) {
vm.exposed = exposed;
}
defineExpose({} as ComponentInstance<typeof IonAvatar>);
</script>
<template>
<ion-avatar v-bind="$attrs">
<ion-avatar v-bind="$attrs" :ref="changeRef">
<img
src="https://api.iconify.design/material-icon-theme:drizzle.svg"
alt="Avatar"
@@ -11,7 +21,8 @@
<style lang='css' scoped>
ion-avatar {
--padding: 10px;
background-color: #e7f6e1;
padding: 10px;
padding: var(--padding);
}
</style>

View File

@@ -73,10 +73,10 @@ onBeforeMount(() => {
<ion-refresher-content />
</ion-refresher>
<ui-tabs size="small" class="mb-3">
<!-- <ui-tabs size="small" class="mb-3">
<ui-tab-pane name="all" title="数字化产品" />
<ui-tab-pane name="stocks" title="代币化产品" />
</ui-tabs>
</ui-tabs> -->
<Category v-model="query!.categoryId" />
<RwaList :data="rwaData" />

View File

@@ -0,0 +1,17 @@
<script lang='ts' setup>
import { client, safeClient } from "@/api";
const { data } = safeClient(client.api.rwa.subscription.available_editions.get({
query: {
limit: 4,
},
}));
</script>
<template>
<div>
{{ data }}
</div>
</template>
<style lang='css' scoped></style>

View File

@@ -1,29 +1,23 @@
<script setup lang="ts">
const tradingViewContainer = useTemplateRef<HTMLElement>("tradingViewContainer");
useTradingView(tradingViewContainer, {
data: [
// 随机k线图数据
{ time: "2023-10-01", open: 100, high: 110, low: 90, close: 105 },
{ time: "2023-10-02", open: 105, high: 115, low: 95, close: 100 },
{ time: "2023-10-03", open: 100, high: 120, low: 80, close: 110 },
{ time: "2023-10-04", open: 110, high: 130, low: 100, close: 120 },
{ time: "2023-10-05", open: 120, high: 140, low: 110, close: 130 },
{ time: "2023-10-06", open: 130, high: 150, low: 120, close: 140 },
{ time: "2023-10-07", open: 140, high: 160, low: 130, close: 150 },
],
});
import IcOutlineMenu from "~icons/ic/outline-menu";
import Rwa from "./components/rwa.vue";
</script>
<template>
<IonPage>
<IonHeader>
<IonToolbar class="ui-toolbar">
<IonTitle>Home</IonTitle>
</IonToolbar>
</IonHeader>
<IonContent :fullscreen="true">
<div ref="tradingViewContainer" />
</IonContent>
</IonPage>
<ion-page>
<ion-header class="ion-no-border">
<ion-toolbar class="ui-toolbar">
<ion-button slot="start" fill="clear">
<IcOutlineMenu slot="icon-only" />
</ion-button>
<ion-button slot="end" fill="clear">
<!-- <ui-avatar slot="icon-only" class="w-10 h-10" style="--padding: 8px" /> -->
</ion-button>
<ion-title>首页</ion-title>
</ion-toolbar>
</ion-header>
<ion-content :fullscreen="true">
<Rwa />
</ion-content>
</ion-page>
</template>

View File

@@ -1,8 +1,20 @@
<script setup lang="ts">
import { cartOutline } from "ionicons/icons";
import OperationWrapper from "./components/operation-wrapper.vue";
const { t } = useI18n();
const tradingViewContainer = useTemplateRef<HTMLElement>("tradingViewContainer");
useTradingView(tradingViewContainer, {
data: [
// 随机k线图数据
{ time: "2023-10-01", open: 100, high: 110, low: 90, close: 105 },
{ time: "2023-10-02", open: 105, high: 115, low: 95, close: 100 },
{ time: "2023-10-03", open: 100, high: 120, low: 80, close: 110 },
{ time: "2023-10-04", open: 110, high: 130, low: 100, close: 120 },
{ time: "2023-10-05", open: 120, high: 140, low: 110, close: 130 },
{ time: "2023-10-06", open: 130, high: 150, low: 120, close: 140 },
{ time: "2023-10-07", open: 140, high: 160, low: 130, close: 150 },
],
});
</script>
<template>
@@ -13,7 +25,7 @@ const { t } = useI18n();
</ion-toolbar>
</ion-header>
<ion-content :fullscreen="true">
<!-- <OperationWrapper v-model="current" /> -->
<div ref="tradingViewContainer" />
</ion-content>
</ion-page>
</template>