4.4 KiB
4.4 KiB
| 1 | ID | Title | Description | Acceptance | Test_Method | Tools | Dev_Status | Review1_Status | Regression_Status | Files | Dependencies | Notes |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2 | P28-0 | P28执行合同建档与范围冻结 | 创建并校验门户搜索与工作台执行合同 CSV 并冻结本轮统一工作台边界 | CSV 通过校验且明确本期优先基于 PostgreSQL 内建能力实现搜索 不引入独立搜索集群 | python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-03-21_09-40-00-p28-portal-search-workbench.csv | manual | TODO | TODO | TODO | issues/2026-03-21_09-40-00-p28-portal-search-workbench.csv|client/src/pages/PortalHomePage.tsx|server/src/routes/dashboard.js | [] | P28 以替代旧 OA 首页为目标 但不扩展为完整 CMS 或知识库系统 |
| 3 | P28-1 | 全局搜索索引 | 为报销 请假 采购 差旅 资产 合同 项目建立统一搜索入口和权限过滤能力 | 搜索可命中编号 标题 主数据对象并按权限过滤返回统一命中结构 | cd server && npm run prisma:validate && npm test -- tests/unit/routes/assets.search.test.js tests/unit/routes/workflow.permissions.test.js && cd ../client && npm run typecheck && npm run build | manual | TODO | TODO | TODO | server/src/routes/search.js|server/src/services/search.js|server/prisma/schema.prisma|client/src/api/search.ts|client/src/components/GlobalSearch.tsx|client/src/layouts/AppShellLayout.tsx | ["P28-0"] | 优先使用 PostgreSQL 内建全文或前缀匹配能力 不新增 ES 集群 |
| 4 | P28-2 | 公告制度FAQ 聚合入口 | 为门户首页补齐公告卡片 制度链接 常见问题入口并支持基础发布上下线 | 可展示公告卡片 制度入口 常见问题链接和上下线状态 但不做完整 CMS 工作流 | cd server && npm test -- tests/unit/routes/notifications.test.js && cd ../client && npm run typecheck && npm run build | manual | TODO | TODO | TODO | server/src/routes/announcements.js|server/prisma/schema.prisma|client/src/pages/PortalHomePage.tsx|client/src/api/announcements.ts|client/src/components/portal/AnnouncementCard.tsx | ["P28-1"] | 公告采用最小发布模型 仅支持文本 摘要 链接和上下线时间 |
| 5 | P28-3 | 工作台个性化卡片 | 按权限显示审批 财务 采购 资产 运营卡片并支持卡片顺序和显隐配置 | 不同角色进入门户可看到差异化卡片且卡片显隐由权限和配置共同决定 | cd server && npm test -- tests/unit/routes/ai.test.js && cd ../client && npm run typecheck && npm run build | manual | TODO | TODO | TODO | server/src/routes/portal.js|server/src/routes/configRead.js|client/src/pages/PortalHomePage.tsx|client/src/components/portal|client/src/auth/permissions.ts | ["P28-2"] | 个性化只做显隐与顺序 不做拖拽布局存储复杂化 |
| 6 | P28-4 | 快捷操作与最近访问 | 补齐常用入口 最近访问 待办优先级排序等可替代旧 OA 首页的便捷能力 | 用户可查看最近访问 常用入口和高优先级待办排序且体验在 PC 与移动端一致 | cd server && npm test -- tests/unit/routes/workflow.permissions.test.js && cd ../client && npm run typecheck && npm run build | manual | TODO | TODO | TODO | server/src/routes/portal.js|client/src/pages/PortalHomePage.tsx|client/src/layouts/AppShellLayout.tsx|client/src/router/index.tsx|client/src/lib/utils.ts | ["P28-3"] | 最近访问默认只保留本地最近记录 不同步到跨端画像系统 |
| 7 | P28-5 | 文档矩阵与可观测性同步 | 同步搜索 工作台 公告能力到规格书 Feature Matrix SLO 与可观测文档 | 文档对搜索 工作台 公告能力和性能目标描述一致且事实源可追溯 | python3 scripts/validate-feature-matrix.py && git diff --check | manual | TODO | TODO | TODO | docs/requirements-specification.md|docs/feature-matrix.md|docs/ops/slo.md|docs/ops/non-functional-baseline.md|issues/2026-03-21_09-40-00-p28-portal-search-workbench.csv | ["P28-4"] | P28 必须同步性能与搜索权限边界 不把未来知识库能力写入当前事实源 |
| 8 | P28-6 | P28回归与验收收口 | 完成搜索 公告 工作台和快捷能力后的整体验收收口 | 搜索权限过滤 公告上下线 最近访问 快捷入口和门户首页性能均通过验收且零回归 | cd server && npm test && ./scripts/regression-dashboard.sh && ./scripts/regression-all.sh && cd ../client && npm run typecheck && npm run build | manual | TODO | TODO | TODO | issues/2026-03-21_09-40-00-p28-portal-search-workbench.csv|server/scripts/regression-dashboard.sh|server/scripts/regression-all.sh|client/src/pages/PortalHomePage.tsx | ["P28-5"] | P28 完成标准以统一工作台可替代旧 OA 首页常用入口为准 |