文件
hl-api-changelog/changelogs-v2/2026-08/31_frontend_车队编辑弹窗排序已填仍提示请输入排序-前端缺陷-管理后台.md
2026-08-31 09:56:51 +08:00

2.8 KiB

schema, ticket, title, consumer, author, change_type, backend_status, gateway_status, frontend_status, frontend_owner, frontend_ref, target_release, verified_at, status_note, updated_at, base, generated
schema ticket title consumer author change_type backend_status gateway_status frontend_status frontend_owner frontend_ref target_release verified_at status_note updated_at base generated
hl-changelog/v2 frontend-fleet-team-sort-validation 车队编辑弹窗「排序」已填值仍提示「请输入排序」,无法保存 admin wx(GIT) 前端缺陷 not_required not_required verified mmg e2b2482e v2.1 2026-08-31 纯前端校验缺陷,前端已修复。rules.sortOrder 的 required 规则补 type:'number',number 值(含 0)不再误判为空,空值仍正确提示必填。 2026-08-31 dev-v3 2026-08-31T01:43:00+08:00

车队编辑弹窗「排序」已填值仍提示「请输入排序」,无法保存

前端缺陷,待前端修复。后端契约无变化。

现象(TEST 实测)

车务 → 车队管理 → 编辑车队(如「合作车队A」):

  • 「排序」输入框中已显示值 1;
  • 点击「保存」时表单项仍报红色校验错误「请输入排序」,保存被拦截,无法提交。

只读前端定位(hl-ui 未修改)

src/views/fleet/teams/index.vue:

  • 表单绑定:NInputNumber v-model:value="formData.sortOrder",编辑时 fillForm 正确回填 row?.sortOrder ?? null,输入框显示的 1 说明 model 已有值;
  • 校验规则(约 391 行):
sortOrder: [{ required: true, message: '请输入排序', trigger: ['blur', 'change'] }],

规则缺少 type: 'number'。Naive UI 底层 async-validator 的必填规则默认按 string 类型校验,对 number 类型的值会误判为空,导致「值已填但 required 校验不通过」。同页面其他字段均为字符串/枚举值所以未暴露此问题。

修复建议

规则补充 type: 'number',例如:

sortOrder: [{ required: true, type: 'number', message: '请输入排序', trigger: ['blur', 'change'] }],

同时建议回归以下场景:

  1. 编辑已有车队(详情回填 sortOrder)直接保存,不再误报;
  2. 新建车队填写排序后保存正常;
  3. 排序为空(清空输入框)时仍正确提示「请输入排序」;
  4. 排序为 0 时可通过校验(min: 0,0 是合法值,不得被误判为空)。

后端契约(无变化,供联调核对)

  • 详情:GET /fleet/teams/{fleetTeamId},响应含 sortOrder(整数);
  • 更新:PUT /fleet/teams/{fleetTeamId},请求体 sortOrder 为整数;
  • 新增:POST /fleet/teams,请求体 sortOrder 为整数。

本条目不引入后端代码、接口、数据库、配置、Redis 或 MQ 变更。

复现路径

车务(fleet 管理后台)→ 车队管理 → 任一有排序值的车队 → 编辑 → 直接点「保存」。

撤回

如需撤回本联调通知,只需回退本 Changelog 文件;后端契约和运行数据不受影响。