From 416668dca04772908eb66c5f74ef0cec7e79524c Mon Sep 17 00:00:00 2001 From: ila <2+ila@noreply.git.ilapage.cn> Date: Sun, 16 Aug 2026 23:30:49 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E5=AE=8C=E6=88=90=E4=BB=BB=E5=8A=A1=20?= =?UTF-8?q?#101=20=E5=BE=85=E9=AA=8C=E6=94=B6=E5=BD=92=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...-%E5%BA%94%E7%94%A8%E5%A4%96%E5%A3%B3.-.md | 57 ++++++++++++++----- 1 file changed, 44 insertions(+), 13 deletions(-) diff --git a/Task-101-Sense-GoAdmin-%E5%BA%94%E7%94%A8%E5%A4%96%E5%A3%B3.-.md b/Task-101-Sense-GoAdmin-%E5%BA%94%E7%94%A8%E5%A4%96%E5%A3%B3.-.md index 4534290..39dc633 100644 --- a/Task-101-Sense-GoAdmin-%E5%BA%94%E7%94%A8%E5%A4%96%E5%A3%B3.-.md +++ b/Task-101-Sense-GoAdmin-%E5%BA%94%E7%94%A8%E5%A4%96%E5%A3%B3.-.md @@ -1,9 +1,9 @@ # 101 Sense-GoAdmin-应用外壳 -- 类型:需求 / 缺陷 / 重构 -- 所属 Epic:# -- 所属 MVP / 版本:# -- 状态:待验收 / 已完成 +- 类型:缺陷修复 +- 所属 Epic:#7 +- 所属 MVP / 版本:#8 / Sense 首个独立纵切 +- 状态:待验收 - 日期:2026-08-16 - Gitea 工单:https://git.ilapage.cn/ila/yovision/issues/101 - Wiki 页面:Task-101-Sense-GoAdmin-应用外壳 @@ -11,32 +11,63 @@ ## 背景与目标 - +Sense 五个业务菜单原来都以顶层业务组件注册。go-admin-ui 只有在动态路由组件为 `Layout` 时才保留侧栏、顶部导航和标签页,因此点击设备管理等入口会用业务页面替换整个 GoAdmin 外壳。 + +本任务恢复冻结 GoAdmin 的标准父子菜单结构:应用外壳保持不变,模块切换只替换右侧内容区域。 ## 最终方案 - +新增迁移 `2026081623100_sense_layout.go`,创建唯一的“视频感知”顶层目录: + +- 顶层目录:`MenuType=M`、`Path=/sense`、`Component=Layout`。 +- 设备管理、视频接入、视频服务、实时监看、区域与警戒线:作为相对路径的 `MenuType=C` 子页面。 +- 页面下既有 `MenuType=F` 操作权限保持不变。 +- 递归重算父目录、页面和按钮的完整 `paths`。 +- 页面 URL、组件、权限标识、角色关联和业务 API 均不改变。 +- 使用新增事务迁移兼容已经执行旧迁移的 PostgreSQL 数据库,不修改历史迁移。 + +与建单方案一致,没有修改 go-admin-ui 公共 Layout 或动态路由生成器。 ## 修改文件 -- `<文件>`:<改动说明> +- `Sense/server/cmd/migrate/migration/version/2026081623100_sense_layout.go`:新增 GoAdmin Layout 菜单兼容迁移。 +- `Sense/server/cmd/migrate/migration/version/2026081623100_sense_layout_test.go`:覆盖菜单层级、相对路径、完整 paths、角色关联保持、重复对齐、事务回滚和 PostgreSQL。 +- `docs/02-architecture-and-code-map.md`:同步架构 Wiki 中的 Sense 动态菜单长期规则。 +- `wiki-docs.json`、`docs/task/101-Sense-GoAdmin-应用外壳.md`:任务归档映射与镜像。 ## 验收结果 | 验收标准 | 结果 | |---|---| -| | 通过 / 未通过 | +| 五个业务页位于 Layout 父路由下 | 通过 | +| 设备管理进入 `#/sense/devices`,标题与路径不串位 | 通过 | +| 切换和刷新后侧栏、顶部栏、标签页保留 | 通过 | +| 页面组件、权限标识和角色关联保持 | 通过 | +| 已有 PostgreSQL 数据库迁移无重复菜单 | 通过 | +| 重复对齐安全、失败事务回滚 | 通过 | +| 后端、前端和 Windows 包验证 | 通过 | +| Wiki、归档、PR 和证据 | 通过,等待用户验收 | ## 测试 -- 执行命令:`<命令>` -- 结果: -- **未验证部分**: +- `go test ./cmd/migrate/migration/version -run 'Test(AlignSenseLayout|MigrateSenseLayout|SenseLayout)' -count=1`:通过。 +- 真实 PostgreSQL 隔离 schema `TestSenseLayoutMigrationOnPostgres`:通过并清理测试 schema。 +- `go test ./...`:通过。 +- `go vet ./...`、后端构建:通过。 +- `pnpm lint`:0 error,32 条冻结上游/既有 warning。 +- `pnpm test:unit -- --runInBand`:17 suites、46 tests 全部通过。 +- `pnpm build:prod`:通过,4 条既有构建 warning。 +- Windows PowerShell 5.1 包测试:21 assertions 通过;包审计通过。 +- 本机生产数据库迁移及启动:通过。 +- Headless Edge:依次打开五个菜单及刷新区域页面,`.app-wrapper`、侧栏、navbar、TagsView 全程可见,URL 均正确。 +- Windows ZIP:`Sense/dist/sense-windows-amd64.zip`,SHA-256 `BAAA973F8502BB5B0BC080F11931E60419B25EFA8FF722A6B9F9B98364399642`,源码提交 `4423d528b1dc6ebe8b6f7b8272ca5111032a1608`。 +- **未验证部分**:客户全新 Windows 主机、客户目标浏览器及 implementation_operator/site_admin/viewer 三种岗位的人工视觉验收;本机使用 admin 完成真实浏览器回归。 ## 遗留问题 - +#99 仍处于待验收并使用独立分支;本任务代码不依赖 #99,但两项长期架构说明位于同一 Wiki 页面。PR 集成时建议先验收/合入 #99,再更新本分支到最新 dev,以消除镜像元数据的并行差异。#90 的项目档案 Wiki 更新未混入本任务提交。 ## 相关提交 -- `<提交哈希>` <提交说明> +- `4423d528b1dc6ebe8b6f7b8272ca5111032a1608` 修复 Sense GoAdmin 应用外壳。 +- `e652109` 记录 Sense Layout 菜单长期架构。