diff --git a/frontend/components.d.ts b/frontend/components.d.ts index 07aa56a..d9fb1f7 100644 --- a/frontend/components.d.ts +++ b/frontend/components.d.ts @@ -12,8 +12,8 @@ declare module 'vue' { AppSidebar: typeof import('./src/components/Layout/AppSidebar.vue')['default'] AuditLogTable: typeof import('./src/components/AuditLogTable.vue')['default'] BusinessLineSwitcher: typeof import('./src/components/BusinessLineSwitcher.vue')['default'] - ElAutocomplete: typeof import('element-plus/es')['ElAutocomplete'] ElButton: typeof import('element-plus/es')['ElButton'] + ElDialog: typeof import('element-plus/es')['ElDialog'] ElForm: typeof import('element-plus/es')['ElForm'] ElFormItem: typeof import('element-plus/es')['ElFormItem'] ElIcon: typeof import('element-plus/es')['ElIcon'] @@ -22,9 +22,12 @@ declare module 'vue' { ElOption: typeof import('element-plus/es')['ElOption'] ElPagination: typeof import('element-plus/es')['ElPagination'] ElSelect: typeof import('element-plus/es')['ElSelect'] + ElSlider: typeof import('element-plus/es')['ElSlider'] ElSwitch: typeof import('element-plus/es')['ElSwitch'] ElTable: typeof import('element-plus/es')['ElTable'] ElTableColumn: typeof import('element-plus/es')['ElTableColumn'] + ElTabPane: typeof import('element-plus/es')['ElTabPane'] + ElTabs: typeof import('element-plus/es')['ElTabs'] RouterLink: typeof import('vue-router')['RouterLink'] RouterView: typeof import('vue-router')['RouterView'] SubsystemCard: typeof import('./src/components/SubsystemCard.vue')['default'] diff --git a/frontend/src/components/Layout/AppHeader.vue b/frontend/src/components/Layout/AppHeader.vue index 41ca71d..a4930f2 100644 --- a/frontend/src/components/Layout/AppHeader.vue +++ b/frontend/src/components/Layout/AppHeader.vue @@ -196,4 +196,39 @@ const handleLogout = () => { .theme-switch:hover .el-icon { transform: rotate(15deg); } + +@media (max-width: 760px) { + .topbar { + grid-column: 1; + min-width: 0; + padding: 0 12px; + gap: 8px; + } + + .brand { + flex: 0 0 auto; + font-size: 16px; + } + + .brand .mark-img { + width: 30px; + height: 30px; + } + + .brand .sub, + .env-pill, + .search-box, + .identity > div:not(.avatar), + .logout-button { + display: none; + } + + .spacer { + min-width: 0; + } + + .identity { + gap: 0; + } +} diff --git a/frontend/src/components/Layout/AppMain.vue b/frontend/src/components/Layout/AppMain.vue index 2627672..a9f9f6e 100644 --- a/frontend/src/components/Layout/AppMain.vue +++ b/frontend/src/components/Layout/AppMain.vue @@ -12,4 +12,11 @@ overflow-y: auto; padding: 22px 26px 60px; } + +@media (max-width: 760px) { + .main { + min-width: 0; + padding: 16px 14px 40px; + } +} diff --git a/frontend/src/layouts/DefaultLayout.vue b/frontend/src/layouts/DefaultLayout.vue index ee88ed7..11296cf 100644 --- a/frontend/src/layouts/DefaultLayout.vue +++ b/frontend/src/layouts/DefaultLayout.vue @@ -19,4 +19,15 @@ import AppMain from '@/components/Layout/AppMain.vue' grid-template-rows: 70px 1fr; height: 100vh; } + +@media (max-width: 760px) { + .shell { + grid-template-columns: minmax(0, 1fr); + grid-template-rows: 58px minmax(0, 1fr); + } + + .shell :deep(.sidebar) { + display: none; + } +} diff --git a/frontend/src/views/service/Management.vue b/frontend/src/views/service/Management.vue index 6664250..dada1ae 100644 --- a/frontend/src/views/service/Management.vue +++ b/frontend/src/views/service/Management.vue @@ -5,9 +5,15 @@

服务管理

同步基础服务实例台账,统一查看服务名 / 服务 IP / 业务标签 / 实例数

- 同步 + 同步 + + + + + + + + + + + + + +