feat: local Bootstrap Vue ECharts dashboards and universal genealogy write scope

This commit is contained in:
Codex
2026-10-08 22:41:19 +08:00
parent d8826152c6
commit fb87ae4de9
33 changed files with 980 additions and 110 deletions
+5 -1
View File
@@ -1,6 +1,6 @@
# 赵府 Vue 前端
Vue 3 + Vite + Bootstrap 5。Python 服务提供 API 和本地静态资源;生产主机无需安装 Node。
Vue 3 + Vite + Bootstrap 5 + Apache ECharts。Python 服务提供 API 和本地静态资源;生产主机无需安装 Node。
## 构建
@@ -19,12 +19,16 @@ pnpm --dir frontend build
- `HomeExplorer`:账号独立的卡片布局、分页、排序及场所总拓扑。
- `DeviceCollection`、`NetworkMap`:同一设备目录的卡片和拓扑视图。
- `NetworkStatus`:授权设备的实时网络检查与后台入口,清理定时器并丢弃过期响应。
- `LocalChart`、`HomeInsights`、`ScopeInsights`:本地 ECharts 场所及设备统计;按需加载,关闭页面释放实例,相同数据刷新不重排。手机首页默认收起详细统计。
- `NetworkDiagram`:固定坐标网络图,支持平移、缩放和点击设备;下方详情提供键盘及读屏操作。平台总拓扑与设备拓扑只使用当前账号已授权数据,不虚构在线率或历史曲线。
- `Workspace`、`RuntimeOverlays`:现有业务页面与表单模板。
- `composables/bridge.js`、`web/vue-bridge.js`:Vue 与现有业务控制器的状态边界。
- `compat/scripts.json`:旧业务控制器依赖顺序,按顺序加载。视频播放器、家谱、记事等复杂交互暂时保留原控制器;尚未全部迁为 Vue 状态管理。
Vue 管理家庭卡片、设备列表、网络拓扑的 DOM;旧控制器只发布数据,不再覆盖这些容器。表单及播放器的兼容容器由原控制器管理,Vue 不重建其内部节点,避免轮询时重建视频。`web/index.html` 已移除,模板以 Vue 组件为准。
ECharts 使用 npm 包按需打包饼图、柱图、关系图和 Canvas 渲染器。生产 `/ui/assets/` 内包含全部框架、样式和图表代码;没有远程 CDN、远程字体或地图服务依赖。外部媒体与设备后台链接仍按业务配置访问。原有播放器和家谱关系图保留现有控制器。许可证及 NOTICE 收录于 `THIRD-PARTY-LICENSES.txt`。
## 网络状态
`GET /api/devices/network?source=device|camera|recorder&id=...` 只允许当前家庭管理员与超级管理员检查本归属下的已登记设备。端口探测与 Tailscale 节点状态分别显示,30 秒缓存、并发限制;用户输入不能指定任意检查目标。只连接 TCP 端口,不修改设备、不发送登录密码。