vxe-gantt 4.1.0 → 4.1.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.
@@ -28,7 +28,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
28
28
  const {
29
29
  computeProgressField,
30
30
  computeTitleField,
31
- computeTaskBarOpts
31
+ computeTaskBarOpts,
32
+ computeScaleUnit
32
33
  } = $xeGantt.getComputeMaps();
33
34
  const refElem = (0, _vue.ref)();
34
35
  const renderTaskBar = ($xeTable, row, rowid, rowIndex, $rowIndex, _rowIndex) => {
@@ -57,16 +58,19 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
57
58
  const titleField = computeTitleField.value;
58
59
  const progressField = computeProgressField.value;
59
60
  const taskBarOpts = computeTaskBarOpts.value;
61
+ const scaleUnit = computeScaleUnit.value;
60
62
  const barParams = {
61
63
  $gantt: $xeGantt,
62
- row
64
+ row,
65
+ scaleType: scaleUnit
63
66
  };
64
67
  const {
65
68
  showProgress,
66
69
  showContent,
67
70
  contentMethod,
68
71
  barStyle,
69
- drag
72
+ drag,
73
+ showTooltip
70
74
  } = taskBarOpts;
71
75
  const isBarRowStyle = _xeUtils.default.isFunction(barStyle);
72
76
  const barStyObj = (barStyle ? isBarRowStyle ? barStyle(barParams) : barStyle : {}) || {};
@@ -98,17 +102,49 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
98
102
  if (contentMethod) {
99
103
  title = (0, _utils.getStringValue)(contentMethod({
100
104
  row,
101
- title
105
+ title,
106
+ scaleType: scaleUnit
102
107
  }));
103
108
  }
104
109
  const ctParams = {
110
+ $gantt: $xeGantt,
105
111
  source: sourceType,
106
112
  type: viewType,
113
+ scaleType: scaleUnit,
107
114
  row,
108
115
  $rowIndex,
109
116
  rowIndex,
110
117
  _rowIndex
111
118
  };
119
+ const ons = {
120
+ onClick(evnt) {
121
+ $xeGantt.handleTaskBarClickEvent(evnt, barParams);
122
+ },
123
+ onDblclick(evnt) {
124
+ $xeGantt.handleTaskBarDblclickEvent(evnt, barParams);
125
+ },
126
+ onMousedown(evnt) {
127
+ if ($xeGantt.handleTaskBarMousedownEvent) {
128
+ $xeGantt.handleTaskBarMousedownEvent(evnt, barParams);
129
+ }
130
+ }
131
+ };
132
+ if (showTooltip) {
133
+ ons.onMouseover = evnt => {
134
+ const ttParams = Object.assign({
135
+ $event: evnt
136
+ }, ctParams);
137
+ $xeGantt.triggerTaskBarTooltipEvent(evnt, ttParams);
138
+ $xeGantt.dispatchEvent('task-bar-mouseenter', ttParams, evnt);
139
+ };
140
+ ons.onMouseleave = evnt => {
141
+ const ttParams = Object.assign({
142
+ $event: evnt
143
+ }, ctParams);
144
+ $xeGantt.handleTaskBarTooltipLeaveEvent(evnt, ttParams);
145
+ $xeGantt.dispatchEvent('task-bar-mouseleave', ttParams, evnt);
146
+ };
147
+ }
112
148
  return (0, _vue.h)('div', {
113
149
  key: treeConfig ? rowid : $rowIndex,
114
150
  rowid,
@@ -123,22 +159,11 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
123
159
  onContextmenu(evnt) {
124
160
  $xeGantt.handleTaskBarContextmenuEvent(evnt, ctParams);
125
161
  }
126
- }, [(0, _vue.h)('div', {
162
+ }, [(0, _vue.h)('div', Object.assign({
127
163
  class: taskBarSlot ? 'vxe-gantt-view--chart-custom-bar' : 'vxe-gantt-view--chart-bar',
128
164
  style: vbStyle,
129
- rowid,
130
- onClick(evnt) {
131
- $xeGantt.handleTaskBarClickEvent(evnt, barParams);
132
- },
133
- onDblclick(evnt) {
134
- $xeGantt.handleTaskBarDblclickEvent(evnt, barParams);
135
- },
136
- onMousedown(evnt) {
137
- if ($xeGantt.handleTaskBarMousedownEvent) {
138
- $xeGantt.handleTaskBarMousedownEvent(evnt, barParams);
139
- }
140
- }
141
- }, taskBarSlot ? $xeGantt.callSlot(taskBarSlot, barParams) : [showProgress ? (0, _vue.h)('div', {
165
+ rowid
166
+ }, ons), taskBarSlot ? $xeGantt.callSlot(taskBarSlot, barParams) : [showProgress ? (0, _vue.h)('div', {
142
167
  class: 'vxe-gantt-view--chart-progress',
143
168
  style: vpStyle
144
169
  }) : renderEmptyElement($xeGantt), showContent ? (0, _vue.h)('div', {
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_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}}let renderEmptyElement=_core.VxeUI.renderEmptyElement,sourceType="gantt",viewType="chart";var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttViewChart",setup(){let k=(0,_vue.inject)("$xeGantt",{}),a=(0,_vue.inject)("$xeGanttView",{}),{reactData:r,internalData:t}=a,{computeProgressField:y,computeTitleField:b,computeTaskBarOpts:M}=k.getComputeMaps(),l=(0,_vue.ref)(),x=(e,t,a,r,l,n)=>{var o=e.props.treeConfig,u=e.reactData.resizeHeightFlag,i=e.internalData.fullAllDataRowIdData,{computeCellOpts:e,computeRowOpts:s,computeDefaultRowHeight:d}=e.getComputeMaps(),e=e.value,s=s.value,d=d.value,c=k.context.slots,c=c.taskBar||c["task-bar"],p=b.value,v=y.value,h=M.value;let g={$gantt:k,row:t};var{showProgress:h,showContent:m,contentMethod:x,barStyle:_,drag:w}=h,f=_xeUtils.default.isFunction(_),_=(_?f?_(g):_:{})||{},C=_.round,i=i[a]||{},u=0<(u?i.resizeHeight:0),i=(0,_util.getCellRestHeight)(i,e,s,d);let D=(0,_utils.getStringValue)(_xeUtils.default.get(t,p));e={},s={width:`${(h?Math.min(100,Math.max(0,_xeUtils.default.toNumber(_xeUtils.default.get(t,v)))):0)||0}%`};f&&({bgColor:d,completedBgColor:p}=_,d&&(e.backgroundColor=d),p)&&(s.backgroundColor=p),x&&(D=(0,_utils.getStringValue)(x({row:t,title:D})));let E={source:sourceType,type:viewType,row:t,$rowIndex:l,rowIndex:r,_rowIndex:n};return(0,_vue.h)("div",{key:o?a:l,rowid:a,class:["vxe-gantt-view--chart-row",{"is--round":C,"is--drag":w,"col--rs-height":u}],style:{height:i+"px"},onContextmenu(e){k.handleTaskBarContextmenuEvent(e,E)}},[(0,_vue.h)("div",{class:c?"vxe-gantt-view--chart-custom-bar":"vxe-gantt-view--chart-bar",style:e,rowid:a,onClick(e){k.handleTaskBarClickEvent(e,g)},onDblclick(e){k.handleTaskBarDblclickEvent(e,g)},onMousedown(e){k.handleTaskBarMousedownEvent&&k.handleTaskBarMousedownEvent(e,g)}},c?k.callSlot(c,g):[h?(0,_vue.h)("div",{class:"vxe-gantt-view--chart-progress",style:s}):renderEmptyElement(k),m?(0,_vue.h)("div",{class:"vxe-gantt-view--chart-content"},D):renderEmptyElement(k)])])},_=(i,e)=>{let s=i.props.treeConfig,d=i.reactData.treeExpandedFlag,{fullAllDataRowIdData:c,treeExpandedMaps:p}=i.internalData;var t=i.getComputeMaps().computeTreeOpts,t=t.value;let v=t.transform,h=t.children||t.childrenField,g=r.scrollYLoad,m=[];return e.forEach((e,t)=>{var a=i?i.getRowid(e):"",r=c[a]||{};let l=t,n=-1,o=(r&&(l=r.index,n=r._index),m.push(x(i,e,a,l,t,n)),!1),u=[];!s||g||v||(u=e[h],o=!!d&&u&&0<u.length&&!!p[a]),o&&m.push(..._(i,u))}),m};return(0,_vue.onMounted)(()=>{var e=t.elemStore;e["main-chart-wrapper"]=l}),(0,_vue.onUnmounted)(()=>{var e=t.elemStore;e["main-chart-wrapper"]=null}),()=>{var e=a.internalData.xeTable,t=r.tableData;return(0,_vue.h)("div",{ref:l,class:"vxe-gantt-view--chart-wrapper"},e?_(e,t):[])}}});
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_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}}let renderEmptyElement=_core.VxeUI.renderEmptyElement,sourceType="gantt",viewType="chart";var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttViewChart",setup(){let C=(0,_vue.inject)("$xeGantt",{}),a=(0,_vue.inject)("$xeGanttView",{}),{reactData:r,internalData:t}=a,{computeProgressField:D,computeTitleField:M,computeTaskBarOpts:B,computeScaleUnit:q}=C.getComputeMaps(),l=(0,_vue.ref)(),w=(e,t,a,r,l,n)=>{var o=e.props.treeConfig,u=e.reactData.resizeHeightFlag,i=e.internalData.fullAllDataRowIdData,{computeCellOpts:e,computeRowOpts:s,computeDefaultRowHeight:c}=e.getComputeMaps(),e=e.value,s=s.value,c=c.value,v=C.context.slots,v=v.taskBar||v["task-bar"],d=M.value,p=D.value,g=B.value,h=q.value;let m={$gantt:C,row:t,scaleType:h};var{showProgress:g,showContent:w,contentMethod:x,barStyle:_,drag:f,showTooltip:T}=g,E=_xeUtils.default.isFunction(_),_=(_?E?_(m):_:{})||{},k=_.round,i=i[a]||{},u=0<(u?i.resizeHeight:0),i=(0,_util.getCellRestHeight)(i,e,s,c);let b=(0,_utils.getStringValue)(_xeUtils.default.get(t,d));e={},s={width:`${(g?Math.min(100,Math.max(0,_xeUtils.default.toNumber(_xeUtils.default.get(t,p)))):0)||0}%`};E&&({bgColor:c,completedBgColor:d}=_,c&&(e.backgroundColor=c),d)&&(s.backgroundColor=d),x&&(b=(0,_utils.getStringValue)(x({row:t,title:b,scaleType:h})));let y={$gantt:C,source:sourceType,type:viewType,scaleType:h,row:t,$rowIndex:l,rowIndex:r,_rowIndex:n};p={onClick(e){C.handleTaskBarClickEvent(e,m)},onDblclick(e){C.handleTaskBarDblclickEvent(e,m)},onMousedown(e){C.handleTaskBarMousedownEvent&&C.handleTaskBarMousedownEvent(e,m)}};return T&&(p.onMouseover=e=>{var t=Object.assign({$event:e},y);C.triggerTaskBarTooltipEvent(e,t),C.dispatchEvent("task-bar-mouseenter",t,e)},p.onMouseleave=e=>{var t=Object.assign({$event:e},y);C.handleTaskBarTooltipLeaveEvent(e,t),C.dispatchEvent("task-bar-mouseleave",t,e)}),(0,_vue.h)("div",{key:o?a:l,rowid:a,class:["vxe-gantt-view--chart-row",{"is--round":k,"is--drag":f,"col--rs-height":u}],style:{height:i+"px"},onContextmenu(e){C.handleTaskBarContextmenuEvent(e,y)}},[(0,_vue.h)("div",Object.assign({class:v?"vxe-gantt-view--chart-custom-bar":"vxe-gantt-view--chart-bar",style:e,rowid:a},p),v?C.callSlot(v,m):[g?(0,_vue.h)("div",{class:"vxe-gantt-view--chart-progress",style:s}):renderEmptyElement(C),w?(0,_vue.h)("div",{class:"vxe-gantt-view--chart-content"},b):renderEmptyElement(C)])])},x=(i,e)=>{let s=i.props.treeConfig,c=i.reactData.treeExpandedFlag,{fullAllDataRowIdData:v,treeExpandedMaps:d}=i.internalData;var t=i.getComputeMaps().computeTreeOpts,t=t.value;let p=t.transform,g=t.children||t.childrenField,h=r.scrollYLoad,m=[];return e.forEach((e,t)=>{var a=i?i.getRowid(e):"",r=v[a]||{};let l=t,n=-1,o=(r&&(l=r.index,n=r._index),m.push(w(i,e,a,l,t,n)),!1),u=[];!s||h||p||(u=e[g],o=!!c&&u&&0<u.length&&!!d[a]),o&&m.push(...x(i,u))}),m};return(0,_vue.onMounted)(()=>{var e=t.elemStore;e["main-chart-wrapper"]=l}),(0,_vue.onUnmounted)(()=>{var e=t.elemStore;e["main-chart-wrapper"]=null}),()=>{var e=a.internalData.xeTable,t=r.tableData;return(0,_vue.h)("div",{ref:l,class:"vxe-gantt-view--chart-wrapper"},e?x(e,t):[])}}});
@@ -86,15 +86,17 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
86
86
  dateObj
87
87
  } = column;
88
88
  let label = `${column.title}`;
89
- if ($rowIndex < headerGroups.length - 1) {
90
- if (scaleItem.type === 'day') {
91
- label = getI18n(`vxe.gantt.dayss.w${dateObj.e}`);
92
- } else {
93
- label = getI18n(`vxe.gantt.${!$rowIndex && headerGroups.length > 1 ? 'tFullFormat' : 'tSimpleFormat'}.${type}`, dateObj);
94
- }
89
+ if (scaleItem.type === 'day') {
90
+ label = getI18n(`vxe.gantt.dayss.w${dateObj.e}`);
95
91
  } else {
96
- if (isLast && scaleItem.type === 'week') {
92
+ if ($rowIndex) {
97
93
  label = getI18n(`vxe.gantt.tSimpleFormat.${type}`, dateObj);
94
+ } else {
95
+ if (isLast && scaleItem.type === 'week') {
96
+ label = getI18n(`vxe.gantt.tSimpleFormat.${type}`, dateObj);
97
+ } else {
98
+ label = getI18n(`vxe.gantt.tFullFormat.${type}`, dateObj);
99
+ }
98
100
  }
99
101
  }
100
102
  let cellVNs = label;
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_core=require("@vxe-ui/core"),_xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let getI18n=_core.VxeUI.getI18n,sourceType="gantt",viewType="header";var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttViewHeader",setup(){let f=(0,_vue.inject)("$xeGantt",{}),t=(0,_vue.inject)("$xeGanttView",{}),r=f.getComputeMaps().computeTaskViewOpts,{reactData:n,internalData:u}=t,o=(0,_vue.ref)(),i=(0,_vue.ref)(),v=(0,_vue.ref)(),s=(0,_vue.ref)();return(0,_vue.onMounted)(()=>{var e=u.elemStore,t="main-header-";e[t+"wrapper"]=o,e[t+"scroll"]=i,e[t+"table"]=v,e[t+"xSpace"]=s}),(0,_vue.onUnmounted)(()=>{var e=u.elemStore,t="main-header-";e[t+"wrapper"]=null,e[t+"scroll"]=null,e[t+"table"]=null,e[t+"xSpace"]=null}),()=>{let{headerGroups:g,viewCellWidth:l}=n,{todayDateMaps:a,visibleColumn:e}=u;let w=r.value.showNowLine;return(0,_vue.h)("div",{ref:o,class:"vxe-gantt-view--header-wrapper"},[(0,_vue.h)("div",{ref:i,class:"vxe-gantt-view--header-inner-wrapper",onScroll:t.triggerHeaderScrollEvent},[(0,_vue.h)("div",{ref:s,class:"vxe-body--x-space"}),(0,_vue.h)("table",{ref:v,class:"vxe-gantt-view--header-table"},[(0,_vue.h)("colgroup",{},e.map((e,t)=>(0,_vue.h)("col",{key:t,style:{width:l+"px"}}))),(0,_vue.h)("thead",{},g.map(({scaleItem:v,columns:e},s)=>{let{type:p,titleFormat:d,titleMethod:c,headerCellStyle:_,slots:t}=v,h=t?t.title:null,m=s===g.length-1,x=m&&w?a[p]:null;return(0,_vue.h)("tr",{key:s},e.map((e,t)=>{var{field:l,childCount:a,dateObj:r}=e;let n=""+e.title,u=(s<g.length-1?n="day"===v.type?getI18n("vxe.gantt.dayss.w"+r.e):getI18n(`vxe.gantt.${!s&&1<g.length?"tFullFormat":"tSimpleFormat"}.`+p,r):m&&"week"===v.type&&(n=getI18n("vxe.gantt.tSimpleFormat."+p,r)),n),o={source:sourceType,type:viewType,column:e,scaleObj:v,title:n,dateObj:r,$rowIndex:s},i=(h?u=f.callSlot(h,o):c?u=""+c(o):d&&(u=_xeUtils.default.toDateString(r.date,d)),{});return _&&(i=_xeUtils.default.isFunction(_)?_(o):_),(0,_vue.h)("th",{key:t,class:["vxe-gantt-view--header-column",{"is--now":w&&x&&x===l}],colspan:a||null,title:h?null:n,style:i,onContextmenu(e){f.handleTaskHeaderContextmenuEvent(e,o)}},u)}))}))])])])}}});
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_core=require("@vxe-ui/core"),_xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let getI18n=_core.VxeUI.getI18n,sourceType="gantt",viewType="header";var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttViewHeader",setup(){let f=(0,_vue.inject)("$xeGantt",{}),t=(0,_vue.inject)("$xeGanttView",{}),n=f.getComputeMaps().computeTaskViewOpts,{reactData:u,internalData:o}=t,i=(0,_vue.ref)(),v=(0,_vue.ref)(),s=(0,_vue.ref)(),d=(0,_vue.ref)();return(0,_vue.onMounted)(()=>{var e=o.elemStore,t="main-header-";e[t+"wrapper"]=i,e[t+"scroll"]=v,e[t+"table"]=s,e[t+"xSpace"]=d}),(0,_vue.onUnmounted)(()=>{var e=o.elemStore,t="main-header-";e[t+"wrapper"]=null,e[t+"scroll"]=null,e[t+"table"]=null,e[t+"xSpace"]=null}),()=>{let{headerGroups:l,viewCellWidth:a}=u,{todayDateMaps:r,visibleColumn:e}=o;let w=n.value.showNowLine;return(0,_vue.h)("div",{ref:i,class:"vxe-gantt-view--header-wrapper"},[(0,_vue.h)("div",{ref:v,class:"vxe-gantt-view--header-inner-wrapper",onScroll:t.triggerHeaderScrollEvent},[(0,_vue.h)("div",{ref:d,class:"vxe-body--x-space"}),(0,_vue.h)("table",{ref:s,class:"vxe-gantt-view--header-table"},[(0,_vue.h)("colgroup",{},e.map((e,t)=>(0,_vue.h)("col",{key:t,style:{width:a+"px"}}))),(0,_vue.h)("thead",{},l.map(({scaleItem:v,columns:e},s)=>{let{type:d,titleFormat:p,titleMethod:c,headerCellStyle:_,slots:t}=v,x=t?t.title:null,h=s===l.length-1,m=h&&w?r[d]:null;return(0,_vue.h)("tr",{key:s},e.map((e,t)=>{var{field:l,childCount:a,dateObj:r}=e;let n=""+e.title,u=n="day"===v.type?getI18n("vxe.gantt.dayss.w"+r.e):s||h&&"week"===v.type?getI18n("vxe.gantt.tSimpleFormat."+d,r):getI18n("vxe.gantt.tFullFormat."+d,r),o={source:sourceType,type:viewType,column:e,scaleObj:v,title:n,dateObj:r,$rowIndex:s},i=(x?u=f.callSlot(x,o):c?u=""+c(o):p&&(u=_xeUtils.default.toDateString(r.date,p)),{});return _&&(i=_xeUtils.default.isFunction(_)?_(o):_),(0,_vue.h)("th",{key:t,class:["vxe-gantt-view--header-column",{"is--now":w&&m&&m===l}],colspan:a||null,title:x?null:n,style:i,onContextmenu(e){f.handleTaskHeaderContextmenuEvent(e,o)}},u)}))}))])])])}}});
@@ -351,7 +351,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
351
351
  if (minScale.level < 17) {
352
352
  handleData('quarter', colMaps, minCol);
353
353
  }
354
- if (minScale.level < 14) {
354
+ if (minScale.level < 15) {
355
355
  handleData('month', colMaps, minCol);
356
356
  }
357
357
  if (minScale.level < 13) {
@@ -360,7 +360,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
360
360
  if (minScale.level < 11) {
361
361
  handleData('day', colMaps, minCol);
362
362
  }
363
- if (minScale.level < 12) {
363
+ if (minScale.level < 9) {
364
364
  handleData('date', colMaps, minCol);
365
365
  }
366
366
  if (minScale.level < 7) {
@@ -369,6 +369,9 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
369
369
  if (minScale.level < 5) {
370
370
  handleData('minute', colMaps, minCol);
371
371
  }
372
+ if (minScale.level < 3) {
373
+ handleData('second', colMaps, minCol);
374
+ }
372
375
  fullCols.push(minCol);
373
376
  }
374
377
  taskScaleList.forEach(scaleItem => {
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_dom=require("../../ui/src/dom"),_core=require("@vxe-ui/core"),_util=require("./util"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ganttHeader=_interopRequireDefault(require("./gantt-header")),_ganttBody=_interopRequireDefault(require("./gantt-body")),_ganttFooter=_interopRequireDefault(require("./gantt-footer"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let globalEvents=_core.VxeUI.globalEvents,sourceType="gantt",minuteMs=6e4,dayMs=60*minuteMs*24;function createInternalData(){return{xeTable:null,visibleColumn:[],startMaps:{},endMaps:{},chartMaps:{},todayDateMaps:{},elemStore:{},scrollXStore:{preloadSize:0,offsetSize:0,visibleSize:0,visibleStartIndex:0,visibleEndIndex:0,startIndex:0,endIndex:0},lastScrollTop:0,lastScrollLeft:0}}let maxYHeight=5e6;var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttView",setup(r,u){var e=_xeUtils.default.uniqueId();let T=(0,_vue.inject)("$xeGantt",{}),{computeTaskOpts:h,computeStartField:m,computeEndField:y,computeScrollbarOpts:S,computeScrollbarXToTop:b,computeScrollbarYToLeft:w,computeScaleUnit:o,computeWeekScale:M,computeMinScale:D}=T.getComputeMaps(),i=(0,_vue.ref)(),U=(0,_vue.ref)(),W=(0,_vue.ref)(),E=(0,_vue.ref)(),H=(0,_vue.ref)(),L=(0,_vue.ref)(),z=(0,_vue.ref)(),R=(0,_vue.ref)(),k=(0,_vue.ref)(),C=(0,_vue.ref)(),I=(0,_vue.ref)(),d=(0,_vue.ref)(),n=(0,_vue.ref)(),$=(0,_vue.ref)(),Y=(0,_vue.reactive)({scrollXLoad:!1,scrollYLoad:!1,overflowY:!0,overflowX:!0,scrollbarWidth:0,scrollbarHeight:0,lastScrollTime:0,lazScrollLoading:!1,scrollVMLoading:!1,scrollYHeight:0,scrollYTop:0,isScrollYBig:!1,scrollXLeft:0,scrollXWidth:0,isScrollXBig:!1,minViewDate:null,maxViewDate:null,tableData:[],tableColumn:[],headerGroups:[],viewCellWidth:20}),q=createInternalData(),x={refElem:i},X=(0,_vue.computed)(()=>{var{minViewDate:t,maxViewDate:l}=Y,a=D.value,r=[];if(t&&l){var i=t.getTime(),o=l.getTime();switch(a.type){case"year":{let e=_xeUtils.default.getWhatYear(t,0,"first");for(;e<=l;){var s=e;r.push(s),e=_xeUtils.default.getWhatYear(e,1)}break}case"quarter":{let e=_xeUtils.default.getWhatQuarter(t,0,"first");for(;e<=l;){var d=e;r.push(d),e=_xeUtils.default.getWhatQuarter(e,1)}break}case"month":{let e=_xeUtils.default.getWhatMonth(t,0,"first");for(;e<=l;){var u=e;r.push(u),e=_xeUtils.default.getWhatMonth(e,1)}break}case"week":{let e=_xeUtils.default.getWhatWeek(t,0,a.startDay,a.startDay);for(;e<=l;){var n=e;r.push(n),e=_xeUtils.default.getWhatWeek(e,1)}break}case"day":case"date":case"hour":case"minute":case"second":{var c=(0,_util.getStandardGapTime)(a.type);let e=i;for(;e<=o;){var v=new Date(e);r.push(v),e+=c}break}}}return r}),_={computeScaleDateList:X},t={xID:e,props:r,context:u,reactData:Y,internalData:q,getRefMaps:()=>x,getComputeMaps:()=>_},g=e=>{var t=h.value.dateFormat;return _xeUtils.default.toStringDate(e,t||null)},p=()=>{var e=T.reactData.taskScaleList,e=e.find(e=>"week"===e.type),t=new Date,[l,a,r,i,o,s]=_xeUtils.default.toDateString(t,"yyyy-M-d-H-m-s").split("-"),d=t.getDay()+1,u=Math.ceil((t.getMonth()+1)/3),t=_xeUtils.default.getYearWeek(t,e?e.startDay:void 0);q.todayDateMaps={year:l,quarter:l+"_q"+u,month:l+"_"+a,week:l+"_W"+t,day:l+`_${a}_${r}_E`+d,date:l+`_${a}_`+r,hour:l+`_${a}_${r}_`+i,minute:l+`_${a}_${r}_${i}_`+o,second:l+`_${a}_${r}_${i}_${o}_`+s}},O=()=>{var e=T.reactData.taskScaleList,t=o.value;let s=D.value;var l=M.value,a=X.value;let r=[],d=[];if(s&&t&&a.length){let i={year:[],quarter:[],month:[],week:[],day:[],date:[],hour:[],minute:[],second:[]},o={year:{},quarter:{},month:{},week:{},day:{},date:{},hour:{},minute:{},second:{}};var u=(t,l,a)=>{if(s.type!==t){var l=l[t],r=""+l.field;let e=o[t][r];e||(e=l,o[t][r]=e,i[t].push(e)),e&&(e.children||(e.children=[]),e.children.push(a))}};for(let e=0;e<a.length;e++){var n=a[e],[c,v,f,h,g,m]=_xeUtils.default.toDateString(n,"yyyy-M-d-H-m-s").split("-"),y=n.getDay(),x=y+1,_=Math.ceil((n.getMonth()+1)/3),p=_xeUtils.default.getYearWeek(n,l?l.startDay:void 0),n={date:n,yy:c,M:v,d:f,H:h,m:g,s:m,q:_,W:p,E:x,e:y},y={year:{field:c,title:c,dateObj:n},quarter:{field:c+"_q"+_,title:""+_,dateObj:n},month:{field:c+"_"+v,title:v,dateObj:n},week:{field:c+"_W"+p,title:""+p,dateObj:n},day:{field:c+`_${v}_${f}_E`+x,title:""+x,dateObj:n},date:{field:c+`_${v}_`+f,title:f,dateObj:n},hour:{field:c+`_${v}_${f}_`+h,title:h,dateObj:n},minute:{field:c+`_${v}_${f}_${h}_`+g,title:g,dateObj:n},second:{field:c+`_${v}_${f}_${h}_${g}_`+m,title:m,dateObj:n}},_=y[s.type];s.level<19&&u("year",y,_),s.level<17&&u("quarter",y,_),s.level<14&&u("month",y,_),s.level<13&&u("week",y,_),s.level<11&&u("day",y,_),s.level<12&&u("date",y,_),s.level<7&&u("hour",y,_),s.level<5&&u("minute",y,_),r.push(_)}e.forEach(e=>{var t;e.type===s.type?d.push({scaleItem:e,columns:r}):((t=i[e.type]||[])&&t.forEach(e=>{e.childCount=e.children?e.children.length:0,e.children=void 0}),d.push({scaleItem:e,columns:t}))})}return{fullCols:r,groupCols:d}},F=e=>{let i=Y.minViewDate;var t=D.value,l=o.value;let d=M.value;switch(l){case"year":{let s={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy");s[e]=t}),(e,t)=>{var e=g(e),t=g(t),l=_xeUtils.default.toDateString(e,"yyyy"),a=_xeUtils.default.getWhatYear(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy"),i=_xeUtils.default.getWhatYear(t,0,"first"),o=Math.floor((_xeUtils.default.getWhatYear(t,1,"first").getTime()-i.getTime())/dayMs),e=(e.getTime()-a.getTime())/dayMs/o,a=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/o,t=(s[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+a}}}case"quarter":{let s={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy-q");s[e]=t}),(e,t)=>{var e=g(e),t=g(t),l=_xeUtils.default.toDateString(e,"yyyy-q"),a=_xeUtils.default.getWhatQuarter(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-q"),i=_xeUtils.default.getWhatQuarter(t,0,"first"),o=Math.floor((_xeUtils.default.getWhatQuarter(t,1,"first").getTime()-i.getTime())/dayMs),e=(e.getTime()-a.getTime())/dayMs/o,a=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/o,t=(s[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+a}}}case"month":{let s={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy-MM");s[e]=t}),(e,t)=>{var e=g(e),t=g(t),l=_xeUtils.default.toDateString(e,"yyyy-MM"),a=_xeUtils.default.getWhatMonth(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-MM"),i=_xeUtils.default.getWhatMonth(t,0,"first"),o=Math.floor((_xeUtils.default.getWhatMonth(t,1,"first").getTime()-i.getTime())/dayMs),e=(e.getTime()-a.getTime())/dayMs/o,a=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/o,t=(s[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+a}}}case"week":{let s={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy-W",{firstDay:d?d.startDay:void 0});s[e]=t}),(e,t)=>{var e=g(e),t=g(t),l=_xeUtils.default.toDateString(e,"yyyy-W",{firstDay:d?d.startDay:void 0}),a=_xeUtils.default.getWhatWeek(e,0,d?d.startDay:void 0,d?d.startDay:void 0),r=_xeUtils.default.toDateString(t,"yyyy-W",{firstDay:d?d.startDay:void 0}),i=_xeUtils.default.getWhatWeek(t,0,d?d.startDay:void 0,d?d.startDay:void 0),o=Math.floor((_xeUtils.default.getWhatWeek(t,1,d?d.startDay:void 0,d?d.startDay:void 0).getTime()-i.getTime())/dayMs),e=(e.getTime()-a.getTime())/dayMs/o,a=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/o,t=(s[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+a}}}case"day":case"date":{let s={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy-MM-dd");s[e]=t}),(e,t)=>{var e=g(e),t=g(t),l=_xeUtils.default.toDateString(e,"yyyy-MM-dd"),a=_xeUtils.default.getWhatDay(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-MM-dd"),i=_xeUtils.default.getWhatDay(t,0,"first"),o=Math.floor((_xeUtils.default.getWhatDay(t,1,"first").getTime()-i.getTime())/minuteMs),e=(e.getTime()-a.getTime())/minuteMs/o,a=Math.max(0,(t.getTime()-i.getTime())/minuteMs+1)/o,t=(s[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+a}}}case"hour":{let s={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy-MM-dd HH");s[e]=t}),(e,t)=>{var e=g(e),t=g(t),l=_xeUtils.default.toDateString(e,"yyyy-MM-dd HH"),a=_xeUtils.default.getWhatHours(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-MM-dd HH"),i=_xeUtils.default.getWhatHours(t,0,"first"),o=Math.floor((_xeUtils.default.getWhatHours(t,1,"first").getTime()-i.getTime())/minuteMs),e=(e.getTime()-a.getTime())/minuteMs/o,a=Math.max(0,(t.getTime()-i.getTime())/minuteMs+1)/o,t=(s[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+a}}}case"minute":{let s={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy-MM-dd HH:mm");s[e]=t}),(e,t)=>{var e=g(e),t=g(t),l=_xeUtils.default.toDateString(e,"yyyy-MM-dd HH:mm"),a=_xeUtils.default.getWhatMinutes(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-MM-dd HH:mm"),i=_xeUtils.default.getWhatMinutes(t,0,"first"),o=Math.floor((_xeUtils.default.getWhatMinutes(t,1,"first").getTime()-i.getTime())/minuteMs),e=(e.getTime()-a.getTime())/minuteMs/o,a=Math.max(0,(t.getTime()-i.getTime())/minuteMs+1)/o,t=(s[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+a}}}case"second":{let r=(0,_util.getStandardGapTime)(t.type);return(e,t)=>{e=g(e),t=g(t);let l=0,a=0;return i&&(l=(e.getTime()-i.getTime())/r,a=(t.getTime()-e.getTime())/r+1),{offsetLeftSize:l,offsetWidthSize:a}}}}return()=>({offsetLeftSize:0,offsetWidthSize:0})},j=()=>{var e=T.props.treeConfig,t=q.scrollXStore,r=q.xeTable;let i=null,o=null;if(r){let l=m.value,a=y.value;var{computeAggregateOpts:s,computeTreeOpts:d}=r.getComputeMaps(),u=r.reactData.isRowGroupStatus,{afterFullData:r,afterTreeFullData:n,afterGroupFullData:c}=r.internalData,s=s.value,d=d.value,v=d.transform,f=d.children||d.childrenField,h=e=>{var t=_xeUtils.default.get(e,l),e=_xeUtils.default.get(e,a);t&&e&&(t=g(t),(!i||i.getTime()>t.getTime())&&(i=t),t=g(e),!o||o.getTime()<t.getTime())&&(o=t)};u?(u=s.mapChildrenField)&&_xeUtils.default.eachTree(c,h,{children:u}):e?_xeUtils.default.eachTree(n,h,{children:v?d.mapChildrenField:f}):r.forEach(h)}t.startIndex=0,t.endIndex=Math.max(1,t.visibleSize),Y.minViewDate=i,Y.maxViewDate=o,q.startMaps={},q.endMaps={},(()=>{var e=T.props.treeConfig,{minViewDate:t,maxViewDate:l}=Y,{fullCols:a,groupCols:r}=O();if(t&&l&&a.length){let d=q.xeTable;if(d){let r=m.value,i=y.value;var{computeAggregateOpts:t,computeTreeOpts:l}=d.getComputeMaps(),u=d.reactData.isRowGroupStatus,{afterFullData:n,afterTreeFullData:c,afterGroupFullData:v}=d.internalData,t=t.value,l=l.value,f=l.transform,h=l.children||l.childrenField;let o={},s=F(a);var g=e=>{var t=d.getRowid(e),l=_xeUtils.default.get(e,r),a=_xeUtils.default.get(e,i);l&&a&&({offsetLeftSize:l,offsetWidthSize:a}=s(l,a),o[t]={row:e,rowid:t,oLeftSize:l,oWidthSize:a})};u?(u=t.mapChildrenField)&&_xeUtils.default.eachTree(v,g,{children:u}):e?_xeUtils.default.eachTree(c,g,{children:f?l.mapChildrenField:h}):n.forEach(g),q.chartMaps=o}}q.visibleColumn=a,Y.headerGroups=r,p(),N(),J()})()},c=()=>{var{scrollXWidth:e,scrollYHeight:t}=Y,l=q.elemStore,a=S.value,l=(0,_util.getRefElem)(l["main-body-wrapper"]),r=E.value,i=z.value;l&&(t=t>l.clientHeight,i&&(Y.scrollbarWidth=a.width||i.offsetWidth-i.clientWidth||14),Y.overflowY=t,i=e>l.clientWidth,r&&(Y.scrollbarHeight=a.height||r.offsetHeight-r.clientHeight||14),Y.overflowX=i)},B=()=>{let l=Y.viewCellWidth,{elemStore:e,chartMaps:a}=q;var t=(0,_util.getRefElem)(e["main-chart-wrapper"]);return t&&_xeUtils.default.arrayEach(t.children,e=>{var t=e.children[0];t&&(e=(e=e.getAttribute("rowid"))?a[e]:null,t.style.left=`${e?l*e.oLeftSize:0}px`,t.style.width=`${e?l*e.oWidthSize:0}px`)}),(0,_vue.nextTick)()},v=()=>{var{scrollbarWidth:s,scrollbarHeight:d,headerGroups:u,tableColumn:n}=Y,{elemStore:c,visibleColumn:v}=q,f=q.xeTable,h=i.value;if(h){var g=S.value,m=b.value,y=w.value,x=H.value,_=L.value,p=U.value;let e=s;s=d;let t=0,l=0,a=0,r=(f&&(d=f.internalData,t=d.tBodyHeight,l=d.tHeaderHeight,a=d.tFooterHeight),"visible");(y||g.y&&!1===g.y.visible)&&(e=0,r="hidden");f=(0,_util.getRefElem)(c["main-header-scroll"]),d=(f&&(f.style.height=l+"px",f.style.setProperty("--vxe-ui-gantt-view-cell-height",l/u.length+"px")),(0,_util.getRefElem)(c["main-body-scroll"])),y=(d&&(d.style.height=t+"px"),(0,_util.getRefElem)(c["main-footer-scroll"])),g=(y&&(y.style.height=a+"px"),p&&(p.style.height=s+"px",p.style.visibility="visible"),k.value),f=(g&&(g.style.left=m?e+"px":"",g.style.width=h.clientWidth-e+"px"),x&&(x.style.width=m?e+"px":"",x.style.display=m&&s?"block":""),_&&(_.style.width=m?"":e+"px",_.style.display=!m&&s?"block":""),W.value),u=(f&&(f.style.width=e+"px",f.style.height=t+l+a+"px",f.style.visibility=r),R.value),y=(u&&(u.style.height=l+"px",u.style.display=l?"block":""),C.value),p=(y&&(y.style.height=t+"px",y.style.top=l+"px"),I.value),g=(p&&(p.style.height=a+"px",p.style.top=l+t+"px",p.style.display=a?"block":""),$.value);let i=40,o=(i=g?g.clientWidth||40:i)*v.length;d&&0<(x=(h=d.clientWidth)-o)&&(i+=x/v.length,o=h),Y.viewCellWidth=i;_=(0,_util.getRefElem)(c["main-header-table"]),m=(0,_util.getRefElem)(c["main-body-table"]),s=i*n.length;return _&&(_.style.width=o+"px"),m&&(m.style.width=s+"px"),Y.scrollXWidth=o,B()}},s=()=>{var e=i.value;return q.rceRunTime=Date.now(),e&&e.clientWidth?(c(),v(),B(),(0,_vue.nextTick)().then(()=>{var e,t=Y.scrollXLoad,l=q.scrollXStore;t?({toVisibleIndex:t,visibleSize:e}=A(),l.preloadSize=1,l.offsetSize=2,l.visibleSize=e,l.endIndex=Math.max(l.startIndex+l.visibleSize+2,l.endIndex),l.visibleStartIndex=Math.max(l.startIndex,t),l.visibleEndIndex=Math.min(l.endIndex,t+e),P().then(()=>{Q()})):a()})):(0,_vue.nextTick)()},G=()=>new Promise(e=>{var{rceTimeout:t,rceRunTime:l}=q,a=q.xeTable;let r=30;a&&(a=a.getComputeMaps().computeResizeOpts,a=a.value,r=a.refreshDelay||r),!t||(clearTimeout(t),l&&l+(r-5)<Date.now())?e(s()):(0,_vue.nextTick)(()=>{e()}),q.rceTimeout=setTimeout(()=>{q.rceTimeout=void 0,s()},r)}),A=()=>{var e,t=Y.viewCellWidth,l=q.elemStore,l=(0,_util.getRefElem)(l["main-body-scroll"]);return l?(e=l.clientWidth,l=l.scrollLeft,l=Math.floor(l/t)-1,e=Math.ceil(e/t)+1,{toVisibleIndex:Math.max(0,l),visibleSize:Math.max(1,e)}):{toVisibleIndex:0,visibleSize:6}},Q=()=>{var e=Y.isScrollXBig,t=q.scrollXStore,{preloadSize:l,startIndex:a,endIndex:r,offsetSize:i}=t,{toVisibleIndex:o,visibleSize:s}=A(),e={startIndex:Math.max(0,e?o-1:o-1-i-l),endIndex:e?o+s:o+s+i+l},{startIndex:i,endIndex:l}=(t.visibleStartIndex=o-1,t.visibleEndIndex=o+s+1,e);!(o<=a||r-s-1<=o)||a===i&&r===l||(t.startIndex=i,t.endIndex=l,P())},P=()=>(J(),a(),(0,_vue.nextTick)()),N=()=>Y.scrollXLoad=!0,J=()=>{var e=Y.scrollXLoad,{visibleColumn:t,scrollXStore:l}=q,e=e?t.slice(l.startIndex,l.endIndex):t.slice(0);Y.tableColumn=e},a=()=>{let{scrollXLoad:t,scrollXWidth:l,viewCellWidth:e}=Y,{elemStore:a,scrollXStore:r}=q;var i=(0,_util.getRefElem)(a["main-body-table"]),o=r.startIndex;let s=0;t&&(s=Math.max(0,o*e)),i&&(i.style.transform=`translate(${s}px, ${Y.scrollYTop||0}px)`);["header","body","footer"].forEach(e=>{e=(0,_util.getRefElem)(a[`main-${e}-xSpace`]);e&&(e.style.width=t?l+"px":"")});o=d.value;return o&&(o.style.width=l+"px"),c(),(0,_vue.nextTick)()},K=()=>{Q()},Z=(e,t)=>{var l=q.lcsTimeout;Y.lazScrollLoading=!0,l&&clearTimeout(l),q.lcsTimeout=setTimeout(()=>{q.lcsRunTime=Date.now(),q.lcsTimeout=void 0,q.intoRunScroll=!1,q.inVirtualScroll=!1,q.inWheelScroll=!1,q.inHeaderScroll=!1,q.inBodyScroll=!1,q.inFooterScroll=!1,Y.lazScrollLoading=!1},200)},V=(e,t,l,a)=>{t&&(q.lastScrollLeft=a),e&&(q.lastScrollTop=l),Y.lastScrollTime=Date.now(),Z(t,e)},f=(u,n,c,v,f)=>{var h=q.xeTable,{lastScrollLeft:g,lastScrollTop:m}=q,y=E.value,x=z.value;if(y&&x&&h){var{computeScrollXThreshold:h,computeScrollYThreshold:_}=h.getComputeMaps(),p=x.clientHeight,S=y.clientWidth,x=x.scrollHeight,y=y.scrollWidth;let e=!1,t=!1,l=!1,a=!1,r="",i=!1,o=!1,s=!1,d=!1;c&&(h=h.value,(l=f<=0)||(a=y-1<=f+S),g<f?(r="right",y-h<=f+S&&(d=!0)):(r="left",f<=h&&(s=!0))),n&&(g=_.value,(e=v<=0)||(t=x-1<=v+p),m<v?(r="bottom",x-g<=v+p&&(o=!0)):(r="top",v<=g&&(i=!0))),V(n,c,v,f);h={source:sourceType,scrollTop:v,scrollLeft:f,bodyHeight:p,bodyWidth:S,scrollHeight:x,scrollWidth:y,isX:c,isY:n,isTop:e,isBottom:t,isLeft:l,isRight:a,direction:r};(o||i||d||s)&&T.dispatchEvent("scroll-boundary",h,u),T.dispatchEvent("scroll",h,u)}},ee=e=>{var t=q.xeTable;t&&(t=t.internalData.elemStore,t=(0,_util.getRefElem)(t["main-body-scroll"]))&&(t.scrollTop=e)};e={handleUpdateStyle:v,handleLazyRecalculate:G,handleUpdateCurrentRow(e){var t,l,a=q.xeTable,r=i.value;a&&r&&(e?(t=a.props,l=a.getComputeMaps().computeRowOpts,(l.value.isCurrent||t.highlightCurrentRow)&&_xeUtils.default.arrayEach(r.querySelectorAll(`.vxe-gantt-view--body-row[rowid="${a.getRowid(e)}"]`),e=>(0,_dom.addClass)(e,"row--current"))):_xeUtils.default.arrayEach(r.querySelectorAll(".vxe-gantt-view--body-row.row--current"),e=>(0,_dom.removeClass)(e,"row--current")))},handleUpdateHoverRow(e){var t=q.xeTable,l=i.value;t&&l&&(e?_xeUtils.default.arrayEach(l.querySelectorAll(`.vxe-gantt-view--body-row[rowid="${t.getRowid(e)}"]`),e=>(0,_dom.addClass)(e,"row--hover")):_xeUtils.default.arrayEach(l.querySelectorAll(".vxe-gantt-view--body-row.row--hover"),e=>(0,_dom.removeClass)(e,"row--hover")))},triggerHeaderScrollEvent(e){var{elemStore:t,inVirtualScroll:l,inBodyScroll:a,inFooterScroll:r}=q;l||a||r||(l=e.currentTarget,a=(0,_util.getRefElem)(t["main-body-scroll"]),r=E.value,a&&l&&(t=l.scrollLeft,q.inHeaderScroll=!0,(0,_dom.setScrollLeft)(r,t),(0,_dom.setScrollLeft)(a,t),f(e,!1,!0,l.scrollTop,t)))},triggerBodyScrollEvent(e){var t,l,a=Y.scrollXLoad,{elemStore:r,inVirtualScroll:i,inHeaderScroll:o,inFooterScroll:s,lastScrollLeft:d,lastScrollTop:u}=q;i||o||s||(i=e.currentTarget,o=(0,_util.getRefElem)(r["main-header-scroll"]),s=E.value,r=z.value,d=(t=i.scrollLeft)!==d,u=(l=i.scrollTop)!==u,q.inBodyScroll=!0,q.scrollRenderType="",u&&((0,_dom.setScrollTop)(r,l),ee(l)),d&&(q.inBodyScroll=!0,(0,_dom.setScrollLeft)(s,t),(0,_dom.setScrollLeft)(o,t),a)&&K(),u&&V(u,d,i.scrollTop,t),d&&f(e,u,d,i.scrollTop,t))},triggerVirtualScrollXEvent(e){var t,l=Y.scrollXLoad,{elemStore:a,inHeaderScroll:r,inBodyScroll:i}=q;r||i||(r=e.currentTarget,i=(0,_util.getRefElem)(a["main-header-scroll"]),a=(0,_util.getRefElem)(a["main-body-scroll"]),r&&(t=r.scrollLeft,q.inVirtualScroll=!0,(0,_dom.setScrollLeft)(i,t),(0,_dom.setScrollLeft)(a,t),l&&K(),f(e,!1,!0,r.scrollTop,t)))},triggerVirtualScrollYEvent(e){var{elemStore:t,inHeaderScroll:l,inBodyScroll:a}=q;l||a||(l=e.currentTarget,a=(0,_util.getRefElem)(t["main-body-scroll"]),l&&(e=l.scrollTop,q.inVirtualScroll=!0,(0,_dom.setScrollTop)(a,e),ee(e),V(!0,!1,e,l.scrollLeft)))},handleUpdateSXSpace(){return a()},handleUpdateSYSpace(){return(()=>{var e=q.elemStore,t=q.xeTable,l=(0,_util.getRefElem)(e["main-body-scroll"]),a=(0,_util.getRefElem)(e["main-body-table"]);let r=0,i=0,o=!1,s=(t&&(t=t.reactData,r=t.scrollYTop,i=t.scrollYHeight,o=t.isScrollYBig),i),d=r,u=0;l&&(u=l.clientHeight),o&&(d=l&&a&&l.scrollTop+u>=maxYHeight?maxYHeight-a.clientHeight:(maxYHeight-u)*(r/(i-u)),s=maxYHeight);t=(0,_util.getRefElem)(e["main-chart-wrapper"]),a&&(a.style.transform=`translate(${Y.scrollXLeft||0}px, ${d}px)`),t&&(t.style.transform=`translate(${Y.scrollXLeft||0}px, ${d}px)`),l=(0,_util.getRefElem)(e["main-body-ySpace"]),l&&(l.style.height=s?s+"px":""),a=n.value;return a&&(a.style.height=s?s+"px":""),Y.scrollYTop=d,Y.scrollYHeight=i,Y.isScrollYBig=o,c(),(0,_vue.nextTick)().then(()=>{v()})})()},handleUpdateSYStatus(e){Y.scrollYLoad=e}};let te=()=>{G()},le=(Object.assign(t,{refreshData(){return j(),s(),(0,_vue.nextTick)().then(()=>{var e=q.xeTable;if(s(),e)return e.recalculate()})},updateViewData(){var e=q.xeTable;return e&&(e=e.reactData.tableData,Y.tableData=e),(0,_vue.nextTick)()},connectUpdate({$table:e}){return e&&(q.xeTable=e),(0,_vue.nextTick)()}},e),()=>(0,_vue.h)("div",{key:"vsx",ref:U,class:"vxe-gantt-view--scroll-x-virtual"},[(0,_vue.h)("div",{ref:H,class:"vxe-gantt-view--scroll-x-left-corner"}),(0,_vue.h)("div",{ref:k,class:"vxe-gantt-view--scroll-x-wrapper"},[(0,_vue.h)("div",{ref:E,class:"vxe-gantt-view--scroll-x-handle",onScroll:t.triggerVirtualScrollXEvent},[(0,_vue.h)("div",{ref:d,class:"vxe-gantt-view--scroll-x-space"})]),(0,_vue.h)("div",{class:"vxe-gantt-view--scroll-x-handle-appearance"})]),(0,_vue.h)("div",{ref:L,class:"vxe-gantt-view--scroll-x-right-corner"})])),ae=()=>(0,_vue.h)("div",{ref:W,class:"vxe-gantt-view--scroll-y-virtual"},[(0,_vue.h)("div",{ref:R,class:"vxe-gantt-view--scroll-y-top-corner"}),(0,_vue.h)("div",{ref:C,class:"vxe-gantt-view--scroll-y-wrapper"},[(0,_vue.h)("div",{ref:z,class:"vxe-gantt-view--scroll-y-handle",onScroll:t.triggerVirtualScrollYEvent},[(0,_vue.h)("div",{ref:n,class:"vxe-gantt-view--scroll-y-space"})]),(0,_vue.h)("div",{class:"vxe-gantt-view--scroll-y-handle-appearance"})]),(0,_vue.h)("div",{ref:I,class:"vxe-gantt-view--scroll-y-bottom-corner"})]),re=()=>(0,_vue.h)("div",{class:"vxe-gantt-view--viewport-wrapper"},[(0,_vue.h)(_ganttHeader.default),(0,_vue.h)(_ganttBody.default),(0,_vue.h)(_ganttFooter.default)]),ie=()=>{var e=w.value;return(0,_vue.h)("div",{class:"vxe-gantt-view--layout-wrapper"},e?[ae(),re()]:[re(),ae()])};let l=(0,_vue.ref)(0);return(0,_vue.watch)(()=>Y.tableData,()=>{l.value++}),(0,_vue.watch)(()=>Y.tableData.length,()=>{l.value++}),(0,_vue.watch)(l,()=>{j()}),(0,_vue.onMounted)(()=>{globalEvents.on(t,"resize",te)}),(0,_vue.onUnmounted)(()=>{globalEvents.off(t,"keydown"),_xeUtils.default.assign(q,createInternalData())}),t.renderVN=()=>{var{overflowX:e,overflowY:t,scrollXLoad:l,scrollYLoad:a}=Y,r=b.value;return(0,_vue.h)("div",{ref:i,class:["vxe-gantt-view",{"is--scroll-y":t,"is--scroll-x":e,"is--virtual-x":l,"is--virtual-y":a}]},[(0,_vue.h)("div",{class:"vxe-gantt-view--render-wrapper"},r?[le(),ie()]:[ie(),le()]),(0,_vue.h)("div",{class:"vxe-gantt-view--render-vars"},[(0,_vue.h)("div",{ref:$,class:"vxe-gantt-view--column-info"})])])},(0,_vue.provide)("$xeGanttView",t),t},render(){return this.renderVN()}});
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_dom=require("../../ui/src/dom"),_core=require("@vxe-ui/core"),_util=require("./util"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ganttHeader=_interopRequireDefault(require("./gantt-header")),_ganttBody=_interopRequireDefault(require("./gantt-body")),_ganttFooter=_interopRequireDefault(require("./gantt-footer"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let globalEvents=_core.VxeUI.globalEvents,sourceType="gantt",minuteMs=6e4,dayMs=60*minuteMs*24;function createInternalData(){return{xeTable:null,visibleColumn:[],startMaps:{},endMaps:{},chartMaps:{},todayDateMaps:{},elemStore:{},scrollXStore:{preloadSize:0,offsetSize:0,visibleSize:0,visibleStartIndex:0,visibleEndIndex:0,startIndex:0,endIndex:0},lastScrollTop:0,lastScrollLeft:0}}let maxYHeight=5e6;var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttView",setup(r,u){var e=_xeUtils.default.uniqueId();let T=(0,_vue.inject)("$xeGantt",{}),{computeTaskOpts:h,computeStartField:m,computeEndField:y,computeScrollbarOpts:S,computeScrollbarXToTop:b,computeScrollbarYToLeft:w,computeScaleUnit:o,computeWeekScale:M,computeMinScale:D}=T.getComputeMaps(),i=(0,_vue.ref)(),U=(0,_vue.ref)(),W=(0,_vue.ref)(),E=(0,_vue.ref)(),H=(0,_vue.ref)(),L=(0,_vue.ref)(),z=(0,_vue.ref)(),R=(0,_vue.ref)(),k=(0,_vue.ref)(),C=(0,_vue.ref)(),I=(0,_vue.ref)(),d=(0,_vue.ref)(),n=(0,_vue.ref)(),$=(0,_vue.ref)(),Y=(0,_vue.reactive)({scrollXLoad:!1,scrollYLoad:!1,overflowY:!0,overflowX:!0,scrollbarWidth:0,scrollbarHeight:0,lastScrollTime:0,lazScrollLoading:!1,scrollVMLoading:!1,scrollYHeight:0,scrollYTop:0,isScrollYBig:!1,scrollXLeft:0,scrollXWidth:0,isScrollXBig:!1,minViewDate:null,maxViewDate:null,tableData:[],tableColumn:[],headerGroups:[],viewCellWidth:20}),q=createInternalData(),x={refElem:i},X=(0,_vue.computed)(()=>{var{minViewDate:t,maxViewDate:l}=Y,a=D.value,r=[];if(t&&l){var i=t.getTime(),o=l.getTime();switch(a.type){case"year":{let e=_xeUtils.default.getWhatYear(t,0,"first");for(;e<=l;){var s=e;r.push(s),e=_xeUtils.default.getWhatYear(e,1)}break}case"quarter":{let e=_xeUtils.default.getWhatQuarter(t,0,"first");for(;e<=l;){var d=e;r.push(d),e=_xeUtils.default.getWhatQuarter(e,1)}break}case"month":{let e=_xeUtils.default.getWhatMonth(t,0,"first");for(;e<=l;){var u=e;r.push(u),e=_xeUtils.default.getWhatMonth(e,1)}break}case"week":{let e=_xeUtils.default.getWhatWeek(t,0,a.startDay,a.startDay);for(;e<=l;){var n=e;r.push(n),e=_xeUtils.default.getWhatWeek(e,1)}break}case"day":case"date":case"hour":case"minute":case"second":{var c=(0,_util.getStandardGapTime)(a.type);let e=i;for(;e<=o;){var v=new Date(e);r.push(v),e+=c}break}}}return r}),_={computeScaleDateList:X},t={xID:e,props:r,context:u,reactData:Y,internalData:q,getRefMaps:()=>x,getComputeMaps:()=>_},g=e=>{var t=h.value.dateFormat;return _xeUtils.default.toStringDate(e,t||null)},p=()=>{var e=T.reactData.taskScaleList,e=e.find(e=>"week"===e.type),t=new Date,[l,a,r,i,o,s]=_xeUtils.default.toDateString(t,"yyyy-M-d-H-m-s").split("-"),d=t.getDay()+1,u=Math.ceil((t.getMonth()+1)/3),t=_xeUtils.default.getYearWeek(t,e?e.startDay:void 0);q.todayDateMaps={year:l,quarter:l+"_q"+u,month:l+"_"+a,week:l+"_W"+t,day:l+`_${a}_${r}_E`+d,date:l+`_${a}_`+r,hour:l+`_${a}_${r}_`+i,minute:l+`_${a}_${r}_${i}_`+o,second:l+`_${a}_${r}_${i}_${o}_`+s}},O=()=>{var e=T.reactData.taskScaleList,t=o.value;let s=D.value;var l=M.value,a=X.value;let r=[],d=[];if(s&&t&&a.length){let i={year:[],quarter:[],month:[],week:[],day:[],date:[],hour:[],minute:[],second:[]},o={year:{},quarter:{},month:{},week:{},day:{},date:{},hour:{},minute:{},second:{}};var u=(t,l,a)=>{if(s.type!==t){var l=l[t],r=""+l.field;let e=o[t][r];e||(e=l,o[t][r]=e,i[t].push(e)),e&&(e.children||(e.children=[]),e.children.push(a))}};for(let e=0;e<a.length;e++){var n=a[e],[c,v,f,h,g,m]=_xeUtils.default.toDateString(n,"yyyy-M-d-H-m-s").split("-"),y=n.getDay(),x=y+1,_=Math.ceil((n.getMonth()+1)/3),p=_xeUtils.default.getYearWeek(n,l?l.startDay:void 0),n={date:n,yy:c,M:v,d:f,H:h,m:g,s:m,q:_,W:p,E:x,e:y},y={year:{field:c,title:c,dateObj:n},quarter:{field:c+"_q"+_,title:""+_,dateObj:n},month:{field:c+"_"+v,title:v,dateObj:n},week:{field:c+"_W"+p,title:""+p,dateObj:n},day:{field:c+`_${v}_${f}_E`+x,title:""+x,dateObj:n},date:{field:c+`_${v}_`+f,title:f,dateObj:n},hour:{field:c+`_${v}_${f}_`+h,title:h,dateObj:n},minute:{field:c+`_${v}_${f}_${h}_`+g,title:g,dateObj:n},second:{field:c+`_${v}_${f}_${h}_${g}_`+m,title:m,dateObj:n}},_=y[s.type];s.level<19&&u("year",y,_),s.level<17&&u("quarter",y,_),s.level<15&&u("month",y,_),s.level<13&&u("week",y,_),s.level<11&&u("day",y,_),s.level<9&&u("date",y,_),s.level<7&&u("hour",y,_),s.level<5&&u("minute",y,_),s.level<3&&u("second",y,_),r.push(_)}e.forEach(e=>{var t;e.type===s.type?d.push({scaleItem:e,columns:r}):((t=i[e.type]||[])&&t.forEach(e=>{e.childCount=e.children?e.children.length:0,e.children=void 0}),d.push({scaleItem:e,columns:t}))})}return{fullCols:r,groupCols:d}},F=e=>{let i=Y.minViewDate;var t=D.value,l=o.value;let d=M.value;switch(l){case"year":{let s={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy");s[e]=t}),(e,t)=>{var e=g(e),t=g(t),l=_xeUtils.default.toDateString(e,"yyyy"),a=_xeUtils.default.getWhatYear(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy"),i=_xeUtils.default.getWhatYear(t,0,"first"),o=Math.floor((_xeUtils.default.getWhatYear(t,1,"first").getTime()-i.getTime())/dayMs),e=(e.getTime()-a.getTime())/dayMs/o,a=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/o,t=(s[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+a}}}case"quarter":{let s={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy-q");s[e]=t}),(e,t)=>{var e=g(e),t=g(t),l=_xeUtils.default.toDateString(e,"yyyy-q"),a=_xeUtils.default.getWhatQuarter(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-q"),i=_xeUtils.default.getWhatQuarter(t,0,"first"),o=Math.floor((_xeUtils.default.getWhatQuarter(t,1,"first").getTime()-i.getTime())/dayMs),e=(e.getTime()-a.getTime())/dayMs/o,a=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/o,t=(s[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+a}}}case"month":{let s={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy-MM");s[e]=t}),(e,t)=>{var e=g(e),t=g(t),l=_xeUtils.default.toDateString(e,"yyyy-MM"),a=_xeUtils.default.getWhatMonth(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-MM"),i=_xeUtils.default.getWhatMonth(t,0,"first"),o=Math.floor((_xeUtils.default.getWhatMonth(t,1,"first").getTime()-i.getTime())/dayMs),e=(e.getTime()-a.getTime())/dayMs/o,a=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/o,t=(s[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+a}}}case"week":{let s={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy-W",{firstDay:d?d.startDay:void 0});s[e]=t}),(e,t)=>{var e=g(e),t=g(t),l=_xeUtils.default.toDateString(e,"yyyy-W",{firstDay:d?d.startDay:void 0}),a=_xeUtils.default.getWhatWeek(e,0,d?d.startDay:void 0,d?d.startDay:void 0),r=_xeUtils.default.toDateString(t,"yyyy-W",{firstDay:d?d.startDay:void 0}),i=_xeUtils.default.getWhatWeek(t,0,d?d.startDay:void 0,d?d.startDay:void 0),o=Math.floor((_xeUtils.default.getWhatWeek(t,1,d?d.startDay:void 0,d?d.startDay:void 0).getTime()-i.getTime())/dayMs),e=(e.getTime()-a.getTime())/dayMs/o,a=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/o,t=(s[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+a}}}case"day":case"date":{let s={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy-MM-dd");s[e]=t}),(e,t)=>{var e=g(e),t=g(t),l=_xeUtils.default.toDateString(e,"yyyy-MM-dd"),a=_xeUtils.default.getWhatDay(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-MM-dd"),i=_xeUtils.default.getWhatDay(t,0,"first"),o=Math.floor((_xeUtils.default.getWhatDay(t,1,"first").getTime()-i.getTime())/minuteMs),e=(e.getTime()-a.getTime())/minuteMs/o,a=Math.max(0,(t.getTime()-i.getTime())/minuteMs+1)/o,t=(s[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+a}}}case"hour":{let s={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy-MM-dd HH");s[e]=t}),(e,t)=>{var e=g(e),t=g(t),l=_xeUtils.default.toDateString(e,"yyyy-MM-dd HH"),a=_xeUtils.default.getWhatHours(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-MM-dd HH"),i=_xeUtils.default.getWhatHours(t,0,"first"),o=Math.floor((_xeUtils.default.getWhatHours(t,1,"first").getTime()-i.getTime())/minuteMs),e=(e.getTime()-a.getTime())/minuteMs/o,a=Math.max(0,(t.getTime()-i.getTime())/minuteMs+1)/o,t=(s[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+a}}}case"minute":{let s={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy-MM-dd HH:mm");s[e]=t}),(e,t)=>{var e=g(e),t=g(t),l=_xeUtils.default.toDateString(e,"yyyy-MM-dd HH:mm"),a=_xeUtils.default.getWhatMinutes(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-MM-dd HH:mm"),i=_xeUtils.default.getWhatMinutes(t,0,"first"),o=Math.floor((_xeUtils.default.getWhatMinutes(t,1,"first").getTime()-i.getTime())/minuteMs),e=(e.getTime()-a.getTime())/minuteMs/o,a=Math.max(0,(t.getTime()-i.getTime())/minuteMs+1)/o,t=(s[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+a}}}case"second":{let r=(0,_util.getStandardGapTime)(t.type);return(e,t)=>{e=g(e),t=g(t);let l=0,a=0;return i&&(l=(e.getTime()-i.getTime())/r,a=(t.getTime()-e.getTime())/r+1),{offsetLeftSize:l,offsetWidthSize:a}}}}return()=>({offsetLeftSize:0,offsetWidthSize:0})},j=()=>{var e=T.props.treeConfig,t=q.scrollXStore,r=q.xeTable;let i=null,o=null;if(r){let l=m.value,a=y.value;var{computeAggregateOpts:s,computeTreeOpts:d}=r.getComputeMaps(),u=r.reactData.isRowGroupStatus,{afterFullData:r,afterTreeFullData:n,afterGroupFullData:c}=r.internalData,s=s.value,d=d.value,v=d.transform,f=d.children||d.childrenField,h=e=>{var t=_xeUtils.default.get(e,l),e=_xeUtils.default.get(e,a);t&&e&&(t=g(t),(!i||i.getTime()>t.getTime())&&(i=t),t=g(e),!o||o.getTime()<t.getTime())&&(o=t)};u?(u=s.mapChildrenField)&&_xeUtils.default.eachTree(c,h,{children:u}):e?_xeUtils.default.eachTree(n,h,{children:v?d.mapChildrenField:f}):r.forEach(h)}t.startIndex=0,t.endIndex=Math.max(1,t.visibleSize),Y.minViewDate=i,Y.maxViewDate=o,q.startMaps={},q.endMaps={},(()=>{var e=T.props.treeConfig,{minViewDate:t,maxViewDate:l}=Y,{fullCols:a,groupCols:r}=O();if(t&&l&&a.length){let d=q.xeTable;if(d){let r=m.value,i=y.value;var{computeAggregateOpts:t,computeTreeOpts:l}=d.getComputeMaps(),u=d.reactData.isRowGroupStatus,{afterFullData:n,afterTreeFullData:c,afterGroupFullData:v}=d.internalData,t=t.value,l=l.value,f=l.transform,h=l.children||l.childrenField;let o={},s=F(a);var g=e=>{var t=d.getRowid(e),l=_xeUtils.default.get(e,r),a=_xeUtils.default.get(e,i);l&&a&&({offsetLeftSize:l,offsetWidthSize:a}=s(l,a),o[t]={row:e,rowid:t,oLeftSize:l,oWidthSize:a})};u?(u=t.mapChildrenField)&&_xeUtils.default.eachTree(v,g,{children:u}):e?_xeUtils.default.eachTree(c,g,{children:f?l.mapChildrenField:h}):n.forEach(g),q.chartMaps=o}}q.visibleColumn=a,Y.headerGroups=r,p(),N(),J()})()},c=()=>{var{scrollXWidth:e,scrollYHeight:t}=Y,l=q.elemStore,a=S.value,l=(0,_util.getRefElem)(l["main-body-wrapper"]),r=E.value,i=z.value;l&&(t=t>l.clientHeight,i&&(Y.scrollbarWidth=a.width||i.offsetWidth-i.clientWidth||14),Y.overflowY=t,i=e>l.clientWidth,r&&(Y.scrollbarHeight=a.height||r.offsetHeight-r.clientHeight||14),Y.overflowX=i)},B=()=>{let l=Y.viewCellWidth,{elemStore:e,chartMaps:a}=q;var t=(0,_util.getRefElem)(e["main-chart-wrapper"]);return t&&_xeUtils.default.arrayEach(t.children,e=>{var t=e.children[0];t&&(e=(e=e.getAttribute("rowid"))?a[e]:null,t.style.left=`${e?l*e.oLeftSize:0}px`,t.style.width=`${e?l*e.oWidthSize:0}px`)}),(0,_vue.nextTick)()},v=()=>{var{scrollbarWidth:s,scrollbarHeight:d,headerGroups:u,tableColumn:n}=Y,{elemStore:c,visibleColumn:v}=q,f=q.xeTable,h=i.value;if(h){var g=S.value,m=b.value,y=w.value,x=H.value,_=L.value,p=U.value;let e=s;s=d;let t=0,l=0,a=0,r=(f&&(d=f.internalData,t=d.tBodyHeight,l=d.tHeaderHeight,a=d.tFooterHeight),"visible");(y||g.y&&!1===g.y.visible)&&(e=0,r="hidden");f=(0,_util.getRefElem)(c["main-header-scroll"]),d=(f&&(f.style.height=l+"px",f.style.setProperty("--vxe-ui-gantt-view-cell-height",l/u.length+"px")),(0,_util.getRefElem)(c["main-body-scroll"])),y=(d&&(d.style.height=t+"px"),(0,_util.getRefElem)(c["main-footer-scroll"])),g=(y&&(y.style.height=a+"px"),p&&(p.style.height=s+"px",p.style.visibility="visible"),k.value),f=(g&&(g.style.left=m?e+"px":"",g.style.width=h.clientWidth-e+"px"),x&&(x.style.width=m?e+"px":"",x.style.display=m&&s?"block":""),_&&(_.style.width=m?"":e+"px",_.style.display=!m&&s?"block":""),W.value),u=(f&&(f.style.width=e+"px",f.style.height=t+l+a+"px",f.style.visibility=r),R.value),y=(u&&(u.style.height=l+"px",u.style.display=l?"block":""),C.value),p=(y&&(y.style.height=t+"px",y.style.top=l+"px"),I.value),g=(p&&(p.style.height=a+"px",p.style.top=l+t+"px",p.style.display=a?"block":""),$.value);let i=40,o=(i=g?g.clientWidth||40:i)*v.length;d&&0<(x=(h=d.clientWidth)-o)&&(i+=x/v.length,o=h),Y.viewCellWidth=i;_=(0,_util.getRefElem)(c["main-header-table"]),m=(0,_util.getRefElem)(c["main-body-table"]),s=i*n.length;return _&&(_.style.width=o+"px"),m&&(m.style.width=s+"px"),Y.scrollXWidth=o,B()}},s=()=>{var e=i.value;return q.rceRunTime=Date.now(),e&&e.clientWidth?(c(),v(),B(),(0,_vue.nextTick)().then(()=>{var e,t=Y.scrollXLoad,l=q.scrollXStore;t?({toVisibleIndex:t,visibleSize:e}=A(),l.preloadSize=1,l.offsetSize=2,l.visibleSize=e,l.endIndex=Math.max(l.startIndex+l.visibleSize+2,l.endIndex),l.visibleStartIndex=Math.max(l.startIndex,t),l.visibleEndIndex=Math.min(l.endIndex,t+e),P().then(()=>{Q()})):a()})):(0,_vue.nextTick)()},G=()=>new Promise(e=>{var{rceTimeout:t,rceRunTime:l}=q,a=q.xeTable;let r=30;a&&(a=a.getComputeMaps().computeResizeOpts,a=a.value,r=a.refreshDelay||r),!t||(clearTimeout(t),l&&l+(r-5)<Date.now())?e(s()):(0,_vue.nextTick)(()=>{e()}),q.rceTimeout=setTimeout(()=>{q.rceTimeout=void 0,s()},r)}),A=()=>{var e,t=Y.viewCellWidth,l=q.elemStore,l=(0,_util.getRefElem)(l["main-body-scroll"]);return l?(e=l.clientWidth,l=l.scrollLeft,l=Math.floor(l/t)-1,e=Math.ceil(e/t)+1,{toVisibleIndex:Math.max(0,l),visibleSize:Math.max(1,e)}):{toVisibleIndex:0,visibleSize:6}},Q=()=>{var e=Y.isScrollXBig,t=q.scrollXStore,{preloadSize:l,startIndex:a,endIndex:r,offsetSize:i}=t,{toVisibleIndex:o,visibleSize:s}=A(),e={startIndex:Math.max(0,e?o-1:o-1-i-l),endIndex:e?o+s:o+s+i+l},{startIndex:i,endIndex:l}=(t.visibleStartIndex=o-1,t.visibleEndIndex=o+s+1,e);!(o<=a||r-s-1<=o)||a===i&&r===l||(t.startIndex=i,t.endIndex=l,P())},P=()=>(J(),a(),(0,_vue.nextTick)()),N=()=>Y.scrollXLoad=!0,J=()=>{var e=Y.scrollXLoad,{visibleColumn:t,scrollXStore:l}=q,e=e?t.slice(l.startIndex,l.endIndex):t.slice(0);Y.tableColumn=e},a=()=>{let{scrollXLoad:t,scrollXWidth:l,viewCellWidth:e}=Y,{elemStore:a,scrollXStore:r}=q;var i=(0,_util.getRefElem)(a["main-body-table"]),o=r.startIndex;let s=0;t&&(s=Math.max(0,o*e)),i&&(i.style.transform=`translate(${s}px, ${Y.scrollYTop||0}px)`);["header","body","footer"].forEach(e=>{e=(0,_util.getRefElem)(a[`main-${e}-xSpace`]);e&&(e.style.width=t?l+"px":"")});o=d.value;return o&&(o.style.width=l+"px"),c(),(0,_vue.nextTick)()},K=()=>{Q()},Z=(e,t)=>{var l=q.lcsTimeout;Y.lazScrollLoading=!0,l&&clearTimeout(l),q.lcsTimeout=setTimeout(()=>{q.lcsRunTime=Date.now(),q.lcsTimeout=void 0,q.intoRunScroll=!1,q.inVirtualScroll=!1,q.inWheelScroll=!1,q.inHeaderScroll=!1,q.inBodyScroll=!1,q.inFooterScroll=!1,Y.lazScrollLoading=!1},200)},V=(e,t,l,a)=>{t&&(q.lastScrollLeft=a),e&&(q.lastScrollTop=l),Y.lastScrollTime=Date.now(),Z(t,e)},f=(u,n,c,v,f)=>{var h=q.xeTable,{lastScrollLeft:g,lastScrollTop:m}=q,y=E.value,x=z.value;if(y&&x&&h){var{computeScrollXThreshold:h,computeScrollYThreshold:_}=h.getComputeMaps(),p=x.clientHeight,S=y.clientWidth,x=x.scrollHeight,y=y.scrollWidth;let e=!1,t=!1,l=!1,a=!1,r="",i=!1,o=!1,s=!1,d=!1;c&&(h=h.value,(l=f<=0)||(a=y-1<=f+S),g<f?(r="right",y-h<=f+S&&(d=!0)):(r="left",f<=h&&(s=!0))),n&&(g=_.value,(e=v<=0)||(t=x-1<=v+p),m<v?(r="bottom",x-g<=v+p&&(o=!0)):(r="top",v<=g&&(i=!0))),V(n,c,v,f);h={source:sourceType,scrollTop:v,scrollLeft:f,bodyHeight:p,bodyWidth:S,scrollHeight:x,scrollWidth:y,isX:c,isY:n,isTop:e,isBottom:t,isLeft:l,isRight:a,direction:r};(o||i||d||s)&&T.dispatchEvent("scroll-boundary",h,u),T.dispatchEvent("scroll",h,u)}},ee=e=>{var t=q.xeTable;t&&(t=t.internalData.elemStore,t=(0,_util.getRefElem)(t["main-body-scroll"]))&&(t.scrollTop=e)};e={handleUpdateStyle:v,handleLazyRecalculate:G,handleUpdateCurrentRow(e){var t,l,a=q.xeTable,r=i.value;a&&r&&(e?(t=a.props,l=a.getComputeMaps().computeRowOpts,(l.value.isCurrent||t.highlightCurrentRow)&&_xeUtils.default.arrayEach(r.querySelectorAll(`.vxe-gantt-view--body-row[rowid="${a.getRowid(e)}"]`),e=>(0,_dom.addClass)(e,"row--current"))):_xeUtils.default.arrayEach(r.querySelectorAll(".vxe-gantt-view--body-row.row--current"),e=>(0,_dom.removeClass)(e,"row--current")))},handleUpdateHoverRow(e){var t=q.xeTable,l=i.value;t&&l&&(e?_xeUtils.default.arrayEach(l.querySelectorAll(`.vxe-gantt-view--body-row[rowid="${t.getRowid(e)}"]`),e=>(0,_dom.addClass)(e,"row--hover")):_xeUtils.default.arrayEach(l.querySelectorAll(".vxe-gantt-view--body-row.row--hover"),e=>(0,_dom.removeClass)(e,"row--hover")))},triggerHeaderScrollEvent(e){var{elemStore:t,inVirtualScroll:l,inBodyScroll:a,inFooterScroll:r}=q;l||a||r||(l=e.currentTarget,a=(0,_util.getRefElem)(t["main-body-scroll"]),r=E.value,a&&l&&(t=l.scrollLeft,q.inHeaderScroll=!0,(0,_dom.setScrollLeft)(r,t),(0,_dom.setScrollLeft)(a,t),f(e,!1,!0,l.scrollTop,t)))},triggerBodyScrollEvent(e){var t,l,a=Y.scrollXLoad,{elemStore:r,inVirtualScroll:i,inHeaderScroll:o,inFooterScroll:s,lastScrollLeft:d,lastScrollTop:u}=q;i||o||s||(i=e.currentTarget,o=(0,_util.getRefElem)(r["main-header-scroll"]),s=E.value,r=z.value,d=(t=i.scrollLeft)!==d,u=(l=i.scrollTop)!==u,q.inBodyScroll=!0,q.scrollRenderType="",u&&((0,_dom.setScrollTop)(r,l),ee(l)),d&&(q.inBodyScroll=!0,(0,_dom.setScrollLeft)(s,t),(0,_dom.setScrollLeft)(o,t),a)&&K(),u&&V(u,d,i.scrollTop,t),d&&f(e,u,d,i.scrollTop,t))},triggerVirtualScrollXEvent(e){var t,l=Y.scrollXLoad,{elemStore:a,inHeaderScroll:r,inBodyScroll:i}=q;r||i||(r=e.currentTarget,i=(0,_util.getRefElem)(a["main-header-scroll"]),a=(0,_util.getRefElem)(a["main-body-scroll"]),r&&(t=r.scrollLeft,q.inVirtualScroll=!0,(0,_dom.setScrollLeft)(i,t),(0,_dom.setScrollLeft)(a,t),l&&K(),f(e,!1,!0,r.scrollTop,t)))},triggerVirtualScrollYEvent(e){var{elemStore:t,inHeaderScroll:l,inBodyScroll:a}=q;l||a||(l=e.currentTarget,a=(0,_util.getRefElem)(t["main-body-scroll"]),l&&(e=l.scrollTop,q.inVirtualScroll=!0,(0,_dom.setScrollTop)(a,e),ee(e),V(!0,!1,e,l.scrollLeft)))},handleUpdateSXSpace(){return a()},handleUpdateSYSpace(){return(()=>{var e=q.elemStore,t=q.xeTable,l=(0,_util.getRefElem)(e["main-body-scroll"]),a=(0,_util.getRefElem)(e["main-body-table"]);let r=0,i=0,o=!1,s=(t&&(t=t.reactData,r=t.scrollYTop,i=t.scrollYHeight,o=t.isScrollYBig),i),d=r,u=0;l&&(u=l.clientHeight),o&&(d=l&&a&&l.scrollTop+u>=maxYHeight?maxYHeight-a.clientHeight:(maxYHeight-u)*(r/(i-u)),s=maxYHeight);t=(0,_util.getRefElem)(e["main-chart-wrapper"]),a&&(a.style.transform=`translate(${Y.scrollXLeft||0}px, ${d}px)`),t&&(t.style.transform=`translate(${Y.scrollXLeft||0}px, ${d}px)`),l=(0,_util.getRefElem)(e["main-body-ySpace"]),l&&(l.style.height=s?s+"px":""),a=n.value;return a&&(a.style.height=s?s+"px":""),Y.scrollYTop=d,Y.scrollYHeight=i,Y.isScrollYBig=o,c(),(0,_vue.nextTick)().then(()=>{v()})})()},handleUpdateSYStatus(e){Y.scrollYLoad=e}};let te=()=>{G()},le=(Object.assign(t,{refreshData(){return j(),s(),(0,_vue.nextTick)().then(()=>{var e=q.xeTable;if(s(),e)return e.recalculate()})},updateViewData(){var e=q.xeTable;return e&&(e=e.reactData.tableData,Y.tableData=e),(0,_vue.nextTick)()},connectUpdate({$table:e}){return e&&(q.xeTable=e),(0,_vue.nextTick)()}},e),()=>(0,_vue.h)("div",{key:"vsx",ref:U,class:"vxe-gantt-view--scroll-x-virtual"},[(0,_vue.h)("div",{ref:H,class:"vxe-gantt-view--scroll-x-left-corner"}),(0,_vue.h)("div",{ref:k,class:"vxe-gantt-view--scroll-x-wrapper"},[(0,_vue.h)("div",{ref:E,class:"vxe-gantt-view--scroll-x-handle",onScroll:t.triggerVirtualScrollXEvent},[(0,_vue.h)("div",{ref:d,class:"vxe-gantt-view--scroll-x-space"})]),(0,_vue.h)("div",{class:"vxe-gantt-view--scroll-x-handle-appearance"})]),(0,_vue.h)("div",{ref:L,class:"vxe-gantt-view--scroll-x-right-corner"})])),ae=()=>(0,_vue.h)("div",{ref:W,class:"vxe-gantt-view--scroll-y-virtual"},[(0,_vue.h)("div",{ref:R,class:"vxe-gantt-view--scroll-y-top-corner"}),(0,_vue.h)("div",{ref:C,class:"vxe-gantt-view--scroll-y-wrapper"},[(0,_vue.h)("div",{ref:z,class:"vxe-gantt-view--scroll-y-handle",onScroll:t.triggerVirtualScrollYEvent},[(0,_vue.h)("div",{ref:n,class:"vxe-gantt-view--scroll-y-space"})]),(0,_vue.h)("div",{class:"vxe-gantt-view--scroll-y-handle-appearance"})]),(0,_vue.h)("div",{ref:I,class:"vxe-gantt-view--scroll-y-bottom-corner"})]),re=()=>(0,_vue.h)("div",{class:"vxe-gantt-view--viewport-wrapper"},[(0,_vue.h)(_ganttHeader.default),(0,_vue.h)(_ganttBody.default),(0,_vue.h)(_ganttFooter.default)]),ie=()=>{var e=w.value;return(0,_vue.h)("div",{class:"vxe-gantt-view--layout-wrapper"},e?[ae(),re()]:[re(),ae()])};let l=(0,_vue.ref)(0);return(0,_vue.watch)(()=>Y.tableData,()=>{l.value++}),(0,_vue.watch)(()=>Y.tableData.length,()=>{l.value++}),(0,_vue.watch)(l,()=>{j()}),(0,_vue.onMounted)(()=>{globalEvents.on(t,"resize",te)}),(0,_vue.onUnmounted)(()=>{globalEvents.off(t,"keydown"),_xeUtils.default.assign(q,createInternalData())}),t.renderVN=()=>{var{overflowX:e,overflowY:t,scrollXLoad:l,scrollYLoad:a}=Y,r=b.value;return(0,_vue.h)("div",{ref:i,class:["vxe-gantt-view",{"is--scroll-y":t,"is--scroll-x":e,"is--virtual-x":l,"is--virtual-y":a}]},[(0,_vue.h)("div",{class:"vxe-gantt-view--render-wrapper"},r?[le(),ie()]:[ie(),le()]),(0,_vue.h)("div",{class:"vxe-gantt-view--render-vars"},[(0,_vue.h)("div",{ref:$,class:"vxe-gantt-view--column-info"})])])},(0,_vue.provide)("$xeGanttView",t),t},render(){return this.renderVN()}});
@@ -37,6 +37,7 @@ function createInternalData() {
37
37
  return {
38
38
  uFoot: false,
39
39
  resizeTableWidth: 0
40
+ // barTipTimeout: undefined
40
41
  };
41
42
  }
