vxe-gantt 3.9.0-beta.0 → 3.9.0-beta.2

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.
@@ -25,9 +25,9 @@ export default defineVxeComponent({
25
25
  const $xeGanttView = _vm.$xeGanttView;
26
26
  const $xeGantt = _vm.$xeGantt;
27
27
  const { reactData, internalData } = $xeGanttView;
28
- const tableReactData = $xeTable;
28
+ const tableReactData = $xeTable.getReactData();
29
29
  const { resizeHeightFlag } = tableReactData;
30
- const tableInternalData = $xeTable;
30
+ const tableInternalData = $xeTable.getInternalData();
31
31
  const { fullAllDataRowIdData, visibleColumn } = tableInternalData;
32
32
  const cellOpts = $xeTable.computeCellOpts;
33
33
  const rowOpts = $xeTable.computeRowOpts;
@@ -130,9 +130,9 @@ export default defineVxeComponent({
130
130
  const { reactData } = $xeGanttView;
131
131
  const tableProps = $xeTable;
132
132
  const { treeConfig, stripe, highlightHoverRow, editConfig } = tableProps;
133
- const tableReactData = $xeTable;
133
+ const tableReactData = $xeTable.getReactData();
134
134
  const { treeExpandedFlag, selectRadioRow, pendingRowFlag, isRowGroupStatus } = tableReactData;
135
- const tableInternalData = $xeTable;
135
+ const tableInternalData = $xeTable.getInternalData();
136
136
  const { fullAllDataRowIdData, treeExpandedMaps, pendingRowMaps } = tableInternalData;
137
137
  const radioOpts = $xeTable.computeRadioOpts;
138
138
  const checkboxOpts = $xeTable.computeCheckboxOpts;
@@ -28,9 +28,9 @@ export default defineVxeComponent({
28
28
  renderTaskBar(h, $xeTable, row, rowid, rowIndex, $rowIndex, _rowIndex, rowChildren, isExpandTree) {
29
29
  const _vm = this;
30
30
  const $xeGantt = _vm.$xeGantt;
31
- const tableReactData = $xeTable;
31
+ const tableReactData = $xeTable.getReactData();
32
32
  const { resizeHeightFlag, pendingRowFlag } = tableReactData;
33
- const tableInternalData = $xeTable;
33
+ const tableInternalData = $xeTable.getInternalData();
34
34
  const { fullAllDataRowIdData, pendingRowMaps } = tableInternalData;
35
35
  const cellOpts = $xeTable.computeCellOpts;
36
36
  const rowOpts = $xeTable.computeRowOpts;
@@ -252,8 +252,8 @@ export default defineVxeComponent({
252
252
  },
253
253
  mousedown(evnt) {
254
254
  evnt.stopPropagation();
255
- if ($xeGantt.handleTaskBarMousedownEvent) {
256
- $xeGantt.handleTaskBarMousedownEvent(evnt, childCtParams);
255
+ if ($xeGantt.handleTaskBarModnEvent) {
256
+ $xeGantt.handleTaskBarModnEvent(evnt, childCtParams);
257
257
  }
258
258
  }
259
259
  }
@@ -384,8 +384,8 @@ export default defineVxeComponent({
384
384
  $xeGantt.handleTaskBarDblclickEvent(evnt, barParams);
385
385
  },
386
386
  mousedown(evnt) {
387
- if ($xeGantt.handleTaskBarMousedownEvent) {
388
- $xeGantt.handleTaskBarMousedownEvent(evnt, barParams);
387
+ if ($xeGantt.handleTaskBarModnEvent) {
388
+ $xeGantt.handleTaskBarModnEvent(evnt, barParams);
389
389
  }
390
390
  }
391
391
  }
@@ -398,9 +398,9 @@ export default defineVxeComponent({
398
398
  const ganttViewReactData = $xeGanttView.reactData;
399
399
  const tableProps = $xeTable;
400
400
  const { treeConfig } = tableProps;
401
- const tableReactData = $xeTable;
401
+ const tableReactData = $xeTable.getReactData();
402
402
  const { treeExpandedFlag } = tableReactData;
403
- const tableInternalData = $xeTable;
403
+ const tableInternalData = $xeTable.getInternalData();
404
404
  const { fullAllDataRowIdData, treeExpandedMaps } = tableInternalData;
405
405
  const treeOpts = $xeTable.computeTreeOpts;
406
406
  const { transform } = treeOpts;
@@ -1,5 +1,5 @@
1
1
  import { defineVxeComponent } from '../../ui/src/comp';
2
- import { VxeUI } from '@vxe-ui/core';
2
+ import { VxeUI, globalMixins } from '@vxe-ui/core';
3
3
  import { getDefaultConfig } from '../../ui/src/utils';
4
4
  import { setScrollTop, setScrollLeft, removeClass, addClass, hasClass } from '../../ui/src/dom';
5
5
  import { getRefElem, getTaskBarLeft, getTaskBarWidth, hasMilestoneTask, getTaskType, hasSubviewTask } from './util';
@@ -8,8 +8,7 @@ import XEUtils from 'xe-utils';
8
8
  import GanttViewHeaderComponent from './gantt-header';
9
9
  import GanttViewBodyComponent from './gantt-body';
10
10
  import GanttViewFooterComponent from './gantt-footer';
11
- const { getConfig, domUtils, scrollbarUtils, globalResize, globalEvents, renderEmptyElement } = VxeUI;
12
- const { getThumbOffsetSize, getThumbSize, getScrollFromClick, getScrollFromDrag } = scrollbarUtils;
11
+ const { getConfig, domUtils, globalResize, globalEvents, renderEmptyElement } = VxeUI;
13
12
  const { FinishToStart, StartToFinish, StartToStart, FinishToFinish } = VxeGanttDependencyType;
14
13
  const sourceType = 'gantt';
15
14
  const secondMs = 1000;
@@ -739,9 +738,9 @@ function handleParseColumn($xeGanttView) {
739
738
  const startField = $xeGantt.computeStartField;
740
739
  const endField = $xeGantt.computeEndField;
741
740
  const typeField = $xeGantt.computeTypeField;
742
- const tableReactData = $xeTable;
741
+ const tableReactData = $xeTable.getReactData();
743
742
  const { isRowGroupStatus } = tableReactData;
744
- const tableInternalData = $xeTable;
743
+ const tableInternalData = $xeTable.getInternalData();
745
744
  const { afterFullData, afterTreeFullData, afterGroupFullData } = tableInternalData;
746
745
  const aggregateOpts = $xeTable.computeAggregateOpts;
747
746
  const treeOpts = $xeTable.computeTreeOpts;
@@ -822,9 +821,9 @@ function handleUpdateData($xeGanttView) {
822
821
  const startField = $xeGantt.computeStartField;
823
822
  const endField = $xeGantt.computeEndField;
824
823
  const typeField = $xeGantt.computeTypeField;
825
- const tableReactData = $xeTable;
824
+ const tableReactData = $xeTable.getReactData();
826
825
  const { isRowGroupStatus } = tableReactData;
827
- const tableInternalData = $xeTable;
826
+ const tableInternalData = $xeTable.getInternalData();
828
827
  const { afterFullData, afterTreeFullData, afterGroupFullData } = tableInternalData;
829
828
  const aggregateOpts = $xeTable.computeAggregateOpts;
830
829
  const treeOpts = $xeTable.computeTreeOpts;
@@ -1257,7 +1256,7 @@ function updateStyle($xeGanttView) {
1257
1256
  let tHeaderHeight = 0;
1258
1257
  let tFooterHeight = 0;
1259
1258
  if ($xeTable) {
1260
- const tableInternalData = $xeTable;
1259
+ const tableInternalData = $xeTable.getInternalData();
1261
1260
  tbHeight = tableInternalData.tBodyHeight;
1262
1261
  tHeaderHeight = tableInternalData.tHeaderHeight;
1263
1262
  tFooterHeight = tableInternalData.tFooterHeight;
@@ -1544,7 +1543,7 @@ function updateScrollYSpace($xeGanttView) {
1544
1543
  let scrollYHeight = 0;
1545
1544
  let isScrollYBig = false;
1546
1545
  if ($xeTable) {
1547
- const tableReactData = $xeTable;
1546
+ const tableReactData = $xeTable.getReactData();
1548
1547
  ySpaceTop = tableReactData.scrollYTop;
1549
1548
  scrollYHeight = tableReactData.scrollYHeight;
1550
1549
  isScrollYBig = tableReactData.isScrollYBig;
@@ -1645,7 +1644,7 @@ function syncTableScrollTop($xeGanttView, scrollTop) {
1645
1644
  const internalData = $xeGanttView.internalData;
1646
1645
  const $xeTable = internalData.xeTable;
1647
1646
  if ($xeTable) {
1648
- const tableInternalData = $xeTable;
1647
+ const tableInternalData = $xeTable.getInternalData();
1649
1648
  const { elemStore: tableElemStore } = tableInternalData;
1650
1649
  const tableBodyScrollElem = getRefElem(tableElemStore['main-body-scroll']);
1651
1650
  if (tableBodyScrollElem) {
@@ -1655,6 +1654,10 @@ function syncTableScrollTop($xeGanttView, scrollTop) {
1655
1654
  }
1656
1655
  export default defineVxeComponent({
1657
1656
  name: 'VxeGanttView',
1657
+ mixins: [
1658
+ globalMixins.vScrollbarMixin,
1659
+ globalMixins.initVScrollbarMixin
1660
+ ],
1658
1661
  inject: {
1659
1662
  $xeGantt: {
1660
1663
  default: null
@@ -1680,7 +1683,13 @@ export default defineVxeComponent({
1680
1683
  reScrollFlag: 0
1681
1684
  };
1682
1685
  },
1683
- computed: Object.assign(Object.assign({}, {}), { computeScrollbarXOpts() {
1686
+ computed: Object.assign(Object.assign({}, {}), { computeGanttIsVScrollbar() {
1687
+ const $xeGanttView = this;
1688
+ const $xeGantt = $xeGanttView.$xeGantt;
1689
+ const isVScrollbar = $xeGantt.computeIsVScrollbar;
1690
+ return isVScrollbar;
1691
+ },
1692
+ computeScrollbarXOpts() {
1684
1693
  const $xeGanttView = this;
1685
1694
  const $xeGantt = $xeGanttView.$xeGantt;
1686
1695
  const scrollbarOpts = $xeGantt.computeScrollbarOpts;
@@ -1926,6 +1935,13 @@ export default defineVxeComponent({
1926
1935
  //
1927
1936
  // Method
1928
1937
  //
1938
+ getScrollViewElem() {
1939
+ const $xeGanttView = this;
1940
+ const internalData = $xeGanttView.internalData;
1941
+ const { elemStore } = internalData;
1942
+ const viewEl = getRefElem(elemStore['main-body-scroll']);
1943
+ return viewEl;
1944
+ },
1929
1945
  refreshData() {
1930
1946
  const $xeGanttView = this;
1931
1947
  const internalData = $xeGanttView.internalData;
@@ -1947,7 +1963,7 @@ export default defineVxeComponent({
1947
1963
  const ganttReactData = $xeGantt.reactData;
1948
1964
  const $xeTable = internalData.xeTable;
1949
1965
  if ($xeTable) {
1950
- const tableReactData = $xeTable;
1966
+ const tableReactData = $xeTable.getReactData();
1951
1967
  const { tableData } = tableReactData;
1952
1968
  reactData.tableData = tableData;
1953
1969
  if (force) {
@@ -2241,192 +2257,30 @@ export default defineVxeComponent({
2241
2257
  handleLazyRecalculate($xeGanttView);
2242
2258
  },
2243
2259
  // 滚动条
2244
- updateThumbSize() {
2245
- const $xeGanttView = this;
2246
- const reactData = $xeGanttView.reactData;
2247
- const internalData = $xeGanttView.internalData;
2248
- const { elemStore } = internalData;
2249
- const viewEl = getRefElem(elemStore['main-body-scroll']);
2250
- if (!viewEl) {
2251
- return;
2252
- }
2253
- if (!viewEl.clientHeight || !viewEl.clientHeight) {
2254
- return;
2255
- }
2256
- const trackXEl = $xeGanttView.$refs.refTrackXElem;
2257
- const xThumbWidth = trackXEl ? getThumbSize(viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth) : 0;
2258
- const thumbXElem = $xeGanttView.$refs.refThumbXElem;
2259
- if (thumbXElem) {
2260
- thumbXElem.style.width = xThumbWidth + 'px';
2261
- }
2262
- reactData.xThumbWidth = xThumbWidth;
2263
- const trackYEl = $xeGanttView.$refs.refTrackYElem;
2264
- const yThumbHeight = trackYEl ? getThumbSize(viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight) : 0;
2265
- const thumbYElem = $xeGanttView.$refs.refThumbYElem;
2266
- if (thumbYElem) {
2267
- thumbYElem.style.height = yThumbHeight + 'px';
2268
- }
2269
- reactData.yThumbHeight = yThumbHeight;
2270
- },
2271
- updateThumbOffset() {
2272
- const $xeGanttView = this;
2273
- const reactData = $xeGanttView.reactData;
2274
- const internalData = $xeGanttView.internalData;
2275
- const { elemStore } = internalData;
2276
- const viewEl = getRefElem(elemStore['main-body-scroll']);
2277
- if (!viewEl) {
2278
- return;
2279
- }
2280
- if (!viewEl.clientHeight || !viewEl.clientHeight) {
2281
- return;
2282
- }
2283
- const { xThumbWidth, yThumbHeight } = reactData;
2284
- const trackXEl = $xeGanttView.$refs.refTrackXElem;
2285
- const thumbXElem = $xeGanttView.$refs.refThumbXElem;
2286
- const xThumbLeft = trackXEl && xThumbWidth ? getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth, xThumbWidth) : 0;
2287
- internalData.xThumbLeft = xThumbLeft;
2288
- if (thumbXElem && xThumbWidth) {
2289
- thumbXElem.style.width = xThumbWidth + 'px';
2290
- thumbXElem.style.transform = `translateX(${xThumbLeft}px)`;
2291
- }
2292
- const trackYEl = $xeGanttView.$refs.refTrackYElem;
2293
- const thumbYElem = $xeGanttView.$refs.refThumbYElem;
2294
- const yThumbTop = trackYEl && yThumbHeight ? getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight, yThumbHeight) : 0;
2295
- internalData.yThumbTop = yThumbTop;
2296
- if (thumbYElem && yThumbHeight) {
2297
- thumbYElem.style.height = yThumbHeight + 'px';
2298
- thumbYElem.style.transform = `translateY(${yThumbTop}px)`;
2299
- }
2300
- },
2301
- clickTrackXEvent(evnt) {
2302
- const $xeGanttView = this;
2303
- const reactData = $xeGanttView.reactData;
2304
- const internalData = $xeGanttView.internalData;
2305
- const trackEl = evnt.currentTarget;
2306
- if (trackEl !== evnt.target) {
2307
- return;
2308
- }
2309
- const { elemStore } = internalData;
2310
- const viewEl = getRefElem(elemStore['main-body-scroll']);
2311
- if (!viewEl) {
2312
- return;
2313
- }
2314
- const { xThumbWidth } = reactData;
2315
- const trackRect = trackEl.getBoundingClientRect();
2316
- viewEl.scrollTo({
2317
- left: getScrollFromClick(evnt.clientX - trackRect.left, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth),
2318
- behavior: 'auto'
2319
- });
2320
- },
2321
- clickTrackYEvent(evnt) {
2322
- const $xeGanttView = this;
2323
- const reactData = $xeGanttView.reactData;
2324
- const internalData = $xeGanttView.internalData;
2325
- const trackEl = evnt.currentTarget;
2326
- if (trackEl !== evnt.target) {
2327
- return;
2328
- }
2329
- const { elemStore } = internalData;
2330
- const viewEl = getRefElem(elemStore['main-body-scroll']);
2331
- if (!viewEl) {
2332
- return;
2333
- }
2334
- const { yThumbHeight } = reactData;
2335
- const trackRect = trackEl.getBoundingClientRect();
2336
- viewEl.scrollTo({
2337
- top: getScrollFromClick(evnt.clientY - trackRect.top, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight),
2338
- behavior: 'auto'
2339
- });
2340
- },
2341
- pointerdownThumbXEvent(evnt) {
2342
- const $xeGanttView = this;
2343
- const reactData = $xeGanttView.reactData;
2344
- const internalData = $xeGanttView.internalData;
2345
- const thumbEl = evnt.currentTarget;
2346
- internalData.isThumbDrag = true;
2347
- thumbEl.setPointerCapture(evnt.pointerId);
2348
- const { elemStore } = internalData;
2349
- const viewEl = getRefElem(elemStore['main-body-scroll']);
2350
- if (!viewEl) {
2351
- return;
2352
- }
2353
- const { xThumbWidth } = reactData;
2354
- const trackEl = thumbEl.parentElement;
2355
- const trackRect = trackEl.getBoundingClientRect();
2356
- const pointerPosition = evnt.clientX - trackRect.left;
2357
- // 记录 thumb 的偏移
2358
- const thumbOffset = getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
2359
- internalData.thumbDragOffset = pointerPosition - thumbOffset;
2360
- },
2361
- pointermoveThumbXEvent(evnt) {
2362
- const $xeGanttView = this;
2363
- const reactData = $xeGanttView.reactData;
2364
- const internalData = $xeGanttView.internalData;
2365
- const thumbEl = evnt.currentTarget;
2366
- if (!thumbEl.hasPointerCapture(evnt.pointerId)) {
2367
- return;
2368
- }
2369
- const { elemStore, isThumbDrag, thumbDragOffset } = internalData;
2370
- if (isThumbDrag) {
2371
- const viewEl = getRefElem(elemStore['main-body-scroll']);
2372
- if (!viewEl) {
2373
- return;
2374
- }
2375
- const { xThumbWidth } = reactData;
2376
- const thumbEl = evnt.currentTarget;
2377
- const trackEl = thumbEl.parentElement;
2378
- const trackRect = trackEl.getBoundingClientRect();
2379
- // 更新偏移
2380
- viewEl.scrollLeft = getScrollFromDrag(evnt.clientX - trackRect.left, thumbDragOffset, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
2381
- }
2382
- },
2383
- cleatPointerThumbEvent(evnt) {
2260
+ bindScrollbarResize() {
2384
2261
  const $xeGanttView = this;
2385
2262
  const internalData = $xeGanttView.internalData;
2386
- const thumbEl = evnt.currentTarget;
2387
- thumbEl.releasePointerCapture(evnt.pointerId);
2388
- internalData.isThumbDrag = false;
2389
- },
2390
- pointerdownThumbYEvent(evnt) {
2391
- const $xeGanttView = this;
2392
- const reactData = $xeGanttView.reactData;
2393
- const internalData = $xeGanttView.internalData;
2394
- const thumbEl = evnt.currentTarget;
2395
- internalData.isThumbDrag = true;
2396
- thumbEl.setPointerCapture(evnt.pointerId);
2397
- const { elemStore } = internalData;
2398
- const viewEl = getRefElem(elemStore['main-body-scroll']);
2399
- if (!viewEl) {
2400
- return;
2401
- }
2402
- const { yThumbHeight } = reactData;
2403
- const trackEl = thumbEl.parentElement;
2404
- const trackRect = trackEl.getBoundingClientRect();
2405
- const pointerPosition = evnt.clientY - trackRect.top;
2406
- // 记录 thumb 的偏移
2407
- const thumbOffset = getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
2408
- internalData.thumbDragOffset = pointerPosition - thumbOffset;
2409
- },
2410
- pointermoveThumbYEvent(evnt) {
2411
- const $xeGanttView = this;
2412
- const reactData = $xeGanttView.reactData;
2413
- const internalData = $xeGanttView.internalData;
2414
- const thumbEl = evnt.currentTarget;
2415
- if (!thumbEl.hasPointerCapture(evnt.pointerId)) {
2416
- return;
2417
- }
2418
- const { elemStore, isThumbDrag, thumbDragOffset } = internalData;
2419
- if (isThumbDrag) {
2420
- const viewEl = getRefElem(elemStore['main-body-scroll']);
2421
- if (!viewEl) {
2422
- return;
2263
+ const { elemStore, scrollObserver } = internalData;
2264
+ const isVScrollbar = $xeGanttView.$refs.computeIsVScrollbar;
2265
+ if (isVScrollbar) {
2266
+ if (!scrollObserver) {
2267
+ const el = $xeGanttView.$refs.refElem;
2268
+ const viewInnerXEl = getRefElem(elemStore['main-body-xSpace']);
2269
+ const viewInnerYEl = getRefElem(elemStore['main-body-xSpace']);
2270
+ const scrollObserver = globalResize.create(() => {
2271
+ $xeGanttView.reScrollFlag++;
2272
+ });
2273
+ if (el) {
2274
+ scrollObserver.observe(el);
2275
+ }
2276
+ if (viewInnerXEl) {
2277
+ scrollObserver.observe(viewInnerXEl);
2278
+ }
2279
+ if (viewInnerYEl) {
2280
+ scrollObserver.observe(viewInnerYEl);
2281
+ }
2282
+ internalData.scrollObserver = scrollObserver;
2423
2283
  }
2424
- const { yThumbHeight } = reactData;
2425
- const thumbEl = evnt.currentTarget;
2426
- const trackEl = thumbEl.parentElement;
2427
- const trackRect = trackEl.getBoundingClientRect();
2428
- // 更新偏移
2429
- viewEl.scrollTop = getScrollFromDrag(evnt.clientY - trackRect.top, thumbDragOffset, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
2430
2284
  }
2431
2285
  },
2432
2286
  //
@@ -2535,11 +2389,10 @@ export default defineVxeComponent({
2535
2389
  const $xeGantt = $xeGanttView.$xeGantt;
2536
2390
  const reactData = $xeGanttView.reactData;
2537
2391
  const ganttReactData = $xeGantt.reactData;
2538
- const ganttProps = $xeGantt;
2539
2392
  const { showLeftView } = ganttReactData;
2540
- const { useScrollbar } = ganttProps;
2541
2393
  const { xThumbWidth, yThumbHeight } = reactData;
2542
2394
  const scrollbarOpts = $xeGantt.computeScrollbarOpts;
2395
+ const isVScrollbar = $xeGantt.computeIsVScrollbar;
2543
2396
  const scrollXAutoHide = $xeGanttView.computeScrollXAutoHide;
2544
2397
  const scrollYAutoHide = $xeGanttView.computeScrollYAutoHide;
2545
2398
  const scrollXVisible = $xeGanttView.computeScrollXVisible;
@@ -2550,10 +2403,10 @@ export default defineVxeComponent({
2550
2403
  return h('div', {
2551
2404
  key: 'lvb',
2552
2405
  class: ['vxe-gantt--layout-wrapper', `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}`, `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}`, {
2553
- 'is--virtual-scrollbar': useScrollbar,
2554
- 'ov-padding': useScrollbar && scrollbarOpts.padding,
2555
- 'ov-x--auto-hide': useScrollbar && scrollXAutoHide,
2556
- 'ov-y--auto-hide': useScrollbar && scrollYAutoHide,
2406
+ 'is--virtual-scrollbar': isVScrollbar,
2407
+ 'ov-padding': isVScrollbar && scrollbarOpts.padding,
2408
+ 'ov-x--auto-hide': isVScrollbar && scrollXAutoHide,
2409
+ 'ov-y--auto-hide': isVScrollbar && scrollYAutoHide,
2557
2410
  'overflow-y': yThumbHeight,
2558
2411
  'overflow-x': xThumbWidth
2559
2412
  }]
@@ -2611,9 +2464,8 @@ export default defineVxeComponent({
2611
2464
  const $xeGanttView = this;
2612
2465
  const $xeGantt = $xeGanttView.$xeGantt;
2613
2466
  const reactData = $xeGanttView.reactData;
2614
- const ganttProps = $xeGantt;
2615
- const { useScrollbar } = ganttProps;
2616
2467
  const { overflowX, overflowY, scrollXLoad, scrollYLoad } = reactData;
2468
+ const isVScrollbar = $xeGantt.computeIsVScrollbar;
2617
2469
  const scrollbarXToTop = $xeGantt.computeScrollbarXToTop;
2618
2470
  return h('div', {
2619
2471
  ref: 'refElem',
@@ -2626,7 +2478,7 @@ export default defineVxeComponent({
2626
2478
  }, [
2627
2479
  h('div', {
2628
2480
  class: 'vxe-gantt-view--render-wrapper'
2629
- }, useScrollbar
2481
+ }, isVScrollbar
2630
2482
  ? [$xeGanttView.renderVirtualBody(h)]
2631
2483
  : (scrollbarXToTop
2632
2484
  ? [
@@ -2649,6 +2501,15 @@ export default defineVxeComponent({
2649
2501
  }
2650
2502
  },
2651
2503
  watch: {
2504
+ computeGanttIsVScrollbar() {
2505
+ const $xeGanttView = this;
2506
+ $xeGanttView.$nextTick(() => {
2507
+ $xeGanttView.bindScrollbarResize();
2508
+ $xeGanttView.$nextTick(() => {
2509
+ $xeGanttView.reScrollFlag++;
2510
+ });
2511
+ });
2512
+ },
2652
2513
  computeScrollbarXToTop() {
2653
2514
  const $xeGanttView = this;
2654
2515
  $xeGanttView.reScrollFlag++;
@@ -2685,26 +2546,8 @@ export default defineVxeComponent({
2685
2546
  },
2686
2547
  mounted() {
2687
2548
  const $xeGanttView = this;
2688
- const $xeGantt = $xeGanttView.$xeGantt;
2689
- const internalData = $xeGanttView.internalData;
2690
2549
  $xeGanttView.$nextTick(() => {
2691
- const ganttProps = $xeGantt;
2692
- const { useScrollbar } = ganttProps;
2693
- const { elemStore } = internalData;
2694
- const el = $xeGanttView.$refs.refElem;
2695
- if (useScrollbar) {
2696
- const viewInnerEl = getRefElem(elemStore['main-body-table']);
2697
- const scrollObserver = globalResize.create(() => {
2698
- $xeGanttView.reScrollFlag++;
2699
- });
2700
- if (el) {
2701
- scrollObserver.observe(el);
2702
- }
2703
- if (viewInnerEl) {
2704
- scrollObserver.observe(viewInnerEl);
2705
- }
2706
- internalData.scrollObserver = scrollObserver;
2707
- }
2550
+ $xeGanttView.bindScrollbarResize();
2708
2551
  });
2709
2552
  globalEvents.on($xeGanttView, 'resize', $xeGanttView.handleGlobalResizeEvent);
2710
2553
  },
@@ -136,7 +136,8 @@ function createReactData() {
136
136
  export default {
137
137
  name: 'VxeGantt',
138
138
  mixins: [
139
- globalMixins.sizeMixin
139
+ globalMixins.sizeMixin,
140
+ globalMixins.vScrollbarMixin
140
141
  ],
141
142
  props: Object.assign(Object.assign({}, tableProps), { columns: Array, pagerConfig: Object, proxyConfig: Object, toolbarConfig: Object, formConfig: Object, zoomConfig: Object, links: Array, layouts: Array, taskConfig: Object, taskViewScaleConfig: Object, taskNowLineConfig: Object, taskViewConfig: Object, taskLinkConfig: Object, taskBarConfig: Object, taskBarMilestoneConfig: Object, taskCriticalPathConfig: Object, taskBarSubviewConfig: Object, taskBarTooltipConfig: Object, taskSplitConfig: Object, taskBarResizeConfig: Object, taskBarResizeTooltipConfig: Object, taskBarMoveConfig: Object, taskBarMoveTooltipConfig: Object, size: {
142
143
  type: String,
@@ -407,8 +408,9 @@ export default {
407
408
  const $xeGantt = this;
408
409
  const props = $xeGantt;
409
410
  const reactData = $xeGantt.reactData;
410
- const { height, maxHeight, useScrollbar, taskBarSubviewConfig } = props;
411
+ const { height, maxHeight, taskBarSubviewConfig } = props;
411
412
  const { isZMax, tZindex, overflowY, scrollbarWidth } = reactData;
413
+ const isVScrollbar = $xeGantt.computeIsVScrollbar;
412
414
  const taskViewOpts = $xeGantt.computeTaskViewOpts;
413
415
  const { viewStyle, tableStyle } = taskViewOpts;
414
416
  const taskBarOpts = $xeGantt.computeTaskBarOpts;
@@ -421,7 +423,7 @@ export default {
421
423
  const barWidth = $xeGantt.computeScrollYWidth;
422
424
  const barHeight = $xeGantt.computeScrollXHeight;
423
425
  const stys = {
424
- '--vxe-ui-gantt-scrollbar-width': (overflowY ? (useScrollbar ? 'var(--vxe-ui-scrollbar-y-width)' : (scrollbarWidth + 'px')) : '')
426
+ '--vxe-ui-gantt-scrollbar-width': (overflowY ? (isVScrollbar ? 'var(--vxe-ui-scrollbar-y-width)' : (scrollbarWidth + 'px')) : '')
425
427
  };
426
428
  if (cpLineColor) {
427
429
  stys['--vxe-ui-gantt-view-bar-critical-path-line-color'] = cpLineColor;
@@ -1230,7 +1232,7 @@ export default {
1230
1232
  reactData.formData = formData;
1231
1233
  }
1232
1234
  if ($xeTable) {
1233
- const tableInternalData = $xeTable;
1235
+ const tableInternalData = $xeTable.getInternalData();
1234
1236
  const { tableFullColumn, fullColumnFieldData } = tableInternalData;
1235
1237
  const sortOpts = $xeTable.computeSortOpts;
1236
1238
  let defaultSort = sortOpts.defaultSort;
@@ -2097,7 +2099,7 @@ export default {
2097
2099
  if ($xeTable) {
2098
2100
  const tableProps = $xeTable;
2099
2101
  const { highlightCurrentRow } = tableProps;
2100
- const tableReactData = $xeTable;
2102
+ const tableReactData = $xeTable.getReactData();
2101
2103
  const { radioColumn, checkboxColumn } = tableReactData;
2102
2104
  const radioOpts = $xeTable.computeRadioOpts;
2103
2105
  const checkboxOpts = $xeTable.computeCheckboxOpts;
@@ -2649,10 +2651,9 @@ export default {
2649
2651
  },
2650
2652
  renderChildLayout(h, layoutKeys) {
2651
2653
  const $xeGantt = this;
2652
- const props = $xeGantt;
2653
2654
  const reactData = $xeGantt.reactData;
2654
- const { useScrollbar } = props;
2655
2655
  const { showLeftView, showRightView } = reactData;
2656
+ const isVScrollbar = $xeGantt.computeIsVScrollbar;
2656
2657
  const taskSplitOpts = $xeGantt.computeTaskSplitOpts;
2657
2658
  const scrollbarXToTop = $xeGantt.computeScrollbarXToTop;
2658
2659
  const scrollbarYToLeft = $xeGantt.computeScrollbarYToLeft;
@@ -2674,7 +2675,7 @@ export default {
2674
2675
  ref: 'refGanttContainerElem',
2675
2676
  key: 'tv',
2676
2677
  class: ['vxe-gantt--gantt-container', `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}`, `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}`, {
2677
- 'is--virtual-scrollbar': useScrollbar,
2678
+ 'is--virtual-scrollbar': isVScrollbar,
2678
2679
  'show--left': showLeftView,
2679
2680
  'hide--left': !showLeftView,
2680
2681
  'show--right': showRightView,
@@ -2804,6 +2805,7 @@ export default {
2804
2805
  const reactData = $xeGantt.reactData;
2805
2806
  const { showLeftView, showRightView, overflowY, overflowX, showSplitAnimat } = reactData;
2806
2807
  const vSize = $xeGantt.computeSize;
2808
+ const isVScrollbar = $xeGantt.computeIsVScrollbar;
2807
2809
  const wrapperStyle = $xeGantt.computeWrapperStyle;
2808
2810
  const isLoading = $xeGantt.computeIsLoading;
2809
2811
  const taskSplitOpts = $xeGantt.computeTaskSplitOpts;
@@ -2814,6 +2816,7 @@ export default {
2814
2816
  ref: 'refElem',
2815
2817
  class: ['vxe-gantt', `border--${tableBorder}`, `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}`, `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}`, {
2816
2818
  [`size--${vSize}`]: vSize,
2819
+ 'is--virtual-scrollbar': isVScrollbar,
2817
2820
  'is--round': props.round,
2818
2821
  'show--animat': taskSplitOpts.animation,
2819
2822
  'is--maximize': reactData.isZMax,
package/es/ui/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { VxeUI } from '@vxe-ui/core';
2
2
  const { setConfig, setIcon } = VxeUI;
3
- VxeUI.ganttVersion = "3.9.0-beta.0";
3
+ VxeUI.ganttVersion = "3.9.0-beta.2";
4
4
  const ymdFormat = 'yyyy-MM-dd';
5
5
  const ymdhmsFormat = 'yyyy-MM-dd HH:mm:ss';
6
6
  setConfig({
package/es/ui/src/log.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { VxeUI } from '@vxe-ui/core';
2
2
  const { log } = VxeUI;
3
- const ganttVersion = `gantt v${"3.9.0-beta.0"}`;
3
+ const ganttVersion = `gantt v${"3.9.0-beta.2"}`;
4
4
  export function createComponentLog(name) {
5
5
  const uiVersion = VxeUI.uiVersion ? `ui v${VxeUI.uiVersion}` : '';
6
6
  const tableVersion = VxeUI.tableVersion ? `table v${VxeUI.tableVersion}` : '';
@@ -39,9 +39,9 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
39
39
  var $xeGantt = _vm.$xeGantt;
40
40
  var reactData = $xeGanttView.reactData,
41
41
  internalData = $xeGanttView.internalData;
42
- var tableReactData = $xeTable;
42
+ var tableReactData = $xeTable.getReactData();
43
43
  var resizeHeightFlag = tableReactData.resizeHeightFlag;
44
- var tableInternalData = $xeTable;
44
+ var tableInternalData = $xeTable.getInternalData();
45
45
  var fullAllDataRowIdData = tableInternalData.fullAllDataRowIdData,
46
46
  visibleColumn = tableInternalData.visibleColumn;
47
47
  var cellOpts = $xeTable.computeCellOpts;
@@ -159,12 +159,12 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
159
159
  stripe = tableProps.stripe,
160
160
  highlightHoverRow = tableProps.highlightHoverRow,
161
161
  editConfig = tableProps.editConfig;
162
- var tableReactData = $xeTable;
162
+ var tableReactData = $xeTable.getReactData();
163
163
  var treeExpandedFlag = tableReactData.treeExpandedFlag,
164
164
  selectRadioRow = tableReactData.selectRadioRow,
165
165
  pendingRowFlag = tableReactData.pendingRowFlag,
166
166
  isRowGroupStatus = tableReactData.isRowGroupStatus;
167
- var tableInternalData = $xeTable;
167
+ var tableInternalData = $xeTable.getInternalData();
168
168
  var fullAllDataRowIdData = tableInternalData.fullAllDataRowIdData,
169
169
  treeExpandedMaps = tableInternalData.treeExpandedMaps,
170
170
  pendingRowMaps = tableInternalData.pendingRowMaps;
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _comp=require("../../ui/src/comp"),_util=require("./util"),_utils=require("../../ui/src/utils"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ganttChart=_interopRequireDefault(require("./gantt-chart"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_unsupportedIterableToArray(e)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){var r;if(e)return"string"==typeof e?_arrayLikeToArray(e,t):"Map"===(r="Object"===(r={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:r)||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_arrayLikeToArray(e,t):void 0}function _iterableToArray(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function _arrayWithoutHoles(e){if(Array.isArray(e))return _arrayLikeToArray(e)}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,a=Array(t);r<t;r++)a[r]=e[r];return a}var sourceType="gantt",viewType="body",_default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttViewBody",inject:{$xeGantt:{default:null},$xeGanttView:{default:null}},computed:Object.assign({},{}),methods:{renderColumn:function(e,t,r,a,n,o,l,i,c){var s,u=this.$xeGanttView,d=this.$xeGantt,p=u.reactData,w=t.resizeHeightFlag,y=t.fullAllDataRowIdData,f=t.visibleColumn,m=t.computeCellOpts,v=t.computeRowOpts,g=t.computeResizableOpts.isAllRowDrag,p=p.headerGroups,u=u.internalData.todayDateMaps,h=d.computeTaskViewOpts,x=h.showNowLine,b=d.computeScaleUnit,p=(p[p.length-1]||{}).scaleItem,_=i.field,R=i.dateObj,D=i.startDateObj,T=i.endDateObj,h=h.viewStyle||{},C=h.cellClassName,h=h.cellStyle,u=x&&p?u[p.type]:null,p=y[a]||{},y=w?(0,_util.getCellRestHeight)(p,m,v,t.computeDefaultRowHeight):0,w=[],S=(g&&v.resizable&&(s={$table:t,$grid:null,$gantt:d,seq:-1,rowid:a,row:r,rowIndex:n,$rowIndex:o,_rowIndex:l,column:f[0],columnIndex:0,$columnIndex:0,_columnIndex:0,fixed:"",source:sourceType,type:viewType,isHidden:!1,isEdit:!1,level:-1,visibleData:[],data:[],items:[]},w.push(e("div",{class:"vxe-gantt-view-cell--row-resizable",on:{mousedown:function(e){return t.handleRowResizeMousedownEvent(e,s)},dblclick:function(e){return t.handleRowResizeDblclickEvent(e,s)}}}))),{$gantt:d,source:sourceType,type:viewType,scaleType:b,dateObj:R,startDateObj:D,endDateObj:T,row:r,column:i,$rowIndex:o,rowIndex:n,_rowIndex:l});return e("td",{key:C||h?_:c,class:["vxe-gantt-view--body-column",{"is--now":x&&u===_},(0,_utils.getClass)(C,S)],style:h?Object.assign({},_xeUtils.default.isFunction(h)?h(S):h,{height:"".concat(y,"px")}):{height:"".concat(y,"px")},on:{click:function(e){d.handleTaskCellClickEvent(e,{row:r,column:i})},dblclick:function(e){d.handleTaskCellDblclickEvent(e,{row:r,column:i})},contextmenu:function(e){d.handleTaskBodyContextmenuEvent(e,S)}}},w)},renderRows:function(c,s,e){var u=this,t=u.$xeGanttView,d=u.$xeGantt,t=t.reactData,p=s.treeConfig,w=s.stripe,y=s.highlightHoverRow,f=s.editConfig,m=s.treeExpandedFlag,v=s.selectRadioRow,g=s.pendingRowFlag,h=s.isRowGroupStatus,x=s.fullAllDataRowIdData,b=s.treeExpandedMaps,_=s.pendingRowMaps,R=s.computeRadioOpts,D=s.computeCheckboxOpts,T=s.computeRowOpts,r=s.computeTreeOpts,C=r.transform,S=r.children||r.childrenField,I=d.computeScaleUnit,r=d.computeTaskViewOpts.viewStyle||{},$=r.rowClassName,k=r.rowStyle,A=r.cellClassName,O=r.cellStyle,E=t.tableColumn,B=t.scrollYLoad,G=[];return e.forEach(function(r,a){var n=s.getRowid(r),e=x[n]||{},t={},o=a,l=-1,e=(e&&(o=e.index,l=e._index),!1),i=(f&&(e=s.isInsertByRow(r)),(T.isHover||y)&&(t.mouseenter=function(e){s.triggerHoverEvent(e,{row:r,rowIndex:o})},t.mouseleave=function(){s.clearHoverRow()}),!T.drag||h||p&&!C||(t.dragstart=s.handleRowDragDragstartEvent,t.dragend=s.handleRowDragDragendEvent,t.dragover=s.handleRowDragDragoverEvent),{$gantt:d,source:sourceType,type:viewType,scaleType:I,row:r,rowIndex:o,$rowIndex:a,_rowIndex:l}),e=(G.push(c("tr",{key:$||k||A||O?n:a,class:["vxe-gantt-view--body-row",{"row--stripe":w&&(l+1)%2==0,"is--new":e,"row--radio":R.highlight&&s.eqRow(v,r),"row--checked":D.highlight&&s.isCheckedByCheckboxRow(r),"row--pending":!!g&&!!_[n]},(0,_utils.getClass)($,i)],style:k?_xeUtils.default.isFunction(k)?k(i)||void 0:k:void 0,attrs:{rowid:n},on:t},E.map(function(e,t){return u.renderColumn(c,s,r,n,o,a,l,e,t)}))),!1),i=[];!p||B||C||(i=r[S],e=!!m&&i&&0<i.length&&!!b[n]),e&&G.push.apply(G,_toConsumableArray(u.renderRows(c,s,i)))}),G},renderVN:function(r){var t=this.$xeGantt,e=this.$xeGanttView,a=e.reactData,n=e.internalData.xeTable,o=a.tableData,l=a.tableColumn,i=a.viewCellWidth;return r("div",{ref:"refElem",class:"vxe-gantt-view--body-wrapper"},[r("div",{ref:"refBodyScroll",class:"vxe-gantt-view--body-inner-wrapper",on:{scroll:e.triggerBodyScrollEvent,contextmenu:function(e){t.handleTaskBodyContextmenuEvent(e,{source:sourceType,type:viewType,rowIndex:-1,$rowIndex:-1,_rowIndex:-1})}}},[r("div",{ref:"refBodyXSpace",class:"vxe-body--x-space"}),r("div",{ref:"refBodyYSpace",class:"vxe-body--y-space"}),r("table",{ref:"refBodyTable",class:"vxe-gantt-view--body-table"},[r("colgroup",{},l.map(function(e,t){return r("col",{key:t,style:{width:"".concat(i,"px")}})})),r("tbody",{},n?this.renderRows(r,n,o):[])]),r(_ganttChart.default)])])}},mounted:function(){var e=this,t=e.$xeGanttView.internalData.elemStore,r="main-body-";t["".concat(r,"wrapper")]=e.$refs.refElem,t["".concat(r,"scroll")]=e.$refs.refBodyScroll,t["".concat(r,"table")]=e.$refs.refBodyTable,t["".concat(r,"xSpace")]=e.$refs.refBodyXSpace,t["".concat(r,"ySpace")]=e.$refs.refBodyYSpace},destroyed:function(){var e=this.$xeGanttView.internalData.elemStore,t="main-body-";e["".concat(t,"wrapper")]=null,e["".concat(t,"scroll")]=null,e["".concat(t,"table")]=null,e["".concat(t,"xSpace")]=null,e["".concat(t,"ySpace")]=null},render:function(e){return this.renderVN(e)}});
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _comp=require("../../ui/src/comp"),_util=require("./util"),_utils=require("../../ui/src/utils"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ganttChart=_interopRequireDefault(require("./gantt-chart"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_unsupportedIterableToArray(e)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){var r;if(e)return"string"==typeof e?_arrayLikeToArray(e,t):"Map"===(r="Object"===(r={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:r)||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_arrayLikeToArray(e,t):void 0}function _iterableToArray(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function _arrayWithoutHoles(e){if(Array.isArray(e))return _arrayLikeToArray(e)}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,a=Array(t);r<t;r++)a[r]=e[r];return a}var sourceType="gantt",viewType="body",_default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttViewBody",inject:{$xeGantt:{default:null},$xeGanttView:{default:null}},computed:Object.assign({},{}),methods:{renderColumn:function(e,t,r,a,n,o,l,i,c){var s,u=this.$xeGanttView,d=this.$xeGantt,p=u.reactData,u=u.internalData,w=t.getReactData().resizeHeightFlag,y=t.getInternalData(),f=y.fullAllDataRowIdData,y=y.visibleColumn,m=t.computeCellOpts,g=t.computeRowOpts,v=t.computeResizableOpts.isAllRowDrag,p=p.headerGroups,u=u.todayDateMaps,h=d.computeTaskViewOpts,x=h.showNowLine,b=d.computeScaleUnit,p=(p[p.length-1]||{}).scaleItem,_=i.field,D=i.dateObj,R=i.startDateObj,T=i.endDateObj,h=h.viewStyle||{},C=h.cellClassName,h=h.cellStyle,u=x&&p?u[p.type]:null,p=f[a]||{},f=w?(0,_util.getCellRestHeight)(p,m,g,t.computeDefaultRowHeight):0,w=[],I=(v&&g.resizable&&(s={$table:t,$grid:null,$gantt:d,seq:-1,rowid:a,row:r,rowIndex:n,$rowIndex:o,_rowIndex:l,column:y[0],columnIndex:0,$columnIndex:0,_columnIndex:0,fixed:"",source:sourceType,type:viewType,isHidden:!1,isEdit:!1,level:-1,visibleData:[],data:[],items:[]},w.push(e("div",{class:"vxe-gantt-view-cell--row-resizable",on:{mousedown:function(e){return t.handleRowResizeMousedownEvent(e,s)},dblclick:function(e){return t.handleRowResizeDblclickEvent(e,s)}}}))),{$gantt:d,source:sourceType,type:viewType,scaleType:b,dateObj:D,startDateObj:R,endDateObj:T,row:r,column:i,$rowIndex:o,rowIndex:n,_rowIndex:l});return e("td",{key:C||h?_:c,class:["vxe-gantt-view--body-column",{"is--now":x&&u===_},(0,_utils.getClass)(C,I)],style:h?Object.assign({},_xeUtils.default.isFunction(h)?h(I):h,{height:"".concat(f,"px")}):{height:"".concat(f,"px")},on:{click:function(e){d.handleTaskCellClickEvent(e,{row:r,column:i})},dblclick:function(e){d.handleTaskCellDblclickEvent(e,{row:r,column:i})},contextmenu:function(e){d.handleTaskBodyContextmenuEvent(e,I)}}},w)},renderRows:function(c,s,e){var u=this,t=u.$xeGanttView,d=u.$xeGantt,t=t.reactData,p=s.treeConfig,w=s.stripe,y=s.highlightHoverRow,f=s.editConfig,r=s.getReactData(),m=r.treeExpandedFlag,g=r.selectRadioRow,v=r.pendingRowFlag,h=r.isRowGroupStatus,r=s.getInternalData(),x=r.fullAllDataRowIdData,b=r.treeExpandedMaps,_=r.pendingRowMaps,D=s.computeRadioOpts,R=s.computeCheckboxOpts,T=s.computeRowOpts,r=s.computeTreeOpts,C=r.transform,I=r.children||r.childrenField,S=d.computeScaleUnit,r=d.computeTaskViewOpts.viewStyle||{},$=r.rowClassName,k=r.rowStyle,A=r.cellClassName,O=r.cellStyle,E=t.tableColumn,B=t.scrollYLoad,G=[];return e.forEach(function(r,a){var n=s.getRowid(r),e=x[n]||{},t={},o=a,l=-1,e=(e&&(o=e.index,l=e._index),!1),i=(f&&(e=s.isInsertByRow(r)),(T.isHover||y)&&(t.mouseenter=function(e){s.triggerHoverEvent(e,{row:r,rowIndex:o})},t.mouseleave=function(){s.clearHoverRow()}),!T.drag||h||p&&!C||(t.dragstart=s.handleRowDragDragstartEvent,t.dragend=s.handleRowDragDragendEvent,t.dragover=s.handleRowDragDragoverEvent),{$gantt:d,source:sourceType,type:viewType,scaleType:S,row:r,rowIndex:o,$rowIndex:a,_rowIndex:l}),e=(G.push(c("tr",{key:$||k||A||O?n:a,class:["vxe-gantt-view--body-row",{"row--stripe":w&&(l+1)%2==0,"is--new":e,"row--radio":D.highlight&&s.eqRow(g,r),"row--checked":R.highlight&&s.isCheckedByCheckboxRow(r),"row--pending":!!v&&!!_[n]},(0,_utils.getClass)($,i)],style:k?_xeUtils.default.isFunction(k)?k(i)||void 0:k:void 0,attrs:{rowid:n},on:t},E.map(function(e,t){return u.renderColumn(c,s,r,n,o,a,l,e,t)}))),!1),i=[];!p||B||C||(i=r[I],e=!!m&&i&&0<i.length&&!!b[n]),e&&G.push.apply(G,_toConsumableArray(u.renderRows(c,s,i)))}),G},renderVN:function(r){var t=this.$xeGantt,e=this.$xeGanttView,a=e.reactData,n=e.internalData.xeTable,o=a.tableData,l=a.tableColumn,i=a.viewCellWidth;return r("div",{ref:"refElem",class:"vxe-gantt-view--body-wrapper"},[r("div",{ref:"refBodyScroll",class:"vxe-gantt-view--body-inner-wrapper",on:{scroll:e.triggerBodyScrollEvent,contextmenu:function(e){t.handleTaskBodyContextmenuEvent(e,{source:sourceType,type:viewType,rowIndex:-1,$rowIndex:-1,_rowIndex:-1})}}},[r("div",{ref:"refBodyXSpace",class:"vxe-body--x-space"}),r("div",{ref:"refBodyYSpace",class:"vxe-body--y-space"}),r("table",{ref:"refBodyTable",class:"vxe-gantt-view--body-table"},[r("colgroup",{},l.map(function(e,t){return r("col",{key:t,style:{width:"".concat(i,"px")}})})),r("tbody",{},n?this.renderRows(r,n,o):[])]),r(_ganttChart.default)])])}},mounted:function(){var e=this,t=e.$xeGanttView.internalData.elemStore,r="main-body-";t["".concat(r,"wrapper")]=e.$refs.refElem,t["".concat(r,"scroll")]=e.$refs.refBodyScroll,t["".concat(r,"table")]=e.$refs.refBodyTable,t["".concat(r,"xSpace")]=e.$refs.refBodyXSpace,t["".concat(r,"ySpace")]=e.$refs.refBodyYSpace},destroyed:function(){var e=this.$xeGanttView.internalData.elemStore,t="main-body-";e["".concat(t,"wrapper")]=null,e["".concat(t,"scroll")]=null,e["".concat(t,"table")]=null,e["".concat(t,"xSpace")]=null,e["".concat(t,"ySpace")]=null},render:function(e){return this.renderVN(e)}});