2026-06-11 20:10:57 +08:00
|
|
|
|
# 2026-06-11 全局浮动浏览器与记录持久化
|
|
|
|
|
|
|
|
|
|
|
|
## 摘要
|
|
|
|
|
|
|
|
|
|
|
|
内置浏览器改为 **全局浮动面板**:可拖动/缩放、最小化到**右下角**、**左下角**常驻按钮随时展开;切换侧栏页面时保持活动。浏览记录、标签、窗口位置同步至 MySQL(`admin_ui_preferences`)。
|
|
|
|
|
|
|
|
|
|
|
|
## 动机
|
|
|
|
|
|
|
|
|
|
|
|
用户需要在运维任意页面内预览站点,最小化后不占全屏,且换页不丢失;历史记录需跨浏览器/清缓存保留。
|
|
|
|
|
|
|
|
|
|
|
|
## 涉及文件
|
|
|
|
|
|
|
|
|
|
|
|
| 文件 | 变更 |
|
|
|
|
|
|
|------|------|
|
|
|
|
|
|
| `server/utils/browser_ui_state.py` | 状态解析与 visit 记录 |
|
|
|
|
|
|
| `server/api/browser.py` | `GET/PUT /api/browser/state` |
|
|
|
|
|
|
| `server/main.py` | 注册路由 |
|
|
|
|
|
|
| `frontend/src/composables/useGlobalBrowser.ts` | 全局单例状态 |
|
|
|
|
|
|
| `frontend/src/components/GlobalBrowserPanel.vue` | 浮动 UI |
|
|
|
|
|
|
| `frontend/src/pages/BrowserPage.vue` | 打开全局浏览器并返回 |
|
|
|
|
|
|
| `frontend/src/App.vue` | 挂载全局组件 |
|
|
|
|
|
|
| `frontend/src/pages/ServersPage.vue` | 「站点」直接打开浮动窗 |
|
|
|
|
|
|
| `tests/test_browser_ui_state.py` | 单测 |
|
|
|
|
|
|
|
|
|
|
|
|
## 迁移 / 重启
|
|
|
|
|
|
|
|
|
|
|
|
- 无需新表(复用 `admin_ui_preferences`)
|
|
|
|
|
|
- 需 API 重启 + 前端 build
|
|
|
|
|
|
|
|
|
|
|
|
## 验证
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
pytest tests/test_browser_ui_state.py -q
|
|
|
|
|
|
cd frontend && npm run type-check
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-06-11 20:15:40 +08:00
|
|
|
|
左下角地球按钮打开;最小化后为可拖动浮动条(默认右下角);历史按钮可见记录;换账号后记录隔离。
|
|
|
|
|
|
|
|
|
|
|
|
## 2026-06-11 更新 — 不可关闭、最小化可拖拽
|
|
|
|
|
|
|
|
|
|
|
|
- 移除「关闭浏览器」按钮;仅 **最小化** 或 **重启**(重启保留浏览历史)
|
|
|
|
|
|
- 最小化后为全局 **可拖动浮动条**(双击展开),位置持久化 `minimized_rect`
|
|
|
|
|
|
- 仅剩一个标签时不可关闭该标签
|
2026-06-11 20:19:49 +08:00
|
|
|
|
- 修复最小化条无法拖动:`useFloatingPanel` 最小尺寸改为可配置(迷你条 200×44),专用拖动手柄
|
2026-06-11 20:10:57 +08:00
|
|
|
|
|
|
|
|
|
|
## 说明
|
|
|
|
|
|
|
|
|
|
|
|
iframe 在用户当前的 Chrome/Firefox 等引擎中渲染,非独立安装 Firefox;禁止嵌入的站点请用「新标签打开」。
|
2026-06-12 06:49:20 +08:00
|
|
|
|
|
|
|
|
|
|
## 待办(已记录需求)
|
|
|
|
|
|
|
|
|
|
|
|
- **网站导航 / 收藏**:用户可自建固定站点列表,见 [设计说明](../design/specs/2026-06-11-browser-nav-bookmarks-design.md) · [实施计划](../design/plans/2026-06-11-browser-nav-bookmarks.md)(后端 `nav_links` 已预留,前端 UI 待做)
|