index.js 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. import React from 'react';
  2. import DatePicker from '../../index';
  3. import * as dateFns from 'date-fns';
  4. export default function Demo() {
  5. const handleChange = date => {
  6. console.log('date changed', date);
  7. };
  8. return (
  9. <div>
  10. <strong>设置 startDateOffset 和 endDateOffset 可以单击选择日期范围</strong>
  11. <br />
  12. <br />
  13. <div>选择前三天和后三天</div>
  14. <DatePicker
  15. style={{ width: 240 }}
  16. type="dateRange"
  17. startDateOffset={date => dateFns.sub(date, { days: 3 })}
  18. endDateOffset={date => dateFns.add(date, { days: 3 })}
  19. onChange={handleChange}
  20. />
  21. <br />
  22. <br />
  23. <div>选择自然周</div>
  24. <DatePicker
  25. style={{ width: 240 }}
  26. type="dateRange"
  27. weekStartsOn={1}
  28. startDateOffset={date => dateFns.startOfWeek(date, { weekStartsOn: 1 })}
  29. endDateOffset={date => dateFns.endOfWeek(date, { weekStartsOn: 1 })}
  30. onChange={handleChange}
  31. />
  32. <br />
  33. <br />
  34. <div>选择后6天</div>
  35. <DatePicker
  36. style={{ width: 240 }}
  37. type="dateRange"
  38. weekStartsOn={1}
  39. endDateOffset={date => dateFns.add(date, { days: 6 })}
  40. onChange={handleChange}
  41. />
  42. <br />
  43. <br />
  44. <div>选择前6天</div>
  45. <DatePicker
  46. style={{ width: 240 }}
  47. type="dateRange"
  48. weekStartsOn={1}
  49. startDateOffset={date => dateFns.sub(date, { days: 6 })}
  50. onChange={handleChange}
  51. />
  52. <br />
  53. <br />
  54. <div>选择1天</div>
  55. <DatePicker
  56. style={{ width: 240 }}
  57. type="dateRange"
  58. startDateOffset={date => date}
  59. endDateOffset={date => date}
  60. onChange={handleChange}
  61. />
  62. <br />
  63. <br />
  64. <div>禁止每个月的5号(仅查看样式,功能上不禁止)</div>
  65. <DatePicker
  66. style={{ width: 240 }}
  67. type="dateRange"
  68. disabledDate={date => {
  69. if (date.getDate() === 5) {
  70. return true;
  71. }
  72. return false;
  73. }}
  74. weekStartsOn={1}
  75. startDateOffset={date => dateFns.startOfWeek(date, { weekStartsOn: 1 })}
  76. endDateOffset={date => dateFns.endOfWeek(date, { weekStartsOn: 1 })}
  77. onChange={handleChange}
  78. />
  79. </div>
  80. );
  81. }