SFT/mock-server
halo 982b8723a4 企业开户流程调试 2026-08-08 10:31:10 +08:00
..
assets/bank-agreements 新增功能 2026-08-06 21:36:55 +08:00
db 企业开户流程调试 2026-08-08 10:31:10 +08:00
middleware 重建mock后端并与真实接口契约严格对齐 2026-07-10 11:39:28 +08:00
routes 更改前端代码 2026-08-07 14:13:09 +08:00
utils 重建mock后端并与真实接口契约严格对齐 2026-07-10 11:39:28 +08:00
README.md 初始化项目代码 2026-08-04 09:58:39 +08:00
index.js 新增功能 2026-08-06 21:36:55 +08:00
state.js 重建mock后端并与真实接口契约严格对齐 2026-07-10 11:39:28 +08:00

README.md

Mock Server 使用说明

本目录提供“凡荣e链前端”管理后台的本地 Mock 后端,用于在真实后端不可用时进行前端联调与演示。 所有接口路径、请求/响应字段严格对齐 swagger_project_scfs_2026-07-09_14-15-23.json 及项目前端 实际调用代码(src/api/*.js),核心业务规则(登录锁定、状态流转、余额扣减、发票匹配/结算等)均 为真实本地状态维护,而非纯占位透传。

启动方式

npm run mock

默认监听端口 8888,可通过环境变量 MOCK_PORT 覆盖:

$env:MOCK_PORT=9000; npm run mock   # PowerShell

与前端配合使用

项目 .env.developmentVITE_API_BASE_URL 默认已指向 http://localhost:8888,因此本地开发 npm run dev 默认即请求本 Mock Server,无需任何额外配置。

若需切换到真实后端,或临时切换回 Mock:登录页右上角齿轮图标 →「接口地址设置」弹窗,填入目标地址 (如真实后端地址或 http://localhost:8888)并保存即可,浏览器刷新后立即生效,无需重新构建。

测试账号

用户名 密码 角色
admin Admin@123 系统管理员(全权限)

短信验证码登录/操作场景下,万能验证码 123456 始终有效;真实生成的验证码会打印在 Mock Server 控制台。

目录结构

mock-server/
├── index.js               # 入口:装配全部路由、CORS、Cookie 解析、全局错误处理
├── state.js                # 全局内存态:accessToken/refreshToken/短验码/登录失败计数等
├── middleware/
│   └── requireAuth.js      # 鉴权中间件:校验 Authorization: Bearer <accessToken>
├── utils/
│   ├── response.js         # 统一 {code, message, data} 响应封装
│   ├── pagination.js       # 分页工具
│   └── id.js               # 各实体独立自增数字 id 生成器
├── db/                      # 各模块种子数据(内存数组,进程重启后重置)
│   └── seed*.js
└── routes/                  # 各模块路由(Express Router)
    └── *.js

已知简化点 / 未文档化项

以下内容在真实后端 Swagger 中缺失或语义不明确,Mock 按前端实际调用代码/《缺失的后端接口.md》中登记 的权变方案实现,如后续真实后端契约变更,需同步调整:

  • POST /api/payment/query-credit-quota:响应结构完全未文档化,Mock 自行假设为 { accountNo, creditLimit, usedAmount, availableAmount }
  • POST /api/original-order/export:响应结构未文档化,Mock 沿用项目既有 { fileData: base64 } 约定, 返回一段占位内容,仅用于打通下载流程,不代表真实 Excel 内容。
  • original-order/page 仅支持 originalOrderNo 过滤;summary-order/page 仅支持 orderNo 过滤; 均不支持按渠道/日期范围/汇总订单编号等条件过滤(与真实后端能力一致)。
  • 商户模块无 detail/审批接口,前端“查看/编辑”依赖路由带参,审批用启用/停用状态切换代替。
  • 发票取消匹配(unmatch)按发票级别 settleStatus !== 'UNSETTLED' 时禁止操作(简化判断,未按明细粒度校验)。
  • 商户/发票/支付/贷款申请等模块的 id 统一为数字自增,loanApplicationId/merchantNo/invoiceNo 等 业务编号为字符串,两者并存,前端各处按实际使用字段区分。
  • dict-management/dict-type/*(字典类型管理):2026-07-31 起已按最新 swagger (swagger_project_scfs_2026-07-31_09-25-57.json,dict_management 分组)核对确认分页/创建/ 编辑/删除全部 4 个接口的真实路径与字段,dictCategory 取值 NORMAL/CASCADE,status 取值 ENABLED/DISABLED,本 mock 已同步调整,不再是前端占位契约。
  • dict-management/dict-item/*dict-management/dict-items/*(字典项管理):2026-07-31 起已按 最新 swagger 核对确认全部 6 个接口的真实路径与字段(dict-items/list/dict-items/tree/ dict-items/children 三个只读接口 + dict-item/create/update/delete),本 mock 已同步调整。 注意:dict-items/list/dict-items/tree 实测会返回 id/sortOrder(swagger 未完整声明该 字段,以实测为准),DictItemTree.vue 已按此直接支持对已存在字典项的修改/删除/子级新增,mock 同步在这两个接口的响应里附带 id,详见《缺失的后端接口.md》Part 14.2 的更新记录。

数据重置

Mock 数据全部保存在内存中,重启 npm run mock 进程即可恢复到初始种子状态。