|
|
@@ -0,0 +1,251 @@
|
|
|
+# 故事 011.006:视频与系统管理功能实现
|
|
|
+
|
|
|
+## 状态
|
|
|
+Draft
|
|
|
+
|
|
|
+## 故事
|
|
|
+**作为**企业用户,
|
|
|
+**我希望**管理企业相关的视频资料和查看企业基本信息,
|
|
|
+**以便**进行资料归档和账户管理。
|
|
|
+
|
|
|
+## 验收标准
|
|
|
+
|
|
|
+1. [ ] 视频查看下载页功能完整,支持企业维度和个人维度的视频管理
|
|
|
+2. [ ] 视频支持播放、下载、分享、批量下载功能
|
|
|
+3. [ ] 企业设置页面基础功能可用(企业信息展示)
|
|
|
+4. [ ] 账号管理、安全设置等高级功能标记为"后期优化"(因系统设置API延期)
|
|
|
+5. [ ] 页面设计符合原型标准,与系统其他部分无缝集成
|
|
|
+
|
|
|
+## 任务 / 子任务
|
|
|
+
|
|
|
+- [ ] 任务1:实现视频查看下载页面(AC:1)
|
|
|
+ - [ ] 创建视频管理页面组件,使用基础布局组件
|
|
|
+ - [ ] 集成视频管理API(史诗012提供)
|
|
|
+ - [ ] 实现视频列表展示(缩略图、标题、类型、大小、上传时间等)
|
|
|
+ - [ ] 支持企业维度和个人维度的视频筛选
|
|
|
+ - [ ] 添加视频分类和标签功能
|
|
|
+- [ ] 任务2:实现视频操作功能(AC:2)
|
|
|
+ - [ ] 实现视频播放功能(内置播放器或调用系统播放器)
|
|
|
+ - [ ] 实现视频下载功能(单个下载)
|
|
|
+ - [ ] 实现视频分享功能(生成分享链接)
|
|
|
+ - [ ] 实现批量视频选择和多选下载
|
|
|
+ - [ ] 添加视频搜索和筛选功能
|
|
|
+- [ ] 任务3:实现企业设置页面基础功能(AC:3,4)
|
|
|
+ - [ ] 创建企业设置页面组件
|
|
|
+ - [ ] 集成企业管理API(company模块)获取企业信息
|
|
|
+ - [ ] 展示企业基本信息(公司名称、统一社会信用代码、联系人、电话等)
|
|
|
+ - [ ] 实现企业信息编辑功能(如有权限)
|
|
|
+ - [ ] 添加"账号管理"、"安全设置"等功能的占位界面,标注"后期优化"
|
|
|
+- [ ] 任务4:优化视频管理用户体验(AC:5)
|
|
|
+ - [ ] 参考原型设计:`docs/小程序原型/yongren.html`中的视频管理页面
|
|
|
+ - [ ] 实现视频缩略图生成和缓存
|
|
|
+ - [ ] 优化大视频文件的加载和播放体验
|
|
|
+ - [ ] 添加视频上传进度显示
|
|
|
+ - [ ] 确保移动端视频播放兼容性
|
|
|
+- [ ] 任务5:处理系统设置API延期(AC:4)
|
|
|
+ - [ ] 识别受系统设置API延期影响的功能
|
|
|
+ - [ ] 实现降级方案(如本地配置、默认值)
|
|
|
+ - [ ] 添加功能不可用的友好提示
|
|
|
+ - [ ] 标记延期功能为"后期优化"状态
|
|
|
+- [ ] 任务6:编写集成测试
|
|
|
+ - [ ] 编写视频管理功能测试
|
|
|
+ - [ ] 测试批量下载功能
|
|
|
+ - [ ] 测试企业信息展示功能
|
|
|
+ - [ ] 验证延期功能的处理方式
|
|
|
+
|
|
|
+## 开发笔记
|
|
|
+
|
|
|
+### 依赖关系
|
|
|
+**依赖故事**:
|
|
|
+- 011.001(基础框架搭建):提供API客户端、路由、基础布局
|
|
|
+- 011.002(认证与首页):提供认证状态管理
|
|
|
+- 011.004(订单管理):视频与订单关联,可能需要订单筛选
|
|
|
+
|
|
|
+**API依赖状态**:
|
|
|
+- ✅ 视频管理API:史诗012已提供 [来源:docs/prd/epic-011-employer-mini-program-implementation.md#史诗012完成状态更新]
|
|
|
+- ✅ 企业管理API:company模块已移植
|
|
|
+- ⚠️ 系统设置API:史诗012延期(P2优先级)[来源:docs/prd/epic-011-employer-mini-program-implementation.md#史诗012完成状态更新]
|
|
|
+
|
|
|
+### API规范
|
|
|
+**视频管理API**(史诗012提供):
|
|
|
+- 视频列表查询接口(支持按企业、个人、订单筛选)
|
|
|
+- 视频播放地址获取接口
|
|
|
+- 视频下载接口
|
|
|
+- 视频统计接口
|
|
|
+- 批量操作接口
|
|
|
+
|
|
|
+**企业管理API**(company模块):
|
|
|
+- 企业信息查询接口
|
|
|
+- 企业信息更新接口(如有权限)
|
|
|
+
|
|
|
+**技术集成**:
|
|
|
+- 使用故事011.001集成的RPC客户端
|
|
|
+- API路径前缀:`api/v1/yongren`
|
|
|
+
|
|
|
+### 组件规范
|
|
|
+**视频管理页设计规范**:
|
|
|
+必须严格对照原型文件 `docs/小程序原型/yongren.html` 第1440-1609行(企业维度)和第1610-...行(个人维度)的视频管理页面设计实现:
|
|
|
+
|
|
|
+**页面结构**:
|
|
|
+- **注意**:小程序环境中状态栏由宿主提供,无需自行实现
|
|
|
+- 内容区域:`h-[calc(100%-60px)] overflow-y-auto`(仅减去底部导航60px)
|
|
|
+- 底部导航:设置标签激活状态(视频管理在企业设置页面内)
|
|
|
+
|
|
|
+**顶部信息区域**(第1455-1465行):
|
|
|
+- 容器:`p-4 border-b border-gray-200`
|
|
|
+- 内容:`flex items-center justify-between`
|
|
|
+ - 左侧:标题 `<h3 class="font-semibold text-gray-800">阿里巴巴2023-11</h3>`,副标题 `<p class="text-sm text-gray-500">企业维度 - 打卡视频管理</p>`
|
|
|
+ - 右侧:批量下载按钮 `<button class="text-blue-500 text-sm"><i class="fas fa-download mr-1"></i>批量下载</button>`
|
|
|
+
|
|
|
+**视频分类筛选区域**(第1468-1475行):
|
|
|
+- 容器:`p-4 border-b border-gray-200`
|
|
|
+- 筛选标签区域:`flex space-x-2 overflow-x-auto pb-2`
|
|
|
+ - 标签样式:`bg-blue-100 text-blue-800 text-xs px-3 py-1 rounded-full whitespace-nowrap`(激活状态)
|
|
|
+ - 非激活标签:`bg-gray-100 text-gray-800 text-xs px-3 py-1 rounded-full whitespace-nowrap`
|
|
|
+ - 分类:全部视频、工资视频、个税视频、打卡视频
|
|
|
+
|
|
|
+**视频列表标题区域**(第1479-1489行):
|
|
|
+- 容器:`flex justify-between items-center mb-4`
|
|
|
+- 标题:`<h3 class="font-semibold text-gray-700">视频列表 (12)</h3>`
|
|
|
+- 操作按钮:`flex space-x-2`
|
|
|
+ - 排序按钮:`<button class="text-gray-500"><i class="fas fa-sort"></i></button>`
|
|
|
+ - 筛选按钮:`<button class="text-gray-500"><i class="fas fa-filter"></i></button>`
|
|
|
+
|
|
|
+**视频卡片列表**(第1491-...行):
|
|
|
+- 容器:`space-y-4`
|
|
|
+- 视频卡片:`card bg-white p-4`
|
|
|
+
|
|
|
+**视频卡片头部**(第1494-1500行):
|
|
|
+- 容器:`flex justify-between items-start mb-3`
|
|
|
+ - 左侧:视频标题 `<h4 class="font-semibold text-gray-800">张明 - 工资视频</h4>`,上传时间 `<p class="text-xs text-gray-500">2023-11-25 上传</p>`
|
|
|
+ - 右侧:状态标签 `<span class="bg-green-100 text-green-800 text-xs px-2 py-1 rounded-full">已验证</span>`
|
|
|
+
|
|
|
+**视频内容区域**(第1501-1509行):
|
|
|
+- 容器:`flex items-center mb-3`
|
|
|
+ - 缩略图区域:`w-16 h-16 bg-gray-200 rounded-lg flex items-center justify-center mr-3`,播放图标 `<i class="fas fa-play text-gray-500"></i>`
|
|
|
+ - 视频信息区域:`flex-1`
|
|
|
+ - 视频描述:`<p class="text-sm text-gray-700">工资发放确认视频</p>`
|
|
|
+ - 视频属性:`<p class="text-xs text-gray-500">时长: 00:45 · 大小: 12.3MB</p>`
|
|
|
+
|
|
|
+**操作按钮区域**(第1510-1520行):
|
|
|
+- 容器:`flex justify-between text-sm`
|
|
|
+ - 播放按钮:`text-blue-500`,图标 `<i class="fas fa-play mr-1"></i>`,文字"播放"
|
|
|
+ - 下载按钮:`text-green-500`,图标 `<i class="fas fa-download mr-1"></i>`,文字"下载"
|
|
|
+ - 分享按钮:`text-gray-500`,图标 `<i class="fas fa-share mr-1"></i>`,文字"分享"
|
|
|
+
|
|
|
+**企业设置页设计规范**:
|
|
|
+必须严格对照原型文件 `docs/小程序原型/yongren.html` 第1302-1439行的企业设置页面设计实现:
|
|
|
+
|
|
|
+**页面结构**:
|
|
|
+- **注意**:小程序环境中状态栏由宿主提供,无需自行实现
|
|
|
+- 内容区域:`h-[calc(100%-60px)] overflow-y-auto`(仅减去底部导航60px)
|
|
|
+- 底部导航:设置标签激活状态
|
|
|
+
|
|
|
+**企业信息区域**(第1317-1341行):
|
|
|
+- 容器:`p-4 border-b border-gray-200`
|
|
|
+- 企业logo和名称区域:`flex items-center mb-4`
|
|
|
+ - logo容器:`w-16 h-16 rounded-full bg-blue-100 flex items-center justify-center mr-4`
|
|
|
+ - logo图标:`<i class="fas fa-building text-blue-500 text-2xl"></i>`
|
|
|
+ - 名称信息:`<h3 class="font-semibold text-gray-800">阿里巴巴集团</h3>`,`<p class="text-sm text-gray-500">企业账号</p>`
|
|
|
+- 统计卡片区域:`grid grid-cols-3 gap-3 text-center`
|
|
|
+ - 每个卡片:数值 `<p class="text-xl font-bold text-gray-800">24</p>`,标签 `<p class="text-xs text-gray-500">在职人员</p>`
|
|
|
+ - 统计类型:在职人员、进行中订单、累计订单
|
|
|
+
|
|
|
+**功能列表区域**(第1344-...行):
|
|
|
+- 容器:`p-4`
|
|
|
+
|
|
|
+**第一组功能列表**(第1345-1373行):
|
|
|
+- 容器:`space-y-1 mb-6`
|
|
|
+- 功能项样式:`flex items-center justify-between p-3 rounded-lg hover:bg-gray-50`
|
|
|
+ - 左侧:`flex items-center`
|
|
|
+ - 图标容器:`w-10 h-10 rounded-full bg-blue-100 flex items-center justify-center mr-3`
|
|
|
+ - 图标:`<i class="fas fa-user text-blue-500"></i>`
|
|
|
+ - 文字:`<span class="text-gray-700">账号信息</span>`
|
|
|
+ - 右侧:箭头图标 `<i class="fas fa-chevron-right text-gray-400"></i>`
|
|
|
+- 功能项:账号信息(蓝色)、安全设置(绿色)、消息通知(紫色)
|
|
|
+
|
|
|
+**第二组功能列表**(第1375-...行):
|
|
|
+- 容器:`space-y-1 mb-6`
|
|
|
+- 功能项样式:同上
|
|
|
+- 功能项:帮助中心(黄色)、用户协议(靛蓝色)、隐私政策(粉色)
|
|
|
+
|
|
|
+**延期功能处理**:
|
|
|
+- 受系统设置API延期影响的功能(账号管理、安全设置、消息通知等):
|
|
|
+ - 保持页面结构和样式不变
|
|
|
+ - 添加"后期优化"标签:`<span class="text-xs text-gray-400 ml-2">(后期优化)</span>`
|
|
|
+ - 点击时显示提示:"该功能正在开发中,预计下一版本上线"
|
|
|
+
|
|
|
+**UI组件使用**:
|
|
|
+- 复用基础UI组件(卡片、列表、表单等)
|
|
|
+- 视频播放器组件选择(根据项目现有技术栈)
|
|
|
+- 遵循UI包开发规范 [来源:docs/architecture/coding-standards.md#ui包开发提示]
|
|
|
+
|
|
|
+### 文件位置
|
|
|
+**页面组件位置**:
|
|
|
+- `mini/src/pages/yongren/video/` - 视频管理页面
|
|
|
+- `mini/src/pages/yongren/settings/` - 企业设置页面
|
|
|
+
|
|
|
+**业务组件位置**:
|
|
|
+- `mini/src/components/video/` - 视频相关组件
|
|
|
+ - `VideoGrid.tsx` - 视频网格组件
|
|
|
+ - `VideoPlayer.tsx` - 视频播放器组件
|
|
|
+ - `VideoBatchToolbar.tsx` - 批量操作工具栏
|
|
|
+- `mini/src/components/settings/` - 设置相关组件
|
|
|
+ - `CompanyInfoCard.tsx` - 企业信息卡片
|
|
|
+ - `FeaturePlaceholder.tsx` - 功能占位组件
|
|
|
+
|
|
|
+### 数据模型
|
|
|
+基于史诗012扩展的数据库schema:
|
|
|
+- `order_person_asset`表的`asset_type`枚举已扩展视频类型 [来源:docs/stories/012.001.story.md#数据模型]
|
|
|
+ - 视频类型:`salary_video`(工资视频)、`tax_video`(个税视频)、`checkin_video`(打卡视频)、`work_video`(工作视频)
|
|
|
+- 视频文件通过file模块管理,关联到订单和人才
|
|
|
+
|
|
|
+### 技术约束
|
|
|
+- **视频处理**:不同格式视频的播放兼容性
|
|
|
+- **文件大小**:大视频文件的下载和播放性能
|
|
|
+- **权限控制**:视频访问权限验证(仅关联企业可访问)
|
|
|
+- **API延期**:系统设置功能需优雅降级处理
|
|
|
+- **移动端适配**:视频播放在移动端的用户体验
|
|
|
+
|
|
|
+### 延期功能处理
|
|
|
+**受影响的系统设置功能**:
|
|
|
+1. 账号管理(员工账号添加、删除、权限分配)
|
|
|
+2. 安全设置(密码策略、登录限制等)
|
|
|
+3. 通知设置(消息推送配置)
|
|
|
+4. 高级企业信息配置
|
|
|
+
|
|
|
+**处理方案**:
|
|
|
+- 页面展示功能入口,但标记为"后期优化"
|
|
|
+- 添加提示信息:"该功能正在开发中,预计下一版本上线"
|
|
|
+- 保持页面结构完整,为后续开发预留接口
|
|
|
+
|
|
|
+### 测试要求
|
|
|
+**测试框架**:Jest + Testing Library
|
|
|
+**关键测试场景**:
|
|
|
+1. **视频管理测试**:
|
|
|
+ - 视频列表加载测试
|
|
|
+ - 视频播放功能测试
|
|
|
+ - 批量下载功能测试
|
|
|
+ - 视频筛选功能测试
|
|
|
+2. **企业设置测试**:
|
|
|
+ - 企业信息展示测试
|
|
|
+ - 信息编辑功能测试(如有权限)
|
|
|
+ - 延期功能提示测试
|
|
|
+3. **集成测试**:
|
|
|
+ - 视频与订单关联测试
|
|
|
+ - 权限验证测试
|
|
|
+ - 移动端兼容性测试
|
|
|
+4. **性能测试**:
|
|
|
+ - 大视频文件加载性能测试
|
|
|
+ - 批量操作性能测试
|
|
|
+
|
|
|
+## 变更日志
|
|
|
+| 日期 | 版本 | 描述 | 作者 |
|
|
|
+|------|------|------|------|
|
|
|
+| 2025-12-17 | 1.0 | 初始创建(视频与系统管理故事) | Bob(Scrum Master) |
|
|
|
+
|
|
|
+## 开发代理记录
|
|
|
+*此部分由开发代理在实施过程中填充*
|
|
|
+
|
|
|
+## QA结果
|
|
|
+*来自QA代理对已完成故事实施的QA审查结果*
|