1

予定の予約に DHTMLX スケジューラを使用しています。二重予約を避けるために、他のユーザーによって既に選択されているが、まだ予約プロセスが完了していない時間帯にブロックを表示しました。

他のユーザーが現在処理中の予定のステータスを確認するために setInterval があります。

私が欲しいのは、特定のブロックを削除する必要がある setInterval でデータを取得した場合です。以下は、スケジューラでブロックやその他の予定を表示するために使用しているスクリプトです。

// This is how I'm showing block area on scheduler

scheduler.addMarkedTimespan({  
     start_date: new Date(2013,11,29,01,00),
     end_date: new Date(2013,11,29,01,10),
     css: "inprocess",
     sections: {
     unit: 'a7b6e635-f62f-6f12-020f-52a959d1ca47'
  }
});

// This is how I'm showing appointments on scheduler

scheduler.config.multi_day = true;
scheduler.init('scheduler_here',new Date(2013,11,29),"unit");
scheduler.parse([{"start_date":"2013-12-29 01:13","end_date":"2013-12-29 01:23","text":"<div style='float: left;'>Booked<\/div><div style='float: right;
scheduler.updateView();

処理中のセクションを 5 秒ごとに更新したいので、setInterval を呼び出します。setIntervalからインプロセスと同じデータをjsonで取得しています。その特定のセクションを更新したいと思います。処理中のブロック領域を追加するか、既存のブロックを削除することができます。

ブロックを追加する方法はすでに知っていますが、既存のブロック領域/処理中領域を削除する方法に行き詰まっています。

*そのためにセクション全体を更新したくありません。

4

1 に答える 1

3

deleteMarkedTimespanメソッドを確認してください。.addMarkedTimespan と同じパラメーターを取り、特定の時間からマーク/ブロックされた領域を削除するために使用できます。このサンプルページでテストできます

ブラウザ コンソールで次のコードを実行すると、最初の週の月曜日にマークされた領域の一部が削除されます。

scheduler.deleteMarkedTimespan({
    start_date: new Date(2012, 7, 6, 0), 
    end_date: new Date(2012, 7, 6, 3)
}); 
scheduler.updateView();//redraw the scheduler

関連ドキュメント: http://docs.dhtmlx.com/scheduler/limits.html#removingmarkingblocking

于 2013-12-24T12:50:19.460 に答える