JSPM

  • Created
  • Published
  • Downloads 283
  • Score
    100M100P100Q96188F
  • License MIT

DateInput component

Package Exports

  • @uiw/react-date-input
  • @uiw/react-date-input/cjs/index.js
  • @uiw/react-date-input/esm/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@uiw/react-date-input) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

DateInput 日期输入框

Open in unpkg NPM Downloads npm version

显示一个月的日历,并允许用户选择单个日期。

import { DateInput, DateInputRange } from 'uiw';
// or
import DateInput,{ DateInputRange } from '@uiw/react-date-input';
// 在 `v4.13.0` 版本中增加 DateInputRange 组件

基本使用

import React from 'react';
import { DateInput, DateInputRange, Row, Col } from 'uiw';

function Demo () {

  const [dataRange,dataRangeSet] =React.useState(['2022-02-25 15:06:24','2022-02-27 14:47:32'])

  function onChange(selectedDate,dataRange) {
    console.log('selectedDate',selectedDate,dataRange)
  }

  return (
    <div>
      <Row style={{ marginBottom:10 }}>
        <Col style={{ width: 200 }} fixed>
          <DateInput
            value={new Date()}
            datePickerProps={{ todayButton: '今天' }}
            onChange={onChange}
          />
        </Col>
        <Col style={{ width: 200, marginLeft: 10 }} fixed>
          <DateInput
            value={new Date()}
            disabled
            onChange={onChange}
          />
        </Col>
        <Col style={{ width: 400, marginLeft: 10 }} fixed>
          <DateInputRange
            bodyStyle={{ width: 400 }}
            format="YYYY/MM/DD HH:mm:ss"
            value={dataRange}
            datePickerProps={{ todayButton: '今天',showTime:true }}
            onChange={onChange}
          />
        </Col>
      </Row>
    </div>
  )
}
export default Demo

在表单中使用

<Form /> 表单中应用 <DateInput /> 组件。

import React from 'react';
import { DateInput,DateInputRange, Notify, Button, Form, Row, Col } from 'uiw';

function Demo(){
  const form = React.useRef(null)

  const resetDateRange = () => {
    form.current.resetForm()
  }

  const setDateRange = () => {
    form.current.setFields({dateRange:[new Date(),new Date()]})
  }

  return (
    <Form
      ref={form}
      onSubmit={({ initial, current }) => {
        if (current.date) {
          Notify.success({
            title: '提交成功!',
            description: `表单提交时间成功,时间为:${current.date}`,
          });
        } else {
          Notify.error({
            title: '提交失败!',
            description: `表单提交时间成功,时间为:${current.date},将自动填充初始化值!`,
          });
        }
      }}
      fields={{
        date: {
          initialValue: '2019/02/17',
          labelClassName: 'fieldLabel',
          labelFor: 'date-inline',
          children: <DateInput datePickerProps={{ todayButton: '今天' }} id="date-inline" />
        },
        dateRange: {
          initialValue: ['2019/02/17', '2019/02/20'],
          labelClassName: 'fieldLabel',
          labelFor: 'date-inline',
          children: <DateInputRange datePickerProps={{ todayButton: '今天' }} id="date-inline" />
        },
      }}
    >
      {({ fields, state, canSubmit }) => {
        return (
          <div>
            <Row>
              <Col style={{ width: 200 }} fixed>{fields.date}</Col>
            </Row>
            <Row style={{ width: 200 }} >
              <Col fixed>{fields.dateRange}</Col>
            </Row>
            <Row gutter={10}>
              <Col>
                <Button disabled={!canSubmit()} type="primary" htmlType="submit">提交</Button>
                <Button onClick={resetDateRange} >重置</Button>
                <Button onClick={setDateRange}>setValue</Button>
              </Col>
            </Row>
          </div>
        )
      }}
    </Form>
  )
}

export default Demo

日期格式

import React from 'react';
import { DateInput } from 'uiw';

class Demo extends React.Component {
  onChange(selectedDate) {
    console.log('selectedDate:', selectedDate);
  }
  render() {
    return (
      <div style={{ width: 200 }}>
        <DateInput
          format="YYYY # MM # DD"
          datePickerProps={{ todayButton: '今天' }}
          onChange={this.onChange.bind(this)}
        />
      </div>
    )
  }
}
export default Demo

日期时间设置

import React from 'react';
import { DateInput } from 'uiw';

class Demo extends React.Component {
  onChange(selectedDate) {
    console.log('selectedDate:', selectedDate);
  }
  render() {
    return (
      <div style={{ width: 200 }}>
        <DateInput
          format="YYYY/MM/DD HH:mm:ss"
          datePickerProps={{ showTime: true, todayButton: '今天' }}
          onChange={this.onChange.bind(this)}
        />
      </div>
    )
  }
}
export default Demo

自动隐藏弹层

import React from 'react';
import { DateInput } from 'uiw';

class Demo extends React.Component {
  onChange(selectedDate) {
    console.log('selectedDate:', selectedDate);
  }
  render() {
    return (
      <div style={{ maxWidth: 200 }}>
        <DateInput
          autoClose={true}
          format="YYYY/MM/DD HH:mm:ss"
          datePickerProps={{ showTime: true, todayButton: '今天' }}
          onChange={this.onChange.bind(this)}
        />
      </div>
    )
  }
}
export default Demo

Props

参数 说明 类型 默认值
value 初始时间值 Date -
placeholder 输入框提示文字 String -
allowClear 是否显示清除按钮 Boolean true
format 格式化时间,规则查看 <formatter> 文档 String YYYY/MM/DD
onChange 选择一天时调用。 Function(selectedDate:Date) -
popoverProps 将参数传递给 <Popover> 组件 Object -
datePickerProps 将参数传递给 <DatePicker> 组件 Object -
disabled 组件 <Input> 的属性,禁用日历 Boolean -
autoClose 是否自动关闭弹层 Boolean false

组件 DateInput 继承 <Input> 组件,更多属性文档请参考 <Input>

DateInputRange

v4.13.0 版本中增加 DateInputRange 组件。

参数 说明 类型 默认值
value 初始时间值 Array<Date, string> -
placeholder 输入框提示文字 String -
allowClear 是否显示清除按钮 Boolean true
format 格式化时间,规则查看 <formatter> 文档 String YYYY/MM/DD
onChange 选择一天时调用。 Function(selectedDate:Date, dateRange: Array<Date>) -
popoverProps 将参数传递给 <Popover> 组件 Object -
datePickerProps 将参数传递给 <DatePicker> 组件 Object -
disabled 组件 <Input> 的属性,禁用日历 Boolean -
bodyStyle 选择框样式 Object { width: 300 }

组件 DateInputRange 继承 <Input> 组件,更多属性文档请参考 <Input>