Skip to content

[console] 记录编辑弹窗 datetime 字段不回显存量值:input[type=datetime-local] 恒为空(ISO 值未转 local 格式),用户误以为日期丢了 #3127

Description

@baozhoutao

版本

  • Console @ 17.0.0-rc.1(objectstack 17.0.0-rc.1 内置 ConsoleUI)
  • 复现于 os-project-titanwind-ehr,2026-07-31

现象

记录编辑弹窗里,type: 'datetime' 字段的控件(input[type=datetime-local])渲染为空(「年 /月/日 --:--」占位态),而库里明明有值。#2968 修复后 select 存量值已正常回显,datetime 是同族的漏网之鱼。

DOM 实测(编辑弹窗打开后逐控件取值):

{"tag":"SELECT","name":"category","value":"production"}        // ✅ select 已修
{"tag":"SELECT","name":"status","value":"pending"}            // ✅
{"tag":"INPUT","type":"datetime-local","name":"plan_start_date","value":""}  // ❌ 空
{"tag":"INPUT","type":"datetime-local","name":"plan_end_date","value":""}    // ❌ 空

库内真值:plan_start_date = 2026-08-05T00:00:00.000Z,plan_end_date = 2026-08-06T00:00:00.000Z

疑似根因

后端返回的 ISO 串(2026-08-05T00:00:00.000Z)未转换成 datetime-local 要求的 YYYY-MM-DDTHH:mm 本地格式就直接塞给 input——浏览器对不合法格式静默拒收,控件保持空值。

复现

  1. 任一含 type:'datetime' 字段的对象(纯声明,无 visibleWhen/readonlyWhen 干扰同样复现),记录里该字段有值;
  2. 详情页 → 「编辑」;
  3. datetime 控件为空;同弹窗内 select/text/number 均正常回显。

影响

  • 用户打开编辑弹窗看到日期空白,误以为「值丢了」并可能手工重填;
  • 实测保存只发脏字段,不碰该控件不会写坏数据——纯回显缺陷,但对用户的心理杀伤不小(编辑弹窗里两个必看字段一直是空的)。

期望

编辑弹窗打开时把存量 ISO 值按会话时区格式化为 YYYY-MM-DDTHH:mm 回填进 datetime-local 控件(date 字段同理检查 YYYY-MM-DD)。

Metadata

Metadata

Assignees

Labels

pm:queuetarget:v17v17 发布窗口工作集(GA 前排查 2026-08-04)

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions