新增任务模块,并接入首页任务管理路由

实现任务列表、详情与创建页面,对接 API,支持云端/本地附件,并添加单元测试。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-23 15:26:13 +08:00
parent 09922f70fe
commit ffb16eca29
23 changed files with 2795 additions and 8 deletions

View File

@ -0,0 +1,30 @@
# Tasks 模块业务逻辑
## 模块职责
Tasks 模块负责首页“任务管理”和“发布任务”入口,包括任务列表、筛选、分页、任务详情、可关联订单、云盘附件选择和本地附件 OSS 上传。
任务状态只保存在本模块 ViewModel 内,不写入 `AppSession``AccountContext` 或 TabBar。当前景区 ID 从 `AccountContext.currentScenic` 读取,缺少景区时不请求任务接口。
## 数据来源
`TaskAPI` 封装任务接口:
- `taskList` 获取任务列表。
- `taskDetail` 获取任务详情。
- `availableOrderList` 获取发布任务可关联订单。
- `addTask` 提交发布任务。
- `cloudFileList` 仅用于发布任务选择云盘附件,不代表完整云盘模块迁移。
任务本地附件上传复用 `OSSUploadService.uploadTaskFile`,上传成功后把最终 OSS URL 放入 `upload_file` 提交给发布任务接口。OSS STS、上传进度和本地文件数据不落盘。
## 页面流程
任务管理页支持状态筛选、任务名称搜索、开始/结束日期筛选、下拉刷新和加载更多。点击任务卡片进入任务详情页,详情接口失败时保留列表摘要信息作为兜底。
发布任务页支持填写任务名称、任务备注、紧急小时、选择关联订单、选择云盘文件和选择本地图片/视频。提交前先校验表单,再上传本地附件,最后调用发布任务接口。任意附件上传失败时不提交任务。
## 迁移边界
本轮不迁旧工程中把订单管理和核销订单拼成“待办任务”的逻辑;订单与核销已经归 `Features/Orders` 管理。
本轮不迁完整云盘资产管理,只保留发布任务所需的文件选择能力。云盘的新建文件夹、上传、删除、移动、重命名等能力后续应放在独立云盘模块中迁移。