diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/plugIn/dragZoom.js b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/plugIn/dragZoom.js index 2027f8e1ea3271206d641c0f112866a7306bafd4..009c82bbabb4d0e2f81095b7d490455317664031 100644 --- a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/plugIn/dragZoom.js +++ b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/plugIn/dragZoom.js @@ -29,7 +29,7 @@ DragZoom.prototype.init = function () { .scaleExtent([0.5, 2]) .on('zoom', () => { this.scale = d3.event.scale - $canvas.css('transform', 'translate(' + d3.event.translate[0] + 'px,' + d3.event.translate[1] + 'px) scale(' + this.scale + ')') + $canvas.css('transform', 'scale(' + this.scale + ')') $canvas.css('transform-origin', '0 0') }) this.element.call(this.zoom).on('dblclick.zoom', null) diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/plugIn/jsPlumbHandle.js b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/plugIn/jsPlumbHandle.js index 690497f02385880f321b03a0a511c6dbeba88e22..ef4519ec7b15f96532f38564b36a4402f66fc82a 100755 --- a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/plugIn/jsPlumbHandle.js +++ b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/plugIn/jsPlumbHandle.js @@ -31,7 +31,8 @@ import { rtTasksTpl, setSvgColor, saveTargetarr, - rtTargetarrArr + rtTargetarrArr, + computeScale } from './util' import mStart from '@/conf/home/pages/projects/pages/definition/pages/list/_source/start' import multiDrag from './multiDrag' @@ -148,12 +149,13 @@ JSP.prototype.draggable = function () { scope: 'plant', drop: function (ev, ui) { let id = 'tasks-' + Math.ceil(Math.random() * 100000) // eslint-disable-line - // Get mouse coordinates - const left = parseInt(ui.offset.left - $(this).offset().left) - let top = parseInt(ui.offset.top - $(this).offset().top) - 10 - if (top < 25) { - top = 25 - } + + let scale = computeScale($(this)) + scale = scale || 1 + + // Get mouse coordinates and after scale coordinate + const left = parseInt(ui.offset.left - $(this).offset().left) / scale + const top = parseInt(ui.offset.top - $(this).offset().top) / scale // Generate template node $('#canvas').append(rtTasksTpl({ id: id, diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/plugIn/util.js b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/plugIn/util.js index 84b01a524893ec041dbc1ffdd64330a19d23ce24..0b472b6c100bf9f2bf544051a1a3db239601910e 100755 --- a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/plugIn/util.js +++ b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/plugIn/util.js @@ -130,6 +130,19 @@ const allNodesId = () => { }) return idArr } +/** + * compute scaleļ¼Œbecause it cant get from jquery directly + * @param el element + * @returns {boolean|number} + */ +const computeScale = function (el) { + const matrix = el.css('transform') + if (!matrix || matrix === 'none') { + return false + } + const values = matrix.split('(')[1].split(')')[0].split(',') + return Math.sqrt(values[0] * values[0] + values[1] * values[1]) +} export { rtTargetarrArr, @@ -139,5 +152,6 @@ export { isNameExDag, setSvgColor, allNodesId, - rtBantpl + rtBantpl, + computeScale }