- 日期/月份 选择器
- 用例
- API
- 实战场
- 示例
- 日期选择器 - 颜色
- 日期选择器 - 允许的日期
- 日期选择器 - 设置选择器宽度
- 日期选择器 - 对显示的 月/年 变化做出反应
- 日期选择器 - 国际化
- 日期选择器 - 图标
- 日期选择器 - 只读
- 日期选择器 - 当前日期指示器
- 月份选择器
- 月份选择器 - 颜色
- 月份选择器 - 允许月份
- 月份选择器 - 多选
- 月份选择器 - 设置选择器宽度
- 月份选择器 - 国际化
- 月份选择器 - 图标
- 月份选择器 - 只读
- 月份选择器 - 当前月份指示器
- 日期选择器 - 在对话框和菜单中
- 日期选择器 - 格式化日期
- 日期选择器 - 使用外部库格式化日期
- 日期选择器 - 多个选项
- 日期选择器 - 范围
- 日期选择器 - 生日选择器
- 日期选择器 - 事件
- 月份选择器 - 在对话框和菜单
日期/月份 选择器
v-date-picker
是独立的组件,可用于许多现有的 Vuetify 组件。它为用户提供了一个选择 日期/月份 的可视化表示。
有关 ISO 8601 和其他标准的更多信息,请访问 ISO(国际标准化组织) 国际标准 官方网页。
用例
日期选择器有两种方向变化:纵向 (默认) 和横向。 默认情况下,它们在日期(对于日期选择器)或月份(对于月选择器)时发出 input
事件,但是使用 reactive 属性,即使单击 年/月 后,它们也可以更新模型。
template script
<template>
<v-row justify="center">
<v-date-picker v-model="picker"></v-date-picker>
</v-row>
</template>
<script>
export default {
data () {
return {
picker: new Date().toISOString().substr(0, 10),
}
},
}
</script>
API
从下面选择您想要的组件,并查看可用的属性、插槽、事件和函数。
实战场
template script
<template>
<v-row justify="space-around">
<v-col cols="12">
<v-row justify="space-around">
<v-switch v-model="landscape" class="ma-4" label="Landscape"></v-switch>
<v-switch v-model="reactive" class="ma-4" label="Reactive"></v-switch>
<v-switch v-model="fullWidth" class="ma-4" label="Full width"></v-switch>
<v-switch v-model="showCurrent" class="ma-4" label="Show current date"></v-switch>
<v-switch v-model="month" class="ma-4" label="Month picker"></v-switch>
<v-switch v-model="multiple" class="ma-4" label="Multiple"></v-switch>
<v-switch v-model="readonly" class="ma-4" label="Readonly"></v-switch>
<v-switch v-model="disabled" class="ma-4" label="Disabled"></v-switch>
<v-switch v-model="enableEvents" class="ma-4" label="Events"></v-switch>
</v-row>
</v-col>
<v-date-picker
v-model="picker"
:landscape="landscape"
:reactive="reactive"
:full-width="fullWidth"
:show-current="showCurrent"
:type="month ? 'month' : 'date'"
:multiple="multiple"
:readonly="readonly"
:disabled="disabled"
:events="enableEvents ? functionEvents : null"
></v-date-picker>
</v-row>
</template>
<script>
export default {
data () {
return {
picker: new Date().toISOString().substr(0, 10),
landscape: false,
reactive: false,
fullWidth: false,
showCurrent: true,
month: false,
multiple: false,
readonly: false,
disabled: false,
enableEvents: false,
}
},
computed: {
functionEvents () {
return this.month ? this.monthFunctionEvents : this.dateFunctionEvents
},
},
methods: {
dateFunctionEvents (date) {
const [,, day] = date.split('-')
if ([12, 17, 28].includes(parseInt(day, 10))) return true
if ([1, 19, 22].includes(parseInt(day, 10))) return ['red', '#00f']
return false
},
monthFunctionEvents (date) {
const month = parseInt(date.split('-')[1], 10)
if ([1, 3, 7].includes(month)) return true
if ([2, 5, 12].includes(month)) return ['error', 'purple', 'rgba(0, 128, 0, 0.5)']
return false
},
},
}
</script>
示例
下面是一些简单到复杂的例子。
日期选择器 - 颜色
日期选择器颜色可以使用 color
和 header-color
属性设置。如果没有提供 header-color
属性将使用 color
属性值。
template script
<template>
<v-row justify="space-around">
<v-date-picker v-model="picker" color="green lighten-1"></v-date-picker>
<v-date-picker v-model="picker2" color="green lighten-1" header-color="primary"></v-date-picker>
</v-row>
</template>
<script>
export default {
data () {
return {
picker: new Date().toISOString().substr(0, 10),
picker2: new Date().toISOString().substr(0, 10),
}
},
}
</script>
日期选择器 - 允许的日期
您可以使用数组、对象和函数指定允许的日期。
template script
<template>
<v-row justify="center">
<v-date-picker
v-model="date"
:allowed-dates="allowedDates"
class="mt-4"
min="2016-06-15"
max="2018-03-20"
></v-date-picker>
</v-row>
</template>
<script>
export default {
data: () => ({
date: '2018-03-02',
}),
methods: {
allowedDates: val => parseInt(val.split('-')[2], 10) % 2 === 0,
},
}
</script>
日期选择器 - 设置选择器宽度
您可以指定选择器的宽度或使其完全宽度。
template script
<template>
<v-row align="center">
<v-date-picker
v-model="date"
width="290"
class="mt-4"
></v-date-picker>
<v-date-picker
v-model="date"
full-width
:landscape="$vuetify.breakpoint.smAndUp"
class="mt-4"
></v-date-picker>
</v-row>
</template>
<script>
export default {
data: () => ({
date: new Date().toISOString().substr(0, 10),
}),
}
</script>
日期选择器 - 对显示的 月/年 变化做出反应
您可以观看 pickerDate
,它是显示的 月份/年份(取决于选择器类型和活动视图),以便在更改时执行一些操作。
template script
<template>
<v-row>
<v-col cols="12" sm="6" class="my-2 px-1">
<v-date-picker
ref="picker"
v-model="date"
:picker-date.sync="pickerDate"
full-width
></v-date-picker>
</v-col>
<v-col cols="12" sm="6" class="my-2 px-1">
<div class="title">Month news ({{ pickerDate || 'change month...' }})</div>
<div class="subheading">Change month to see other news</div>
<ul class="ma-4">
<li v-for="note in notes" :key="note">{{ note }}</li>
</ul>
</v-col>
</v-row>
</template>
<script>
export default {
data: () => ({
date: new Date().toISOString().substr(0, 10),
pickerDate: null,
notes: [],
allNotes: [
'President met with prime minister',
'New power plant opened',
'Rocket launch announced',
'Global warming discussion cancelled',
'Company changed its location',
],
}),
watch: {
pickerDate (val) {
this.notes = [
this.allNotes[Math.floor(Math.random() * 5)],
this.allNotes[Math.floor(Math.random() * 5)],
this.allNotes[Math.floor(Math.random() * 5)],
].filter((value, index, self) => self.indexOf(value) === index)
},
},
}
</script>
日期选择器 - 国际化
日期选择器通过 JavaScript Date 对象支持国际化。 使用 locale
属性指定 BCP 47 语言标签,然后使用first-day-of-week
属性设置一周的第一天。
template script
<template>
<v-row justify="space-around">
<v-date-picker
v-model="picker"
:first-day-of-week="0"
locale="zh-cn"
></v-date-picker>
<v-date-picker
v-model="picker"
:first-day-of-week="1"
locale="sv-se"
></v-date-picker>
</v-row>
</template>
<script>
export default {
data () {
return {
picker: new Date().toISOString().substr(0, 10),
}
},
}
</script>
日期选择器 - 图标
您可以覆盖选择器中使用的默认图标。
template script
<template>
<v-row justify="center">
<v-date-picker
v-model="picker"
year-icon="mdi-calendar-blank"
prev-icon="mdi-skip-previous"
next-icon="mdi-skip-next"
></v-date-picker>
</v-row>
</template>
<script>
export default {
data () {
return {
picker: new Date().toISOString().substr(0, 10),
}
},
}
</script>
日期选择器 - 只读
可以通过添加 readonly 属性来禁用选择新日期。
template script
<template>
<v-row justify="center">
<v-date-picker v-model="date" readonly></v-date-picker>
</v-row>
</template>
<script>
export default {
data () {
return {
date: new Date().toISOString().substr(0, 10),
}
},
}
</script>
日期选择器 - 当前日期指示器
默认情况下,使用轮廓按钮显示当前日期 - show-current 属性可让您删除边框或选择其他日期作为当前日期显示。
template script
<template>
<v-row justify="space-around">
<v-date-picker v-model="date1" :show-current="false"></v-date-picker>
<v-date-picker v-model="date2" show-current="2013-07-13"></v-date-picker>
</v-row>
</template>
<script>
export default {
data () {
return {
date1: new Date().toISOString().substr(0, 10),
date2: '2013-07-29',
}
},
}
</script>
月份选择器
月份选择器有两种方向变化:纵向 (默认) 和横向。
template script
<template>
<v-row align="center">
<v-checkbox v-model="landscape" label="Landscape"></v-checkbox>
<v-date-picker v-model="picker" :landscape="landscape" type="month"></v-date-picker>
</v-row>
</template>
<script>
export default {
data () {
return {
picker: new Date().toISOString().substr(0, 7),
landscape: false,
}
},
}
</script>
月份选择器 - 颜色
月份选择器颜色可以使用 color
和 header-color
属性设置。如果没有提供 header-color
属性将使用 color
属性值。
template script
<template>
<v-row justify="space-around">
<v-date-picker v-model="picker" type="month" color="green lighten-1"></v-date-picker>
<v-date-picker v-model="picker2" type="month" color="green lighten-1" header-color="primary"></v-date-picker>
</v-row>
</template>
<script>
export default {
data () {
return {
picker: new Date().toISOString().substr(0, 7),
picker2: new Date().toISOString().substr(0, 7),
}
},
}
</script>
月份选择器 - 允许月份
您可以使用数组、对象或函数指定允许的月份。
template script
<template>
<v-row justify="center">
<v-date-picker
v-model="date"
:allowed-dates="allowedMonths"
type="month"
class="mt-4"
min="2017-06"
max="2019-10"
></v-date-picker>
</v-row>
</template>
<script>
export default {
data () {
return {
date: '2017-12',
}
},
methods: {
allowedMonths: val => parseInt(val.split('-')[1], 10) % 2 === 0,
},
}
</script>
月份选择器 - 多选
月份选择器现在可以使用 multiple
属性选择多个月。如果使用 multiple
,则月份选择器的模型是一个数组。
template script
<template>
<v-row justify="center">
<v-date-picker
v-model="months"
type="month"
multiple
></v-date-picker>
</v-row>
</template>
<script>
export default {
data: () => ({
months: ['2018-09', '2018-10'],
}),
}
</script>
月份选择器 - 设置选择器宽度
您可以指定选择器的宽度或使其完全宽度。
template script
<template>
<v-row justify="space-around">
<v-date-picker
v-model="date"
type="month"
width="290"
class="mt-4"
></v-date-picker>
<v-date-picker
v-model="date"
full-width
:landscape="$vuetify.breakpoint.smAndUp"
type="month"
class="mt-4"
></v-date-picker>
</v-row>
</template>
<script>
export default {
data: () => ({
date: new Date().toISOString().substr(0, 7),
}),
}
</script>
Vuetify Discord
Get help with an issue, report a bug or connect with other developers on Discord
ads by Vuetify
](https://community.vuetifyjs.com?ref=vuetifyjs.com)
月份选择器 - 国际化
月份选择器支持通过 JavaScript 日期对象进行国际化。 使用 locale
prop, 指定一个 BCP 47 语言标记, 然后使用 first day of week
属性, 设置星期的第一天。
template script
<template>
<v-row justify="space-around">
<v-date-picker
v-model="picker"
type="month"
locale="th"
></v-date-picker>
<v-date-picker
v-model="picker"
type="month"
locale="sv-se"
></v-date-picker>
</v-row>
</template>
<script>
export default {
data () {
return {
picker: new Date().toISOString().substr(0, 7),
}
},
}
</script>
月份选择器 - 图标
您可以覆盖选择器中使用的默认图标。
template script
<template>
<v-row justify="center">
<v-date-picker
v-model="picker"
type="month"
year-icon="mdi-calendar-blank"
prev-icon="mdi-skip-previous"
next-icon="mdi-skip-next"
></v-date-picker>
</v-row>
</template>
<script>
export default {
data () {
return {
picker: new Date().toISOString().substr(0, 7),
}
},
}
</script>
月份选择器 - 只读
可以通过添加 readonly 属性来禁用选择新日期。
template script
<template>
<v-row justify="center">
<v-date-picker v-model="date" type="month" readonly></v-date-picker>
</v-row>
</template>
<script>
export default {
data () {
return {
date: new Date().toISOString().substr(0, 7),
}
},
}
</script>
月份选择器 - 当前月份指示器
默认情况下,使用轮廓按钮显示当前月份 - * show-current** 属性可让您删除边框或选择要显示为当前月份的其他月份。
template script
<template>
<v-row justify="space-around">
<v-date-picker v-model="month1" :show-current="false" type="month"></v-date-picker>
<v-date-picker v-model="month2" type="month" show-current="2013-07"></v-date-picker>
</v-row>
</template>
<script>
export default {
data () {
return {
month1: new Date().toISOString().substr(0, 7),
month2: '2013-09',
}
},
}
</script>
日期选择器 - 在对话框和菜单中
将选择器集成到 v-text-field
中时,建议使用 readonly 属性。 这样可以防止移动键盘触发。 为了节省垂直空间,您还可以隐藏选择器标题。
选择器提供了一个插槽,您可以使用它来保存和取消功能。 这将保留一个旧值,如果用户取消,则可以替换该旧值。
template script
<template>
<v-row>
<v-col cols="12" sm="6" md="4">
<v-menu
ref="menu"
v-model="menu"
:close-on-content-click="false"
:return-value.sync="date"
transition="scale-transition"
offset-y
min-width="290px"
>
<template v-slot:activator="{ on }">
<v-text-field
v-model="date"
label="Picker in menu"
prepend-icon="event"
readonly
v-on="on"
></v-text-field>
</template>
<v-date-picker v-model="date" no-title scrollable>
<v-spacer></v-spacer>
<v-btn text color="primary" @click="menu = false">Cancel</v-btn>
<v-btn text color="primary" @click="$refs.menu.save(date)">OK</v-btn>
</v-date-picker>
</v-menu>
</v-col>
<v-spacer></v-spacer>
<v-col cols="12" sm="6" md="4">
<v-dialog
ref="dialog"
v-model="modal"
:return-value.sync="date"
persistent
width="290px"
>
<template v-slot:activator="{ on }">
<v-text-field
v-model="date"
label="Picker in dialog"
prepend-icon="event"
readonly
v-on="on"
></v-text-field>
</template>
<v-date-picker v-model="date" scrollable>
<v-spacer></v-spacer>
<v-btn text color="primary" @click="modal = false">Cancel</v-btn>
<v-btn text color="primary" @click="$refs.dialog.save(date)">OK</v-btn>
</v-date-picker>
</v-dialog>
</v-col>
<v-col cols="12" sm="6" md="4">
<v-menu
v-model="menu2"
:close-on-content-click="false"
:nudge-right="40"
transition="scale-transition"
offset-y
min-width="290px"
>
<template v-slot:activator="{ on }">
<v-text-field
v-model="date"
label="Picker without buttons"
prepend-icon="event"
readonly
v-on="on"
></v-text-field>
</template>
<v-date-picker v-model="date" @input="menu2 = false"></v-date-picker>
</v-menu>
</v-col>
<v-spacer></v-spacer>
</v-row>
</template>
<script>
export default {
data: () => ({
date: new Date().toISOString().substr(0, 10),
menu: false,
modal: false,
menu2: false,
}),
}
</script>
日期选择器 - 格式化日期
如果您需要以自定义格式显示日期(不同于YYYY-MM-DD),您需要使用格式化函数。
template script
<template>
<v-container>
<v-row>
<v-col cols="12" lg="6">
<v-menu
ref="menu1"
v-model="menu1"
:close-on-content-click="false"
transition="scale-transition"
offset-y
max-width="290px"
min-width="290px"
>
<template v-slot:activator="{ on }">
<v-text-field
v-model="dateFormatted"
label="Date"
hint="MM/DD/YYYY format"
persistent-hint
prepend-icon="event"
@blur="date = parseDate(dateFormatted)"
v-on="on"
></v-text-field>
</template>
<v-date-picker v-model="date" no-title @input="menu1 = false"></v-date-picker>
</v-menu>
<p>Date in ISO format: <strong>{{ date }}</strong></p>
</v-col>
<v-col cols="12" lg="6">
<v-menu
v-model="menu2"
:close-on-content-click="false"
transition="scale-transition"
offset-y
max-width="290px"
min-width="290px"
>
<template v-slot:activator="{ on }">
<v-text-field
v-model="computedDateFormatted"
label="Date (read only text field)"
hint="MM/DD/YYYY format"
persistent-hint
prepend-icon="event"
readonly
v-on="on"
></v-text-field>
</template>
<v-date-picker v-model="date" no-title @input="menu2 = false"></v-date-picker>
</v-menu>
<p>Date in ISO format: <strong>{{ date }}</strong></p>
</v-col>
</v-row>
</v-container>
</template>
<script>
export default {
data: vm => ({
date: new Date().toISOString().substr(0, 10),
dateFormatted: vm.formatDate(new Date().toISOString().substr(0, 10)),
menu1: false,
menu2: false,
}),
computed: {
computedDateFormatted () {
return this.formatDate(this.date)
},
},
watch: {
date (val) {
this.dateFormatted = this.formatDate(this.date)
},
},
methods: {
formatDate (date) {
if (!date) return null
const [year, month, day] = date.split('-')
return `${month}/${day}/${year}`
},
parseDate (date) {
if (!date) return null
const [month, day, year] = date.split('/')
return `${year}-${month.padStart(2, '0')}-${day.padStart(2, '0')}`
},
},
}
</script>
日期选择器 - 使用外部库格式化日期
也可以使用外部库(例如 Moment.js 或 date-fns)格式化日期
template script
<template>
<v-container>
<v-row>
<v-col cols="12" lg="6">
<v-menu
v-model="menu1"
:close-on-content-click="false"
max-width="290"
>
<template v-slot:activator="{ on }">
<v-text-field
:value="computedDateFormattedMomentjs"
clearable
label="Formatted with Moment.js"
readonly
v-on="on"
@click:clear="date = null"
></v-text-field>
</template>
<v-date-picker
v-model="date"
@change="menu1 = false"
></v-date-picker>
</v-menu>
</v-col>
<v-col cols="12" lg="6">
<v-menu
v-model="menu2"
:close-on-content-click="false"
max-width="290"
>
<template v-slot:activator="{ on }">
<v-text-field
:value="computedDateFormattedDatefns"
clearable
label="Formatted with datefns"
readonly
v-on="on"
@click:clear="date = null"
></v-text-field>
</template>
<v-date-picker
v-model="date"
@change="menu2 = false"
></v-date-picker>
</v-menu>
</v-col>
</v-row>
</v-container>
</template>
<script>
import moment from 'moment'
import { format, parseISO } from 'date-fns'
export default {
data: () => ({
// https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments
date: parseISO(new Date().toISOString().substr(0, 10)),
menu1: false,
menu2: false,
}),
computed: {
computedDateFormattedMomentjs () {
return this.date ? moment(this.date).format('dddd, MMMM Do YYYY') : ''
},
computedDateFormattedDatefns () {
return this.date ? format(this.date, 'EEEE, MMMM do yyyy') : ''
},
},
}
</script>
日期选择器 - 多个选项
日期选择器使用 multiple
属性可以选择多个日期。如果使用 multiple
,那么日期选择器期望它的模型是一个数组。
template script
<template>
<v-row>
<v-col cols="12" sm="6">
<v-date-picker
v-model="dates"
multiple
></v-date-picker>
</v-col>
<v-col cols="12" sm="6">
<v-menu
ref="menu"
v-model="menu"
:close-on-content-click="false"
:return-value.sync="dates"
transition="scale-transition"
offset-y
min-width="290px"
>
<template v-slot:activator="{ on }">
<v-combobox
v-model="dates"
multiple
chips
small-chips
label="Multiple picker in menu"
prepend-icon="event"
readonly
v-on="on"
></v-combobox>
</template>
<v-date-picker v-model="dates" multiple no-title scrollable>
<v-spacer></v-spacer>
<v-btn text color="primary" @click="menu = false">Cancel</v-btn>
<v-btn text color="primary" @click="$refs.menu.save(dates)">OK</v-btn>
</v-date-picker>
</v-menu>
</v-col>
</v-row>
</template>
<script>
export default {
data: () => ({
dates: ['2018-09-15', '2018-09-20'],
menu: false,
}),
}
</script>
日期选择器 - 范围
日期选择器可以使用 range
属性选择日期范围。 当使用 range
属性时,日期选择器它的模型为长度为 2 的数组或为空。
template script
<template>
<v-row>
<v-col cols="12" sm="6">
<v-date-picker v-model="dates" range></v-date-picker>
</v-col>
<v-col cols="12" sm="6">
<v-text-field v-model="dateRangeText" label="Date range" prepend-icon="event" readonly></v-text-field>
model: {{ dates }}
</v-col>
</v-row>
</template>
<script>
export default {
data: () => ({
dates: ['2019-09-10', '2019-09-20'],
}),
computed: {
dateRangeText () {
return this.dates.join(' ~ ')
},
},
}
</script>
日期选择器 - 生日选择器
默认情况下,从年份选择器开始,限制日期范围并在选择日期后关闭选择器菜单,使之成为理想的生日选择器。
template script
<template>
<v-menu
ref="menu"
v-model="menu"
:close-on-content-click="false"
transition="scale-transition"
offset-y
min-width="290px"
>
<template v-slot:activator="{ on }">
<v-text-field
v-model="date"
label="Birthday date"
prepend-icon="event"
readonly
v-on="on"
></v-text-field>
</template>
<v-date-picker
ref="picker"
v-model="date"
:max="new Date().toISOString().substr(0, 10)"
min="1950-01-01"
@change="save"
></v-date-picker>
</v-menu>
</template>
<script>
export default {
data: () => ({
date: null,
menu: false,
}),
watch: {
menu (val) {
val && setTimeout(() => (this.$refs.picker.activePicker = 'YEAR'))
},
},
methods: {
save (date) {
this.$refs.menu.save(date)
},
},
}
</script>
日期选择器 - 事件
您可以使用数组,对象或函数指定事件。 要更改事件的默认颜色,请使用 event-color 属性。 如果您想显示多个事件指示器,则您的事件函数或对象可以返回颜色(material 或 css)数组。
template script
<template>
<v-row justify="space-between">
<div>
<div class="subheading">Defined by array</div>
<v-date-picker
v-model="date1"
:events="arrayEvents"
event-color="green lighten-1"
></v-date-picker>
</div>
<div>
<div class="subheading">Defined by function</div>
<v-date-picker
v-model="date2"
:event-color="date => date[9] % 2 ? 'red' : 'yellow'"
:events="functionEvents"
></v-date-picker>
</div>
</v-row>
</template>
<script>
export default {
data: () => ({
arrayEvents: null,
date1: new Date().toISOString().substr(0, 10),
date2: new Date().toISOString().substr(0, 10),
}),
mounted () {
this.arrayEvents = [...Array(6)].map(() => {
const day = Math.floor(Math.random() * 30)
const d = new Date()
d.setDate(day)
return d.toISOString().substr(0, 10)
})
},
methods: {
functionEvents (date) {
const [,, day] = date.split('-')
if ([12, 17, 28].includes(parseInt(day, 10))) return true
if ([1, 19, 22].includes(parseInt(day, 10))) return ['red', '#00f']
return false
},
},
}
</script>
月份选择器 - 在对话框和菜单
将选择器集成到 v-text-field
中时,建议使用 readonly 属性。 这样可以防止移动键盘触发。 为了节省垂直空间,您还可以隐藏选择器标题。
选择器提供了一个插槽,您可以使用它来保存和取消功能。 这将保留一个旧值,如果用户取消,则可以替换该旧值。
template script
<template>
<v-row>
<v-col cols="11" sm="5">
<v-menu
ref="menu"
v-model="menu"
:close-on-content-click="false"
:return-value.sync="date"
transition="scale-transition"
offset-y
max-width="290px"
min-width="290px"
>
<template v-slot:activator="{ on }">
<v-text-field
v-model="date"
label="Picker in menu"
prepend-icon="event"
readonly
v-on="on"
></v-text-field>
</template>
<v-date-picker
v-model="date"
type="month"
no-title
scrollable
>
<v-spacer></v-spacer>
<v-btn text color="primary" @click="menu = false">Cancel</v-btn>
<v-btn text color="primary" @click="$refs.menu.save(date)">OK</v-btn>
</v-date-picker>
</v-menu>
</v-col>
<v-spacer></v-spacer>
<v-col cols="11" sm="5">
<v-dialog
ref="dialog"
v-model="modal"
:return-value.sync="date"
persistent
width="290px"
>
<template v-slot:activator="{ on }">
<v-text-field
v-model="date"
label="Picker in dialog"
prepend-icon="event"
readonly
v-on="on"
></v-text-field>
</template>
<v-date-picker v-model="date" type="month" scrollable>
<v-spacer></v-spacer>
<v-btn text color="primary" @click="modal = false">Cancel</v-btn>
<v-btn text color="primary" @click="$refs.dialog.save(date)">OK</v-btn>
</v-date-picker>
</v-dialog>
</v-col>
</v-row>
</template>
<script>
export default {
data: () => ({
date: new Date().toISOString().substr(0, 7),
menu: false,
modal: false,
}),
}
</script>