index.vue 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <template>
  2. <demo-section>
  3. <demo-block :title="$t('title1')">
  4. <van-datetime-picker
  5. v-model="currentDate1"
  6. type="datetime"
  7. :min-date="minDate"
  8. :max-date="maxDate"
  9. />
  10. </demo-block>
  11. <demo-block :title="$t('title2')">
  12. <van-datetime-picker
  13. v-model="currentDate2"
  14. type="date"
  15. :min-date="minDate"
  16. />
  17. </demo-block>
  18. <demo-block :title="$t('title3')">
  19. <van-datetime-picker
  20. v-model="currentDate3"
  21. type="year-month"
  22. :min-date="minDate"
  23. :formatter="formatter"
  24. />
  25. </demo-block>
  26. <demo-block :title="$t('title4')">
  27. <van-datetime-picker
  28. v-model="currentDate4"
  29. type="time"
  30. :min-hour="minHour"
  31. :max-hour="maxHour"
  32. />
  33. </demo-block>
  34. </demo-section>
  35. </template>
  36. <script>
  37. export default {
  38. i18n: {
  39. 'zh-CN': {
  40. title1: '选择完整时间',
  41. title2: '选择日期(年月日)',
  42. title3: '选择日期(年月)',
  43. title4: '选择时间',
  44. year: '年',
  45. month: '月'
  46. },
  47. 'en-US': {
  48. title1: 'Choose DateTime',
  49. title2: 'Choose Date',
  50. title3: 'Choose Year-Month',
  51. title4: 'Choose Time',
  52. year: ' Year',
  53. month: ' Month'
  54. }
  55. },
  56. data() {
  57. return {
  58. minHour: 10,
  59. maxHour: 20,
  60. minDate: new Date(2018, 0, 1),
  61. maxDate: new Date(2019, 10, 1),
  62. currentDate1: new Date(2018, 0, 1),
  63. currentDate2: null,
  64. currentDate3: new Date(2018, 0, 1),
  65. currentDate4: '12:00'
  66. };
  67. },
  68. methods: {
  69. formatter(type, value) {
  70. if (type === 'year') {
  71. return value + this.$t('year');
  72. }
  73. if (type === 'month') {
  74. return value + this.$t('month');
  75. }
  76. return value;
  77. }
  78. }
  79. };
  80. </script>