ecinc-cloud-wappaio 9.7.11 → 9.7.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/ecwappaio.common.js +576 -216
- package/lib/ecwappaio.umd.js +576 -216
- package/lib/ecwappaio.umd.min.js +1 -1
- package/package.json +1 -1
package/lib/ecwappaio.common.js
CHANGED
|
@@ -116367,7 +116367,7 @@ var UdmGenerator_UserModuleForm = UserModuleForm;
|
|
|
116367
116367
|
|
|
116368
116368
|
/***/ }),
|
|
116369
116369
|
|
|
116370
|
-
/***/
|
|
116370
|
+
/***/ 34660:
|
|
116371
116371
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
116372
116372
|
|
|
116373
116373
|
"use strict";
|
|
@@ -117034,8 +117034,8 @@ var SideBar_component = (0,componentNormalizer/* default */.A)(
|
|
|
117034
117034
|
)
|
|
117035
117035
|
|
|
117036
117036
|
/* harmony default export */ var SideBar = (SideBar_component.exports);
|
|
117037
|
-
;// CONCATENATED MODULE: ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/ecwplus/WorkflowDesigner/src/components/Center/index.vue?vue&type=template&id=
|
|
117038
|
-
var
|
|
117037
|
+
;// CONCATENATED MODULE: ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/ecwplus/WorkflowDesigner/src/components/Center/index.vue?vue&type=template&id=0ebbd5f8&scoped=true
|
|
117038
|
+
var Centervue_type_template_id_0ebbd5f8_scoped_true_render = function render() {
|
|
117039
117039
|
var _vm = this,
|
|
117040
117040
|
_c = _vm._self._c;
|
|
117041
117041
|
return _c('el-scrollbar', {
|
|
@@ -117154,7 +117154,7 @@ var Centervue_type_template_id_46bbfc1a_scoped_true_render = function render() {
|
|
|
117154
117154
|
}
|
|
117155
117155
|
})], 1)], 1)]);
|
|
117156
117156
|
};
|
|
117157
|
-
var
|
|
117157
|
+
var Centervue_type_template_id_0ebbd5f8_scoped_true_staticRenderFns = [];
|
|
117158
117158
|
|
|
117159
117159
|
// EXTERNAL MODULE: ./node_modules/jquery/dist/jquery.js
|
|
117160
117160
|
var jquery = __webpack_require__(74692);
|
|
@@ -119280,8 +119280,16 @@ var _require22 = __webpack_require__(53978),
|
|
|
119280
119280
|
wflow.process.description = desc;
|
|
119281
119281
|
wflow.process.chartData.descDiv = {};
|
|
119282
119282
|
wflow.process.chartData.descDiv.height = descDiv.clientHeight;
|
|
119283
|
-
|
|
119284
|
-
|
|
119283
|
+
if (descDiv.style.display !== 'none') {
|
|
119284
|
+
wflow.process.chartData.descDiv.left = descDiv.offsetLeft;
|
|
119285
|
+
wflow.process.chartData.descDiv.top = descDiv.offsetTop;
|
|
119286
|
+
} else {
|
|
119287
|
+
// 元素隐藏时offsetLeft/offsetTop为0,从关闭时存储的data属性中读取位置
|
|
119288
|
+
var savedLeft = descDiv.dataset.left;
|
|
119289
|
+
var savedTop = descDiv.dataset.top;
|
|
119290
|
+
if (savedLeft !== undefined) wflow.process.chartData.descDiv.left = parseInt(savedLeft);
|
|
119291
|
+
if (savedTop !== undefined) wflow.process.chartData.descDiv.top = parseInt(savedTop);
|
|
119292
|
+
}
|
|
119285
119293
|
} else {
|
|
119286
119294
|
wflow.process.description = '';
|
|
119287
119295
|
delete wflow.process.chartData.descDiv;
|
|
@@ -119784,13 +119792,13 @@ var _require22 = __webpack_require__(53978),
|
|
|
119784
119792
|
});
|
|
119785
119793
|
;// CONCATENATED MODULE: ./packages/ecwplus/WorkflowDesigner/src/components/Center/index.vue?vue&type=script&lang=js
|
|
119786
119794
|
/* harmony default export */ var components_Centervue_type_script_lang_js = (Centervue_type_script_lang_js);
|
|
119787
|
-
// EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js??clonedRuleSet-22.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[4]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/ecwplus/WorkflowDesigner/src/components/Center/index.vue?vue&type=style&index=0&id=
|
|
119788
|
-
var
|
|
119789
|
-
;// CONCATENATED MODULE: ./packages/ecwplus/WorkflowDesigner/src/components/Center/index.vue?vue&type=style&index=0&id=
|
|
119795
|
+
// EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js??clonedRuleSet-22.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[4]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/ecwplus/WorkflowDesigner/src/components/Center/index.vue?vue&type=style&index=0&id=0ebbd5f8&prod&scoped=true&lang=scss
|
|
119796
|
+
var Centervue_type_style_index_0_id_0ebbd5f8_prod_scoped_true_lang_scss = __webpack_require__(73537);
|
|
119797
|
+
;// CONCATENATED MODULE: ./packages/ecwplus/WorkflowDesigner/src/components/Center/index.vue?vue&type=style&index=0&id=0ebbd5f8&prod&scoped=true&lang=scss
|
|
119790
119798
|
|
|
119791
|
-
// EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js??clonedRuleSet-22.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[4]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/ecwplus/WorkflowDesigner/src/components/Center/index.vue?vue&type=style&index=1&id=
|
|
119792
|
-
var
|
|
119793
|
-
;// CONCATENATED MODULE: ./packages/ecwplus/WorkflowDesigner/src/components/Center/index.vue?vue&type=style&index=1&id=
|
|
119799
|
+
// EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js??clonedRuleSet-22.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[4]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/ecwplus/WorkflowDesigner/src/components/Center/index.vue?vue&type=style&index=1&id=0ebbd5f8&prod&lang=scss
|
|
119800
|
+
var Centervue_type_style_index_1_id_0ebbd5f8_prod_lang_scss = __webpack_require__(65089);
|
|
119801
|
+
;// CONCATENATED MODULE: ./packages/ecwplus/WorkflowDesigner/src/components/Center/index.vue?vue&type=style&index=1&id=0ebbd5f8&prod&lang=scss
|
|
119794
119802
|
|
|
119795
119803
|
;// CONCATENATED MODULE: ./packages/ecwplus/WorkflowDesigner/src/components/Center/index.vue
|
|
119796
119804
|
|
|
@@ -119804,11 +119812,11 @@ var Centervue_type_style_index_1_id_46bbfc1a_prod_lang_scss = __webpack_require_
|
|
|
119804
119812
|
|
|
119805
119813
|
var Center_component = (0,componentNormalizer/* default */.A)(
|
|
119806
119814
|
components_Centervue_type_script_lang_js,
|
|
119807
|
-
|
|
119808
|
-
|
|
119815
|
+
Centervue_type_template_id_0ebbd5f8_scoped_true_render,
|
|
119816
|
+
Centervue_type_template_id_0ebbd5f8_scoped_true_staticRenderFns,
|
|
119809
119817
|
false,
|
|
119810
119818
|
null,
|
|
119811
|
-
"
|
|
119819
|
+
"0ebbd5f8",
|
|
119812
119820
|
null
|
|
119813
119821
|
|
|
119814
119822
|
)
|
|
@@ -138420,24 +138428,36 @@ function getPathXyData(connection, thisConnect) {
|
|
|
138420
138428
|
// 从svg path中获取同轴异向的两端stub,4种情况全处理
|
|
138421
138429
|
if (firstEndpoints[3] === 1 && secondEndpoints[3] === -1) {
|
|
138422
138430
|
// 下出上入
|
|
138423
|
-
|
|
138424
|
-
|
|
138425
|
-
|
|
138431
|
+
if (!thisConnect || !thisConnect.pathMaxY) {
|
|
138432
|
+
var lineData = paths[0].split(' ');
|
|
138433
|
+
pathMaxY = parseInt(lineData[5]) - parseInt(lineData[2]);
|
|
138434
|
+
pathMinY = -pathMaxY; // 同轴异向,两端 stub 相等
|
|
138435
|
+
}
|
|
138426
138436
|
} else if (firstEndpoints[3] === -1 && secondEndpoints[3] === 1) {
|
|
138427
138437
|
// 上出下入
|
|
138428
|
-
|
|
138429
|
-
|
|
138430
|
-
|
|
138438
|
+
if (!thisConnect || !thisConnect.pathMinY) {
|
|
138439
|
+
var _lineData = paths[0].split(' ');
|
|
138440
|
+
pathMinY = parseInt(_lineData[2]) - parseInt(_lineData[5]);
|
|
138441
|
+
pathMaxY = -pathMinY; // 同轴异向,两端 stub 相等
|
|
138442
|
+
}
|
|
138431
138443
|
} else if (firstEndpoints[2] === 1 && secondEndpoints[2] === -1) {
|
|
138432
138444
|
// 右出左入
|
|
138433
|
-
|
|
138434
|
-
|
|
138435
|
-
|
|
138445
|
+
if (!thisConnect || !thisConnect.pathMaxX) {
|
|
138446
|
+
var _lineData2 = paths[0].split(' ');
|
|
138447
|
+
var arcIdx = _lineData2.indexOf('A');
|
|
138448
|
+
var lastPtX = arcIdx > 0 ? parseInt(_lineData2[arcIdx - 2]) : parseInt(_lineData2[4]);
|
|
138449
|
+
pathMaxX = Math.abs(lastPtX - parseInt(_lineData2[1]));
|
|
138450
|
+
pathMinX = -pathMaxX;
|
|
138451
|
+
}
|
|
138436
138452
|
} else if (firstEndpoints[2] === -1 && secondEndpoints[2] === 1) {
|
|
138437
138453
|
// 左出右入
|
|
138438
|
-
|
|
138439
|
-
|
|
138440
|
-
|
|
138454
|
+
if (!thisConnect || !thisConnect.pathMinX) {
|
|
138455
|
+
var _lineData3 = paths[0].split(' ');
|
|
138456
|
+
var arcIdx = _lineData3.indexOf('A');
|
|
138457
|
+
var lastPtX = arcIdx > 0 ? parseInt(_lineData3[arcIdx - 2]) : parseInt(_lineData3[4]);
|
|
138458
|
+
pathMinX = -Math.abs(lastPtX - parseInt(_lineData3[1]));
|
|
138459
|
+
pathMaxX = -pathMinX;
|
|
138460
|
+
}
|
|
138441
138461
|
}
|
|
138442
138462
|
} else if (linesCount >= 4) {
|
|
138443
138463
|
if (firstEndpoints[2] === 1) {
|
|
@@ -138503,6 +138523,29 @@ function getPathXyData(connection, thisConnect) {
|
|
|
138503
138523
|
}
|
|
138504
138524
|
}
|
|
138505
138525
|
}
|
|
138526
|
+
// 自环线已有thisConnect存储值时优先使用,避免SVG提取的+5偏移在session间累积
|
|
138527
|
+
var isSelfLoop = thisConnect && thisConnect.PageSourceId === thisConnect.PageTargetId;
|
|
138528
|
+
if (isSelfLoop) {
|
|
138529
|
+
// 同轴自环配对的path值相等,cross-axis则各自独立
|
|
138530
|
+
var crossAxis = firstEndpoints[2] !== 0 && secondEndpoints[3] !== 0 || firstEndpoints[3] !== 0 && secondEndpoints[2] !== 0;
|
|
138531
|
+
if (!crossAxis) {
|
|
138532
|
+
if (thisConnect.pathMinX || thisConnect.pathMaxX) {
|
|
138533
|
+
var storedX = thisConnect.pathMinX || thisConnect.pathMaxX;
|
|
138534
|
+
pathMinX = storedX;
|
|
138535
|
+
pathMaxX = storedX;
|
|
138536
|
+
}
|
|
138537
|
+
if (thisConnect.pathMinY || thisConnect.pathMaxY) {
|
|
138538
|
+
var storedY = thisConnect.pathMinY || thisConnect.pathMaxY;
|
|
138539
|
+
pathMinY = storedY;
|
|
138540
|
+
pathMaxY = storedY;
|
|
138541
|
+
}
|
|
138542
|
+
} else {
|
|
138543
|
+
if (thisConnect.pathMinX) pathMinX = thisConnect.pathMinX;
|
|
138544
|
+
if (thisConnect.pathMaxX) pathMaxX = thisConnect.pathMaxX;
|
|
138545
|
+
if (thisConnect.pathMinY) pathMinY = thisConnect.pathMinY;
|
|
138546
|
+
if (thisConnect.pathMaxY) pathMaxY = thisConnect.pathMaxY;
|
|
138547
|
+
}
|
|
138548
|
+
}
|
|
138506
138549
|
return {
|
|
138507
138550
|
linesCount: linesCount,
|
|
138508
138551
|
pathMinX: pathMinX,
|
|
@@ -138513,6 +138556,38 @@ function getPathXyData(connection, thisConnect) {
|
|
|
138513
138556
|
secondEndpoints: secondEndpoints
|
|
138514
138557
|
};
|
|
138515
138558
|
}
|
|
138559
|
+
|
|
138560
|
+
// ========== 三段线拖拽统一处理器 ==========
|
|
138561
|
+
// 处理同轴同向/同轴异向/自环三种子分支的stub和midpoint计算
|
|
138562
|
+
function handle3SegDrag(isNeg, absDist, minStub, isSameNode, isSameSide, totalDist, thisConnect, perpMin, perpMax) {
|
|
138563
|
+
var stub,
|
|
138564
|
+
dragMidpoint = 0.5,
|
|
138565
|
+
isOpposite = false,
|
|
138566
|
+
distance = isNeg ? -absDist : absDist;
|
|
138567
|
+
if (isSameNode) {
|
|
138568
|
+
var os = Math.abs(thisConnect.pathMinY) || Math.abs(thisConnect.pathMaxY);
|
|
138569
|
+
if (!os) os = Math.max(Math.max(Math.abs(perpMin), Math.abs(perpMax)) - 5, minStub);
|
|
138570
|
+
stub = [absDist, Math.max(os, minStub)];
|
|
138571
|
+
} else if (!isSameSide) {
|
|
138572
|
+
// 同轴异向:alwaysRespectStubs=false + 小stub + 动态midpoint控制折线位置
|
|
138573
|
+
var actMin = 30;
|
|
138574
|
+
var td = totalDist || 21;
|
|
138575
|
+
absDist = Math.min(Math.max(absDist, actMin), td - actMin);
|
|
138576
|
+
distance = isNeg ? -absDist : absDist;
|
|
138577
|
+
isOpposite = true;
|
|
138578
|
+
stub = [10, 10];
|
|
138579
|
+
var effDist = td - 20;
|
|
138580
|
+
dragMidpoint = effDist > 0 ? (absDist - 10) / effDist : 0.5;
|
|
138581
|
+
} else {
|
|
138582
|
+
stub = [absDist, minStub];
|
|
138583
|
+
}
|
|
138584
|
+
return {
|
|
138585
|
+
stub: stub,
|
|
138586
|
+
dragMidpoint: dragMidpoint,
|
|
138587
|
+
isOpposite: isOpposite,
|
|
138588
|
+
distance: distance
|
|
138589
|
+
};
|
|
138590
|
+
}
|
|
138516
138591
|
function dragLine(_this, connection, thisConnect) {
|
|
138517
138592
|
var distance = 0;
|
|
138518
138593
|
|
|
@@ -138520,12 +138595,19 @@ function dragLine(_this, connection, thisConnect) {
|
|
|
138520
138595
|
jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).bind('mousedown', function (ev) {
|
|
138521
138596
|
var paths = connection.connector.getPathData().split(',');
|
|
138522
138597
|
var lineCount = paths.length;
|
|
138523
|
-
|
|
138598
|
+
// 同轴异向检测(提前到lineCount检查之前,以便重定向lineCount=1的路径)
|
|
138599
|
+
var firstEndpoints = connection.endpoints[0].anchor.orientation;
|
|
138600
|
+
var secondEndpoints = connection.endpoints[1].anchor.orientation;
|
|
138601
|
+
var isSameNode = thisConnect.PageSourceId === thisConnect.PageTargetId;
|
|
138602
|
+
var isSameAxisDiffDir = !isSameNode && (firstEndpoints[0] !== 0 && secondEndpoints[0] !== 0 && firstEndpoints[0] !== secondEndpoints[0] || firstEndpoints[1] !== 0 && secondEndpoints[1] !== 0 && firstEndpoints[1] !== secondEndpoints[1]);
|
|
138603
|
+
if (lineCount < 2 && !isSameAxisDiffDir) {
|
|
138524
138604
|
jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).unbind('mousedown');
|
|
138525
138605
|
return;
|
|
138526
138606
|
}
|
|
138527
138607
|
_this.dragLineObj.disX = ev.pageX;
|
|
138528
138608
|
_this.dragLineObj.disY = ev.pageY;
|
|
138609
|
+
_this.dragLineObj.initCW = undefined;
|
|
138610
|
+
_this.dragLineObj.initCH = undefined;
|
|
138529
138611
|
var xyData = getPathXyData(connection, thisConnect);
|
|
138530
138612
|
var initialMaxX = xyData.pathMaxX; // 获取路径的初始stub值
|
|
138531
138613
|
var initialMaxY = xyData.pathMaxY; // 获取路径的初始stub值
|
|
@@ -138535,9 +138617,10 @@ function dragLine(_this, connection, thisConnect) {
|
|
|
138535
138617
|
var canvasMarginLeft = 210; // 绘图区左边距
|
|
138536
138618
|
var canvasMarginTop = 112; // 绘图区右边距
|
|
138537
138619
|
|
|
138538
|
-
|
|
138539
|
-
|
|
138540
|
-
|
|
138620
|
+
// 同轴异向3段线强制使用3段拖拽逻辑(不论逗号分隔后的段数)
|
|
138621
|
+
if (isSameAxisDiffDir) {
|
|
138622
|
+
lineCount = 3;
|
|
138623
|
+
}
|
|
138541
138624
|
|
|
138542
138625
|
// 检测是否可拖拉,仅位于路径canvas四边的路径可拖拉,射出、射入路径不可拖拉
|
|
138543
138626
|
if (firstEndpoints[0] !== 0) {
|
|
@@ -138598,98 +138681,148 @@ function dragLine(_this, connection, thisConnect) {
|
|
|
138598
138681
|
var x = ev.pageX;
|
|
138599
138682
|
var y = ev.pageY;
|
|
138600
138683
|
var stub = [0, 0];
|
|
138601
|
-
|
|
138684
|
+
var _dragMidpoint = 0.5;
|
|
138685
|
+
var handledIn4, hSameSide, vSameSide; // 显式声明,避免var提升的隐式行为
|
|
138686
|
+
|
|
138687
|
+
// 跨轴自环线独立拖拽处理器(完全绕过lineCount逻辑)
|
|
138688
|
+
var isCrossAxisSL = isSameNode && (firstEndpoints[0] !== 0 && secondEndpoints[1] !== 0 || firstEndpoints[1] !== 0 && secondEndpoints[0] !== 0);
|
|
138689
|
+
if (isCrossAxisSL) {
|
|
138690
|
+
var incDx = x - (_this.dragLineObj.prevX || _this.dragLineObj.disX);
|
|
138691
|
+
var incDy = y - (_this.dragLineObj.prevY || _this.dragLineObj.disY);
|
|
138692
|
+
_this.dragLineObj.prevX = x;
|
|
138693
|
+
_this.dragLineObj.prevY = y;
|
|
138694
|
+
var hDirSL = firstEndpoints[0] || secondEndpoints[0];
|
|
138695
|
+
var vDirSL = firstEndpoints[1] || secondEndpoints[1];
|
|
138696
|
+
var minSL = 30;
|
|
138697
|
+
var curHSL = Math.abs(thisConnect.pathMinX) || Math.abs(thisConnect.pathMaxX);
|
|
138698
|
+
var curVSL = Math.abs(thisConnect.pathMinY) || Math.abs(thisConnect.pathMaxY);
|
|
138699
|
+
if (!curHSL) {
|
|
138700
|
+
if (hDirSL === -1) curHSL = Math.max(Math.abs(initialMinX) - 5, minSL);else if (hDirSL === 1) curHSL = Math.max(Math.abs(initialMaxX) - 5, minSL);else curHSL = minSL;
|
|
138701
|
+
}
|
|
138702
|
+
if (!curVSL) {
|
|
138703
|
+
if (vDirSL === -1) curVSL = Math.max(Math.abs(initialMinY) - 5, minSL);else if (vDirSL === 1) curVSL = Math.max(Math.abs(initialMaxY) - 5, minSL);else curVSL = minSL;
|
|
138704
|
+
}
|
|
138705
|
+
var newHSL = curHSL,
|
|
138706
|
+
newVSL = curVSL;
|
|
138707
|
+
var hOutSL = hDirSL === 1 ? incDx > 0 : incDx < 0;
|
|
138708
|
+
var vOutSL = vDirSL === 1 ? incDy > 0 : incDy < 0;
|
|
138709
|
+
if (Math.abs(incDx) >= Math.abs(incDy)) {
|
|
138710
|
+
if (hOutSL) newHSL = curHSL + Math.abs(incDx);else newHSL = Math.max(curHSL - Math.abs(incDx), minSL);
|
|
138711
|
+
} else {
|
|
138712
|
+
if (vOutSL) newVSL = curVSL + Math.abs(incDy);else newVSL = Math.max(curVSL - Math.abs(incDy), minSL);
|
|
138713
|
+
}
|
|
138714
|
+
var srcVSL = firstEndpoints[0] === 0;
|
|
138715
|
+
stub = srcVSL ? [Math.max(newVSL, minSL), Math.max(newHSL, minSL)] : [Math.max(newHSL, minSL), Math.max(newVSL, minSL)];
|
|
138716
|
+
if (hDirSL === -1) {
|
|
138717
|
+
thisConnect.pathMinX = -Math.max(newHSL, minSL);
|
|
138718
|
+
thisConnect.pathMaxX = -Math.max(newHSL, minSL);
|
|
138719
|
+
} else if (hDirSL === 1) {
|
|
138720
|
+
thisConnect.pathMinX = Math.max(newHSL, minSL);
|
|
138721
|
+
thisConnect.pathMaxX = Math.max(newHSL, minSL);
|
|
138722
|
+
}
|
|
138723
|
+
if (vDirSL === -1) {
|
|
138724
|
+
thisConnect.pathMinY = -Math.max(newVSL, minSL);
|
|
138725
|
+
thisConnect.pathMaxY = -Math.max(newVSL, minSL);
|
|
138726
|
+
} else if (vDirSL === 1) {
|
|
138727
|
+
thisConnect.pathMinY = Math.max(newVSL, minSL);
|
|
138728
|
+
thisConnect.pathMaxY = Math.max(newVSL, minSL);
|
|
138729
|
+
}
|
|
138730
|
+
} else if (lineCount <= 3) {
|
|
138602
138731
|
var isSameSide = firstEndpoints[0] !== 0 && firstEndpoints[0] === secondEndpoints[0] || firstEndpoints[1] !== 0 && firstEndpoints[1] === secondEndpoints[1];
|
|
138603
138732
|
var minStub = isSameSide || isSameNode ? 50 : 10;
|
|
138733
|
+
// 同轴异向时,从节点CSS位置计算真实锚点间距(避免存储的等值stub导致totalDist锁死)
|
|
138734
|
+
if (isSameAxisDiffDir) {
|
|
138735
|
+
var srcEl = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#' + thisConnect.PageSourceId);
|
|
138736
|
+
var tgtEl = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#' + thisConnect.PageTargetId);
|
|
138737
|
+
if (firstEndpoints[0] !== 0) {
|
|
138738
|
+
// 水平方向:totalDist = 目标锚点X - 源锚点X
|
|
138739
|
+
var totalDistH = Math.abs(parseInt(tgtEl.css('left')) + tgtEl.outerWidth() * parseFloat(connection.endpoints[1].anchor.x) - (parseInt(srcEl.css('left')) + srcEl.outerWidth() * parseFloat(connection.endpoints[0].anchor.x)));
|
|
138740
|
+
}
|
|
138741
|
+
if (firstEndpoints[1] !== 0) {
|
|
138742
|
+
// 垂直方向:totalDist = 目标锚点Y - 源锚点Y
|
|
138743
|
+
var totalDistV = Math.abs(parseInt(tgtEl.css('top')) + tgtEl.outerHeight() * parseFloat(connection.endpoints[1].anchor.y) - (parseInt(srcEl.css('top')) + srcEl.outerHeight() * parseFloat(connection.endpoints[0].anchor.y)));
|
|
138744
|
+
}
|
|
138745
|
+
}
|
|
138604
138746
|
if (firstEndpoints[0] === -1) {
|
|
138605
138747
|
// 水平射线,左出
|
|
138606
138748
|
distance = -(Math.abs(initialMinX) - (x - _this.dragLineObj.disX));
|
|
138607
|
-
if (distance > -minStub)
|
|
138608
|
-
distance = -minStub;
|
|
138609
|
-
}
|
|
138749
|
+
if (distance > -minStub) distance = -minStub;
|
|
138610
138750
|
thisConnect.pathMinX = distance;
|
|
138611
|
-
|
|
138612
|
-
|
|
138613
|
-
|
|
138614
|
-
|
|
138751
|
+
var r = handle3SegDrag(true, -distance, minStub, isSameNode, isSameSide, totalDistH, thisConnect, initialMinY, initialMaxY);
|
|
138752
|
+
stub = r.stub;
|
|
138753
|
+
_dragMidpoint = r.dragMidpoint;
|
|
138754
|
+
if (r.isOpposite) {
|
|
138755
|
+
distance = r.distance;
|
|
138756
|
+
thisConnect.pathMinX = distance;
|
|
138615
138757
|
thisConnect.pathMaxX = -distance;
|
|
138616
|
-
stub = [-distance, -distance];
|
|
138617
|
-
} else {
|
|
138618
|
-
stub = [-distance, minStub];
|
|
138619
138758
|
}
|
|
138620
138759
|
} else if (firstEndpoints[0] === 1) {
|
|
138621
138760
|
// 水平射线,右出
|
|
138622
138761
|
distance = Math.abs(initialMaxX) + (x - _this.dragLineObj.disX);
|
|
138623
|
-
if (distance < minStub)
|
|
138624
|
-
distance = minStub;
|
|
138625
|
-
}
|
|
138762
|
+
if (distance < minStub) distance = minStub;
|
|
138626
138763
|
thisConnect.pathMaxX = distance;
|
|
138627
|
-
|
|
138628
|
-
|
|
138629
|
-
|
|
138630
|
-
|
|
138764
|
+
var r = handle3SegDrag(false, distance, minStub, isSameNode, isSameSide, totalDistH, thisConnect, initialMinY, initialMaxY);
|
|
138765
|
+
stub = r.stub;
|
|
138766
|
+
_dragMidpoint = r.dragMidpoint;
|
|
138767
|
+
if (r.isOpposite) {
|
|
138768
|
+
distance = r.distance;
|
|
138769
|
+
thisConnect.pathMaxX = distance;
|
|
138631
138770
|
thisConnect.pathMinX = -distance;
|
|
138632
|
-
stub = [distance, distance];
|
|
138633
|
-
} else {
|
|
138634
|
-
stub = [distance, minStub];
|
|
138635
138771
|
}
|
|
138636
138772
|
} else if (firstEndpoints[1] === -1) {
|
|
138637
138773
|
// 垂直射线,上出
|
|
138638
138774
|
distance = -(Math.abs(initialMinY) - (y - _this.dragLineObj.disY));
|
|
138639
|
-
if (distance > -minStub)
|
|
138640
|
-
distance = -minStub;
|
|
138641
|
-
}
|
|
138775
|
+
if (distance > -minStub) distance = -minStub;
|
|
138642
138776
|
thisConnect.pathMinY = distance;
|
|
138643
|
-
|
|
138644
|
-
|
|
138645
|
-
|
|
138646
|
-
|
|
138777
|
+
var r = handle3SegDrag(true, -distance, minStub, isSameNode, isSameSide, totalDistV, thisConnect, initialMinX, initialMaxX);
|
|
138778
|
+
stub = r.stub;
|
|
138779
|
+
_dragMidpoint = r.dragMidpoint;
|
|
138780
|
+
if (r.isOpposite) {
|
|
138781
|
+
distance = r.distance;
|
|
138782
|
+
thisConnect.pathMinY = distance;
|
|
138647
138783
|
thisConnect.pathMaxY = -distance;
|
|
138648
|
-
stub = [-distance, -distance];
|
|
138649
|
-
} else {
|
|
138650
|
-
stub = [-distance, minStub];
|
|
138651
138784
|
}
|
|
138652
138785
|
} else if (firstEndpoints[1] === 1) {
|
|
138653
138786
|
// 垂直射线,下出
|
|
138654
138787
|
distance = Math.abs(initialMaxY) + (y - _this.dragLineObj.disY);
|
|
138655
|
-
if (distance < minStub)
|
|
138656
|
-
distance = minStub;
|
|
138657
|
-
}
|
|
138788
|
+
if (distance < minStub) distance = minStub;
|
|
138658
138789
|
thisConnect.pathMaxY = distance;
|
|
138659
|
-
|
|
138660
|
-
|
|
138661
|
-
|
|
138662
|
-
|
|
138790
|
+
var r = handle3SegDrag(false, distance, minStub, isSameNode, isSameSide, totalDistV, thisConnect, initialMinX, initialMaxX);
|
|
138791
|
+
stub = r.stub;
|
|
138792
|
+
_dragMidpoint = r.dragMidpoint;
|
|
138793
|
+
if (r.isOpposite) {
|
|
138794
|
+
distance = r.distance;
|
|
138795
|
+
thisConnect.pathMaxY = distance;
|
|
138663
138796
|
thisConnect.pathMinY = -distance;
|
|
138664
|
-
stub = [distance, distance];
|
|
138665
|
-
} else {
|
|
138666
|
-
stub = [distance, minStub];
|
|
138667
138797
|
}
|
|
138668
138798
|
}
|
|
138669
138799
|
} else if (lineCount === 4) {
|
|
138800
|
+
var minStub4 = isSameNode ? 30 : 10;
|
|
138801
|
+
var handledIn4 = false;
|
|
138670
138802
|
if (firstEndpoints[0] === -1) {
|
|
138671
138803
|
// 左出
|
|
138672
138804
|
if (Math.abs(canvasMarginTop + canvasTop - _this.dragLineObj.disY) <= 10) {
|
|
138673
138805
|
// 顶部射入,靠近终点上下拖拉
|
|
138674
138806
|
distance = -(Math.abs(initialMinY) - (y - _this.dragLineObj.disY - scrollTop));
|
|
138675
|
-
if (distance > -
|
|
138676
|
-
distance = -
|
|
138807
|
+
if (distance > -minStub4) {
|
|
138808
|
+
distance = -minStub4;
|
|
138677
138809
|
}
|
|
138678
138810
|
thisConnect.pathMinY = distance;
|
|
138811
|
+
handledIn4 = true;
|
|
138679
138812
|
stub = [Math.abs(initialMinX), -distance];
|
|
138680
138813
|
} else if (Math.abs(canvasMarginTop + canvasTop + canvasHeight - _this.dragLineObj.disY - scrollTop) <= 10) {
|
|
138681
138814
|
// 底部射入,靠近终点上下拖拉
|
|
138682
138815
|
distance = Math.abs(initialMaxY) + (y - _this.dragLineObj.disY - scrollTop);
|
|
138683
|
-
if (distance <
|
|
138684
|
-
distance =
|
|
138816
|
+
if (distance < minStub4) {
|
|
138817
|
+
distance = minStub4;
|
|
138685
138818
|
}
|
|
138686
138819
|
thisConnect.pathMaxY = distance;
|
|
138687
138820
|
stub = [Math.abs(initialMinX), distance];
|
|
138688
138821
|
} else if (Math.abs(canvasMarginLeft + canvasLeft - _this.dragLineObj.disX) <= 10) {
|
|
138689
138822
|
// 顶部射入或底部射入,靠近起点左侧左右拖拉
|
|
138690
138823
|
distance = -(Math.abs(initialMinX) - (x - _this.dragLineObj.disX));
|
|
138691
|
-
if (distance > -
|
|
138692
|
-
distance = -
|
|
138824
|
+
if (distance > -minStub4) {
|
|
138825
|
+
distance = -minStub4;
|
|
138693
138826
|
}
|
|
138694
138827
|
thisConnect.pathMinX = distance;
|
|
138695
138828
|
stub = [-distance, Math.abs(secondEndpoints[1] === -1 ? initialMinY : initialMaxY)];
|
|
@@ -138699,26 +138832,29 @@ function dragLine(_this, connection, thisConnect) {
|
|
|
138699
138832
|
if (Math.abs(canvasMarginTop + canvasTop - _this.dragLineObj.disY) <= 10) {
|
|
138700
138833
|
// 顶部射入,靠近终点上下拖拉
|
|
138701
138834
|
distance = -(Math.abs(initialMinY) - (y - _this.dragLineObj.disY - scrollTop));
|
|
138702
|
-
if (distance > -
|
|
138703
|
-
distance = -
|
|
138835
|
+
if (distance > -minStub4) {
|
|
138836
|
+
distance = -minStub4;
|
|
138704
138837
|
}
|
|
138705
138838
|
thisConnect.pathMinY = distance;
|
|
138839
|
+
handledIn4 = true;
|
|
138706
138840
|
stub = [Math.abs(initialMaxX), -distance];
|
|
138707
138841
|
} else if (Math.abs(canvasMarginTop + canvasTop + canvasHeight - _this.dragLineObj.disY - scrollTop) <= 10) {
|
|
138708
138842
|
// 底部射入,靠近终点上下拖拉
|
|
138709
138843
|
distance = Math.abs(initialMaxY) + (y - _this.dragLineObj.disY - scrollTop);
|
|
138710
|
-
if (distance <
|
|
138711
|
-
distance =
|
|
138844
|
+
if (distance < minStub4) {
|
|
138845
|
+
distance = minStub4;
|
|
138712
138846
|
}
|
|
138713
138847
|
thisConnect.pathMaxY = distance;
|
|
138848
|
+
handledIn4 = true;
|
|
138714
138849
|
stub = [Math.abs(initialMaxX), distance];
|
|
138715
138850
|
} else if (Math.abs(canvasMarginLeft + canvasLeft + canvasWidth - _this.dragLineObj.disX) <= 10) {
|
|
138716
138851
|
// 顶部射入或底部射入,靠近起点右侧左右拖拉
|
|
138717
138852
|
distance = Math.abs(initialMaxX) + (x - _this.dragLineObj.disX);
|
|
138718
|
-
if (distance <
|
|
138719
|
-
distance =
|
|
138853
|
+
if (distance < minStub4) {
|
|
138854
|
+
distance = minStub4;
|
|
138720
138855
|
}
|
|
138721
138856
|
thisConnect.pathMaxX = distance;
|
|
138857
|
+
handledIn4 = true;
|
|
138722
138858
|
stub = [distance, Math.abs(secondEndpoints[1] === -1 ? initialMinY : initialMaxY)];
|
|
138723
138859
|
}
|
|
138724
138860
|
} else if (firstEndpoints[1] === 1) {
|
|
@@ -138726,26 +138862,29 @@ function dragLine(_this, connection, thisConnect) {
|
|
|
138726
138862
|
if (Math.abs(canvasMarginTop + canvasTop + canvasHeight - _this.dragLineObj.disY - scrollTop) <= 10) {
|
|
138727
138863
|
// 左侧射入或右侧射入,靠起点底部上下拖拉
|
|
138728
138864
|
distance = Math.abs(initialMaxY) + (y - _this.dragLineObj.disY);
|
|
138729
|
-
if (distance <
|
|
138730
|
-
distance =
|
|
138865
|
+
if (distance < minStub4) {
|
|
138866
|
+
distance = minStub4;
|
|
138731
138867
|
}
|
|
138732
138868
|
thisConnect.pathMaxY = distance;
|
|
138869
|
+
handledIn4 = true;
|
|
138733
138870
|
stub = [distance, Math.abs(secondEndpoints[0] === -1 ? initialMinX : initialMaxX)];
|
|
138734
138871
|
} else if (Math.abs(canvasMarginLeft + canvasLeft - _this.dragLineObj.disX) <= 10) {
|
|
138735
138872
|
// 左侧射入,靠近终点左侧拖左右拉
|
|
138736
138873
|
distance = -(Math.abs(initialMinX) - (x - _this.dragLineObj.disX));
|
|
138737
|
-
if (distance > -
|
|
138738
|
-
distance = -
|
|
138874
|
+
if (distance > -minStub4) {
|
|
138875
|
+
distance = -minStub4;
|
|
138739
138876
|
}
|
|
138740
138877
|
thisConnect.pathMinX = distance;
|
|
138878
|
+
handledIn4 = true;
|
|
138741
138879
|
stub = [Math.abs(initialMaxY), -distance];
|
|
138742
138880
|
} else if (Math.abs(canvasMarginLeft + canvasLeft + canvasWidth - _this.dragLineObj.disX) <= 10) {
|
|
138743
138881
|
// 右侧射入,靠近终点右侧拖左右拉
|
|
138744
138882
|
distance = Math.abs(initialMaxX) + (x - _this.dragLineObj.disX);
|
|
138745
|
-
if (distance <
|
|
138746
|
-
distance =
|
|
138883
|
+
if (distance < minStub4) {
|
|
138884
|
+
distance = minStub4;
|
|
138747
138885
|
}
|
|
138748
138886
|
thisConnect.pathMaxX = distance;
|
|
138887
|
+
handledIn4 = true;
|
|
138749
138888
|
stub = [Math.abs(initialMaxY), distance];
|
|
138750
138889
|
}
|
|
138751
138890
|
} else if (firstEndpoints[1] === -1) {
|
|
@@ -138753,30 +138892,65 @@ function dragLine(_this, connection, thisConnect) {
|
|
|
138753
138892
|
if (Math.abs(canvasMarginTop + canvasTop - _this.dragLineObj.disY) <= 10) {
|
|
138754
138893
|
// 左侧射入或右侧射入,靠起点顶部上下拖拉
|
|
138755
138894
|
distance = -(Math.abs(initialMinY) - (y - _this.dragLineObj.disY));
|
|
138756
|
-
if (distance > -
|
|
138757
|
-
distance = -
|
|
138895
|
+
if (distance > -minStub4) {
|
|
138896
|
+
distance = -minStub4;
|
|
138758
138897
|
}
|
|
138759
138898
|
thisConnect.pathMinY = distance;
|
|
138760
138899
|
stub = [-distance, Math.abs(secondEndpoints[0] === -1 ? initialMinX : initialMaxX)];
|
|
138761
138900
|
} else if (Math.abs(canvasMarginLeft + canvasLeft - _this.dragLineObj.disX) <= 10) {
|
|
138762
138901
|
// 左侧射入,靠近终点左侧拖左右拉
|
|
138763
138902
|
distance = -(Math.abs(initialMinX) - (x - _this.dragLineObj.disX));
|
|
138764
|
-
if (distance > -
|
|
138765
|
-
distance = -
|
|
138903
|
+
if (distance > -minStub4) {
|
|
138904
|
+
distance = -minStub4;
|
|
138766
138905
|
}
|
|
138767
138906
|
thisConnect.pathMinX = distance;
|
|
138907
|
+
handledIn4 = true;
|
|
138768
138908
|
stub = [Math.abs(initialMinY), -distance];
|
|
138769
138909
|
} else if (Math.abs(canvasMarginLeft + canvasLeft + canvasWidth - _this.dragLineObj.disX) <= 10) {
|
|
138770
138910
|
// 右侧射入,靠近终点右侧拖左右拉
|
|
138771
138911
|
distance = Math.abs(initialMaxX) + (x - _this.dragLineObj.disX);
|
|
138772
|
-
if (distance <
|
|
138773
|
-
distance =
|
|
138912
|
+
if (distance < minStub4) {
|
|
138913
|
+
distance = minStub4;
|
|
138774
138914
|
}
|
|
138775
138915
|
thisConnect.pathMaxX = distance;
|
|
138916
|
+
handledIn4 = true;
|
|
138776
138917
|
stub = [Math.abs(initialMinY), distance];
|
|
138777
138918
|
}
|
|
138778
138919
|
}
|
|
138920
|
+
// 跨轴自环线边检测不匹配时,直接用鼠标delta计算两轴stub
|
|
138921
|
+
// 注:firstEndpoints为2元素orientation数组[dx,dy],仅索引[0]/[1]有效
|
|
138922
|
+
if (isSameNode && !handledIn4) {
|
|
138923
|
+
var dx2 = x - _this.dragLineObj.disX;
|
|
138924
|
+
var dy2 = y - _this.dragLineObj.disY;
|
|
138925
|
+
var curH = firstEndpoints[0] !== 0 ? Math.max(Math.abs(firstEndpoints[0] === -1 ? initialMinX : initialMaxX) - 5, minStub4) : minStub4;
|
|
138926
|
+
var curV = firstEndpoints[1] !== 0 ? Math.max(Math.abs(firstEndpoints[1] === -1 ? initialMinY : initialMaxY) - 5, minStub4) : minStub4;
|
|
138927
|
+
var newH = curH,
|
|
138928
|
+
newV = curV;
|
|
138929
|
+
if (Math.abs(dx2) >= Math.abs(dy2)) {
|
|
138930
|
+
newH = dx2 < 0 ? curH + Math.abs(dx2) : Math.max(curH - dx2, minStub4);
|
|
138931
|
+
} else {
|
|
138932
|
+
newV = dy2 < 0 ? curV + Math.abs(dy2) : Math.max(curV - dy2, minStub4);
|
|
138933
|
+
}
|
|
138934
|
+
var srcV = firstEndpoints[0] === 0;
|
|
138935
|
+
stub = srcV ? [Math.max(newV, minStub4), Math.max(newH, minStub4)] : [Math.max(newH, minStub4), Math.max(newV, minStub4)];
|
|
138936
|
+
// path存储使用有效索引[0]/[1]判断锚点方向
|
|
138937
|
+
if (firstEndpoints[0] === -1 || secondEndpoints[0] === -1) {
|
|
138938
|
+
thisConnect.pathMinX = -Math.max(newH, minStub4);
|
|
138939
|
+
thisConnect.pathMaxX = -Math.max(newH, minStub4);
|
|
138940
|
+
} else if (firstEndpoints[0] === 1 || secondEndpoints[0] === 1) {
|
|
138941
|
+
thisConnect.pathMinX = Math.max(newH, minStub4);
|
|
138942
|
+
thisConnect.pathMaxX = Math.max(newH, minStub4);
|
|
138943
|
+
}
|
|
138944
|
+
if (firstEndpoints[1] === -1 || secondEndpoints[1] === -1) {
|
|
138945
|
+
thisConnect.pathMinY = -Math.max(newV, minStub4);
|
|
138946
|
+
thisConnect.pathMaxY = -Math.max(newV, minStub4);
|
|
138947
|
+
} else if (firstEndpoints[1] === 1 || secondEndpoints[1] === 1) {
|
|
138948
|
+
thisConnect.pathMinY = Math.max(newV, minStub4);
|
|
138949
|
+
thisConnect.pathMaxY = Math.max(newV, minStub4);
|
|
138950
|
+
}
|
|
138951
|
+
}
|
|
138779
138952
|
} else if (lineCount === 5) {
|
|
138953
|
+
var minStub5 = isSameNode ? 30 : 10;
|
|
138780
138954
|
if (firstEndpoints[0] !== 0) {
|
|
138781
138955
|
// 水平射线,左右拖拉
|
|
138782
138956
|
var hSameSide = firstEndpoints[0] === secondEndpoints[0];
|
|
@@ -138786,27 +138960,29 @@ function dragLine(_this, connection, thisConnect) {
|
|
|
138786
138960
|
if (firstEndpoints[0] === -1) {
|
|
138787
138961
|
// 水平射线,左出右入,靠近起点左侧拖拉
|
|
138788
138962
|
distance = -(Math.abs(initialMinX) - (x - _this.dragLineObj.disX));
|
|
138789
|
-
if (distance > -
|
|
138790
|
-
distance = -
|
|
138963
|
+
if (distance > -minStub5) {
|
|
138964
|
+
distance = -minStub5;
|
|
138791
138965
|
}
|
|
138792
138966
|
thisConnect.pathMinX = distance;
|
|
138793
138967
|
if (!hSameSide) {
|
|
138794
138968
|
thisConnect.pathMaxX = -distance;
|
|
138795
138969
|
stub = [-distance, -distance];
|
|
138796
138970
|
} else {
|
|
138971
|
+
handledIn4 = true;
|
|
138797
138972
|
stub = [-distance, Math.abs(initialMaxX)];
|
|
138798
138973
|
}
|
|
138799
138974
|
} else if (firstEndpoints[0] === 1) {
|
|
138800
138975
|
// 水平射线,右出左入,靠近终点左侧拖拉
|
|
138801
138976
|
distance = -(Math.abs(initialMinX) - (x - _this.dragLineObj.disX));
|
|
138802
|
-
if (distance > -
|
|
138803
|
-
distance = -
|
|
138977
|
+
if (distance > -minStub5) {
|
|
138978
|
+
distance = -minStub5;
|
|
138804
138979
|
}
|
|
138805
138980
|
thisConnect.pathMinX = distance;
|
|
138806
138981
|
if (!hSameSide) {
|
|
138807
138982
|
thisConnect.pathMaxX = -distance;
|
|
138808
138983
|
stub = [-distance, -distance];
|
|
138809
138984
|
} else {
|
|
138985
|
+
handledIn4 = true;
|
|
138810
138986
|
stub = [Math.abs(initialMaxX), -distance];
|
|
138811
138987
|
}
|
|
138812
138988
|
}
|
|
@@ -138816,8 +138992,8 @@ function dragLine(_this, connection, thisConnect) {
|
|
|
138816
138992
|
if (firstEndpoints[0] === -1) {
|
|
138817
138993
|
// 水平射线,左出右入,靠近终点右侧拖拉
|
|
138818
138994
|
distance = Math.abs(initialMaxX) + (x - _this.dragLineObj.disX);
|
|
138819
|
-
if (distance <
|
|
138820
|
-
distance =
|
|
138995
|
+
if (distance < minStub5) {
|
|
138996
|
+
distance = minStub5;
|
|
138821
138997
|
}
|
|
138822
138998
|
thisConnect.pathMaxX = distance;
|
|
138823
138999
|
if (!hSameSide) {
|
|
@@ -138829,8 +139005,8 @@ function dragLine(_this, connection, thisConnect) {
|
|
|
138829
139005
|
} else if (firstEndpoints[0] === 1) {
|
|
138830
139006
|
// 水平射线,右出左入,靠近起点右侧拖拉
|
|
138831
139007
|
distance = Math.abs(initialMaxX) + (x - _this.dragLineObj.disX);
|
|
138832
|
-
if (distance <
|
|
138833
|
-
distance =
|
|
139008
|
+
if (distance < minStub5) {
|
|
139009
|
+
distance = minStub5;
|
|
138834
139010
|
}
|
|
138835
139011
|
thisConnect.pathMaxX = distance;
|
|
138836
139012
|
if (!hSameSide) {
|
|
@@ -138850,27 +139026,29 @@ function dragLine(_this, connection, thisConnect) {
|
|
|
138850
139026
|
if (firstEndpoints[1] === -1) {
|
|
138851
139027
|
// 垂直射线,上出下入,靠近起点上下拖拉
|
|
138852
139028
|
distance = -(Math.abs(initialMinY) - (y - _this.dragLineObj.disY));
|
|
138853
|
-
if (distance > -
|
|
138854
|
-
distance = -
|
|
139029
|
+
if (distance > -minStub5) {
|
|
139030
|
+
distance = -minStub5;
|
|
138855
139031
|
}
|
|
138856
139032
|
thisConnect.pathMinY = distance;
|
|
138857
139033
|
if (!vSameSide) {
|
|
138858
139034
|
thisConnect.pathMaxY = -distance;
|
|
138859
139035
|
stub = [-distance, -distance];
|
|
138860
139036
|
} else {
|
|
139037
|
+
handledIn4 = true;
|
|
138861
139038
|
stub = [-distance, Math.abs(initialMaxY)];
|
|
138862
139039
|
}
|
|
138863
139040
|
} else if (firstEndpoints[1] === 1) {
|
|
138864
139041
|
// 垂直射线,下出上入,靠近终点上下拖拉
|
|
138865
139042
|
distance = -(Math.abs(initialMaxY) - (y - _this.dragLineObj.disY));
|
|
138866
|
-
if (distance > -
|
|
138867
|
-
distance = -
|
|
139043
|
+
if (distance > -minStub5) {
|
|
139044
|
+
distance = -minStub5;
|
|
138868
139045
|
}
|
|
138869
139046
|
thisConnect.pathMinY = distance;
|
|
138870
139047
|
if (!vSameSide) {
|
|
138871
139048
|
thisConnect.pathMaxY = -distance;
|
|
138872
139049
|
stub = [-distance, -distance];
|
|
138873
139050
|
} else {
|
|
139051
|
+
handledIn4 = true;
|
|
138874
139052
|
stub = [Math.abs(initialMaxY), -distance];
|
|
138875
139053
|
}
|
|
138876
139054
|
}
|
|
@@ -138880,21 +139058,22 @@ function dragLine(_this, connection, thisConnect) {
|
|
|
138880
139058
|
if (firstEndpoints[1] === -1) {
|
|
138881
139059
|
// 垂直射线,上出下入,靠近终点上下拖拉
|
|
138882
139060
|
distance = Math.abs(initialMaxY) + (y - _this.dragLineObj.disY);
|
|
138883
|
-
if (distance <
|
|
138884
|
-
distance =
|
|
139061
|
+
if (distance < minStub5) {
|
|
139062
|
+
distance = minStub5;
|
|
138885
139063
|
}
|
|
138886
139064
|
thisConnect.pathMaxY = distance;
|
|
138887
139065
|
if (!vSameSide) {
|
|
138888
139066
|
thisConnect.pathMinY = -distance;
|
|
138889
139067
|
stub = [distance, distance];
|
|
138890
139068
|
} else {
|
|
139069
|
+
handledIn4 = true;
|
|
138891
139070
|
stub = [Math.abs(initialMinY), distance];
|
|
138892
139071
|
}
|
|
138893
139072
|
} else if (firstEndpoints[1] === 1) {
|
|
138894
139073
|
// 垂直射线,下出下入,靠起点上下拖拉
|
|
138895
139074
|
distance = Math.abs(initialMaxY) + (y - _this.dragLineObj.disY);
|
|
138896
|
-
if (distance <
|
|
138897
|
-
distance =
|
|
139075
|
+
if (distance < minStub5) {
|
|
139076
|
+
distance = minStub5;
|
|
138898
139077
|
}
|
|
138899
139078
|
thisConnect.pathMaxY = distance;
|
|
138900
139079
|
if (!vSameSide) {
|
|
@@ -138906,37 +139085,215 @@ function dragLine(_this, connection, thisConnect) {
|
|
|
138906
139085
|
}
|
|
138907
139086
|
}
|
|
138908
139087
|
}
|
|
139088
|
+
} else {
|
|
139089
|
+
// lineCount >= 6(跨轴自环线等4段线以上),按轴独立拖拽,水平/垂直互不影响
|
|
139090
|
+
// 注:firstEndpoints为2元素orientation数组[dx,dy],仅索引[0]/[1]有效
|
|
139091
|
+
if (isSameNode) {
|
|
139092
|
+
var minStub6 = 30;
|
|
139093
|
+
var dx1 = x - _this.dragLineObj.disX;
|
|
139094
|
+
var dy1 = y - _this.dragLineObj.disY;
|
|
139095
|
+
// 从thisConnect取已存储的stub(无+5偏移);首次拖拽则按锚点方向选正确initial值扣除gap偏移
|
|
139096
|
+
var curHs = Math.abs(thisConnect.pathMinX) || Math.abs(thisConnect.pathMaxX);
|
|
139097
|
+
var curVs = Math.abs(thisConnect.pathMinY) || Math.abs(thisConnect.pathMaxY);
|
|
139098
|
+
if (!curHs) {
|
|
139099
|
+
curHs = firstEndpoints[0] !== 0 ? Math.max(Math.abs(firstEndpoints[0] === -1 ? initialMinX : initialMaxX) - 5, minStub6) : minStub6;
|
|
139100
|
+
}
|
|
139101
|
+
if (!curVs) {
|
|
139102
|
+
curVs = firstEndpoints[1] !== 0 ? Math.max(Math.abs(firstEndpoints[1] === -1 ? initialMinY : initialMaxY) - 5, minStub6) : minStub6;
|
|
139103
|
+
}
|
|
139104
|
+
if (Math.abs(dx1) >= Math.abs(dy1)) {
|
|
139105
|
+
// 水平拖拽:只更新水平stub,垂直保持curVs不变
|
|
139106
|
+
var s = curHs;
|
|
139107
|
+
if (dx1 < 0) {
|
|
139108
|
+
s = curHs + Math.abs(dx1);
|
|
139109
|
+
} else {
|
|
139110
|
+
s = Math.max(curHs - dx1, minStub6);
|
|
139111
|
+
}
|
|
139112
|
+
if (firstEndpoints[0] === -1) {
|
|
139113
|
+
thisConnect.pathMinX = -s;
|
|
139114
|
+
thisConnect.pathMaxX = -s;
|
|
139115
|
+
} else if (firstEndpoints[0] === 1) {
|
|
139116
|
+
thisConnect.pathMinX = s;
|
|
139117
|
+
thisConnect.pathMaxX = s;
|
|
139118
|
+
}
|
|
139119
|
+
// 首次拖拽时初始化垂直方向存储
|
|
139120
|
+
if (!thisConnect.pathMinY && !thisConnect.pathMaxY) {
|
|
139121
|
+
var vdir = secondEndpoints[1] || firstEndpoints[1];
|
|
139122
|
+
if (vdir === -1) {
|
|
139123
|
+
thisConnect.pathMinY = -curVs;
|
|
139124
|
+
thisConnect.pathMaxY = -curVs;
|
|
139125
|
+
} else {
|
|
139126
|
+
thisConnect.pathMinY = curVs;
|
|
139127
|
+
thisConnect.pathMaxY = curVs;
|
|
139128
|
+
}
|
|
139129
|
+
}
|
|
139130
|
+
stub = [Math.max(s, minStub6), Math.max(curVs, minStub6)];
|
|
139131
|
+
} else {
|
|
139132
|
+
// 垂直拖拽:只更新垂直stub,水平保持curHs不变
|
|
139133
|
+
var s = curVs;
|
|
139134
|
+
if (dy1 < 0) {
|
|
139135
|
+
s = curVs + Math.abs(dy1);
|
|
139136
|
+
} else {
|
|
139137
|
+
s = Math.max(curVs - dy1, minStub6);
|
|
139138
|
+
}
|
|
139139
|
+
if (firstEndpoints[1] === -1) {
|
|
139140
|
+
thisConnect.pathMinY = -s;
|
|
139141
|
+
thisConnect.pathMaxY = -s;
|
|
139142
|
+
} else if (firstEndpoints[1] === 1) {
|
|
139143
|
+
thisConnect.pathMinY = s;
|
|
139144
|
+
thisConnect.pathMaxY = s;
|
|
139145
|
+
}
|
|
139146
|
+
// 首次拖拽时初始化水平方向存储
|
|
139147
|
+
if (!thisConnect.pathMinX && !thisConnect.pathMaxX) {
|
|
139148
|
+
var hdir = secondEndpoints[0] || firstEndpoints[0];
|
|
139149
|
+
if (hdir === -1) {
|
|
139150
|
+
thisConnect.pathMinX = -curHs;
|
|
139151
|
+
thisConnect.pathMaxX = -curHs;
|
|
139152
|
+
} else {
|
|
139153
|
+
thisConnect.pathMinX = curHs;
|
|
139154
|
+
thisConnect.pathMaxX = curHs;
|
|
139155
|
+
}
|
|
139156
|
+
}
|
|
139157
|
+
stub = [Math.max(curHs, minStub6), Math.max(s, minStub6)];
|
|
139158
|
+
}
|
|
139159
|
+
}
|
|
139160
|
+
}
|
|
139161
|
+
// 跨轴自环线(lineCount === 4 或 >= 6):用thisConnect存储值修正非拖拽轴stub
|
|
139162
|
+
// 避免lineCount === 4块中Math.abs(initialMaxX)取到画布边界而非真实stub
|
|
139163
|
+
// 注:firstEndpoints为2元素orientation数组,仅索引[0]/[1]有效
|
|
139164
|
+
if (isSameNode && !(hSameSide || vSameSide)) {
|
|
139165
|
+
var hasHAnchor = firstEndpoints[0] !== 0 || secondEndpoints[0] !== 0;
|
|
139166
|
+
var hasVAnchor = firstEndpoints[1] !== 0 || secondEndpoints[1] !== 0;
|
|
139167
|
+
if (hasHAnchor && hasVAnchor) {
|
|
139168
|
+
// Determine which axis was dragged by checking which path value was updated
|
|
139169
|
+
var srcDragged = thisConnect.pathMinX !== undefined && thisConnect.pathMinX !== 0 || thisConnect.pathMaxX !== undefined && thisConnect.pathMaxX !== 0;
|
|
139170
|
+
var srcWasV = firstEndpoints[0] === 0;
|
|
139171
|
+
if (srcDragged) {
|
|
139172
|
+
// Horizontal was dragged → fix vertical stub
|
|
139173
|
+
var vs = Math.abs(thisConnect.pathMinY) || Math.abs(thisConnect.pathMaxY);
|
|
139174
|
+
if (!vs) {
|
|
139175
|
+
if (firstEndpoints[1] === -1 || secondEndpoints[1] === -1) {
|
|
139176
|
+
vs = Math.max(Math.abs(initialMinY) - 5, minStub4 || minStub5 || 30);
|
|
139177
|
+
} else if (firstEndpoints[1] === 1 || secondEndpoints[1] === 1) {
|
|
139178
|
+
vs = Math.max(Math.abs(initialMaxY) - 5, minStub4 || minStub5 || 30);
|
|
139179
|
+
} else {
|
|
139180
|
+
vs = minStub4 || minStub5 || 30;
|
|
139181
|
+
}
|
|
139182
|
+
}
|
|
139183
|
+
stub[srcWasV ? 0 : 1] = Math.max(vs, minStub4 || minStub5 || 30);
|
|
139184
|
+
// 存储修正后的值到thisConnect,防止下个session re-extract画布值
|
|
139185
|
+
var fixedVs = Math.max(vs, minStub4 || minStub5 || 30);
|
|
139186
|
+
if (firstEndpoints[1] === -1 || secondEndpoints[1] === -1) {
|
|
139187
|
+
thisConnect.pathMinY = -fixedVs;
|
|
139188
|
+
thisConnect.pathMaxY = -fixedVs;
|
|
139189
|
+
} else if (firstEndpoints[1] === 1 || secondEndpoints[1] === 1) {
|
|
139190
|
+
thisConnect.pathMinY = fixedVs;
|
|
139191
|
+
thisConnect.pathMaxY = fixedVs;
|
|
139192
|
+
}
|
|
139193
|
+
} else {
|
|
139194
|
+
// Vertical was dragged → fix horizontal stub
|
|
139195
|
+
var hs = Math.abs(thisConnect.pathMinX) || Math.abs(thisConnect.pathMaxX);
|
|
139196
|
+
if (!hs) {
|
|
139197
|
+
if (firstEndpoints[0] === -1 || secondEndpoints[0] === -1) {
|
|
139198
|
+
hs = Math.max(Math.abs(initialMinX) - 5, minStub4 || minStub5 || 30);
|
|
139199
|
+
} else if (firstEndpoints[0] === 1 || secondEndpoints[0] === 1) {
|
|
139200
|
+
hs = Math.max(Math.abs(initialMaxX) - 5, minStub4 || minStub5 || 30);
|
|
139201
|
+
} else {
|
|
139202
|
+
hs = minStub4 || minStub5 || 30;
|
|
139203
|
+
}
|
|
139204
|
+
}
|
|
139205
|
+
stub[srcWasV ? 1 : 0] = Math.max(hs, minStub4 || minStub5 || 30);
|
|
139206
|
+
// 存储修正后的值到thisConnect
|
|
139207
|
+
var fixedHs = Math.max(hs, minStub4 || minStub5 || 30);
|
|
139208
|
+
if (firstEndpoints[0] === -1 || secondEndpoints[0] === -1) {
|
|
139209
|
+
thisConnect.pathMinX = -fixedHs;
|
|
139210
|
+
thisConnect.pathMaxX = -fixedHs;
|
|
139211
|
+
} else if (firstEndpoints[0] === 1 || secondEndpoints[0] === 1) {
|
|
139212
|
+
thisConnect.pathMinX = fixedHs;
|
|
139213
|
+
thisConnect.pathMaxX = fixedHs;
|
|
139214
|
+
}
|
|
139215
|
+
}
|
|
139216
|
+
}
|
|
138909
139217
|
}
|
|
138910
|
-
//
|
|
138911
|
-
|
|
138912
|
-
|
|
138913
|
-
if (firstEndpoints[0] !== 0
|
|
138914
|
-
//
|
|
138915
|
-
|
|
138916
|
-
|
|
138917
|
-
|
|
138918
|
-
|
|
138919
|
-
|
|
138920
|
-
|
|
139218
|
+
// 自环线同侧连接:用拖拽端的值同时赋给两端,保持stub对称
|
|
139219
|
+
if (isSameNode && (hSameSide || vSameSide)) {
|
|
139220
|
+
var activeStub;
|
|
139221
|
+
if (firstEndpoints[0] !== 0) {
|
|
139222
|
+
// 水平锚点
|
|
139223
|
+
if (Math.abs(canvasMarginLeft + canvasLeft - _this.dragLineObj.disX) <= 10) {
|
|
139224
|
+
activeStub = Math.abs(stub[0]); // 拖拽左侧边
|
|
139225
|
+
} else {
|
|
139226
|
+
activeStub = Math.abs(stub[1]); // 拖拽右侧边
|
|
139227
|
+
}
|
|
139228
|
+
stub = [activeStub, activeStub];
|
|
139229
|
+
if (firstEndpoints[0] === -1) {
|
|
139230
|
+
thisConnect.pathMinX = -activeStub;
|
|
139231
|
+
thisConnect.pathMaxX = -activeStub;
|
|
139232
|
+
} else {
|
|
139233
|
+
thisConnect.pathMinX = activeStub;
|
|
139234
|
+
thisConnect.pathMaxX = activeStub;
|
|
139235
|
+
}
|
|
139236
|
+
} else {
|
|
139237
|
+
// 垂直锚点
|
|
139238
|
+
if (Math.abs(canvasMarginTop + canvasTop - _this.dragLineObj.disY - scrollTop) <= 10) {
|
|
139239
|
+
activeStub = Math.abs(stub[0]); // 拖拽顶部边
|
|
139240
|
+
} else {
|
|
139241
|
+
activeStub = Math.abs(stub[1]); // 拖拽底部边
|
|
139242
|
+
}
|
|
139243
|
+
stub = [activeStub, activeStub];
|
|
139244
|
+
if (firstEndpoints[1] === -1) {
|
|
139245
|
+
thisConnect.pathMinY = -activeStub;
|
|
139246
|
+
thisConnect.pathMaxY = -activeStub;
|
|
139247
|
+
} else {
|
|
139248
|
+
thisConnect.pathMinY = activeStub;
|
|
139249
|
+
thisConnect.pathMaxY = activeStub;
|
|
139250
|
+
}
|
|
138921
139251
|
}
|
|
138922
139252
|
}
|
|
139253
|
+
// 垂直锚点组合2段线:源端延伸全距离,目标端不延伸(自环连接除外)
|
|
139254
|
+
var respectStubs = false;
|
|
139255
|
+
if (isSameNode) {
|
|
139256
|
+
// 自环连接始终严格保持stub值,与createPathLine创建行为一致
|
|
139257
|
+
// 跨轴自环线(lineCount不匹配3/4/5分支时stub为[0,0]),使用初始路径值兜底
|
|
139258
|
+
if (stub[0] === 0 && stub[1] === 0) {
|
|
139259
|
+
var s0 = Math.abs(initialMinX) || Math.abs(initialMaxX) || 50;
|
|
139260
|
+
var s1 = Math.abs(initialMinY) || Math.abs(initialMaxY) || 50;
|
|
139261
|
+
stub = [Math.max(s0, 30), Math.max(s1, 30)];
|
|
139262
|
+
}
|
|
139263
|
+
respectStubs = true;
|
|
139264
|
+
} else if (firstEndpoints[0] !== 0 && secondEndpoints[1] !== 0) {
|
|
139265
|
+
// 水平出 + 垂直入(如左出上入、右出下入)
|
|
139266
|
+
stub = [Math.abs(initialMaxX), 0];
|
|
139267
|
+
respectStubs = true;
|
|
139268
|
+
} else if (firstEndpoints[1] !== 0 && secondEndpoints[0] !== 0) {
|
|
139269
|
+
// 垂直出 + 水平入(如上出左入、下出右入)
|
|
139270
|
+
stub = [Math.abs(initialMaxY), 0];
|
|
139271
|
+
respectStubs = true;
|
|
139272
|
+
} else if (firstEndpoints[0] !== 0 && secondEndpoints[0] !== 0) {
|
|
139273
|
+
// 水平出 + 水平入(同轴异向,如右出左入):使用midpoint控制折线,不用alwaysRespectStubs
|
|
139274
|
+
respectStubs = false;
|
|
139275
|
+
} else if (firstEndpoints[1] !== 0 && secondEndpoints[1] !== 0) {
|
|
139276
|
+
// 垂直出 + 垂直入(同轴异向,如下出上入):使用midpoint控制折线,不用alwaysRespectStubs
|
|
139277
|
+
respectStubs = false;
|
|
139278
|
+
}
|
|
139279
|
+
var mp = isSameAxisDiffDir ? _dragMidpoint : respectStubs ? isSameNode ? 0.5 : 0 : 0.5;
|
|
138923
139280
|
connection.setConnector(['Flowchart', {
|
|
138924
139281
|
stub: stub,
|
|
138925
139282
|
gap: 5,
|
|
138926
139283
|
cornerRadius: 5,
|
|
138927
139284
|
alwaysRespectStubs: respectStubs,
|
|
138928
|
-
midpoint:
|
|
138929
|
-
}]);
|
|
138930
|
-
connection.addOverlay(['Arrow', {
|
|
138931
|
-
width: 10,
|
|
138932
|
-
length: 10,
|
|
138933
|
-
location: 1
|
|
139285
|
+
midpoint: mp
|
|
138934
139286
|
}]);
|
|
138935
139287
|
});
|
|
138936
139288
|
|
|
138937
139289
|
// 鼠标释放
|
|
138938
139290
|
jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).bind('mouseup', function (ev) {
|
|
138939
139291
|
setMoveCursor(false);
|
|
139292
|
+
connection.addOverlay(['Arrow', {
|
|
139293
|
+
width: 10,
|
|
139294
|
+
length: 10,
|
|
139295
|
+
location: 1
|
|
139296
|
+
}]);
|
|
138940
139297
|
jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).unbind('mousedown');
|
|
138941
139298
|
jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).unbind('mousemove');
|
|
138942
139299
|
jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).unbind('mouseup');
|
|
@@ -139317,6 +139674,30 @@ function createConnect(conn, connector, anchors) {
|
|
|
139317
139674
|
}
|
|
139318
139675
|
return a;
|
|
139319
139676
|
}
|
|
139677
|
+
|
|
139678
|
+
// ========== 辅助函数:同侧stub提取 ==========
|
|
139679
|
+
// 处理4种同轴同向组合(左左、右右、上上、下下),返回stub数组或null
|
|
139680
|
+
function computeSameSideStub(anchors, pathMinX, pathMaxX, pathMinY, pathMaxY) {
|
|
139681
|
+
if (anchors[0][2] === -1 && anchors[1][2] === -1) {
|
|
139682
|
+
var s0 = Math.abs(pathMinX) || 50;
|
|
139683
|
+
var s1 = Math.abs(pathMaxX) || 50;
|
|
139684
|
+
return [Math.max(s0, 30), Math.max(s1, 30)];
|
|
139685
|
+
} else if (anchors[0][2] === 1 && anchors[1][2] === 1) {
|
|
139686
|
+
var s0 = Math.abs(pathMaxX) || 50;
|
|
139687
|
+
var s1 = Math.abs(pathMinX) || 50;
|
|
139688
|
+
return [Math.max(s0, 30), Math.max(s1, 30)];
|
|
139689
|
+
} else if (anchors[0][3] === -1 && anchors[1][3] === -1) {
|
|
139690
|
+
var s0 = Math.abs(pathMinY) || 50;
|
|
139691
|
+
var s1 = Math.abs(pathMaxY) || 50;
|
|
139692
|
+
return [Math.max(s0, 30), Math.max(s1, 30)];
|
|
139693
|
+
} else if (anchors[0][3] === 1 && anchors[1][3] === 1) {
|
|
139694
|
+
// 下出上入:pathMinY=源端stub,pathMaxY=目标端stub
|
|
139695
|
+
var s0 = Math.abs(pathMinY) || 50;
|
|
139696
|
+
var s1 = Math.abs(pathMaxY) || 50;
|
|
139697
|
+
return [Math.max(s0, 30), Math.max(s1, 30)];
|
|
139698
|
+
}
|
|
139699
|
+
return null;
|
|
139700
|
+
}
|
|
139320
139701
|
function createPathLine(connectsArr) {
|
|
139321
139702
|
for (var j = 0; j < connectsArr.length; j++) {
|
|
139322
139703
|
// console.log(connectsArr[j].label, JSON.stringify(connectsArr[j]), connectsArr[j])
|
|
@@ -139340,22 +139721,18 @@ function createPathLine(connectsArr) {
|
|
|
139340
139721
|
// 自环连接:minStub=50,必须在isDiffAxis之前判断(自环可能跨轴)
|
|
139341
139722
|
stub = [50, 50];
|
|
139342
139723
|
if (connectsArr[j].linesCount && connectsArr[j].linesCount >= 3) {
|
|
139343
|
-
|
|
139344
|
-
|
|
139345
|
-
|
|
139346
|
-
|
|
139347
|
-
|
|
139348
|
-
var
|
|
139349
|
-
var
|
|
139350
|
-
|
|
139351
|
-
|
|
139352
|
-
var
|
|
139353
|
-
var
|
|
139354
|
-
stub = [Math.max(
|
|
139355
|
-
} else if (anchors[0][3] === 1 && anchors[1][3] === 1) {
|
|
139356
|
-
var s0 = Math.abs(connectsArr[j].pathMaxY) || 50;
|
|
139357
|
-
var s1 = Math.abs(connectsArr[j].pathMinY) || 50;
|
|
139358
|
-
stub = [Math.max(s0, 50), Math.max(s1, 50)];
|
|
139724
|
+
var sameStub = computeSameSideStub(anchors, connectsArr[j].pathMinX, connectsArr[j].pathMaxX, connectsArr[j].pathMinY, connectsArr[j].pathMaxY);
|
|
139725
|
+
if (sameStub) {
|
|
139726
|
+
stub = sameStub;
|
|
139727
|
+
} else {
|
|
139728
|
+
// 跨轴自环线(如左出上入):取各轴有效path值,minStub=50
|
|
139729
|
+
var absMinX = Math.abs(connectsArr[j].pathMinX) || 0;
|
|
139730
|
+
var absMaxX = Math.abs(connectsArr[j].pathMaxX) || 0;
|
|
139731
|
+
var absMinY = Math.abs(connectsArr[j].pathMinY) || 0;
|
|
139732
|
+
var absMaxY = Math.abs(connectsArr[j].pathMaxY) || 0;
|
|
139733
|
+
var hs = Math.max(absMinX, absMaxX, 30);
|
|
139734
|
+
var vs = Math.max(absMinY, absMaxY, 30);
|
|
139735
|
+
stub = [Math.max(hs, 30), Math.max(vs, 30)];
|
|
139359
139736
|
}
|
|
139360
139737
|
}
|
|
139361
139738
|
alwaysRespectStubs = true;
|
|
@@ -139370,67 +139747,46 @@ function createPathLine(connectsArr) {
|
|
|
139370
139747
|
// 同侧锚点(不含自环):使用保存的path值,minStub=50保证U型结构
|
|
139371
139748
|
stub = [50, 50];
|
|
139372
139749
|
if (connectsArr[j].linesCount && connectsArr[j].linesCount >= 3) {
|
|
139373
|
-
|
|
139374
|
-
|
|
139375
|
-
var s1 = Math.abs(connectsArr[j].pathMaxX) || 50;
|
|
139376
|
-
stub = [Math.max(s0, 50), Math.max(s1, 50)];
|
|
139377
|
-
} else if (anchors[0][2] === 1 && anchors[1][2] === 1) {
|
|
139378
|
-
var s0 = Math.abs(connectsArr[j].pathMaxX) || 50;
|
|
139379
|
-
var s1 = Math.abs(connectsArr[j].pathMinX) || 50;
|
|
139380
|
-
stub = [Math.max(s0, 50), Math.max(s1, 50)];
|
|
139381
|
-
} else if (anchors[0][3] === -1 && anchors[1][3] === -1) {
|
|
139382
|
-
var s0 = Math.abs(connectsArr[j].pathMinY) || 50;
|
|
139383
|
-
var s1 = Math.abs(connectsArr[j].pathMaxY) || 50;
|
|
139384
|
-
stub = [Math.max(s0, 50), Math.max(s1, 50)];
|
|
139385
|
-
} else if (anchors[0][3] === 1 && anchors[1][3] === 1) {
|
|
139386
|
-
var s0 = Math.abs(connectsArr[j].pathMaxY) || 50;
|
|
139387
|
-
var s1 = Math.abs(connectsArr[j].pathMinY) || 50;
|
|
139388
|
-
stub = [Math.max(s0, 50), Math.max(s1, 50)];
|
|
139389
|
-
}
|
|
139750
|
+
var sameStub = computeSameSideStub(anchors, connectsArr[j].pathMinX, connectsArr[j].pathMaxX, connectsArr[j].pathMinY, connectsArr[j].pathMaxY);
|
|
139751
|
+
if (sameStub) stub = sameStub;
|
|
139390
139752
|
}
|
|
139391
139753
|
} else if (isSameAxisDiffDir) {
|
|
139392
|
-
//
|
|
139393
|
-
|
|
139394
|
-
|
|
139395
|
-
|
|
139396
|
-
|
|
139397
|
-
|
|
139398
|
-
|
|
139399
|
-
|
|
139400
|
-
|
|
139401
|
-
|
|
139402
|
-
|
|
139403
|
-
|
|
139404
|
-
if (
|
|
139405
|
-
|
|
139406
|
-
var
|
|
139407
|
-
var
|
|
139408
|
-
var
|
|
139409
|
-
|
|
139410
|
-
var
|
|
139411
|
-
|
|
139412
|
-
|
|
139413
|
-
var
|
|
139414
|
-
|
|
139415
|
-
|
|
139416
|
-
|
|
139417
|
-
|
|
139418
|
-
|
|
139419
|
-
|
|
139420
|
-
|
|
139421
|
-
|
|
139422
|
-
|
|
139423
|
-
|
|
139424
|
-
|
|
139425
|
-
|
|
139426
|
-
|
|
139427
|
-
|
|
139428
|
-
stub[1] = Math.abs(tgtAnchorY - midY);
|
|
139429
|
-
}
|
|
139430
|
-
}
|
|
139431
|
-
if (isNaN(stub[0]) || stub[0] === 0) stub[0] = 10;
|
|
139432
|
-
if (isNaN(stub[1]) || stub[1] === 0) stub[1] = stub[0];
|
|
139433
|
-
alwaysRespectStubs = true;
|
|
139754
|
+
// 同轴异向:小stub + alwaysRespectStubs=false + 动态midpoint控制折线位置
|
|
139755
|
+
stub = [10, 10];
|
|
139756
|
+
var _sourceNode = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#' + connectsArr[j].PageSourceId);
|
|
139757
|
+
var targetNode = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#' + connectsArr[j].PageTargetId);
|
|
139758
|
+
var srcTop = parseInt(_sourceNode.css('top')) || 0;
|
|
139759
|
+
var srcLeft = parseInt(_sourceNode.css('left')) || 0;
|
|
139760
|
+
var srcW = _sourceNode.outerWidth() || 0;
|
|
139761
|
+
var srcH = _sourceNode.outerHeight() || 0;
|
|
139762
|
+
var tgtTop = parseInt(targetNode.css('top')) || 0;
|
|
139763
|
+
var tgtLeft = parseInt(targetNode.css('left')) || 0;
|
|
139764
|
+
var tgtW = targetNode.outerWidth() || 0;
|
|
139765
|
+
var tgtH = targetNode.outerHeight() || 0;
|
|
139766
|
+
if (anchors[0][2] !== 0) {
|
|
139767
|
+
// 水平方向(左出右入、右出左入)
|
|
139768
|
+
var srcAnchorX = srcLeft + srcW * anchors[0][0];
|
|
139769
|
+
var tgtAnchorX = tgtLeft + tgtW * anchors[1][0];
|
|
139770
|
+
var totalDistX = Math.abs(tgtAnchorX - srcAnchorX);
|
|
139771
|
+
// 从存储的pathMaxX获取折线距离,无有效值时取中点
|
|
139772
|
+
var foldDist = Math.abs(connectsArr[j].pathMaxX) || Math.abs(connectsArr[j].pathMinX);
|
|
139773
|
+
if (!foldDist || isNaN(foldDist)) foldDist = totalDistX / 2;
|
|
139774
|
+
// stub=10时需扣除stub偏移:midpoint = (foldDist - stub) / (totalDist - 2*stub)
|
|
139775
|
+
var effDist = totalDistX - 20;
|
|
139776
|
+
midpoint = effDist > 0 ? (foldDist - 10) / effDist : 0.5;
|
|
139777
|
+
} else if (anchors[0][3] !== 0) {
|
|
139778
|
+
// 垂直方向(上出下入、下出上入)
|
|
139779
|
+
var srcAnchorY = srcTop + srcH * anchors[0][1];
|
|
139780
|
+
var tgtAnchorY = tgtTop + tgtH * anchors[1][1];
|
|
139781
|
+
var totalDistY = Math.abs(tgtAnchorY - srcAnchorY);
|
|
139782
|
+
var foldDist = Math.abs(connectsArr[j].pathMaxY) || Math.abs(connectsArr[j].pathMinY);
|
|
139783
|
+
if (!foldDist || isNaN(foldDist)) foldDist = totalDistY / 2;
|
|
139784
|
+
// stub=10时需扣除stub偏移:midpoint = (foldDist - stub) / (totalDist - 2*stub)
|
|
139785
|
+
var effDist = totalDistY - 20;
|
|
139786
|
+
midpoint = effDist > 0 ? (foldDist - 10) / effDist : 0.5;
|
|
139787
|
+
}
|
|
139788
|
+
midpoint = Math.max(0, Math.min(1, midpoint));
|
|
139789
|
+
// alwaysRespectStubs保持false(默认值),使opposite分支使用midpoint参数控制折线
|
|
139434
139790
|
} else if (connectsArr[j].linesCount >= 4) {
|
|
139435
139791
|
// 其他4段线:使用保存的path值
|
|
139436
139792
|
stub = [10, 10];
|
|
@@ -141281,7 +141637,11 @@ var showProcessDesc = function showProcessDesc(desc, containerHeight, containerL
|
|
|
141281
141637
|
scope: 'desc'
|
|
141282
141638
|
});
|
|
141283
141639
|
jquery__WEBPACK_IMPORTED_MODULE_0___default()('.process-desc-close').click(function () {
|
|
141284
|
-
document.querySelector('.process-desc-container')
|
|
141640
|
+
var descContainer = document.querySelector('.process-desc-container');
|
|
141641
|
+
// 隐藏前将当前位置存入data属性,以便保存时能读取到
|
|
141642
|
+
descContainer.dataset.left = descContainer.offsetLeft;
|
|
141643
|
+
descContainer.dataset.top = descContainer.offsetTop;
|
|
141644
|
+
descContainer.style.display = 'none';
|
|
141285
141645
|
});
|
|
141286
141646
|
};
|
|
141287
141647
|
var Transform = {
|
|
@@ -167911,7 +168271,7 @@ ___CSS_LOADER_EXPORT___.push([module.id, ".setting .header[data-v-8cadfe0a]{widt
|
|
|
167911
168271
|
|
|
167912
168272
|
/***/ }),
|
|
167913
168273
|
|
|
167914
|
-
/***/
|
|
168274
|
+
/***/ 43879:
|
|
167915
168275
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
167916
168276
|
|
|
167917
168277
|
"use strict";
|
|
@@ -167925,14 +168285,14 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
167925
168285
|
|
|
167926
168286
|
var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
|
|
167927
168287
|
// Module
|
|
167928
|
-
___CSS_LOADER_EXPORT___.push([module.id, "[data-v-
|
|
168288
|
+
___CSS_LOADER_EXPORT___.push([module.id, "[data-v-0ebbd5f8] .el-scrollbar__wrap{overflow-x:auto}#center[data-v-0ebbd5f8]{background-image:-webkit-gradient(linear,left top,right top,color-stop(3%,rgba(50,0,0,.05)),color-stop(3%,transparent)),-webkit-gradient(linear,left bottom,left top,color-stop(3%,rgba(50,0,0,.05)),color-stop(3%,transparent));background-image:linear-gradient(90deg,rgba(50,0,0,.05) 3%,transparent 0),linear-gradient(1turn,rgba(50,0,0,.05) 3%,transparent 0);background-size:20px 20px;background-repeat:repeat;background-position:0 0}#center .add-node-btn[data-v-0ebbd5f8]{position:relative;margin:-15px -10px;z-index:4000;display:none}#center .insert-node-btn[data-v-0ebbd5f8]{position:fixed;margin:-15px -10px;z-index:4000;display:none}li[data-v-0ebbd5f8],ul[data-v-0ebbd5f8]{list-style:none}", ""]);
|
|
167929
168289
|
// Exports
|
|
167930
168290
|
/* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
|
|
167931
168291
|
|
|
167932
168292
|
|
|
167933
168293
|
/***/ }),
|
|
167934
168294
|
|
|
167935
|
-
/***/
|
|
168295
|
+
/***/ 80803:
|
|
167936
168296
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
167937
168297
|
|
|
167938
168298
|
"use strict";
|
|
@@ -263697,35 +264057,35 @@ var update = add("0ef0df88", content, true, {"sourceMap":false,"shadowMode":fals
|
|
|
263697
264057
|
|
|
263698
264058
|
/***/ }),
|
|
263699
264059
|
|
|
263700
|
-
/***/
|
|
264060
|
+
/***/ 73537:
|
|
263701
264061
|
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
263702
264062
|
|
|
263703
264063
|
// style-loader: Adds some css to the DOM by adding a <style> tag
|
|
263704
264064
|
|
|
263705
264065
|
// load the styles
|
|
263706
|
-
var content = __webpack_require__(
|
|
264066
|
+
var content = __webpack_require__(43879);
|
|
263707
264067
|
if(content.__esModule) content = content.default;
|
|
263708
264068
|
if(typeof content === 'string') content = [[module.id, content, '']];
|
|
263709
264069
|
if(content.locals) module.exports = content.locals;
|
|
263710
264070
|
// add the styles to the DOM
|
|
263711
264071
|
var add = (__webpack_require__(99548)/* ["default"] */ .A)
|
|
263712
|
-
var update = add("
|
|
264072
|
+
var update = add("5228d882", content, true, {"sourceMap":false,"shadowMode":false});
|
|
263713
264073
|
|
|
263714
264074
|
/***/ }),
|
|
263715
264075
|
|
|
263716
|
-
/***/
|
|
264076
|
+
/***/ 65089:
|
|
263717
264077
|
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
263718
264078
|
|
|
263719
264079
|
// style-loader: Adds some css to the DOM by adding a <style> tag
|
|
263720
264080
|
|
|
263721
264081
|
// load the styles
|
|
263722
|
-
var content = __webpack_require__(
|
|
264082
|
+
var content = __webpack_require__(80803);
|
|
263723
264083
|
if(content.__esModule) content = content.default;
|
|
263724
264084
|
if(typeof content === 'string') content = [[module.id, content, '']];
|
|
263725
264085
|
if(content.locals) module.exports = content.locals;
|
|
263726
264086
|
// add the styles to the DOM
|
|
263727
264087
|
var add = (__webpack_require__(99548)/* ["default"] */ .A)
|
|
263728
|
-
var update = add("
|
|
264088
|
+
var update = add("d8266c68", content, true, {"sourceMap":false,"shadowMode":false});
|
|
263729
264089
|
|
|
263730
264090
|
/***/ }),
|
|
263731
264091
|
|
|
@@ -286279,7 +286639,7 @@ var asyncComponents = [
|
|
|
286279
286639
|
}],
|
|
286280
286640
|
// ========== 工作流设计器 + 系统设计器 ==========
|
|
286281
286641
|
['WflowDesigner', function () {
|
|
286282
|
-
return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__,
|
|
286642
|
+
return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 34660));
|
|
286283
286643
|
}], ['ImportWf', function () {
|
|
286284
286644
|
return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 39934));
|
|
286285
286645
|
}], ['WflowTrace', function () {
|
|
@@ -286355,7 +286715,7 @@ var WflowformModule = function WflowformModule() {
|
|
|
286355
286715
|
return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 42826));
|
|
286356
286716
|
};
|
|
286357
286717
|
var WflowDesignerModule = function WflowDesignerModule() {
|
|
286358
|
-
return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__,
|
|
286718
|
+
return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 34660));
|
|
286359
286719
|
};
|
|
286360
286720
|
var WflowTraceModule = function WflowTraceModule() {
|
|
286361
286721
|
return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 85197));
|