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

+145 -3
View File
@@ -11,7 +11,7 @@
background: var(--p-primary-color);
min-height: 36px;
color: var(--p-primary-contrast-color);
border-radius: 5px;
border-radius: var(--radius-md);
justify-content: center;
align-items: center;
gap: 8px;
@@ -57,7 +57,7 @@
}
/* 键盘操作的可见焦点:不要只保留鼠标 hover 效果而移除此反馈。 */
.host-detail-link[data-v-e23fddb0]:focus-visible {
outline: 2px solid var(--p-primary-color, #0052d9);
outline: 2px solid var(--p-primary-color);
outline-offset: 4px;
}
.host-name[data-v-e23fddb0] {
@@ -182,7 +182,7 @@
width: 36px;
height: 36px;
color: var(--traffic-accent);
border-radius: 8px;
border-radius: var(--radius-md);
flex-shrink: 0;
place-items: center;
font-size: 1.75rem;
@@ -334,3 +334,145 @@
min-width: 0;
}
}
@media (width<640px) {
.list-table[data-v-e23fddb0]
.p-datatable-tbody
> tr:not(.p-datatable-empty-message) {
grid-template-columns: 20px minmax(0, 1fr) auto;
grid-template-areas: "check name status" "check prod os" "check flow flow" "check ip due";
align-items: center;
gap: 6px 10px;
padding: 14px 16px;
display: grid;
}
.list-table[data-v-e23fddb0]
.p-datatable-tbody
> tr:not(.p-datatable-empty-message)
> td {
text-align: left;
justify-content: flex-start;
gap: 4px;
padding: 0 !important;
font-size: 0.875rem;
display: none;
position: static;
}
.list-table[data-v-e23fddb0]
.p-datatable-tbody
> tr:not(.p-datatable-empty-message)
> td::before {
display: none;
}
.list-table[data-v-e23fddb0]
.p-datatable-tbody
> tr:not(.p-datatable-empty-message)
> td:first-child {
grid-area: check;
display: flex;
align-self: start;
margin-top: 2px;
}
.list-table[data-v-e23fddb0]
.p-datatable-tbody
> tr:not(.p-datatable-empty-message)
> td[data-label="操作系统"] {
grid-area: os;
display: flex;
justify-content: flex-end;
}
.list-table[data-v-e23fddb0]
.p-datatable-tbody
> tr:not(.p-datatable-empty-message)
> td[data-label="产品编号"] {
grid-area: name;
display: flex;
color: var(--p-text-color);
font-size: 1rem;
font-weight: 600;
}
.list-table[data-v-e23fddb0]
.p-datatable-tbody
> tr:not(.p-datatable-empty-message)
> td[data-label="产品状态"] {
grid-area: status;
display: flex;
justify-content: flex-end;
}
.list-table[data-v-e23fddb0]
.p-datatable-tbody
> tr:not(.p-datatable-empty-message)
> td[data-label="名称"] {
grid-area: prod;
display: flex;
color: var(--p-text-muted-color);
}
.list-table[data-v-e23fddb0]
.p-datatable-tbody
> tr:not(.p-datatable-empty-message)
> td[data-label="流量"] {
grid-area: flow;
display: flex;
margin: 4px 0;
}
.list-table[data-v-e23fddb0]
.p-datatable-tbody
> tr:not(.p-datatable-empty-message)
> td[data-label="ID"] {
grid-area: id;
display: none;
color: var(--p-text-muted-color);
}
.list-table[data-v-e23fddb0]
.p-datatable-tbody
> tr:not(.p-datatable-empty-message)
> td[data-label="IP"] {
grid-area: ip;
display: flex;
color: var(--p-text-muted-color);
}
.list-table[data-v-e23fddb0]
.p-datatable-tbody
> tr:not(.p-datatable-empty-message)
> td[data-label="到期时间"] {
grid-area: due;
display: flex;
color: var(--p-text-muted-color);
justify-content: flex-end;
}
.list-table[data-v-e23fddb0]
.p-datatable-tbody
> tr:not(.p-datatable-empty-message)
> td[data-label="到期时间"]::before {
content: "到期 ";
color: var(--p-text-muted-color);
font-size: 0.875rem;
display: inline;
}
.list-table[data-v-e23fddb0] td[data-label="流量"] > * {
flex: 1;
}
.list-table[data-v-e23fddb0] td[data-label="名称"] > * {
align-items: flex-start;
text-align: left;
}
.list-table[data-v-e23fddb0]
.p-datatable-tbody
> tr:not(.p-datatable-empty-message)
> td[data-label="到期时间"] {
white-space: nowrap !important;
}
.list-table[data-v-e23fddb0]
.p-datatable-tbody
> tr:not(.p-datatable-empty-message)
> td[data-label="ID"]
* {
color: var(--p-text-muted-color);
font-weight: 400;
}
.list-table[data-v-e23fddb0]
.p-datatable-tbody
> tr:not(.p-datatable-empty-message)
> td[data-label="流量"]:has(> .host-traffic > .traffic-note:only-child) {
display: none;
}
}