amis2/docs/components/form/date.md
2020-07-28 10:03:53 +08:00

8.6 KiB
Executable File
Raw Blame History

title description type group menuName icon order
Date 日期 0 null Date 13

基本用法

{
    "type": "form",
    "api": "https://houtai.baidu.com/api/mock2/form/saveForm",
    "controls": [
        {
            "type": "date",
            "name": "date",
            "label": "日期"
        }
    ]
}

显示格式

选中任意日期,可以看到默认显示日期的格式是像2020-04-14这样的格式,如果你想要自定义显示格式,那么可以配置inputFormat

例如你想显示2020年04月14日这样的格式,查找 moment 文档可知配置格式应为 YYYY年MM月DD日,即:

{
    "type": "form",
    "api": "https://houtai.baidu.com/api/mock2/form/saveForm",
    "controls": [
        {
            "type": "date",
            "name": "date",
            "label": "日期",
            "inputFormat": "YYYY年MM月DD日"
        }
    ]
}

选中任意日期,观察显示格式

值格式

选中任意日期,可以看到默认表单项的值格式是像1591862818这样的时间戳格式。

{
    "type": "form",
    "debug": true,
    "api": "https://houtai.baidu.com/api/mock2/form/saveForm",
    "controls": [
        {
            "type": "date",
            "name": "date",
            "label": "日期"
        }
    ]
}

如果你想要其他格式的日期值,,那么可以配置format参数用于调整表单项的值格式。

例如你调整值为2020-04-14这样的格式,查找 moment 文档可知配置格式应为 YYYY-MM-DD,即:

{
    "type": "form",
    "debug": true,
    "api": "https://houtai.baidu.com/api/mock2/form/saveForm",
    "controls": [
        {
            "type": "date",
            "name": "date",
            "label": "日期",
            "format": "YYYY-MM-DD"
        }
    ]
}

选中任意日期,观察数据域中表单项值的变化

默认值

可以设置value属性,设置日期选择器的默认值

基本配置

配置符合当前 值格式 的默认值。

{
    "type": "form",
    "debug": true,
    "api": "https://houtai.baidu.com/api/mock2/form/saveForm",
    "controls": [
        {
            "type": "date",
            "name": "date",
            "label": "日期",
            "value": "1591862818"
        }
    ]
}

相对值

value 还支持类似像"+1days"这样的相对值,更加便捷的配置默认值

{
    "type": "form",
    "debug": true,
    "api": "https://houtai.baidu.com/api/mock2/form/saveForm",
    "controls": [
        {
            "type": "date",
            "name": "date",
            "label": "日期",
            "value": "+1days"
        }
    ]
}

上例中配置了"value": "+1days",默认就会选中明天。

支持的相对值关键字有:

  • today: 当前日期
  • daydays: 天
  • weekweeks: 日
  • monthmonths: 月
  • yearyears: 年

限制范围

可以通过配置maxDateminDate显示可选范围

固定时间值

{
    "type": "form",
    "debug": true,
    "api": "https://houtai.baidu.com/api/mock2/form/saveForm",
    "controls": [
        {
            "type": "date",
            "name": "start",
            "label": "开始时间",
            "minDate": "1591862818",
            "description": "限制可选最小日期是 <code>2020-06-11 16:06:58</code>"
        },
        {
            "type": "date",
            "name": "end",
            "label": "结束时间",
            "maxDate": "1591862818",
            "description": "限制可选最大日期是 <code>2020-06-11 16:06:58</code>"
        }
    ]
}

支持相对值

范围限制也支持设置 相对值

{
    "type": "form",
    "debug": true,
    "api": "https://houtai.baidu.com/api/mock2/form/saveForm",
    "controls": [
        {
            "type": "date",
            "name": "start",
            "label": "开始时间",
            "minDate": "-1days",
            "description": "限制可选最小日期是昨天"
        }
    ]
}

支持模板

也支持通过模板,设置自定义值。

来一个常见例子,配置两个选择开始时间结束时间的时间选择器,需要满足:开始时间不能小于结束时间结束时间也不能大于开始时间,。

{
    "type": "form",
    "debug": true,
    "api": "https://houtai.baidu.com/api/mock2/form/saveForm",
    "controls": [
        {
            "type": "date",
            "name": "start",
            "label": "开始日期",
            "maxDate": "$end"
        },
        {
            "type": "date",
            "name": "end",
            "label": "结束日期",
            "minDate": "$start"
        }
    ]
}

快捷键

你也可以配置shortcuts属性支持快捷选择日期

{
    "type": "form",
    "debug": true,
    "api": "https://houtai.baidu.com/api/mock2/form/saveForm",
    "controls": [
        {
            "type": "date",
            "name": "date",
            "label": "日期",
            "shortcuts": ["yesterday" ,"today", "tomorrow"]
        }
    ]
}

上例中我们配置了"shortcuts": ["yesterday" ,"today", "tomorrow"],选择器顶部有将会显示快捷键昨天今天明天

支持的快捷键有

  • today: 今天
  • yesterday: 昨天
  • thisweek: 本周一
  • thismonth: 本月初
  • prevmonth: 上个月初
  • prevquarter: 上个季节初
  • thisquarter: 本季度初
  • tomorrow: 明天
  • endofthisweek: 本周日
  • endofthismonth:本月底
  • {n}daysago : n天前例如1daysago,下面用法相同
  • {n}dayslater: n天后
  • {n}weeksago: n周前
  • {n}weekslater: n周后
  • {n}monthsago: n月前
  • {n}monthslater: n月后
  • {n}quartersago: n季度前
  • {n}quarterslater: n季度后

UTC

{
    "type": "form",
    "debug": true,
    "api": "https://houtai.baidu.com/api/mock2/form/saveForm",
    "controls": [
        {
            "type": "date",
            "name": "date",
            "label": "普通日期",
            "format": "YYYY-MM-DD"
        },
        {
            "type": "date",
            "name": "date-utc",
            "label": "UTC日期",
            "utc": true,
            "format": "YYYY-MM-DD"
        }
    ]
}

属性表

除了支持 普通表单项属性表 中的配置以外,还支持下面一些配置

属性名 类型 默认值 说明
value string 默认值
format string X 日期选择器值格式,更多格式类型请参考 moment
inputFormat string YYYY-DD-MM 日期选择器显示格式,即时间戳格式,更多格式类型请参考 moment
closeOnSelect boolean false 点选日期后,是否马上关闭选择框
placeholder string "请选择日期" 占位文本
shortcuts string 日期快捷键
minDate string 限制最小日期
maxDate string 限制最大日期
utc boolean false 保存utc值
clearable boolean true 是否可清除
timeConstrainst object true 请参考: react-datetime