- 拖拽空白平移 · Ctrl+滚轮缩放 · 依次点击两个连接点连线(再点起点/空白/Esc 取消) · 双击笔记编辑
+ 拖拽空白平移 · Ctrl+滚轮缩放 · 依次点击连接点连线(拖线调弧度) · 双击笔记编辑
@@ -628,9 +790,19 @@ defineExpose({
.cv-edge-hit {
fill: none;
stroke: transparent;
- stroke-width: 16;
+ stroke-width: 18;
pointer-events: stroke;
- cursor: pointer;
+ cursor: grab;
+}
+.cv-edge-hit:active {
+ cursor: grabbing;
+}
+.cv-edge-bend {
+ fill: var(--surface-solid);
+ stroke: var(--m-orange);
+ stroke-width: 3;
+ pointer-events: none;
+ filter: drop-shadow(0 0 6px var(--accent-glow));
}
.cv-marquee {
position: absolute;
diff --git a/frontend/src/utils/canvas.js b/frontend/src/utils/canvas.js
index e7bf97a..cdab8ea 100644
--- a/frontend/src/utils/canvas.js
+++ b/frontend/src/utils/canvas.js
@@ -130,6 +130,10 @@ export function normalizeDoc(raw) {
const edge = { id: e.id, from: e.from, to: e.to }
if (['top', 'right', 'bottom', 'left'].includes(e.fromSide)) edge.fromSide = e.fromSide
if (['top', 'right', 'bottom', 'left'].includes(e.toSide)) edge.toSide = e.toSide
+ if (Number.isFinite(e.bendX) && Number.isFinite(e.bendY)) {
+ edge.bendX = Math.max(-10000, Math.min(10000, e.bendX))
+ edge.bendY = Math.max(-10000, Math.min(10000, e.bendY))
+ }
doc.edges.push(edge)
}
}