cari

Rumah  >  Soal Jawab  >  teks badan

v-date-picker untuk memilih bulan dan tahun sahaja

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
          });
        }
      },
    },
    });


P粉509383150P粉509383150376 hari yang lalu881

membalas semua(1)saya akan balas

  • P粉458725040

    P粉4587250402023-11-11 11:54:20

    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 元素分配值为 monthtype.

    Demo Langsung:

    new Vue({
      el: '#app',
      vuetify: new Vuetify(),
      data () {
        return {
          monthMenu: false,
          txtMonth: '',
          month: ''
        }
      },
      watch: {
          monthMenu (val) {
            val && setTimeout(() => (this.$refs.picker.activePicker = 'YEAR'))
          },
          month (val) {
            this.monthMenu = false;
          }
        },
      methods: {
        onInput(dateStr) {
          const month = dateStr.split('-')[1];
          const year = dateStr.split('-')[0];
          this.txtMonth = `${month}, ${year}`;
        }
      }
    })
    sssccc
    sssccc
    
    
    
    

    Selected: {{ txtMonth }}

    balas
    0
  • Batalbalas