# 发现与决策

## 需求

### 10个OA功能模块
1. **报销单** — 实报实销，事后报销，含明细
2. **报销明细表（报表）** — 报销数据的汇总报表
3. **报销申请单** — 事前申请，预估费用，审批后执行
4. **报销申请明细表（报表）** — 报销申请的汇总报表
5. **加班申请单** — 加班事前/事后申请
6. **加班申请明细表（报表）** — 加班数据汇总报表
7. **用车申请单** — 车辆使用申请
8. **用车申请明细表（报表）** — 用车数据汇总报表
9. **业务员外出日志** — 销售外勤签到/日志
10. **公告** — 公司通知公告

### 用户角色
- **普通员工/业务员**：发起申请、查看自己的数据、查看公告
- **审批人/管理员**：审批待办、查看报表、发布公告

## 研究发现

### 现有代码架构
- 项目已有良好的基础架构：
  - Riverpod 状态管理
  - GoRouter 路由
  - Dio 网络层（含 Mock 拦截器）
  - Material 3 主题（主色 #00ABF3）
  - 响应式布局辅助类
  - 共享组件（AppCard, StatusTag, FormSection, FormFieldRow）
- 现有功能为骨架/占位代码，需完整实现
- TDesign Flutter **未**添加为依赖

### TDesign Flutter
- 版本 0.2.7，要求 Flutter >=3.16.0，Dart SDK >=3.2.6
- 提供 60+ 组件：Button, Cell, Input, Form, Tag, Dialog, Picker, DatePicker, NavBar, Tabs, TabBar, SearchBar, Image, Avatar, Badge, Steps, Table, PullDownRefresh, LoadMore, SwipeAction, ActionSheet, Toast, Loading, Message, Popup, Empty, Divider 等
- 主题系统：TDThemeData, TDTheme.of(context), needMultiTheme()
- 支持明暗主题切换

### 参考产品设计模式（钉钉/企业微信/飞书）
- 工作台首页：卡片式入口，待办数量角标
- 列表页：状态筛选标签栏 + 卡片列表 + 下拉刷新 + 上拉加载
- 申请页：分组表单 + 底部固定按钮
- 详情页：信息分组展示 + 审批流程时间线
- 报表页：筛选条件 + 图表 + 列表

## 技术决策
| 决策 | 理由 |
|------|------|
| 使用 TDesign Flutter 替代原生 Material | 用户明确要求，提供统一设计语言 |
| 报销单=实报实销，报销申请单=预申请 | 参考企业微信/金蝶的业务模型 |
| 保持现有 Riverpod + GoRouter 架构 | 已建立良好基础，无需重构 |
| iOS 使用 Method Channel 通信 | OC 宿主应用兼容 |
| 报表使用 fl_chart | 已在依赖中，无需新增 |

## 遇到的问题
| 问题 | 解决方案 |
|------|---------|
|      |         |

## 资源
- TDesign Flutter GitHub: https://github.com/Tencent/tdesign-flutter
- TDesign Flutter 文档: https://tdesign.tencent.com/flutter/getting-started
- fl_chart: https://pub.dev/packages/fl_chart

## 视觉/浏览器发现
- TDesign Flutter 提供 TDCell 组件，适合列表项展示（类似微信列表项）
- TDButton 支持多种样式：fill/outline/text，多种主题色
- TDDatePicker 支持日期/时间/日期时间选择
- TDForm + TDFormItem 提供表单能力
- TDTag 提供状态标签（适合审批状态展示）
- TDSwipeAction 提供滑动操作（左滑编辑/删除，类似现有 flutter_slidable）

---
*每执行2次查看/浏览器/搜索操作后更新此文件*
*防止视觉信息丢失*
