basic-range.vue 996 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. <template>
  2. <div class="example-basic">
  3. <el-time-picker v-model="value1" :disabled-hours="disabledHours" :disabled-minutes="disabledMinutes" :disabled-seconds="disabledSeconds" placeholder="Arbitrary time" />
  4. </div>
  5. </template>
  6. <script lang="ts" setup>
  7. import { ref } from 'vue'
  8. const value1 = ref(new Date(2016, 9, 10, 18, 30))
  9. const makeRange = (start: number, end: number) => {
  10. const result: number[] = []
  11. for (let i = start; i <= end; i++) {
  12. result.push(i)
  13. }
  14. return result
  15. }
  16. const disabledHours = () => {
  17. return makeRange(0, 16).concat(makeRange(19, 23))
  18. }
  19. const disabledMinutes = (hour: number) => {
  20. if (hour === 17) {
  21. return makeRange(0, 29)
  22. }
  23. if (hour === 18) {
  24. return makeRange(31, 59)
  25. }
  26. }
  27. const disabledSeconds = (hour: number, minute: number) => {
  28. if (hour === 18 && minute === 30) {
  29. return makeRange(1, 59)
  30. }
  31. }
  32. </script>
  33. <style>
  34. .example-basic .el-date-editor {
  35. margin: 8px;
  36. }
  37. </style>