Files
cneicy 42dfead9cd
前端验证 / verify (push) Failing after 15m3s
feat(ui): 优化控制台响应式布局与视觉体验
- 统一页面标题、圆角、字体和响应式断点,调整暗色主题及图表配色
- 新增表格列标签插件,在窄屏下将表格转换为卡片布局,优化实例、订单、工单等列表展示
- 支持移动端点击订单行进入详情,并完善订单凭据的打印布局
- 在财务中心展示本月及累计消费,补充充值关闭时的提示
- 优化工单详情布局,将附件上传入口整合至富文本编辑器工具栏
- 调整实例操作按钮、SSH 密钥操作及安全菜单图标
- 为多个页面显式导入 definePageMeta,完善页面元数据声明
2026-11-07 00:09:57 +08:00

190 lines
4.4 KiB
CSS

/* SSH密钥列表:公钥/指纹长文本、编辑表单、分页及行操作。 */
/* 导入方:app/pages/security/ssh-keys/index.vue。 */
/* 公钥以单行省略限制宽度,公钥和指纹使用等宽字体。 */
.key-text[data-v-31489433] {
color: var(--p-text-muted-color, #64748b);
text-overflow: ellipsis;
white-space: nowrap;
max-width: 420px;
font-size: 0.875rem;
display: block;
overflow: hidden;
}
.fingerprint[data-v-31489433],
.key-text[data-v-31489433] {
font-family: var(--font-mono);
}
.fingerprint[data-v-31489433] {
color: var(--p-text-muted-color, #94a3b8);
font-size: 0.875rem;
}
.row-actions[data-v-31489433] {
align-items: center;
gap: 2px;
display: flex;
}
.form[data-v-31489433] {
gap: 14px;
}
.field[data-v-31489433],
.form[data-v-31489433] {
flex-direction: column;
display: flex;
}
.field label[data-v-31489433] {
color: var(--p-text-color, #334155);
font-size: 0.9375rem;
}
.hint[data-v-31489433] {
color: var(--p-text-muted-color, #94a3b8);
font-size: 0.875rem;
}
.req[data-v-31489433] {
color: #ef4444;
}
.list-page[data-v-31489433] {
gap: 21px;
}
.list-head h2[data-v-31489433],
.page-head h2[data-v-31489433] {
margin: 0;
font-size: var(--page-title-size);
font-weight: 600;
line-height: 24.5px;
}
.list-toolbar[data-v-31489433],
.list-toolbar-right[data-v-31489433] {
justify-content: flex-start;
gap: 7px;
}
.list-search[data-v-31489433],
.list-select[data-v-31489433] {
width: 280px;
}
.list-table[data-v-31489433] {
border-radius: var(--radius-md);
box-shadow: 0 1px 3px #0f172a12;
}
.list-foot[data-v-31489433] {
justify-content: center;
}
.list-foot > .list-bulk[data-v-31489433]:empty {
display: none;
}
[data-v-31489433] .p-datatable-header-cell {
background: var(--p-content-hover-background);
padding: 10.5px 14px;
font-size: 1rem;
font-weight: 600;
}
[data-v-31489433] .p-datatable-tbody > tr > td {
padding: 10.5px 14px;
font-size: 1rem;
}
[data-v-31489433] .p-tag {
font-size: 0.875rem;
font-weight: 500;
}
[data-v-31489433] .list-empty {
gap: 14px;
min-height: 300px;
padding: 42px 21px;
}
[data-v-31489433] .list-empty i {
opacity: 1;
font-size: 1.875rem;
}
[data-v-31489433] .list-empty-title {
font-size: 1rem;
}
[data-v-31489433] .list-empty-desc {
font-size: 0.875rem;
}
.field[data-v-31489433] {
gap: 7px;
}
.field label[data-v-31489433] {
font-size: 0.875rem;
}
/* 视口条件 (width<=768px) 下的响应式覆盖;保留相对基础规则的层叠顺序。 */
@media (width<=768px) {
.list-search[data-v-31489433],
.list-select[data-v-31489433],
.list-toolbar-right[data-v-31489433] {
width: 100%;
}
}
@media (width<640px) {
.list-table[data-v-31489433]
.p-datatable-tbody
> tr:not(.p-datatable-empty-message) {
grid-template-columns: minmax(0, 1fr) auto;
grid-template-areas: "name id" "key key" "fp fp" "actions actions";
align-items: center;
gap: 6px 10px;
padding: 14px 16px;
display: grid;
}
.list-table[data-v-31489433]
.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-31489433]
.p-datatable-tbody
> tr:not(.p-datatable-empty-message)
> td::before {
display: none;
}
.list-table[data-v-31489433]
.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-31489433]
.p-datatable-tbody
> tr:not(.p-datatable-empty-message)
> td[data-label="ID"] {
grid-area: id;
display: flex;
color: var(--p-text-muted-color);
justify-content: flex-end;
}
.list-table[data-v-31489433]
.p-datatable-tbody
> tr:not(.p-datatable-empty-message)
> td[data-label="公钥"] {
grid-area: key;
display: flex;
color: var(--p-text-muted-color);
}
.list-table[data-v-31489433]
.p-datatable-tbody
> tr:not(.p-datatable-empty-message)
> td[data-label="指纹"] {
grid-area: fp;
display: flex;
color: var(--p-text-muted-color);
}
.list-table[data-v-31489433]
.p-datatable-tbody
> tr:not(.p-datatable-empty-message)
> td[data-label="操作"] {
grid-area: actions;
display: flex;
margin-top: 4px;
}
}