v-date-picker untuk memilih bulan dan tahun sahaja
P粉509383150
P粉509383150 2023-11-10 14:05:05
0
1
940

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粉509383150
P粉509383150

membalas semua(1)
P粉458725040

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 }}

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan