vxe-gantt 3.1.17 → 3.1.19

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.
Files changed (40) hide show
  1. package/es/gantt/src/gantt-chart.js +91 -48
  2. package/es/gantt/src/gantt-view.js +50 -21
  3. package/es/gantt/src/gantt.js +86 -75
  4. package/es/gantt/src/util.js +0 -3
  5. package/es/gantt/style.css +16 -2
  6. package/es/gantt/style.min.css +1 -1
  7. package/es/style.css +1 -1
  8. package/es/style.min.css +1 -1
  9. package/es/ui/index.js +2 -1
  10. package/es/ui/src/log.js +1 -1
  11. package/es/vxe-gantt/style.css +16 -2
  12. package/es/vxe-gantt/style.min.css +1 -1
  13. package/lib/gantt/src/gantt-chart.js +79 -40
  14. package/lib/gantt/src/gantt-chart.min.js +1 -1
  15. package/lib/gantt/src/gantt-view.js +50 -25
  16. package/lib/gantt/src/gantt-view.min.js +1 -1
  17. package/lib/gantt/src/gantt.js +92 -91
  18. package/lib/gantt/src/gantt.min.js +1 -1
  19. package/lib/gantt/src/util.js +0 -4
  20. package/lib/gantt/src/util.min.js +1 -1
  21. package/lib/gantt/style/style.css +16 -2
  22. package/lib/gantt/style/style.min.css +1 -1
  23. package/lib/index.umd.js +226 -164
  24. package/lib/index.umd.min.js +1 -1
  25. package/lib/style.css +1 -1
  26. package/lib/style.min.css +1 -1
  27. package/lib/ui/index.js +2 -1
  28. package/lib/ui/index.min.js +1 -1
  29. package/lib/ui/src/log.js +1 -1
  30. package/lib/ui/src/log.min.js +1 -1
  31. package/lib/vxe-gantt/style/style.css +16 -2
  32. package/lib/vxe-gantt/style/style.min.css +1 -1
  33. package/package.json +3 -3
  34. package/packages/gantt/src/gantt-chart.ts +92 -53
  35. package/packages/gantt/src/gantt-view.ts +52 -21
  36. package/packages/gantt/src/gantt.ts +91 -78
  37. package/packages/gantt/src/util.ts +0 -4
  38. package/packages/ui/index.ts +1 -0
  39. package/styles/components/gantt-module/gantt-chart.scss +14 -2
  40. package/styles/theme/base.scss +1 -0
package/lib/index.umd.js CHANGED
@@ -8286,7 +8286,7 @@ var core_ = __webpack_require__(4345);
8286
8286
 
8287
8287
  var setConfig = core_.VxeUI.setConfig,
8288
8288
  setIcon = core_.VxeUI.setIcon;
8289
- core_.VxeUI.ganttVersion = "3.1.17";
8289
+ core_.VxeUI.ganttVersion = "3.1.19";
8290
8290
  var ymdFormat = 'yyyy-MM-dd';
8291
8291
  var ymdhmsFormat = 'yyyy-MM-dd HH:mm:ss';
