vxe-gantt 3.0.0-beta.1 → 3.0.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/es/gantt/src/gantt-body.js +77 -36
  2. package/es/gantt/src/gantt-chart.js +87 -60
  3. package/es/gantt/src/gantt-view.js +63 -7
  4. package/es/gantt/src/gantt.js +30 -6
  5. package/es/gantt/style.css +17 -0
  6. package/es/gantt/style.min.css +1 -1
  7. package/es/style.css +1 -1
  8. package/es/style.min.css +1 -1
  9. package/es/ui/index.js +7 -2
  10. package/es/ui/src/log.js +1 -1
  11. package/es/ui/src/vn.js +10 -1
  12. package/es/vxe-gantt/style.css +17 -0
  13. package/es/vxe-gantt/style.min.css +1 -1
  14. package/lib/gantt/src/gantt-body.js +98 -40
  15. package/lib/gantt/src/gantt-body.min.js +1 -1
  16. package/lib/gantt/src/gantt-chart.js +95 -62
  17. package/lib/gantt/src/gantt-chart.min.js +1 -1
  18. package/lib/gantt/src/gantt-view.js +72 -6
  19. package/lib/gantt/src/gantt-view.min.js +1 -1
  20. package/lib/gantt/src/gantt.js +31 -8
  21. package/lib/gantt/src/gantt.min.js +1 -1
  22. package/lib/gantt/style/style.css +17 -0
  23. package/lib/gantt/style/style.min.css +1 -1
  24. package/lib/index.umd.js +309 -122
  25. package/lib/index.umd.min.js +1 -1
  26. package/lib/style.css +1 -1
  27. package/lib/style.min.css +1 -1
  28. package/lib/ui/index.js +13 -2
  29. package/lib/ui/index.min.js +1 -1
  30. package/lib/ui/src/log.js +1 -1
  31. package/lib/ui/src/log.min.js +1 -1
  32. package/lib/ui/src/vn.js +17 -1
  33. package/lib/ui/src/vn.min.js +1 -0
  34. package/lib/vxe-gantt/style/style.css +17 -0
  35. package/lib/vxe-gantt/style/style.min.css +1 -1
  36. package/package.json +4 -4
  37. package/packages/gantt/src/gantt-body.ts +85 -39
  38. package/packages/gantt/src/gantt-chart.ts +99 -66
  39. package/packages/gantt/src/gantt-view.ts +65 -7
  40. package/packages/gantt/src/gantt.ts +30 -6
  41. package/packages/ui/index.ts +9 -1
  42. package/packages/ui/src/vn.ts +13 -0
  43. package/styles/components/gantt-module/gantt-chart.scss +1 -0
  44. package/styles/components/gantt.scss +19 -0
@@ -10,6 +10,12 @@ var _xeUtils = _interopRequireDefault(require("xe-utils"));
10
10
  var _util = require("./util");
11
11
  var _utils = require("../../ui/src/utils");
12
12
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
+ function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
14
+ 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."); }
15
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
16
+ function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
17
+ function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
18
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
13
19
  var renderEmptyElement = _core.VxeUI.renderEmptyElement;
