feat: 添加 IonSegment 和 IonSegmentButton 组件支持,更新 api-types 依赖版本,优化钱包状态获取逻辑

This commit is contained in:
2025-12-24 01:20:24 +07:00
parent 80bdb0f997
commit 57e346df3f
6 changed files with 39 additions and 15 deletions

4
components.d.ts vendored
View File

@@ -45,6 +45,8 @@ declare module 'vue' {
IonRouterOutlet: typeof import('@ionic/vue')['IonRouterOutlet'] IonRouterOutlet: typeof import('@ionic/vue')['IonRouterOutlet']
IonRow: typeof import('@ionic/vue')['IonRow'] IonRow: typeof import('@ionic/vue')['IonRow']
IonSearchbar: typeof import('@ionic/vue')['IonSearchbar'] IonSearchbar: typeof import('@ionic/vue')['IonSearchbar']
IonSegment: typeof import('@ionic/vue')['IonSegment']
IonSegmentButton: typeof import('@ionic/vue')['IonSegmentButton']
IonSelect: typeof import('@ionic/vue')['IonSelect'] IonSelect: typeof import('@ionic/vue')['IonSelect']
IonSelectOption: typeof import('@ionic/vue')['IonSelectOption'] IonSelectOption: typeof import('@ionic/vue')['IonSelectOption']
IonTabBar: typeof import('@ionic/vue')['IonTabBar'] IonTabBar: typeof import('@ionic/vue')['IonTabBar']
@@ -96,6 +98,8 @@ declare global {
const IonRouterOutlet: typeof import('@ionic/vue')['IonRouterOutlet'] const IonRouterOutlet: typeof import('@ionic/vue')['IonRouterOutlet']
const IonRow: typeof import('@ionic/vue')['IonRow'] const IonRow: typeof import('@ionic/vue')['IonRow']
const IonSearchbar: typeof import('@ionic/vue')['IonSearchbar'] const IonSearchbar: typeof import('@ionic/vue')['IonSearchbar']
const IonSegment: typeof import('@ionic/vue')['IonSegment']
const IonSegmentButton: typeof import('@ionic/vue')['IonSegmentButton']
const IonSelect: typeof import('@ionic/vue')['IonSelect'] const IonSelect: typeof import('@ionic/vue')['IonSelect']
const IonSelectOption: typeof import('@ionic/vue')['IonSelectOption'] const IonSelectOption: typeof import('@ionic/vue')['IonSelectOption']
const IonTabBar: typeof import('@ionic/vue')['IonTabBar'] const IonTabBar: typeof import('@ionic/vue')['IonTabBar']

View File

@@ -32,7 +32,7 @@
"@elysiajs/eden": "^1.4.5", "@elysiajs/eden": "^1.4.5",
"@ionic/vue": "^8.7.11", "@ionic/vue": "^8.7.11",
"@ionic/vue-router": "^8.7.11", "@ionic/vue-router": "^8.7.11",
"@riwa/api-types": "http://192.168.1.27:9527/api/riwa-api-types-0.0.59.tgz", "@riwa/api-types": "http://192.168.1.27:9527/api/riwa-api-types-0.0.61.tgz",
"@tailwindcss/vite": "^4.1.18", "@tailwindcss/vite": "^4.1.18",
"@vee-validate/yup": "^4.15.1", "@vee-validate/yup": "^4.15.1",
"@vueuse/core": "^14.1.0", "@vueuse/core": "^14.1.0",
@@ -56,7 +56,9 @@
"@iconify-json/circle-flags": "^1.2.10", "@iconify-json/circle-flags": "^1.2.10",
"@iconify-json/cryptocurrency-color": "^1.2.4", "@iconify-json/cryptocurrency-color": "^1.2.4",
"@iconify-json/ic": "^1.2.4", "@iconify-json/ic": "^1.2.4",
"@iconify-json/icon-park-outline": "^1.2.4",
"@iconify-json/material-icon-theme": "^1.2.44", "@iconify-json/material-icon-theme": "^1.2.44",
"@iconify-json/material-symbols": "^1.2.50",
"@iconify-json/tdesign": "^1.2.11", "@iconify-json/tdesign": "^1.2.11",
"@iconify/vue": "^5.0.0", "@iconify/vue": "^5.0.0",
"@ionic/cli": "^7.2.1", "@ionic/cli": "^7.2.1",

32
pnpm-lock.yaml generated
View File

@@ -54,8 +54,8 @@ importers:
specifier: ^8.7.11 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)) 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': '@riwa/api-types':
specifier: http://192.168.1.27:9527/api/riwa-api-types-0.0.59.tgz specifier: http://192.168.1.27:9527/api/riwa-api-types-0.0.61.tgz
version: http://192.168.1.27:9527/api/riwa-api-types-0.0.59.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))) version: http://192.168.1.27:9527/api/riwa-api-types-0.0.61.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': '@tailwindcss/vite':
specifier: ^4.1.18 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)) 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))
@@ -120,9 +120,15 @@ importers:
'@iconify-json/ic': '@iconify-json/ic':
specifier: ^1.2.4 specifier: ^1.2.4
version: 1.2.4 version: 1.2.4
'@iconify-json/icon-park-outline':
specifier: ^1.2.4
version: 1.2.4
'@iconify-json/material-icon-theme': '@iconify-json/material-icon-theme':
specifier: ^1.2.44 specifier: ^1.2.44
version: 1.2.44 version: 1.2.44
'@iconify-json/material-symbols':
specifier: ^1.2.50
version: 1.2.50
'@iconify-json/tdesign': '@iconify-json/tdesign':
specifier: ^1.2.11 specifier: ^1.2.11
version: 1.2.11 version: 1.2.11
@@ -1187,9 +1193,15 @@ packages:
'@iconify-json/ic@1.2.4': '@iconify-json/ic@1.2.4':
resolution: {integrity: sha512-pzPMmrZrBQuwT7nmtrYdkttun8KalRGgZPIL1Ny9KpF2zjRGIUPN+npTfuD3lrgO/OnSwAoJWuekQwBpt/Cqrw==} resolution: {integrity: sha512-pzPMmrZrBQuwT7nmtrYdkttun8KalRGgZPIL1Ny9KpF2zjRGIUPN+npTfuD3lrgO/OnSwAoJWuekQwBpt/Cqrw==}
'@iconify-json/icon-park-outline@1.2.4':
resolution: {integrity: sha512-NyZxXe2gD2TbTOyoRRMdtEJhr6i2KQCdDlYYoOn5oZLndQjwpIhw79hzeFhXvP38/o40D3gQ+l+IaSJgbB+0TQ==}
'@iconify-json/material-icon-theme@1.2.44': '@iconify-json/material-icon-theme@1.2.44':
resolution: {integrity: sha512-fw6hluIUX2rudZucEBevvKHHnR7GQOyjHHXUXRJsv8KmdHqxsV7JPPUlNnVO/eAELuXjM+UgtuAeRE9WlCPHog==} resolution: {integrity: sha512-fw6hluIUX2rudZucEBevvKHHnR7GQOyjHHXUXRJsv8KmdHqxsV7JPPUlNnVO/eAELuXjM+UgtuAeRE9WlCPHog==}
'@iconify-json/material-symbols@1.2.50':
resolution: {integrity: sha512-71tjHR70h46LHtBFab3fAd2V/wPTO7JMV5lKnRn3IcF303LaFgAlO0BZeTJDcmCv9d0snRZmnoLZAJVD7/eisw==}
'@iconify-json/tdesign@1.2.11': '@iconify-json/tdesign@1.2.11':
resolution: {integrity: sha512-bhIDvRGFve+n8Q06PHeviW5X9pRpXzc/STus+Eq7A6HusaAYPzoti/Bp92Wzq/y6ZLe3Z5LC+6YbUMR1Jerg6Q==} resolution: {integrity: sha512-bhIDvRGFve+n8Q06PHeviW5X9pRpXzc/STus+Eq7A6HusaAYPzoti/Bp92Wzq/y6ZLe3Z5LC+6YbUMR1Jerg6Q==}
@@ -1354,9 +1366,9 @@ packages:
resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==} resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==}
engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
'@riwa/api-types@http://192.168.1.27:9527/api/riwa-api-types-0.0.59.tgz': '@riwa/api-types@http://192.168.1.27:9527/api/riwa-api-types-0.0.61.tgz':
resolution: {tarball: http://192.168.1.27:9527/api/riwa-api-types-0.0.59.tgz} resolution: {tarball: http://192.168.1.27:9527/api/riwa-api-types-0.0.61.tgz}
version: 0.0.59 version: 0.0.61
peerDependencies: peerDependencies:
'@elysiajs/eden': ^1.4.5 '@elysiajs/eden': ^1.4.5
@@ -6153,10 +6165,18 @@ snapshots:
dependencies: dependencies:
'@iconify/types': 2.0.0 '@iconify/types': 2.0.0
'@iconify-json/icon-park-outline@1.2.4':
dependencies:
'@iconify/types': 2.0.0
'@iconify-json/material-icon-theme@1.2.44': '@iconify-json/material-icon-theme@1.2.44':
dependencies: dependencies:
'@iconify/types': 2.0.0 '@iconify/types': 2.0.0
'@iconify-json/material-symbols@1.2.50':
dependencies:
'@iconify/types': 2.0.0
'@iconify-json/tdesign@1.2.11': '@iconify-json/tdesign@1.2.11':
dependencies: dependencies:
'@iconify/types': 2.0.0 '@iconify/types': 2.0.0
@@ -6453,7 +6473,7 @@ snapshots:
'@pkgr/core@0.2.9': {} '@pkgr/core@0.2.9': {}
'@riwa/api-types@http://192.168.1.27:9527/api/riwa-api-types-0.0.59.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/api-types@http://192.168.1.27:9527/api/riwa-api-types-0.0.61.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: 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)) '@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

@@ -26,7 +26,7 @@ export const useWalletStore = defineStore("wallet", () => {
state.balances = data; state.balances = data;
return; return;
} }
const { data: balances } = await safeClient(() => client.api.asset.balances.get(), { silent: true }); const { data: balances } = await safeClient(() => client.api.wallet.balances.get(), { silent: true });
state.balances = balances.value || []; state.balances = balances.value || [];
} }

