findings.md 3.2 KB

发现与决策

需求

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 提供 TDCell 组件,适合列表项展示(类似微信列表项)
  • TDButton 支持多种样式:fill/outline/text,多种主题色
  • TDDatePicker 支持日期/时间/日期时间选择
  • TDForm + TDFormItem 提供表单能力
  • TDTag 提供状态标签(适合审批状态展示)
  • TDSwipeAction 提供滑动操作(左滑编辑/删除,类似现有 flutter_slidable)

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