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.
@@ -116377,7 +116377,7 @@ var UdmGenerator_UserModuleForm = UserModuleForm;
116377
116377
 
116378
116378
  /***/ }),
116379
116379
 
116380
- /***/ 40353:
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=46bbfc1a&scoped=true
117048
- var Centervue_type_template_id_46bbfc1a_scoped_true_render = function render() {
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 Centervue_type_template_id_46bbfc1a_scoped_true_staticRenderFns = [];
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
- wflow.process.chartData.descDiv.left = descDiv.offsetLeft;
119294
- wflow.process.chartData.descDiv.top = descDiv.offsetTop;
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=46bbfc1a&prod&scoped=true&lang=scss
119798
- var Centervue_type_style_index_0_id_46bbfc1a_prod_scoped_true_lang_scss = __webpack_require__(357);
119799
- ;// CONCATENATED MODULE: ./packages/ecwplus/WorkflowDesigner/src/components/Center/index.vue?vue&type=style&index=0&id=46bbfc1a&prod&scoped=true&lang=scss
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=46bbfc1a&prod&lang=scss
119802
- var Centervue_type_style_index_1_id_46bbfc1a_prod_lang_scss = __webpack_require__(8289);
119803
- ;// CONCATENATED MODULE: ./packages/ecwplus/WorkflowDesigner/src/components/Center/index.vue?vue&type=style&index=1&id=46bbfc1a&prod&lang=scss
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
- Centervue_type_template_id_46bbfc1a_scoped_true_render,
119818
- Centervue_type_template_id_46bbfc1a_scoped_true_staticRenderFns,
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
- "46bbfc1a",
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
- var lineData = paths[0].split(' ');
138434
- pathMaxY = parseInt(lineData[5]) - parseInt(lineData[2]);
138435
- pathMinY = -pathMaxY; // 同轴异向,两端 stub 相等
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
- var _lineData = paths[0].split(' ');
138439
- pathMinY = parseInt(_lineData[2]) - parseInt(_lineData[5]);
138440
- pathMaxY = -pathMinY; // 同轴异向,两端 stub 相等
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
- var _lineData2 = paths[0].split(' ');
138444
- pathMaxX = parseInt(_lineData2[4]) - parseInt(_lineData2[1]);
138445
- pathMinX = -pathMaxX; // 同轴异向,两端 stub 相等
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
- var _lineData3 = paths[0].split(' ');
138449
- pathMinX = parseInt(_lineData3[1]) - parseInt(_lineData3[4]);
138450
- pathMaxX = -pathMinX; // 同轴异向,两端 stub 相等
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
- if (lineCount < 2) {
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
- var firstEndpoints = connection.endpoints[0].anchor.orientation;
138549
- var secondEndpoints = connection.endpoints[1].anchor.orientation;
138550
- var isSameNode = thisConnect.PageSourceId === thisConnect.PageTargetId;
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
- if (lineCount <= 3) {
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
- if (isSameNode) {
138622
- stub = [-distance, 50];
138623
- } else if (!isSameSide) {
138624
- // 同轴异向:两端stub同步更新
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
- if (isSameNode) {
138638
- stub = [distance, 50];
138639
- } else if (!isSameSide) {
138640
- // 同轴异向:两端stub同步更新
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
- if (isSameNode) {
138654
- stub = [-distance, 50];
138655
- } else if (!isSameSide) {
138656
- // 同轴异向:两端stub同步更新
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
- if (isSameNode) {
138670
- stub = [distance, 50];
138671
- } else if (!isSameSide) {
138672
- // 同轴异向:两端stub同步更新
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 > -10) {
138686
- distance = -10;
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 < 10) {
138694
- distance = 10;
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 > -10) {
138702
- distance = -10;
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 > -10) {
138713
- distance = -10;
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 < 10) {
138721
- distance = 10;
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 < 10) {
138729
- distance = 10;
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 < 10) {
138740
- distance = 10;
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 > -10) {
138748
- distance = -10;
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 < 10) {
138756
- distance = 10;
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 > -10) {
138767
- distance = -10;
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 > -10) {
138775
- distance = -10;
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 < 10) {
138783
- distance = 10;
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 > -10) {
138800
- distance = -10;
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 > -10) {
138813
- distance = -10;
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 < 10) {
138830
- distance = 10;
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 < 10) {
138843
- distance = 10;
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 > -10) {
138864
- distance = -10;
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 > -10) {
138877
- distance = -10;
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 < 10) {
138894
- distance = 10;
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 < 10) {
138907
- distance = 10;
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
- // 垂直锚点组合2段线:源端延伸全距离,目标端不延伸(自环连接除外)
138921
- var respectStubs = false;
138922
- if (!isSameNode) {
138923
- if (firstEndpoints[0] !== 0 && secondEndpoints[1] !== 0) {
138924
- // 水平出 + 垂直入(如左出上入、右出下入)
138925
- stub = [Math.abs(initialMaxX), 0];
138926
- respectStubs = true;
138927
- } else if (firstEndpoints[1] !== 0 && secondEndpoints[0] !== 0) {
138928
- // 垂直出 + 水平入(如上出左入、下出右入)
138929
- stub = [Math.abs(initialMaxY), 0];
138930
- respectStubs = true;
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: respectStubs ? 0 : 0.5
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
- if (anchors[0][2] === -1 && anchors[1][2] === -1) {
139354
- var s0 = Math.abs(connectsArr[j].pathMinX) || 50;
139355
- var s1 = Math.abs(connectsArr[j].pathMaxX) || 50;
139356
- stub = [Math.max(s0, 50), Math.max(s1, 50)];
139357
- } else if (anchors[0][2] === 1 && anchors[1][2] === 1) {
139358
- var s0 = Math.abs(connectsArr[j].pathMaxX) || 50;
139359
- var s1 = Math.abs(connectsArr[j].pathMinX) || 50;
139360
- stub = [Math.max(s0, 50), Math.max(s1, 50)];
139361
- } else if (anchors[0][3] === -1 && anchors[1][3] === -1) {
139362
- var s0 = Math.abs(connectsArr[j].pathMinY) || 50;
139363
- var s1 = Math.abs(connectsArr[j].pathMaxY) || 50;
139364
- stub = [Math.max(s0, 50), Math.max(s1, 50)];
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
- if (anchors[0][2] === -1 && anchors[1][2] === -1) {
139384
- var s0 = Math.abs(connectsArr[j].pathMinX) || 50;
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
- // 同轴异向:minStub=10,任意一端stub为0或NaN时触发CSS精确计算
139403
- if (anchors[0][2] === -1) {
139404
- stub = [Math.abs(connectsArr[j].pathMinX), Math.abs(connectsArr[j].pathMaxX)];
139405
- } else if (anchors[0][2] === 1) {
139406
- stub = [Math.abs(connectsArr[j].pathMaxX), Math.abs(connectsArr[j].pathMinX)];
139407
- } else if (anchors[0][3] === -1) {
139408
- stub = [Math.abs(connectsArr[j].pathMinY), Math.abs(connectsArr[j].pathMaxY)];
139409
- } else if (anchors[0][3] === 1) {
139410
- stub = [Math.abs(connectsArr[j].pathMaxY), Math.abs(connectsArr[j].pathMinY)];
139411
- }
139412
-
139413
- // 任意一端stub为0或NaN(旧数据):使用CSS坐标精确计算,确保水平段在两节点中间
139414
- if (isNaN(stub[0]) || stub[0] === 0 || isNaN(stub[1]) || stub[1] === 0) {
139415
- var _sourceNode = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#' + connectsArr[j].PageSourceId);
139416
- var targetNode = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#' + connectsArr[j].PageTargetId);
139417
- var srcTop = parseInt(_sourceNode.css('top')) || 0;
139418
- var srcLeft = parseInt(_sourceNode.css('left')) || 0;
139419
- var srcW = _sourceNode.outerWidth() || 0;
139420
- var srcH = _sourceNode.outerHeight() || 0;
139421
- var tgtTop = parseInt(targetNode.css('top')) || 0;
139422
- var tgtLeft = parseInt(targetNode.css('left')) || 0;
139423
- var tgtW = targetNode.outerWidth() || 0;
139424
- var tgtH = targetNode.outerHeight() || 0;
139425
- if (anchors[0][2] !== 0) {
139426
- // 水平方向(左出右入、右出左入)
139427
- var srcAnchorX = srcLeft + srcW * anchors[0][0];
139428
- var tgtAnchorX = tgtLeft + tgtW * anchors[1][0];
139429
- var midX = (srcAnchorX + tgtAnchorX) / 2;
139430
- stub[0] = Math.abs(midX - srcAnchorX);
139431
- stub[1] = Math.abs(tgtAnchorX - midX);
139432
- } else if (anchors[0][3] !== 0) {
139433
- // 垂直方向(上出下入、下出上入)
139434
- var srcAnchorY = srcTop + srcH * anchors[0][1];
139435
- var tgtAnchorY = tgtTop + tgtH * anchors[1][1];
139436
- var midY = (srcAnchorY + tgtAnchorY) / 2;
139437
- stub[0] = Math.abs(midY - srcAnchorY);
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').style.display = 'none';
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
- /***/ 1056:
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-46bbfc1a] .el-scrollbar__wrap{overflow-x:auto}#center[data-v-46bbfc1a]{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-46bbfc1a]{position:relative;margin:-15px -10px;z-index:4000;display:none}#center .insert-node-btn[data-v-46bbfc1a]{position:fixed;margin:-15px -10px;z-index:4000;display:none}li[data-v-46bbfc1a],ul[data-v-46bbfc1a]{list-style:none}", ""]);
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
- /***/ 31384:
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
- /***/ 357:
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__(1056);
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("36cd288d", content, true, {"sourceMap":false,"shadowMode":false});
264082
+ var update = add("b3a6b4b8", content, true, {"sourceMap":false,"shadowMode":false});
263723
264083
 
263724
264084
  /***/ }),
263725
264085
 
263726
- /***/ 8289:
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__(31384);
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("ba4edb52", content, true, {"sourceMap":false,"shadowMode":false});
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__, 40353));
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__, 40353));
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));