Hi @longhai,
Unfortunately, there is no built-in functionality for this, but it could be implemented in a custom solution. The logic of this solution is to find siblings of the dragged task and compare the start/end dates of the dragged task with the start/end dates of his siblings. After that you will be able to apply/decline drag inside onBeforeTaskChanged event, here is the snippet: http://snippet.dhtmlx.com/d83444547
As I understand, you are using the custom vertical ‘dnd’ solution, is it?
It is so, here is a modified vertical ‘dnd’ solution, with preventing of vertical/horizontal overlap: http://snippet.dhtmlx.com/87edc8827
The main logic of this one is to find new parents of the task before when drag, add styles when it overlaps with new parents and apply/decline the task drag inside onBeforeTaskChanged.
The logic of overlap detecting is placed inside isOverlapDetected() function.