如何在TUI日历中禁用时间表的设置随机顺序

问题描述

我正在使用 toast UI日历在Laravel项目中进行进度管理。 但是我需要每天禁用时间表的随机顺序。

这是屏幕截图

This is before clicking the refresh button

如果我单击刷新按钮,它将如以下屏幕截图所示发生变化。

This is after clicking the refresh button

这是 generateSchedule 函数

function generateSchedule(viewName,renderStart,renderEnd,check_key) {
  ScheduleList = [];
  realize_schedule.forEach(function(real_item){
    var i = 0,length = 1;
    if (viewName === 'month') {
      length = 1;
    } else if (viewName === 'day') {
      length = 2;
    }
    for (i; i < length; i += 1) {
      var index_calendar = real_item.roomrate_type;
      if(index_calendar > 0){
        index_calendar = index_calendar-1;
      }
      if(check_key === ""){
        generaterandomSchedule(CalendarList[index_calendar],real_item,new Date(real_item.start),new Date(real_item.end));
      }else{
        if(check_key === real_item.roomrate_nameCode){
          generaterandomSchedule(CalendarList[index_calendar],new Date(real_item.end));
        }
      }
    }
  })
}

这是 generaterandomSchedule 函数

function generaterandomSchedule(calendar,roomrate,renderEnd) {
  var schedule = new ScheduleInfo();

  schedule.id = roomrate.id;
  schedule.calendarId = calendar.id;

  schedule.title = calendar.name;
  schedule.body = roomrate.roomrate_nameCode;
  schedule.isReadOnly = false;
  generateTime(schedule,renderEnd);
  schedule.isPrivate = false;
  schedule.location = roomrate.roomrate_value;
  schedule.state =roomrate.status;
  schedule.attendees=[roomrate.night_stayval];
  schedule.recurrenceRule = roomrate.allotmant;

  schedule.color = calendar.color;
  schedule.bgColor = calendar.bgColor;
  schedule.dragBgColor = calendar.dragBgColor;
  schedule.borderColor = calendar.borderColor;

  if (schedule.category === 'milestone') {
    schedule.color = schedule.bgColor;
    schedule.bgColor = 'transparent';
    schedule.dragBgColor = 'transparent';
    schedule.borderColor = 'transparent';
  }

  schedule.raw.memo = chance.sentence();
  schedule.raw.creator.name = chance.name();
  schedule.raw.creator.avatar = chance.avatar();
  schedule.raw.creator.company = chance.company();
  schedule.raw.creator.email = chance.email();
  schedule.raw.creator.phone = chance.phone();
  schedule.raw.creator.bug = "";

  if (chance.bool({ likelihood: 20 })) {
    var travelTime = chance.minute();
    schedule.goingDuration = travelTime;
    schedule.comingDuration = travelTime;
  }

  ScheduleList.push(schedule);
}

所以我想在日字段中禁用该随机功能以进行日程安排。 如果有人有经验请帮助我。

解决方法

请参阅此... enter link description here

您可以从该URL中看到参考代码。 如果要禁用随机设置时间表的顺序,则可能会更改某些库代码。

,

我认为这是不可能的,因为这些时间表是随机安排的。 因此,您应该按顺序使用 createSchedules 函数。

例如,您使用此功能逐一创建时间表。 我认为这只是解决方案。

,

您应该更改 gnerateRandomSchedule 的内容。 我认为最好也上传该功能。

,

我认为您应该更改 realize_schedule 列表的子顺序。 在 generateSchedule 中,此列表按顺序进行了说明。

realize_schedule.forEach(function(real_item){
  var i = 0,length = 1;
  if (viewName === 'month') {
    length = 1;
  } else if (viewName === 'day') {
    length = 2;
  }
  for (i; i < length; i += 1) {
    var index_calendar = real_item.roomRate_type;
    if(index_calendar > 0){
      index_calendar = index_calendar-1;
    }
    if(check_key === ""){
      generateRandomSchedule(CalendarList[index_calendar],real_item,new Date(real_item.start),new Date(real_item.end));
    }else{
      if(check_key === real_item.roomRate_nameCode){
        generateRandomSchedule(CalendarList[index_calendar],new Date(real_item.end));
      }
    }
  }
})

那样做。

,

我长期考虑这个问题。 但是不可能安排得井井有条。 因为此操作使用 createSchedules 函数创建日程表。 在调用此函数之前,计划是按顺序安排的。

这是代码示例。

function setSchedules() {
  cal.clear();
  generateSchedule(cal.getViewName(),cal.getDateRangeStart(),cal.getDateRangeEnd(),filter_Code);
  cal.createSchedules(ScheduleList);
  console.log(ScheduleList);
  refreshScheduleVisibility();
}

您可以通过 console.log()查看scheduleList。 很抱歉编写代码。

如果您有任何问题,请告诉我。