Sync migrated iOS modules
This commit is contained in:
26
suixinkan/Features/Statistics/Statistics.md
Normal file
26
suixinkan/Features/Statistics/Statistics.md
Normal file
@ -0,0 +1,26 @@
|
||||
# Statistics 模块业务逻辑
|
||||
|
||||
## 模块职责
|
||||
|
||||
Statistics 模块负责登录后的数据 Tab,展示当前景区下的订单统计看板。
|
||||
|
||||
当前同步旧工程数据页的主要能力:时间段切换、统计汇总卡、每日明细、分页加载和下拉刷新。
|
||||
|
||||
## 核心对象
|
||||
|
||||
- `StatisticsView`:数据 Tab 根视图,读取当前景区、当前角色和统计 API。
|
||||
- `StatisticsViewModel`:管理时间段、汇总数据、每日明细、分页状态和加载状态。
|
||||
- `StatisticsAPI`:封装摄影师和景区管理员两套统计接口。
|
||||
- `StatisticsPeriod`:表示今日、昨日、7日、本月四个快捷时间段。
|
||||
|
||||
## 数据流程
|
||||
|
||||
页面从 `AccountContext.currentScenic` 获取当前景区 ID。缺少景区时显示空状态,不请求接口。
|
||||
|
||||
切换时间段时同时请求汇总接口和第一页日数据接口。汇总接口使用 `range` 参数,日数据接口使用 `start_time`、`end_time`、`page` 和 `page_size`。
|
||||
|
||||
`roleId == 53` 时使用景区管理员接口,其他角色使用摄影师接口。日数据响应使用 `DataListPayload` 解码,兼容后端返回 `data` 或 `list` 字段。
|
||||
|
||||
## 分页规则
|
||||
|
||||
每日明细第一页随刷新或时间段切换加载。列表滚动到底部后,如果当前数量小于 total,则继续加载下一页。加载更多失败时保留已有数据和当前页状态。
|
||||
Reference in New Issue
Block a user