diff --git a/frontend-web/public/runtime-config.js b/frontend-web/public/runtime-config.js index 02984b26..3a21c0aa 100644 --- a/frontend-web/public/runtime-config.js +++ b/frontend-web/public/runtime-config.js @@ -40,6 +40,10 @@ window.__CM_RUNTIME_CONFIG__ = { // Canvas/AI 写作独立 LangGraph 地址:为空时前端会回退使用 VITE_LANGGRAPH_BASE_URL。 VITE_CANVAS_LANGGRAPH_BASE_URL: "", + // routeKey 短路由的用户名直登口令:例如 #/login/admin?routeKey=a。 + // 填值时优先使用这里的 password;留空时使用 URL 中的 ?password=。 + VITE_ROUTE_LOGIN_PASSWORD: "", + // 轻应用「新建笔记」系列接口地址。 VITE_NOTE_API_BASE_URL: "http://47.88.25.99:8000", diff --git a/frontend-web/src/components/page-sdebar.css b/frontend-web/src/components/page-sdebar.css index 091df5fd..0093a30a 100644 --- a/frontend-web/src/components/page-sdebar.css +++ b/frontend-web/src/components/page-sdebar.css @@ -8,6 +8,17 @@ flex-shrink: 0; } +/* `?hideHeader=1`: keep the menu rail, but let it occupy the Header's space. */ +.sidebar-contnet--header-hidden { + top: 0; + height: 100vh; +} + +.sidebar-contnet--header-hidden .item-nav-content { + height: calc(100vh - 20px); + min-height: calc(100vh - 20px); +} + .sidebar-contents { width: 98px; min-height: calc(100% - 20px); @@ -618,6 +629,12 @@ html.lightyellow .light-topnav-item--active::after { width: 236px; } +/* `?hideHeader=1`: preserve the light sidebar while removing only Header. */ +.light-sidebar--header-hidden { + top: 0; + height: 100vh; +} + /* 二级列:固定 96px,竖排图标卡片 + 底部设置 */ .light-sidebar__primary { flex: 0 0 96px; diff --git a/frontend-web/src/components/page-sidebar-dark.tsx b/frontend-web/src/components/page-sidebar-dark.tsx index 4d409edf..3d5bda73 100644 --- a/frontend-web/src/components/page-sidebar-dark.tsx +++ b/frontend-web/src/components/page-sidebar-dark.tsx @@ -17,9 +17,15 @@ type PageSidebarDarkProps = { /** 是否收起(true 时只渲染左下角浮动入口,sidebar 主体隐藏) */ collapsed: boolean; onToggleCollapsed: () => void; + /** 全局 Header 隐藏时,侧边栏从视口顶部开始占满高度。 */ + headerHidden?: boolean; }; -export function PageSidebarDark({ collapsed, onToggleCollapsed }: PageSidebarDarkProps) { +export function PageSidebarDark({ + collapsed, + onToggleCollapsed, + headerHidden = false, +}: PageSidebarDarkProps) { const isAdmin = getStoredAuth()?.system_role === "admin"; const visibleMenuItems = useSidebarMenuItems(!!isAdmin); const inWujieEnv = isWujieEnv(); @@ -213,7 +219,11 @@ export function PageSidebarDark({ collapsed, onToggleCollapsed }: PageSidebarDar } return ( -