feat: 添加空状态组件,优化数据为空时的展示效果

This commit is contained in:
2026-01-09 01:18:46 +07:00
parent 08186fa752
commit e7970a84fa
4 changed files with 85 additions and 72 deletions

View File

@@ -1,6 +1,7 @@
<script lang='ts' setup> <script lang='ts' setup>
import type { RwaData } from "@/api/types"; import type { RwaData } from "@/api/types";
import CryptocurrencyColorNuls from "~icons/cryptocurrency-color/nuls"; import CryptocurrencyColorNuls from "~icons/cryptocurrency-color/nuls";
import ui from "@/ui";
defineProps<{ defineProps<{
data: RwaData[]; data: RwaData[];
@@ -38,6 +39,10 @@ function gotoTradeRwa(id: string) {
</ion-col> </ion-col>
</ion-row> </ion-row>
</ion-grid> </ion-grid>
<template v-if="data.length === 0">
<ui-empty />
</template>
<template v-else>
<div v-for="item in data" :key="item.id" @click="gotoTradeRwa(item.id)"> <div v-for="item in data" :key="item.id" @click="gotoTradeRwa(item.id)">
<ion-grid> <ion-grid>
<ion-row class="ion-align-items-center my-5"> <ion-row class="ion-align-items-center my-5">
@@ -79,6 +84,7 @@ function gotoTradeRwa(id: string) {
</ion-row> </ion-row>
</ion-grid> </ion-grid>
</div> </div>
</template>
</div> </div>
</template> </template>

View File

@@ -58,11 +58,9 @@ onMounted(() => {
<ion-spinner /> <ion-spinner />
</div> </div>
<div v-else-if="holdingsData.length === 0" class="flex flex-col justify-center items-center h-64"> <template v-else-if="holdingsData.length === 0">
<div class="text-text-500"> <ui-empty />
{{ t('holdings.empty') }} </template>
</div>
</div>
<div v-else class="space-y-3"> <div v-else class="space-y-3">
<div <div

View File

@@ -32,6 +32,10 @@ function gotoTokenized(id: string) {
</ion-col> </ion-col>
</ion-row> </ion-row>
</ion-grid> </ion-grid>
<template v-if="data.length === 0">
<ui-empty />
</template>
<template v-else>
<div v-for="item in data" :key="item.id" @click="gotoTokenized(item.id)"> <div v-for="item in data" :key="item.id" @click="gotoTokenized(item.id)">
<ion-grid> <ion-grid>
<ion-row class="ion-align-items-center my-5"> <ion-row class="ion-align-items-center my-5">
@@ -67,6 +71,7 @@ function gotoTokenized(id: string) {
</ion-row> </ion-row>
</ion-grid> </ion-grid>
</div> </div>
</template>
</div> </div>
</template> </template>

View File

@@ -21,7 +21,11 @@ function openNewsDetail(item: NewData) {
动态新闻 动态新闻
</div> </div>
<div class="space-y-3"> <template v-if="data?.data.length === 0">
<ui-empty />
</template>
<div v-else class="space-y-3">
<div <div
v-for="item in data?.data" v-for="item in data?.data"
:key="item.id" :key="item.id"