feat: 清理示例数据并统一空态体验
This commit is contained in:
@@ -10,11 +10,9 @@
|
||||
</div>
|
||||
<div class="module-content unified-section section--flush">
|
||||
<div class="module-list">
|
||||
<div class="module-list-header">
|
||||
<span class="list-title">{{ listTitle }}</span>
|
||||
<span class="list-note">{{ TEXT.common.empty.listPlaceholder }}</span>
|
||||
<div class="module-placeholder-surface">
|
||||
<div class="module-placeholder-main">{{ emptyDescription || emptyTitle }}</div>
|
||||
</div>
|
||||
<StateEmpty :title="emptyTitle" :description="emptyDescription" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -22,7 +20,6 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import StateEmpty from "./StateEmpty.vue";
|
||||
import { TEXT } from "../locales";
|
||||
|
||||
withDefaults(
|
||||
@@ -69,21 +66,24 @@ withDefaults(
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.module-list-header {
|
||||
.module-placeholder-surface {
|
||||
min-height: 168px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 12px;
|
||||
justify-content: center;
|
||||
border-radius: 18px;
|
||||
padding: 24px;
|
||||
background:
|
||||
linear-gradient(180deg, rgba(246, 249, 253, 0.96), rgba(251, 253, 255, 0.98));
|
||||
}
|
||||
|
||||
.list-title {
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
color: var(--ctms-text-main);
|
||||
}
|
||||
|
||||
.list-note {
|
||||
font-size: 12px;
|
||||
color: var(--ctms-text-disabled);
|
||||
.module-placeholder-main {
|
||||
max-width: 560px;
|
||||
text-align: center;
|
||||
font-size: 18px;
|
||||
font-weight: 700;
|
||||
line-height: 1.6;
|
||||
letter-spacing: 0.01em;
|
||||
color: #243a5a;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<template>
|
||||
<section class="ctms-state state state-empty">
|
||||
<el-icon class="ctms-state-icon state-icon"><Document /></el-icon>
|
||||
<h3 class="ctms-state-title state-title">{{ title }}</h3>
|
||||
<p v-if="description" class="ctms-state-desc state-desc">{{ description }}</p>
|
||||
<el-icon v-if="false" class="ctms-state-icon state-icon"><Document /></el-icon>
|
||||
<h3 v-if="!description" class="ctms-state-title state-title">{{ title }}</h3>
|
||||
<p class="ctms-state-desc state-desc">{{ description || title }}</p>
|
||||
<div v-if="$slots.action" class="ctms-state-action state-action">
|
||||
<slot name="action" />
|
||||
</div>
|
||||
@@ -26,15 +26,33 @@ withDefaults(
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.state-empty {
|
||||
padding: 28px 12px;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.state-icon {
|
||||
color: var(--ctms-text-disabled);
|
||||
font-size: 18px;
|
||||
opacity: 0.35;
|
||||
}
|
||||
|
||||
.state-title {
|
||||
color: var(--ctms-text-regular);
|
||||
color: var(--ctms-text-secondary);
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
line-height: 1.4;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.state-desc {
|
||||
color: var(--ctms-text-secondary);
|
||||
color: #8a97ab;
|
||||
font-size: 14px;
|
||||
line-height: 1.6;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.state-action {
|
||||
margin-top: 4px;
|
||||
}
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user