接口需求规格说明(IRS) 1. 引言 本文件列出系统对外提供的HTTP/JSON接口规范,严格依据当前代码实现与前端调用编写。 2. 接口通用规范 2.1 协议与认证 - 协议:HTTP/HTTPS,JSON 编码; - 认证:除登录与验证码外,默认需在请求头携带 `Authorization: Bearer `; - Token 获取:通过 `POST /login` 成功登录后,在响应体中以 `Constants.TOKEN` 键返回;前端将其以 `Admin-Token` Cookie 持久化,并在请求拦截器自动附加到请求头。 2.2 响应包装 - 成功:`{ code: 200, msg: 'success', data: any }` - 失败:`{ code: 非200, msg: string }` - 分页:`TableDataInfo`(包含列表与分页元数据,前端直接使用返回体) 2.3 错误码约定(前端处理) - 401:登录过期或未认证,需重新登录; - 500:服务端错误; - 其他非200:按 `src/utils/errorCode.js` 进行展示。 2.4 超时与BaseURL - BaseURL:`process.env.VUE_APP_BASE_API` - 超时:2000ms 3. 接口清单 3.1 验证码 GET /captchaImage - 功能:生成验证码图片与 `uuid`,并在Redis保存验证码文本(键:`Constants.CAPTCHA_CODE_KEY + uuid`)。 - 请求头:无特殊要求 - 请求参数:无 - 响应体:`{ code, msg, uuid: string, img: string(Base64) }` 3.2 登录 POST /login - 功能:登录并颁发 `token`。 - 请求头:`isToken: false` 可选(前端默认对登录不附加Authorization) - 请求体:`{ username: string, password: string, code: string, uuid: string }` - 响应体:`{ code, msg, token: string }`(键名为常量 `Constants.TOKEN`) 3.3 部门信息管理 GET /dept_info/list - 入参:查询参数映射 `Dept` 字段(如 `name`, `manager`, `reportto` 等) - 出参:`TableDataInfo` GET /dept_info/{id} - 入参:路径参数 `id` - 出参:`AjaxResult(data: Dept)` POST /dept_info - 入参:`Dept` JSON - 出参:`AjaxResult` PUT /dept_info - 入参:`Dept` JSON - 出参:`AjaxResult` DELETE /dept_info/{ids} - 入参:路径参数,支持 `,` 分隔批量或数组映射(由后端解析为 `Long[]`) - 出参:`AjaxResult` 3.4 员工信息管理 GET /employee/list GET /employee/{id} POST /employee PUT /employee DELETE /employee/{ids} - 说明:与3.3一致;`PUT /employee` 带事务。 3.5 员工评价管理 GET /employee_kpi/list GET /employee_kpi/{id} POST /employee_kpi PUT /employee_kpi DELETE /employee_kpi/{ids} 3.6 招人名额管理 GET /hirenum/list GET /hirenum/{id} POST /hirenum PUT /hirenum DELETE /hirenum/{ids} 3.7 薪资标准管理 GET /salary_level/list GET /salary_level/{id} POST /salary_level PUT /salary_level DELETE /salary_level/{ids} 4. 数据模型(请求/响应数据结构) - Dept: `{ id: Long, name: String, manager: String, reportto: String }` - Employee: `{ id: Long, dept: String, name: String, position: String, salary: BigDecimal }` - EmployeeKpi: `{ id: Long, kpi: String, bonus: String, manager: String }` - HireNum: `{ id: Long, dept: String, num: BigDecimal, endtime: String }` - SalaryLevel: `{ id: Long, jobType: String, salary: BigDecimal, salaryrange: BigDecimal }` 5. 安全与会话 - 登录成功后,前端以Cookie键 `Admin-Token` 存储token; - 后续请求由 `@/utils/request` 在拦截器中设置 `Authorization: Bearer `; - 401时前端触发登出并跳转首页。 6. 版本与变更 - 本文档随接口变更同步更新;如有新增模块或字段变化,请同步调整第3、4章。