14
20
  var _default = exports.default = (0, _comp.defineVxeComponent)({
15
21
  name: 'VxeGanttViewChart',
@@ -30,23 +36,16 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
30
36
  //
31
37
  // Render
32
38
  //
33
- renderVN: function renderVN(h) {
39
+ renderTaskBar: function renderTaskBar(h, $xeTable, row, rowid, $rowIndex) {
34
40
  var _vm = this;
35
41
  var $xeGantt = _vm.$xeGantt;
36
- var $xeGanttView = _vm.$xeGanttView;
37
- var $xeTable = $xeGanttView.internalData.xeTable;
38
- var tableInternalData = $xeTable ? $xeTable : {};
39
- var fullAllDataRowIdData = tableInternalData.fullAllDataRowIdData || {};
40
- var cellOpts = {};
41
- var rowOpts = {};
42
- var defaultRowHeight = 0;
43
- if ($xeTable) {
44
- cellOpts = $xeTable.computeCellOpts;
45
- rowOpts = $xeTable.computeRowOpts;
46
- defaultRowHeight = $xeTable.computeDefaultRowHeight;
47
- }
48
- var reactData = $xeGanttView.reactData;
49
- var tableData = reactData.tableData;
42
+ var tableProps = $xeTable;
43
+ var treeConfig = tableProps.treeConfig;
44
+ var tableInternalData = $xeTable;
45
+ var fullAllDataRowIdData = tableInternalData.fullAllDataRowIdData;
46
+ var cellOpts = $xeTable.computeCellOpts;
47
+ var rowOpts = $xeTable.computeRowOpts;
48
+ var defaultRowHeight = $xeTable.computeDefaultRowHeight;
50
49
  var titleField = $xeGantt.computeTitleField;
51
50
  var progressField = $xeGantt.computeProgressField;
52
51
  var taskBarOpts = $xeGantt.computeTaskBarOpts;
@@ -56,60 +55,94 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
56
55
  barStyle = taskBarOpts.barStyle;
57
56
  var _ref = barStyle || {},
58
57
  round = _ref.round;
59
- var trVNs = [];
60
- tableData.forEach(function (row, rIndex) {
61
- var rowid = $xeTable ? $xeTable.getRowid(row) : '';
62
- var rowRest = fullAllDataRowIdData[rowid] || {};
63
- var cellHeight = (0, _util.getCellRestHeight)(rowRest, cellOpts, rowOpts, defaultRowHeight);
64
- var title = (0, _utils.getStringValue)(_xeUtils.default.get(row, titleField));
65
- var progressValue = showProgress ? Math.min(100, Math.max(0, _xeUtils.default.toNumber(_xeUtils.default.get(row, progressField)))) : 0;
66
- if (contentMethod) {
67
- title = (0, _utils.getStringValue)(contentMethod({
68
- row: row,
69
- title: title
70
- }));
58
+ var rowRest = fullAllDataRowIdData[rowid] || {};
59
+ var cellHeight = (0, _util.getCellRestHeight)(rowRest, cellOpts, rowOpts, defaultRowHeight);
60
+ var title = (0, _utils.getStringValue)(_xeUtils.default.get(row, titleField));
61
+ var progressValue = showProgress ? Math.min(100, Math.max(0, _xeUtils.default.toNumber(_xeUtils.default.get(row, progressField)))) : 0;
62
+ if (contentMethod) {
63
+ title = (0, _utils.getStringValue)(contentMethod({
64
+ row: row,
65
+ title: title
66
+ }));
67
+ }
68
+ return h('div', {
69
+ key: treeConfig ? rowid : $rowIndex,
70
+ attrs: {
71
+ rowid: rowid
72
+ },
73
+ class: ['vxe-gantt-view--chart-row', {
74
+ 'is--round': round
75
+ }],
76
+ style: {
77
+ height: "".concat(cellHeight, "px")
71
78
  }
72
- trVNs.push(h('div', {
73
- key: rIndex,
74
- attrs: {
75
- rowid: rowid
76
- },
77
- class: ['vxe-gantt-view--chart-row', {
78
- 'is--round': round
79
- }],
80
- style: {
81
- height: "".concat(cellHeight, "px")
82
- }
83
- }, [h('div', {
84
- class: 'vxe-gantt-view--chart-bar',
85
- attrs: {
86
- rowid: rowid
79
+ }, [h('div', {
80
+ class: 'vxe-gantt-view--chart-bar',
81
+ attrs: {
82
+ rowid: rowid
83
+ },
84
+ on: {
85
+ click: function click(evnt) {
86
+ $xeGantt.handleTaskBarClickEvent(evnt, {
87
+ row: row
88
+ });
87
89
  },
88
- on: {
89
- click: function click(evnt) {
90
- $xeGantt.handleTaskBarClickEvent(evnt, {
91
- row: row
92
- });
93
- },
94
- dblclick: function dblclick(evnt) {
95
- $xeGantt.handleTaskBarDblclickEvent(evnt, {
96
- row: row
97
- });
98
- }
90
+ dblclick: function dblclick(evnt) {
91
+ $xeGantt.handleTaskBarDblclickEvent(evnt, {
92
+ row: row
93
+ });
99
94
  }
100
- }, [showProgress ? h('div', {
101
- class: 'vxe-gantt-view--chart-progress',
102
- style: {
103
- width: "".concat(progressValue || 0, "%")
104
- }
105
- }) : renderEmptyElement($xeGantt), showContent ? h('div', {
106
- class: 'vxe-gantt-view--chart-content'
107
- }, title) : renderEmptyElement($xeGantt)])]));
95
+ }
96
+ }, [showProgress ? h('div', {
97
+ class: 'vxe-gantt-view--chart-progress',
98
+ style: {
99
+ width: "".concat(progressValue || 0, "%")
100
+ }
101
+ }) : renderEmptyElement($xeGantt), showContent ? h('div', {
102
+ class: 'vxe-gantt-view--chart-content'
103
+ }, title) : renderEmptyElement($xeGantt)])]);
104
+ },
105
+ renderRows: function renderRows(h, $xeTable, tableData) {
106
+ var _vm = this;
107
+ var $xeGanttView = _vm.$xeGanttView;
108
+ var reactData = $xeGanttView.reactData;
109
+ var tableProps = $xeTable;
110
+ var treeConfig = tableProps.treeConfig;
111
+ var tableReactData = $xeTable;
112
+ var treeExpandedFlag = tableReactData.treeExpandedFlag;
113
+ var tableInternalData = $xeTable;
114
+ var treeExpandedMaps = tableInternalData.treeExpandedMaps;
115
+ var treeOpts = $xeTable.computeTreeOpts;
116
+ var transform = treeOpts.transform;
117
+ var childrenField = treeOpts.children || treeOpts.childrenField;
118
+ var scrollYLoad = reactData.scrollYLoad;
119
+ var trVNs = [];
120
+ tableData.forEach(function (row, $rowIndex) {
121
+ var rowid = $xeTable ? $xeTable.getRowid(row) : '';
122
+ trVNs.push(_vm.renderTaskBar(h, $xeTable, row, rowid, $rowIndex));
123
+ var isExpandTree = false;
124
+ var rowChildren = [];
125
+ if (treeConfig && !scrollYLoad && !transform) {
126
+ rowChildren = row[childrenField];
127
+ isExpandTree = !!treeExpandedFlag && rowChildren && rowChildren.length > 0 && !!treeExpandedMaps[rowid];
128
+ }
129
+ // 如果是树形表格
130
+ if (isExpandTree) {
131
+ trVNs.push.apply(trVNs, _toConsumableArray(_vm.renderRows(h, $xeTable, rowChildren)));
132
+ }
108
133
  });
134
+ return trVNs;
135
+ },
136
+ renderVN: function renderVN(h) {
137
+ var _vm = this;
138
+ var $xeGanttView = _vm.$xeGanttView;
139
+ var reactData = $xeGanttView.reactData;
140
+ var $xeTable = $xeGanttView.internalData.xeTable;
141
+ var tableData = reactData.tableData;
109
142
  return h('div', {
110
143
  ref: 'refElem',
111
144
  class: 'vxe-gantt-view--chart-wrapper'
112
- }, trVNs);
145
+ }, $xeTable ? _vm.renderRows(h, $xeTable, tableData) : []);
113
146
  }
114
147
  },
115
148
  mounted: function mounted() {
@@ -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}}var renderEmptyElement=_core.VxeUI.renderEmptyElement,_default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttViewChart",inject:{$xeGantt:{default:null},$xeGanttView:{default:null}},props:{},data:function(){return{}},computed:Object.assign({},{}),methods:{renderVN:function(l){var o=this.$xeGantt,e=this.$xeGanttView,u=e.internalData.xeTable,s=(u||{}).fullAllDataRowIdData||{},c={},d={},p=0;u&&(c=u.computeCellOpts,d=u.computeRowOpts,p=u.computeDefaultRowHeight);var e=e.reactData.tableData,m=o.computeTitleField,f=o.computeProgressField,t=o.computeTaskBarOpts,h=t.showProgress,w=t.showContent,x=t.contentMethod,v=(t.barStyle||{}).round,g=[];return e.forEach(function(t,e){var r=u?u.getRowid(t):"",a=s[r]||{},a=(0,_util.getCellRestHeight)(a,c,d,p),n=(0,_utils.getStringValue)(_xeUtils.default.get(t,m)),i=h?Math.min(100,Math.max(0,_xeUtils.default.toNumber(_xeUtils.default.get(t,f)))):0;x&&(n=(0,_utils.getStringValue)(x({row:t,title:n}))),g.push(l("div",{key:e,attrs:{rowid:r},class:["vxe-gantt-view--chart-row",{"is--round":v}],style:{height:"".concat(a,"px")}},[l("div",{class:"vxe-gantt-view--chart-bar",attrs:{rowid:r},on:{click:function(e){o.handleTaskBarClickEvent(e,{row:t})},dblclick:function(e){o.handleTaskBarDblclickEvent(e,{row:t})}}},[h?l("div",{class:"vxe-gantt-view--chart-progress",style:{width:"".concat(i||0,"%")}}):renderEmptyElement(o),w?l("div",{class:"vxe-gantt-view--chart-content"},n):renderEmptyElement(o)])]))}),l("div",{ref:"refElem",class:"vxe-gantt-view--chart-wrapper"},g)}},mounted:function(){this.$xeGanttView.internalData.elemStore["".concat("main-chart-","wrapper")]=this.$refs.refElem},destroyed:function(){this.$xeGanttView.internalData.elemStore["".concat("main-chart-","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 r;if(e)return"string"==typeof e?_arrayLikeToArray(e,t):"Map"===(r="Object"===(r={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:r)||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_arrayLikeToArray(e,t):void 0}function _iterableToArray(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function _arrayWithoutHoles(e){if(Array.isArray(e))return _arrayLikeToArray(e)}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,a=Array(t);r<t;r++)a[r]=e[r];return a}var renderEmptyElement=_core.VxeUI.renderEmptyElement,_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(e,t,r,a,n){var o=this.$xeGantt,i=t.treeConfig,l=t.fullAllDataRowIdData,u=t.computeCellOpts,s=o.computeTitleField,c=o.computeProgressField,d=o.computeTaskBarOpts,p=d.showProgress,f=d.showContent,m=d.contentMethod,d=(d.barStyle||{}).round,l=l[a]||{},l=(0,_util.getCellRestHeight)(l,u,t.computeRowOpts,t.computeDefaultRowHeight),u=(0,_utils.getStringValue)(_xeUtils.default.get(r,s)),t=p?Math.min(100,Math.max(0,_xeUtils.default.toNumber(_xeUtils.default.get(r,c)))):0;return m&&(u=(0,_utils.getStringValue)(m({row:r,title:u}))),e("div",{key:i?a:n,attrs:{rowid:a},class:["vxe-gantt-view--chart-row",{"is--round":d}],style:{height:"".concat(l,"px")}},[e("div",{class:"vxe-gantt-view--chart-bar",attrs:{rowid:a},on:{click:function(e){o.handleTaskBarClickEvent(e,{row:r})},dblclick:function(e){o.handleTaskBarDblclickEvent(e,{row:r})}}},[p?e("div",{class:"vxe-gantt-view--chart-progress",style:{width:"".concat(t||0,"%")}}):renderEmptyElement(o),f?e("div",{class:"vxe-gantt-view--chart-content"},u):renderEmptyElement(o)])])},renderRows:function(n,o,e){var i=this,t=i.$xeGanttView.reactData,l=o.treeConfig,u=o.treeExpandedFlag,s=o.treeExpandedMaps,r=o.computeTreeOpts,c=r.transform,d=r.children||r.childrenField,p=t.scrollYLoad,f=[];return e.forEach(function(e,t){var r=o?o.getRowid(e):"",t=(f.push(i.renderTaskBar(n,o,e,r,t)),!1),a=[];!l||p||c||(a=e[d],t=!!u&&a&&0<a.length&&!!s[r]),t&&f.push.apply(f,_toConsumableArray(i.renderRows(n,o,a)))}),f},renderVN:function(e){var t=this.$xeGanttView,r=t.reactData,t=t.internalData.xeTable,r=r.tableData;return e("div",{ref:"refElem",class:"vxe-gantt-view--chart-wrapper"},t?this.renderRows(e,t,r):[])}},mounted:function(){this.$xeGanttView.internalData.elemStore["".concat("main-chart-","wrapper")]=this.$refs.refElem},destroyed:function(){this.$xeGanttView.internalData.elemStore["".concat("main-chart-","wrapper")]=null},render:function(e){return this.renderVN(e)}});
@@ -48,6 +48,8 @@ function handleParseColumn($xeGanttView) {
48
48
  var $xeGantt = $xeGanttView.$xeGantt;
49
49
  var reactData = $xeGanttView.reactData;
50
50
  var internalData = $xeGanttView.internalData;
51
+ var ganttProps = $xeGantt;
52
+ var treeConfig = ganttProps.treeConfig;
51
53
  var minViewDate = reactData.minViewDate,
52
54
  maxViewDate = reactData.maxViewDate;
53
55
  var taskViewOpts = $xeGantt.computeTaskViewOpts;
@@ -101,9 +103,13 @@ function handleParseColumn($xeGanttView) {
101
103
  var startField = $xeGantt.computeStartField;
102
104
  var endField = $xeGantt.computeEndField;
103
105
  var tableInternalData = $xeTable;
104
- var afterFullData = tableInternalData.afterFullData;
106
+ var afterFullData = tableInternalData.afterFullData,
107
+ afterTreeFullData = tableInternalData.afterTreeFullData;
108
+ var treeOpts = $xeTable.computeTreeOpts;
109
+ var transform = treeOpts.transform;
110
+ var childrenField = treeOpts.children || treeOpts.childrenField;
105
111
  var ctMaps = {};
106
- afterFullData.forEach(function (row) {
112
+ var handleParseRender = function handleParseRender(row) {
107
113
  var rowid = $xeTable.getRowid(row);
108
114
  var startValue = _xeUtils.default.get(row, startField);
109
115
  var endValue = _xeUtils.default.get(row, endField);
@@ -119,7 +125,14 @@ function handleParseColumn($xeGanttView) {
119
125
  oWidthSize: oWidthSize
120
126
  };
121
127
  }
122
- });
128
+ };
129
+ if (treeConfig) {
130
+ _xeUtils.default.eachTree(afterTreeFullData, handleParseRender, {
131
+ children: transform ? treeOpts.mapChildrenField : childrenField
132
+ });
133
+ } else {
134
+ afterFullData.forEach(handleParseRender);
135
+ }
123
136
  internalData.chartMaps = ctMaps;
124
137
  }
125
138
  }
