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:
parent
cf4b358ded
commit
8c817120f8
1 changed files with 65 additions and 29 deletions
|
|
@ -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>
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue