史诗011 - 用人方小程序功能实现
史诗目标
在mini项目中完整实现用人方小程序的所有页面功能,基于史诗7,8,9,10已移植的API模块基础,为企业用户提供残疾人就业管理的完整解决方案。
状态更新(2025-12-18)
- 依赖状态:史诗012完成5/6核心故事(83%),MVP API就绪
- 启动建议:史诗011可以立即开始开发
- 调整说明:故事011.006需调整企业设置页功能实现(系统设置API延期至P2优先级)
- 故事拆分:史诗拆分为6个故事,便于逐步开发和测试
- 整体进度:故事011.001已完成,故事011.002已完成,可开始故事011.003
- 故事011.001完成情况:基础框架搭建完成,包含API客户端集成、路由配置、布局组件、企业认证框架,所有测试通过,现有功能适配为企业用户使用
- 故事011.002完成情况:登录页面UI更新完成(严格对照原型设计),首页仪表板实现完整,认证状态管理增强(自动token刷新),集成测试通过(23个测试)
史诗描述
现有系统上下文
当前相关功能:
- mini项目:基础小程序前端,已改造登录、个人资料页面为企业用户使用(注册功能由管理员管理)
- API客户端:已集成auth、user、role、file模块的RPC客户端(api.ts)
- 史诗7,8,9,10成果:已移植allin系统的7个后端模块和对应UI模块(channel、company、disability_person、order、platform、salary等)
- 原型设计:
docs/小程序原型/yongren.html 提供了完整的8个页面原型设计
技术栈:
- 前端:TypeScript、React、Hono RPC客户端、Tailwind CSS
- 测试:Jest(mini项目使用Jest,其他包使用Vitest)
- API通信:基于Hono RPC的API客户端模式
- 包管理:pnpm workspace
集成点:
- 需要将史诗7,8,9,10移植的allin系统模块API客户端集成到mini项目
- 依赖史诗012(API补充与数据库扩展)提供完整的用人方小程序API支持
- 基于已有RPC客户端模式扩展新的API客户端,使用
api/v1/yongren路径前缀
- UI组件开发:基于原型文件独立开发小程序UI组件,复用现有小程序通用组件(如登录注册组件),只修改样式,保持核心逻辑不变
- 遵循mini项目现有的页面结构和路由配置
史诗012完成状态更新(2025-12-17):
- ✅ 完成情况:5/6核心故事完成(83%),MVP就绪
- ✅ 已完成的API:数据库schema、企业用户认证、企业统计、人才扩展、订单统计、数据统计、视频管理
- ⚠️ 延期API:系统设置API(P2优先级,非MVP必需)
- 📊 进度:史诗011可以立即开始,但故事011.006需调整系统设置相关功能实现计划
增强详情
新增/变更内容:
在mini项目中实现用人方小程序的8个核心页面,包括:
- 登录页 - 企业用户手机号密码登录
- 首页/看板 - 企业概览、人才分配、数据卡片
- 人才列表页 - 人才搜索、筛选、分页展示
- 人才详情页 - 个人信息、工作历史、薪资、视频管理
- 数据统计页 - 可视化图表、残疾类型分布、性别年龄分布等
- 订单管理页 - 订单列表、状态管理、打卡数据统计
- 企业设置页 - 企业信息、账号管理、安全设置
- 视频查看下载页 - 企业/个人维度的视频管理
页面功能基于:
docs/小程序原型/yongren.html 完整原型设计
- 史诗7,8,9,10移植的API模块提供数据支持
- 缺失的API接口进行增补实现
集成方式:
- API客户端集成:基于现有
api.ts模式,新增allin系统模块的RPC客户端
- UI组件开发:基于原型文件独立开发小程序UI组件,复用现有小程序通用组件(如登录注册组件),只修改样式,保持核心逻辑不变。注意:史诗011针对mini小程序,UI组件应独立设计,而非复用管理后台的
@d8d/allin-*系列UI包
- 页面结构:遵循mini项目现有的页面目录结构(
src/pages/)
- 路由配置:使用现有的路由配置模式
成功标准:
- 8个页面功能完整实现,符合原型设计要求
- 与史诗7,8,9,10移植的API模块无缝集成
- 保持mini项目现有功能的完整性(登录、注册、个人资料等)
- 通过Jest测试验证,包括组件测试和集成测试
- 遵循项目编码规范和UI组件使用规范
故事列表
故事011.001:基础框架搭建
背景: 史诗012已完成5/6核心故事(83%),MVP API就绪。需要将史诗7,8,9,10移植的API模块及史诗012补充的API集成到mini项目的RPC客户端中,建立用人方小程序的基础技术框架。注:系统设置API为P2优先级延期功能。
任务列表:
- 分析史诗7,8,9,10移植的API模块及史诗012补充的API,确定需要集成的RPC客户端
- 扩展
mini/src/api.ts,新增allin系统模块的RPC客户端,包括史诗012补充的API接口
- 配置用人方小程序的路由结构,支持页面导航
- 创建基础布局组件(状态栏、底部导航、页面容器),参考原型设计
docs/小程序原型/yongren.html
- 建立企业用户认证框架,支持后续登录页面集成
- 编写基础测试,验证现有功能不受影响
验收标准:
故事011.002:认证与首页实现
背景: 依赖故事011.001完成的基础框架和史诗012提供的企业用户认证API、企业统计API,实现企业用户登录功能和首页/看板页面。
任务列表:
- 实现登录页面功能,支持企业用户手机号密码登录
- 完善认证状态管理(token存储、验证、自动刷新)
- 实现首页/看板页面,展示企业概览数据(在职人员统计、分配人才列表等)
- 集成企业统计API,实现数据卡片和人才列表组件
- 优化用户体验,确保页面设计符合原型标准
- 编写集成测试,验证登录和首页功能
验收标准:
故事011.003:人才管理功能实现
背景: 依赖故事011.001-011.002完成的基础,以及史诗012提供的人才扩展API,实现人才管理功能。
任务列表:
- 实现人才列表页,支持按姓名、残疾证号搜索,按状态、残疾类型筛选和分页展示
- 实现人才详情页,展示完整信息(基本信息、工作信息、薪资信息等)
- 集成薪资管理API,实现薪资历史记录查看功能
- 集成文件管理API,实现个人征信文件预览和下载
- 优化大数据量列表性能和页面间导航
- 编写集成测试,验证人才管理功能
验收标准:
故事011.004:订单管理功能实现
背景: 依赖故事011.001-011.003完成的基础,以及史诗012提供的订单统计API、视频管理API,实现订单管理功能。
任务列表:
- 实现订单管理页,展示订单列表,支持状态筛选和搜索
- 实现订单状态管理(查看、编辑、状态变更)
- 实现打卡数据统计功能,显示考勤记录
- 实现视频统计功能,关联订单的视频资料可查看
- 优化页面加载性能和大数据量处理
- 编写集成测试,验证订单管理功能
验收标准:
故事011.005:数据统计功能实现
背景: 依赖故事011.001-011.004完成的基础,以及史诗012提供的数据统计API,实现数据可视化功能。
任务列表:
- 实现数据统计页,展示完整的统计图表集合
- 实现残疾类型分布图表,数据准确显示
- 实现性别分布、年龄分布、户籍省份分布图表
- 支持数据筛选(时间范围、部门等)和图表交互
- 优化图表加载性能和移动端显示
- 编写集成测试,验证数据统计功能
验收标准:
故事011.006:视频与系统管理功能实现
背景: 依赖故事011.001-011.005完成的基础,以及史诗012提供的视频管理API,实现视频管理和企业设置功能。注:系统设置API为P2优先级延期功能,企业设置页高级功能需相应调整实现计划。
任务列表:
- 实现视频查看下载页,支持企业维度和个人维度的视频管理
- 实现视频操作功能(播放、下载、分享、批量下载)
- 实现企业设置页面基础功能(企业信息展示)
- 处理系统设置API延期,标记账号管理、安全设置等高级功能为"后期优化"
- 优化视频播放体验和大文件处理性能
- 编写集成测试,验证视频与系统管理功能
验收标准:
兼容性要求
风险缓解
主要风险:
- 数据库schema变更风险:新增字段和枚举扩展可能影响现有数据操作和查询
- API集成可能影响现有功能稳定性
- UI组件复用可能存在兼容性问题
- 数据统计图表性能可能影响页面加载速度
缓解措施:
- 数据库变更分步实施:
- 先添加可为空的
birth_date字段,不影响现有记录
- 扩展
asset_type枚举时保留原有枚举值,确保向后兼容
users2表添加可为空的company_id字段,现有admin用户不受影响
- 逐步集成:每个API模块独立集成,分阶段测试验证
- 组件测试:对复用的UI组件进行充分测试,确保兼容性
- 性能优化:数据统计图表采用懒加载和分页,优化大数据量展示;实时统计查询添加适当的数据库索引
- 回滚计划:保持原有
api.ts不变,新增独立客户端文件,便于回滚
回滚计划:
- 如果新增功能导致严重问题,可临时移除新增路由,恢复原有功能
- API客户端变更可通过版本控制回退到上一个稳定版本
- 数据库schema变更支持可逆回滚:
birth_date字段:如需要可删除该字段,不影响核心业务数据
asset_type枚举扩展:新增的枚举值不影响原有数据,可安全保留
company_id字段:如需要可删除该字段,企业用户可暂时通过其他方式关联
- 保留完整的数据迁移脚本,支持向前和向后迁移
完成定义
依赖关系
- 依赖史诗7,8,9,10移植的API模块和UI组件包
- 依赖史诗012(API补充与数据库扩展):提供企业用户认证、企业统计、人才扩展、订单统计、数据统计、视频管理等API接口(5/6核心故事完成,系统设置API延期至P2优先级)
- 依赖现有mini项目的基础框架和构建配置
- 依赖数据库schema与移植模块保持一致(通过史诗012扩展)
- 需要测试环境支持,包括API服务和数据库
史诗012依赖状态(2025-12-17验证):
- ✅ 已就绪:数据库schema、企业用户认证、企业统计、人才扩展、订单统计、数据统计、视频管理
- ⚠️ 延期:系统设置API(P2,非MVP必需)
- 🚀 启动建议:史诗011可以立即开始,故事011.006需调整系统设置相关功能实现
测试策略
- 单元测试:对新增组件和工具函数进行Jest单元测试
- 集成测试:测试API客户端与后端服务的集成
- UI测试:对页面交互和用户体验进行测试
- 性能测试:验证数据统计页面的加载和渲染性能
- 兼容性测试:测试不同设备和浏览器的兼容性
- 回归测试:确保现有功能不受影响
故事经理交接说明:
请为这个已有项目开发详细用户故事。关键考虑:
- 这是对现有mini项目的增强,技术栈:TypeScript、React、Hono RPC、Tailwind CSS,测试使用Jest
- 集成点:史诗7,8,9,10移植的allin系统API模块(channel、company、disability_person、order、platform、salary等)
- 现有模式:遵循mini项目现有的api.ts RPC客户端模式、页面结构和路由配置
- 关键兼容要求:不影响现有登录、注册、个人资料等功能,保持系统完整性
- 每个故事必须验证现有功能保持完整
史诗应在保持系统完整性的同时,为企业用户提供完整的残疾人就业管理功能,实现docs/小程序原型/yongren.html中的完整页面功能。