42
43
  const viewTypeLevelMaps = {
@@ -68,6 +69,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
68
69
  taskViewScaleConfig: Object,
69
70
  taskViewConfig: Object,
70
71
  taskBarConfig: Object,
72
+ taskBarTooltipConfig: Object,
71
73
  taskSplitConfig: Object,
72
74
  taskBarResizeConfig: Object,
73
75
  taskBarDragConfig: Object,
@@ -89,6 +91,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
89
91
  const VxeUIPagerComponent = _core.VxeUI.getComponent('VxePager');
90
92
  const VxeTableComponent = _core.VxeUI.getComponent('VxeTable');
91
93
  const VxeToolbarComponent = _core.VxeUI.getComponent('VxeToolbar');
94
+ const VxeUITooltipComponent = _core.VxeUI.getComponent('VxeTooltip');
92
95
  const {
93
96
  computeSize
94
97
  } = useFns.useSize(props);
@@ -109,7 +112,13 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
109
112
  },
110
113
  showLeftView: true,
111
114
  showRightView: true,
112
- taskScaleList: []
115
+ taskScaleList: [],
116
+ barTipStore: {
117
+ row: null,
118
+ content: '',
119
+ visible: false,
120
+ params: null
121
+ }
113
122
  });
114
123
  const internalData = createInternalData();
