Files
suixinkan_ios_uikit/suixinkan_ios/Features/Tasks/Tasks.md
2026-06-26 14:33:31 +08:00

1.8 KiB

Tasks 模块业务逻辑

模块职责

Tasks 模块负责首页“任务管理”和“发布任务”入口,包括任务列表、筛选、分页、任务详情、可关联订单、云盘附件选择和本地附件 OSS 上传。

任务状态只保存在本模块 ViewModel 内,不写入 AppSessionAccountContext 或 TabBar。当前景区 ID 从 AccountContext.currentScenic 读取,缺少景区时不请求任务接口。

数据来源

TaskAPI 封装任务接口:

  • taskList 获取任务列表。
  • taskDetail 获取任务详情。
  • availableOrderList 获取发布任务可关联订单。
  • addTask 提交发布任务。
  • cloudFileList 仅用于发布任务选择云盘附件,不代表完整云盘模块迁移。

任务本地附件上传复用 OSSUploadService.uploadTaskFile,上传成功后把最终 OSS URL 放入 upload_file 提交给发布任务接口。OSS STS、上传进度和本地文件数据不落盘。

页面流程

任务管理页支持状态筛选、任务名称搜索、开始/结束日期筛选、下拉刷新和加载更多。点击任务卡片进入任务详情页,详情接口失败时保留列表摘要信息作为兜底。

发布任务页支持填写任务名称、任务备注、紧急小时、选择关联订单、选择云盘文件和选择本地图片/视频。提交前先校验表单,再上传本地附件,最后调用发布任务接口。任意附件上传失败时不提交任务。

迁移边界

本轮不迁旧工程中把订单管理和核销订单拼成“待办任务”的逻辑;订单与核销已经归 Features/Orders 管理。

本轮不迁完整云盘资产管理,只保留发布任务所需的文件选择能力。云盘的新建文件夹、上传、删除、移动、重命名等能力后续应放在独立云盘模块中迁移。