vue-vben-admin icon indicating copy to clipboard operation
vue-vben-admin copied to clipboard

DatePicker等日期组件设置默认值显示正常,但再想选择其他日期的时候导致该日期组件无法选择

Open tiancaizs opened this issue 2 years ago • 2 comments

⚠️ 重要 ⚠️ 在进一步操作之前,请检查下列选项。如果您忽视此模板或者没有提供关键信息,您的 Issue 将直接被关闭

  • [x] 已阅读 文档.
  • [x] 确保您的代码已是最新或者所报告的 Bug 在最新版本中可以重现. (部分 Bug 可能已经在最近的代码中修复)
  • [x] 已在 Issues 中搜索了相关的关键词
  • [x] 不是 ant design vue 组件库的 Bug

描述 Bug

表单在使用日期组件的时候,往往需要回显值。现在的问题就是可以回显展示,但如果再重新选择的时候,就会导致该日期组件无法选择。 1655176910881(1)

复现 Bug

这里我使用defaultValue属性赋一个默认值,选择的时候情况和使用setFieldsValue赋值一样 import moment from 'moment'; ......省略..... { field: 'time', label: '时间', defaultValue: moment(), component: 'DatePicker', }

系统信息

  • 操作系统: win11
  • Node 版本: 16.15.0
  • 包管理器 (npm/yarn/pnpm) 及其版本: yarn

tiancaizs avatar Jun 14 '22 03:06 tiancaizs

@tiancaizs 见 src/components/Form/src/BasicForm.vue 123、127行,会强制将输入值转换为 Moment 对象,但 antdv 组件接收值是 Dayjs,所以会报错。 我的解决方案是:取消 dateUtil 的强制转换,外层主动传入 Dayjs 对象。但这样会导致后续对 Moment 的一些操作没意义了,产生冗余代码,理论上不影响正常逻辑

seaton-git avatar Jun 30 '22 02:06 seaton-git

@tiancaizs 见 src/components/Form/src/BasicForm.vue 123、127行,会强制将输入值转换为 Moment 对象,但 antdv 组件接收值是 Dayjs,所以会报错。 我的解决方案是:取消 dateUtil 的强制转换,外层主动传入 Dayjs 对象。但这样会导致后续对 Moment 的一些操作没意义了,产生冗余代码,理论上不影响正常逻辑

nice,非常感谢

tiancaizs avatar Jun 30 '22 02:06 tiancaizs

nice

Lonely-SSH avatar Nov 07 '22 02:11 Lonely-SSH