|
|
|
@@ -45,6 +45,7 @@ function ModelEvolution({ |
|
|
|
const [enterTooltip, setEnterTooltip] = useState(false); |
|
|
|
const [nodeTooltipX, setNodeToolTipX] = useState(0); |
|
|
|
const [nodeTooltipY, setNodeToolTipY] = useState(0); |
|
|
|
const [isNodeTooltipLeft, setIsNodeTooltipLeft] = useState(true); |
|
|
|
const [hoverNodeData, setHoverNodeData] = useState< |
|
|
|
ModelDepsData | ProjectDependency | TrainDataset | undefined |
|
|
|
>(undefined); |
|
|
|
@@ -141,19 +142,28 @@ function ModelEvolution({ |
|
|
|
const { x, y } = model; |
|
|
|
const point = graph.getCanvasByPoint(x!, y!); |
|
|
|
const zoom = graph.getZoom(); |
|
|
|
// 更加缩放,调整 tooltip 位置 |
|
|
|
|
|
|
|
// 根据缩放,调整 tooltip 位置 |
|
|
|
const offsetX = (nodeWidth * zoom) / 4; |
|
|
|
const offsetY = (nodeHeight * zoom) / 4; |
|
|
|
point.x += offsetX; |
|
|
|
// 25 是 `.model-evolution` 的 `padding-left` 值 |
|
|
|
const tooltipX = point.x + offsetX + 25; |
|
|
|
// 20 是 `.model-evolution` 的 `padding-bottom` 值 |
|
|
|
const tooltipY = graphRef.current!.clientHeight - point.y + offsetY + 20; |
|
|
|
setNodeToolTipY(tooltipY); |
|
|
|
|
|
|
|
// 如果右边显示不下 |
|
|
|
const canvasWidth = graphRef.current!.clientWidth; |
|
|
|
if (point.x + 300 > canvasWidth + 30) { |
|
|
|
point.x = canvasWidth + 30 - 300; |
|
|
|
// 300 是 NodeTool 的宽度,canvasWidth + 50 是 `.model-evolution` 的宽度 |
|
|
|
if (tooltipX + 300 > canvasWidth + 50) { |
|
|
|
setIsNodeTooltipLeft(false); |
|
|
|
setNodeToolTipX(canvasWidth + 50 - (point.x - offsetX + 25)); |
|
|
|
} else { |
|
|
|
setNodeToolTipX(tooltipX); |
|
|
|
setIsNodeTooltipLeft(true); |
|
|
|
} |
|
|
|
|
|
|
|
setHoverNodeData(model); |
|
|
|
setNodeToolTipX(point.x); |
|
|
|
setNodeToolTipY(graphRef.current!.clientHeight - point.y + offsetY); |
|
|
|
setShowNodeTooltip(true); |
|
|
|
}); |
|
|
|
|
|
|
|
@@ -254,6 +264,7 @@ function ModelEvolution({ |
|
|
|
resourceId={resourceId} |
|
|
|
x={nodeTooltipX} |
|
|
|
y={nodeTooltipY} |
|
|
|
isLeft={isNodeTooltipLeft} |
|
|
|
data={hoverNodeData!} |
|
|
|
onVersionChange={onVersionChange} |
|
|
|
onMouseEnter={handleTooltipsMouseEnter} |
|
|
|
|