Vuetify is a popular UI framework for Vue apps.
In this article, we’ll look at how to work with the Vuetify framework.
Time Pickers
We can add a time picker with the v-time-picker component.
For example, we can use it by writing:
<template>
<v-row justify="space-around">
<v-time-picker v-model="time" color="green lighten-1"></v-time-picker>
</v-row>
</template>
<script>
export default {
name: "HelloWorld",
data: () => ({
time: undefined,
}),
};
</script>
We add the v-time-picker component to add the time picker.
The color prop sets the color of the heading.
v-model has the time value that’s picked.
Disabled
We can disable a date picker with the disabled prop:
<template>
<v-row justify="space-around">
<v-time-picker v-model="time" color="green lighten-1" disabled></v-time-picker>
</v-row>
</template>
<script>
export default {
name: "HelloWorld",
data: () => ({
time: undefined,
}),
};
</script>
Now we can’t pick a date.
Read-only
We can make the time picker be read-only with the readonly prop:
<template>
<v-row justify="space-around">
<v-time-picker v-model="time" color="green lighten-1" readonly></v-time-picker>
</v-row>
</template>
<script>
export default {
name: "HelloWorld",
data: () => ({
time: undefined,
}),
};
</script>
We won’t see any style differences from the regular time picker, but we can’t choose a time with it.
24h Format
The format prop lets us change the format of the time.
To change it to 24h format, we write:
<template>
<v-row justify="space-around">
<v-time-picker v-model="time" color="green lighten-1" format="24hr"></v-time-picker>
</v-row>
</template>
<script>
export default {
name: "HelloWorld",
data: () => ({
time: undefined,
}),
};
</script>
Allowed Times
The time that can be picked can be restricted with the allowed-hours and allowed-minutes props:
<template>
<v-row justify="space-around">
<v-time-picker
v-model="time"
:allowed-hours="allowedHours"
:allowed-minutes="allowedMinutes"
class="mt-4"
format="24hr"
scrollable
min="9:30"
max="22:15"
></v-time-picker>
</v-row>
</template>
<script>
export default {
name: "HelloWorld",
data: () => ({
time: "11:15",
}),
methods: {
allowedHours: (v) => v % 2,
allowedMinutes: (v) => v >= 10 && v <= 50,
},
};
</script>
We have the allowed-hours prop set to the allowedHours function.
It lets us return the condition for the hours that users can pick.
We can have similar functions for minutes and the step.
The v parameter has the hours and minutes.
For example, we can write:
<template>
<v-row justify="space-around">
<v-time-picker v-model="timeStep" :allowed-minutes="allowedStep" class="mt-4" format="24hr"></v-time-picker>
</v-row>
</template>
<script>
export default {
name: "HelloWorld",
data: () => ({
time: "11:15",
timeStep: "10:10",
}),
methods: {
allowedStep: (m) => m % 10 === 0,
},
};
</script>
We have the allowedStep function, which we use as the value of the allowed-minutes prop.
m has the minutes.
Conclusion
We can add a time picker with various restrictions set on it.
Its color can also be changed.