enter-date.vue 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <template>
  2. <el-radio-group v-model="size" label="size control" size="small">
  3. <el-radio-button label="large">large</el-radio-button>
  4. <el-radio-button label="default">default</el-radio-button>
  5. <el-radio-button label="small">small</el-radio-button>
  6. </el-radio-group>
  7. <div class="demo-date-picker">
  8. <div class="block">
  9. <span class="demonstration">Default</span>
  10. <el-date-picker
  11. v-model="value1"
  12. type="date"
  13. placeholder="Pick a day"
  14. :size="size"
  15. />
  16. </div>
  17. <div class="block">
  18. <span class="demonstration">Picker with quick options</span>
  19. <el-date-picker
  20. v-model="value2"
  21. type="date"
  22. placeholder="Pick a day"
  23. :disabled-date="disabledDate"
  24. :shortcuts="shortcuts"
  25. :size="size"
  26. />
  27. </div>
  28. </div>
  29. </template>
  30. <script lang="ts" setup>
  31. import { ref } from 'vue'
  32. const size = ref<'default' | 'large' | 'small'>('default')
  33. const value1 = ref('')
  34. const value2 = ref('')
  35. const shortcuts = [
  36. {
  37. text: 'Today',
  38. value: new Date(),
  39. },
  40. {
  41. text: 'Yesterday',
  42. value: () => {
  43. const date = new Date()
  44. date.setTime(date.getTime() - 3600 * 1000 * 24)
  45. return date
  46. },
  47. },
  48. {
  49. text: 'A week ago',
  50. value: () => {
  51. const date = new Date()
  52. date.setTime(date.getTime() - 3600 * 1000 * 24 * 7)
  53. return date
  54. },
  55. },
  56. ]
  57. const disabledDate = (time: Date) => {
  58. return time.getTime() > Date.now()
  59. }
  60. </script>
  61. <style scoped>
  62. .demo-date-picker {
  63. display: flex;
  64. width: 100%;
  65. padding: 0;
  66. flex-wrap: wrap;
  67. }
  68. .demo-date-picker .block {
  69. padding: 30px 0;
  70. text-align: center;
  71. border-right: solid 1px var(--el-border-color);
  72. flex: 1;
  73. }
  74. .demo-date-picker .block:last-child {
  75. border-right: none;
  76. }
  77. .demo-date-picker .demonstration {
  78. display: block;
  79. color: var(--el-text-color-secondary);
  80. font-size: 14px;
  81. margin-bottom: 20px;
  82. }
  83. </style>