Files
x-server-mobile/docs/modules/business-trip
root e3fa7e86f3 docs: 重组文档结构,按模块分类
新的文档结构:
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、关键文件等
2026-02-28 11:42:51 +08:00
..

出差申请模块 (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