Как я могу отключить заголовок года на DatePicker? - PullRequest
0 голосов
/ 02 ноября 2019

Демо и полный код: https://codepen.io/positivethinking639/pen/LYYejLM

Если я использую это:

.v-date-picker-header__value button {
    pointer-events: none;
}

, это работает. Но он также отключает год-месяц

Я хочу включить это:

enter image description here

И отключить это:

enter image description here

как я могу это сделать?

1 Ответ

1 голос
/ 02 ноября 2019

Да, можно отключить только год, используя js

Здесь я добавил фрагмент кода в смонтированном хуке , этот хук будет запущен, как только будет отрисован полный html

Рабочий код здесь: https://codepen.io/chansv/pen/NWWyNwX?editors=1010

    <div id="app">
      <v-app id="inspire">
        <v-row justify="center">
          <v-date-picker v-model="picker" no-title></v-date-picker>
        </v-row>
      </v-app>
    </div>

    new Vue({
  el: '#app',
  vuetify: new Vuetify(),
  data () {
    return {
      picker: new Date().toISOString().substr(0, 10),
    }
  },
  mounted() {
    // Select the node that will be observed for mutations
    var targetNode = document.querySelector('.v-picker__body');
    // Options for the observer (which mutations to observe)
    var config = { attributes: true, childList: true };

    // Callback function to execute when mutations are observed
    var callback = function(mutationsList) {
        for(var mutation of mutationsList) {
            if (mutation.type == 'childList') {
              var headerBtn = document.querySelector('.accent--text > button');
              if (headerBtn.innerHTML.length == 4) {
                headerBtn.disabled = true;
                headerBtn.style.cursor = 'default';
                document.querySelectorAll('.v-date-picker-header > button').forEach(x => {
                  x.disabled = true;
                  x.style.cursor = 'default';
                });
              } else {
                document.querySelectorAll('.v-date-picker-header > button').forEach(x => {
                  x.disabled = false;
                  x.style.cursor = 'pointer';
                });
              }
            }
            else if (mutation.type == 'attributes') {
                console.log('The ' + mutation.attributeName + ' attribute was modified.');
            }
        }
    };

    // Create an observer instance linked to the callback function
    var observer = new MutationObserver(callback);

    // Start observing the target node for configured mutations
    observer.observe(targetNode, config);
  }
})
...