diff --git a/static/style.css b/static/style.css index 5b59de4..25890a0 100644 --- a/static/style.css +++ b/static/style.css @@ -799,6 +799,144 @@ a:hover { color: var(--text-primary); } +/* ================================ + 设计建议列表 + ================================ */ +.recommendations-section { + margin-top: var(--space-6); + padding-top: var(--space-6); + border-top: 1px solid var(--border-light); +} + +.recommendations-section h5 { + font-size: var(--text-base); + font-weight: var(--font-semibold); + color: var(--text-primary); + margin-bottom: var(--space-4); +} + +.recommendations-list { + display: flex; + flex-direction: column; + gap: var(--space-3); +} + +.recommendation-item { + display: flex; + align-items: flex-start; + gap: var(--space-3); + padding: var(--space-3); + background: var(--bg-secondary); + border-radius: var(--radius-lg); + border-left: 4px solid var(--gray-300); + transition: all var(--duration-fast) var(--ease-default); +} + +.recommendation-item:hover { + background: var(--gray-50); + transform: translateX(2px); +} + +.recommendation-item.critical { + border-left-color: var(--red-500); + background: linear-gradient(90deg, var(--red-50), transparent); +} + +.recommendation-item.high { + border-left-color: var(--orange-500); + background: linear-gradient(90deg, var(--orange-50), transparent); +} + +.recommendation-item.medium { + border-left-color: var(--blue-500); + background: linear-gradient(90deg, var(--blue-50), transparent); +} + +.recommendation-item.low { + border-left-color: var(--green-500); + background: linear-gradient(90deg, var(--green-50), transparent); +} + +.priority-badge { + display: inline-flex; + align-items: center; + padding: var(--space-1) var(--space-2); + font-size: var(--text-xs); + font-weight: var(--font-semibold); + border-radius: var(--radius-full); + white-space: nowrap; + flex-shrink: 0; +} + +.priority-badge.critical { + background: var(--red-500); + color: white; +} + +.priority-badge.high { + background: var(--orange-500); + color: white; +} + +.priority-badge.medium { + background: var(--blue-500); + color: white; +} + +.priority-badge.low { + background: var(--green-500); + color: white; +} + +.recommendation-text { + flex: 1; + font-size: var(--text-sm); + color: var(--text-primary); + line-height: 1.5; +} + +.recommendation-reason { + font-size: var(--text-xs); + color: var(--text-tertiary); + font-style: italic; +} + +/* ================================ + 分析摘要 + ================================ */ +.analysis-summary { + background: linear-gradient(135deg, var(--blue-50), var(--purple-50)); + border: 1px solid var(--border-light); + border-radius: var(--radius-xl); + padding: var(--space-6); + margin-bottom: var(--space-6); + box-shadow: var(--shadow-sm); +} + +.summary-header { + display: flex; + align-items: center; + gap: var(--space-3); + margin-bottom: var(--space-3); +} + +.summary-header h4 { + font-size: var(--text-lg); + font-weight: var(--font-semibold); + color: var(--text-primary); + margin: 0; +} + +.summary-icon { + font-size: var(--text-xl); +} + +.summary-content { + font-size: var(--text-base); + color: var(--text-secondary); + line-height: 1.6; +} + /* ================================ 数据表格 ================================ */ diff --git a/static/vue-app.js b/static/vue-app.js index b3ee54e..db2444a 100644 --- a/static/vue-app.js +++ b/static/vue-app.js @@ -172,6 +172,16 @@ const App = { initAuth(); }); + const getPriorityText = (priority) => { + const priorityMap = { + 'critical': '紧急', + 'high': '高', + 'medium': '中', + 'low': '低' + }; + return priorityMap[priority] || priority; + }; + return { route, router, @@ -179,6 +189,7 @@ const App = { menuItems, isActive, handleLogout, + getPriorityText, dismissNotification: (id) => { const index = appState.notifications.findIndex(n => n.id === id); if (index > -1) { @@ -1104,6 +1115,17 @@ const ResultView = {