From 3eaef6732b49c7a8eb1319c0cf38735d4c2975ea Mon Sep 17 00:00:00 2001 From: API Changelog Bot Date: Sun, 22 Mar 2026 21:26:39 +0800 Subject: [PATCH] =?UTF-8?q?changelog:=20=E6=9B=B4=E6=AD=A3=E4=BF=9D?= =?UTF-8?q?=E9=99=A9=E6=96=B9=E6=A1=88=E7=BB=93=E6=9D=9F=E5=A4=A9-1?= =?UTF-8?q?=E8=AF=B4=E6=98=8E=EF=BC=88=E6=98=AF=E7=BA=A6=E5=AE=9A=E5=80=BC?= =?UTF-8?q?=E9=9D=9EBUG=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -1表示"到行程最后一天",前端需展示处理而非数据库修改。 Co-Authored-By: Claude Opus 4.6 (1M context) --- ...026-03-22_insurance_scheme_frontend_fix.md | 55 ++++++++++--------- 1 file changed, 29 insertions(+), 26 deletions(-) diff --git a/changelogs/2026-03/2026-03-22_insurance_scheme_frontend_fix.md b/changelogs/2026-03/2026-03-22_insurance_scheme_frontend_fix.md index 4d008e0..85e6428 100644 --- a/changelogs/2026-03/2026-03-22_insurance_scheme_frontend_fix.md +++ b/changelogs/2026-03/2026-03-22_insurance_scheme_frontend_fix.md @@ -1,42 +1,45 @@ -# 保险方案编辑页 — 前端表单校验问题 +# 保险方案编辑页 — 结束天显示为 -1 的处理 **日期**: 2026-03-22 **页面**: 保险管理 → 保险方案 → 编辑方案 -**类型**: 前端 BUG +**类型**: 前端展示优化 --- ## 问题描述 -保险方案编辑页面,保险段配置中的数值字段缺少前端校验,允许输入负数或不合理值。 +保险方案编辑弹窗中,第2段的"结束天"显示为 `-1`,看起来像数据错误,但实际上 **`-1` 是后端约定的特殊值,表示"到行程最后一天"**。 -### 需要修复的字段 +数据库中 `day_offset_end = -1` 表示该段覆盖到行程结束,后端投保时会自动用方案的 `total_days` 替换 `-1`。 -| 字段 | 当前问题 | 校验规则 | -|------|---------|---------| -| 起始天 | 可输入负数或0 | `>= 1`,整数 | -| 结束天 | 可输入负数(截图中出现 `-1`) | `>= 起始天`,整数 | -| 排序 | 可输入负数 | `>= 0`,整数 | +## 前端需要处理 -### 交叉校验 -- **结束天 >= 起始天**:结束天不能小于起始天 -- **段之间不能重叠**:第2段的起始天应 > 第1段的结束天 +### 1. 编辑表单中展示 -1 的处理 -### 建议前端处理方式 +**方式A(推荐)**:将"结束天"改为下拉或单选: +- 选项1: 输入具体天数(`` 组件设置 `:min="1"` 防止负数输入 -2. 结束天的 `:min` 动态绑定为当前段的起始天值 -3. 保存前做表单级校验,提示具体哪个段有问题 +**方式B(简单)**:在结束天输入框旁显示提示文字: +- 当值为 `-1` 时,显示"(到最后一天)" +- `` 的 `:min` 设为 `-1`(允许 -1 这个特殊值) -### 后端校验(已加) +### 2. 列表中展示 +如果列表展示了结束天,`-1` 应显示为"最后一天"或替换为方案的 `totalDays` 值。 -后端已增加 `@Min` 校验,如果前端没拦住,后端会返回 400: -```json -{ - "code": 400, - "message": "参数校验失败", - "data": { "endDay": "结束天不能为负数" } -} -``` +### 3. 其他表单校验仍建议加上 +- 起始天:`>= 1` +- 排序:`>= 0` +- 结束天为正数时:`>= 起始天` -建议前端也加上校验,避免用户填完才发现不对。 +## 数据说明 + +当前所有多段方案的最后一段 `day_offset_end` 都是 `-1`,这是**正常数据,不需要修改数据库**: + +| 方案 | 第1段结束天 | 第2段结束天 | +|------|-----------|-----------| +| 4日行程 | 2 | -1(=4) | +| 5日行程 | 2 | -1(=5) | +| 6日行程 | 3 | -1(=6) | +| 7日行程 | 3 | -1(=7) | +| 8日行程 | 4 | -1(=8) |