@@ -133,6 +146,8 @@ function handleUpdateData($xeGanttView) {
133
146
  var $xeGantt = $xeGanttView.$xeGantt;
134
147
  var reactData = $xeGanttView.reactData;
135
148
  var internalData = $xeGanttView.internalData;
149
+ var ganttProps = $xeGantt;
150
+ var treeConfig = ganttProps.treeConfig;
136
151
  var $xeTable = internalData.xeTable;
137
152
  var sdMaps = {};
138
153
  var edMaps = {};
@@ -142,8 +157,12 @@ function handleUpdateData($xeGanttView) {
142
157
  var startField = $xeGantt.computeStartField;
143
158
  var endField = $xeGantt.computeEndField;
144
159
  var tableInternalData = $xeTable;
145
- var afterFullData = tableInternalData.afterFullData;
146
- afterFullData.forEach(function (row) {
160
+ var afterFullData = tableInternalData.afterFullData,
161
+ afterTreeFullData = tableInternalData.afterTreeFullData;
162
+ var treeOpts = $xeTable.computeTreeOpts;
163
+ var transform = treeOpts.transform;
164
+ var childrenField = treeOpts.children || treeOpts.childrenField;
165
+ var handleMinMaxData = function handleMinMaxData(row) {
147
166
  var startValue = _xeUtils.default.get(row, startField);
148
167
  var endValue = _xeUtils.default.get(row, endField);
149
168
  if (startValue && endValue) {
@@ -156,7 +175,14 @@ function handleUpdateData($xeGanttView) {
156
175
  maxDate = endDate;
157
176
  }
158
177
  }
159
- });
178
+ };
179
+ if (treeConfig) {
180
+ _xeUtils.default.eachTree(afterTreeFullData, handleMinMaxData, {
181
+ children: transform ? treeOpts.mapChildrenField : childrenField
182
+ });
183
+ } else {
184
+ afterFullData.forEach(handleMinMaxData);
185
+ }
160
186
  }
161
187
  reactData.minViewDate = minDate;
162
188
  reactData.maxViewDate = maxDate;
@@ -315,6 +341,7 @@ function updateStyle($xeGanttView) {
315
341
  function _handleLazyRecalculate($xeGanttView) {
316
342
  calcScrollbar($xeGanttView);
317
343
  updateStyle($xeGanttView);
344
+ updateChart($xeGanttView);
318
345
  return $xeGanttView.$nextTick();
319
346
  }
320
347
  function _updateScrollXSpace($xeGanttView) {
@@ -560,6 +587,45 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
560
587
  var $xeGanttView = this;
561
588
  return _handleLazyRecalculate($xeGanttView);
562
589
  },
590
+ handleUpdateCurrentRow: function handleUpdateCurrentRow(row) {
591
+ var $xeGanttView = this;
592
+ var internalData = $xeGanttView.internalData;
593
+ var $xeTable = internalData.xeTable;
594
+ var el = $xeGanttView.$refs.refElem;
595
+ if ($xeTable && el) {
596
+ if (row) {
597
+ var tableProps = $xeTable;
598
+ var highlightCurrentRow = tableProps.highlightCurrentRow;
599
+ var rowOpts = $xeTable.computeRowOpts;
600
+ if (rowOpts.isCurrent || highlightCurrentRow) {
601
+ _xeUtils.default.arrayEach(el.querySelectorAll("[rowid=\"".concat($xeTable.getRowid(row), "\"]")), function (elem) {
602
+ return (0, _dom.addClass)(elem, 'row--current');
603
+ });
604
+ }
605
+ } else {
606
+ _xeUtils.default.arrayEach(el.querySelectorAll('.row--current'), function (elem) {
607
+ return (0, _dom.removeClass)(elem, 'row--current');
608
+ });
609
+ }
610
+ }
611
+ },
612
+ handleUpdateHoverRow: function handleUpdateHoverRow(row) {
613
+ var $xeGanttView = this;
614
+ var internalData = $xeGanttView.internalData;
615
+ var $xeTable = internalData.xeTable;
616
+ var el = $xeGanttView.$refs.refElem;
617
+ if ($xeTable && el) {
618
+ if (row) {
619
+ _xeUtils.default.arrayEach(el.querySelectorAll(".vxe-body--row[rowid=\"".concat($xeTable.getRowid(row), "\"]")), function (elem) {
620
+ return (0, _dom.addClass)(elem, 'row--hover');
621
+ });
622
+ } else {
623
+ _xeUtils.default.arrayEach(el.querySelectorAll('.vxe-body--row.row--hover'), function (elem) {
624
+ return (0, _dom.removeClass)(elem, 'row--hover');
625
+ });
626
+ }
627
+ }
628
+ },
563
629
  triggerHeaderScrollEvent: function triggerHeaderScrollEvent(evnt) {
564
630
  var $xeGanttView = this;
565
631
  var internalData = $xeGanttView.internalData;
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _comp=require("../../ui/src/comp"),_core=require("@vxe-ui/core"),_dom=require("../../ui/src/dom"),_util=require("./util"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ganttHeader=_interopRequireDefault(require("./gantt-header")),_ganttBody=_interopRequireDefault(require("./gantt-body"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var globalEvents=_core.VxeUI.globalEvents;function createInternalData(){return{xeTable:null,startMaps:{},endMaps:{},chartMaps:{},elemStore:{},scrollXStore:{preloadSize:0,offsetSize:0,visibleSize:0,visibleStartIndex:0,visibleEndIndex:0,startIndex:0,endIndex:0},scrollYStore:{preloadSize:0,offsetSize:0,visibleSize:0,visibleStartIndex:0,visibleEndIndex:0,startIndex:0,endIndex:0}}}var maxYHeight=5e6,maxXWidth=5e6;function handleParseColumn(e){var t=e.$xeGantt,l=e.reactData,r=e.internalData,o=l.minViewDate,a=l.maxViewDate,i=[],n=[];switch(t.computeTaskViewOpts.mode){case"year":case"quarter":case"month":case"week":break;default:if(o&&a){for(var c=o.getTime(),s=a.getTime()-o.getTime(),d=Math.max(6,Math.floor(s/864e5)+1),u=[],f=[],h={},m=0;m<d;m++){var p=new Date(c+864e5*m),S="".concat(p.getFullYear(),"-").concat(p.getMonth()+1),p="".concat(p.getDate()),g=h[S],p={field:"".concat(S,"-").concat(p),title:p};g?(g.children.push(p),i.push(g)):(u.push(g={field:S,title:S,children:[p]}),i.push(g),h[S]=g),f.push(p)}n.push(u,f);var v,x,y,b=r.xeTable;b&&(v=t.computeStartField,x=t.computeEndField,s=b.afterFullData,y={},s.forEach(function(e){var t,l=b.getRowid(e),r=_xeUtils.default.get(e,v),a=_xeUtils.default.get(e,x);r&&a&&(r=_xeUtils.default.toStringDate(r),a=_xeUtils.default.toStringDate(a),t=Math.floor((r.getTime()-o.getTime())/864e5),a=Math.floor((a.getTime()-r.getTime())/864e5)+1,y[l]={row:e,rowid:l,oLeftSize:t,oWidthSize:a})}),r.chartMaps=y)}}l.tableColumn=i,l.headerGroups=n}function handleUpdateData(e){var l,r,t=e.$xeGantt,a=e.reactData,o=e.internalData,i=o.xeTable,n=null,c=null;i&&(l=t.computeStartField,r=t.computeEndField,i.afterFullData.forEach(function(e){var t=_xeUtils.default.get(e,l),e=_xeUtils.default.get(e,r);t&&e&&(t=_xeUtils.default.toStringDate(t),(!n||n.getTime()>t.getTime())&&(n=t),t=_xeUtils.default.toStringDate(e),!c||c.getTime()<t.getTime())&&(c=t)})),a.minViewDate=n,a.maxViewDate=c,o.startMaps={},o.endMaps={},handleParseColumn(e)}function calcScrollbar(e){var t=e.$xeGantt,l=e.reactData,r=l.scrollXWidth,a=l.scrollYHeight,o=e.internalData.elemStore,t=t.computeScrollbarOpts,o=(0,_util.getRefElem)(o["main-body-wrapper"]),i=e.$refs.refScrollXHandleElem,e=e.$refs.refScrollYHandleElem;o&&(a=a>o.clientHeight,e&&(l.scrollbarWidth=t.width||e.offsetWidth-e.clientWidth||14),l.overflowY=a,e=r>o.clientWidth,i&&(l.scrollbarHeight=t.height||i.offsetHeight-i.clientHeight||14),l.overflowX=e)}function updateChart(e){var t=e.reactData,l=e.internalData,r=t.viewCellWidth,t=l.elemStore,a=l.chartMaps,l=(0,_util.getRefElem)(t["main-chart-wrapper"]);return l&&_xeUtils.default.arrayEach(l.children,function(e){var t=e.children[0];t&&(e=(e=e.getAttribute("rowid"))?a[e]:null)&&(t.style.left="".concat(r*e.oLeftSize,"px"),t.style.width="".concat(r*e.oWidthSize,"px"))}),e.$nextTick()}function updateStyle(e){var t,l,r,a,o,i,n,c=e.$xeGantt,s=e.reactData,d=e.internalData,u=s.scrollbarWidth,f=s.tableColumn,h=d.elemStore,d=d.xeTable,m=e.$refs.refElem;if(m&&m.clientHeight)return c=c.computeScrollbarXToTop,n=e.$refs.refScrollXLeftCornerElem,a=e.$refs.refScrollXRightCornerElem,i=e.$refs.refScrollXVirtualElem,u=u,o=s.scrollbarHeight,r=l=t=0,d&&(t=d.tBodyHeight,l=d.tHeaderHeight,r=d.tFooterHeight),(d=(0,_util.getRefElem)(h["main-header-scroll"]))&&(d.style.height="".concat(l,"px")),(d=(0,_util.getRefElem)(h["main-body-scroll"]))&&(d.style.height="".concat(t,"px")),i&&(i.style.height="".concat(o,"px"),i.style.visibility="visible"),(i=e.$refs.refScrollXWrapperElem)&&(i.style.left=c?"".concat(u,"px"):"",i.style.width="".concat(m.clientWidth-u,"px")),n&&(n.style.width=c?"".concat(u,"px"):"",n.style.display=c&&o?"block":""),a&&(a.style.width=c?"":"".concat(u,"px"),a.style.display=!c&&o?"block":""),(i=e.$refs.refScrollYVirtualElem)&&(i.style.width="".concat(u,"px"),i.style.height="".concat(t+l+r,"px"),i.style.visibility="visible"),(m=e.$refs.refScrollYTopCornerElem)&&(m.style.height="".concat(l,"px"),m.style.display=l?"block":""),(n=e.$refs.refScrollYWrapperElem)&&(n.style.height="".concat(t,"px"),n.style.top="".concat(l,"px")),(a=e.$refs.refScrollYBottomCornerElem)&&(a.style.height="".concat(r,"px"),a.style.top="".concat(l+t,"px"),a.style.display=r?"block":""),(c=e.$refs.refColInfoElem)&&(s.viewCellWidth=c.clientWidth||40),o=s.viewCellWidth*f.length,d&&0<(i=(u=d.clientWidth)-o)&&(s.viewCellWidth+=Math.floor(i/f.length),o=u),m=(0,_util.getRefElem)(h["main-header-table"]),n=(0,_util.getRefElem)(h["main-body-table"]),m&&(m.style.width="".concat(o,"px")),n&&(n.style.width="".concat(o,"px")),s.scrollXWidth=o,updateChart(e)}function _handleLazyRecalculate(e){return calcScrollbar(e),updateStyle(e),e.$nextTick()}function _updateScrollXSpace(e){var t=e.reactData,l=t.scrollXLoad,r=t.scrollXWidth,a=e.internalData.elemStore,o=(0,_util.getRefElem)(a["main-body-scroll"]),i=(0,_util.getRefElem)(a["main-body-table"]),n=0,c=0,s=(o&&(c=o.clientWidth),!1),d=r,o=(maxXWidth<r&&(n=o&&i&&o.scrollLeft+c>=maxXWidth?maxXWidth-i.clientWidth:n/(r-c)*(maxXWidth-c),d=maxXWidth,s=!0),i&&(i.style.transform="translate(".concat(n,"px, ").concat(t.scrollYTop||0,"px)")),["header","body","footer"].forEach(function(e){e=(0,_util.getRefElem)(a["main-".concat(e,"-xSpace")]);e&&(e.style.width=l?"".concat(d,"px"):"")}),t.scrollXLeft=n,t.scrollXWidth=d,t.isScrollXBig=s,e.$refs.refScrollXSpaceElem);return o&&(o.style.width="".concat(d,"px")),calcScrollbar(e),e.$nextTick().then(function(){updateStyle(e)})}function _updateScrollYSpace(e){var t=e.reactData,l=e.internalData,r=t.scrollYLoad,a=t.overflowY,o=l.elemStore,l=l.xeTable,i=(0,_util.getRefElem)(o["main-body-scroll"]),n=(0,_util.getRefElem)(o["main-body-table"]),c=0,s=0,d=!1,u=(l&&(c=l.scrollYTop,s=l.scrollYHeight,d=l.isScrollYBig),s),l=c,f=0,i=(i&&(f=i.clientHeight),d&&(l=i&&n&&i.scrollTop+f>=maxYHeight?maxYHeight-n.clientHeight:c/(s-f)*(maxYHeight-f),u=maxYHeight),r&&a||(l=0),n&&(n.style.transform="translate(".concat(t.scrollXLeft||0,"px, ").concat(l,"px)")),["header","body","footer"].forEach(function(e){e=(0,_util.getRefElem)(o["main-".concat(e,"-ySpace")]);e&&(e.style.height=u?"".concat(u,"px"):"")}),e.$refs.refScrollYSpaceElem);return i&&(i.style.height=u?"".concat(u,"px"):""),t.scrollYTop=l,t.scrollYHeight=s,t.isScrollYBig=d,calcScrollbar(e),e.$nextTick().then(function(){updateStyle(e)})}function checkLastSyncScroll(e,t,l){var r=e.reactData,a=e.internalData,e=a.lcsTimeout;r.lazScrollLoading=!0,e&&clearTimeout(e),a.lcsTimeout=setTimeout(function(){a.lcsRunTime=Date.now(),a.lcsTimeout=void 0,a.intoRunScroll=!1,a.inVirtualScroll=!1,a.inWheelScroll=!1,a.inHeaderScroll=!1,a.inBodyScroll=!1,a.inFooterScroll=!1,r.lazScrollLoading=!1},200)}function handleScrollEvent(e,t,l,r,a,o){checkLastSyncScroll(e,r,l)}function syncTableScrollTop(e,t){var e=e.internalData.xeTable;e&&(e=e.elemStore,e=(0,_util.getRefElem)(e["main-body-scroll"]))&&(e.scrollTop=t)}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttView",inject:{$xeGantt:{default:null}},provide:function(){return{$xeGanttView:this}},props:{},data:function(){return{xID:_xeUtils.default.uniqueId(),reactData:{scrollXLoad:!1,scrollYLoad:!1,overflowY:!1,overflowX:!1,scrollbarWidth:0,scrollbarHeight: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:40,rowHeightStore:{large:52,default:48,medium:44,small:40,mini:36}},internalData:createInternalData()}},computed:Object.assign({},{}),methods:{refreshData:function(){return handleUpdateData(this),_handleLazyRecalculate(this)},updateViewData:function(){var e=this.reactData,t=this.internalData.xeTable;return t&&(t=t.tableData,e.tableData=t),this.$nextTick()},connectUpdate:function(e){var e=e.$table,t=this.internalData;return e&&(t.xeTable=e),this.$nextTick()},handleUpdateStyle:function(){return updateStyle(this)},handleLazyRecalculate:function(){return _handleLazyRecalculate(this)},triggerHeaderScrollEvent:function(e){var t,l,r,a=this.internalData,o=a.elemStore;a.inVirtualScroll||a.inBodyScroll||a.inFooterScroll||(t=e.currentTarget,o=(0,_util.getRefElem)(o["main-body-scroll"]),l=this.$refs.refScrollXHandleElem,o&&t&&(r=t.scrollLeft,a.inHeaderScroll=!0,(0,_dom.setScrollLeft)(l,r),(0,_dom.setScrollLeft)(o,r),handleScrollEvent(this,e,!1,!0,t.scrollTop,r)))},triggerBodyScrollEvent:function(e){var t,l,r,a,o,i=this,n=i.internalData,c=n.elemStore;n.inVirtualScroll||n.inHeaderScroll||n.inFooterScroll||(t=e.currentTarget,c=(0,_util.getRefElem)(c["main-header-scroll"]),l=i.$refs.refScrollXHandleElem,r=i.$refs.refScrollYHandleElem,c&&t&&(a=t.scrollLeft,o=t.scrollTop,n.inBodyScroll=!0,(0,_dom.setScrollLeft)(l,a),(0,_dom.setScrollLeft)(c,a),(0,_dom.setScrollTop)(r,o),syncTableScrollTop(i,o),handleScrollEvent(i,e,!0,!0,t.scrollTop,a)))},triggerFooterScrollEvent:function(e){var t,l=this.internalData;l.inVirtualScroll||l.inHeaderScroll||l.inBodyScroll||(l=e.currentTarget)&&(t=l.scrollLeft,handleScrollEvent(this,e,!1,!0,l.scrollTop,t))},triggerVirtualScrollXEvent:function(e){var t,l,r,a=this.internalData,o=a.elemStore;a.inHeaderScroll||a.inBodyScroll||(t=e.currentTarget,l=(0,_util.getRefElem)(o["main-header-scroll"]),o=(0,_util.getRefElem)(o["main-body-scroll"]),t&&(r=t.scrollLeft,a.inVirtualScroll=!0,(0,_dom.setScrollLeft)(l,r),(0,_dom.setScrollLeft)(o,r),handleScrollEvent(this,e,!1,!0,t.scrollTop,r)))},triggerVirtualScrollYEvent:function(e){var t,l,r=this.internalData,a=r.elemStore;r.inHeaderScroll||r.inBodyScroll||(t=e.currentTarget,a=(0,_util.getRefElem)(a["main-body-scroll"]),t&&(l=t.scrollTop,r.inVirtualScroll=!0,(0,_dom.setScrollTop)(a,l),syncTableScrollTop(this,l),handleScrollEvent(this,e,!0,!1,l,t.scrollLeft)))},updateScrollXSpace:function(){return _updateScrollXSpace(this)},updateScrollYSpace:function(){return _updateScrollYSpace(this)},handleGlobalResizeEvent:function(){_handleLazyRecalculate(this)},renderScrollX:function(e){return e("div",{key:"vsx",ref:"refScrollXVirtualElem",class:"vxe-gantt-view--scroll-x-virtual"},[e("div",{ref:"refScrollXLeftCornerElem",class:"vxe-gantt-view--scroll-x-left-corner"}),e("div",{ref:"refScrollXWrapperElem",class:"vxe-gantt-view--scroll-x-wrapper"},[e("div",{ref:"refScrollXHandleElem",class:"vxe-gantt-view--scroll-x-handle",on:{scroll:this.triggerVirtualScrollXEvent}},[e("div",{ref:"refScrollXSpaceElem",class:"vxe-gantt-view--scroll-x-space"})])]),e("div",{ref:"refScrollXRightCornerElem",class:"vxe-gantt-view--scroll-x-right-corner"})])},renderScrollY:function(e){return e("div",{ref:"refScrollYVirtualElem",class:"vxe-gantt-view--scroll-y-virtual"},[e("div",{ref:"refScrollYTopCornerElem",class:"vxe-gantt-view--scroll-y-top-corner"}),e("div",{ref:"refScrollYWrapperElem",class:"vxe-gantt-view--scroll-y-wrapper"},[e("div",{ref:"refScrollYHandleElem",class:"vxe-gantt-view--scroll-y-handle",on:{scroll:this.triggerVirtualScrollYEvent}},[e("div",{ref:"refScrollYSpaceElem",class:"vxe-gantt-view--scroll-y-space"})])]),e("div",{ref:"refScrollYBottomCornerElem",class:"vxe-gantt-view--scroll-y-bottom-corner"})])},renderViewport:function(e){return e("div",{class:"vxe-gantt-view--viewport-wrapper"},[e(_ganttHeader.default),e(_ganttBody.default)])},renderBody:function(e){var t=this;return e("div",{class:"vxe-gantt-view--layout-wrapper"},t.$xeGantt.computeScrollbarYToLeft?[t.renderScrollY(e),t.renderViewport(e)]:[t.renderViewport(e),t.renderScrollY(e)])},renderVN:function(e){var t=this,l=t.$xeGantt,r=t.reactData,a=r.overflowX,o=r.overflowY,i=r.scrollXLoad,r=r.scrollYLoad,n=l.computeTaskViewOpts,l=l.computeScrollbarXToTop;return e("div",{ref:"refElem",class:["vxe-gantt-view","mode--".concat(n.mode||"day"),{"is--scroll-y":o,"is--scroll-x":a,"is--virtual-x":i,"is--virtual-y":r}]},[e("div",{class:"vxe-gantt-view--render-wrapper"},l?[t.renderScrollX(e),t.renderBody(e)]:[t.renderBody(e),t.renderScrollX(e)]),e("div",{class:"vxe-gantt-view--render-vars"},[e("div",{ref:"refColInfoElem",class:"vxe-gantt-view--column-info"})])])}},watch:{"reactData.tableData":function(){handleUpdateData(this)}},mounted:function(){globalEvents.on(this,"resize",this.handleGlobalResizeEvent)},beforeDestroy:function(){var e=this.internalData;globalEvents.off(this,"keydown"),_xeUtils.default.assign(e,createInternalData())},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"),_dom=require("../../ui/src/dom"),_util=require("./util"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ganttHeader=_interopRequireDefault(require("./gantt-header")),_ganttBody=_interopRequireDefault(require("./gantt-body"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var globalEvents=_core.VxeUI.globalEvents;function createInternalData(){return{xeTable:null,startMaps:{},endMaps:{},chartMaps:{},elemStore:{},scrollXStore:{preloadSize:0,offsetSize:0,visibleSize:0,visibleStartIndex:0,visibleEndIndex:0,startIndex:0,endIndex:0},scrollYStore:{preloadSize:0,offsetSize:0,visibleSize:0,visibleStartIndex:0,visibleEndIndex:0,startIndex:0,endIndex:0}}}var maxYHeight=5e6,maxXWidth=5e6;function handleParseColumn(e){var t=e.$xeGantt,l=e.reactData,r=e.internalData,a=t.treeConfig,o=l.minViewDate,i=l.maxViewDate,n=[],c=[];switch(t.computeTaskViewOpts.mode){case"year":case"quarter":case"month":case"week":break;default:if(o&&i){for(var s=o.getTime(),d=i.getTime()-o.getTime(),u=Math.max(6,Math.floor(d/864e5)+1),f=[],h=[],m={},p=0;p<u;p++){var S=new Date(s+864e5*p),v="".concat(S.getFullYear(),"-").concat(S.getMonth()+1),S="".concat(S.getDate()),g=m[v],S={field:"".concat(v,"-").concat(S),title:S};g?(g.children.push(S),n.push(g)):(f.push(g={field:v,title:v,children:[S]}),n.push(g),m[v]=g),h.push(S)}c.push(f,h);var x,y,w,E,b,_,T,D=r.xeTable;D&&(x=t.computeStartField,y=t.computeEndField,d=D.afterFullData,E=(w=D.computeTreeOpts).transform,b=w.children||w.childrenField,_={},T=function(e){var t,l=D.getRowid(e),r=_xeUtils.default.get(e,x),a=_xeUtils.default.get(e,y);r&&a&&(r=_xeUtils.default.toStringDate(r),a=_xeUtils.default.toStringDate(a),t=Math.floor((r.getTime()-o.getTime())/864e5),a=Math.floor((a.getTime()-r.getTime())/864e5)+1,_[l]={row:e,rowid:l,oLeftSize:t,oWidthSize:a})},a?_xeUtils.default.eachTree(D.afterTreeFullData,T,{children:E?w.mapChildrenField:b}):d.forEach(T),r.chartMaps=_)}}l.tableColumn=n,l.headerGroups=c}function handleUpdateData(e){var l,r,t,a,o,i,n=e.$xeGantt,c=e.reactData,s=e.internalData,d=n.treeConfig,u=s.xeTable,f=null,h=null;u&&(l=n.computeStartField,r=n.computeEndField,n=u.afterFullData,a=(t=u.computeTreeOpts).transform,o=t.children||t.childrenField,i=function(e){var t=_xeUtils.default.get(e,l),e=_xeUtils.default.get(e,r);t&&e&&(t=_xeUtils.default.toStringDate(t),(!f||f.getTime()>t.getTime())&&(f=t),t=_xeUtils.default.toStringDate(e),!h||h.getTime()<t.getTime())&&(h=t)},d?_xeUtils.default.eachTree(u.afterTreeFullData,i,{children:a?t.mapChildrenField:o}):n.forEach(i)),c.minViewDate=f,c.maxViewDate=h,s.startMaps={},s.endMaps={},handleParseColumn(e)}function calcScrollbar(e){var t=e.$xeGantt,l=e.reactData,r=l.scrollXWidth,a=l.scrollYHeight,o=e.internalData.elemStore,t=t.computeScrollbarOpts,o=(0,_util.getRefElem)(o["main-body-wrapper"]),i=e.$refs.refScrollXHandleElem,e=e.$refs.refScrollYHandleElem;o&&(a=a>o.clientHeight,e&&(l.scrollbarWidth=t.width||e.offsetWidth-e.clientWidth||14),l.overflowY=a,e=r>o.clientWidth,i&&(l.scrollbarHeight=t.height||i.offsetHeight-i.clientHeight||14),l.overflowX=e)}function updateChart(e){var t=e.reactData,l=e.internalData,r=t.viewCellWidth,t=l.elemStore,a=l.chartMaps,l=(0,_util.getRefElem)(t["main-chart-wrapper"]);return l&&_xeUtils.default.arrayEach(l.children,function(e){var t=e.children[0];t&&(e=(e=e.getAttribute("rowid"))?a[e]:null)&&(t.style.left="".concat(r*e.oLeftSize,"px"),t.style.width="".concat(r*e.oWidthSize,"px"))}),e.$nextTick()}function updateStyle(e){var t,l,r,a,o,i,n,c=e.$xeGantt,s=e.reactData,d=e.internalData,u=s.scrollbarWidth,f=s.tableColumn,h=d.elemStore,d=d.xeTable,m=e.$refs.refElem;if(m&&m.clientHeight)return c=c.computeScrollbarXToTop,n=e.$refs.refScrollXLeftCornerElem,a=e.$refs.refScrollXRightCornerElem,i=e.$refs.refScrollXVirtualElem,u=u,o=s.scrollbarHeight,r=l=t=0,d&&(t=d.tBodyHeight,l=d.tHeaderHeight,r=d.tFooterHeight),(d=(0,_util.getRefElem)(h["main-header-scroll"]))&&(d.style.height="".concat(l,"px")),(d=(0,_util.getRefElem)(h["main-body-scroll"]))&&(d.style.height="".concat(t,"px")),i&&(i.style.height="".concat(o,"px"),i.style.visibility="visible"),(i=e.$refs.refScrollXWrapperElem)&&(i.style.left=c?"".concat(u,"px"):"",i.style.width="".concat(m.clientWidth-u,"px")),n&&(n.style.width=c?"".concat(u,"px"):"",n.style.display=c&&o?"block":""),a&&(a.style.width=c?"":"".concat(u,"px"),a.style.display=!c&&o?"block":""),(i=e.$refs.refScrollYVirtualElem)&&(i.style.width="".concat(u,"px"),i.style.height="".concat(t+l+r,"px"),i.style.visibility="visible"),(m=e.$refs.refScrollYTopCornerElem)&&(m.style.height="".concat(l,"px"),m.style.display=l?"block":""),(n=e.$refs.refScrollYWrapperElem)&&(n.style.height="".concat(t,"px"),n.style.top="".concat(l,"px")),(a=e.$refs.refScrollYBottomCornerElem)&&(a.style.height="".concat(r,"px"),a.style.top="".concat(l+t,"px"),a.style.display=r?"block":""),(c=e.$refs.refColInfoElem)&&(s.viewCellWidth=c.clientWidth||40),o=s.viewCellWidth*f.length,d&&0<(i=(u=d.clientWidth)-o)&&(s.viewCellWidth+=Math.floor(i/f.length),o=u),m=(0,_util.getRefElem)(h["main-header-table"]),n=(0,_util.getRefElem)(h["main-body-table"]),m&&(m.style.width="".concat(o,"px")),n&&(n.style.width="".concat(o,"px")),s.scrollXWidth=o,updateChart(e)}function _handleLazyRecalculate(e){return calcScrollbar(e),updateStyle(e),updateChart(e),e.$nextTick()}function _updateScrollXSpace(e){var t=e.reactData,l=t.scrollXLoad,r=t.scrollXWidth,a=e.internalData.elemStore,o=(0,_util.getRefElem)(a["main-body-scroll"]),i=(0,_util.getRefElem)(a["main-body-table"]),n=0,c=0,s=(o&&(c=o.clientWidth),!1),d=r,o=(maxXWidth<r&&(n=o&&i&&o.scrollLeft+c>=maxXWidth?maxXWidth-i.clientWidth:n/(r-c)*(maxXWidth-c),d=maxXWidth,s=!0),i&&(i.style.transform="translate(".concat(n,"px, ").concat(t.scrollYTop||0,"px)")),["header","body","footer"].forEach(function(e){e=(0,_util.getRefElem)(a["main-".concat(e,"-xSpace")]);e&&(e.style.width=l?"".concat(d,"px"):"")}),t.scrollXLeft=n,t.scrollXWidth=d,t.isScrollXBig=s,e.$refs.refScrollXSpaceElem);return o&&(o.style.width="".concat(d,"px")),calcScrollbar(e),e.$nextTick().then(function(){updateStyle(e)})}function _updateScrollYSpace(e){var t=e.reactData,l=e.internalData,r=t.scrollYLoad,a=t.overflowY,o=l.elemStore,l=l.xeTable,i=(0,_util.getRefElem)(o["main-body-scroll"]),n=(0,_util.getRefElem)(o["main-body-table"]),c=0,s=0,d=!1,u=(l&&(c=l.scrollYTop,s=l.scrollYHeight,d=l.isScrollYBig),s),l=c,f=0,i=(i&&(f=i.clientHeight),d&&(l=i&&n&&i.scrollTop+f>=maxYHeight?maxYHeight-n.clientHeight:c/(s-f)*(maxYHeight-f),u=maxYHeight),r&&a||(l=0),n&&(n.style.transform="translate(".concat(t.scrollXLeft||0,"px, ").concat(l,"px)")),["header","body","footer"].forEach(function(e){e=(0,_util.getRefElem)(o["main-".concat(e,"-ySpace")]);e&&(e.style.height=u?"".concat(u,"px"):"")}),e.$refs.refScrollYSpaceElem);return i&&(i.style.height=u?"".concat(u,"px"):""),t.scrollYTop=l,t.scrollYHeight=s,t.isScrollYBig=d,calcScrollbar(e),e.$nextTick().then(function(){updateStyle(e)})}function checkLastSyncScroll(e,t,l){var r=e.reactData,a=e.internalData,e=a.lcsTimeout;r.lazScrollLoading=!0,e&&clearTimeout(e),a.lcsTimeout=setTimeout(function(){a.lcsRunTime=Date.now(),a.lcsTimeout=void 0,a.intoRunScroll=!1,a.inVirtualScroll=!1,a.inWheelScroll=!1,a.inHeaderScroll=!1,a.inBodyScroll=!1,a.inFooterScroll=!1,r.lazScrollLoading=!1},200)}function handleScrollEvent(e,t,l,r,a,o){checkLastSyncScroll(e,r,l)}function syncTableScrollTop(e,t){var e=e.internalData.xeTable;e&&(e=e.elemStore,e=(0,_util.getRefElem)(e["main-body-scroll"]))&&(e.scrollTop=t)}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttView",inject:{$xeGantt:{default:null}},provide:function(){return{$xeGanttView:this}},props:{},data:function(){return{xID:_xeUtils.default.uniqueId(),reactData:{scrollXLoad:!1,scrollYLoad:!1,overflowY:!1,overflowX:!1,scrollbarWidth:0,scrollbarHeight: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:40,rowHeightStore:{large:52,default:48,medium:44,small:40,mini:36}},internalData:createInternalData()}},computed:Object.assign({},{}),methods:{refreshData:function(){return handleUpdateData(this),_handleLazyRecalculate(this)},updateViewData:function(){var e=this.reactData,t=this.internalData.xeTable;return t&&(t=t.tableData,e.tableData=t),this.$nextTick()},connectUpdate:function(e){var e=e.$table,t=this.internalData;return e&&(t.xeTable=e),this.$nextTick()},handleUpdateStyle:function(){return updateStyle(this)},handleLazyRecalculate:function(){return _handleLazyRecalculate(this)},handleUpdateCurrentRow:function(e){var t,l=this.internalData.xeTable,r=this.$refs.refElem;l&&r&&(e?(t=l.highlightCurrentRow,(l.computeRowOpts.isCurrent||t)&&_xeUtils.default.arrayEach(r.querySelectorAll('[rowid="'.concat(l.getRowid(e),'"]')),function(e){return(0,_dom.addClass)(e,"row--current")})):_xeUtils.default.arrayEach(r.querySelectorAll(".row--current"),function(e){return(0,_dom.removeClass)(e,"row--current")}))},handleUpdateHoverRow:function(e){var t=this.internalData.xeTable,l=this.$refs.refElem;t&&l&&(e?_xeUtils.default.arrayEach(l.querySelectorAll('.vxe-body--row[rowid="'.concat(t.getRowid(e),'"]')),function(e){return(0,_dom.addClass)(e,"row--hover")}):_xeUtils.default.arrayEach(l.querySelectorAll(".vxe-body--row.row--hover"),function(e){return(0,_dom.removeClass)(e,"row--hover")}))},triggerHeaderScrollEvent:function(e){var t,l,r,a=this.internalData,o=a.elemStore;a.inVirtualScroll||a.inBodyScroll||a.inFooterScroll||(t=e.currentTarget,o=(0,_util.getRefElem)(o["main-body-scroll"]),l=this.$refs.refScrollXHandleElem,o&&t&&(r=t.scrollLeft,a.inHeaderScroll=!0,(0,_dom.setScrollLeft)(l,r),(0,_dom.setScrollLeft)(o,r),handleScrollEvent(this,e,!1,!0,t.scrollTop,r)))},triggerBodyScrollEvent:function(e){var t,l,r,a,o,i=this,n=i.internalData,c=n.elemStore;n.inVirtualScroll||n.inHeaderScroll||n.inFooterScroll||(t=e.currentTarget,c=(0,_util.getRefElem)(c["main-header-scroll"]),l=i.$refs.refScrollXHandleElem,r=i.$refs.refScrollYHandleElem,c&&t&&(a=t.scrollLeft,o=t.scrollTop,n.inBodyScroll=!0,(0,_dom.setScrollLeft)(l,a),(0,_dom.setScrollLeft)(c,a),(0,_dom.setScrollTop)(r,o),syncTableScrollTop(i,o),handleScrollEvent(i,e,!0,!0,t.scrollTop,a)))},triggerFooterScrollEvent:function(e){var t,l=this.internalData;l.inVirtualScroll||l.inHeaderScroll||l.inBodyScroll||(l=e.currentTarget)&&(t=l.scrollLeft,handleScrollEvent(this,e,!1,!0,l.scrollTop,t))},triggerVirtualScrollXEvent:function(e){var t,l,r,a=this.internalData,o=a.elemStore;a.inHeaderScroll||a.inBodyScroll||(t=e.currentTarget,l=(0,_util.getRefElem)(o["main-header-scroll"]),o=(0,_util.getRefElem)(o["main-body-scroll"]),t&&(r=t.scrollLeft,a.inVirtualScroll=!0,(0,_dom.setScrollLeft)(l,r),(0,_dom.setScrollLeft)(o,r),handleScrollEvent(this,e,!1,!0,t.scrollTop,r)))},triggerVirtualScrollYEvent:function(e){var t,l,r=this.internalData,a=r.elemStore;r.inHeaderScroll||r.inBodyScroll||(t=e.currentTarget,a=(0,_util.getRefElem)(a["main-body-scroll"]),t&&(l=t.scrollTop,r.inVirtualScroll=!0,(0,_dom.setScrollTop)(a,l),syncTableScrollTop(this,l),handleScrollEvent(this,e,!0,!1,l,t.scrollLeft)))},updateScrollXSpace:function(){return _updateScrollXSpace(this)},updateScrollYSpace:function(){return _updateScrollYSpace(this)},handleGlobalResizeEvent:function(){_handleLazyRecalculate(this)},renderScrollX:function(e){return e("div",{key:"vsx",ref:"refScrollXVirtualElem",class:"vxe-gantt-view--scroll-x-virtual"},[e("div",{ref:"refScrollXLeftCornerElem",class:"vxe-gantt-view--scroll-x-left-corner"}),e("div",{ref:"refScrollXWrapperElem",class:"vxe-gantt-view--scroll-x-wrapper"},[e("div",{ref:"refScrollXHandleElem",class:"vxe-gantt-view--scroll-x-handle",on:{scroll:this.triggerVirtualScrollXEvent}},[e("div",{ref:"refScrollXSpaceElem",class:"vxe-gantt-view--scroll-x-space"})])]),e("div",{ref:"refScrollXRightCornerElem",class:"vxe-gantt-view--scroll-x-right-corner"})])},renderScrollY:function(e){return e("div",{ref:"refScrollYVirtualElem",class:"vxe-gantt-view--scroll-y-virtual"},[e("div",{ref:"refScrollYTopCornerElem",class:"vxe-gantt-view--scroll-y-top-corner"}),e("div",{ref:"refScrollYWrapperElem",class:"vxe-gantt-view--scroll-y-wrapper"},[e("div",{ref:"refScrollYHandleElem",class:"vxe-gantt-view--scroll-y-handle",on:{scroll:this.triggerVirtualScrollYEvent}},[e("div",{ref:"refScrollYSpaceElem",class:"vxe-gantt-view--scroll-y-space"})])]),e("div",{ref:"refScrollYBottomCornerElem",class:"vxe-gantt-view--scroll-y-bottom-corner"})])},renderViewport:function(e){return e("div",{class:"vxe-gantt-view--viewport-wrapper"},[e(_ganttHeader.default),e(_ganttBody.default)])},renderBody:function(e){var t=this;return e("div",{class:"vxe-gantt-view--layout-wrapper"},t.$xeGantt.computeScrollbarYToLeft?[t.renderScrollY(e),t.renderViewport(e)]:[t.renderViewport(e),t.renderScrollY(e)])},renderVN:function(e){var t=this,l=t.$xeGantt,r=t.reactData,a=r.overflowX,o=r.overflowY,i=r.scrollXLoad,r=r.scrollYLoad,n=l.computeTaskViewOpts,l=l.computeScrollbarXToTop;return e("div",{ref:"refElem",class:["vxe-gantt-view","mode--".concat(n.mode||"day"),{"is--scroll-y":o,"is--scroll-x":a,"is--virtual-x":i,"is--virtual-y":r}]},[e("div",{class:"vxe-gantt-view--render-wrapper"},l?[t.renderScrollX(e),t.renderBody(e)]:[t.renderBody(e),t.renderScrollX(e)]),e("div",{class:"vxe-gantt-view--render-vars"},[e("div",{ref:"refColInfoElem",class:"vxe-gantt-view--column-info"})])])}},watch:{"reactData.tableData":function(){handleUpdateData(this)}},mounted:function(){globalEvents.on(this,"resize",this.handleGlobalResizeEvent)},beforeDestroy:function(){var e=this.internalData;globalEvents.off(this,"keydown"),_xeUtils.default.assign(e,createInternalData())},render:function(e){return this.renderVN(e)}});
@@ -10,6 +10,7 @@ var _core = require("@vxe-ui/core");
10
10
  var _xeUtils = _interopRequireDefault(require("xe-utils"));
11
11
  var _utils = require("../../ui/src/utils");
12
12
  var _dom = require("../../ui/src/dom");
13
+ var _vn = require("../../ui/src/vn");
13
14
  var _log = require("../../ui/src/log");
14
15
  var _ganttView = _interopRequireDefault(require("./gantt-view"));
15
16
  var _vxeTable = require("vxe-table");
@@ -31,8 +32,7 @@ var getConfig = _core.VxeUI.getConfig,
31
32
  createEvent = _core.VxeUI.createEvent,
32
33
  globalEvents = _core.VxeUI.globalEvents,
33
34
  GLOBAL_EVENT_KEYS = _core.VxeUI.GLOBAL_EVENT_KEYS,
34
- renderEmptyElement = _core.VxeUI.renderEmptyElement,
35
- getSlotVNs = _core.VxeUI.getSlotVNs;
35
+ renderEmptyElement = _core.VxeUI.renderEmptyElement;
36
36
  var tableProps = _vxeTable.VxeTable.props;
37
37
  var tableMethods = {};
38
38
  var propKeys = Object.keys(tableProps);
@@ -98,7 +98,9 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
98
98
  }),
99
99
  provide: function provide() {
100
100
  var $xeGantt = this;
101
+ var $xeGrid = null;
101
102
  return {
103
+ $xeGrid: $xeGrid,
102
104
  $xeGantt: $xeGantt
103
105
  };
104
106
  },
@@ -285,7 +287,12 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
285
287
  var proxyOpts = $xeGantt.computeProxyOpts;
286
288
  var pagerOpts = $xeGantt.computePagerOpts;
287
289
  var isLoading = $xeGantt.computeIsLoading;
288
- var tProps = Object.assign({}, tableExtendProps);
290
+ var tProps = Object.assign({}, tableExtendProps, {
291
+ showOverflow: true,
292
+ showHeaderOverflow: true,
293
+ showFooterOverflow: true,
294
+ showFooter: false
295
+ });
289
296
  if (isZMax) {
290
297
  if (tableExtendProps.maxHeight) {
291
298
  tProps.maxHeight = '100%';
@@ -1486,7 +1493,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1486
1493
  slotFunc = slots[slotFunc] || null;
1487
1494
  }
1488
1495
  if (_xeUtils.default.isFunction(slotFunc)) {
1489
- return getSlotVNs(slotFunc.call(this, params, h, vNodes));
1496
+ return (0, _vn.getSlotVNs)(slotFunc.call(this, params, h, vNodes));
1490
1497
  }
1491
1498
  }
1492
1499
  return [];
@@ -1558,6 +1565,21 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1558
1565
  },
1559
1566
  handleTaskCellClickEvent: function handleTaskCellClickEvent(evnt, params) {
1560
1567
  var $xeGantt = this;
1568
+ var $xeTable = $xeGantt.$refs.refTable;
1569
+ if ($xeTable) {
1570
+ var _tableProps = $xeTable;
1571
+ var highlightCurrentRow = _tableProps.highlightCurrentRow;
1572
+ var rowOpts = $xeTable.computeRowOpts;
1573
+ var row = params.row;
1574
+ // 如果是当前行
1575
+ if (rowOpts.isCurrent || highlightCurrentRow) {
1576
+ $xeTable.triggerCurrentRowEvent(evnt, Object.assign({
1577
+ $table: $xeTable,
1578
+ rowIndex: $xeTable.getRowIndex(row),
1579
+ $rowIndex: $xeTable.getVMRowIndex(row)
1580
+ }, params));
1581
+ }
1582
+ }
1561
1583
  $xeGantt.dispatchEvent('task-cell-click', params, evnt);
1562
1584
  },
1563
1585
  handleTaskCellDblclickEvent: function handleTaskCellDblclickEvent(evnt, params) {
@@ -1891,17 +1913,18 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1891
1913
  if (!enabled) {
1892
1914
  return renderEmptyElement($xeGantt);
1893
1915
  }
1916
+ var isResize = resize && showLeftView && showRightView;
1894
1917
  var ons = {};
1895
- if (resize) {
1918
+ if (isResize) {
1896
1919
  ons.mousedown = $xeGantt.dragSplitEvent;
1897
1920
  }
1898
1921
  return h('div', {
1899
1922
  class: ['vxe-gantt--view-split-bar', {
1900
- 'is--resize': resize,
1901
- on: ons
1923
+ 'is--resize': isResize
1902
1924
  }]
1903
1925
  }, [h('div', {
1904
- class: 'vxe-gantt--view-split-bar-handle'
1926
+ class: 'vxe-gantt--view-split-bar-handle',
1927
+ on: ons
1905
1928
  }), showCollapseTableButton || showCollapseTaskButton ? h('div', {
1906
1929
  class: 'vxe-gantt--view-split-bar-btn-wrapper'
1907
1930
  }, [showCollapseTableButton && showRightView ? h('div', {