View File

@@ -1,6 +1,6 @@
<script setup lang="ts"> <script setup lang="ts">
import IcBaselinePermContactCalendar from "~icons/ic/baseline-perm-contact-calendar"; import IconParkOutlineClearFormat from "~icons/icon-park-outline/clear-format";
import IcOutlineCleaningServices from "~icons/ic/outline-cleaning-services"; import MaterialSymbolsAndroidContacts from "~icons/material-symbols/android-contacts";
</script> </script>
<template> <template>
@@ -8,10 +8,10 @@ import IcOutlineCleaningServices from "~icons/ic/outline-cleaning-services";
<IonHeader class="ion-no-border"> <IonHeader class="ion-no-border">
<ion-toolbar class="ui-toolbar"> <ion-toolbar class="ui-toolbar">
<ion-button slot="start" fill="clear"> <ion-button slot="start" fill="clear">
<IcOutlineCleaningServices slot="icon-only" /> <IconParkOutlineClearFormat slot="icon-only" />
</ion-button> </ion-button>
<ion-button slot="end" fill="clear"> <ion-button slot="end" fill="clear">
<IcBaselinePermContactCalendar slot="icon-only" /> <MaterialSymbolsAndroidContacts slot="icon-only" />
</ion-button> </ion-button>
<ion-title>Chat</ion-title> <ion-title>Chat</ion-title>
</ion-toolbar> </ion-toolbar>

View File

@@ -3,9 +3,7 @@
<template> <template>
<IonPage> <IonPage>
<IonContent :fullscreen="true" class="ion-padding"> <ion-router-outlet />
<router-view />
</IonContent>
</IonPage> </IonPage>
</template> </template>