Skip to content

Commit d3d4e3f

Browse files
committed
feat: 添加 datatime格式支持,和required 区间校验
1 parent 0120a9d commit d3d4e3f

File tree

4 files changed

+46
-1
lines changed

4 files changed

+46
-1
lines changed

packages/demo/src/index/views/Demo/schemaTypes/92.Date-DateTime/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ export default {
77
title: '时间日期选择',
88
type: 'object',
99
description: '日期和日期时间支持区间选择(默认格式为时间戳,配置 type string 会格式化为 ISO 时间)',
10+
required: ['dateTimeRange', 'dateTime'],
1011
properties: {
1112
dateTimeRange: {
1213
title: '日期时间区间选择',

packages/docs/docs/.vuepress/localesConfig/genConfig.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ exports.getGuideSidebar = ([groupA = '指南', groupB = '详细配置', groupC =
3030
children: [
3131
'',
3232
'basic-config',
33+
'datetime-config',
3334
'i18n',
3435
'polyfill',
3536
'faq',
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# 日期时间配置
2+
* 详细配置demo参见这里:[在线演示 dateTime](https://form.lljj.me/#/demo?type=Date-DateTime)
3+
4+
:::warning
5+
对type为 `number` `array` 类型配置 `format` 这里打破了 `JSONSchema` 规范
6+
:::
7+
8+
支持配置如下三种 `format` 配置时间和日期
9+
10+
## format `date-time`
11+
使用日期时间格式选择器渲染,`支持区间选择`
12+
13+
* 支持配置 type `number` `string` `array`
14+
* `string``2018-11-13T20:20:39+00:00` IOS字符串格式
15+
* `number``1595492397822` 数字时间戳格式
16+
* `array`:使用区间选择
17+
18+
>* 如果配置了 type `array` ,那么必须要在 items type 里面配置里面申明类型(`number` | `string`
19+
>* 如下:日期时间区间选择,使用 `string` 类型
20+
21+
> ```json
22+
> {
23+
> "dateTimeRange": {
24+
> "title": "日期时间区间选择",
25+
> "type": "array",
26+
> "format": "date-time",
27+
> "items": {
28+
> "type": "string"
29+
> }
30+
> }
31+
> }
32+
> ```
33+
34+
## format `date`
35+
使用日期格式选择器渲染,`支持区间选择`
36+
37+
* 支持配置 type `number` `string` `array`
38+
* 和 [format-date-time](#format-date-time) 配置一致
39+
40+
## format `time`
41+
* 只支持支持配置 type `string` 格式 `16:04:41`
42+
* 不支持配置区间

packages/lib/src/JsonSchemaForm/common/schema/validate.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,8 @@ export function validateFormDataAndTransformMsg({
162162
const filterRootNodeError = true;
163163

164164
// 校验required信息 isEmpty 校验
165-
const isEmpty = formData === undefined;
165+
const isEmpty = formData === undefined || (schema.type === 'array' && Array.isArray(formData) && formData.length === 0);
166+
166167
if (required) {
167168
if (isEmpty) {
168169
const requireErrObj = {

0 commit comments

Comments
 (0)