115
124
  const refElem = (0, _vue.ref)();
@@ -128,6 +137,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
128
137
  const refPagerWrapper = (0, _vue.ref)();
129
138
  const refTableWrapper = (0, _vue.ref)();
130
139
  const refGanttWrapper = (0, _vue.ref)();
140
+ const refTooltip = (0, _vue.ref)();
131
141
  const refResizableSplitTip = (0, _vue.ref)();
132
142
  const extendTableMethods = methodKeys => {
133
143
  const funcs = {};
@@ -194,6 +204,9 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
194
204
  const computeTaskSplitOpts = (0, _vue.computed)(() => {
195
205
  return Object.assign({}, getConfig().gantt.taskSplitConfig, props.taskSplitConfig);
196
206
  });
207
+ const computeTaskBarTooltipOpts = (0, _vue.computed)(() => {
208
+ return Object.assign({}, getConfig().gantt.taskBarTooltipConfig, props.taskBarTooltipConfig);
209
+ });
197
210
  const computeScaleUnit = (0, _vue.computed)(() => {
198
211
  const minScale = computeMinScale.value;
199
212
  return minScale ? minScale.type : 'date';
@@ -210,7 +223,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
210
223
  } = reactData;
211
224
  return taskScaleList.find(item => item.type === 'week');
212
225
  });
