Sila beritahu saya jika ada cara lain untuk melakukan ini menggunakan v-date-picker. Saya hanya mahu pengguna boleh memilih tahun dan bulan dan kemudian menu pemilih tarikh harus ditutup.
Ini adalah html saya sebagai contoh, tetapi saya tidak kisah menggunakan kod yang berbeza asalkan ia masih menggunakan v-date-picker.
<v-menu v-model='monthMenu' :close-on-content-click='false' :nudge-right='40' transition='scale-transition' offset-y min-width='290px'> <template v-slot:activator='{ on, attrs }'> <v-text-field v-model='txtMonth' label='Month' prepend-icon='mdi-calendar' readonly v-bind='attrs' v-on='on' ></v-text-field> </template> <v-date-picker v-model='month' @change='datePicked' color='primary' scrollable ></v-date-picker> </v-menu>
ts, kaedah datePicked mempunyai apa yang saya cuba tetapi tidak berkesan
export default Vue.extend({ data() { return { monthMenu: false, month: new Date(new Date().getFullYear(), new Date().getMonth()).toISOString() .substr(0, 10), }; }, computed: { txtMonth(): string { const [year, month, day] = this.month.split('-'); return `${year}/${month}/${day}`; }, }, methods: { datePicked(log: any) { /* eslint-disable */ console.log('here2'); // const el = document.getElementsByClassName('v-date-picker-table--month') as unknown as HTMLElement; const acc = document.getElementsByClassName('v-date-picker-table--month'); let i; for (i = 0; i < acc.length; i++) { acc[i].addEventLis tener("click",function() { console.log('here'); // this.monthMenu = false }); } }, }, });
Selepas menghabiskan beberapa jam untuk keperluan ini, saya dapat melaksanakannya. Anda boleh mematikan mod pemilih tarikh terbuka dengan memerhati nilai model bulan. Juga, untuk atribut
元素分配值为month
的type
.Demo Langsung: