如何更改 datepicker vuetify 上的日期颜色?

Posted

技术标签:

【中文标题】如何更改 datepicker vuetify 上的日期颜色?【英文标题】:How can I change color of date on the datepicker vuetify? 【发布时间】:2020-02-20 10:08:46 【问题描述】:

像这样演示代码笔:https://codepen.io/positivethinking639/pen/pooeMpo?&editable=true&editors=101

我试试这个:.v-date-picker-table .v-btn color: green ; 它有效

但我的问题是我想添加条件。所以在某个日期,它是绿色的。在其他日期,颜色为黑色。

例如奇数日期的颜色是绿色。连日期都是黑色的

我该怎么做?

【问题讨论】:

也许你可以从这个答案中得到一些灵感:https://***.com/a/44738834/3163418 @mapa0402 这个案例是 vuetify 上的 datepicker。不是其他人 【参考方案1】:

根据您的问题,您需要为特定日期着色并突出显示这些特定日期的选定日期颜色

默认情况下 vuetify 提供 :event-color="primary" :events="any function" 在日期下方添加额外的样式,它不处理日期颜色

如果你使用 color="green--text" 它会改变所有日期的颜色和 无法控制特定日期

您仍然可以根据需要添加自己的逻辑来设置特定日期的颜色。但它需要一些额外的逻辑来处理这种情况

以下代码考虑了所有日期中的可用日期,并以编程方式将 css 应用于这些日期

在此处找到工作的 codepen: https://codepen.io/chansv/pen/LYYyNYd?editors=1010

    <div id="app">
  <v-app id="inspire">
    <v-row justify="center">
      <v-date-picker v-model="picker" @change="dateClicked"></v-date-picker>
    </v-row>
  </v-app>
</div>

.date-color 
  color: #00B300;
  font-weight: 900;


.v-btn--active .date-color 
  color: #fff;



new Vue(
  el: '#app',
  vuetify: new Vuetify(),
  data () 
    return 
      picker: new Date().toISOString().substr(0, 10),
      availableDates: ["2019-10-02", "2019-10-8", "2019-10-11"],
    
  ,
  methods: 
    dateClicked(val) 
      var allDates = document.querySelectorAll(".v-date-picker-table .v-btn .v-btn__content");
      var dates = this.availableDates.map(x => parseInt(x.split('-')[2]));
      allDates.forEach((x, i) => 
        if (dates.includes(parseInt(val.split('-')[2])) && parseInt(val.split('-')[2]) == x.innerhtml) 

          x.parentNode.style = "background-color: #00b300 !important";
         else 
          x.parentNode.style = '';
        
      );

    ,
    setColor() 
      var allDates = document.querySelectorAll(".v-date-picker-table .v-btn .v-btn__content");
      var dates = this.availableDates.map(x => parseInt(x.split('-')[2]));
      console.log(dates);
      allDates.forEach((x, i) => 
        if (dates.includes(parseInt(x.innerHTML))) 
          allDates[i].classList.add('date-color');
        
      )
    
  ,
  mounted() 
  this.setColor();

)

【讨论】:

以上是关于如何更改 datepicker vuetify 上的日期颜色?的主要内容,如果未能解决你的问题,请参考以下文章

如果在 datepicker vuetify 中选择日期,我该如何调用方法?

在 vuetify.js 中将 Header 设置为 DatePicker

如何以编程方式更改 swiftUI DatePicker 的选定值

如何更改 Vuetify 按钮的文本颜色?

如何更改 Vuetify 中数据表的背景颜色?

如何更改 Vuetify 中的默认颜色?