8292
8292
  setConfig({
@@ -8332,6 +8332,7 @@ setConfig({
8332
8332
  },
8333
8333
  taskLinkConfig: {
8334
8334
  enabled: true,
8335
+ isHover: true,
8335
8336
  showArrow: true
8336
8337
  },
8337
8338
  taskViewScaleConfig: {
@@ -8399,7 +8400,7 @@ var es_array_concat = __webpack_require__(8706);
8399
8400
  ;// ./packages/ui/src/log.ts
8400
8401
 
8401
8402
  var log = core_.VxeUI.log;
8402
- var version = "gantt v".concat("3.1.17");
8403
+ var version = "gantt v".concat("3.1.19");
8403
8404
  var warnLog = log.create('warn', version);
8404
8405
  var errLog = log.create('error', version);
8405
8406
  ;// ./packages/ui/src/depend.ts
@@ -9123,8 +9124,9 @@ function getSlotVNs(vns) {
9123
9124
  }
9124
9125
  return [vns];
9125
9126
  }
9127
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.pad-start.js
9128
+ var es_string_pad_start = __webpack_require__(8156);
9126
9129
  ;// ./packages/gantt/src/util.ts
9127
-
9128
9130
  function getRefElem(refEl) {
9129
9131
  if (refEl) {
9130
9132
  return refEl.$el || refEl;
@@ -9151,9 +9153,6 @@ function getTaskBarLeft(chartRest, viewCellWidth) {
9151
9153
  function getTaskBarWidth(chartRest, viewCellWidth) {
9152
9154
  return Math.max(1, chartRest ? Math.floor(viewCellWidth * chartRest.oWidthSize) - 1 : 0);
9153
9155
  }
9154
- function getTaskLinkKey(from, to) {
9155
- return "".concat(from, "_").concat(to);
9156
- }
9157
9156
  var taskTypeMaps = {
9158
9157
  milestone: true
9159
9158
  };
@@ -9163,8 +9162,6 @@ function hasMilestoneTask(type) {
9163
9162
  function gettaskType(type) {
9164
9163
  return taskTypeMaps[type] ? type : 'default';
9165
9164
  }
9166
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.pad-start.js
9167
- var es_string_pad_start = __webpack_require__(8156);
9168
9165
  ;// ./packages/gantt/src/gantt-header.ts
9169
9166
 
9170
9167
 
@@ -9368,8 +9365,6 @@ var gantt_chart_viewType = 'chart';
9368
9365
  renderTaskBar: function renderTaskBar(h, $xeTable, row, rowid, rowIndex, $rowIndex, _rowIndex) {
9369
9366
  var _vm = this;
9370
9367
  var $xeGantt = _vm.$xeGantt;
9371
- var tableProps = $xeTable;
9372
- var treeConfig = tableProps.treeConfig;
9373
9368
  var tableReactData = $xeTable;
9374
9369
  var resizeHeightFlag = tableReactData.resizeHeightFlag;
9375
9370
  var tableInternalData = $xeTable;
@@ -9378,9 +9373,13 @@ var gantt_chart_viewType = 'chart';
9378
9373
  var rowOpts = $xeTable.computeRowOpts;
9379
9374
  var defaultRowHeight = $xeTable.computeDefaultRowHeight;
9380
9375
  var ganttProps = $xeGantt;
9376
+ var ganttReactData = $xeGantt.reactData;
9377
+ var ganttInternalData = $xeGantt.internalData;
9381
9378
  var ganttSlots = $xeGantt.$scopedSlots;
9382
9379
  var taskBarSlot = ganttSlots.taskBar || ganttSlots['task-bar'];
9383
9380
  var taskBarMilestoneConfig = ganttProps.taskBarMilestoneConfig;
9381
+ var activeLink = ganttReactData.activeLink,
9382
+ activeBarRowid = ganttReactData.activeBarRowid;
9384
9383
  var titleField = $xeGantt.computeTitleField;
9385
9384
  var progressField = $xeGantt.computeProgressField;
9386
9385
  var typeField = $xeGantt.computeTypeField;
@@ -9438,29 +9437,27 @@ var gantt_chart_viewType = 'chart';
9438
9437
  rowIndex: rowIndex,
9439
9438
  _rowIndex: _rowIndex
9440
9439
  };
9441
- var ons = {
9442
- click: function click(evnt) {
9443
- $xeGantt.handleTaskBarClickEvent(evnt, barParams);
9444
- },
9445
- dblclick: function dblclick(evnt) {
9446
- $xeGantt.handleTaskBarDblclickEvent(evnt, barParams);
9447
- },
9448
- mousedown: function mousedown(evnt) {
9449
- if ($xeGantt.handleTaskBarMousedownEvent) {
9450
- $xeGantt.handleTaskBarMousedownEvent(evnt, barParams);
9451
- }
9452
- }
9453
- };
9440
+ var ctOns = {};
9454
9441
  if (showTooltip) {
9455
- ons.mouseover = function (evnt) {
9456
- $xeGantt.triggerTaskBarTooltipEvent(evnt, Object.assign({
9442
+ ctOns.mouseover = function (evnt) {
9443
+ var dragBarRow = ganttInternalData.dragBarRow;
9444
+ var ttParams = Object.assign({
9457
9445
  $event: evnt
9458
- }, ctParams));
9446
+ }, ctParams);
9447
+ if (!dragBarRow) {
9448
+ $xeGantt.triggerTaskBarTooltipEvent(evnt, ttParams);
9449
+ }
9450
+ $xeGantt.dispatchEvent('task-bar-mouseenter', ttParams, evnt);
9459
9451
  };
9460
- ons.mouseleave = function (evnt) {
9461
- $xeGantt.handleTaskBarTooltipLeaveEvent(evnt, Object.assign({
9452
+ ctOns.mouseleave = function (evnt) {
9453
+ var dragBarRow = ganttInternalData.dragBarRow;
9454
+ var ttParams = Object.assign({
9462
9455
  $event: evnt
9463
- }, ctParams));
9456
+ }, ctParams);
9457
+ if (!dragBarRow) {
9458
+ $xeGantt.handleTaskBarTooltipLeaveEvent(evnt, ttParams);
9459
+ }
9460
+ $xeGantt.dispatchEvent('task-bar-mouseleave', ttParams, evnt);
9464
9461
  };
9465
9462
  }
9466
9463
  var cbVNs = [];
@@ -9469,12 +9466,15 @@ var gantt_chart_viewType = 'chart';
9469
9466
  isMilestone: isMilestone,
9470
9467
  title: title,
9471
9468
  vbStyle: vbStyle,
9472
- vpStyle: vpStyle
9469
+ vpStyle: vpStyle,
9470
+ rowid: rowid,
9471
+ ctOns: ctOns
9473
9472
  });
9474
9473
  } else if (taskBarSlot) {
9475
9474
  cbVNs.push(h('div', {
9476
9475
  key: 'cbc',
9477
- class: 'vxe-gantt-view--chart-custom-bar-content'
9476
+ class: 'vxe-gantt-view--chart-custom-bar-content-wrapper',
9477
+ on: ctOns
9478
9478
  }, $xeGantt.callSlot(taskBarSlot, barParams, h)));
9479
9479
  } else {
9480
9480
  if (isMilestone) {
@@ -9487,7 +9487,8 @@ var gantt_chart_viewType = 'chart';
9487
9487
  };
9488
9488
  cbVNs.push(h('div', {
9489
9489
  key: 'vcm',
9490
- class: 'vxe-gantt-view--chart-milestone-wrapper'
9490
+ class: 'vxe-gantt-view--chart-milestone-wrapper',
9491
+ on: ctOns
9491
9492
  }, [h('div', {
9492
9493
  class: ['vxe-gantt-view--chart-milestone-icon', iconStatus ? "theme--".concat(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(iconStatus) ? iconStatus(tbmParams) : iconStatus) : ''],
9493
9494
  style: iconStyle ? Object.assign({}, external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(iconStyle) ? iconStyle(tbmParams) : iconStyle) : undefined
@@ -9497,18 +9498,22 @@ var gantt_chart_viewType = 'chart';
9497
9498
  class: 'vxe-gantt-view--chart-milestone-content'
9498
9499
  }, title) : renderEmptyElement($xeGantt)]));
9499
9500
  } else {
9500
- cbVNs.push(showProgress ? h('div', {
9501
+ cbVNs.push(h('div', {
9502
+ key: 'vbc',
9503
+ class: 'vxe-gantt-view--chart-bar-content-wrapper',
9504
+ on: ctOns
9505
+ }, [showProgress ? h('div', {
9501
9506
  key: 'vcp',
9502
9507
  class: 'vxe-gantt-view--chart-progress',
9503
9508
  style: vpStyle
9504
9509
  }) : renderEmptyElement($xeGantt), showContent ? h('div', {
9505
9510
  key: 'vcc',
9506
9511
  class: 'vxe-gantt-view--chart-content'
9507
- }, title) : renderEmptyElement($xeGantt));
9512
+ }, title) : renderEmptyElement($xeGantt)]));
9508
9513
  }
9509
9514
  }
9510
9515
  return h('div', {
9511
- key: treeConfig ? rowid : $rowIndex,
9516
+ key: rowid,
9512
9517
  attrs: {
9513
9518
  rowid: rowid
9514
9519
  },
@@ -9525,12 +9530,27 @@ var gantt_chart_viewType = 'chart';
9525
9530
  }
9526
9531
  }
9527
9532
  }, [h('div', {
9528
- class: [taskBarSlot ? 'vxe-gantt-view--chart-custom-bar' : 'vxe-gantt-view--chart-bar', "is--".concat(gettaskType(typeValue))],
9533
+ class: [taskBarSlot ? 'vxe-gantt-view--chart-custom-bar' : 'vxe-gantt-view--chart-bar', "is--".concat(gettaskType(typeValue)), {
9534
+ 'is--active': activeBarRowid === rowid,
9535
+ 'active--link': activeLink && (rowid === "".concat(activeLink.from) || rowid === "".concat(activeLink.to))
9536
+ }],
9529
9537
  style: vbStyle,
9530
9538
  attrs: {
9531
9539
  rowid: rowid
9532
9540
  },
9533
- on: ons
9541
+ on: {
9542
+ click: function click(evnt) {
9543
+ $xeGantt.handleTaskBarClickEvent(evnt, barParams);
9544
+ },
9545
+ dblclick: function dblclick(evnt) {
9546
+ $xeGantt.handleTaskBarDblclickEvent(evnt, barParams);
9547
+ },
9548
+ mousedown: function mousedown(evnt) {
9549
+ if ($xeGantt.handleTaskBarMousedownEvent) {
9550
+ $xeGantt.handleTaskBarMousedownEvent(evnt, barParams);
9551
+ }
9552
+ }
9553
+ }
9534
9554
  }, cbVNs)]);
9535
9555
  },
9536
9556
  renderTaskRows: function renderTaskRows(h, $xeTable, tableData) {
@@ -9576,24 +9596,38 @@ var gantt_chart_viewType = 'chart';
9576
9596
  var _vm = this;
9577
9597
  var $xeGantt = _vm.$xeGantt;
9578
9598
  var $xeGanttView = _vm.$xeGanttView;
9599
+ var ganttReactData = $xeGantt.reactData;
9579
9600
  var ganttViewInternalData = $xeGanttView.internalData;
9580
9601
  var ganttViewReactData = $xeGanttView.reactData;
9581
9602
  var $xeTable = ganttViewInternalData.xeTable;
9603
+ var dragLinkFromStore = ganttReactData.dragLinkFromStore;
9582
9604
  var tableData = ganttViewReactData.tableData;
9583
9605
  var taskLinkOpts = $xeGantt.computeTaskLinkOpts;
9584
- var showArrow = taskLinkOpts.showArrow;
9606
+ var taskBarOpts = $xeGantt.computeTaskBarOpts;
9607
+ var isCurrent = taskLinkOpts.isCurrent,
9608
+ isHover = taskLinkOpts.isHover;
9609
+ var linkCreatable = taskBarOpts.linkCreatable;
9585
9610
  return h('div', {
9586
9611
  ref: 'refElem',
9587
- class: 'vxe-gantt-view--chart-wrapper'
9588
- }, [$xeGantt.renderGanttTaskLines ? h('div', {
9589
- ref: 'reflineWrapperElem',
9590
- class: ['vxe-gantt-view--chart-line-wrapper', {
9591
- 'show-arrow': showArrow
9612
+ class: ['vxe-gantt-view--chart-wrapper', {
9613
+ 'is--cl-drag': dragLinkFromStore.rowid
9614
+ }]
9615
+ }, [$xeGantt.renderGanttTaskChartBefores ? h('div', {
9616
+ ref: 'refChartBeforeWrapperElem',
9617
+ class: ['vxe-gantt-view--chart-before-wrapper', {
9618
+ 'link--current': isCurrent,
9619
+ 'link--hover': isHover
9592
9620
  }]
9593
- }, $xeTable && isEnableConf(taskLinkOpts) ? $xeGantt.renderGanttTaskLines(h) : []) : renderEmptyElement($xeGantt), h('div', {
9621
+ }, $xeTable && isEnableConf(taskLinkOpts) ? $xeGantt.renderGanttTaskChartBefores(h) : []) : renderEmptyElement($xeGantt), h('div', {
9594
9622
  ref: 'refTaskWrapperElem',
9595
- class: 'vxe-gantt-view--chart-task-wrapper'
9596
- }, $xeTable ? _vm.renderTaskRows(h, $xeTable, tableData) : [])]);
9623
+ class: ['vxe-gantt-view--chart-task-wrapper', {
9624
+ 'link--current': isCurrent,
9625
+ 'link--create': linkCreatable
9626
+ }]
9627
+ }, $xeTable ? _vm.renderTaskRows(h, $xeTable, tableData) : []), $xeGantt.renderGanttTaskChartAfters ? h('div', {
9628
+ ref: 'refChartAfterWrapperElem',
9629
+ class: 'vxe-gantt-view--chart-after-wrapper'
9630
+ }, $xeTable && isEnableConf(taskLinkOpts) ? $xeGantt.renderGanttTaskChartAfters(h) : []) : renderEmptyElement($xeGantt)]);
9597
9631
  }
9598
9632
  },
9599
9633
  mounted: function mounted() {
@@ -9603,7 +9637,8 @@ var gantt_chart_viewType = 'chart';
9603
9637
  var elemStore = ganttViewInternalData.elemStore;
9604
9638
  var prefix = 'main-chart-';
9605
9639
  elemStore["".concat(prefix, "task-wrapper")] = _vm.$refs.refTaskWrapperElem;
9606
- elemStore["".concat(prefix, "line-wrapper")] = _vm.$refs.reflineWrapperElem;
9640
+ elemStore["".concat(prefix, "before-wrapper")] = _vm.$refs.refChartBeforeWrapperElem;
9641
+ elemStore["".concat(prefix, "after-wrapper")] = _vm.$refs.refChartAfterWrapperElem;
9607
9642
  },
9608
9643
  destroyed: function destroyed() {
9609
9644
  var _vm = this;
@@ -9612,7 +9647,8 @@ var gantt_chart_viewType = 'chart';
9612
9647
  var elemStore = ganttViewInternalData.elemStore;
9613
9648
  var prefix = 'main-chart-';
9614
9649
  elemStore["".concat(prefix, "task-wrapper")] = null;
9615
- elemStore["".concat(prefix, "line-wrapper")] = null;
9650
+ elemStore["".concat(prefix, "before-wrapper")] = null;
9651
+ elemStore["".concat(prefix, "after-wrapper")] = null;
9616
9652
  },
9617
9653
  render: function render(h) {
9618
9654
  return this.renderVN(h);
@@ -10177,15 +10213,8 @@ function handleColumnHeader($xeGanttView) {
10177
10213
  var q = Math.ceil((itemDate.getMonth() + 1) / 3);
10178
10214
  var W = "".concat(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().getYearWeek(itemDate, weekScale ? weekScale.startDay : undefined));
10179
10215
  var WW = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().padStart(W, 2, '0');
10180
- var wYear = yyyy;
10181
- // 周维度,由于年份和第几周是冲突的行为,所以需要特殊处理,判断是否跨年,例如
10182
- // '2024-12-31' 'yyyy-MM-dd W' >> '2024-12-31 1'
10183
- // '2025-01-01' 'yyyy-MM-dd W' >> '2025-01-01 1'
10184
- if (W === '1' && MM === '12') {
10185
- wYear = "".concat(Number(yyyy) + 1);
10186
- if (isMinWeek) {
10187
- yyyy = wYear;
10188
- }
10216
+ if (isMinWeek && checkWeekOfsetYear(W, M)) {
10217
+ yyyy = "".concat(Number(yyyy) + 1);
10189
10218
  }
10190
10219
  var dateObj = {
10191
10220
  date: itemDate,
@@ -10224,7 +10253,7 @@ function handleColumnHeader($xeGanttView) {
10224
10253
  dateObj: dateObj
10225
10254
  },
10226
10255
  week: {
10227
- field: "".concat(wYear, "_W").concat(W),
10256
+ field: "".concat(yyyy, "_W").concat(W),
10228
10257
  title: "".concat(W),
10229
10258
  dateObj: dateObj
10230
10259
  },
@@ -10310,6 +10339,30 @@ function handleColumnHeader($xeGanttView) {
10310
10339
  groupCols: groupCols
10311
10340
  };
10312
10341
  }
10342
+ /**
10343
+ * 判断周的年份是否跨年
10344
+ */
10345
+ function checkWeekOfsetYear(W, M) {
10346
+ return "".concat(W) === '1' && "".concat(M) === '12';
10347
+ }
10348
+ /**
10349
+ * 周维度,由于年份和第几周是冲突的行为,所以需要特殊处理,判断是否跨年,例如
10350
+ * '2024-12-31' 'yyyy-MM-dd W' >> '2024-12-31 1'
10351
+ * '2025-01-01' 'yyyy-MM-dd W' >> '2025-01-01 1'
10352
+ */
10353
+ function parseWeekObj(date, firstDay) {
10354
+ var currDate = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toStringDate(date);
10355
+ var yyyy = currDate.getFullYear();
10356
+ var month = currDate.getMonth();
10357
+ var weekNum = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().getYearWeek(currDate, firstDay);
10358
+ if (checkWeekOfsetYear(weekNum, month + 1)) {
10359
+ yyyy++;
10360
+ }
10361
+ return {
10362
+ yyyy: yyyy,
10363
+ W: weekNum
10364
+ };
10365
+ }
10313
10366
  function createChartRender($xeGanttView, fullCols) {
10314
10367
  var $xeGantt = $xeGanttView.$xeGantt;
10315
10368
  var reactData = $xeGanttView.reactData;
@@ -10404,13 +10457,11 @@ function createChartRender($xeGanttView, fullCols) {
10404
10457
  return function (startValue, endValue) {
10405
10458
  var startDate = parseStringDate($xeGanttView, startValue);
10406
10459
  var endDate = parseStringDate($xeGanttView, endValue);
10407
- var startStr = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toDateString(startDate, 'yyyy-W', {
10408
- firstDay: weekScale ? weekScale.startDay : undefined
10409
- });
10460
+ var startWeekObj = parseWeekObj(startDate, weekScale ? weekScale.startDay : undefined);
10461
+ var startStr = "".concat(startWeekObj.yyyy, "-").concat(startWeekObj.W);
10410
10462
  var startFirstDate = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().getWhatWeek(startDate, 0, weekScale ? weekScale.startDay : undefined, weekScale ? weekScale.startDay : undefined);
10411
- var endStr = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toDateString(endDate, 'yyyy-W', {
10412
- firstDay: weekScale ? weekScale.startDay : undefined
10413
- });
10463
+ var endWeekObj = parseWeekObj(endDate, weekScale ? weekScale.startDay : undefined);
10464
+ var endStr = "".concat(endWeekObj.yyyy, "-").concat(endWeekObj.W);
10414
10465
  var endFirstDate = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().getWhatWeek(endDate, 0, weekScale ? weekScale.startDay : undefined, weekScale ? weekScale.startDay : undefined);
10415
10466
  var dateSize = Math.floor((external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().getWhatWeek(endDate, 1, weekScale ? weekScale.startDay : undefined, weekScale ? weekScale.startDay : undefined).getTime() - endFirstDate.getTime()) / dayMs);
10416
10467
  var subtract = (startDate.getTime() - startFirstDate.getTime()) / dayMs / dateSize;
@@ -10852,7 +10903,7 @@ function updateStyle($xeGanttView) {
10852
10903
  bodyTableElem.style.width = "".concat(vmTableWidth, "px");
10853
10904
  }
10854
10905
  reactData.scrollXWidth = viewTableWidth;
10855
- return Promise.all([updateTaskChart($xeGanttView), $xeGantt.handleUpdateTaskLink ? $xeGantt.handleUpdateTaskLink($xeGanttView) : null]);
10906
+ return Promise.all([updateTaskChart($xeGanttView), $xeGantt.handleUpdateTaskLinkStyle ? $xeGantt.handleUpdateTaskLinkStyle($xeGanttView) : null]);
10856
10907
  }
10857
10908
  function handleRecalculateStyle($xeGanttView) {
10858
10909
  var internalData = $xeGanttView.internalData;
@@ -11029,10 +11080,15 @@ function updateScrollXSpace($xeGanttView) {
11029
11080
  if (scrollXSpaceEl) {
11030
11081
  scrollXSpaceEl.style.width = "".concat(scrollXWidth, "px");
11031
11082
  }
11032
- var lineWrapper = getRefElem(elemStore['main-chart-line-wrapper']);
11033
- var svgElem = lineWrapper ? lineWrapper.firstElementChild : null;
11034
- if (svgElem) {
11035
- svgElem.style.width = "".concat(scrollXWidth, "px");
11083
+ var beforeWrapper = getRefElem(elemStore['main-chart-before-wrapper']);
11084
+ var beforeSvgElem = beforeWrapper ? beforeWrapper.firstElementChild : null;
11085
+ if (beforeSvgElem) {
11086
+ beforeSvgElem.style.width = "".concat(scrollXWidth, "px");
11087
+ }
11088
+ var afterWrapper = getRefElem(elemStore['main-chart-after-wrapper']);
11089
+ var afterSvgElem = afterWrapper ? afterWrapper.firstElementChild : null;
11090
+ if (afterSvgElem) {
11091
+ afterSvgElem.style.width = "".concat(scrollXWidth, "px");
11036
11092
  }
11037
11093
  calcScrollbar($xeGanttView);
11038
11094
  return $xeGanttView.$nextTick();
@@ -11091,10 +11147,15 @@ function updateScrollYSpace($xeGanttView) {
11091
11147
  if (scrollYSpaceEl) {
11092
11148
  scrollYSpaceEl.style.height = ySpaceHeight ? "".concat(ySpaceHeight, "px") : '';
11093
11149
  }
11094
- var lineWrapper = getRefElem(elemStore['main-chart-line-wrapper']);
11095
- var svgElem = lineWrapper ? lineWrapper.firstElementChild : null;
11096
- if (svgElem) {
11097
- svgElem.style.height = ySpaceHeight ? "".concat(ySpaceHeight, "px") : '';
11150
+ var beforeWrapper = getRefElem(elemStore['main-chart-before-wrapper']);
11151
+ var beforeSvgElem = beforeWrapper ? beforeWrapper.firstElementChild : null;
11152
+ if (beforeSvgElem) {
11153
+ beforeSvgElem.style.height = ySpaceHeight ? "".concat(ySpaceHeight, "px") : '';
11154
+ }
11155
+ var afterWrapper = getRefElem(elemStore['main-chart-after-wrapper']);
11156
+ var afterSvgElem = afterWrapper ? afterWrapper.firstElementChild : null;
11157
+ if (afterSvgElem) {
11158
+ afterSvgElem.style.height = ySpaceHeight ? "".concat(ySpaceHeight, "px") : '';
11098
11159
  }
11099
11160
  reactData.scrollYTop = scrollYTop;
11100
11161
  reactData.scrollYHeight = scrollYHeight;
@@ -11772,7 +11833,6 @@ var external_root_VxeUITable_commonjs_vxe_table_commonjs2_vxe_table_amd_vxe_tabl
11772
11833
 
11773
11834
 
11774
11835
 
11775
-
11776
11836
 
11777
11837
 
11778
11838
  var gantt_getConfig = core_.VxeUI.getConfig,
@@ -11836,48 +11896,58 @@ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default(
11836
11896
  return $xeTable && $xeTable[name].apply($xeTable, arguments);
11837
11897
  };
11838
11898
  });
11839
- function handleTaskAddLink(item, linkConfs, fromConfMaps, fromKeyMaps, uniqueMaps) {
11840
- if (item) {
11841
- var type = item.type,
11842
- from = item.from,
11843
- to = item.to,
11844
- lineStatus = item.lineStatus,
11845
- lineColor = item.lineColor,
11846
- lineType = item.lineType,
11847
- lineWidth = item.lineWidth,
11848
- showArrow = item.showArrow;
11849
- var tlKey = getTaskLinkKey(from, to);
11850
- if (from && to && !uniqueMaps[tlKey]) {
11851
- var confs = fromConfMaps[from];
11852
- if (!confs) {
11853
- confs = fromConfMaps[from] = [];
11854
- }
11855
- var confObj = {
11856
- type: type,
11857
- from: from,
11858
- to: to,
11859
- lineStatus: lineStatus,
11860
- lineColor: lineColor,
11861
- lineType: lineType,
11862
- lineWidth: lineWidth,
11863
- showArrow: showArrow
11864
- };
11865
- confs.push(confObj);
11866
- linkConfs.push(confObj);
11867
- fromKeyMaps[from] = confObj;
11868
- uniqueMaps[tlKey] = confObj;
11869
- }
11870
- }
11871
- }
11872
11899
  function gantt_createInternalData() {
11873
11900
  return {
11874
11901
  linkFromConfMaps: {},
11875
11902
  linkFromKeyMaps: {},
11876
11903
  linkUniqueMaps: {},
11877
11904
  uFoot: false,
11878
- resizeTableWidth: 0
11879
- // barTipTimeout: null
11880
- // dragBarRow: null
11905
+ resizeTableWidth: 0,
11906
+ // barTipTimeout: null,
11907
+ // dragBarRow: null,
11908
+ // dragLineRow: null,
11909
+ dragLinkToStore: {
11910
+ rowid: null,
11911
+ type: 0
11912
+ }
11913
+ };
11914
+ }
11915
+ function createReactData() {
11916
+ var _getConfig$pager;
11917
+ return {
11918
+ tableLoading: false,
11919
+ proxyInited: false,
11920
+ isZMax: false,
11921
+ tableLinks: [],
11922
+ tableData: [],
11923
+ filterData: [],
11924
+ formData: {},
11925
+ sortData: [],
11926
+ footerData: [],
11927
+ tZindex: 0,
11928
+ tablePage: {
11929
+ total: 0,
11930
+ pageSize: ((_getConfig$pager = gantt_getConfig().pager) === null || _getConfig$pager === void 0 ? void 0 : _getConfig$pager.pageSize) || 10,
11931
+ currentPage: 1
11932
+ },
11933
+ showLeftView: true,
11934
+ showRightView: true,
11935
+ taskScaleList: [],
11936
+ barTipStore: {
11937
+ row: null,
11938
+ content: '',
11939
+ visible: false,
11940
+ params: null
11941
+ },
11942
+ dragLinkFromStore: {
11943
+ rowid: null,
11944
+ type: 0
11945
+ },
11946
+ activeBarRowid: null,
11947
+ activeLink: null,
11948
+ isActiveCeLe: false,
11949
+ linkList: [],
11950
+ upLinkFlag: 0
11881
11951
  };
11882
11952
  }
11883
11953
  /* harmony default export */ var gantt = (/* define-vxe-component start */defineVxeComponent({
@@ -11918,36 +11988,8 @@ function gantt_createInternalData() {
11918
11988
  };
11919
11989
  },
11920
11990
  data: function data() {
11921
- var _getConfig$pager;
11922
11991
  var xID = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().uniqueId();
11923
- var reactData = {
11924
- tableLoading: false,
11925
- proxyInited: false,
11926
- isZMax: false,
11927
- tableLinks: [],
11928
- tableData: [],
11929
- filterData: [],
11930
- formData: {},
11931
- sortData: [],
11932
- footerData: [],
11933
- tZindex: 0,
11934
- tablePage: {
11935
- total: 0,
11936
- pageSize: ((_getConfig$pager = gantt_getConfig().pager) === null || _getConfig$pager === void 0 ? void 0 : _getConfig$pager.pageSize) || 10,
11937
- currentPage: 1
11938
- },
11939
- showLeftView: true,
11940
- showRightView: true,
11941
- taskScaleList: [],
11942
- barTipStore: {
11943
- row: null,
11944
- content: '',
11945
- visible: false,
11946
- params: null
11947
- },
11948
- linkList: [],
11949
- upLinkFlag: 0
11950
- };
11992
+ var reactData = createReactData();
11951
11993
  var internalData = gantt_createInternalData();
11952
11994
  return {
11953
11995
  xID: xID,
@@ -12066,6 +12108,15 @@ function gantt_createInternalData() {
12066
12108
  var scales = taskViewOpts.scales;
12067
12109
  return scales;
12068
12110
  },
12111
+ computeTaskLinkStyle: function computeTaskLinkStyle() {
12112
+ var $xeGantt = this;
12113
+ var _$xeGantt$computeTask = $xeGantt.computeTaskLinkOpts,
12114
+ lineType = _$xeGantt$computeTask.lineType,
12115
+ lineWidth = _$xeGantt$computeTask.lineWidth,
12116
+ lineStatus = _$xeGantt$computeTask.lineStatus,
12117
+ lineColor = _$xeGantt$computeTask.lineColor;
12118
+ return "".concat(lineType || '', "_").concat(lineWidth || '', "_").concat(lineStatus || '', "_").concat(lineColor || '');
12119
+ },
12069
12120
  /**
12070
12121
  * 已废弃,保留兼容
12071
12122
  * @deprecated
@@ -12339,6 +12390,12 @@ function gantt_createInternalData() {
12339
12390
  var $xeGantt = this;
12340
12391
  $xeGantt.handleTaskScaleConfig();
12341
12392
  $xeGantt.refreshTaskView();
12393
+ },
12394
+ computeTaskLinkStyle: function computeTaskLinkStyle() {
12395
+ var $xeGantt = this;
12396
+ if ($xeGantt.handleUpdateTaskLinkData) {
12397
+ $xeGantt.handleUpdateTaskLinkData();
12398
+ }
12342
12399
  }
12343
12400
  },
12344
12401
  methods: _objectSpread2(_objectSpread2({}, tableMethods), {}, {
@@ -13692,6 +13749,7 @@ function gantt_createInternalData() {
13692
13749
  },
13693
13750
  handleTaskCellClickEvent: function handleTaskCellClickEvent(evnt, params) {
13694
13751
  var $xeGantt = this;
13752
+ var reactData = $xeGantt.reactData;
13695
13753
  var $xeTable = $xeGantt.$refs.refTable;
13696
13754
  if ($xeTable) {
13697
13755
  var _tableProps = $xeTable;
@@ -13720,6 +13778,9 @@ function gantt_createInternalData() {
13720
13778
  $xeTable.handleToggleCheckRowEvent(evnt, params);
13721
13779
  }
13722
13780
  }
13781
+ reactData.isActiveCeLe = false;
13782
+ reactData.activeBarRowid = null;
13783
+ reactData.activeLink = null;
13723
13784
  $xeGantt.dispatchEvent('task-cell-click', params, evnt);
13724
13785
  },
13725
13786
  handleTaskCellDblclickEvent: function handleTaskCellDblclickEvent(evnt, params) {
@@ -13728,6 +13789,14 @@ function gantt_createInternalData() {
13728
13789
  },
13729
13790
  handleTaskBarClickEvent: function handleTaskBarClickEvent(evnt, params) {
13730
13791
  var $xeGantt = this;
13792
+ var reactData = $xeGantt.reactData;
13793
+ var $xeTable = $xeGantt.$refs.refTable;
13794
+ var taskBarOpts = $xeGantt.computeTaskBarOpts;
13795
+ var linkCreatable = taskBarOpts.linkCreatable;
13796
+ var row = params.row;
13797
+ reactData.isActiveCeLe = !!linkCreatable;
13798
+ reactData.activeBarRowid = $xeTable ? $xeTable.getRowid(row) : row;
13799
+ reactData.activeLink = null;
13731
13800
  $xeGantt.dispatchEvent('task-bar-click', params, evnt);
13732
13801
  },
13733
13802
  handleTaskBarDblclickEvent: function handleTaskBarDblclickEvent(evnt, params) {
@@ -13738,9 +13807,14 @@ function gantt_createInternalData() {
13738
13807
  var $xeGantt = this;
13739
13808
  var reactData = $xeGantt.reactData;
13740
13809
  var internalData = $xeGantt.internalData;
13741
- var barTipStore = reactData.barTipStore;
13742
- var dragBarRow = internalData.dragBarRow;
13743
- if (dragBarRow) {
13810
+ var barTipStore = reactData.barTipStore,
13811
+ activeLink = reactData.activeLink;
13812
+ var dragBarRow = internalData.dragBarRow,
13813
+ dragLineRow = internalData.dragLineRow;
13814
+ if (dragBarRow || dragLineRow) {
13815
+ return;
13816
+ }
13817
+ if (activeLink) {
13744
13818
  return;
13745
13819
  }
13746
13820
  var taskBarTooltipOpts = $xeGantt.computeTaskBarTooltipOpts;
@@ -13811,25 +13885,6 @@ function gantt_createInternalData() {
13811
13885
  var linkList = reactData.linkList;
13812
13886
  reactData.tableLinks = linkList.slice(0);
13813
13887
  },
13814
- handleTaskAddLink: handleTaskAddLink,
13815
- handleTaskUpdateLinks: function handleTaskUpdateLinks(links) {
13816
- var $xeGantt = this;
13817
- var reactData = $xeGantt.reactData;
13818
- var internalData = $xeGantt.internalData;
13819
- var linkConfs = [];
13820
- var fromConfMaps = {};
13821
- var fromKeyMaps = {};
13822
- var uniqueMaps = {};
13823
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(links || [], function (item) {
13824
- handleTaskAddLink(item, linkConfs, fromConfMaps, fromKeyMaps, uniqueMaps);
13825
- });
13826
- reactData.linkList = linkConfs;
13827
- internalData.linkFromConfMaps = fromConfMaps;
13828
- internalData.linkFromKeyMaps = fromKeyMaps;
13829
- internalData.linkUniqueMaps = uniqueMaps;
13830
- $xeGantt.handleTableLinks();
13831
- return $xeGantt.$nextTick();
13832
- },
13833
13888
  handleTaskHeaderContextmenuEvent: function handleTaskHeaderContextmenuEvent(evnt, params) {
13834
13889
  var $xeGantt = this;
13835
13890
  var $xeTable = $xeGantt.$refs.refTable;
@@ -14382,7 +14437,7 @@ function gantt_createInternalData() {
14382
14437
  if (props.expandConfig) {
14383
14438
  warnLog('vxe.error.notProp', ['expand-config']);
14384
14439
  }
14385
- if (!$xeGantt.handleUpdateTaskLink) {
14440
+ if (!$xeGantt.handleUpdateTaskLinkData) {
14386
14441
  if (props.taskLinkConfig) {
14387
14442
  warnLog('vxe.error.notProp', ['task-link-config']);
14388
14443
  }
@@ -14416,8 +14471,10 @@ function gantt_createInternalData() {
14416
14471
  }
14417
14472
  }
14418
14473
  });
14419
- if (props.links) {
14420
- $xeGantt.handleTaskUpdateLinks(props.links);
14474
+ if ($xeGantt.handleTaskLoadLinks) {
14475
+ if (props.links) {
14476
+ $xeGantt.handleTaskLoadLinks(props.links);
14477
+ }
14421
14478
  }
14422
14479
  $xeGantt.handleTaskScaleConfig();
14423
14480
  $xeGantt.initPages();
@@ -14434,6 +14491,11 @@ function gantt_createInternalData() {
14434
14491
  $xeGantt.initGanttView();
14435
14492
  gantt_globalEvents.on($xeGantt, 'keydown', $xeGantt.handleGlobalKeydownEvent);
14436
14493
  },
14494
+ beforeDestroy: function beforeDestroy() {
14495
+ var $xeGantt = this;
14496
+ var reactData = $xeGantt.reactData;
14497
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().assign(reactData, createReactData());
14498
+ },
14437
14499
  destroyed: function destroyed() {
14438
14500
  var $xeGantt = this;
14439
14501
  var internalData = $xeGantt.internalData;