feat(ui): 优化控制台响应式布局与视觉体验
前端验证 / verify (push) Failing after 15m3s

- 统一页面标题、圆角、字体和响应式断点,调整暗色主题及图表配色
- 新增表格列标签插件,在窄屏下将表格转换为卡片布局,优化实例、订单、工单等列表展示
- 支持移动端点击订单行进入详情,并完善订单凭据的打印布局
- 在财务中心展示本月及累计消费,补充充值关闭时的提示
- 优化工单详情布局,将附件上传入口整合至富文本编辑器工具栏
- 调整实例操作按钮、SSH 密钥操作及安全菜单图标
- 为多个页面显式导入 definePageMeta,完善页面元数据声明
This commit is contained in:
cneicy committed 2026-11-07 00:09:57 +08:00
1 parent 5d080cacec
commit 42dfead9cd
145 files changed
+1762 -599

No files matched your search

+39 -19
View File
@@ -73,7 +73,7 @@
cursor: pointer;
background: 0 0;
border: 0;
border-radius: 6px;
border-radius: var(--radius-md);
align-items: center;
gap: 10.5px;
padding: 8.75px 14px;
@@ -145,7 +145,7 @@
}
.nav[data-v-1a9c3b51] .sub-item {
color: inherit;
border-radius: 6px;
border-radius: var(--radius-md);
padding: 8.75px 14px 8.75px 35px;
text-decoration: none;
display: block;
@@ -157,6 +157,24 @@
margin-left: 210px;
display: flex;
}
@media print {
.console-layout[data-v-1a9c3b51] {
background: #fff;
min-height: 0;
padding-top: 0;
}
.topbar[data-v-1a9c3b51],
.sidebar[data-v-1a9c3b51],
.nav-backdrop[data-v-1a9c3b51],
.maintenance-banner[data-v-1a9c3b51],
.skip-link[data-v-1a9c3b51] {
display: none !important;
}
.main[data-v-1a9c3b51] {
min-height: 0;
margin-left: 0;
}
}
/* 顶栏与维护提示、主内容定位配合,避免固定元素遮挡可操作内容。 */
.topbar[data-v-1a9c3b51] {
z-index: 35;
@@ -193,13 +211,13 @@
-o-object-fit: contain;
object-fit: contain;
flex-shrink: 0;
width: 176px;
width: 148px;
height: auto;
max-height: 40px;
max-height: 32px;
display: block;
}
.brand-icon[data-v-1a9c3b51] {
color: #0052d9;
color: var(--p-primary-color);
flex-shrink: 0;
width: 35px;
height: 35px;
@@ -210,11 +228,11 @@
}
.crumbs[data-v-1a9c3b51] {
align-items: center;
gap: 12px;
gap: 10px;
min-width: 0;
height: 100%;
padding-left: 8px;
font-size: 1.125rem;
padding-left: 4px;
font-size: 1rem;
line-height: 1.4;
display: flex;
overflow: hidden;
@@ -228,22 +246,24 @@
display: inline-flex;
}
.crumb-home[data-v-1a9c3b51] {
width: 44px;
height: 44px;
width: 32px;
height: 32px;
border-radius: var(--radius-md);
color: var(--p-text-muted-color);
text-decoration: none;
}
.crumb-home > i[data-v-1a9c3b51] {
justify-content: center;
align-items: center;
width: 24px;
height: 24px;
font-size: 22px;
width: 18px;
height: 18px;
font-size: 17px;
line-height: 1;
display: inline-flex;
}
.crumb-sep[data-v-1a9c3b51] {
font-size: 14px;
opacity: 0.6;
font-size: 0.875rem;
}
.crumb[data-v-1a9c3b51],
.crumb-sep[data-v-1a9c3b51] {
@@ -429,7 +449,7 @@
z-index: 200;
background: var(--p-primary-color);
color: #fff;
border-radius: 6px;
border-radius: var(--radius-md);
padding: 12px 18px;
text-decoration: none;
position: fixed;
@@ -466,8 +486,8 @@
flex: none;
}
}
/* 视口条件 (width<=767px) 下的响应式覆盖;保留相对基础规则的层叠顺序。 */
@media (width<=767px) {
/* 视口条件 (width<768px) 下的响应式覆盖;保留相对基础规则的层叠顺序。 */
@media (width<768px) {
.crumbs[data-v-1a9c3b51] {
display: none;
}
@@ -499,8 +519,8 @@
flex-basis: auto;
}
}
/* 视口条件 (width<=359px) 下的响应式覆盖;保留相对基础规则的层叠顺序。 */
@media (width<=359px) {
/* 视口条件 (width<360px) 下的响应式覆盖;保留相对基础规则的层叠顺序。 */
@media (width<360px) {
.brand[data-v-1a9c3b51] {
gap: 5px;
padding: 0 4px 0 8px;