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.umd.js
CHANGED
|
@@ -116377,7 +116377,7 @@ var UdmGenerator_UserModuleForm = UserModuleForm;
|
|
|
116377
116377
|
|
|
116378
116378
|
/***/ }),
|
|
116379
116379
|
|
|
116380
|
-
/***/
|
|
116380
|
+
/***/ 94714:
|
|
116381
116381
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
116382
116382
|
|
|
116383
116383
|
"use strict";
|
|
@@ -117044,8 +117044,8 @@ var SideBar_component = (0,componentNormalizer/* default */.A)(
|
|
|
117044
117044
|
)
|
|
117045
117045
|
|
|
117046
117046
|
/* harmony default export */ var SideBar = (SideBar_component.exports);
|
|
117047
|
-
;// CONCATENATED MODULE: ./node_modules/babel-loader/lib/index.js??clonedRuleSet-83.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=
|
|
117048
|
-
var
|
|
117047
|
+
;// CONCATENATED MODULE: ./node_modules/babel-loader/lib/index.js??clonedRuleSet-83.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
|
|
117048
|
+
var Centervue_type_template_id_0ebbd5f8_scoped_true_render = function render() {
|
|
117049
117049
|
var _vm = this,
|
|
117050
117050
|
_c = _vm._self._c;
|
|
117051
117051
|
return _c('el-scrollbar', {
|
|
@@ -117164,7 +117164,7 @@ var Centervue_type_template_id_46bbfc1a_scoped_true_render = function render() {
|
|
|
117164
117164
|
}
|
|
117165
117165
|
})], 1)], 1)]);
|
|
117166
117166
|
};
|
|
117167
|
-
var
|
|
117167
|
+
var Centervue_type_template_id_0ebbd5f8_scoped_true_staticRenderFns = [];
|
|
117168
117168
|
|
|
117169
117169
|
// EXTERNAL MODULE: ./node_modules/jquery/dist/jquery.js
|
|
117170
117170
|
var jquery = __webpack_require__(74692);
|
|
@@ -119290,8 +119290,16 @@ var _require22 = __webpack_require__(61289),
|
|
|
119290
119290
|
wflow.process.description = desc;
|
|
119291
119291
|
wflow.process.chartData.descDiv = {};
|
|
119292
119292
|
wflow.process.chartData.descDiv.height = descDiv.clientHeight;
|
|
119293
|
-
|
|
119294
|
-
|
|
119293
|
+
if (descDiv.style.display !== 'none') {
|
|
119294
|
+
wflow.process.chartData.descDiv.left = descDiv.offsetLeft;
|
|
119295
|
+
wflow.process.chartData.descDiv.top = descDiv.offsetTop;
|
|
119296
|
+
} else {
|
|
119297
|
+
// 元素隐藏时offsetLeft/offsetTop为0,从关闭时存储的data属性中读取位置
|
|
119298
|
+
var savedLeft = descDiv.dataset.left;
|
|
119299
|
+
var savedTop = descDiv.dataset.top;
|
|
119300
|
+
if (savedLeft !== undefined) wflow.process.chartData.descDiv.left = parseInt(savedLeft);
|
|
119301
|
+
if (savedTop !== undefined) wflow.process.chartData.descDiv.top = parseInt(savedTop);
|
|
119302
|
+
}
|
|
119295
119303
|
} else {
|
|
119296
119304
|
wflow.process.description = '';
|
|
119297
119305
|
delete wflow.process.chartData.descDiv;
|
|
@@ -119794,13 +119802,13 @@ var _require22 = __webpack_require__(61289),
|
|
|
119794
119802
|
});
|
|
119795
119803
|
;// CONCATENATED MODULE: ./packages/ecwplus/WorkflowDesigner/src/components/Center/index.vue?vue&type=script&lang=js
|
|
119796
119804
|
/* harmony default export */ var components_Centervue_type_script_lang_js = (Centervue_type_script_lang_js);
|
|
119797
|
-
// EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js??clonedRuleSet-65.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-65.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-65.use[2]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-65.use[3]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-65.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=
|
|
119798
|
-
var
|
|
119799
|
-
;// CONCATENATED MODULE: ./packages/ecwplus/WorkflowDesigner/src/components/Center/index.vue?vue&type=style&index=0&id=
|
|
119805
|
+
// EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js??clonedRuleSet-65.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-65.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-65.use[2]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-65.use[3]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-65.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
|
|
119806
|
+
var Centervue_type_style_index_0_id_0ebbd5f8_prod_scoped_true_lang_scss = __webpack_require__(42096);
|
|
119807
|
+
;// CONCATENATED MODULE: ./packages/ecwplus/WorkflowDesigner/src/components/Center/index.vue?vue&type=style&index=0&id=0ebbd5f8&prod&scoped=true&lang=scss
|
|
119800
119808
|
|
|
119801
|
-
// EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js??clonedRuleSet-65.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-65.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-65.use[2]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-65.use[3]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-65.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=
|
|
119802
|
-
var
|
|
119803
|
-
;// CONCATENATED MODULE: ./packages/ecwplus/WorkflowDesigner/src/components/Center/index.vue?vue&type=style&index=1&id=
|
|
119809
|
+
// EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js??clonedRuleSet-65.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-65.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-65.use[2]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-65.use[3]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-65.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
|
|
119810
|
+
var Centervue_type_style_index_1_id_0ebbd5f8_prod_lang_scss = __webpack_require__(93012);
|
|
119811
|
+
;// CONCATENATED MODULE: ./packages/ecwplus/WorkflowDesigner/src/components/Center/index.vue?vue&type=style&index=1&id=0ebbd5f8&prod&lang=scss
|
|
119804
119812
|
|
|
119805
119813
|
;// CONCATENATED MODULE: ./packages/ecwplus/WorkflowDesigner/src/components/Center/index.vue
|
|
119806
119814
|
|
|
@@ -119814,11 +119822,11 @@ var Centervue_type_style_index_1_id_46bbfc1a_prod_lang_scss = __webpack_require_
|
|
|
119814
119822
|
|
|
119815
119823
|
var Center_component = (0,componentNormalizer/* default */.A)(
|
|
119816
119824
|
components_Centervue_type_script_lang_js,
|
|
119817
|
-
|
|
119818
|
-
|
|
119825
|
+
Centervue_type_template_id_0ebbd5f8_scoped_true_render,
|
|
119826
|
+
Centervue_type_template_id_0ebbd5f8_scoped_true_staticRenderFns,
|
|
119819
119827
|
false,
|
|
119820
119828
|
null,
|
|
119821
|
-
"
|
|
119829
|
+
"0ebbd5f8",
|
|
119822
119830
|
null
|
|
119823
119831
|
|
|
119824
119832
|
)
|
|
@@ -138430,24 +138438,36 @@ function getPathXyData(connection, thisConnect) {
|
|
|
138430
138438
|
// 从svg path中获取同轴异向的两端stub,4种情况全处理
|
|
138431
138439
|
if (firstEndpoints[3] === 1 && secondEndpoints[3] === -1) {
|
|
138432
138440
|
// 下出上入
|
|
138433
|
-
|
|
138434
|
-
|
|
138435
|
-
|
|
138441
|
+
if (!thisConnect || !thisConnect.pathMaxY) {
|
|
138442
|
+
var lineData = paths[0].split(' ');
|
|
138443
|
+
pathMaxY = parseInt(lineData[5]) - parseInt(lineData[2]);
|
|
138444
|
+
pathMinY = -pathMaxY; // 同轴异向,两端 stub 相等
|
|
138445
|
+
}
|
|
138436
138446
|
} else if (firstEndpoints[3] === -1 && secondEndpoints[3] === 1) {
|
|
138437
138447
|
// 上出下入
|
|
138438
|
-
|
|
138439
|
-
|
|
138440
|
-
|
|
138448
|
+
if (!thisConnect || !thisConnect.pathMinY) {
|
|
138449
|
+
var _lineData = paths[0].split(' ');
|
|
138450
|
+
pathMinY = parseInt(_lineData[2]) - parseInt(_lineData[5]);
|
|
138451
|
+
pathMaxY = -pathMinY; // 同轴异向,两端 stub 相等
|
|
138452
|
+
}
|
|
138441
138453
|
} else if (firstEndpoints[2] === 1 && secondEndpoints[2] === -1) {
|
|
138442
138454
|
// 右出左入
|
|
138443
|
-
|
|
138444
|
-
|
|
138445
|
-
|
|
138455
|
+
if (!thisConnect || !thisConnect.pathMaxX) {
|
|
138456
|
+
var _lineData2 = paths[0].split(' ');
|
|
138457
|
+
var arcIdx = _lineData2.indexOf('A');
|
|
138458
|
+
var lastPtX = arcIdx > 0 ? parseInt(_lineData2[arcIdx - 2]) : parseInt(_lineData2[4]);
|
|
138459
|
+
pathMaxX = Math.abs(lastPtX - parseInt(_lineData2[1]));
|
|
138460
|
+
pathMinX = -pathMaxX;
|
|
138461
|
+
}
|
|
138446
138462
|
} else if (firstEndpoints[2] === -1 && secondEndpoints[2] === 1) {
|
|
138447
138463
|
// 左出右入
|
|
138448
|
-
|
|
138449
|
-
|
|
138450
|
-
|
|
138464
|
+
if (!thisConnect || !thisConnect.pathMinX) {
|
|
138465
|
+
var _lineData3 = paths[0].split(' ');
|
|
138466
|
+
var arcIdx = _lineData3.indexOf('A');
|
|
138467
|
+
var lastPtX = arcIdx > 0 ? parseInt(_lineData3[arcIdx - 2]) : parseInt(_lineData3[4]);
|
|
138468
|
+
pathMinX = -Math.abs(lastPtX - parseInt(_lineData3[1]));
|
|
138469
|
+
pathMaxX = -pathMinX;
|
|
138470
|
+
}
|
|
138451
138471
|
}
|
|
138452
138472
|
} else if (linesCount >= 4) {
|
|
138453
138473
|
if (firstEndpoints[2] === 1) {
|
|
@@ -138513,6 +138533,29 @@ function getPathXyData(connection, thisConnect) {
|
|
|
138513
138533
|
}
|
|
138514
138534
|
}
|
|
138515
138535
|
}
|
|
138536
|
+
// 自环线已有thisConnect存储值时优先使用,避免SVG提取的+5偏移在session间累积
|
|
138537
|
+
var isSelfLoop = thisConnect && thisConnect.PageSourceId === thisConnect.PageTargetId;
|
|
138538
|
+
if (isSelfLoop) {
|
|
138539
|
+
// 同轴自环配对的path值相等,cross-axis则各自独立
|
|
138540
|
+
var crossAxis = firstEndpoints[2] !== 0 && secondEndpoints[3] !== 0 || firstEndpoints[3] !== 0 && secondEndpoints[2] !== 0;
|
|
138541
|
+
if (!crossAxis) {
|
|
138542
|
+
if (thisConnect.pathMinX || thisConnect.pathMaxX) {
|
|
138543
|
+
var storedX = thisConnect.pathMinX || thisConnect.pathMaxX;
|
|
138544
|
+
pathMinX = storedX;
|
|
138545
|
+
pathMaxX = storedX;
|
|
138546
|
+
}
|
|
138547
|
+
if (thisConnect.pathMinY || thisConnect.pathMaxY) {
|
|
138548
|
+
var storedY = thisConnect.pathMinY || thisConnect.pathMaxY;
|
|
138549
|
+
pathMinY = storedY;
|
|
138550
|
+
pathMaxY = storedY;
|
|
138551
|
+
}
|
|
138552
|
+
} else {
|
|
138553
|
+
if (thisConnect.pathMinX) pathMinX = thisConnect.pathMinX;
|
|
138554
|
+
if (thisConnect.pathMaxX) pathMaxX = thisConnect.pathMaxX;
|
|
138555
|
+
if (thisConnect.pathMinY) pathMinY = thisConnect.pathMinY;
|
|
138556
|
+
if (thisConnect.pathMaxY) pathMaxY = thisConnect.pathMaxY;
|
|
138557
|
+
}
|
|
138558
|
+
}
|
|
138516
138559
|
return {
|
|
138517
138560
|
linesCount: linesCount,
|
|
138518
138561
|
pathMinX: pathMinX,
|
|
@@ -138523,6 +138566,38 @@ function getPathXyData(connection, thisConnect) {
|
|
|
138523
138566
|
secondEndpoints: secondEndpoints
|
|
138524
138567
|
};
|
|
138525
138568
|
}
|
|
138569
|
+
|
|
138570
|
+
// ========== 三段线拖拽统一处理器 ==========
|
|
138571
|
+
// 处理同轴同向/同轴异向/自环三种子分支的stub和midpoint计算
|
|
138572
|
+
function handle3SegDrag(isNeg, absDist, minStub, isSameNode, isSameSide, totalDist, thisConnect, perpMin, perpMax) {
|
|
138573
|
+
var stub,
|
|
138574
|
+
dragMidpoint = 0.5,
|
|
138575
|
+
isOpposite = false,
|
|
138576
|
+
distance = isNeg ? -absDist : absDist;
|
|
138577
|
+
if (isSameNode) {
|
|
138578
|
+
var os = Math.abs(thisConnect.pathMinY) || Math.abs(thisConnect.pathMaxY);
|
|
138579
|
+
if (!os) os = Math.max(Math.max(Math.abs(perpMin), Math.abs(perpMax)) - 5, minStub);
|
|
138580
|
+
stub = [absDist, Math.max(os, minStub)];
|
|
138581
|
+
} else if (!isSameSide) {
|
|
138582
|
+
// 同轴异向:alwaysRespectStubs=false + 小stub + 动态midpoint控制折线位置
|
|
138583
|
+
var actMin = 30;
|
|
138584
|
+
var td = totalDist || 21;
|
|
138585
|
+
absDist = Math.min(Math.max(absDist, actMin), td - actMin);
|
|
138586
|
+
distance = isNeg ? -absDist : absDist;
|
|
138587
|
+
isOpposite = true;
|
|
138588
|
+
stub = [10, 10];
|
|
138589
|
+
var effDist = td - 20;
|
|
138590
|
+
dragMidpoint = effDist > 0 ? (absDist - 10) / effDist : 0.5;
|
|
138591
|
+
} else {
|
|
138592
|
+
stub = [absDist, minStub];
|
|
138593
|
+
}
|
|
138594
|
+
return {
|
|
138595
|
+
stub: stub,
|
|
138596
|
+
dragMidpoint: dragMidpoint,
|
|
138597
|
+
isOpposite: isOpposite,
|
|
138598
|
+
distance: distance
|
|
138599
|
+
};
|
|
138600
|
+
}
|
|
138526
138601
|
function dragLine(_this, connection, thisConnect) {
|
|
138527
138602
|
var distance = 0;
|
|
138528
138603
|
|
|
@@ -138530,12 +138605,19 @@ function dragLine(_this, connection, thisConnect) {
|
|
|
138530
138605
|
jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).bind('mousedown', function (ev) {
|
|
138531
138606
|
var paths = connection.connector.getPathData().split(',');
|
|
138532
138607
|
var lineCount = paths.length;
|
|
138533
|
-
|
|
138608
|
+
// 同轴异向检测(提前到lineCount检查之前,以便重定向lineCount=1的路径)
|
|
138609
|
+
var firstEndpoints = connection.endpoints[0].anchor.orientation;
|
|
138610
|
+
var secondEndpoints = connection.endpoints[1].anchor.orientation;
|
|
138611
|
+
var isSameNode = thisConnect.PageSourceId === thisConnect.PageTargetId;
|
|
138612
|
+
var isSameAxisDiffDir = !isSameNode && (firstEndpoints[0] !== 0 && secondEndpoints[0] !== 0 && firstEndpoints[0] !== secondEndpoints[0] || firstEndpoints[1] !== 0 && secondEndpoints[1] !== 0 && firstEndpoints[1] !== secondEndpoints[1]);
|
|
138613
|
+
if (lineCount < 2 && !isSameAxisDiffDir) {
|
|
138534
138614
|
jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).unbind('mousedown');
|
|
138535
138615
|
return;
|
|
138536
138616
|
}
|
|
138537
138617
|
_this.dragLineObj.disX = ev.pageX;
|
|
138538
138618
|
_this.dragLineObj.disY = ev.pageY;
|
|
138619
|
+
_this.dragLineObj.initCW = undefined;
|
|
138620
|
+
_this.dragLineObj.initCH = undefined;
|
|
138539
138621
|
var xyData = getPathXyData(connection, thisConnect);
|
|
138540
138622
|
var initialMaxX = xyData.pathMaxX; // 获取路径的初始stub值
|
|
138541
138623
|
var initialMaxY = xyData.pathMaxY; // 获取路径的初始stub值
|
|
@@ -138545,9 +138627,10 @@ function dragLine(_this, connection, thisConnect) {
|
|
|
138545
138627
|
var canvasMarginLeft = 210; // 绘图区左边距
|
|
138546
138628
|
var canvasMarginTop = 112; // 绘图区右边距
|
|
138547
138629
|
|
|
138548
|
-
|
|
138549
|
-
|
|
138550
|
-
|
|
138630
|
+
// 同轴异向3段线强制使用3段拖拽逻辑(不论逗号分隔后的段数)
|
|
138631
|
+
if (isSameAxisDiffDir) {
|
|
138632
|
+
lineCount = 3;
|
|
138633
|
+
}
|
|
138551
138634
|
|
|
138552
138635
|
// 检测是否可拖拉,仅位于路径canvas四边的路径可拖拉,射出、射入路径不可拖拉
|
|
138553
138636
|
if (firstEndpoints[0] !== 0) {
|
|
@@ -138608,98 +138691,148 @@ function dragLine(_this, connection, thisConnect) {
|
|
|
138608
138691
|
var x = ev.pageX;
|
|
138609
138692
|
var y = ev.pageY;
|
|
138610
138693
|
var stub = [0, 0];
|
|
138611
|
-
|
|
138694
|
+
var _dragMidpoint = 0.5;
|
|
138695
|
+
var handledIn4, hSameSide, vSameSide; // 显式声明,避免var提升的隐式行为
|
|
138696
|
+
|
|
138697
|
+
// 跨轴自环线独立拖拽处理器(完全绕过lineCount逻辑)
|
|
138698
|
+
var isCrossAxisSL = isSameNode && (firstEndpoints[0] !== 0 && secondEndpoints[1] !== 0 || firstEndpoints[1] !== 0 && secondEndpoints[0] !== 0);
|
|
138699
|
+
if (isCrossAxisSL) {
|
|
138700
|
+
var incDx = x - (_this.dragLineObj.prevX || _this.dragLineObj.disX);
|
|
138701
|
+
var incDy = y - (_this.dragLineObj.prevY || _this.dragLineObj.disY);
|
|
138702
|
+
_this.dragLineObj.prevX = x;
|
|
138703
|
+
_this.dragLineObj.prevY = y;
|
|
138704
|
+
var hDirSL = firstEndpoints[0] || secondEndpoints[0];
|
|
138705
|
+
var vDirSL = firstEndpoints[1] || secondEndpoints[1];
|
|
138706
|
+
var minSL = 30;
|
|
138707
|
+
var curHSL = Math.abs(thisConnect.pathMinX) || Math.abs(thisConnect.pathMaxX);
|
|
138708
|
+
var curVSL = Math.abs(thisConnect.pathMinY) || Math.abs(thisConnect.pathMaxY);
|
|
138709
|
+
if (!curHSL) {
|
|
138710
|
+
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;
|
|
138711
|
+
}
|
|
138712
|
+
if (!curVSL) {
|
|
138713
|
+
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;
|
|
138714
|
+
}
|
|
138715
|
+
var newHSL = curHSL,
|
|
138716
|
+
newVSL = curVSL;
|
|
138717
|
+
var hOutSL = hDirSL === 1 ? incDx > 0 : incDx < 0;
|
|
138718
|
+
var vOutSL = vDirSL === 1 ? incDy > 0 : incDy < 0;
|
|
138719
|
+
if (Math.abs(incDx) >= Math.abs(incDy)) {
|
|
138720
|
+
if (hOutSL) newHSL = curHSL + Math.abs(incDx);else newHSL = Math.max(curHSL - Math.abs(incDx), minSL);
|
|
138721
|
+
} else {
|
|
138722
|
+
if (vOutSL) newVSL = curVSL + Math.abs(incDy);else newVSL = Math.max(curVSL - Math.abs(incDy), minSL);
|
|
138723
|
+
}
|
|
138724
|
+
var srcVSL = firstEndpoints[0] === 0;
|
|
138725
|
+
stub = srcVSL ? [Math.max(newVSL, minSL), Math.max(newHSL, minSL)] : [Math.max(newHSL, minSL), Math.max(newVSL, minSL)];
|
|
138726
|
+
if (hDirSL === -1) {
|
|
138727
|
+
thisConnect.pathMinX = -Math.max(newHSL, minSL);
|
|
138728
|
+
thisConnect.pathMaxX = -Math.max(newHSL, minSL);
|
|
138729
|
+
} else if (hDirSL === 1) {
|
|
138730
|
+
thisConnect.pathMinX = Math.max(newHSL, minSL);
|
|
138731
|
+
thisConnect.pathMaxX = Math.max(newHSL, minSL);
|
|
138732
|
+
}
|
|
138733
|
+
if (vDirSL === -1) {
|
|
138734
|
+
thisConnect.pathMinY = -Math.max(newVSL, minSL);
|
|
138735
|
+
thisConnect.pathMaxY = -Math.max(newVSL, minSL);
|
|
138736
|
+
} else if (vDirSL === 1) {
|
|
138737
|
+
thisConnect.pathMinY = Math.max(newVSL, minSL);
|
|
138738
|
+
thisConnect.pathMaxY = Math.max(newVSL, minSL);
|
|
138739
|
+
}
|
|
138740
|
+
} else if (lineCount <= 3) {
|
|
138612
138741
|
var isSameSide = firstEndpoints[0] !== 0 && firstEndpoints[0] === secondEndpoints[0] || firstEndpoints[1] !== 0 && firstEndpoints[1] === secondEndpoints[1];
|
|
138613
138742
|
var minStub = isSameSide || isSameNode ? 50 : 10;
|
|
138743
|
+
// 同轴异向时,从节点CSS位置计算真实锚点间距(避免存储的等值stub导致totalDist锁死)
|
|
138744
|
+
if (isSameAxisDiffDir) {
|
|
138745
|
+
var srcEl = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#' + thisConnect.PageSourceId);
|
|
138746
|
+
var tgtEl = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#' + thisConnect.PageTargetId);
|
|
138747
|
+
if (firstEndpoints[0] !== 0) {
|
|
138748
|
+
// 水平方向:totalDist = 目标锚点X - 源锚点X
|
|
138749
|
+
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)));
|
|
138750
|
+
}
|
|
138751
|
+
if (firstEndpoints[1] !== 0) {
|
|
138752
|
+
// 垂直方向:totalDist = 目标锚点Y - 源锚点Y
|
|
138753
|
+
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)));
|
|
138754
|
+
}
|
|
138755
|
+
}
|
|
138614
138756
|
if (firstEndpoints[0] === -1) {
|
|
138615
138757
|
// 水平射线,左出
|
|
138616
138758
|
distance = -(Math.abs(initialMinX) - (x - _this.dragLineObj.disX));
|
|
138617
|
-
if (distance > -minStub)
|
|
138618
|
-
distance = -minStub;
|
|
138619
|
-
}
|
|
138759
|
+
if (distance > -minStub) distance = -minStub;
|
|
138620
138760
|
thisConnect.pathMinX = distance;
|
|
138621
|
-
|
|
138622
|
-
|
|
138623
|
-
|
|
138624
|
-
|
|
138761
|
+
var r = handle3SegDrag(true, -distance, minStub, isSameNode, isSameSide, totalDistH, thisConnect, initialMinY, initialMaxY);
|
|
138762
|
+
stub = r.stub;
|
|
138763
|
+
_dragMidpoint = r.dragMidpoint;
|
|
138764
|
+
if (r.isOpposite) {
|
|
138765
|
+
distance = r.distance;
|
|
138766
|
+
thisConnect.pathMinX = distance;
|
|
138625
138767
|
thisConnect.pathMaxX = -distance;
|
|
138626
|
-
stub = [-distance, -distance];
|
|
138627
|
-
} else {
|
|
138628
|
-
stub = [-distance, minStub];
|
|
138629
138768
|
}
|
|
138630
138769
|
} else if (firstEndpoints[0] === 1) {
|
|
138631
138770
|
// 水平射线,右出
|
|
138632
138771
|
distance = Math.abs(initialMaxX) + (x - _this.dragLineObj.disX);
|
|
138633
|
-
if (distance < minStub)
|
|
138634
|
-
distance = minStub;
|
|
138635
|
-
}
|
|
138772
|
+
if (distance < minStub) distance = minStub;
|
|
138636
138773
|
thisConnect.pathMaxX = distance;
|
|
138637
|
-
|
|
138638
|
-
|
|
138639
|
-
|
|
138640
|
-
|
|
138774
|
+
var r = handle3SegDrag(false, distance, minStub, isSameNode, isSameSide, totalDistH, thisConnect, initialMinY, initialMaxY);
|
|
138775
|
+
stub = r.stub;
|
|
138776
|
+
_dragMidpoint = r.dragMidpoint;
|
|
138777
|
+
if (r.isOpposite) {
|
|
138778
|
+
distance = r.distance;
|
|
138779
|
+
thisConnect.pathMaxX = distance;
|
|
138641
138780
|
thisConnect.pathMinX = -distance;
|
|
138642
|
-
stub = [distance, distance];
|
|
138643
|
-
} else {
|
|
138644
|
-
stub = [distance, minStub];
|
|
138645
138781
|
}
|
|
138646
138782
|
} else if (firstEndpoints[1] === -1) {
|
|
138647
138783
|
// 垂直射线,上出
|
|
138648
138784
|
distance = -(Math.abs(initialMinY) - (y - _this.dragLineObj.disY));
|
|
138649
|
-
if (distance > -minStub)
|
|
138650
|
-
distance = -minStub;
|
|
138651
|
-
}
|
|
138785
|
+
if (distance > -minStub) distance = -minStub;
|
|
138652
138786
|
thisConnect.pathMinY = distance;
|
|
138653
|
-
|
|
138654
|
-
|
|
138655
|
-
|
|
138656
|
-
|
|
138787
|
+
var r = handle3SegDrag(true, -distance, minStub, isSameNode, isSameSide, totalDistV, thisConnect, initialMinX, initialMaxX);
|
|
138788
|
+
stub = r.stub;
|
|
138789
|
+
_dragMidpoint = r.dragMidpoint;
|
|
138790
|
+
if (r.isOpposite) {
|
|
138791
|
+
distance = r.distance;
|
|
138792
|
+
thisConnect.pathMinY = distance;
|
|
138657
138793
|
thisConnect.pathMaxY = -distance;
|
|
138658
|
-
stub = [-distance, -distance];
|
|
138659
|
-
} else {
|
|
138660
|
-
stub = [-distance, minStub];
|
|
138661
138794
|
}
|
|
138662
138795
|
} else if (firstEndpoints[1] === 1) {
|
|
138663
138796
|
// 垂直射线,下出
|
|
138664
138797
|
distance = Math.abs(initialMaxY) + (y - _this.dragLineObj.disY);
|
|
138665
|
-
if (distance < minStub)
|
|
138666
|
-
distance = minStub;
|
|
138667
|
-
}
|
|
138798
|
+
if (distance < minStub) distance = minStub;
|
|
138668
138799
|
thisConnect.pathMaxY = distance;
|
|
138669
|
-
|
|
138670
|
-
|
|
138671
|
-
|
|
138672
|
-
|
|
138800
|
+
var r = handle3SegDrag(false, distance, minStub, isSameNode, isSameSide, totalDistV, thisConnect, initialMinX, initialMaxX);
|
|
138801
|
+
stub = r.stub;
|
|
138802
|
+
_dragMidpoint = r.dragMidpoint;
|
|
138803
|
+
if (r.isOpposite) {
|
|
138804
|
+
distance = r.distance;
|
|
138805
|
+
thisConnect.pathMaxY = distance;
|
|
138673
138806
|
thisConnect.pathMinY = -distance;
|
|
138674
|
-
stub = [distance, distance];
|
|
138675
|
-
} else {
|
|
138676
|
-
stub = [distance, minStub];
|
|
138677
138807
|
}
|
|
138678
138808
|
}
|
|
138679
138809
|
} else if (lineCount === 4) {
|
|
138810
|
+
var minStub4 = isSameNode ? 30 : 10;
|
|
138811
|
+
var handledIn4 = false;
|
|
138680
138812
|
if (firstEndpoints[0] === -1) {
|
|
138681
138813
|
// 左出
|
|
138682
138814
|
if (Math.abs(canvasMarginTop + canvasTop - _this.dragLineObj.disY) <= 10) {
|
|
138683
138815
|
// 顶部射入,靠近终点上下拖拉
|
|
138684
138816
|
distance = -(Math.abs(initialMinY) - (y - _this.dragLineObj.disY - scrollTop));
|
|
138685
|
-
if (distance > -
|
|
138686
|
-
distance = -
|
|
138817
|
+
if (distance > -minStub4) {
|
|
138818
|
+
distance = -minStub4;
|
|
138687
138819
|
}
|
|
138688
138820
|
thisConnect.pathMinY = distance;
|
|
138821
|
+
handledIn4 = true;
|
|
138689
138822
|
stub = [Math.abs(initialMinX), -distance];
|
|
138690
138823
|
} else if (Math.abs(canvasMarginTop + canvasTop + canvasHeight - _this.dragLineObj.disY - scrollTop) <= 10) {
|
|
138691
138824
|
// 底部射入,靠近终点上下拖拉
|
|
138692
138825
|
distance = Math.abs(initialMaxY) + (y - _this.dragLineObj.disY - scrollTop);
|
|
138693
|
-
if (distance <
|
|
138694
|
-
distance =
|
|
138826
|
+
if (distance < minStub4) {
|
|
138827
|
+
distance = minStub4;
|
|
138695
138828
|
}
|
|
138696
138829
|
thisConnect.pathMaxY = distance;
|
|
138697
138830
|
stub = [Math.abs(initialMinX), distance];
|
|
138698
138831
|
} else if (Math.abs(canvasMarginLeft + canvasLeft - _this.dragLineObj.disX) <= 10) {
|
|
138699
138832
|
// 顶部射入或底部射入,靠近起点左侧左右拖拉
|
|
138700
138833
|
distance = -(Math.abs(initialMinX) - (x - _this.dragLineObj.disX));
|
|
138701
|
-
if (distance > -
|
|
138702
|
-
distance = -
|
|
138834
|
+
if (distance > -minStub4) {
|
|
138835
|
+
distance = -minStub4;
|
|
138703
138836
|
}
|
|
138704
138837
|
thisConnect.pathMinX = distance;
|
|
138705
138838
|
stub = [-distance, Math.abs(secondEndpoints[1] === -1 ? initialMinY : initialMaxY)];
|
|
@@ -138709,26 +138842,29 @@ function dragLine(_this, connection, thisConnect) {
|
|
|
138709
138842
|
if (Math.abs(canvasMarginTop + canvasTop - _this.dragLineObj.disY) <= 10) {
|
|
138710
138843
|
// 顶部射入,靠近终点上下拖拉
|
|
138711
138844
|
distance = -(Math.abs(initialMinY) - (y - _this.dragLineObj.disY - scrollTop));
|
|
138712
|
-
if (distance > -
|
|
138713
|
-
distance = -
|
|
138845
|
+
if (distance > -minStub4) {
|
|
138846
|
+
distance = -minStub4;
|
|
138714
138847
|
}
|
|
138715
138848
|
thisConnect.pathMinY = distance;
|
|
138849
|
+
handledIn4 = true;
|
|
138716
138850
|
stub = [Math.abs(initialMaxX), -distance];
|
|
138717
138851
|
} else if (Math.abs(canvasMarginTop + canvasTop + canvasHeight - _this.dragLineObj.disY - scrollTop) <= 10) {
|
|
138718
138852
|
// 底部射入,靠近终点上下拖拉
|
|
138719
138853
|
distance = Math.abs(initialMaxY) + (y - _this.dragLineObj.disY - scrollTop);
|
|
138720
|
-
if (distance <
|
|
138721
|
-
distance =
|
|
138854
|
+
if (distance < minStub4) {
|
|
138855
|
+
distance = minStub4;
|
|
138722
138856
|
}
|
|
138723
138857
|
thisConnect.pathMaxY = distance;
|
|
138858
|
+
handledIn4 = true;
|
|
138724
138859
|
stub = [Math.abs(initialMaxX), distance];
|
|
138725
138860
|
} else if (Math.abs(canvasMarginLeft + canvasLeft + canvasWidth - _this.dragLineObj.disX) <= 10) {
|
|
138726
138861
|
// 顶部射入或底部射入,靠近起点右侧左右拖拉
|
|
138727
138862
|
distance = Math.abs(initialMaxX) + (x - _this.dragLineObj.disX);
|
|
138728
|
-
if (distance <
|
|
138729
|
-
distance =
|
|
138863
|
+
if (distance < minStub4) {
|
|
138864
|
+
distance = minStub4;
|
|
138730
138865
|
}
|
|
138731
138866
|
thisConnect.pathMaxX = distance;
|
|
138867
|
+
handledIn4 = true;
|
|
138732
138868
|
stub = [distance, Math.abs(secondEndpoints[1] === -1 ? initialMinY : initialMaxY)];
|
|
138733
138869
|
}
|
|
138734
138870
|
} else if (firstEndpoints[1] === 1) {
|
|
@@ -138736,26 +138872,29 @@ function dragLine(_this, connection, thisConnect) {
|
|
|
138736
138872
|
if (Math.abs(canvasMarginTop + canvasTop + canvasHeight - _this.dragLineObj.disY - scrollTop) <= 10) {
|
|
138737
138873
|
// 左侧射入或右侧射入,靠起点底部上下拖拉
|
|
138738
138874
|
distance = Math.abs(initialMaxY) + (y - _this.dragLineObj.disY);
|
|
138739
|
-
if (distance <
|
|
138740
|
-
distance =
|
|
138875
|
+
if (distance < minStub4) {
|
|
138876
|
+
distance = minStub4;
|
|
138741
138877
|
}
|
|
138742
138878
|
thisConnect.pathMaxY = distance;
|
|
138879
|
+
handledIn4 = true;
|
|
138743
138880
|
stub = [distance, Math.abs(secondEndpoints[0] === -1 ? initialMinX : initialMaxX)];
|
|
138744
138881
|
} else if (Math.abs(canvasMarginLeft + canvasLeft - _this.dragLineObj.disX) <= 10) {
|
|
138745
138882
|
// 左侧射入,靠近终点左侧拖左右拉
|
|
138746
138883
|
distance = -(Math.abs(initialMinX) - (x - _this.dragLineObj.disX));
|
|
138747
|
-
if (distance > -
|
|
138748
|
-
distance = -
|
|
138884
|
+
if (distance > -minStub4) {
|
|
138885
|
+
distance = -minStub4;
|
|
138749
138886
|
}
|
|
138750
138887
|
thisConnect.pathMinX = distance;
|
|
138888
|
+
handledIn4 = true;
|
|
138751
138889
|
stub = [Math.abs(initialMaxY), -distance];
|
|
138752
138890
|
} else if (Math.abs(canvasMarginLeft + canvasLeft + canvasWidth - _this.dragLineObj.disX) <= 10) {
|
|
138753
138891
|
// 右侧射入,靠近终点右侧拖左右拉
|
|
138754
138892
|
distance = Math.abs(initialMaxX) + (x - _this.dragLineObj.disX);
|
|
138755
|
-
if (distance <
|
|
138756
|
-
distance =
|
|
138893
|
+
if (distance < minStub4) {
|
|
138894
|
+
distance = minStub4;
|
|
138757
138895
|
}
|
|
138758
138896
|
thisConnect.pathMaxX = distance;
|
|
138897
|
+
handledIn4 = true;
|
|
138759
138898
|
stub = [Math.abs(initialMaxY), distance];
|
|
138760
138899
|
}
|
|
138761
138900
|
} else if (firstEndpoints[1] === -1) {
|
|
@@ -138763,30 +138902,65 @@ function dragLine(_this, connection, thisConnect) {
|
|
|
138763
138902
|
if (Math.abs(canvasMarginTop + canvasTop - _this.dragLineObj.disY) <= 10) {
|
|
138764
138903
|
// 左侧射入或右侧射入,靠起点顶部上下拖拉
|
|
138765
138904
|
distance = -(Math.abs(initialMinY) - (y - _this.dragLineObj.disY));
|
|
138766
|
-
if (distance > -
|
|
138767
|
-
distance = -
|
|
138905
|
+
if (distance > -minStub4) {
|
|
138906
|
+
distance = -minStub4;
|
|
138768
138907
|
}
|
|
138769
138908
|
thisConnect.pathMinY = distance;
|
|
138770
138909
|
stub = [-distance, Math.abs(secondEndpoints[0] === -1 ? initialMinX : initialMaxX)];
|
|
138771
138910
|
} else if (Math.abs(canvasMarginLeft + canvasLeft - _this.dragLineObj.disX) <= 10) {
|
|
138772
138911
|
// 左侧射入,靠近终点左侧拖左右拉
|
|
138773
138912
|
distance = -(Math.abs(initialMinX) - (x - _this.dragLineObj.disX));
|
|
138774
|
-
if (distance > -
|
|
138775
|
-
distance = -
|
|
138913
|
+
if (distance > -minStub4) {
|
|
138914
|
+
distance = -minStub4;
|
|
138776
138915
|
}
|
|
138777
138916
|
thisConnect.pathMinX = distance;
|
|
138917
|
+
handledIn4 = true;
|
|
138778
138918
|
stub = [Math.abs(initialMinY), -distance];
|
|
138779
138919
|
} else if (Math.abs(canvasMarginLeft + canvasLeft + canvasWidth - _this.dragLineObj.disX) <= 10) {
|
|
138780
138920
|
// 右侧射入,靠近终点右侧拖左右拉
|
|
138781
138921
|
distance = Math.abs(initialMaxX) + (x - _this.dragLineObj.disX);
|
|
138782
|
-
if (distance <
|
|
138783
|
-
distance =
|
|
138922
|
+
if (distance < minStub4) {
|
|
138923
|
+
distance = minStub4;
|
|
138784
138924
|
}
|
|
138785
138925
|
thisConnect.pathMaxX = distance;
|
|
138926
|
+
handledIn4 = true;
|
|
138786
138927
|
stub = [Math.abs(initialMinY), distance];
|
|
138787
138928
|
}
|
|
138788
138929
|
}
|
|
138930
|
+
// 跨轴自环线边检测不匹配时,直接用鼠标delta计算两轴stub
|
|
138931
|
+
// 注:firstEndpoints为2元素orientation数组[dx,dy],仅索引[0]/[1]有效
|
|
138932
|
+
if (isSameNode && !handledIn4) {
|
|
138933
|
+
var dx2 = x - _this.dragLineObj.disX;
|
|
138934
|
+
var dy2 = y - _this.dragLineObj.disY;
|
|
138935
|
+
var curH = firstEndpoints[0] !== 0 ? Math.max(Math.abs(firstEndpoints[0] === -1 ? initialMinX : initialMaxX) - 5, minStub4) : minStub4;
|
|
138936
|
+
var curV = firstEndpoints[1] !== 0 ? Math.max(Math.abs(firstEndpoints[1] === -1 ? initialMinY : initialMaxY) - 5, minStub4) : minStub4;
|
|
138937
|
+
var newH = curH,
|
|
138938
|
+
newV = curV;
|
|
138939
|
+
if (Math.abs(dx2) >= Math.abs(dy2)) {
|
|
138940
|
+
newH = dx2 < 0 ? curH + Math.abs(dx2) : Math.max(curH - dx2, minStub4);
|
|
138941
|
+
} else {
|
|
138942
|
+
newV = dy2 < 0 ? curV + Math.abs(dy2) : Math.max(curV - dy2, minStub4);
|
|
138943
|
+
}
|
|
138944
|
+
var srcV = firstEndpoints[0] === 0;
|
|
138945
|
+
stub = srcV ? [Math.max(newV, minStub4), Math.max(newH, minStub4)] : [Math.max(newH, minStub4), Math.max(newV, minStub4)];
|
|
138946
|
+
// path存储使用有效索引[0]/[1]判断锚点方向
|
|
138947
|
+
if (firstEndpoints[0] === -1 || secondEndpoints[0] === -1) {
|
|
138948
|
+
thisConnect.pathMinX = -Math.max(newH, minStub4);
|
|
138949
|
+
thisConnect.pathMaxX = -Math.max(newH, minStub4);
|
|
138950
|
+
} else if (firstEndpoints[0] === 1 || secondEndpoints[0] === 1) {
|
|
138951
|
+
thisConnect.pathMinX = Math.max(newH, minStub4);
|
|
138952
|
+
thisConnect.pathMaxX = Math.max(newH, minStub4);
|
|
138953
|
+
}
|
|
138954
|
+
if (firstEndpoints[1] === -1 || secondEndpoints[1] === -1) {
|
|
138955
|
+
thisConnect.pathMinY = -Math.max(newV, minStub4);
|
|
138956
|
+
thisConnect.pathMaxY = -Math.max(newV, minStub4);
|
|
138957
|
+
} else if (firstEndpoints[1] === 1 || secondEndpoints[1] === 1) {
|
|
138958
|
+
thisConnect.pathMinY = Math.max(newV, minStub4);
|
|
138959
|
+
thisConnect.pathMaxY = Math.max(newV, minStub4);
|
|
138960
|
+
}
|
|
138961
|
+
}
|
|
138789
138962
|
} else if (lineCount === 5) {
|
|
138963
|
+
var minStub5 = isSameNode ? 30 : 10;
|
|
138790
138964
|
if (firstEndpoints[0] !== 0) {
|
|
138791
138965
|
// 水平射线,左右拖拉
|
|
138792
138966
|
var hSameSide = firstEndpoints[0] === secondEndpoints[0];
|
|
@@ -138796,27 +138970,29 @@ function dragLine(_this, connection, thisConnect) {
|
|
|
138796
138970
|
if (firstEndpoints[0] === -1) {
|
|
138797
138971
|
// 水平射线,左出右入,靠近起点左侧拖拉
|
|
138798
138972
|
distance = -(Math.abs(initialMinX) - (x - _this.dragLineObj.disX));
|
|
138799
|
-
if (distance > -
|
|
138800
|
-
distance = -
|
|
138973
|
+
if (distance > -minStub5) {
|
|
138974
|
+
distance = -minStub5;
|
|
138801
138975
|
}
|
|
138802
138976
|
thisConnect.pathMinX = distance;
|
|
138803
138977
|
if (!hSameSide) {
|
|
138804
138978
|
thisConnect.pathMaxX = -distance;
|
|
138805
138979
|
stub = [-distance, -distance];
|
|
138806
138980
|
} else {
|
|
138981
|
+
handledIn4 = true;
|
|
138807
138982
|
stub = [-distance, Math.abs(initialMaxX)];
|
|
138808
138983
|
}
|
|
138809
138984
|
} else if (firstEndpoints[0] === 1) {
|
|
138810
138985
|
// 水平射线,右出左入,靠近终点左侧拖拉
|
|
138811
138986
|
distance = -(Math.abs(initialMinX) - (x - _this.dragLineObj.disX));
|
|
138812
|
-
if (distance > -
|
|
138813
|
-
distance = -
|
|
138987
|
+
if (distance > -minStub5) {
|
|
138988
|
+
distance = -minStub5;
|
|
138814
138989
|
}
|
|
138815
138990
|
thisConnect.pathMinX = distance;
|
|
138816
138991
|
if (!hSameSide) {
|
|
138817
138992
|
thisConnect.pathMaxX = -distance;
|
|
138818
138993
|
stub = [-distance, -distance];
|
|
138819
138994
|
} else {
|
|
138995
|
+
handledIn4 = true;
|
|
138820
138996
|
stub = [Math.abs(initialMaxX), -distance];
|
|
138821
138997
|
}
|
|
138822
138998
|
}
|
|
@@ -138826,8 +139002,8 @@ function dragLine(_this, connection, thisConnect) {
|
|
|
138826
139002
|
if (firstEndpoints[0] === -1) {
|
|
138827
139003
|
// 水平射线,左出右入,靠近终点右侧拖拉
|
|
138828
139004
|
distance = Math.abs(initialMaxX) + (x - _this.dragLineObj.disX);
|
|
138829
|
-
if (distance <
|
|
138830
|
-
distance =
|
|
139005
|
+
if (distance < minStub5) {
|
|
139006
|
+
distance = minStub5;
|
|
138831
139007
|
}
|
|
138832
139008
|
thisConnect.pathMaxX = distance;
|
|
138833
139009
|
if (!hSameSide) {
|
|
@@ -138839,8 +139015,8 @@ function dragLine(_this, connection, thisConnect) {
|
|
|
138839
139015
|
} else if (firstEndpoints[0] === 1) {
|
|
138840
139016
|
// 水平射线,右出左入,靠近起点右侧拖拉
|
|
138841
139017
|
distance = Math.abs(initialMaxX) + (x - _this.dragLineObj.disX);
|
|
138842
|
-
if (distance <
|
|
138843
|
-
distance =
|
|
139018
|
+
if (distance < minStub5) {
|
|
139019
|
+
distance = minStub5;
|
|
138844
139020
|
}
|
|
138845
139021
|
thisConnect.pathMaxX = distance;
|
|
138846
139022
|
if (!hSameSide) {
|
|
@@ -138860,27 +139036,29 @@ function dragLine(_this, connection, thisConnect) {
|
|
|
138860
139036
|
if (firstEndpoints[1] === -1) {
|
|
138861
139037
|
// 垂直射线,上出下入,靠近起点上下拖拉
|
|
138862
139038
|
distance = -(Math.abs(initialMinY) - (y - _this.dragLineObj.disY));
|
|
138863
|
-
if (distance > -
|
|
138864
|
-
distance = -
|
|
139039
|
+
if (distance > -minStub5) {
|
|
139040
|
+
distance = -minStub5;
|
|
138865
139041
|
}
|
|
138866
139042
|
thisConnect.pathMinY = distance;
|
|
138867
139043
|
if (!vSameSide) {
|
|
138868
139044
|
thisConnect.pathMaxY = -distance;
|
|
138869
139045
|
stub = [-distance, -distance];
|
|
138870
139046
|
} else {
|
|
139047
|
+
handledIn4 = true;
|
|
138871
139048
|
stub = [-distance, Math.abs(initialMaxY)];
|
|
138872
139049
|
}
|
|
138873
139050
|
} else if (firstEndpoints[1] === 1) {
|
|
138874
139051
|
// 垂直射线,下出上入,靠近终点上下拖拉
|
|
138875
139052
|
distance = -(Math.abs(initialMaxY) - (y - _this.dragLineObj.disY));
|
|
138876
|
-
if (distance > -
|
|
138877
|
-
distance = -
|
|
139053
|
+
if (distance > -minStub5) {
|
|
139054
|
+
distance = -minStub5;
|
|
138878
139055
|
}
|
|
138879
139056
|
thisConnect.pathMinY = distance;
|
|
138880
139057
|
if (!vSameSide) {
|
|
138881
139058
|
thisConnect.pathMaxY = -distance;
|
|
138882
139059
|
stub = [-distance, -distance];
|
|
138883
139060
|
} else {
|
|
139061
|
+
handledIn4 = true;
|
|
138884
139062
|
stub = [Math.abs(initialMaxY), -distance];
|
|
138885
139063
|
}
|
|
138886
139064
|
}
|
|
@@ -138890,21 +139068,22 @@ function dragLine(_this, connection, thisConnect) {
|
|
|
138890
139068
|
if (firstEndpoints[1] === -1) {
|
|
138891
139069
|
// 垂直射线,上出下入,靠近终点上下拖拉
|
|
138892
139070
|
distance = Math.abs(initialMaxY) + (y - _this.dragLineObj.disY);
|
|
138893
|
-
if (distance <
|
|
138894
|
-
distance =
|
|
139071
|
+
if (distance < minStub5) {
|
|
139072
|
+
distance = minStub5;
|
|
138895
139073
|
}
|
|
138896
139074
|
thisConnect.pathMaxY = distance;
|
|
138897
139075
|
if (!vSameSide) {
|
|
138898
139076
|
thisConnect.pathMinY = -distance;
|
|
138899
139077
|
stub = [distance, distance];
|
|
138900
139078
|
} else {
|
|
139079
|
+
handledIn4 = true;
|
|
138901
139080
|
stub = [Math.abs(initialMinY), distance];
|
|
138902
139081
|
}
|
|
138903
139082
|
} else if (firstEndpoints[1] === 1) {
|
|
138904
139083
|
// 垂直射线,下出下入,靠起点上下拖拉
|
|
138905
139084
|
distance = Math.abs(initialMaxY) + (y - _this.dragLineObj.disY);
|
|
138906
|
-
if (distance <
|
|
138907
|
-
distance =
|
|
139085
|
+
if (distance < minStub5) {
|
|
139086
|
+
distance = minStub5;
|
|
138908
139087
|
}
|
|
138909
139088
|
thisConnect.pathMaxY = distance;
|
|
138910
139089
|
if (!vSameSide) {
|
|
@@ -138916,37 +139095,215 @@ function dragLine(_this, connection, thisConnect) {
|
|
|
138916
139095
|
}
|
|
138917
139096
|
}
|
|
138918
139097
|
}
|
|
139098
|
+
} else {
|
|
139099
|
+
// lineCount >= 6(跨轴自环线等4段线以上),按轴独立拖拽,水平/垂直互不影响
|
|
139100
|
+
// 注:firstEndpoints为2元素orientation数组[dx,dy],仅索引[0]/[1]有效
|
|
139101
|
+
if (isSameNode) {
|
|
139102
|
+
var minStub6 = 30;
|
|
139103
|
+
var dx1 = x - _this.dragLineObj.disX;
|
|
139104
|
+
var dy1 = y - _this.dragLineObj.disY;
|
|
139105
|
+
// 从thisConnect取已存储的stub(无+5偏移);首次拖拽则按锚点方向选正确initial值扣除gap偏移
|
|
139106
|
+
var curHs = Math.abs(thisConnect.pathMinX) || Math.abs(thisConnect.pathMaxX);
|
|
139107
|
+
var curVs = Math.abs(thisConnect.pathMinY) || Math.abs(thisConnect.pathMaxY);
|
|
139108
|
+
if (!curHs) {
|
|
139109
|
+
curHs = firstEndpoints[0] !== 0 ? Math.max(Math.abs(firstEndpoints[0] === -1 ? initialMinX : initialMaxX) - 5, minStub6) : minStub6;
|
|
139110
|
+
}
|
|
139111
|
+
if (!curVs) {
|
|
139112
|
+
curVs = firstEndpoints[1] !== 0 ? Math.max(Math.abs(firstEndpoints[1] === -1 ? initialMinY : initialMaxY) - 5, minStub6) : minStub6;
|
|
139113
|
+
}
|
|
139114
|
+
if (Math.abs(dx1) >= Math.abs(dy1)) {
|
|
139115
|
+
// 水平拖拽:只更新水平stub,垂直保持curVs不变
|
|
139116
|
+
var s = curHs;
|
|
139117
|
+
if (dx1 < 0) {
|
|
139118
|
+
s = curHs + Math.abs(dx1);
|
|
139119
|
+
} else {
|
|
139120
|
+
s = Math.max(curHs - dx1, minStub6);
|
|
139121
|
+
}
|
|
139122
|
+
if (firstEndpoints[0] === -1) {
|
|
139123
|
+
thisConnect.pathMinX = -s;
|
|
139124
|
+
thisConnect.pathMaxX = -s;
|
|
139125
|
+
} else if (firstEndpoints[0] === 1) {
|
|
139126
|
+
thisConnect.pathMinX = s;
|
|
139127
|
+
thisConnect.pathMaxX = s;
|
|
139128
|
+
}
|
|
139129
|
+
// 首次拖拽时初始化垂直方向存储
|
|
139130
|
+
if (!thisConnect.pathMinY && !thisConnect.pathMaxY) {
|
|
139131
|
+
var vdir = secondEndpoints[1] || firstEndpoints[1];
|
|
139132
|
+
if (vdir === -1) {
|
|
139133
|
+
thisConnect.pathMinY = -curVs;
|
|
139134
|
+
thisConnect.pathMaxY = -curVs;
|
|
139135
|
+
} else {
|
|
139136
|
+
thisConnect.pathMinY = curVs;
|
|
139137
|
+
thisConnect.pathMaxY = curVs;
|
|
139138
|
+
}
|
|
139139
|
+
}
|
|
139140
|
+
stub = [Math.max(s, minStub6), Math.max(curVs, minStub6)];
|
|
139141
|
+
} else {
|
|
139142
|
+
// 垂直拖拽:只更新垂直stub,水平保持curHs不变
|
|
139143
|
+
var s = curVs;
|
|
139144
|
+
if (dy1 < 0) {
|
|
139145
|
+
s = curVs + Math.abs(dy1);
|
|
139146
|
+
} else {
|
|
139147
|
+
s = Math.max(curVs - dy1, minStub6);
|
|
139148
|
+
}
|
|
139149
|
+
if (firstEndpoints[1] === -1) {
|
|
139150
|
+
thisConnect.pathMinY = -s;
|
|
139151
|
+
thisConnect.pathMaxY = -s;
|
|
139152
|
+
} else if (firstEndpoints[1] === 1) {
|
|
139153
|
+
thisConnect.pathMinY = s;
|
|
139154
|
+
thisConnect.pathMaxY = s;
|
|
139155
|
+
}
|
|
139156
|
+
// 首次拖拽时初始化水平方向存储
|
|
139157
|
+
if (!thisConnect.pathMinX && !thisConnect.pathMaxX) {
|
|
139158
|
+
var hdir = secondEndpoints[0] || firstEndpoints[0];
|
|
139159
|
+
if (hdir === -1) {
|
|
139160
|
+
thisConnect.pathMinX = -curHs;
|
|
139161
|
+
thisConnect.pathMaxX = -curHs;
|
|
139162
|
+
} else {
|
|
139163
|
+
thisConnect.pathMinX = curHs;
|
|
139164
|
+
thisConnect.pathMaxX = curHs;
|
|
139165
|
+
}
|
|
139166
|
+
}
|
|
139167
|
+
stub = [Math.max(curHs, minStub6), Math.max(s, minStub6)];
|
|
139168
|
+
}
|
|
139169
|
+
}
|
|
139170
|
+
}
|
|
139171
|
+
// 跨轴自环线(lineCount === 4 或 >= 6):用thisConnect存储值修正非拖拽轴stub
|
|
139172
|
+
// 避免lineCount === 4块中Math.abs(initialMaxX)取到画布边界而非真实stub
|
|
139173
|
+
// 注:firstEndpoints为2元素orientation数组,仅索引[0]/[1]有效
|
|
139174
|
+
if (isSameNode && !(hSameSide || vSameSide)) {
|
|
139175
|
+
var hasHAnchor = firstEndpoints[0] !== 0 || secondEndpoints[0] !== 0;
|
|
139176
|
+
var hasVAnchor = firstEndpoints[1] !== 0 || secondEndpoints[1] !== 0;
|
|
139177
|
+
if (hasHAnchor && hasVAnchor) {
|
|
139178
|
+
// Determine which axis was dragged by checking which path value was updated
|
|
139179
|
+
var srcDragged = thisConnect.pathMinX !== undefined && thisConnect.pathMinX !== 0 || thisConnect.pathMaxX !== undefined && thisConnect.pathMaxX !== 0;
|
|
139180
|
+
var srcWasV = firstEndpoints[0] === 0;
|
|
139181
|
+
if (srcDragged) {
|
|
139182
|
+
// Horizontal was dragged → fix vertical stub
|
|
139183
|
+
var vs = Math.abs(thisConnect.pathMinY) || Math.abs(thisConnect.pathMaxY);
|
|
139184
|
+
if (!vs) {
|
|
139185
|
+
if (firstEndpoints[1] === -1 || secondEndpoints[1] === -1) {
|
|
139186
|
+
vs = Math.max(Math.abs(initialMinY) - 5, minStub4 || minStub5 || 30);
|
|
139187
|
+
} else if (firstEndpoints[1] === 1 || secondEndpoints[1] === 1) {
|
|
139188
|
+
vs = Math.max(Math.abs(initialMaxY) - 5, minStub4 || minStub5 || 30);
|
|
139189
|
+
} else {
|
|
139190
|
+
vs = minStub4 || minStub5 || 30;
|
|
139191
|
+
}
|
|
139192
|
+
}
|
|
139193
|
+
stub[srcWasV ? 0 : 1] = Math.max(vs, minStub4 || minStub5 || 30);
|
|
139194
|
+
// 存储修正后的值到thisConnect,防止下个session re-extract画布值
|
|
139195
|
+
var fixedVs = Math.max(vs, minStub4 || minStub5 || 30);
|
|
139196
|
+
if (firstEndpoints[1] === -1 || secondEndpoints[1] === -1) {
|
|
139197
|
+
thisConnect.pathMinY = -fixedVs;
|
|
139198
|
+
thisConnect.pathMaxY = -fixedVs;
|
|
139199
|
+
} else if (firstEndpoints[1] === 1 || secondEndpoints[1] === 1) {
|
|
139200
|
+
thisConnect.pathMinY = fixedVs;
|
|
139201
|
+
thisConnect.pathMaxY = fixedVs;
|
|
139202
|
+
}
|
|
139203
|
+
} else {
|
|
139204
|
+
// Vertical was dragged → fix horizontal stub
|
|
139205
|
+
var hs = Math.abs(thisConnect.pathMinX) || Math.abs(thisConnect.pathMaxX);
|
|
139206
|
+
if (!hs) {
|
|
139207
|
+
if (firstEndpoints[0] === -1 || secondEndpoints[0] === -1) {
|
|
139208
|
+
hs = Math.max(Math.abs(initialMinX) - 5, minStub4 || minStub5 || 30);
|
|
139209
|
+
} else if (firstEndpoints[0] === 1 || secondEndpoints[0] === 1) {
|
|
139210
|
+
hs = Math.max(Math.abs(initialMaxX) - 5, minStub4 || minStub5 || 30);
|
|
139211
|
+
} else {
|
|
139212
|
+
hs = minStub4 || minStub5 || 30;
|
|
139213
|
+
}
|
|
139214
|
+
}
|
|
139215
|
+
stub[srcWasV ? 1 : 0] = Math.max(hs, minStub4 || minStub5 || 30);
|
|
139216
|
+
// 存储修正后的值到thisConnect
|
|
139217
|
+
var fixedHs = Math.max(hs, minStub4 || minStub5 || 30);
|
|
139218
|
+
if (firstEndpoints[0] === -1 || secondEndpoints[0] === -1) {
|
|
139219
|
+
thisConnect.pathMinX = -fixedHs;
|
|
139220
|
+
thisConnect.pathMaxX = -fixedHs;
|
|
139221
|
+
} else if (firstEndpoints[0] === 1 || secondEndpoints[0] === 1) {
|
|
139222
|
+
thisConnect.pathMinX = fixedHs;
|
|
139223
|
+
thisConnect.pathMaxX = fixedHs;
|
|
139224
|
+
}
|
|
139225
|
+
}
|
|
139226
|
+
}
|
|
138919
139227
|
}
|
|
138920
|
-
//
|
|
138921
|
-
|
|
138922
|
-
|
|
138923
|
-
if (firstEndpoints[0] !== 0
|
|
138924
|
-
//
|
|
138925
|
-
|
|
138926
|
-
|
|
138927
|
-
|
|
138928
|
-
|
|
138929
|
-
|
|
138930
|
-
|
|
139228
|
+
// 自环线同侧连接:用拖拽端的值同时赋给两端,保持stub对称
|
|
139229
|
+
if (isSameNode && (hSameSide || vSameSide)) {
|
|
139230
|
+
var activeStub;
|
|
139231
|
+
if (firstEndpoints[0] !== 0) {
|
|
139232
|
+
// 水平锚点
|
|
139233
|
+
if (Math.abs(canvasMarginLeft + canvasLeft - _this.dragLineObj.disX) <= 10) {
|
|
139234
|
+
activeStub = Math.abs(stub[0]); // 拖拽左侧边
|
|
139235
|
+
} else {
|
|
139236
|
+
activeStub = Math.abs(stub[1]); // 拖拽右侧边
|
|
139237
|
+
}
|
|
139238
|
+
stub = [activeStub, activeStub];
|
|
139239
|
+
if (firstEndpoints[0] === -1) {
|
|
139240
|
+
thisConnect.pathMinX = -activeStub;
|
|
139241
|
+
thisConnect.pathMaxX = -activeStub;
|
|
139242
|
+
} else {
|
|
139243
|
+
thisConnect.pathMinX = activeStub;
|
|
139244
|
+
thisConnect.pathMaxX = activeStub;
|
|
139245
|
+
}
|
|
139246
|
+
} else {
|
|
139247
|
+
// 垂直锚点
|
|
139248
|
+
if (Math.abs(canvasMarginTop + canvasTop - _this.dragLineObj.disY - scrollTop) <= 10) {
|
|
139249
|
+
activeStub = Math.abs(stub[0]); // 拖拽顶部边
|
|
139250
|
+
} else {
|
|
139251
|
+
activeStub = Math.abs(stub[1]); // 拖拽底部边
|
|
139252
|
+
}
|
|
139253
|
+
stub = [activeStub, activeStub];
|
|
139254
|
+
if (firstEndpoints[1] === -1) {
|
|
139255
|
+
thisConnect.pathMinY = -activeStub;
|
|
139256
|
+
thisConnect.pathMaxY = -activeStub;
|
|
139257
|
+
} else {
|
|
139258
|
+
thisConnect.pathMinY = activeStub;
|
|
139259
|
+
thisConnect.pathMaxY = activeStub;
|
|
139260
|
+
}
|
|
138931
139261
|
}
|
|
138932
139262
|
}
|
|
139263
|
+
// 垂直锚点组合2段线:源端延伸全距离,目标端不延伸(自环连接除外)
|
|
139264
|
+
var respectStubs = false;
|
|
139265
|
+
if (isSameNode) {
|
|
139266
|
+
// 自环连接始终严格保持stub值,与createPathLine创建行为一致
|
|
139267
|
+
// 跨轴自环线(lineCount不匹配3/4/5分支时stub为[0,0]),使用初始路径值兜底
|
|
139268
|
+
if (stub[0] === 0 && stub[1] === 0) {
|
|
139269
|
+
var s0 = Math.abs(initialMinX) || Math.abs(initialMaxX) || 50;
|
|
139270
|
+
var s1 = Math.abs(initialMinY) || Math.abs(initialMaxY) || 50;
|
|
139271
|
+
stub = [Math.max(s0, 30), Math.max(s1, 30)];
|
|
139272
|
+
}
|
|
139273
|
+
respectStubs = true;
|
|
139274
|
+
} else if (firstEndpoints[0] !== 0 && secondEndpoints[1] !== 0) {
|
|
139275
|
+
// 水平出 + 垂直入(如左出上入、右出下入)
|
|
139276
|
+
stub = [Math.abs(initialMaxX), 0];
|
|
139277
|
+
respectStubs = true;
|
|
139278
|
+
} else if (firstEndpoints[1] !== 0 && secondEndpoints[0] !== 0) {
|
|
139279
|
+
// 垂直出 + 水平入(如上出左入、下出右入)
|
|
139280
|
+
stub = [Math.abs(initialMaxY), 0];
|
|
139281
|
+
respectStubs = true;
|
|
139282
|
+
} else if (firstEndpoints[0] !== 0 && secondEndpoints[0] !== 0) {
|
|
139283
|
+
// 水平出 + 水平入(同轴异向,如右出左入):使用midpoint控制折线,不用alwaysRespectStubs
|
|
139284
|
+
respectStubs = false;
|
|
139285
|
+
} else if (firstEndpoints[1] !== 0 && secondEndpoints[1] !== 0) {
|
|
139286
|
+
// 垂直出 + 垂直入(同轴异向,如下出上入):使用midpoint控制折线,不用alwaysRespectStubs
|
|
139287
|
+
respectStubs = false;
|
|
139288
|
+
}
|
|
139289
|
+
var mp = isSameAxisDiffDir ? _dragMidpoint : respectStubs ? isSameNode ? 0.5 : 0 : 0.5;
|
|
138933
139290
|
connection.setConnector(['Flowchart', {
|
|
138934
139291
|
stub: stub,
|
|
138935
139292
|
gap: 5,
|
|
138936
139293
|
cornerRadius: 5,
|
|
138937
139294
|
alwaysRespectStubs: respectStubs,
|
|
138938
|
-
midpoint:
|
|
138939
|
-
}]);
|
|
138940
|
-
connection.addOverlay(['Arrow', {
|
|
138941
|
-
width: 10,
|
|
138942
|
-
length: 10,
|
|
138943
|
-
location: 1
|
|
139295
|
+
midpoint: mp
|
|
138944
139296
|
}]);
|
|
138945
139297
|
});
|
|
138946
139298
|
|
|
138947
139299
|
// 鼠标释放
|
|
138948
139300
|
jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).bind('mouseup', function (ev) {
|
|
138949
139301
|
setMoveCursor(false);
|
|
139302
|
+
connection.addOverlay(['Arrow', {
|
|
139303
|
+
width: 10,
|
|
139304
|
+
length: 10,
|
|
139305
|
+
location: 1
|
|
139306
|
+
}]);
|
|
138950
139307
|
jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).unbind('mousedown');
|
|
138951
139308
|
jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).unbind('mousemove');
|
|
138952
139309
|
jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).unbind('mouseup');
|
|
@@ -139327,6 +139684,30 @@ function createConnect(conn, connector, anchors) {
|
|
|
139327
139684
|
}
|
|
139328
139685
|
return a;
|
|
139329
139686
|
}
|
|
139687
|
+
|
|
139688
|
+
// ========== 辅助函数:同侧stub提取 ==========
|
|
139689
|
+
// 处理4种同轴同向组合(左左、右右、上上、下下),返回stub数组或null
|
|
139690
|
+
function computeSameSideStub(anchors, pathMinX, pathMaxX, pathMinY, pathMaxY) {
|
|
139691
|
+
if (anchors[0][2] === -1 && anchors[1][2] === -1) {
|
|
139692
|
+
var s0 = Math.abs(pathMinX) || 50;
|
|
139693
|
+
var s1 = Math.abs(pathMaxX) || 50;
|
|
139694
|
+
return [Math.max(s0, 30), Math.max(s1, 30)];
|
|
139695
|
+
} else if (anchors[0][2] === 1 && anchors[1][2] === 1) {
|
|
139696
|
+
var s0 = Math.abs(pathMaxX) || 50;
|
|
139697
|
+
var s1 = Math.abs(pathMinX) || 50;
|
|
139698
|
+
return [Math.max(s0, 30), Math.max(s1, 30)];
|
|
139699
|
+
} else if (anchors[0][3] === -1 && anchors[1][3] === -1) {
|
|
139700
|
+
var s0 = Math.abs(pathMinY) || 50;
|
|
139701
|
+
var s1 = Math.abs(pathMaxY) || 50;
|
|
139702
|
+
return [Math.max(s0, 30), Math.max(s1, 30)];
|
|
139703
|
+
} else if (anchors[0][3] === 1 && anchors[1][3] === 1) {
|
|
139704
|
+
// 下出上入:pathMinY=源端stub,pathMaxY=目标端stub
|
|
139705
|
+
var s0 = Math.abs(pathMinY) || 50;
|
|
139706
|
+
var s1 = Math.abs(pathMaxY) || 50;
|
|
139707
|
+
return [Math.max(s0, 30), Math.max(s1, 30)];
|
|
139708
|
+
}
|
|
139709
|
+
return null;
|
|
139710
|
+
}
|
|
139330
139711
|
function createPathLine(connectsArr) {
|
|
139331
139712
|
for (var j = 0; j < connectsArr.length; j++) {
|
|
139332
139713
|
// console.log(connectsArr[j].label, JSON.stringify(connectsArr[j]), connectsArr[j])
|
|
@@ -139350,22 +139731,18 @@ function createPathLine(connectsArr) {
|
|
|
139350
139731
|
// 自环连接:minStub=50,必须在isDiffAxis之前判断(自环可能跨轴)
|
|
139351
139732
|
stub = [50, 50];
|
|
139352
139733
|
if (connectsArr[j].linesCount && connectsArr[j].linesCount >= 3) {
|
|
139353
|
-
|
|
139354
|
-
|
|
139355
|
-
|
|
139356
|
-
|
|
139357
|
-
|
|
139358
|
-
var
|
|
139359
|
-
var
|
|
139360
|
-
|
|
139361
|
-
|
|
139362
|
-
var
|
|
139363
|
-
var
|
|
139364
|
-
stub = [Math.max(
|
|
139365
|
-
} else if (anchors[0][3] === 1 && anchors[1][3] === 1) {
|
|
139366
|
-
var s0 = Math.abs(connectsArr[j].pathMaxY) || 50;
|
|
139367
|
-
var s1 = Math.abs(connectsArr[j].pathMinY) || 50;
|
|
139368
|
-
stub = [Math.max(s0, 50), Math.max(s1, 50)];
|
|
139734
|
+
var sameStub = computeSameSideStub(anchors, connectsArr[j].pathMinX, connectsArr[j].pathMaxX, connectsArr[j].pathMinY, connectsArr[j].pathMaxY);
|
|
139735
|
+
if (sameStub) {
|
|
139736
|
+
stub = sameStub;
|
|
139737
|
+
} else {
|
|
139738
|
+
// 跨轴自环线(如左出上入):取各轴有效path值,minStub=50
|
|
139739
|
+
var absMinX = Math.abs(connectsArr[j].pathMinX) || 0;
|
|
139740
|
+
var absMaxX = Math.abs(connectsArr[j].pathMaxX) || 0;
|
|
139741
|
+
var absMinY = Math.abs(connectsArr[j].pathMinY) || 0;
|
|
139742
|
+
var absMaxY = Math.abs(connectsArr[j].pathMaxY) || 0;
|
|
139743
|
+
var hs = Math.max(absMinX, absMaxX, 30);
|
|
139744
|
+
var vs = Math.max(absMinY, absMaxY, 30);
|
|
139745
|
+
stub = [Math.max(hs, 30), Math.max(vs, 30)];
|
|
139369
139746
|
}
|
|
139370
139747
|
}
|
|
139371
139748
|
alwaysRespectStubs = true;
|
|
@@ -139380,67 +139757,46 @@ function createPathLine(connectsArr) {
|
|
|
139380
139757
|
// 同侧锚点(不含自环):使用保存的path值,minStub=50保证U型结构
|
|
139381
139758
|
stub = [50, 50];
|
|
139382
139759
|
if (connectsArr[j].linesCount && connectsArr[j].linesCount >= 3) {
|
|
139383
|
-
|
|
139384
|
-
|
|
139385
|
-
var s1 = Math.abs(connectsArr[j].pathMaxX) || 50;
|
|
139386
|
-
stub = [Math.max(s0, 50), Math.max(s1, 50)];
|
|
139387
|
-
} else if (anchors[0][2] === 1 && anchors[1][2] === 1) {
|
|
139388
|
-
var s0 = Math.abs(connectsArr[j].pathMaxX) || 50;
|
|
139389
|
-
var s1 = Math.abs(connectsArr[j].pathMinX) || 50;
|
|
139390
|
-
stub = [Math.max(s0, 50), Math.max(s1, 50)];
|
|
139391
|
-
} else if (anchors[0][3] === -1 && anchors[1][3] === -1) {
|
|
139392
|
-
var s0 = Math.abs(connectsArr[j].pathMinY) || 50;
|
|
139393
|
-
var s1 = Math.abs(connectsArr[j].pathMaxY) || 50;
|
|
139394
|
-
stub = [Math.max(s0, 50), Math.max(s1, 50)];
|
|
139395
|
-
} else if (anchors[0][3] === 1 && anchors[1][3] === 1) {
|
|
139396
|
-
var s0 = Math.abs(connectsArr[j].pathMaxY) || 50;
|
|
139397
|
-
var s1 = Math.abs(connectsArr[j].pathMinY) || 50;
|
|
139398
|
-
stub = [Math.max(s0, 50), Math.max(s1, 50)];
|
|
139399
|
-
}
|
|
139760
|
+
var sameStub = computeSameSideStub(anchors, connectsArr[j].pathMinX, connectsArr[j].pathMaxX, connectsArr[j].pathMinY, connectsArr[j].pathMaxY);
|
|
139761
|
+
if (sameStub) stub = sameStub;
|
|
139400
139762
|
}
|
|
139401
139763
|
} else if (isSameAxisDiffDir) {
|
|
139402
|
-
//
|
|
139403
|
-
|
|
139404
|
-
|
|
139405
|
-
|
|
139406
|
-
|
|
139407
|
-
|
|
139408
|
-
|
|
139409
|
-
|
|
139410
|
-
|
|
139411
|
-
|
|
139412
|
-
|
|
139413
|
-
|
|
139414
|
-
if (
|
|
139415
|
-
|
|
139416
|
-
var
|
|
139417
|
-
var
|
|
139418
|
-
var
|
|
139419
|
-
|
|
139420
|
-
var
|
|
139421
|
-
|
|
139422
|
-
|
|
139423
|
-
var
|
|
139424
|
-
|
|
139425
|
-
|
|
139426
|
-
|
|
139427
|
-
|
|
139428
|
-
|
|
139429
|
-
|
|
139430
|
-
|
|
139431
|
-
|
|
139432
|
-
|
|
139433
|
-
|
|
139434
|
-
|
|
139435
|
-
|
|
139436
|
-
|
|
139437
|
-
|
|
139438
|
-
stub[1] = Math.abs(tgtAnchorY - midY);
|
|
139439
|
-
}
|
|
139440
|
-
}
|
|
139441
|
-
if (isNaN(stub[0]) || stub[0] === 0) stub[0] = 10;
|
|
139442
|
-
if (isNaN(stub[1]) || stub[1] === 0) stub[1] = stub[0];
|
|
139443
|
-
alwaysRespectStubs = true;
|
|
139764
|
+
// 同轴异向:小stub + alwaysRespectStubs=false + 动态midpoint控制折线位置
|
|
139765
|
+
stub = [10, 10];
|
|
139766
|
+
var _sourceNode = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#' + connectsArr[j].PageSourceId);
|
|
139767
|
+
var targetNode = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#' + connectsArr[j].PageTargetId);
|
|
139768
|
+
var srcTop = parseInt(_sourceNode.css('top')) || 0;
|
|
139769
|
+
var srcLeft = parseInt(_sourceNode.css('left')) || 0;
|
|
139770
|
+
var srcW = _sourceNode.outerWidth() || 0;
|
|
139771
|
+
var srcH = _sourceNode.outerHeight() || 0;
|
|
139772
|
+
var tgtTop = parseInt(targetNode.css('top')) || 0;
|
|
139773
|
+
var tgtLeft = parseInt(targetNode.css('left')) || 0;
|
|
139774
|
+
var tgtW = targetNode.outerWidth() || 0;
|
|
139775
|
+
var tgtH = targetNode.outerHeight() || 0;
|
|
139776
|
+
if (anchors[0][2] !== 0) {
|
|
139777
|
+
// 水平方向(左出右入、右出左入)
|
|
139778
|
+
var srcAnchorX = srcLeft + srcW * anchors[0][0];
|
|
139779
|
+
var tgtAnchorX = tgtLeft + tgtW * anchors[1][0];
|
|
139780
|
+
var totalDistX = Math.abs(tgtAnchorX - srcAnchorX);
|
|
139781
|
+
// 从存储的pathMaxX获取折线距离,无有效值时取中点
|
|
139782
|
+
var foldDist = Math.abs(connectsArr[j].pathMaxX) || Math.abs(connectsArr[j].pathMinX);
|
|
139783
|
+
if (!foldDist || isNaN(foldDist)) foldDist = totalDistX / 2;
|
|
139784
|
+
// stub=10时需扣除stub偏移:midpoint = (foldDist - stub) / (totalDist - 2*stub)
|
|
139785
|
+
var effDist = totalDistX - 20;
|
|
139786
|
+
midpoint = effDist > 0 ? (foldDist - 10) / effDist : 0.5;
|
|
139787
|
+
} else if (anchors[0][3] !== 0) {
|
|
139788
|
+
// 垂直方向(上出下入、下出上入)
|
|
139789
|
+
var srcAnchorY = srcTop + srcH * anchors[0][1];
|
|
139790
|
+
var tgtAnchorY = tgtTop + tgtH * anchors[1][1];
|
|
139791
|
+
var totalDistY = Math.abs(tgtAnchorY - srcAnchorY);
|
|
139792
|
+
var foldDist = Math.abs(connectsArr[j].pathMaxY) || Math.abs(connectsArr[j].pathMinY);
|
|
139793
|
+
if (!foldDist || isNaN(foldDist)) foldDist = totalDistY / 2;
|
|
139794
|
+
// stub=10时需扣除stub偏移:midpoint = (foldDist - stub) / (totalDist - 2*stub)
|
|
139795
|
+
var effDist = totalDistY - 20;
|
|
139796
|
+
midpoint = effDist > 0 ? (foldDist - 10) / effDist : 0.5;
|
|
139797
|
+
}
|
|
139798
|
+
midpoint = Math.max(0, Math.min(1, midpoint));
|
|
139799
|
+
// alwaysRespectStubs保持false(默认值),使opposite分支使用midpoint参数控制折线
|
|
139444
139800
|
} else if (connectsArr[j].linesCount >= 4) {
|
|
139445
139801
|
// 其他4段线:使用保存的path值
|
|
139446
139802
|
stub = [10, 10];
|
|
@@ -141291,7 +141647,11 @@ var showProcessDesc = function showProcessDesc(desc, containerHeight, containerL
|
|
|
141291
141647
|
scope: 'desc'
|
|
141292
141648
|
});
|
|
141293
141649
|
jquery__WEBPACK_IMPORTED_MODULE_0___default()('.process-desc-close').click(function () {
|
|
141294
|
-
document.querySelector('.process-desc-container')
|
|
141650
|
+
var descContainer = document.querySelector('.process-desc-container');
|
|
141651
|
+
// 隐藏前将当前位置存入data属性,以便保存时能读取到
|
|
141652
|
+
descContainer.dataset.left = descContainer.offsetLeft;
|
|
141653
|
+
descContainer.dataset.top = descContainer.offsetTop;
|
|
141654
|
+
descContainer.style.display = 'none';
|
|
141295
141655
|
});
|
|
141296
141656
|
};
|
|
141297
141657
|
var Transform = {
|
|
@@ -167921,7 +168281,7 @@ ___CSS_LOADER_EXPORT___.push([module.id, ".setting .header[data-v-8cadfe0a]{widt
|
|
|
167921
168281
|
|
|
167922
168282
|
/***/ }),
|
|
167923
168283
|
|
|
167924
|
-
/***/
|
|
168284
|
+
/***/ 65213:
|
|
167925
168285
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
167926
168286
|
|
|
167927
168287
|
"use strict";
|
|
@@ -167935,14 +168295,14 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
167935
168295
|
|
|
167936
168296
|
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()));
|
|
167937
168297
|
// Module
|
|
167938
|
-
___CSS_LOADER_EXPORT___.push([module.id, "[data-v-
|
|
168298
|
+
___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}", ""]);
|
|
167939
168299
|
// Exports
|
|
167940
168300
|
/* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
|
|
167941
168301
|
|
|
167942
168302
|
|
|
167943
168303
|
/***/ }),
|
|
167944
168304
|
|
|
167945
|
-
/***/
|
|
168305
|
+
/***/ 87373:
|
|
167946
168306
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
167947
168307
|
|
|
167948
168308
|
"use strict";
|
|
@@ -263707,35 +264067,35 @@ var update = add("76ac6c2c", content, true, {"sourceMap":false,"shadowMode":fals
|
|
|
263707
264067
|
|
|
263708
264068
|
/***/ }),
|
|
263709
264069
|
|
|
263710
|
-
/***/
|
|
264070
|
+
/***/ 42096:
|
|
263711
264071
|
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
263712
264072
|
|
|
263713
264073
|
// style-loader: Adds some css to the DOM by adding a <style> tag
|
|
263714
264074
|
|
|
263715
264075
|
// load the styles
|
|
263716
|
-
var content = __webpack_require__(
|
|
264076
|
+
var content = __webpack_require__(65213);
|
|
263717
264077
|
if(content.__esModule) content = content.default;
|
|
263718
264078
|
if(typeof content === 'string') content = [[module.id, content, '']];
|
|
263719
264079
|
if(content.locals) module.exports = content.locals;
|
|
263720
264080
|
// add the styles to the DOM
|
|
263721
264081
|
var add = (__webpack_require__(99548)/* ["default"] */ .A)
|
|
263722
|
-
var update = add("
|
|
264082
|
+
var update = add("b3a6b4b8", content, true, {"sourceMap":false,"shadowMode":false});
|
|
263723
264083
|
|
|
263724
264084
|
/***/ }),
|
|
263725
264085
|
|
|
263726
|
-
/***/
|
|
264086
|
+
/***/ 93012:
|
|
263727
264087
|
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
263728
264088
|
|
|
263729
264089
|
// style-loader: Adds some css to the DOM by adding a <style> tag
|
|
263730
264090
|
|
|
263731
264091
|
// load the styles
|
|
263732
|
-
var content = __webpack_require__(
|
|
264092
|
+
var content = __webpack_require__(87373);
|
|
263733
264093
|
if(content.__esModule) content = content.default;
|
|
263734
264094
|
if(typeof content === 'string') content = [[module.id, content, '']];
|
|
263735
264095
|
if(content.locals) module.exports = content.locals;
|
|
263736
264096
|
// add the styles to the DOM
|
|
263737
264097
|
var add = (__webpack_require__(99548)/* ["default"] */ .A)
|
|
263738
|
-
var update = add("
|
|
264098
|
+
var update = add("0a71b9ee", content, true, {"sourceMap":false,"shadowMode":false});
|
|
263739
264099
|
|
|
263740
264100
|
/***/ }),
|
|
263741
264101
|
|
|
@@ -286289,7 +286649,7 @@ var asyncComponents = [
|
|
|
286289
286649
|
}],
|
|
286290
286650
|
// ========== 工作流设计器 + 系统设计器 ==========
|
|
286291
286651
|
['WflowDesigner', function () {
|
|
286292
|
-
return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__,
|
|
286652
|
+
return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 94714));
|
|
286293
286653
|
}], ['ImportWf', function () {
|
|
286294
286654
|
return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 76341));
|
|
286295
286655
|
}], ['WflowTrace', function () {
|
|
@@ -286365,7 +286725,7 @@ var WflowformModule = function WflowformModule() {
|
|
|
286365
286725
|
return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 68860));
|
|
286366
286726
|
};
|
|
286367
286727
|
var WflowDesignerModule = function WflowDesignerModule() {
|
|
286368
|
-
return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__,
|
|
286728
|
+
return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 94714));
|
|
286369
286729
|
};
|
|
286370
286730
|
var WflowTraceModule = function WflowTraceModule() {
|
|
286371
286731
|
return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 50106));
|