style(HistoryDatabase): update modal layout and enhance user guidance

- Changed the title for the environment configuration status icon to "环境搭建" for clarity.
- Added a creation time display in the project detail modal for better context.
- Introduced a divider for the playback section to improve visual separation.
- Enhanced navigation buttons with step indicators for clearer user progression.
- Added a hint for playback limitations to inform users about simulation requirements.
- Updated CSS styles for new elements and improved overall modal aesthetics.
This commit is contained in:
666ghj 2026-01-09 17:34:25 +08:00
parent cf4b358ded
commit 8c817120f8

View file

@ -40,7 +40,7 @@
></span> ></span>
<span <span
class="status-icon available" class="status-icon available"
title="环境配置" title="环境搭建"
></span> ></span>
<span <span
class="status-icon" class="status-icon"
@ -117,6 +117,7 @@
<span class="modal-progress" :class="getProgressClass(selectedProject)"> <span class="modal-progress" :class="getProgressClass(selectedProject)">
<span class="status-dot"></span> {{ formatRounds(selectedProject) }} <span class="status-dot"></span> {{ formatRounds(selectedProject) }}
</span> </span>
<span class="modal-create-time">{{ formatDate(selectedProject.created_at) }} {{ formatTime(selectedProject.created_at) }}</span>
</div> </div>
<button class="modal-close" @click="closeModal">×</button> <button class="modal-close" @click="closeModal">×</button>
</div> </div>
@ -140,14 +141,13 @@
</div> </div>
<div class="modal-empty" v-else>暂无关联文件</div> <div class="modal-empty" v-else>暂无关联文件</div>
</div> </div>
</div>
<!-- 时间信息 --> <!-- 推演回放分割线 -->
<div class="modal-section modal-time-section"> <div class="modal-divider">
<div class="modal-time-item"> <span class="divider-line"></span>
<span class="modal-time-label">创建时间</span> <span class="divider-text">推演回放</span>
<span class="modal-time-value">{{ formatDate(selectedProject.created_at) }} {{ formatTime(selectedProject.created_at) }}</span> <span class="divider-line"></span>
</div>
</div>
</div> </div>
<!-- 导航按钮 --> <!-- 导航按钮 -->
@ -157,6 +157,7 @@
@click="goToProject" @click="goToProject"
:disabled="!selectedProject.project_id" :disabled="!selectedProject.project_id"
> >
<span class="btn-step">Step1</span>
<span class="btn-icon"></span> <span class="btn-icon"></span>
<span class="btn-text">图谱构建</span> <span class="btn-text">图谱构建</span>
</button> </button>
@ -164,18 +165,24 @@
class="modal-btn btn-simulation" class="modal-btn btn-simulation"
@click="goToSimulation" @click="goToSimulation"
> >
<span class="btn-step">Step2</span>
<span class="btn-icon"></span> <span class="btn-icon"></span>
<span class="btn-text">环境配置</span> <span class="btn-text">环境搭建</span>
</button> </button>
<button <button
class="modal-btn btn-report" class="modal-btn btn-report"
@click="goToReport" @click="goToReport"
:disabled="!selectedProject.report_id" :disabled="!selectedProject.report_id"
> >
<span class="btn-step">Step4</span>
<span class="btn-icon"></span> <span class="btn-icon"></span>
<span class="btn-text">分析报告</span> <span class="btn-text">分析报告</span>
</button> </button>
</div> </div>
<!-- 不可回放提示 -->
<div class="modal-playback-hint">
<span class="hint-text">Step3开始模拟 Step5深度互动需在运行中启动不支持历史回放</span>
</div>
</div> </div>
</div> </div>
</Transition> </Transition>
@ -715,7 +722,7 @@ onUnmounted(() => {
/* 不同功能的颜色 */ /* 不同功能的颜色 */
.status-icon:nth-child(1).available { color: #3B82F6; } /* 图谱构建 - 蓝色 */ .status-icon:nth-child(1).available { color: #3B82F6; } /* 图谱构建 - 蓝色 */
.status-icon:nth-child(2).available { color: #F59E0B; } /* 环境配置 - 橙色 */ .status-icon:nth-child(2).available { color: #F59E0B; } /* 环境搭建 - 橙色 */
.status-icon:nth-child(3).available { color: #10B981; } /* 分析报告 - 绿色 */ .status-icon:nth-child(3).available { color: #10B981; } /* 分析报告 - 绿色 */
.status-icon.unavailable { .status-icon.unavailable {
@ -1099,6 +1106,13 @@ onUnmounted(() => {
.modal-progress.in-progress { color: #F59E0B; background: rgba(245, 158, 11, 0.1); } .modal-progress.in-progress { color: #F59E0B; background: rgba(245, 158, 11, 0.1); }
.modal-progress.not-started { color: #9CA3AF; background: #F3F4F6; } .modal-progress.not-started { color: #9CA3AF; background: #F3F4F6; }
.modal-create-time {
font-family: 'JetBrains Mono', monospace;
font-size: 0.75rem;
color: #9CA3AF;
letter-spacing: 0.3px;
}
.modal-close { .modal-close {
width: 32px; width: 32px;
height: 32px; height: 32px;
@ -1215,40 +1229,35 @@ onUnmounted(() => {
text-align: center; text-align: center;
} }
.modal-time-section { /* 推演回放分割线 */
.modal-divider {
display: flex; display: flex;
gap: 32px; align-items: center;
padding-top: 16px; gap: 16px;
border-top: 1px solid #F3F4F6; padding: 10px 32px 0;
background: #FFFFFF;
} }
.modal-time-item { .divider-line {
display: flex; flex: 1;
flex-direction: column; height: 1px;
gap: 6px; background: linear-gradient(90deg, transparent, #E5E7EB, transparent);
} }
.modal-time-label { .divider-text {
font-family: 'JetBrains Mono', monospace; font-family: 'JetBrains Mono', monospace;
font-size: 0.7rem; font-size: 0.7rem;
color: #9CA3AF; color: #9CA3AF;
letter-spacing: 2px;
text-transform: uppercase; text-transform: uppercase;
letter-spacing: 0.5px; white-space: nowrap;
}
.modal-time-value {
font-family: 'JetBrains Mono', monospace;
font-size: 0.85rem;
color: #374151;
font-weight: 500;
} }
/* 导航按钮 */ /* 导航按钮 */
.modal-actions { .modal-actions {
display: flex; display: flex;
gap: 16px; gap: 16px;
padding: 24px 32px; padding: 20px 32px;
border-top: 1px solid #F3F4F6;
background: #FFFFFF; background: #FFFFFF;
} }
@ -1280,6 +1289,15 @@ onUnmounted(() => {
background: #F9FAFB; background: #F9FAFB;
} }
.btn-step {
font-family: 'JetBrains Mono', monospace;
font-size: 0.6rem;
font-weight: 500;
color: #9CA3AF;
letter-spacing: 0.5px;
text-transform: uppercase;
}
.btn-icon { .btn-icon {
font-size: 1.4rem; font-size: 1.4rem;
line-height: 1; line-height: 1;
@ -1301,4 +1319,22 @@ onUnmounted(() => {
.modal-btn:hover:not(:disabled) .btn-text { .modal-btn:hover:not(:disabled) .btn-text {
color: #111827; color: #111827;
} }
/* 不可回放提示 */
.modal-playback-hint {
display: flex;
align-items: center;
justify-content: center;
padding: 0 32px 20px;
background: #FFFFFF;
}
.hint-text {
font-family: 'JetBrains Mono', monospace;
font-size: 0.7rem;
color: #9CA3AF;
letter-spacing: 0.3px;
text-align: center;
line-height: 1.5;
}
</style> </style>