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();
|
|||
|
|
}
|
|||
|
|
}
|