# 配置管理模块接口对接
> **Workspace:** f:\qmkj\池州后台
---
**User**
src\views\salaryManagement\settings\index.vue,对接接口,参考doc\prd\贵池区社会工作部工资管理系统 · 后端接口对接文档.docx中的“9. 配置管理模块”,先在doc\prd生产对应的对接接口prd,我确认没有问题后,再开始对接接口
**Assistant**
我先查看相关文件,了解现状。
现在读取对接文档 docx 中「9. 配置管理模块」部分。docx 是压缩格式,我用 PowerShell 提取文本。
现在了解现有 Mock 数据与 store、API 约定。
查看社保管理页对 `salarySettings` 的依赖,评估改动影响面。
已掌握所有上下文。现在编写对接 PRD 文档。
清理临时解压文件。
对接 PRD 已生成:[系统设置模块-后端接口对接PRD.md](file:///f:/qmkj/池州后台/doc/prd/贵池区工资管理系统-系统设置模块-后端接口对接PRD.md)
## PRD 核心内容
**目标**:将 [settings/index.vue](file:///f:/qmkj/池州后台/src/views/salaryManagement/settings/index.vue) 从 Mock(`$store.state.salarySettings`)改为 API 驱动,新增 [settings.js](file:///f:/qmkj/池州后台/src/api/salaryManagement/settings.js) 封装 5 个配置模块接口(对齐 personnel 模块的 `/system/biz/*` 前缀约定)。
**5 个 Tab 对接方案**:
| Tab | 后端接口 | 关键差异 |
|---|---|---|
| 基础工资 | `baseSalaryConfig` | `identityType(试用/正式)` ↔ `personType(1/2)` |
| 三岗十八级 | `salaryConfig` | 后端是「职务+级别+年限区间」**扁平行**,前端需组装成「岗位×18级」网格,编辑时反查原行 PUT |
| 职业资格补贴 | `qualificationSubsidy` | `level→qualificationLevel`、`amount→subsidyAmount`,补齐增删改 |
| 社保配置 | `socialConfig` | **字段缺口**:后端仅列养老/医疗/失业个人比例,无单位比例、工伤/生育、基数上下限 |
| 调整类型 | `adjustType` | 补齐真实新增/编辑/删除(当前为模拟/无处理函数) |
## 需要你确认的关键事项(PRD 第八节)
- **Q1** 各配置表主键字段名?(如 `baseSalaryConfigId` 还是 `id`)
- **Q2** `socialConfig` 是否有「单位比例」「工伤/生育」字段?现页面展示 5 险种×(单位/个人)
- **Q3** 社保「缴费基数上下限」后端是否提供?当前接口文档未列出
- **Q5** `adjustType/list` 标注「form 表单提交」,前端用 POST+JSON 是否可行?
其余 Q4(网格是否展示年限区间列)、Q6(操作日志接口)、Q7(status 启用/停用列)可一并答复。
请确认 PRD 与上述问题后,我再按 S1→S8 开始对接接口。是否需要我先调整 PRD 的某个部分?
---
**User**
三岗十八级工资系数,对应的后端实体类如下,更新一下prd,package com.ruoyi.salary.domain;
import com.ruoyi.common.core.web.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.ibatis.type.Alias;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* biz_salary_config 实体
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Alias("BizSalaryConfig")
public class BizSalaryConfig extends BaseEntity implements Serializable {
private static final long serialVersionUID = 1L;
/** 配置ID */
private Long configId;
/** 岗位类型 */
private String postType;
/** 级别 */
private Integer level;
/** 该等级最小工作年限 */
private Integer minYears;
/** 该等级最大工作年限(null表示无上限) */
private Integer maxYears;
/** 工资系数 */
private BigDecimal coefficient;
/** 基础工资 */
private BigDecimal baseSalary;
/** 状态 */
private String status;
}
**Assistant**
收到,用实体类信息更新 PRD。主要新增:主键 `configId`、`baseSalary` 字段、`maxYears=null` 表示无上限、`coefficient` 为 BigDecimal。
PRD 已按 `BizSalaryConfig` 实体更新完毕:[系统设置模块-后端接口对接PRD.md](file:///f:/qmkj/池州后台/doc/prd/贵池区工资管理系统-系统设置模块-后端接口对接PRD.md)
**本次更新内容**:
- **3.2 三岗十八级**:补充实体全字段(`configId` 主键、`baseSalary`、`maxYears=null` 表示无上限、`coefficient` 为 BigDecimal);编辑单元格时 `PUT` 整行,保留 `configId/minYears/maxYears/baseSalary/status` 防丢字段
- **API 层**:标注 `salaryConfig` 主键为 `configId`
- **前置依赖 / 风险**:新增 `baseSalary` 双口径风险(按等级 vs 按身份)
- **待确认事项**:新增 **Q8** —— 实体含 `baseSalary`(每级一个基础工资),与 9.1 `baseSalaryConfig` 模块(按人员身份维护)口径如何取舍?是否影响「基础工资标准」Tab 的展示拆分
**更新后待确认清单**:
- **Q1** 已确认 `salaryConfig` 主键 `configId`;其余三表(baseSalaryConfig / qualificationSubsidy / socialConfig)主键名待确认
- **Q8(新增)** `salaryConfig.baseSalary` 与 `baseSalaryConfig` 的口径关系
- Q2 / Q3(社保字段缺口)、Q5(adjustType 表单格式)、Q6(操作日志)、Q7(状态列)维持不变
请确认 PRD 与 Q1/Q2/Q3/Q5/Q8 等关键问题后,我即按 S1→S8 开始对接接口。
---
**User**
确认了。先对接“三岗十八级工资系数”,其他的之后再对接
**Assistant**
确认。现在开始对接「三岗十八级工资系数」:新增 API 层 + 改造系数网格 Tab(其余 Tab 保持 Mock 不动)。
先创建 API 文件。
Now update the view. First the template (grid source + loading).
Now the script: imports, data, mounted, and the coefficient methods.
验证代码是否有语法/诊断问题。
「三岗十八级工资系数」对接完成,两处改动均无诊断报错。
## 改动内容
**新增 [settings.js](file:///f:/qmkj/池州后台/src/api/salaryManagement/settings.js)**
- `listSalaryConfig`(GET `/system/biz/salaryConfig/list`)
- `updateSalaryConfig`(PUT `/system/biz/salaryConfig`,按 `configId` 整行提交)
**改造 [settings/index.vue](file:///f:/qmkj/池州后台/src/views/salaryManagement/settings/index.vue)**
- 系数网格不再读 `$store.state.salarySettings`,改为 [loadSalaryConfig](file:///f:/qmkj/池州后台/src/views/salaryManagement/settings/index.vue#L339-L354) 从 API 懒加载(默认 Tab 进入页面即拉取,仅拉一次)
- [assembleSalaryConfigGrid](file:///f:/qmkj/池州后台/src/views/salaryManagement/settings/index.vue#L356-L367):把后端扁平行按 `postType` 分组组装成「职务×18级」网格,仅取启用行(`status='0'`),未配置级别显示 `—` 不可编辑
- 保留原始行 `salaryConfigRows`(含 `configId/minYears/maxYears/baseSalary/status`)供编辑反查
- [saveCoefficient](file:///f:/qmkj/池州后台/src/views/salaryManagement/settings/index.vue#L376-L403):单元格编辑 → 反查原始行 → **整行 PUT**(只改 `coefficient`,避免丢字段),成功后本地同步网格并保留 `addOperationLog` 本地日志
## 未动的部分
- 其余 4 个 Tab(职业资格/基础工资/社保/调整类型)仍走 Mock,待后续按 PRD 逐步对接
- `settings` computed、`clone`、`SET_SETTINGS` 保留给其余 Tab 使用
## 验证建议
启动前端后打开「系统设置」页:网格应从后端 `/system/biz/salaryConfig/list` 渲染;点击系数单元格修改保存,应请求 PUT 且提示「工资系数已更新」。若后端返回的 `status` 不是 `'0'` 字符串(如布尔/空值),网格可能为空,告诉我实际返回格式我再调整过滤逻辑。
---
**User**
职业资格补贴标准,对应的后端实体类如下,更新一下prd,package com.ruoyi.salary.domain;
import com.ruoyi.common.core.web.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.ibatis.type.Alias;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* biz_qualification_subsidy 实体
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Alias("BizQualificationSubsidy")
public class BizQualificationSubsidy extends BaseEntity implements Serializable {
private static final long serialVersionUID = 1L;
/** 补贴ID */
private Long subsidyId;
/** 职业资格等级 */
private String qualificationLevel;
/** 月度补贴金额 */
private BigDecimal subsidyAmount;
/** 状态 */
private String status;
}
**Assistant**
收到,用实体类信息更新 PRD(主键 `subsidyId`、`subsidyAmount` 为 BigDecimal)。
PRD 已更新:[系统设置模块-后端接口对接PRD.md](file:///f:/qmkj/池州后台/doc/prd/贵池区工资管理系统-系统设置模块-后端接口对接PRD.md)
**本次更新内容**:
- **3.3 职业资格补贴**:补充实体全字段 —— 主键 **`subsidyId`(已确认)**、`qualificationLevel`、`subsidyAmount`(BigDecimal)、`status`;编辑 `PUT` / 删除 `DELETE` 需携带 `subsidyId`
- **前置依赖 / Q1**:`qualificationSubsidy` 主键已确认;剩余待确认主键:`baseSalaryConfig`、`socialConfig`
三岗十八级已对接完成;职业资格补贴的 PRD 信息已就绪,等你说「对接」时我再开始实现(当前该 Tab 仍走 Mock)。
---
**User**
确认了。对接“职业资格补贴标准”,其他的之后再对接
**Assistant**
开始对接「职业资格补贴标准」:先在 API 层补充接口,再改造 Tab。
现在改造视图:模板 + 脚本。
「职业资格补贴标准」对接完成,无诊断报错。
## 改动内容
**[settings.js](file:///f:/qmkj/池州后台/src/api/salaryManagement/settings.js)** 新增 4 个接口:
- `listQualificationSubsidy`(GET `/system/biz/qualificationSubsidy/list`)
- `addQualificationSubsidy`(POST)
- `updateQualificationSubsidy`(PUT,按 `subsidyId` 整行)
- `delQualificationSubsidy`(DELETE `/{subsidyId}`)
**[settings/index.vue](file:///f:/qmkj/池州后台/src/views/salaryManagement/settings/index.vue)**:
- 表格不再读 Mock,改为 `qualificationList`,懒加载(首次切换到该 Tab 才拉取,watch `activeTab` 触发)
- 列字段映射:`level→qualificationLevel`、`amount→subsidyAmount`;[isBuiltinLevel](file:///f:/qmkj/池州后台/src/views/salaryManagement/settings/index.vue#L433-L435) 本地推导内置(无/初级/中级/高级)
- 状态列按后端 `status` 显示「启用中 / 已停用」
- 新增/编辑/删除全走 API,操作后强制刷新列表(`loadQualification(true)`);新增默认 `status:'0'`
- 编辑按 `subsidyId` 整行 PUT 只改金额;删除加了二次确认
## 未动的部分
- 其余 3 个 Tab(基础工资/社保/调整类型)仍走 Mock;`clone` 仅剩基础工资 Tab 在用
需要我继续对接「基础工资标准」(需你先提供 `baseSalaryConfig` 实体确认主键),还是先验证这两个 Tab?
---
**User**
基础工资标准,对应的后端实体类如下,更新一下prd,package com.ruoyi.salary.domain;
import com.ruoyi.common.core.web.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.ibatis.type.Alias;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
/**
* biz_base_salary_config 实体
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Alias("BizBaseSalaryConfig")
public class BizBaseSalaryConfig extends BaseEntity implements Serializable {
private static final long serialVersionUID = 1L;
/** 配置ID */
private Long baseId;
/** 人员身份 */
private String personType;
/** 基础工资基数 */
private BigDecimal baseSalary;
/** 生效日期 */
private LocalDate effectiveDate;
/** 状态 */
private String status;
}
**Assistant**
收到,用实体类信息更新 PRD(主键 `baseId`、新增 `effectiveDate` 生效日期字段)。
PRD 已更新:[系统设置模块-后端接口对接PRD.md](file:///f:/qmkj/池州后台/doc/prd/贵池区工资管理系统-系统设置模块-后端接口对接PRD.md)
**本次更新内容**:
- **3.1 基础工资标准**:补充实体全字段 —— 主键 **`baseId`(已确认)**、`personType`、`baseSalary`(BigDecimal)、**`effectiveDate`(生效日期,文档 9.1 未列)**、`status`
- **前置依赖 / Q1**:`baseSalaryConfig` 主键已确认;剩余待确认主键仅 `socialConfig`
- **新增 Q9**:`effectiveDate` 是否需要前端展示「生效日期」列 / 是否按生效日期多档展示(同一 `personType` 可有多档历史配置?)
职业资格补贴已对接完成;基础工资标准的 PRD 信息已就绪,等你说「对接」时我再开始实现。
---
**User**
确认了。对接“基础工资标准”,其他的之后再对接
**Assistant**
开始对接「基础工资标准」:补充 API + 改造 Tab。
Now replace the base salary methods with API-driven versions.
检查 `clone` 是否已无引用,以及整体诊断。
`clone` 已无任何调用,删除死代码。
「基础工资标准」对接完成,无诊断报错。
## 改动内容
**[settings.js](file:///f:/qmkj/池州后台/src/api/salaryManagement/settings.js)** 新增:
- `listBaseSalaryConfig`(GET `/system/biz/baseSalaryConfig/list`)
- `updateBaseSalaryConfig`(PUT,按 `baseId` 整行)
**[settings/index.vue](file:///f:/qmkj/池州后台/src/views/salaryManagement/settings/index.vue)**:
- 表格改为 `baseSalaryList`(懒加载,首次切到该 Tab 拉取)
- `personTypeText` 映射:1→正式、2→试用
- **新增「生效日期」列**(`effectiveDate`)与「状态」列(启用/停用)
- 编辑按 `baseId` 整行 PUT 只改金额;编辑弹窗展示生效日期;保存后强制刷新
- 顺手删除了已无引用的 `clone` 死代码(Mock store 直写已全部移除)
## 已替你做的两个默认决策(对应待确认项)
- **Q7**(状态列):已在「职业资格」「基础工资」两 Tab 都加状态展示 —— 如需去掉请告知
- **Q9**(生效日期):已加「生效日期」列展示 —— 若同一 `personType` 会有多档历史配置,需要按生效日期做筛选或仅取最新,可再调整
## 未动的部分
- 社保配置、调整类型两个 Tab 仍走 Mock(`settings.socialInsuranceRates/socialInsuranceBaseLimits/salaryAdjustTypes`)
下一步可继续对接「社保配置」或「调整类型」,随时说。
---
**User**
“基础工资标准”去除接口中的config,比如`f:\qmkj\池州后台/src/api/salaryManagement/settings.js#L63-70`改为// 查询基础工资标准列表(后端分页)
export function listBaseSalaryConfig(query) {
return request({
url: "/system/biz/baseSalary/list",
method: "get",
params: query
});
},同时更新prd
**Assistant**
现在更新 PRD 中的 URL。
已按「去除 URL 中的 config」更新,无诊断报错。
## 改动内容
**[settings.js](file:///f:/qmkj/池州后台/src/api/salaryManagement/settings.js)**
- `listBaseSalaryConfig`:`/system/biz/baseSalaryConfig/list` → `/system/biz/baseSalary/list`
- `updateBaseSalaryConfig`:`/system/biz/baseSalaryConfig` → `/system/biz/baseSalary`
**[PRD](file:///f:/qmkj/池州后台/doc/prd/贵池区工资管理系统-系统设置模块-后端接口对接PRD.md)**
- 第四节 API 代码片段 5 个接口 URL 同步改为 `/system/biz/baseSalary*`
- 接口清单表 9.1-1 ~ 9.1-5 URL 同步更新
模块名 `baseSalaryConfig`(实体/模块标识)保留未动,仅 URL 去掉了 `Config` 段。
---
**User**
社保配置,对应的后端实体类如下,更新一下prd,package com.ruoyi.salary.domain;
import com.ruoyi.common.core.web.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.ibatis.type.Alias;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* biz_social_config 实体
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Alias("BizSocialConfig")
public class BizSocialConfig extends BaseEntity implements Serializable {
private static final long serialVersionUID = 1L;
/** 配置ID */
private Long configId;
/** 配置年度 */
private Integer configYear;
/** 养老单位比例 */
private BigDecimal pensionCompanyRate;
/** 养老个人比例 */
private BigDecimal pensionPersonalRate;
/** 医疗单位比例 */
private BigDecimal medicalCompanyRate;
/** 医疗个人比例 */
private BigDecimal medicalPersonalRate;
/** 失业单位比例 */
private BigDecimal unemploymentCompanyRate;
/** 失业个人比例 */
private BigDecimal unemploymentPersonalRate;
/** 工伤单位比例 */
private BigDecimal injuryCompanyRate;
/** 生育单位比例 */
private BigDecimal maternityCompanyRate;
/** 基数下限 */
private BigDecimal baseLower;
/** 基数上限 */
private BigDecimal baseUpper;
/** 状态 */
private String status;
}
**Assistant**
收到,用实体类信息更新 PRD。该实体信息量大:主键 `configId`、**含单位/个人比例与基数上下限**,Q2/Q3 字段缺口可据此解决。
PRD 已更新:[系统设置模块-后端接口对接PRD.md](file:///f:/qmkj/池州后台/doc/prd/贵池区工资管理系统-系统设置模块-后端接口对接PRD.md)
**本次更新内容**(该实体信息量大,直接解决了两个待确认项):
- **3.4 社保配置**:补充实体全字段 —— 主键 **`configId`(已确认)**、`configYear`、养老/医疗/失业的**单位+个人比例**、工伤/生育**仅单位比例**(个人不缴纳)、**`baseLower`/`baseUpper`(基数上下限)**、`status`
- **Q2 ✅ 已解决**:实体含全部 5 险种比例(含单位比例、工伤/生育),口径与前端一致
- **Q3 ✅ 已解决**:实体含 `baseLower/baseUpper`,按 `configYear` 记录,基数上下限表有数据来源
- **Q1 ✅ 全部解决**:四表主键已确认(configId / subsidyId / baseId / configId)
- **5.5**:社保 Tab 改为按 `configYear` 记录派生 5 险种比例 + 基数上下限
- **新增 Q10**:社保配置 Tab 展示交互 —— 缴费比例表按「年度选择」展示单一年度,还是按年度分组全部展示?
## 当前待确认项(剩余)
- **Q10** 社保配置 Tab 展示交互(对接前需定)
- Q4(网格年限区间列)、Q5(adjustType 表单格式)、Q6(操作日志)、Q7(状态列已默认加上)、Q8(baseSalary 双口径)、Q9(生效日期多档)
社保配置的 PRD 信息已就绪,等你说「对接」时我再实现(届时 Q10 若未答,我会按「最新年度展示比例 + 全部年度展示基数上下限」的默认方案做)。
---
**User**
确认了。对接“社保配置”,其他的之后再对接
**Assistant**
开始对接「社保配置」:Q10 未答复,按既定默认方案「最新年度展示比例 + 全部年度展示基数上下限」实现。先补 API。
Now the social security tab template.
「社保配置」对接完成,无诊断报错。
## 改动内容
**[settings.js](file:///f:/qmkj/池州后台/src/api/salaryManagement/settings.js)** 新增 `listSocialConfig`(GET `/system/biz/socialConfig/list`)
**[settings/index.vue](file:///f:/qmkj/池州后台/src/views/salaryManagement/settings/index.vue)**:
- 两个子表均改为 API 驱动,懒加载(首次切到该 Tab 拉取)
- 新增 computed:
- [socialInsuranceRates](file:///f:/qmkj/池州后台/src/views/salaryManagement/settings/index.vue#L364-L373):取**最新年度**记录派生 5 险种比例,工伤/生育个人比例恒为 0
- [socialInsuranceBaseLimits](file:///f:/qmkj/池州后台/src/views/salaryManagement/settings/index.vue#L376-L380):**全部年度**按倒序展示 `baseLower/baseUpper`
- 缴费比例表标题展示当前生效年度(`latestConfigYear`),两个表加了 loading
- 保持只读展示,无新增编辑交互(与现状一致)
## 已按 Q10 默认方案实现
最新年度展示比例 + 全部年度展示基数上下限。若后续需要「年度选择器」切换查看历史年度比例,告诉我再加。
## 提醒(PRD 已标注的跨模块影响)
社保管理页 [socialSecurity/index.vue](file:///f:/qmkj/池州后台/src/views/salaryManagement/socialSecurity/index.vue) 仍读 Mock 的 `socialInsuranceBaseLimits`(`currentBaseLimit`),settings 页已不再写 store,该页后续需单独改造。
剩余最后 1 个 Tab「调整类型」(`adjustType`)仍走 Mock,随时可继续对接。
---
**User**
社保配置,对应的后端实体类如下,更新一下prd,package com.ruoyi.salary.domain;
import com.ruoyi.common.core.web.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.ibatis.type.Alias;
import java.io.Serializable;
/**
* biz_adjust_type 实体
* 薪资调整类型字典(维护系统支持的薪资调整类型)
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Alias("BizAdjustType")
public class BizAdjustType extends BaseEntity implements Serializable {
private static final long serialVersionUID = 1L;
/** 类型ID */
private Long adjustTypeId;
/** 类型名称 */
private String typeName;
/** 类型编码 */
private String typeCode;
/** 说明 */
private String description;
/** 是否需审核(1需要两级审核 0无需审核) */
private String needAudit;
/** 状态(0正常 1停用) */
private String status;
}
**Assistant**
收到,更新 PRD 的「调整类型」模块(`BizAdjustType`,主键 `adjustTypeId`,Q1 四表主键至此全部确认)。
Now update the API comment and Q1 references.
PRD 已更新:[系统设置模块-后端接口对接PRD.md](file:///f:/qmkj/池州后台/doc/prd/贵池区工资管理系统-系统设置模块-后端接口对接PRD.md)
> 注:你消息里写的是「社保配置」,但实体类是 `BizAdjustType`(调整类型),我按**调整类型模块**更新了 PRD。
**本次更新内容**:
- **3.5 调整类型**:补充实体全字段 —— 主键 **`adjustTypeId`(已确认)**、`typeName`、`typeCode`、`description`、`needAudit`('1' 需两级审核 / '0' 无需审核,**前端需做 boolean ↔ '0'/'1' 转换**)、`status`
- 更正字段名:文档假设的 `adjustTypeName/adjustTypeCode/needsApproval` → 实际 `typeName/typeCode/needAudit`
- **Q1 ✅ 全部解决**:五表主键全部确认(configId / subsidyId / baseId / configId / adjustTypeId)
- 5.6 改造方案同步更正字段名
## 当前待确认项(剩余)
- **Q5** adjustType/list 的「form 表单提交」格式(对接前需定)
- Q4(网格年限区间列)、Q6(操作日志)、Q8(baseSalary 双口径)、Q9(生效日期多档)、Q10(社保年度切换,已按默认方案实现)
调整类型的 PRD 信息已就绪,等你说「对接」时我再实现(届时 Q5 若未答,我会按 POST+JSON 封装,若后端返回 415/400 再切换表单格式)。
---
**User**
确认了。对接“调整类型”,并补充`f:\qmkj\池州后台/src/views/salaryManagement/settings/index.vue#L189-195`中的“新增类型”弹窗,`f:\qmkj\池州后台/src/views/salaryManagement/settings/index.vue#L213-217`中的“编辑”弹窗
**Assistant**
开始对接「调整类型」并补上新增/编辑弹窗。先读取当前调整类型 Tab 模板与脚本结构。
现在在基础工资 Dialog 之后新增调整类型 Dialog。
现在补充 API 层。
「调整类型」对接完成,含新增/编辑弹窗,无诊断报错。至此**系统设置 5 个 Tab 已全部对接后端**。
## 改动内容
**[settings.js](file:///f:/qmkj/池州后台/src/api/salaryManagement/settings.js)** 新增 4 个接口:
- `listAdjustType`(POST `/system/biz/settings/adjustType/list`)
- `addAdjustType`(POST)、`updateAdjustType`(PUT)、`delAdjustType`(DELETE `/adjustType/adjustType/{id}`)
**[settings/index.vue](file:///f:/qmkj/池州后台/src/views/salaryManagement/settings/index.vue)**:
- 表格改 `adjustTypeList`(懒加载),字段 `typeName/typeCode/description/needAudit/status`,新增「状态」列
- **新增类型弹窗**:[openAddAdjustType](file:///f:/qmkj/池州后台/src/views/salaryManagement/settings/index.vue#L695-L704) → [saveAdjustType](file:///f:/qmkj/池州后台/src/views/salaryManagement/settings/index.vue#L720-L749)(表单校验,`needAudit` 用 el-switch 做 '0'/'1' 转换)
- **编辑弹窗**:[openEditAdjustType](file:///f:/qmkj/池州后台/src/views/salaryManagement/settings/index.vue#L705-L719) 回填 → 按 `adjustTypeId` 整行 PUT
- **删除按钮**:[handleAdjustTypeDelete](file:///f:/qmkj/池州后台/src/views/salaryManagement/settings/index.vue#L750-L770) 二次确认 → DELETE
- 移除已无引用的 `settings` computed(最后一个 Mock 依赖清理完毕)
## 待留意
- **Q5** 未答复:`listAdjustType` 按 POST+JSON 封装,若后端返回 415/400 需改表单格式,届时告诉我
- 删除接口路径含双 `/adjustType/` 段(`.../settings/adjustType/adjustType/{id}`)系按后端文档约定,若后端实际是单段,测试时告知我调整
系统设置模块接口对接全部完成。PRD 中的跨模块项(社保管理页 `currentBaseLimit` 仍读 Mock)未在本次范围内,如需继续可另行安排。
---
**User**
将“调整类型”中的settings去掉比如`f:\qmkj\池州后台/src/api/salaryManagement/settings.js#L95-102`改为// 分页查询调整类型列表
export function listAdjustType(data) {
return request({
url: "/system/biz/adjustType/list",
method: "post",
data: data
});
}
**Assistant**
去掉 adjustType 接口 URL 中的 `/settings/` 段,同步更新代码与 PRD。
Now update the PRD (API snippet + interface table).
已去掉 adjustType 接口 URL 中的 `/settings/` 段,无诊断报错。
## 改动内容
**[settings.js](file:///f:/qmkj/池州后台/src/api/salaryManagement/settings.js)**
- `listAdjustType`:`/system/biz/settings/adjustType/list` → `/system/biz/adjustType/list`
- `addAdjustType` / `updateAdjustType`:→ `/system/biz/adjustType`
- `delAdjustType`:→ `/system/biz/adjustType/adjustType/{id}`(双 `/adjustType/` 段保留,按后端约定)
**[PRD](file:///f:/qmkj/池州后台/doc/prd/贵池区工资管理系统-系统设置模块-后端接口对接PRD.md)**
- 第四节 API 代码片段 5 个接口 URL 同步去掉 `/settings/`
- 接口清单表 9.5-1 ~ 9.5-5、数据源对照表同步更新
- 顺手修正第二节「现状 vs 目标」中社保两行的过期描述(Q2/Q3 已解决,字段缺口表述清除)
系统设置 5 个 Tab 的接口对接均已按最新 URL 约定完成。
---
**User**
`f:\qmkj\池州后台/src/api/salaryManagement/settings.js#L93-102`改为get请求
**Assistant**
将 `listAdjustType` 改为 GET 请求,同步更新代码与 PRD。
Now update the PRD (API snippet + interface table + relevant mentions).
`listAdjustType` 已改为 GET 请求,无诊断报错。
## 改动内容
**[settings.js](file:///f:/qmkj/池州后台/src/api/salaryManagement/settings.js)**:
- `listAdjustType`:`method: "post"` + `data` → `method: "get"` + `params: query`,参数名改为 `query`,并删除「POST 表单提交」的注释
**[PRD](file:///f:/qmkj/池州后台/doc/prd/贵池区工资管理系统-系统设置模块-后端接口对接PRD.md)**:
- API 代码片段、接口清单表 9.5-1、第二节现状对照表同步改为 GET 查询
- **Q5 ✅ 已解决**:`adjustType/list` 确认为 GET
- S1 实施步骤去除 Q5 依赖
至此系统设置模块的接口约定全部确定(Q5 已解决,剩余 Q4/Q6/Q7/Q8/Q9/Q10 为展示细节待确认)。
---
