feat: 更新 @riwa/api-types 依赖版本至 0.0.128,并优化关于页面和基础组件的展示逻辑

This commit is contained in:
2026-01-12 18:24:30 +07:00
parent 8c367f6c54
commit d48efd9449
5 changed files with 155 additions and 50 deletions

View File

@@ -35,7 +35,7 @@
"@elysiajs/eden": "^1.4.5",
"@ionic/vue": "^8.7.11",
"@ionic/vue-router": "^8.7.11",
"@riwa/api-types": "http://192.168.1.7:9527/api/riwa-eden-0.0.126.tgz",
"@riwa/api-types": "http://192.168.1.7:9527/api/riwa-eden-0.0.128.tgz",
"@tailwindcss/vite": "^4.1.18",
"@vee-validate/zod": "^4.15.1",
"@vueuse/core": "^14.1.0",

12
pnpm-lock.yaml generated
View File

@@ -69,8 +69,8 @@ importers:
specifier: ^8.7.11
version: 8.7.11(@stencil/core@4.39.0)(vue-router@4.6.3(vue@3.5.25(typescript@5.9.3)))(vue@3.5.25(typescript@5.9.3))
'@riwa/api-types':
specifier: http://192.168.1.7:9527/api/riwa-eden-0.0.126.tgz
version: '@riwa/eden@http://192.168.1.7:9527/api/riwa-eden-0.0.126.tgz(@elysiajs/eden@1.4.5(elysia@1.4.18(@sinclair/typebox@0.34.41)(exact-mirror@0.2.5(@sinclair/typebox@0.34.41))(file-type@21.1.1)(openapi-types@12.1.3)(typescript@5.9.3)))'
specifier: http://192.168.1.7:9527/api/riwa-eden-0.0.128.tgz
version: '@riwa/eden@http://192.168.1.7:9527/api/riwa-eden-0.0.128.tgz(@elysiajs/eden@1.4.5(elysia@1.4.18(@sinclair/typebox@0.34.41)(exact-mirror@0.2.5(@sinclair/typebox@0.34.41))(file-type@21.1.1)(openapi-types@12.1.3)(typescript@5.9.3)))'
'@tailwindcss/vite':
specifier: ^4.1.18
version: 4.1.18(vite@7.2.7(@types/node@24.10.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.2))
@@ -2804,9 +2804,9 @@ packages:
'@remirror/core-constants@3.0.0':
resolution: {integrity: sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg==}
'@riwa/eden@http://192.168.1.7:9527/api/riwa-eden-0.0.126.tgz':
resolution: {tarball: http://192.168.1.7:9527/api/riwa-eden-0.0.126.tgz}
version: 0.0.126
'@riwa/eden@http://192.168.1.7:9527/api/riwa-eden-0.0.128.tgz':
resolution: {tarball: http://192.168.1.7:9527/api/riwa-eden-0.0.128.tgz}
version: 0.0.128
peerDependencies:
'@elysiajs/eden': ^1.4.5
@@ -12161,7 +12161,7 @@ snapshots:
'@remirror/core-constants@3.0.0': {}
'@riwa/eden@http://192.168.1.7:9527/api/riwa-eden-0.0.126.tgz(@elysiajs/eden@1.4.5(elysia@1.4.18(@sinclair/typebox@0.34.41)(exact-mirror@0.2.5(@sinclair/typebox@0.34.41))(file-type@21.1.1)(openapi-types@12.1.3)(typescript@5.9.3)))':
'@riwa/eden@http://192.168.1.7:9527/api/riwa-eden-0.0.128.tgz(@elysiajs/eden@1.4.5(elysia@1.4.18(@sinclair/typebox@0.34.41)(exact-mirror@0.2.5(@sinclair/typebox@0.34.41))(file-type@21.1.1)(openapi-types@12.1.3)(typescript@5.9.3)))':
dependencies:
'@elysiajs/eden': 1.4.5(elysia@1.4.18(@sinclair/typebox@0.34.41)(exact-mirror@0.2.5(@sinclair/typebox@0.34.41))(file-type@21.1.1)(openapi-types@12.1.3)(typescript@5.9.3))

View File

@@ -4,12 +4,23 @@ import type { TradableData } from "@/api/types";
const props = defineProps<{
data: TradableData | null;
}>();
const { t } = useI18n();
</script>
<template>
<div class="mt-2">
<!-- document -->
<div>
<div>
<div class="font-semibold">
关于
</div>
<div class="text-xs mt-2">
{{ data?.product?.description || t('market.tradeRwa.noDescription') }}
</div>
</div>
<!-- document -->
<div class="mt-5">
<div class="font-semibold mb-4">
相关文档
</div>

View File

@@ -6,52 +6,140 @@ const props = defineProps<{
}>();
const { t } = useI18n();
const tradingViewInst = useTemplateRef<HTMLDivElement>("tradingViewInst");
useTradingView(tradingViewInst, {
type: "Area",
data: computed(() => [
{
time: "2024-01-01",
value: 1000,
},
{
time: "2024-02-01",
value: 1200,
},
{
time: "2024-03-01",
value: 900,
},
{
time: "2024-04-01",
value: 1400,
},
{
time: "2024-05-01",
value: 1300,
},
]),
weightChartOptions: {
height: 150,
rightPriceScale: {
visible: false,
},
leftPriceScale: {
visible: false,
},
},
});
</script>
<template>
<div class="mt-2">
<div>
<div ref="tradingViewInst" />
<div class="mt-5">
<div class="font-semibold">
关于
</div>
<div class="text-xs mt-2">
{{ data?.product?.description || t('market.tradeRwa.noDescription') }}
</div>
代币信息
</div>
<!-- Rwa fields -->
<ion-grid class="mt-5 text-sm space-y-5">
<ion-row>
<ion-col>
<div class="item">
<div class="label">
{{ t('market.tradeRwa.fields.productCode') }}
代币符号
</div>
<div>{{ data?.product?.code }}</div>
</ion-col>
<ion-col>
<div class="value">
{{ data?.assetCode }}
</div>
</div>
<div class="item">
<div class="label">
关联资产
</div>
<div class="value">
{{ data?.product?.name }}
</div>
</div>
<div class="item">
<div class="label">
总供应量
</div>
<div class="value">
{{ data?.totalSupply }}
</div>
</div>
<div class="item">
<div class="label">
市值
</div>
<div>${{ formatAmountWithUnit(data?.product?.estimatedValue) }}</div>
</ion-col>
</ion-row>
<ion-row>
<ion-col>
<div class="label">
链类型
<div class="value">
${{ data?.product?.estimatedValue }}
</div>
</div>
<div class="item">
<div class="label">
24小时成交量
</div>
<div class="value">
$500000
</div>
</div>
<div class="item">
<div class="label">
创建时间
</div>
<div class="value">
{{ useDateFormat(data?.createdAt, 'YYYY/MM/DD') }}
</div>
</div>
</div>
<div class="mt-5 space-y-4">
<div class="font-semibold">
市场数据
</div>
<div class="flex items-center gap-2">
<Icon icon="hugeicons:trade-up" class="text-success" />
<div class="text-sm">
价格变动
</div>
</div>
<div class="item">
<div class="label">
24小时
</div>
<div class="value">
+1.66%
</div>
</div>
<div class="item">
<div class="label">
7
</div>
<div class="value">
-5.98%
</div>
</div>
<div class="item">
<div class="label">
30
</div>
<div class="value">
-10.24%
</div>
</div>
<div>{{ data?.chainType }}</div>
</ion-col>
<ion-col>
<div class="label">
{{ t('market.tradeRwa.fields.totalSupply') }}
</div>
<div>{{ Number(data?.totalSupply) }}{{ t('market.tradeRwa.units.shares') }}</div>
</ion-col>
</ion-row>
</ion-grid>
<!-- Rwa status -->
<div class="mt-5">
<div class="font-semibold">
资产状态
@@ -69,4 +157,10 @@ const { t } = useI18n();
.label {
@apply text-(--ion-text-color-step-300) mb-1 text-sm;
}
.item {
@apply flex justify-between items-center mt-3;
}
.value {
@apply text-sm font-semibold;
}
</style>

View File

@@ -53,13 +53,13 @@ function gotoTrade(mode: TradeTypeEnum) {
</div>
<ui-tabs size="small" class="my-3">
<ui-tab-pane name="market" title="行情">
<Market :data="data" />
</ui-tab-pane>
<ui-tab-pane name="overview" :title="t('market.tradeRwa.tabs.overview')">
<ui-tab-pane name="overview" :title="t('market.tradeRwa.tabs.overview')" lazy>
<Base :data="data" />
</ui-tab-pane>
<ui-tab-pane name="about" title="相关文档">
<ui-tab-pane name="market" title="行情" lazy>
<Market :data="data" />
</ui-tab-pane>
<ui-tab-pane name="about" title="相关文档" lazy>
<About :data="data" />
</ui-tab-pane>
</ui-tabs>