ui(nav): 侧栏隐藏宝塔面板菜单分组
宝塔能力保留在 servers 页一键登录与批量获取 API;btpanel 路由仍可通过直链访问。
This commit is contained in:
@@ -0,0 +1,26 @@
|
|||||||
|
# 审计 — 2026-06-21 侧栏隐藏宝塔菜单
|
||||||
|
|
||||||
|
**Changelog**: `docs/changelog/2026-06-21-btpanel-nav-hidden.md`
|
||||||
|
|
||||||
|
## Step 3 规则扫描
|
||||||
|
|
||||||
|
| 文件 | 规则 | 结论 |
|
||||||
|
|------|------|------|
|
||||||
|
| `App.vue` | 仅移除导航 UI,路由与 API 未删 | PASS |
|
||||||
|
|
||||||
|
## Closure
|
||||||
|
|
||||||
|
| 项 | 状态 | 说明 |
|
||||||
|
|----|------|------|
|
||||||
|
| 侧栏宝塔入口 | DONE | 整组菜单隐藏 |
|
||||||
|
| servers 一键登录 | OK | 未改动 |
|
||||||
|
|
||||||
|
## 文件清单
|
||||||
|
|
||||||
|
- `frontend/src/App.vue`
|
||||||
|
- `docs/changelog/2026-06-21-btpanel-nav-hidden.md`
|
||||||
|
|
||||||
|
## DoD
|
||||||
|
|
||||||
|
- [x] 侧栏无「宝塔面板」分组
|
||||||
|
- [x] changelog 已写
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
# 侧栏隐藏宝塔面板菜单
|
||||||
|
|
||||||
|
**日期**:2026-06-21
|
||||||
|
|
||||||
|
## 摘要
|
||||||
|
|
||||||
|
左侧导航移除「宝塔面板」分组及全部子菜单;宝塔能力仍通过 `#/servers` 一键登录与批量获取 API 使用,`#/btpanel/*` 路由保留(直链可访问)。
|
||||||
|
|
||||||
|
## 动机
|
||||||
|
|
||||||
|
运维入口收敛到服务器页,避免侧栏重复暴露未常用宝塔管理页。
|
||||||
|
|
||||||
|
## 涉及文件
|
||||||
|
|
||||||
|
- `frontend/src/App.vue`
|
||||||
|
|
||||||
|
## 迁移 / 重启
|
||||||
|
|
||||||
|
仅前端静态资源;`cd frontend && npx vite build` 后同步 `web/app/`。
|
||||||
|
|
||||||
|
## 验证
|
||||||
|
|
||||||
|
登录后侧栏无「宝塔面板」区块;`#/servers` 一键登录与批量栏「宝塔」分组正常。
|
||||||
@@ -81,38 +81,6 @@
|
|||||||
|
|
||||||
<v-divider class="mx-3 my-1" />
|
<v-divider class="mx-3 my-1" />
|
||||||
|
|
||||||
<v-list nav slim>
|
|
||||||
<v-list-subheader>宝塔面板</v-list-subheader>
|
|
||||||
<v-list-group v-model="btPanelMenuOpen">
|
|
||||||
<template #activator="{ props: groupProps }">
|
|
||||||
<v-list-item
|
|
||||||
v-bind="groupProps"
|
|
||||||
prepend-icon="mdi-view-dashboard-variant-outline"
|
|
||||||
title="宝塔管理"
|
|
||||||
:active="route.path.startsWith('/btpanel')"
|
|
||||||
/>
|
|
||||||
</template>
|
|
||||||
<v-list-item
|
|
||||||
v-for="item in btPanelItems"
|
|
||||||
:key="item.to"
|
|
||||||
:prepend-icon="item.icon"
|
|
||||||
:title="item.title"
|
|
||||||
:to="item.to"
|
|
||||||
:active="route.path === item.to"
|
|
||||||
active-class="text-primary"
|
|
||||||
link
|
|
||||||
nav
|
|
||||||
slim
|
|
||||||
class="pl-4"
|
|
||||||
@click="navigateTo(item.to)"
|
|
||||||
@mouseenter="scheduleRoutePrefetch(item.to)"
|
|
||||||
@mouseleave="cancelRoutePrefetch(item.to)"
|
|
||||||
/>
|
|
||||||
</v-list-group>
|
|
||||||
</v-list>
|
|
||||||
|
|
||||||
<v-divider class="mx-3 my-1" />
|
|
||||||
|
|
||||||
<v-list nav slim>
|
<v-list nav slim>
|
||||||
<v-list-subheader>系统</v-list-subheader>
|
<v-list-subheader>系统</v-list-subheader>
|
||||||
|
|
||||||
@@ -351,13 +319,8 @@ async function toggleTheme() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const drawer = ref(true)
|
const drawer = ref(true)
|
||||||
const btPanelMenuOpen = ref(route.path.startsWith('/btpanel'))
|
|
||||||
const { mobile } = useDisplay()
|
const { mobile } = useDisplay()
|
||||||
|
|
||||||
watch(() => route.path, (p) => {
|
|
||||||
if (p.startsWith('/btpanel')) btPanelMenuOpen.value = true
|
|
||||||
})
|
|
||||||
|
|
||||||
/** 终端页监听菜单开合,在动画结束后 refit xterm */
|
/** 终端页监听菜单开合,在动画结束后 refit xterm */
|
||||||
provide('nexusDrawer', drawer)
|
provide('nexusDrawer', drawer)
|
||||||
|
|
||||||
@@ -393,19 +356,6 @@ const sysItems = [
|
|||||||
{ to: '/audit', title: '审计日志', icon: 'mdi-clipboard-text-outline' },
|
{ to: '/audit', title: '审计日志', icon: 'mdi-clipboard-text-outline' },
|
||||||
]
|
]
|
||||||
|
|
||||||
const btPanelItems = [
|
|
||||||
{ to: '/btpanel/login', title: '服务器列表', icon: 'mdi-server' },
|
|
||||||
{ to: '/btpanel/monitor', title: '系统监控', icon: 'mdi-speedometer' },
|
|
||||||
{ to: '/btpanel/sites', title: '网站列表', icon: 'mdi-web' },
|
|
||||||
{ to: '/btpanel/sites/create', title: '创建网站', icon: 'mdi-web-plus' },
|
|
||||||
{ to: '/btpanel/domains', title: '域名管理', icon: 'mdi-domain' },
|
|
||||||
{ to: '/btpanel/ssl', title: 'SSL 证书', icon: 'mdi-certificate-outline' },
|
|
||||||
{ to: '/btpanel/databases', title: '数据库', icon: 'mdi-database-outline' },
|
|
||||||
{ to: '/btpanel/crontab', title: '计划任务', icon: 'mdi-calendar-clock' },
|
|
||||||
{ to: '/btpanel/services', title: '服务管理', icon: 'mdi-cog-transfer-outline' },
|
|
||||||
{ to: '/btpanel/settings', title: '连接配置', icon: 'mdi-link-variant' },
|
|
||||||
]
|
|
||||||
|
|
||||||
const snackbar = reactive({ show: false, text: '', color: 'success', timeout: 3000 })
|
const snackbar = reactive({ show: false, text: '', color: 'success', timeout: 3000 })
|
||||||
|
|
||||||
function navigateTo(to: string) {
|
function navigateTo(to: string) {
|
||||||
|
|||||||
Reference in New Issue
Block a user