213
- const computeTaskScaleConfs = (0, _vue.computed)(() => {
226
+ const computeTaskViewScales = (0, _vue.computed)(() => {
214
227
  const taskViewOpts = computeTaskViewOpts.value;
215
228
  const {
216
229
  scales
@@ -470,7 +483,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
470
483
  computeTaskBarDragOpts,
471
484
  computeTaskBarResizeOpts,
472
485
  computeTaskSplitOpts,
473
- computeTaskScaleConfs,
486
+ computeTaskBarTooltipOpts,
487
+ computeTaskViewScales,
474
488
  computeScaleUnit,
475
489
  computeMinScale,
476
490
  computeWeekScale,
@@ -482,6 +496,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
482
496
  computeScrollbarXToTop,
483
497
  computeScrollbarYToLeft
484
498
  };
499
+ computeMaps.computeTaskScaleConfs = computeTaskViewScales;
485
500
  const $xeGantt = {
486
501
  xID,
487
502
  props: props,
@@ -492,7 +507,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
492
507
  getComputeMaps: () => computeMaps
493
508
  };
494
509
  const handleTaskScaleConfig = () => {
495
- const taskScaleConfs = computeTaskScaleConfs.value;
510
+ const taskScaleConfs = computeTaskViewScales.value;
496
511
  const taskViewScaleOpts = computeTaskViewScaleOpts.value;
497
512
  const scaleConfs = [];
498
513
  if (taskScaleConfs) {
@@ -1026,6 +1041,17 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
1026
1041
  $gantt: $xeGantt
1027
1042
  }, params));
1028
1043
  };
1044
+ const handleTargetEnterEvent = isClear => {
1045
+ const $tooltip = refTooltip.value;
1046
+ clearTimeout(internalData.barTipTimeout);
1047
+ if (isClear) {
1048
+ $xeGantt.closeTaskBarTooltip();
1049
+ } else {
1050
+ if ($tooltip && $tooltip.setActived) {
1051
+ $tooltip.setActived(true);
1052
+ }
1053
+ }
1054
+ };
1029
1055
  const ganttMethods = {
1030
1056
  dispatchEvent,
1031
1057
  getEl() {
@@ -1751,6 +1777,27 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
1751
1777
  hideTaskView() {
1752
1778
  reactData.showRightView = false;
1753
1779
  return (0, _vue.nextTick)();
1780
+ },
1781
+ /**
1782
+ * 关闭 bar tooltip
1783
+ */
1784
+ closeTaskBarTooltip() {
1785
+ const {
1786
+ barTipStore
1787
+ } = reactData;
1788
+ const $tooltip = refTooltip.value;
1789
+ if (barTipStore.visible) {
1790
+ Object.assign(barTipStore, {
1791
+ row: null,
1792
+ content: null,
1793
+ visible: false,
1794
+ params: {}
1795
+ });
1796
+ if ($tooltip && $tooltip.close) {
1797
+ $tooltip.close();
1798
+ }
1799
+ }
1800
+ return (0, _vue.nextTick)();
1754
1801
  }
1755
1802
  };
1756
1803
  const ganttPrivateMethods = {
@@ -1895,6 +1942,61 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
1895
1942
  handleTaskBarDblclickEvent(evnt, params) {
1896
1943
  $xeGantt.dispatchEvent('task-bar-dblclick', params, evnt);
1897
1944
  },
1945
+ triggerTaskBarTooltipEvent(evnt, params) {
1946
+ const {
1947
+ barTipStore
1948
+ } = reactData;
1949
+ const taskBarTooltipOpts = computeTaskBarTooltipOpts.value;
1950
+ const titleField = computeTitleField.value;
1951
+ const {
1952
+ contentMethod
1953
+ } = taskBarTooltipOpts;
1954
+ const {
1955
+ row
1956
+ } = params;
1957
+ let content = (0, _utils.formatText)(_xeUtils.default.get(row, titleField));
1958
+ if (contentMethod) {
1959
+ const customContnet = contentMethod(params);
1960
+ if (!_xeUtils.default.eqNull(customContnet)) {
1961
+ content = `${customContnet}`;
1962
+ }
1963
+ }
1964
+ handleTargetEnterEvent(barTipStore.row !== row);
1965
+ const tipContent = (0, _utils.formatText)(content);
1966
+ Object.assign(barTipStore, {
1967
+ row,
1968
+ visible: true,
1969
+ content: tipContent,
1970
+ params
1971
+ });
1972
+ (0, _vue.nextTick)(() => {
1973
+ const $tooltip = refTooltip.value;
1974
+ if ($tooltip) {
1975
+ if ($tooltip.openByEvent) {
1976
+ $tooltip.openByEvent(evnt, evnt.currentTarget, tipContent);
1977
+ } else if ($tooltip.open) {
1978
+ $tooltip.open(evnt.currentTarget, tipContent);
1979
+ }
1980
+ }
1981
+ });
1982
+ },
1983
+ handleTaskBarTooltipLeaveEvent() {
1984
+ const taskBarTooltipOpts = computeTaskBarTooltipOpts.value;
1985
+ let $tooltip = refTooltip.value;
1986
+ if ($tooltip && $tooltip.setActived) {
1987
+ $tooltip.setActived(false);
1988
+ }
1989
+ if (taskBarTooltipOpts.enterable) {
1990
+ internalData.barTipTimeout = setTimeout(() => {
1991
+ $tooltip = refTooltip.value;
1992
+ if ($tooltip && $tooltip.isActived && !$tooltip.isActived()) {
1993
+ $xeGantt.closeTaskBarTooltip();
1994
+ }
1995
+ }, taskBarTooltipOpts.leaveDelay);
1996
+ } else {
1997
+ $xeGantt.closeTaskBarTooltip();
1998
+ }
1999
+ },
1898
2000
  handleTaskHeaderContextmenuEvent(evnt, params) {
1899
2001
  const $xeTable = refTable.value;
1900
2002
  if ($xeTable) {
@@ -2344,14 +2446,19 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
2344
2446
  return childVNs;
2345
2447
  };
2346
2448
  const renderLayout = () => {
2449
+ const {
2450
+ barTipStore
2451
+ } = reactData;
2347
2452
  const currLayoutConf = computeCurrLayoutConf.value;
2348
2453
  const {
2349
2454
  headKeys,
2350
2455
  bodyKeys,
2351
2456
  footKeys
2352
2457
  } = currLayoutConf;
2458
+ const taskBarTooltipOpts = computeTaskBarTooltipOpts.value;
2353
2459
  const asideLeftSlot = slots.asideLeft || slots['aside-left'];
2354
2460
  const asideRightSlot = slots.asideRight || slots['aside-right'];
2461
+ const taskBarTooltipSlot = slots.taskBarTooltip || slots['task-bar-tooltip'];
2355
2462
  return [(0, _vue.h)('div', {
2356
2463
  class: 'vxe-gantt--layout-header-wrapper'
2357
2464
  }, renderChildLayout(headKeys)), (0, _vue.h)('div', {
@@ -2366,7 +2473,40 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
2366
2473
  class: 'vxe-gantt--layout-footer-wrapper'
2367
2474
  }, renderChildLayout(footKeys)), (0, _vue.h)('div', {
2368
2475
  ref: refPopupContainerElem
2369
- })];
2476
+ }), (0, _vue.h)('div', {}, [
2477
+ /**
2478
+ * 任务条提示
2479
+ */
2480
+ (0, _vue.h)(VxeUITooltipComponent, {
2481
+ key: 'gtp',
2482
+ ref: refTooltip,
2483
+ theme: taskBarTooltipOpts.theme,
2484
+ enterable: taskBarTooltipOpts.enterable,
2485
+ enterDelay: taskBarTooltipOpts.enterDelay,
2486
+ leaveDelay: taskBarTooltipOpts.leaveDelay,
2487
+ useHTML: taskBarTooltipOpts.useHTML,
2488
+ width: taskBarTooltipOpts.width,
2489
+ height: taskBarTooltipOpts.height,
2490
+ minWidth: taskBarTooltipOpts.minWidth,
2491
+ minHeight: taskBarTooltipOpts.minHeight,
2492
+ maxWidth: taskBarTooltipOpts.maxWidth,
2493
+ maxHeight: taskBarTooltipOpts.maxHeight,
2494
+ isArrow: false
2495
+ }, taskBarTooltipSlot ? {
2496
+ content: () => {
2497
+ const {
2498
+ row,
2499
+ content: tooltipContent
2500
+ } = barTipStore;
2501
+ if (row) {
2502
+ return (0, _vue.h)('div', {}, taskBarTooltipSlot(Object.assign({
2503
+ tooltipContent,
2504
+ $gantt: $xeGantt
2505
+ }, barTipStore.params)));
2506
+ }
2507
+ return renderEmptyElement($xeGantt);
2508
+ }
2509
+ } : {})])];
2370
2510
  };
2371
2511
  const renderVN = () => {
2372
2512
  const {
@@ -2417,7 +2557,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
2417
2557
  (0, _vue.watch)(() => props.proxyConfig, () => {
2418
2558
  initProxy();
2419
2559
  });
2420
- (0, _vue.watch)(computeTaskScaleConfs, () => {
2560
+ (0, _vue.watch)(computeTaskViewScales, () => {
2421
2561
  handleTaskScaleConfig();
2422
2562
  $xeGantt.refreshTaskView();
2423
2563
  });