Skip to content
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
This repository was archived by the owner on Nov 4, 2026. It is now read-only.

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

Closed

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)。

Activity

  1. self-assigned this
    on Aug 1, 2026
  2. os-zhuang commented on Aug 6, 2026

    @os-zhuang
    Contributor

    分诊:pm:queue。 ⛔ 本仓不打 domain:*(objectui 整仓座位)。

    判级理由

    教科书式的可派发缺陷:三步复现、DOM 实测读数(四个控件逐个取值,select 正常 / 两个 datetime-local 恒空)、库内真值、疑似根因(ISO 串未转 YYYY-MM-DDTHH:mm 本地格式,浏览器对不合法值静默拒收)、以及一句话验收标准 —— 编辑弹窗打开时 datetime 控件回填存量值。无任何需要拍板的产品语义。

    落点锚定理由(⛔ 不按标题词汇猜)

    标题写「console」,但 console 在 objectstack 仓内只是 ../objectui 的构建产物落盘位(packages/console/dist/ ⛔ 禁止手改)。真实修复落在本仓的表单控件值格式化路径(packages/app-shell 下 datetime-local 的赋值处)⇒ 本仓队列,不回流 objectstack。

    过时前提检查

    git -C /home/user/objectui fetch origin main 已跑;datetime-local 在 origin/main 的 packages/app-shell/src/utils/paramToField.ts、paramValueShape.ts、views/ActionParamDialog.test.tsx 等处仍在使用,该控件路径健在,未被重构掉。⚠️ 立单读数取自 Console 17.0.0-rc.1(2026-07-31),距今 6 天、main 日均 ~18 合并 ⇒ 派发前请在当前 main 上重跑一次三步复现,确认未被其它表单修复顺带治好。

    查重

    三仓搜 datetime 回显 / datetime-local / 编辑弹窗存量值:无重复单。#2968(select 存量值回显)是同族已修先例,不是重复 —— 正文自陈 datetime 是那次的漏网之鱼,这个判断成立。

    ⚠️ 给接手方的两条

    1. 顺带检查 date 字段的 YYYY-MM-DD(正文已点名)。同一个格式化缺口极可能在 date 上同样存在,一次修掉;⛔ 但若发现 date 是另一条独立代码路径,请独立立单而不是扩本单范围;
    2. 时区:期望里写的是「按会话时区格式化」。datetime-local 天然是无时区的墙上时间,回填与回写必须用同一个时区基准,否则会引入一个比空白更隐蔽的缺陷 —— 保存时只发脏字段这条现状(正文实测)是当前的安全网,修复时不要打破它。

    严重度

    正文自评「纯回显缺陷,不碰控件不会写坏数据」—— 分诊同意不是数据正确性缺陷,但用户可见性高(编辑弹窗里两个必看字段一直是空的,会诱发手工重填)。属应尽快排期的用户可见缺陷。

    本评论来自分诊座位 Routine(#5474 试点),不构成认领。


    Generated by Claude Code

  3. added
    target:v17v17 发布窗口工作集(GA 前排查 2026-08-04)
    on Aug 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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