календарь dijit для отображения только 52 недели назад от текущего дня в додзё - PullRequest
0 голосов
/ 03 февраля 2019

У меня есть требование показывать календарь только 52 недели назад от текущего дня в додзё, я использую dijit/Calendar для того же, может кто-нибудь мне помочь, предоставив подсветку для отображения только 52 недель назад от текущего дня вКалендарь dijit.

В настоящее время я использую data-dojo-props, который отключает только выходные в календаре.

<div id="mycal" data-dojo-attachpoint="mycal" 
                data-dojo-type="dijit.calendar" 
                data-dojo-props="isDisabledDate:dojo.date.locale.isWeekend">
</div>

1 Ответ

0 голосов
/ 05 февраля 2019

Это так просто, вы должны сделать это программным способом,

Создать диджит календаря, а затем переопределить его функцию isDisabledDate, проверив, что оба показанных дня просмотра являются> или являются днями недели: какниже

return dojoDate.difference(date, new Date(), "day") > disable_before_days || locale.isWeekend(date)  ;

См. ниже рабочий фрагмент:

require(["dojo/parser",
    "dijit/Calendar",
    "dijit/registry",
    "dojo/date",
    "dojo/date/locale",
    "dojo/ready",
    "dojo/domReady!"
], function(parser, Calendar, registry, dojoDate, locale, ready){

    disable_before_days = 52;

    ready(function(){
      //var calendar = registry.byId("mycal");
      var calendar = new Calendar({
        value: new Date(),
        isDisabledDate:function(date, localString){
          return dojoDate.difference(date, new Date(), "day") > disable_before_days 
              || locale.isWeekend(date) 
              || date > new Date() ;
        }
       }, "mycal");
    });
});
html, body {
    height: 100%;
    padding: 0;	
    margin: 0;
    font-family: Lucida Sans,Lucida Grande,Arial !important;
    font-size: 13px !important;
    background: white;
    color: #333;
}

#mycal .dijitCalendarDisabledDate {
    background-color: #333;
    text-decoration: none;
}

#mycal .dijitCalendarContainer {
    margin: 25px auto;
}
<link href="https://ajax.googleapis.com/ajax/libs/dojo/1.8.3/dojox/calendar/themes/claro/Calendar.css" rel="stylesheet"/>
<link href="https://ajax.googleapis.com/ajax/libs/dojo/1.8.3/dijit/themes/claro/claro.css" rel="stylesheet"/>

<script type="text/javascript">
  dojoConfig = {
    isDebug: true,
    async: true,
    parseOnLoad: true
  }
</script>

<script src="https://ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"></script>
<body class="claro">
  <div id="mycal" ></div>

</body>
...