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 31f11d6..13b6123 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,78 +1,76 @@ -# 101 Sense-GoAdmin-应用外壳 - -- 类型:缺陷修复 -- 所属 Epic:#7 -- 所属 MVP / 版本:#8 / Sense 首个独立纵切 -- 状态:待验收 -- 日期:2026-08-16 -- Gitea 工单:https://git.ilapage.cn/ila/yovision/issues/101 -- Wiki 页面:Task-101-Sense-GoAdmin-应用外壳 -- Wiki revision:见本地镜像头 - -## 背景与目标 - -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 菜单长期架构。 - +# 101 Sense-GoAdmin-应用外壳 +- 类型:缺陷修复 +- 所属 Epic:#7 +- 所属 MVP / 版本:#8 / Sense 首个独立纵切 +- 状态:待验收 +- 日期:2026-08-16 +- Gitea 工单:https://git.ilapage.cn/ila/yovision/issues/101 +- Wiki 页面:Task-101-Sense-GoAdmin-应用外壳 +- Wiki revision:见本地镜像头 + +## 背景与目标 + +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 菜单长期架构。 ## #99 合入后的组合验收包 @@ -82,3 +80,4 @@ Sense 五个业务菜单原来都以顶层业务组件注册。go-admin-ui 只 - 新 ZIP SHA-256:`65AF5DD1CFB5D4F8339DCCC53717354495259F13630FBC0C6A4AFC1ACD794B26`。 - 固定工具链 production build、包审计、Windows PowerShell 5.1 包测试 21 项、真实 PostgreSQL 迁移/启动及 `TestRegisterBaseRouterExposesOnlyFrontendAppConfig` 均通过。 - 现场配置在构建前备份、ZIP 生成后恢复;ZIP 仍只包含模板配置。Sense 当前监听 `127.0.0.1:18080`。 +