27 lines
835 B
JavaScript
27 lines
835 B
JavaScript
// Interaction:交互控制器,处理用户交互逻辑,输出标准化事件
|
||
export default class Interaction {
|
||
constructor(dataManager, timeCalculator) {
|
||
this.dataManager = dataManager;
|
||
this.timeCalculator = timeCalculator;
|
||
}
|
||
// 处理拖拽开始
|
||
handleDragStart(taskId) {
|
||
// 可扩展:记录初始状态
|
||
}
|
||
// 处理拖拽过程
|
||
handleDragUpdate(taskId, newDate) {
|
||
// 校验新日期是否合法,可扩展
|
||
this.dataManager.updateTask(taskId, { start: newDate });
|
||
}
|
||
// 处理拖拽结束
|
||
handleDragEnd(taskId, newDate) {
|
||
// 最终更新数据
|
||
this.dataManager.updateTask(taskId, { start: newDate });
|
||
}
|
||
// 处理维度切换
|
||
handleSwitchDimension(dim) {
|
||
// 重新分组并通知视图层
|
||
this.dataManager.dimensions = [dim];
|
||
this.dataManager.notify();
|
||
}
|
||
}
|