index.jsx 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. import React, { useState } from 'react';
  2. import { parse } from 'date-fns';
  3. import { DatePicker } from '@douyinfe/semi-ui/';
  4. export default function Demo(props = {}) {
  5. const [value, setValue] = useState('2019-10-01');
  6. const dateTimeToken = 'yyyy-MM-dd HH:mm:ss';
  7. const log = (...args) => console.log(...args);
  8. const onChange = v => {
  9. console.log(v);
  10. setValue(v);
  11. };
  12. const printArgs = (...args) => {
  13. console.log('printArgs: ', ...args);
  14. };
  15. const [open, setOpen] = useState(true);
  16. const [value2, setValue2] = useState(parse('2019-10-02 8:30:02', dateTimeToken, new Date()));
  17. const [value3] = useState(['2019-10-01', '20191002']);
  18. const [value4, setValue4] = useState(['2019-10-01', '2019-10-09']);
  19. const [value5] = useState(['2019-10-01', '2019-11-09']);
  20. const [value6, setValue6] = useState(['2019-10-01', '20191109']);
  21. return (
  22. <>
  23. <span>dateTime: defaultValue + onConfirm + needConfirm</span>
  24. <DatePicker type="dateTime" defaultValue={new Date()} onChange={log} needConfirm />
  25. <br />
  26. <span>dateTimeRange: defaultValue + onConfirm + needConfirm</span>
  27. <DatePicker type="dateTimeRange" defaultValue={value6} onChange={log} needConfirm />
  28. <br />
  29. <span>dateTime: value + onConfirm + needConfirm</span>
  30. <DatePicker type="dateTime" value={value2} onConfirm={setValue2} needConfirm />
  31. <br />
  32. <span>dateTimeRange: value + onConfirm + needConfirm</span>
  33. <DatePicker type="dateTimeRange" value={value4} onConfirm={setValue4} onChange={log} needConfirm />
  34. <br />
  35. <span>dateTimeRange: value + needConfirm</span>
  36. <DatePicker type="dateTimeRange" value={value5} onChange={log} needConfirm />
  37. <br />
  38. <span>dateTimeRange: value</span>
  39. <DatePicker
  40. type="dateTimeRange"
  41. value={[new Date(), new Date().valueOf() + 3610 * 1000 * 24 * 2]}
  42. onChange={log}
  43. />
  44. <br /><br />
  45. <div>v1.15 手动输入改变选中,blur 输入框恢复原来的值</div>
  46. <DatePicker
  47. type="dateTime"
  48. needConfirm
  49. defaultValue={new Date()}
  50. onConfirm={
  51. (...args) => {
  52. console.log('Confirmed: ', ...args);
  53. }}
  54. onCancel={
  55. (...args) => {
  56. console.log('Canceled: ', ...args);
  57. }}
  58. onChange={
  59. (...args) => {
  60. console.log('Changed: ', ...args);
  61. }
  62. }
  63. />
  64. <br />
  65. <DatePicker
  66. type="dateTimeRange"
  67. needConfirm
  68. style={{ width: 400 }}
  69. defaultValue={[new Date(), new Date().valueOf() + 3610 * 1000 * 24 * 2]}
  70. onConfirm={
  71. (...args) => {
  72. console.log('Confirmed: ', ...args);
  73. }}
  74. onCancel={
  75. (...args) => {
  76. console.log('Canceled: ', ...args);
  77. }}
  78. onChange={
  79. (...args) => {
  80. console.log('Changed: ', ...args);
  81. }
  82. }
  83. />
  84. <br />
  85. </>
  86. );
  87. }