style: 全局 UI 主题皮肤重构与样式模块化
引入 Element Plus 主题定制和主题皮肤 composable,将全局 样式拆分为组件级独立 CSS 文件(侧边栏、顶栏、工作台等), 统一色彩变量和间距规范,重构所有视图和组件样式以适配新 主题系统,优化图表和知识图谱组件视觉表现,提取审计和差 旅报销相关子组件。
This commit is contained in:
@@ -0,0 +1,469 @@
|
||||
.message-row {
|
||||
display: grid;
|
||||
grid-template-columns: 38px minmax(0, 1fr);
|
||||
align-items: start;
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
.message-row.user {
|
||||
grid-template-columns: minmax(0, 1fr) 38px;
|
||||
}
|
||||
|
||||
.message-row.user .message-avatar {
|
||||
order: 2;
|
||||
}
|
||||
|
||||
.message-row.user .message-bubble {
|
||||
order: 1;
|
||||
justify-self: end;
|
||||
background: linear-gradient(135deg, #eaf3ff, #f7fbff);
|
||||
border-color: rgba(96, 165, 250, 0.3);
|
||||
}
|
||||
|
||||
.message-avatar {
|
||||
width: 38px;
|
||||
height: 38px;
|
||||
display: grid;
|
||||
place-items: center;
|
||||
border-radius: 999px;
|
||||
overflow: hidden;
|
||||
background: #eff6ff;
|
||||
box-shadow: 0 8px 18px rgba(148, 163, 184, 0.22);
|
||||
}
|
||||
|
||||
.message-avatar img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: block;
|
||||
object-fit: cover;
|
||||
}
|
||||
|
||||
.message-bubble {
|
||||
max-width: min(100%, 760px);
|
||||
padding: 12px 14px;
|
||||
border: 1px solid #d8e4f0;
|
||||
border-radius: 14px;
|
||||
background: #ffffff;
|
||||
color: #24324a;
|
||||
font-size: var(--wb-fs-bubble, 13px);
|
||||
line-height: 1.62;
|
||||
box-shadow: 0 10px 22px rgba(148, 163, 184, 0.14);
|
||||
}
|
||||
|
||||
.message-bubble-application-preview {
|
||||
max-width: min(100%, 980px);
|
||||
}
|
||||
|
||||
.message-bubble-review-risk-low,
|
||||
.message-bubble-review-risk-medium,
|
||||
.message-bubble-review-risk-high {
|
||||
background: #ffffff;
|
||||
}
|
||||
|
||||
.message-bubble-review-risk-low {
|
||||
border-color: rgba(37, 99, 235, 0.56);
|
||||
}
|
||||
|
||||
.message-bubble-review-risk-medium {
|
||||
border-color: rgba(217, 119, 6, 0.58);
|
||||
}
|
||||
|
||||
.message-bubble-review-risk-high {
|
||||
border-color: rgba(220, 38, 38, 0.58);
|
||||
}
|
||||
|
||||
.message-meta {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 12px;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.message-meta strong {
|
||||
color: #0f172a;
|
||||
font-size: var(--wb-fs-bubble-meta, 12px);
|
||||
font-weight: 800;
|
||||
}
|
||||
|
||||
.message-meta time {
|
||||
color: #64748b;
|
||||
font-size: var(--wb-fs-bubble-time, 11px);
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.message-answer-content {
|
||||
color: #24324a;
|
||||
}
|
||||
|
||||
.message-answer-markdown :deep(p),
|
||||
.message-answer-markdown :deep(li),
|
||||
.message-answer-markdown :deep(td),
|
||||
.message-answer-markdown :deep(th),
|
||||
.message-answer-markdown :deep(blockquote) {
|
||||
margin: 0;
|
||||
color: inherit;
|
||||
line-height: 1.62;
|
||||
}
|
||||
|
||||
.message-answer-markdown :deep(p + p),
|
||||
.message-answer-markdown :deep(p + ul),
|
||||
.message-answer-markdown :deep(ul + p),
|
||||
.message-answer-markdown :deep(ol + p) {
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
.message-answer-markdown :deep(strong) {
|
||||
color: #0f172a;
|
||||
font-weight: 850;
|
||||
}
|
||||
|
||||
.welcome-quick-actions {
|
||||
margin-top: 14px;
|
||||
padding-top: 12px;
|
||||
border-top: 1px solid #e2e8f0;
|
||||
}
|
||||
|
||||
.welcome-quick-actions-title {
|
||||
margin: 0 0 12px;
|
||||
color: #64748b;
|
||||
font-size: var(--wb-fs-chip, 12px);
|
||||
font-weight: 750;
|
||||
}
|
||||
|
||||
.welcome-quick-action-grid,
|
||||
.message-suggested-actions,
|
||||
.message-detail-chip-row,
|
||||
.message-files {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.welcome-quick-action-btn,
|
||||
.message-suggested-action-btn,
|
||||
.review-footer-btn,
|
||||
.expense-query-record-card,
|
||||
.expense-query-risk-chip {
|
||||
border: 1px solid #cbd5e1;
|
||||
background: #ffffff;
|
||||
color: #334155;
|
||||
font: inherit;
|
||||
}
|
||||
|
||||
.welcome-quick-action-btn,
|
||||
.review-footer-btn {
|
||||
min-height: 32px;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
padding: 0 12px;
|
||||
border-radius: 8px;
|
||||
font-size: var(--wb-fs-chip, 12px);
|
||||
font-weight: 750;
|
||||
}
|
||||
|
||||
.welcome-quick-action-btn i {
|
||||
color: var(--theme-primary, #3a7ca5);
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
.welcome-quick-action-btn:hover:not(:disabled),
|
||||
.message-suggested-action-btn:hover:not(:disabled),
|
||||
.review-footer-btn:hover:not(:disabled) {
|
||||
border-color: rgba(var(--theme-primary-rgb, 58, 124, 165), 0.55);
|
||||
background: var(--theme-primary-soft, #eaf4fa);
|
||||
color: var(--theme-primary-active, #2f6d95);
|
||||
}
|
||||
|
||||
.message-meta-row {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 6px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.message-meta-chip,
|
||||
.message-risk-chip,
|
||||
.file-chip {
|
||||
min-height: 26px;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 5px;
|
||||
padding: 0 9px;
|
||||
border-radius: 999px;
|
||||
background: #eff6ff;
|
||||
color: #2563eb;
|
||||
font-size: 11px;
|
||||
font-weight: 750;
|
||||
}
|
||||
|
||||
.message-suggested-actions {
|
||||
margin-top: 12px;
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
|
||||
}
|
||||
|
||||
.message-suggested-action-btn {
|
||||
min-height: 54px;
|
||||
display: grid;
|
||||
grid-template-columns: 30px minmax(0, 1fr) auto;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
padding: 10px 12px;
|
||||
border-radius: 10px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.message-suggested-action-icon {
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
display: grid;
|
||||
place-items: center;
|
||||
border-radius: 8px;
|
||||
background: #eff6ff;
|
||||
color: var(--theme-primary, #3a7ca5);
|
||||
}
|
||||
|
||||
.message-suggested-action-copy {
|
||||
display: grid;
|
||||
gap: 3px;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.message-suggested-action-title {
|
||||
color: #0f172a;
|
||||
font-size: 12px;
|
||||
font-weight: 800;
|
||||
}
|
||||
|
||||
.message-suggested-action-btn small {
|
||||
color: #64748b;
|
||||
font-size: 11px;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.message-detail-block,
|
||||
.application-preview-table,
|
||||
.draft-preview {
|
||||
margin-top: 12px;
|
||||
padding: 12px;
|
||||
border: 1px solid #e2e8f0;
|
||||
border-radius: 12px;
|
||||
background: #f8fbff;
|
||||
}
|
||||
|
||||
.message-detail-block > strong,
|
||||
.expense-query-block > strong {
|
||||
display: block;
|
||||
margin-bottom: 8px;
|
||||
color: #0f172a;
|
||||
font-size: 12px;
|
||||
font-weight: 850;
|
||||
}
|
||||
|
||||
.application-preview-table {
|
||||
display: grid;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.application-preview-row {
|
||||
display: grid;
|
||||
grid-template-columns: minmax(96px, 0.42fr) minmax(0, 1fr);
|
||||
min-height: 38px;
|
||||
border-top: 1px solid #e2e8f0;
|
||||
}
|
||||
|
||||
.application-preview-row:first-child {
|
||||
border-top: 0;
|
||||
}
|
||||
|
||||
.application-preview-row.head {
|
||||
background: #eff6ff;
|
||||
color: #334155;
|
||||
font-size: 12px;
|
||||
font-weight: 850;
|
||||
}
|
||||
|
||||
.application-preview-row > span {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
min-width: 0;
|
||||
padding: 8px 10px;
|
||||
}
|
||||
|
||||
.application-preview-label {
|
||||
color: #64748b;
|
||||
border-right: 1px solid #e2e8f0;
|
||||
}
|
||||
|
||||
.application-preview-value {
|
||||
color: #0f172a;
|
||||
font-weight: 750;
|
||||
}
|
||||
|
||||
.application-preview-input {
|
||||
width: 100%;
|
||||
min-height: 32px;
|
||||
border: 1px solid #cbd5e1;
|
||||
border-radius: 8px;
|
||||
background: #ffffff;
|
||||
color: #0f172a;
|
||||
}
|
||||
|
||||
.application-preview-edit-btn {
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
display: inline-grid;
|
||||
place-items: center;
|
||||
border: 1px solid #cbd5e1;
|
||||
border-radius: 8px;
|
||||
background: #ffffff;
|
||||
color: #2563eb;
|
||||
}
|
||||
|
||||
.expense-query-record-list,
|
||||
.message-citation-list {
|
||||
display: grid;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.expense-query-record-card {
|
||||
width: 100%;
|
||||
display: grid;
|
||||
grid-template-columns: minmax(0, 1fr) auto;
|
||||
gap: 10px;
|
||||
padding: 10px;
|
||||
border-radius: 10px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.expense-query-record-main {
|
||||
display: grid;
|
||||
gap: 6px;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.expense-query-record-top,
|
||||
.expense-query-record-meta,
|
||||
.expense-query-summary-row {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.expense-query-record-top strong {
|
||||
color: #0f172a;
|
||||
font-size: 12px;
|
||||
font-weight: 850;
|
||||
}
|
||||
|
||||
.expense-query-record-card p,
|
||||
.expense-query-record-meta span,
|
||||
.expense-query-window-label,
|
||||
.expense-query-hint {
|
||||
margin: 0;
|
||||
color: #64748b;
|
||||
font-size: 11px;
|
||||
line-height: 1.45;
|
||||
}
|
||||
|
||||
.expense-query-record-status,
|
||||
.expense-query-summary-chip {
|
||||
min-height: 22px;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
padding: 0 8px;
|
||||
border-radius: 999px;
|
||||
background: #eff6ff;
|
||||
color: #2563eb;
|
||||
font-size: 11px;
|
||||
font-weight: 800;
|
||||
}
|
||||
|
||||
.expense-query-empty {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
color: #64748b;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.review-plain-followup,
|
||||
.draft-preview {
|
||||
display: grid;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.review-plain-lead {
|
||||
margin: 0;
|
||||
color: #0f172a;
|
||||
font-size: 14px;
|
||||
font-weight: 850;
|
||||
}
|
||||
|
||||
.review-plain-summary,
|
||||
.review-plain-note {
|
||||
margin: 0;
|
||||
color: #64748b;
|
||||
font-size: 12px;
|
||||
line-height: 1.55;
|
||||
}
|
||||
|
||||
.review-plain-list {
|
||||
display: grid;
|
||||
gap: 6px;
|
||||
margin: 0;
|
||||
padding-left: 18px;
|
||||
color: #334155;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.review-footer-actions {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.review-footer-btn.primary {
|
||||
border-color: var(--theme-primary, #3a7ca5);
|
||||
background: var(--theme-primary, #3a7ca5);
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.draft-preview header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.draft-preview pre {
|
||||
margin: 0;
|
||||
overflow: auto;
|
||||
color: #334155;
|
||||
font-size: 12px;
|
||||
line-height: 1.5;
|
||||
white-space: pre-wrap;
|
||||
}
|
||||
|
||||
@media (max-width: 760px) {
|
||||
.message-row,
|
||||
.message-row.user {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
.message-avatar {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.message-row.user .message-bubble {
|
||||
justify-self: stretch;
|
||||
}
|
||||
|
||||
.message-bubble {
|
||||
max-width: 100%;
|
||||
border-radius: 12px;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user