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

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.
@@ -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
  }
@@ -1680,7 +1680,13 @@ export default defineVxeComponent({
1680
1680
  reScrollFlag: 0
1681
1681
  };
1682
1682
  },
1683
- computed: Object.assign(Object.assign({}, {}), { computeScrollbarXOpts() {
1683
+ computed: Object.assign(Object.assign({}, {}), { computeGanttIsVScrollbar() {
1684
+ const $xeGanttView = this;
1685
+ const $xeGantt = $xeGanttView.$xeGantt;
1686
+ const isVScrollbar = $xeGantt.computeIsVScrollbar;
1687
+ return isVScrollbar;
1688
+ },
1689
+ computeScrollbarXOpts() {
1684
1690
  const $xeGanttView = this;
1685
1691
  const $xeGantt = $xeGanttView.$xeGantt;
1686
1692
  const scrollbarOpts = $xeGantt.computeScrollbarOpts;
@@ -2241,6 +2247,32 @@ export default defineVxeComponent({
2241
2247
  handleLazyRecalculate($xeGanttView);
2242
2248
  },
2243
2249
  // 滚动条
2250
+ bindScrollbarResize() {
2251
+ const $xeGanttView = this;
2252
+ const internalData = $xeGanttView.internalData;
2253
+ const { elemStore, scrollObserver } = internalData;
2254
+ const isVScrollbar = $xeGanttView.$refs.computeIsVScrollbar;
2255
+ if (isVScrollbar) {
2256
+ if (!scrollObserver) {
2257
+ const el = $xeGanttView.$refs.refElem;
2258
+ const viewInnerXEl = getRefElem(elemStore['main-body-xSpace']);
2259
+ const viewInnerYEl = getRefElem(elemStore['main-body-xSpace']);
2260
+ const scrollObserver = globalResize.create(() => {
2261
+ $xeGanttView.reScrollFlag++;
2262
+ });
2263
+ if (el) {
2264
+ scrollObserver.observe(el);
2265
+ }
2266
+ if (viewInnerXEl) {
2267
+ scrollObserver.observe(viewInnerXEl);
2268
+ }
2269
+ if (viewInnerYEl) {
2270
+ scrollObserver.observe(viewInnerYEl);
2271
+ }
2272
+ internalData.scrollObserver = scrollObserver;
2273
+ }
2274
+ }
2275
+ },
2244
2276
  updateThumbSize() {
2245
2277
  const $xeGanttView = this;
2246
2278
  const reactData = $xeGanttView.reactData;
@@ -2535,11 +2567,10 @@ export default defineVxeComponent({
2535
2567
  const $xeGantt = $xeGanttView.$xeGantt;
2536
2568
  const reactData = $xeGanttView.reactData;
2537
2569
  const ganttReactData = $xeGantt.reactData;
2538
- const ganttProps = $xeGantt;
2539
2570
  const { showLeftView } = ganttReactData;
2540
- const { useScrollbar } = ganttProps;
2541
2571
  const { xThumbWidth, yThumbHeight } = reactData;
2542
2572
  const scrollbarOpts = $xeGantt.computeScrollbarOpts;
2573
+ const isVScrollbar = $xeGantt.computeIsVScrollbar;
2543
2574
  const scrollXAutoHide = $xeGanttView.computeScrollXAutoHide;
2544
2575
  const scrollYAutoHide = $xeGanttView.computeScrollYAutoHide;
2545
2576
  const scrollXVisible = $xeGanttView.computeScrollXVisible;
@@ -2550,10 +2581,10 @@ export default defineVxeComponent({
2550
2581
  return h('div', {
2551
2582
  key: 'lvb',
2552
2583
  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,
2584
+ 'is--virtual-scrollbar': isVScrollbar,
2585
+ 'ov-padding': isVScrollbar && scrollbarOpts.padding,
2586
+ 'ov-x--auto-hide': isVScrollbar && scrollXAutoHide,
2587
+ 'ov-y--auto-hide': isVScrollbar && scrollYAutoHide,
2557
2588
  'overflow-y': yThumbHeight,
2558
2589
  'overflow-x': xThumbWidth
2559
2590
  }]
@@ -2611,9 +2642,8 @@ export default defineVxeComponent({
2611
2642
  const $xeGanttView = this;
2612
2643
  const $xeGantt = $xeGanttView.$xeGantt;
2613
2644
  const reactData = $xeGanttView.reactData;
2614
- const ganttProps = $xeGantt;
2615
- const { useScrollbar } = ganttProps;
2616
2645
  const { overflowX, overflowY, scrollXLoad, scrollYLoad } = reactData;
2646
+ const isVScrollbar = $xeGantt.computeIsVScrollbar;
2617
2647
  const scrollbarXToTop = $xeGantt.computeScrollbarXToTop;
2618
2648
  return h('div', {
2619
2649
  ref: 'refElem',
@@ -2626,7 +2656,7 @@ export default defineVxeComponent({
2626
2656
  }, [
2627
2657
  h('div', {
2628
2658
  class: 'vxe-gantt-view--render-wrapper'
2629
- }, useScrollbar
2659
+ }, isVScrollbar
2630
2660
  ? [$xeGanttView.renderVirtualBody(h)]
2631
2661
  : (scrollbarXToTop
2632
2662
  ? [
@@ -2649,6 +2679,15 @@ export default defineVxeComponent({
2649
2679
  }
2650
2680
  },
2651
2681
  watch: {
2682
+ computeGanttIsVScrollbar() {
2683
+ const $xeGanttView = this;
2684
+ $xeGanttView.$nextTick(() => {
2685
+ $xeGanttView.bindScrollbarResize();
2686
+ $xeGanttView.$nextTick(() => {
2687
+ $xeGanttView.reScrollFlag++;
2688
+ });
2689
+ });
2690
+ },
2652
2691
  computeScrollbarXToTop() {
2653
2692
  const $xeGanttView = this;
2654
2693
  $xeGanttView.reScrollFlag++;
@@ -2685,26 +2724,8 @@ export default defineVxeComponent({
2685
2724
  },
2686
2725
  mounted() {
2687
2726
  const $xeGanttView = this;
2688
- const $xeGantt = $xeGanttView.$xeGantt;
2689
- const internalData = $xeGanttView.internalData;
2690
2727
  $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
- }
2728
+ $xeGanttView.bindScrollbarResize();
2708
2729
  });
2709
2730
  globalEvents.on($xeGanttView, 'resize', $xeGanttView.handleGlobalResizeEvent);
2710
2731
  },
@@ -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;
@@ -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.1";
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.1"}`;
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}` : '';
@@ -276,8 +276,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
276
276
  },
277
277
  mousedown: function mousedown(evnt) {
278
278
  evnt.stopPropagation();
279
- if ($xeGantt.handleTaskBarMousedownEvent) {
280
- $xeGantt.handleTaskBarMousedownEvent(evnt, childCtParams);
279
+ if ($xeGantt.handleTaskBarModnEvent) {
280
+ $xeGantt.handleTaskBarModnEvent(evnt, childCtParams);
281
281
  }
282
282
  }
283
283
  }
@@ -385,8 +385,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
385
385
  $xeGantt.handleTaskBarDblclickEvent(evnt, barParams);
386
386
  },
387
387
  mousedown: function mousedown(evnt) {
388
- if ($xeGantt.handleTaskBarMousedownEvent) {
389
- $xeGantt.handleTaskBarMousedownEvent(evnt, barParams);
388
+ if ($xeGantt.handleTaskBarModnEvent) {
389
+ $xeGantt.handleTaskBarModnEvent(evnt, barParams);
390
390
  }
391
391
  }
392
392
  }
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _comp=require("../../ui/src/comp"),_core=require("@vxe-ui/core"),_xeUtils=_interopRequireDefault(require("xe-utils")),_util=require("./util"),_utils=require("../../ui/src/utils");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 a;if(e)return"string"==typeof e?_arrayLikeToArray(e,t):"Map"===(a="Object"===(a={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:a)||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?_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 a=0,r=Array(t);a<t;a++)r[a]=e[a];return r}var getIcon=_core.VxeUI.getIcon,renderEmptyElement=_core.VxeUI.renderEmptyElement,sourceType="gantt",viewType="chart",_default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttViewChart",inject:{$xeGantt:{default:null},$xeGanttView:{default:null}},props:{},data:function(){return{}},computed:Object.assign({},{}),methods:{renderTaskBar:function(w,g,e,t,a,r,n,i,O){var h,f,m=this.$xeGantt,V=g.resizeHeightFlag,G=g.pendingRowFlag,o=g.fullAllDataRowIdData,F=g.pendingRowMaps,s=g.computeCellOpts,l=g.computeRowOpts,c=g.computeDefaultRowHeight,u=g.computeTreeOpts,u=u.children||u.childrenField,d=m.reactData,v=m.internalData,p=m.$scopedSlots,b=p.taskBar||p["task-bar"],p=p.taskBarOverview||p["task-bar-overview"],x=m.treeConfig,L=m.taskBarMilestoneConfig,j=m.taskBarSubviewConfig,k=d.activeLink,N=d.activeBarRowid,W=d.criticalPathFlag,P=v.criticalRowMaps,q=m.computeTitleField,H=m.computeProgressField,z=m.computeTypeField,d=m.computeTaskBarOpts,y=m.computeTaskBarMilestoneOpts,T=m.computeTaskBarSubviewOpts,K=T.showOverview,_=T.barStyle,E=m.computeScaleUnit,C={$gantt:m,source:sourceType,type:viewType,scaleType:E,row:e,$rowIndex:r,rowIndex:a,_rowIndex:n},B=d.showProgress,Y=d.showCriticalPath,S=d.showContent,A=d.contentMethod,I=d.barStyle,$=d.moveable,r=d.showTooltip,R=_xeUtils.default.isFunction(I),a=(I?R?I(C):I:{})||{},n=a.round,d=a.bgColor,U=a.completedBgColor,a=a.style,o=o[t]||{},V=V?(0,_util.getCellRestHeight)(o,s,l,c):0,o=(0,_utils.getStringValue)(_xeUtils.default.get(e,q)),s=B?Math.min(100,Math.max(0,_xeUtils.default.toNumber(_xeUtils.default.get(e,H)))):0,l=(0,_util.getTaskType)(_xeUtils.default.get(e,z)),c=!(!(0,_utils.hasEnableConf)(L,y)||!(0,_util.hasMilestoneTask)(l)),M=Object.assign({},C),D={},s={width:"".concat(s||0,"%")},d=(c||R&&(d&&(D["--vxe-ui-gantt-view-task-bar-background-color"]=d),U)&&(D["--vxe-ui-gantt-view-task-bar-completed-background-color"]=U),a&&_xeUtils.default.assign(D,a),[]);return m.renderGanttTaskBarContent?d=m.renderGanttTaskBarContent(w,M,{$gantt:m,$table:g,rowid:t}):(U=!(!(0,_utils.hasEnableConf)(j,T)||!(0,_util.hasSubviewTask)(l)),A&&(o=(0,_utils.getStringValue)(A({row:e,title:o,scaleType:E}))),h={},r&&(h.mouseover=function(e){var t=v.dragBarRow,a=Object.assign({$event:e},M);t||m.triggerTaskBarTooltipEvent(e,a),m.dispatchEvent("task-bar-mouseenter",a,e)},h.mouseleave=function(e){var t=v.dragBarRow,a=Object.assign({$event:e},M);t||m.handleTaskBarTooltipLeaveEvent(e,a),m.dispatchEvent("task-bar-mouseleave",a,e)}),U&&x&&i&&i.length?O?K&&d.push(w("div",{key:"vcso",class:"vxe-gantt-view--chart-subview-wrapper is--overview"},[w("div",{key:t,attrs:{rowid:t},class:["vxe-gantt-view--chart-subview-row",{"is--progress":B,"is--round":n,"is--move":$}]},[w("div",{attrs:{rowid:t},class:[p?"vxe-gantt-view--chart-subview-custom-bar":"vxe-gantt-view--chart-subview-bar","is--".concat(l)]},[p?w("div",{key:"cbc",class:"vxe-gantt-view--chart-subview-custom-bar-content-wrapper"},m.callSlot(p,C,w)):w("div",{class:"vxe-gantt-view--chart-subview-bar-content-wrapper"},[S?w("div",{class:"vxe-gantt-view--chart-content"},o):renderEmptyElement(m)])])])])):(f=[],_xeUtils.default.eachTree(i,function(e){var t,a,r={$gantt:m,source:sourceType,type:viewType,scaleType:E,row:e,$rowIndex:g.getRowIndex(e),rowIndex:g.getVMRowIndex(e),_rowIndex:g.getVTRowIndex(e)},n=_xeUtils.default.isFunction(_),n=_xeUtils.default.assign({},(I?R?I(r):I:{})||{},(_?n?_(r):_:{})||{}),i=n.round,o=n.bgColor,s=n.completedBgColor,l=n.style,c=g.getRowid(e),u=(0,_utils.getStringValue)(_xeUtils.default.get(e,q)),d=B?Math.min(100,Math.max(0,_xeUtils.default.toNumber(_xeUtils.default.get(e,H)))):0,v=(0,_util.getTaskType)(_xeUtils.default.get(e,z)),p=!(!(0,_utils.hasEnableConf)(L,y)||!(0,_util.hasMilestoneTask)(v));(!(0,_utils.hasEnableConf)(j,T)||!(0,_util.hasSubviewTask)(v))&&(t={},d={width:"".concat(d||0,"%")},p||(o&&(t["--vxe-ui-gantt-view-task-bar-background-color"]=o),s&&(d["--vxe-ui-gantt-view-task-bar-completed-background-color"]=s)),n.top&&(t.top=n.top),l&&_xeUtils.default.assign(t,l),a=Object.assign({},r),A&&(u=(0,_utils.getStringValue)(A({row:e,title:u,scaleType:E}))),f.push(w("div",{key:c,attrs:{rowid:c},class:["vxe-gantt-view--chart-subview-row","is--".concat(v),{"is--progress":B,"is--critical":Y&&W&&P.has(c),"is--round":i,"is--move":$,"row--pending":!!G&&!!F[c]}]},[w("div",{attrs:{rowid:c},class:[b?"vxe-gantt-view--chart-subview-custom-bar":"vxe-gantt-view--chart-subview-bar","is--".concat(v)],style:t,on:{click:function(e){e.stopPropagation(),m.handleTaskBarClickEvent(e,a)},dblclick:function(e){e.stopPropagation(),m.handleTaskBarDblclickEvent(e,a)},mousedown:function(e){e.stopPropagation(),m.handleTaskBarMousedownEvent&&m.handleTaskBarMousedownEvent(e,a)}}},[b?w("div",{key:"cbc",class:"vxe-gantt-view--chart-subview-custom-bar-content-wrapper",on:h},m.callSlot(b,a,w)):w("div",{class:"vxe-gantt-view--chart-subview-bar-content-wrapper",on:h},[B?w("div",{class:"vxe-gantt-view--chart-progress",style:d}):renderEmptyElement(m),S?w("div",{class:"vxe-gantt-view--chart-content"},u):renderEmptyElement(m)])])])))},{children:u}),d.push(w("div",{key:"vcsc",class:"vxe-gantt-view--chart-subview-wrapper is--inline"},f))):b?d.push(w("div",{key:"cbc",class:"vxe-gantt-view--chart-custom-bar-content-wrapper",on:h},m.callSlot(b,C,w))):c?(a=y.icon,r=y.iconStatus,U=y.iconStyle,x={$gantt:m,row:e},d.push(w("div",{key:"vcm",class:"vxe-gantt-view--chart-milestone-wrapper",on:h},[w("div",{class:["vxe-gantt-view--chart-milestone-icon",r?"theme--".concat(_xeUtils.default.isFunction(r)?r(x):r):""],style:U?Object.assign({},_xeUtils.default.isFunction(U)?U(x):U):void 0},[w("i",{class:(a?_xeUtils.default.isFunction(a)?a(x):a:"")||getIcon().GANTT_VIEW_TASK_MILESTONE})]),S?w("div",{class:"vxe-gantt-view--chart-milestone-content"},o):renderEmptyElement(m)]))):d.push(w("div",{key:"vbc",class:"vxe-gantt-view--chart-bar-content-wrapper",on:h},[B?w("div",{class:"vxe-gantt-view--chart-progress",style:s}):renderEmptyElement(m),S?w("div",{class:"vxe-gantt-view--chart-content"},o):renderEmptyElement(m)]))),w("div",{key:t,attrs:{rowid:t},class:["vxe-gantt-view--chart-row","is--".concat(l),{"is--progress":B,"is--critical":Y&&W&&P.has(t),"row--pending":!!G&&!!F[t],"is--round":n,"is--move":$}],style:{height:"".concat(V,"px")},on:{onDragstart:function(e){v.dragBarRow&&e.preventDefault()},contextmenu:function(e){m.handleTaskBarContextmenuEvent(e,M)}}},[w("div",{class:[b?"vxe-gantt-view--chart-custom-bar":"vxe-gantt-view--chart-bar","is--".concat(l),{"is--active":N===t,"active--link":k&&(t==="".concat(k.from)||t==="".concat(k.to))}],style:D,attrs:{rowid:t},on:{click:function(e){m.handleTaskBarClickEvent(e,C)},dblclick:function(e){m.handleTaskBarDblclickEvent(e,C)},mousedown:function(e){m.handleTaskBarMousedownEvent&&m.handleTaskBarMousedownEvent(e,C)}}},d)])},renderTaskRows:function(s,l,e){var c=this,t=c.$xeGanttView.reactData,u=l.treeConfig,d=l.treeExpandedFlag,v=l.fullAllDataRowIdData,p=l.treeExpandedMaps,a=l.computeTreeOpts,w=a.transform,g=a.children||a.childrenField,h=t.scrollYLoad,f=[];return e.forEach(function(e,t){var a=l.getRowid(e),r=v[a]||{},n=t,i=-1,r=(r&&(n=r.index,i=r._index),!1),o=[];u&&(o=e[g],r=!!d&&o&&0<o.length&&!!p[a]),f.push(c.renderTaskBar(s,l,e,a,n,t,i,o,r)),u&&r&&!h&&!w&&f.push.apply(f,_toConsumableArray(c.renderTaskRows(s,l,o)))}),f},renderVN:function(e){var t=this.$xeGantt,a=this.$xeGanttView,r=t.reactData,n=a.internalData.xeTable,i=t.$scopedSlots,r=r.dragLinkFromStore,o=a.reactData.tableData,s=t.computeTaskLinkOpts,a=a.computeNowLineLeft,l=s.isCurrent,c=s.isHover,u=t.computeTaskBarOpts.linkCreatable,i=i.taskNowLine||i["task-now-line"];return e("div",{ref:"refElem",class:["vxe-gantt-view--chart-wrapper",{"is--cl-drag":r.rowid}]},[0<a?e("div",{ref:"refNowLineElem",class:"vxe-gantt-view--chart-now-line",style:{left:a+"px"}},i?i({}):[]):renderEmptyElement(t),t.renderGanttTaskChartBefores?e("div",{ref:"refChartBeforeWrapperElem",class:["vxe-gantt-view--chart-before-wrapper",{"link--current":l,"link--hover":c}]},n&&(0,_utils.isEnableConf)(s)?t.renderGanttTaskChartBefores(e):[]):renderEmptyElement(t),e("div",{ref:"refTaskWrapperElem",class:["vxe-gantt-view--chart-task-wrapper",{"link--current":l,"link--create":u}]},n?this.renderTaskRows(e,n,o):[]),t.renderGanttTaskChartAfters?e("div",{ref:"refChartAfterWrapperElem",class:"vxe-gantt-view--chart-after-wrapper"},n&&(0,_utils.isEnableConf)(s)?t.renderGanttTaskChartAfters(e):[]):renderEmptyElement(t)])}},mounted:function(){var e=this,t=e.$xeGanttView.internalData.elemStore,a="main-chart-";t["".concat(a,"now-line")]=e.$refs.refNowLineElem,t["".concat(a,"task-wrapper")]=e.$refs.refTaskWrapperElem,t["".concat(a,"before-wrapper")]=e.$refs.refChartBeforeWrapperElem,t["".concat(a,"after-wrapper")]=e.$refs.refChartAfterWrapperElem},destroyed:function(){var e=this.$xeGanttView.internalData.elemStore,t="main-chart-";e["".concat(t,"now-line")]=null,e["".concat(t,"task-wrapper")]=null,e["".concat(t,"before-wrapper")]=null,e["".concat(t,"after-wrapper")]=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"),_core=require("@vxe-ui/core"),_xeUtils=_interopRequireDefault(require("xe-utils")),_util=require("./util"),_utils=require("../../ui/src/utils");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 a;if(e)return"string"==typeof e?_arrayLikeToArray(e,t):"Map"===(a="Object"===(a={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:a)||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?_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 a=0,r=Array(t);a<t;a++)r[a]=e[a];return r}var getIcon=_core.VxeUI.getIcon,renderEmptyElement=_core.VxeUI.renderEmptyElement,sourceType="gantt",viewType="chart",_default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttViewChart",inject:{$xeGantt:{default:null},$xeGanttView:{default:null}},props:{},data:function(){return{}},computed:Object.assign({},{}),methods:{renderTaskBar:function(w,g,e,t,a,r,n,i,O){var h,f,m=this.$xeGantt,V=g.resizeHeightFlag,G=g.pendingRowFlag,o=g.fullAllDataRowIdData,F=g.pendingRowMaps,s=g.computeCellOpts,l=g.computeRowOpts,c=g.computeDefaultRowHeight,u=g.computeTreeOpts,u=u.children||u.childrenField,d=m.reactData,v=m.internalData,p=m.$scopedSlots,b=p.taskBar||p["task-bar"],p=p.taskBarOverview||p["task-bar-overview"],x=m.treeConfig,L=m.taskBarMilestoneConfig,j=m.taskBarSubviewConfig,k=d.activeLink,N=d.activeBarRowid,W=d.criticalPathFlag,P=v.criticalRowMaps,q=m.computeTitleField,H=m.computeProgressField,z=m.computeTypeField,d=m.computeTaskBarOpts,y=m.computeTaskBarMilestoneOpts,T=m.computeTaskBarSubviewOpts,K=T.showOverview,_=T.barStyle,E=m.computeScaleUnit,C={$gantt:m,source:sourceType,type:viewType,scaleType:E,row:e,$rowIndex:r,rowIndex:a,_rowIndex:n},B=d.showProgress,Y=d.showCriticalPath,S=d.showContent,A=d.contentMethod,I=d.barStyle,$=d.moveable,r=d.showTooltip,R=_xeUtils.default.isFunction(I),a=(I?R?I(C):I:{})||{},n=a.round,d=a.bgColor,U=a.completedBgColor,a=a.style,o=o[t]||{},V=V?(0,_util.getCellRestHeight)(o,s,l,c):0,o=(0,_utils.getStringValue)(_xeUtils.default.get(e,q)),s=B?Math.min(100,Math.max(0,_xeUtils.default.toNumber(_xeUtils.default.get(e,H)))):0,l=(0,_util.getTaskType)(_xeUtils.default.get(e,z)),c=!(!(0,_utils.hasEnableConf)(L,y)||!(0,_util.hasMilestoneTask)(l)),M=Object.assign({},C),D={},s={width:"".concat(s||0,"%")},d=(c||R&&(d&&(D["--vxe-ui-gantt-view-task-bar-background-color"]=d),U)&&(D["--vxe-ui-gantt-view-task-bar-completed-background-color"]=U),a&&_xeUtils.default.assign(D,a),[]);return m.renderGanttTaskBarContent?d=m.renderGanttTaskBarContent(w,M,{$gantt:m,$table:g,rowid:t}):(U=!(!(0,_utils.hasEnableConf)(j,T)||!(0,_util.hasSubviewTask)(l)),A&&(o=(0,_utils.getStringValue)(A({row:e,title:o,scaleType:E}))),h={},r&&(h.mouseover=function(e){var t=v.dragBarRow,a=Object.assign({$event:e},M);t||m.triggerTaskBarTooltipEvent(e,a),m.dispatchEvent("task-bar-mouseenter",a,e)},h.mouseleave=function(e){var t=v.dragBarRow,a=Object.assign({$event:e},M);t||m.handleTaskBarTooltipLeaveEvent(e,a),m.dispatchEvent("task-bar-mouseleave",a,e)}),U&&x&&i&&i.length?O?K&&d.push(w("div",{key:"vcso",class:"vxe-gantt-view--chart-subview-wrapper is--overview"},[w("div",{key:t,attrs:{rowid:t},class:["vxe-gantt-view--chart-subview-row",{"is--progress":B,"is--round":n,"is--move":$}]},[w("div",{attrs:{rowid:t},class:[p?"vxe-gantt-view--chart-subview-custom-bar":"vxe-gantt-view--chart-subview-bar","is--".concat(l)]},[p?w("div",{key:"cbc",class:"vxe-gantt-view--chart-subview-custom-bar-content-wrapper"},m.callSlot(p,C,w)):w("div",{class:"vxe-gantt-view--chart-subview-bar-content-wrapper"},[S?w("div",{class:"vxe-gantt-view--chart-content"},o):renderEmptyElement(m)])])])])):(f=[],_xeUtils.default.eachTree(i,function(e){var t,a,r={$gantt:m,source:sourceType,type:viewType,scaleType:E,row:e,$rowIndex:g.getRowIndex(e),rowIndex:g.getVMRowIndex(e),_rowIndex:g.getVTRowIndex(e)},n=_xeUtils.default.isFunction(_),n=_xeUtils.default.assign({},(I?R?I(r):I:{})||{},(_?n?_(r):_:{})||{}),i=n.round,o=n.bgColor,s=n.completedBgColor,l=n.style,c=g.getRowid(e),u=(0,_utils.getStringValue)(_xeUtils.default.get(e,q)),d=B?Math.min(100,Math.max(0,_xeUtils.default.toNumber(_xeUtils.default.get(e,H)))):0,v=(0,_util.getTaskType)(_xeUtils.default.get(e,z)),p=!(!(0,_utils.hasEnableConf)(L,y)||!(0,_util.hasMilestoneTask)(v));(!(0,_utils.hasEnableConf)(j,T)||!(0,_util.hasSubviewTask)(v))&&(t={},d={width:"".concat(d||0,"%")},p||(o&&(t["--vxe-ui-gantt-view-task-bar-background-color"]=o),s&&(d["--vxe-ui-gantt-view-task-bar-completed-background-color"]=s)),n.top&&(t.top=n.top),l&&_xeUtils.default.assign(t,l),a=Object.assign({},r),A&&(u=(0,_utils.getStringValue)(A({row:e,title:u,scaleType:E}))),f.push(w("div",{key:c,attrs:{rowid:c},class:["vxe-gantt-view--chart-subview-row","is--".concat(v),{"is--progress":B,"is--critical":Y&&W&&P.has(c),"is--round":i,"is--move":$,"row--pending":!!G&&!!F[c]}]},[w("div",{attrs:{rowid:c},class:[b?"vxe-gantt-view--chart-subview-custom-bar":"vxe-gantt-view--chart-subview-bar","is--".concat(v)],style:t,on:{click:function(e){e.stopPropagation(),m.handleTaskBarClickEvent(e,a)},dblclick:function(e){e.stopPropagation(),m.handleTaskBarDblclickEvent(e,a)},mousedown:function(e){e.stopPropagation(),m.handleTaskBarModnEvent&&m.handleTaskBarModnEvent(e,a)}}},[b?w("div",{key:"cbc",class:"vxe-gantt-view--chart-subview-custom-bar-content-wrapper",on:h},m.callSlot(b,a,w)):w("div",{class:"vxe-gantt-view--chart-subview-bar-content-wrapper",on:h},[B?w("div",{class:"vxe-gantt-view--chart-progress",style:d}):renderEmptyElement(m),S?w("div",{class:"vxe-gantt-view--chart-content"},u):renderEmptyElement(m)])])])))},{children:u}),d.push(w("div",{key:"vcsc",class:"vxe-gantt-view--chart-subview-wrapper is--inline"},f))):b?d.push(w("div",{key:"cbc",class:"vxe-gantt-view--chart-custom-bar-content-wrapper",on:h},m.callSlot(b,C,w))):c?(a=y.icon,r=y.iconStatus,U=y.iconStyle,x={$gantt:m,row:e},d.push(w("div",{key:"vcm",class:"vxe-gantt-view--chart-milestone-wrapper",on:h},[w("div",{class:["vxe-gantt-view--chart-milestone-icon",r?"theme--".concat(_xeUtils.default.isFunction(r)?r(x):r):""],style:U?Object.assign({},_xeUtils.default.isFunction(U)?U(x):U):void 0},[w("i",{class:(a?_xeUtils.default.isFunction(a)?a(x):a:"")||getIcon().GANTT_VIEW_TASK_MILESTONE})]),S?w("div",{class:"vxe-gantt-view--chart-milestone-content"},o):renderEmptyElement(m)]))):d.push(w("div",{key:"vbc",class:"vxe-gantt-view--chart-bar-content-wrapper",on:h},[B?w("div",{class:"vxe-gantt-view--chart-progress",style:s}):renderEmptyElement(m),S?w("div",{class:"vxe-gantt-view--chart-content"},o):renderEmptyElement(m)]))),w("div",{key:t,attrs:{rowid:t},class:["vxe-gantt-view--chart-row","is--".concat(l),{"is--progress":B,"is--critical":Y&&W&&P.has(t),"row--pending":!!G&&!!F[t],"is--round":n,"is--move":$}],style:{height:"".concat(V,"px")},on:{onDragstart:function(e){v.dragBarRow&&e.preventDefault()},contextmenu:function(e){m.handleTaskBarContextmenuEvent(e,M)}}},[w("div",{class:[b?"vxe-gantt-view--chart-custom-bar":"vxe-gantt-view--chart-bar","is--".concat(l),{"is--active":N===t,"active--link":k&&(t==="".concat(k.from)||t==="".concat(k.to))}],style:D,attrs:{rowid:t},on:{click:function(e){m.handleTaskBarClickEvent(e,C)},dblclick:function(e){m.handleTaskBarDblclickEvent(e,C)},mousedown:function(e){m.handleTaskBarModnEvent&&m.handleTaskBarModnEvent(e,C)}}},d)])},renderTaskRows:function(s,l,e){var c=this,t=c.$xeGanttView.reactData,u=l.treeConfig,d=l.treeExpandedFlag,v=l.fullAllDataRowIdData,p=l.treeExpandedMaps,a=l.computeTreeOpts,w=a.transform,g=a.children||a.childrenField,h=t.scrollYLoad,f=[];return e.forEach(function(e,t){var a=l.getRowid(e),r=v[a]||{},n=t,i=-1,r=(r&&(n=r.index,i=r._index),!1),o=[];u&&(o=e[g],r=!!d&&o&&0<o.length&&!!p[a]),f.push(c.renderTaskBar(s,l,e,a,n,t,i,o,r)),u&&r&&!h&&!w&&f.push.apply(f,_toConsumableArray(c.renderTaskRows(s,l,o)))}),f},renderVN:function(e){var t=this.$xeGantt,a=this.$xeGanttView,r=t.reactData,n=a.internalData.xeTable,i=t.$scopedSlots,r=r.dragLinkFromStore,o=a.reactData.tableData,s=t.computeTaskLinkOpts,a=a.computeNowLineLeft,l=s.isCurrent,c=s.isHover,u=t.computeTaskBarOpts.linkCreatable,i=i.taskNowLine||i["task-now-line"];return e("div",{ref:"refElem",class:["vxe-gantt-view--chart-wrapper",{"is--cl-drag":r.rowid}]},[0<a?e("div",{ref:"refNowLineElem",class:"vxe-gantt-view--chart-now-line",style:{left:a+"px"}},i?i({}):[]):renderEmptyElement(t),t.renderGanttTaskChartBefores?e("div",{ref:"refChartBeforeWrapperElem",class:["vxe-gantt-view--chart-before-wrapper",{"link--current":l,"link--hover":c}]},n&&(0,_utils.isEnableConf)(s)?t.renderGanttTaskChartBefores(e):[]):renderEmptyElement(t),e("div",{ref:"refTaskWrapperElem",class:["vxe-gantt-view--chart-task-wrapper",{"link--current":l,"link--create":u}]},n?this.renderTaskRows(e,n,o):[]),t.renderGanttTaskChartAfters?e("div",{ref:"refChartAfterWrapperElem",class:"vxe-gantt-view--chart-after-wrapper"},n&&(0,_utils.isEnableConf)(s)?t.renderGanttTaskChartAfters(e):[]):renderEmptyElement(t)])}},mounted:function(){var e=this,t=e.$xeGanttView.internalData.elemStore,a="main-chart-";t["".concat(a,"now-line")]=e.$refs.refNowLineElem,t["".concat(a,"task-wrapper")]=e.$refs.refTaskWrapperElem,t["".concat(a,"before-wrapper")]=e.$refs.refChartBeforeWrapperElem,t["".concat(a,"after-wrapper")]=e.$refs.refChartAfterWrapperElem},destroyed:function(){var e=this.$xeGanttView.internalData.elemStore,t="main-chart-";e["".concat(t,"now-line")]=null,e["".concat(t,"task-wrapper")]=null,e["".concat(t,"before-wrapper")]=null,e["".concat(t,"after-wrapper")]=null},render:function(e){return this.renderVN(e)}});
@@ -1858,6 +1858,12 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
1858
1858
  };
1859
1859
  },
1860
1860
  computed: Object.assign(Object.assign({}, {}), {
1861
+ computeGanttIsVScrollbar: function computeGanttIsVScrollbar() {
1862
+ var $xeGanttView = this;
1863
+ var $xeGantt = $xeGanttView.$xeGantt;
1864
+ var isVScrollbar = $xeGantt.computeIsVScrollbar;
1865
+ return isVScrollbar;
1866
+ },
1861
1867
  computeScrollbarXOpts: function computeScrollbarXOpts() {
1862
1868
  var $xeGanttView = this;
1863
1869
  var $xeGantt = $xeGanttView.$xeGantt;
@@ -2446,6 +2452,33 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
2446
2452
  _handleLazyRecalculate($xeGanttView);
2447
2453
  },
2448
2454
  // 滚动条
2455
+ bindScrollbarResize: function bindScrollbarResize() {
2456
+ var $xeGanttView = this;
2457
+ var internalData = $xeGanttView.internalData;
2458
+ var elemStore = internalData.elemStore,
2459
+ scrollObserver = internalData.scrollObserver;
2460
+ var isVScrollbar = $xeGanttView.$refs.computeIsVScrollbar;
2461
+ if (isVScrollbar) {
2462
+ if (!scrollObserver) {
2463
+ var el = $xeGanttView.$refs.refElem;
2464
+ var viewInnerXEl = (0, _util.getRefElem)(elemStore['main-body-xSpace']);
2465
+ var viewInnerYEl = (0, _util.getRefElem)(elemStore['main-body-xSpace']);
2466
+ var _scrollObserver = globalResize.create(function () {
2467
+ $xeGanttView.reScrollFlag++;
2468
+ });
2469
+ if (el) {
2470
+ _scrollObserver.observe(el);
2471
+ }
2472
+ if (viewInnerXEl) {
2473
+ _scrollObserver.observe(viewInnerXEl);
2474
+ }
2475
+ if (viewInnerYEl) {
2476
+ _scrollObserver.observe(viewInnerYEl);
2477
+ }
2478
+ internalData.scrollObserver = _scrollObserver;
2479
+ }
2480
+ }
2481
+ },
2449
2482
  updateThumbSize: function updateThumbSize() {
2450
2483
  var $xeGanttView = this;
2451
2484
  var reactData = $xeGanttView.reactData;
@@ -2715,12 +2748,11 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
2715
2748
  var $xeGantt = $xeGanttView.$xeGantt;
2716
2749
  var reactData = $xeGanttView.reactData;
2717
2750
  var ganttReactData = $xeGantt.reactData;
2718
- var ganttProps = $xeGantt;
2719
2751
  var showLeftView = ganttReactData.showLeftView;
2720
- var useScrollbar = ganttProps.useScrollbar;
2721
2752
  var xThumbWidth = reactData.xThumbWidth,
2722
2753
  yThumbHeight = reactData.yThumbHeight;
2723
2754
  var scrollbarOpts = $xeGantt.computeScrollbarOpts;
2755
+ var isVScrollbar = $xeGantt.computeIsVScrollbar;
2724
2756
  var scrollXAutoHide = $xeGanttView.computeScrollXAutoHide;
2725
2757
  var scrollYAutoHide = $xeGanttView.computeScrollYAutoHide;
2726
2758
  var scrollXVisible = $xeGanttView.computeScrollXVisible;
@@ -2731,10 +2763,10 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
2731
2763
  return h('div', {
2732
2764
  key: 'lvb',
2733
2765
  class: ['vxe-gantt--layout-wrapper', "sx-pos--".concat(scrollbarXToTop ? 'top' : 'bottom'), "sy-pos--".concat(scrollbarYToLeft ? 'left' : 'right'), {
2734
- 'is--virtual-scrollbar': useScrollbar,
2735
- 'ov-padding': useScrollbar && scrollbarOpts.padding,
2736
- 'ov-x--auto-hide': useScrollbar && scrollXAutoHide,
2737
- 'ov-y--auto-hide': useScrollbar && scrollYAutoHide,
2766
+ 'is--virtual-scrollbar': isVScrollbar,
2767
+ 'ov-padding': isVScrollbar && scrollbarOpts.padding,
2768
+ 'ov-x--auto-hide': isVScrollbar && scrollXAutoHide,
2769
+ 'ov-y--auto-hide': isVScrollbar && scrollYAutoHide,
2738
2770
  'overflow-y': yThumbHeight,
2739
2771
  'overflow-x': xThumbWidth
2740
2772
  }]
@@ -2778,12 +2810,11 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
2778
2810
  var $xeGanttView = this;
2779
2811
  var $xeGantt = $xeGanttView.$xeGantt;
2780
2812
  var reactData = $xeGanttView.reactData;
2781
- var ganttProps = $xeGantt;
2782
- var useScrollbar = ganttProps.useScrollbar;
2783
2813
  var overflowX = reactData.overflowX,
2784
2814
  overflowY = reactData.overflowY,
2785
2815
  scrollXLoad = reactData.scrollXLoad,
2786
2816
  scrollYLoad = reactData.scrollYLoad;
2817
+ var isVScrollbar = $xeGantt.computeIsVScrollbar;
2787
2818
  var scrollbarXToTop = $xeGantt.computeScrollbarXToTop;
2788
2819
  return h('div', {
2789
2820
  ref: 'refElem',
@@ -2795,7 +2826,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
2795
2826
  }]
2796
2827
  }, [h('div', {
2797
2828
  class: 'vxe-gantt-view--render-wrapper'
2798
- }, useScrollbar ? [$xeGanttView.renderVirtualBody(h)] : scrollbarXToTop ? [$xeGanttView.renderScrollX(h), $xeGanttView.renderNativeBody(h)] : [$xeGanttView.renderNativeBody(h), $xeGanttView.renderScrollX(h)]), h('div', {
2829
+ }, isVScrollbar ? [$xeGanttView.renderVirtualBody(h)] : scrollbarXToTop ? [$xeGanttView.renderScrollX(h), $xeGanttView.renderNativeBody(h)] : [$xeGanttView.renderNativeBody(h), $xeGanttView.renderScrollX(h)]), h('div', {
2799
2830
  class: 'vxe-gantt-view--render-vars'
2800
2831
  }, [h('div', {
2801
2832
  ref: 'refColInfoElem',
@@ -2804,6 +2835,15 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
2804
2835
  }
2805
2836
  },
2806
2837
  watch: {
2838
+ computeGanttIsVScrollbar: function computeGanttIsVScrollbar() {
2839
+ var $xeGanttView = this;
2840
+ $xeGanttView.$nextTick(function () {
2841
+ $xeGanttView.bindScrollbarResize();
2842
+ $xeGanttView.$nextTick(function () {
2843
+ $xeGanttView.reScrollFlag++;
2844
+ });
2845
+ });
2846
+ },
2807
2847
  computeScrollbarXToTop: function computeScrollbarXToTop() {
2808
2848
  var $xeGanttView = this;
2809
2849
  $xeGanttView.reScrollFlag++;
@@ -2840,26 +2880,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
2840
2880
  },
2841
2881
  mounted: function mounted() {
2842
2882
  var $xeGanttView = this;
2843
- var $xeGantt = $xeGanttView.$xeGantt;
2844
- var internalData = $xeGanttView.internalData;
2845
2883
  $xeGanttView.$nextTick(function () {
2846
- var ganttProps = $xeGantt;
2847
- var useScrollbar = ganttProps.useScrollbar;
2848
- var elemStore = internalData.elemStore;
2849
- var el = $xeGanttView.$refs.refElem;
2850
- if (useScrollbar) {
2851
- var viewInnerEl = (0, _util.getRefElem)(elemStore['main-body-table']);
2852
- var scrollObserver = globalResize.create(function () {
2853
- $xeGanttView.reScrollFlag++;
2854
- });
2855
- if (el) {
2856
- scrollObserver.observe(el);
2857
- }
2858
- if (viewInnerEl) {
2859
- scrollObserver.observe(viewInnerEl);
2860
- }
2861
- internalData.scrollObserver = scrollObserver;
2862
- }
2884
+ $xeGanttView.bindScrollbarResize();
2863
2885
  });
2864
2886
  globalEvents.on($xeGanttView, 'resize', $xeGanttView.handleGlobalResizeEvent);
2865
2887
  },