4.0 KiB
4.0 KiB
| 1 | ID | Title | Description | Acceptance | Test_Method | Tools | Dev_Status | Review1_Status | Regression_Status | Files | Dependencies | Notes |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2 | P28-0 | P28执行合同刷新建档与范围收缩 | 创建并校验门户搜索与工作台 refresh 合同 CSV 并冻结本轮只做替代旧 OA 首页所需最小能力的边界 | refresh CSV 通过校验且明确本期只做搜索 工作台 常用入口 最近访问和轻量公告 不做完整 CMS 或知识库 | python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-03-21_10-50-00-p28-portal-search-workbench-refresh.csv | manual | TODO | TODO | TODO | issues/2026-03-21_10-50-00-p28-portal-search-workbench-refresh.csv|issues/2026-03-21_09-40-00-p28-portal-search-workbench.csv|client/src/pages/PortalHomePage.tsx|server/src/routes/dashboard.js | [] | supersede 2026-03-21_09-40-00-p28-portal-search-workbench.csv 并把个性化和公告能力收敛到最小可用版本 |
| 3 | P28-1 | 全局搜索最小实现 | 为报销 请假 采购 差旅 资产和已落地经营对象提供统一搜索入口与权限过滤 | 搜索可命中编号 标题 主数据对象并按权限过滤返回统一 hit 结构 优先使用 PostgreSQL 内建能力 | 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"] | 不引入独立搜索集群或额外基础设施 |
| 4 | P28-2 | 工作台卡片与权限化首页 | 按权限展示审批 财务 采购 资产 运营卡片并形成统一工作台首页 | 不同角色进入门户可看到差异化卡片且工作台首页可替代旧 OA 常用入口 | 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-1"] | 个性化仅做权限显隐与固定卡片 不做复杂拖拽布局 |
| 5 | P28-3 | 快捷操作与最近访问 | 补齐常用入口 最近访问和待办优先级排序以提升内部使用效率 | 用户可查看最近访问 常用入口和高优先级待办排序且 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-2"] | 最近访问默认使用本地记录 不做跨端画像和推荐系统 |
| 6 | P28-4 | 轻量公告与 FAQ 聚合入口 | 为门户首页补齐公告卡片 制度链接 常见问题入口与基础上下线能力 | 可展示公告卡片 制度入口 FAQ 链接和上下线状态 但不引入完整内容管理系统 | 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-3"] | 公告采用最小发布模型 仅支持文本 摘要 链接与上下线时间 |
| 7 | P28-5 | 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_10-50-00-p28-portal-search-workbench-refresh.csv|server/scripts/regression-dashboard.sh|server/scripts/regression-all.sh|client/src/pages/PortalHomePage.tsx | ["P28-4"] | P28-lite 以替代旧 OA 首页的最小可用能力为完成标准 |