e3fa7e86f3
新的文档结构:
docs/
├── README.md # 文档中心导航
├── modules/ # 模块文档
│ ├── auth/ # 认证模块
│ │ ├── README.md
│ │ ├── feishu-login.md
│ │ ├── feishu-qrcode.md
│ │ └── feishu-notification.md
│ ├── approval/ # 审批流程模块
│ │ └── README.md
│ ├── business-trip/ # 出差申请模块
│ │ └── README.md
│ └── user/ # 用户管理模块
│ └── README.md
└── guides/ # 指南文档
├── deployment.md
├── environment.md
├── git-workflow.md
└── ...
每个模块都有独立的 README.md 说明概述、API、关键文件等
3.5 KiB
3.5 KiB
出差申请模块 (Business Trip Module)
概述
出差申请模块是审批流程的具体业务实现,支持出差行程管理、审批人选择、抄送人选择、草稿自动保存等功能。
核心功能
| 功能 | 说明 |
|---|---|
| 行程管理 | 支持添加多个出差行程(城市、日期、住宿) |
| 审批人选择 | 单选审批人,支持搜索 |
| 抄送人选择 | 多选抄送人,支持搜索 |
| 草稿保存 | 自动保存到 localStorage,刷新后恢复 |
| 默认审批人 | 自动加载历史审批人 |
API 接口
| 接口 | 方法 | 说明 |
|---|---|---|
/api/v1/business-trip/list |
GET | 获取出差列表 |
/api/v1/business-trip/detail/:id |
GET | 获取出差详情 |
/api/v1/business-trip/create |
POST | 创建出差申请 |
/api/v1/business-trip/update/:id |
POST | 更新出差申请 |
/api/v1/business-trip/submit/:id |
POST | 提交审批 |
/api/v1/business-trip/cancel/:id |
POST | 撤销申请 |
/api/v1/business-trip/delete/:id |
DELETE | 删除草稿 |
/api/v1/business-trip/default-approvers |
GET | 获取默认审批人 |
前端关键文件
frontend/src/pages/business-trip/
├── list.tsx # 出差列表页
├── apply.tsx # 出差申请页
├── detail.tsx # 出差详情页
├── select-approver.tsx # 选择审批人
└── select-cc.tsx # 选择抄送人
草稿自动保存
保存时机
- 表单字段变化时
- 添加/删除行程时
- 选择审批人/抄送人时
保存内容
{
trips: [...], // 出差行程
approvers: [...], // 审批人列表
ccUsers: [...], // 抄送人列表
reason: string, // 出差事由
savedAt: timestamp // 保存时间
}
恢复逻辑
- 进入申请页时检查 localStorage
- 如果存在草稿且未超过24小时,提示恢复
- 用户可选择恢复或放弃
表单验证
必填字段
- 出差行程(至少一条)
- 每条行程:出发城市、目的城市、出发日期、返回日期
- 审批人(至少一人)
- 出差事由
日期验证
- 出发日期不能早于今天
- 返回日期不能早于出发日期
- 多条行程日期不能重叠
数据库表结构
business_trip (出差申请)
id -- 主键
company_id -- 公司ID
applicant_id -- 申请人ID
title -- 标题
reason -- 出差事由
status -- 状态 (draft, pending, approved, rejected, cancelled)
current_node_id -- 当前节点ID
created_at
updated_at
business_trip_trip (出差行程)
id -- 主键
business_trip_id -- 出差申请ID
from_city -- 出发城市
to_city -- 目的城市
start_date -- 出发日期
end_date -- 返回日期
hotel_required -- 是否需要住宿
hotel_name -- 酒店名称(可选)
business_trip_approver (审批人)
id -- 主键
business_trip_id -- 出差申请ID
approver_id -- 审批人ID
is_default -- 是否默认审批人
状态流转
draft (草稿)
│ 提交
▼
pending (待审批)
│ 通过 │ 拒绝 │ 撤销
▼ ▼ ▼
approved rejected cancelled
相关文档
负责人: 待分配 最后更新: 2026-02-28