vxe-gantt 0.0.2 → 3.0.0-beta.0
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.
- package/README.md +18 -24
- package/es/components.js +3 -2
- package/es/gantt/src/gantt-body.js +137 -0
- package/es/gantt/src/gantt-chart.js +125 -0
- package/es/gantt/src/gantt-header.js +97 -0
- package/es/gantt/src/gantt-view.js +820 -0
- package/es/gantt/src/gantt.js +1897 -43
- package/es/gantt/src/util.js +9 -0
- package/es/gantt/style.css +624 -0
- package/es/gantt/style.min.css +1 -0
- package/es/index.esm.js +5 -2
- package/es/style.css +1 -0
- package/es/style.min.css +1 -0
- package/es/ui/index.js +55 -5
- package/es/ui/src/comp.js +1 -2
- package/es/ui/src/dom.js +44 -105
- package/es/ui/src/log.js +3 -2
- package/es/ui/src/utils.js +4 -3
- package/es/ui/src/vn.js +1 -32
- package/es/vxe-gantt/style.css +624 -0
- package/es/vxe-gantt/style.min.css +1 -0
- package/helper/vetur/attributes.json +1 -1
- package/helper/vetur/tags.json +1 -1
- package/lib/components.js +20 -19
- package/lib/components.min.js +1 -1
- package/lib/gantt/index.js +3 -3
- package/lib/gantt/index.min.js +1 -1
- package/lib/gantt/src/gantt-body.js +140 -0
- package/lib/gantt/src/gantt-body.min.js +1 -0
- package/lib/gantt/src/gantt-chart.js +134 -0
- package/lib/gantt/src/gantt-chart.min.js +1 -0
- package/lib/gantt/src/gantt-header.js +97 -0
- package/lib/gantt/src/gantt-header.min.js +1 -0
- package/lib/gantt/src/gantt-view.js +808 -0
- package/lib/gantt/src/gantt-view.min.js +1 -0
- package/lib/gantt/src/gantt.js +2045 -48
- package/lib/gantt/src/gantt.min.js +1 -1
- package/lib/gantt/src/util.js +16 -0
- package/lib/gantt/src/util.min.js +1 -0
- package/lib/gantt/style/style.css +624 -0
- package/lib/gantt/style/style.min.css +1 -0
- package/lib/index.common.js +12 -7
- package/lib/index.umd.js +11484 -235
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -0
- package/lib/style.min.css +1 -0
- package/lib/ui/index.js +54 -14
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/comp.js +3 -2
- package/lib/ui/src/comp.min.js +1 -1
- package/lib/ui/src/dom.js +78 -138
- package/lib/ui/src/dom.min.js +1 -1
- package/lib/ui/src/log.js +4 -3
- package/lib/ui/src/log.min.js +1 -1
- package/lib/ui/src/utils.js +5 -4
- package/lib/ui/src/utils.min.js +1 -1
- package/lib/ui/src/vn.js +1 -43
- package/lib/ui/src/vn.min.js +0 -1
- package/lib/vxe-gantt/index.js +4 -2
- package/lib/vxe-gantt/index.min.js +1 -1
- package/lib/vxe-gantt/style/style.css +624 -0
- package/lib/vxe-gantt/style/style.min.css +1 -0
- package/lib/vxe-ui/index.js +4 -2
- package/lib/vxe-ui/index.min.js +1 -1
- package/package.json +13 -13
- package/packages/components.ts +8 -5
- package/packages/gantt/index.ts +2 -2
- package/packages/gantt/src/gantt-body.ts +155 -0
- package/packages/gantt/src/gantt-chart.ts +143 -0
- package/packages/gantt/src/gantt-header.ts +109 -0
- package/packages/gantt/src/gantt-view.ts +908 -0
- package/packages/gantt/src/gantt.ts +2048 -46
- package/packages/gantt/src/util.ts +12 -0
- package/packages/index.ts +6 -2
- package/packages/ui/index.ts +56 -4
- package/packages/ui/src/comp.ts +2 -2
- package/packages/ui/src/dom.ts +53 -110
- package/packages/ui/src/log.ts +4 -2
- package/packages/ui/src/utils.ts +5 -3
- package/packages/ui/src/vn.ts +0 -37
- package/styles/components/gantt-module/all.scss +1 -0
- package/styles/components/gantt-module/gantt-chart.scss +65 -0
- package/styles/components/gantt.scss +591 -0
- package/styles/helpers/baseMixin.scss +96 -0
- package/styles/helpers/baseVar.scss +4 -0
- package/styles/helpers/placement.scss +39 -0
- package/styles/theme/base.scss +11 -0
- package/styles/theme/dark.scss +5 -0
- package/styles/theme/light.scss +5 -0
- package/types/all.d.ts +3 -3
- package/types/index.d.ts +2 -2
- package/README.en.md +0 -72
- package/README.ja-JP.md +0 -72
- package/README.zh-TW.md +0 -73
|
@@ -0,0 +1,808 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _comp = require("../../ui/src/comp");
|
|
8
|
+
var _core = require("@vxe-ui/core");
|
|
9
|
+
var _dom = require("../../ui/src/dom");
|
|
10
|
+
var _util = require("./util");
|
|
11
|
+
var _xeUtils = _interopRequireDefault(require("xe-utils"));
|
|
12
|
+
var _ganttHeader = _interopRequireDefault(require("./gantt-header"));
|
|
13
|
+
var _ganttBody = _interopRequireDefault(require("./gantt-body"));
|
|
14
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
|
+
var globalEvents = _core.VxeUI.globalEvents;
|
|
16
|
+
function createInternalData() {
|
|
17
|
+
return {
|
|
18
|
+
xeTable: null,
|
|
19
|
+
startMaps: {},
|
|
20
|
+
endMaps: {},
|
|
21
|
+
chartMaps: {},
|
|
22
|
+
elemStore: {},
|
|
23
|
+
// 存放横向 X 虚拟滚动相关的信息
|
|
24
|
+
scrollXStore: {
|
|
25
|
+
preloadSize: 0,
|
|
26
|
+
offsetSize: 0,
|
|
27
|
+
visibleSize: 0,
|
|
28
|
+
visibleStartIndex: 0,
|
|
29
|
+
visibleEndIndex: 0,
|
|
30
|
+
startIndex: 0,
|
|
31
|
+
endIndex: 0
|
|
32
|
+
},
|
|
33
|
+
// 存放纵向 Y 虚拟滚动相关信息
|
|
34
|
+
scrollYStore: {
|
|
35
|
+
preloadSize: 0,
|
|
36
|
+
offsetSize: 0,
|
|
37
|
+
visibleSize: 0,
|
|
38
|
+
visibleStartIndex: 0,
|
|
39
|
+
visibleEndIndex: 0,
|
|
40
|
+
startIndex: 0,
|
|
41
|
+
endIndex: 0
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
var maxYHeight = 5e6;
|
|
46
|
+
var maxXWidth = 5e6;
|
|
47
|
+
function handleParseColumn($xeGanttView) {
|
|
48
|
+
var $xeGantt = $xeGanttView.$xeGantt;
|
|
49
|
+
var reactData = $xeGanttView.reactData;
|
|
50
|
+
var internalData = $xeGanttView.internalData;
|
|
51
|
+
var minViewDate = reactData.minViewDate,
|
|
52
|
+
maxViewDate = reactData.maxViewDate;
|
|
53
|
+
var taskViewOpts = $xeGantt.computeTaskViewOpts;
|
|
54
|
+
var fullCols = [];
|
|
55
|
+
var groupCols = [];
|
|
56
|
+
switch (taskViewOpts.mode) {
|
|
57
|
+
case 'year':
|
|
58
|
+
break;
|
|
59
|
+
case 'quarter':
|
|
60
|
+
break;
|
|
61
|
+
case 'month':
|
|
62
|
+
break;
|
|
63
|
+
case 'week':
|
|
64
|
+
break;
|
|
65
|
+
default:
|
|
66
|
+
{
|
|
67
|
+
if (minViewDate && maxViewDate) {
|
|
68
|
+
var currTime = minViewDate.getTime();
|
|
69
|
+
var diffDayNum = maxViewDate.getTime() - minViewDate.getTime();
|
|
70
|
+
var countDayNum = Math.max(6, Math.floor(diffDayNum / 86400000) + 1);
|
|
71
|
+
var groupList = [];
|
|
72
|
+
var colList = [];
|
|
73
|
+
var groupMaps = {};
|
|
74
|
+
for (var i = 0; i < countDayNum; i++) {
|
|
75
|
+
var itemDate = new Date(currTime + i * 86400000);
|
|
76
|
+
var yyyyy = "".concat(itemDate.getFullYear(), "-").concat(itemDate.getMonth() + 1);
|
|
77
|
+
var mmDd = "".concat(itemDate.getDate());
|
|
78
|
+
var groupCol = groupMaps[yyyyy];
|
|
79
|
+
var column = {
|
|
80
|
+
field: "".concat(yyyyy, "-").concat(mmDd),
|
|
81
|
+
title: mmDd
|
|
82
|
+
};
|
|
83
|
+
if (groupCol) {
|
|
84
|
+
groupCol.children.push(column);
|
|
85
|
+
fullCols.push(groupCol);
|
|
86
|
+
} else {
|
|
87
|
+
groupCol = {
|
|
88
|
+
field: yyyyy,
|
|
89
|
+
title: yyyyy,
|
|
90
|
+
children: [column]
|
|
91
|
+
};
|
|
92
|
+
groupList.push(groupCol);
|
|
93
|
+
fullCols.push(groupCol);
|
|
94
|
+
groupMaps[yyyyy] = groupCol;
|
|
95
|
+
}
|
|
96
|
+
colList.push(column);
|
|
97
|
+
}
|
|
98
|
+
groupCols.push(groupList, colList);
|
|
99
|
+
var $xeTable = internalData.xeTable;
|
|
100
|
+
if ($xeTable) {
|
|
101
|
+
var startField = $xeGantt.computeStartField;
|
|
102
|
+
var endField = $xeGantt.computeEndField;
|
|
103
|
+
var tableInternalData = $xeTable;
|
|
104
|
+
var afterFullData = tableInternalData.afterFullData;
|
|
105
|
+
var ctMaps = {};
|
|
106
|
+
afterFullData.forEach(function (row) {
|
|
107
|
+
var rowid = $xeTable.getRowid(row);
|
|
108
|
+
var startValue = _xeUtils.default.get(row, startField);
|
|
109
|
+
var endValue = _xeUtils.default.get(row, endField);
|
|
110
|
+
if (startValue && endValue) {
|
|
111
|
+
var startDate = _xeUtils.default.toStringDate(startValue);
|
|
112
|
+
var endDate = _xeUtils.default.toStringDate(endValue);
|
|
113
|
+
var oLeftSize = Math.floor((startDate.getTime() - minViewDate.getTime()) / 86400000);
|
|
114
|
+
var oWidthSize = Math.floor((endDate.getTime() - startDate.getTime()) / 86400000) + 1;
|
|
115
|
+
ctMaps[rowid] = {
|
|
116
|
+
row: row,
|
|
117
|
+
rowid: rowid,
|
|
118
|
+
oLeftSize: oLeftSize,
|
|
119
|
+
oWidthSize: oWidthSize
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
internalData.chartMaps = ctMaps;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
break;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
reactData.tableColumn = fullCols;
|
|
130
|
+
reactData.headerGroups = groupCols;
|
|
131
|
+
}
|
|
132
|
+
function handleUpdateData($xeGanttView) {
|
|
133
|
+
var $xeGantt = $xeGanttView.$xeGantt;
|
|
134
|
+
var reactData = $xeGanttView.reactData;
|
|
135
|
+
var internalData = $xeGanttView.internalData;
|
|
136
|
+
var $xeTable = internalData.xeTable;
|
|
137
|
+
var sdMaps = {};
|
|
138
|
+
var edMaps = {};
|
|
139
|
+
var minDate = null;
|
|
140
|
+
var maxDate = null;
|
|
141
|
+
if ($xeTable) {
|
|
142
|
+
var startField = $xeGantt.computeStartField;
|
|
143
|
+
var endField = $xeGantt.computeEndField;
|
|
144
|
+
var tableInternalData = $xeTable;
|
|
145
|
+
var afterFullData = tableInternalData.afterFullData;
|
|
146
|
+
afterFullData.forEach(function (row) {
|
|
147
|
+
var startValue = _xeUtils.default.get(row, startField);
|
|
148
|
+
var endValue = _xeUtils.default.get(row, endField);
|
|
149
|
+
if (startValue && endValue) {
|
|
150
|
+
var startDate = _xeUtils.default.toStringDate(startValue);
|
|
151
|
+
if (!minDate || minDate.getTime() > startDate.getTime()) {
|
|
152
|
+
minDate = startDate;
|
|
153
|
+
}
|
|
154
|
+
var endDate = _xeUtils.default.toStringDate(endValue);
|
|
155
|
+
if (!maxDate || maxDate.getTime() < endDate.getTime()) {
|
|
156
|
+
maxDate = endDate;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
reactData.minViewDate = minDate;
|
|
162
|
+
reactData.maxViewDate = maxDate;
|
|
163
|
+
internalData.startMaps = sdMaps;
|
|
164
|
+
internalData.endMaps = edMaps;
|
|
165
|
+
handleParseColumn($xeGanttView);
|
|
166
|
+
}
|
|
167
|
+
function calcScrollbar($xeGanttView) {
|
|
168
|
+
var $xeGantt = $xeGanttView.$xeGantt;
|
|
169
|
+
var reactData = $xeGanttView.reactData;
|
|
170
|
+
var internalData = $xeGanttView.internalData;
|
|
171
|
+
var scrollXWidth = reactData.scrollXWidth,
|
|
172
|
+
scrollYHeight = reactData.scrollYHeight;
|
|
173
|
+
var elemStore = internalData.elemStore;
|
|
174
|
+
var scrollbarOpts = $xeGantt.computeScrollbarOpts;
|
|
175
|
+
var bodyWrapperElem = (0, _util.getRefElem)(elemStore['main-body-wrapper']);
|
|
176
|
+
var xHandleEl = $xeGanttView.$refs.refScrollXHandleElem;
|
|
177
|
+
var yHandleEl = $xeGanttView.$refs.refScrollYHandleElem;
|
|
178
|
+
var overflowY = false;
|
|
179
|
+
var overflowX = false;
|
|
180
|
+
if (bodyWrapperElem) {
|
|
181
|
+
overflowY = scrollYHeight > bodyWrapperElem.clientHeight;
|
|
182
|
+
if (yHandleEl) {
|
|
183
|
+
reactData.scrollbarWidth = scrollbarOpts.width || yHandleEl.offsetWidth - yHandleEl.clientWidth || 14;
|
|
184
|
+
}
|
|
185
|
+
reactData.overflowY = overflowY;
|
|
186
|
+
overflowX = scrollXWidth > bodyWrapperElem.clientWidth;
|
|
187
|
+
if (xHandleEl) {
|
|
188
|
+
reactData.scrollbarHeight = scrollbarOpts.height || xHandleEl.offsetHeight - xHandleEl.clientHeight || 14;
|
|
189
|
+
}
|
|
190
|
+
reactData.overflowX = overflowX;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
function updateChart($xeGanttView) {
|
|
194
|
+
var reactData = $xeGanttView.reactData;
|
|
195
|
+
var internalData = $xeGanttView.internalData;
|
|
196
|
+
var viewCellWidth = reactData.viewCellWidth;
|
|
197
|
+
var elemStore = internalData.elemStore,
|
|
198
|
+
chartMaps = internalData.chartMaps;
|
|
199
|
+
var chartWrapper = (0, _util.getRefElem)(elemStore['main-chart-wrapper']);
|
|
200
|
+
if (chartWrapper) {
|
|
201
|
+
_xeUtils.default.arrayEach(chartWrapper.children, function (rowEl) {
|
|
202
|
+
var barEl = rowEl.children[0];
|
|
203
|
+
if (!barEl) {
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
var rowid = rowEl.getAttribute('rowid');
|
|
207
|
+
var rowRest = rowid ? chartMaps[rowid] : null;
|
|
208
|
+
if (rowRest) {
|
|
209
|
+
barEl.style.left = "".concat(viewCellWidth * rowRest.oLeftSize, "px");
|
|
210
|
+
barEl.style.width = "".concat(viewCellWidth * rowRest.oWidthSize, "px");
|
|
211
|
+
}
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
return $xeGanttView.$nextTick();
|
|
215
|
+
}
|
|
216
|
+
function updateStyle($xeGanttView) {
|
|
217
|
+
var $xeGantt = $xeGanttView.$xeGantt;
|
|
218
|
+
var reactData = $xeGanttView.reactData;
|
|
219
|
+
var internalData = $xeGanttView.internalData;
|
|
220
|
+
var scrollbarWidth = reactData.scrollbarWidth,
|
|
221
|
+
scrollbarHeight = reactData.scrollbarHeight,
|
|
222
|
+
tableColumn = reactData.tableColumn;
|
|
223
|
+
var elemStore = internalData.elemStore;
|
|
224
|
+
var $xeTable = internalData.xeTable;
|
|
225
|
+
var el = $xeGanttView.$refs.refElem;
|
|
226
|
+
if (!el || !el.clientHeight) {
|
|
227
|
+
return;
|
|
228
|
+
}
|
|
229
|
+
var scrollbarXToTop = $xeGantt.computeScrollbarXToTop;
|
|
230
|
+
var xLeftCornerEl = $xeGanttView.$refs.refScrollXLeftCornerElem;
|
|
231
|
+
var xRightCornerEl = $xeGanttView.$refs.refScrollXRightCornerElem;
|
|
232
|
+
var scrollXVirtualEl = $xeGanttView.$refs.refScrollXVirtualElem;
|
|
233
|
+
var osbWidth = scrollbarWidth;
|
|
234
|
+
var osbHeight = scrollbarHeight;
|
|
235
|
+
var tbHeight = 0;
|
|
236
|
+
var tHeaderHeight = 0;
|
|
237
|
+
var tFooterHeight = 0;
|
|
238
|
+
if ($xeTable) {
|
|
239
|
+
var tableInternalData = $xeTable;
|
|
240
|
+
tbHeight = tableInternalData.tBodyHeight;
|
|
241
|
+
tHeaderHeight = tableInternalData.tHeaderHeight;
|
|
242
|
+
tFooterHeight = tableInternalData.tFooterHeight;
|
|
243
|
+
}
|
|
244
|
+
var headerScrollElem = (0, _util.getRefElem)(elemStore['main-header-scroll']);
|
|
245
|
+
if (headerScrollElem) {
|
|
246
|
+
headerScrollElem.style.height = "".concat(tHeaderHeight, "px");
|
|
247
|
+
}
|
|
248
|
+
var bodyScrollElem = (0, _util.getRefElem)(elemStore['main-body-scroll']);
|
|
249
|
+
if (bodyScrollElem) {
|
|
250
|
+
bodyScrollElem.style.height = "".concat(tbHeight, "px");
|
|
251
|
+
}
|
|
252
|
+
if (scrollXVirtualEl) {
|
|
253
|
+
scrollXVirtualEl.style.height = "".concat(osbHeight, "px");
|
|
254
|
+
scrollXVirtualEl.style.visibility = 'visible';
|
|
255
|
+
}
|
|
256
|
+
var xWrapperEl = $xeGanttView.$refs.refScrollXWrapperElem;
|
|
257
|
+
if (xWrapperEl) {
|
|
258
|
+
xWrapperEl.style.left = scrollbarXToTop ? "".concat(osbWidth, "px") : '';
|
|
259
|
+
xWrapperEl.style.width = "".concat(el.clientWidth - osbWidth, "px");
|
|
260
|
+
}
|
|
261
|
+
if (xLeftCornerEl) {
|
|
262
|
+
xLeftCornerEl.style.width = scrollbarXToTop ? "".concat(osbWidth, "px") : '';
|
|
263
|
+
xLeftCornerEl.style.display = scrollbarXToTop ? osbHeight ? 'block' : '' : '';
|
|
264
|
+
}
|
|
265
|
+
if (xRightCornerEl) {
|
|
266
|
+
xRightCornerEl.style.width = scrollbarXToTop ? '' : "".concat(osbWidth, "px");
|
|
267
|
+
xRightCornerEl.style.display = scrollbarXToTop ? '' : osbHeight ? 'block' : '';
|
|
268
|
+
}
|
|
269
|
+
var scrollYVirtualEl = $xeGanttView.$refs.refScrollYVirtualElem;
|
|
270
|
+
if (scrollYVirtualEl) {
|
|
271
|
+
scrollYVirtualEl.style.width = "".concat(osbWidth, "px");
|
|
272
|
+
scrollYVirtualEl.style.height = "".concat(tbHeight + tHeaderHeight + tFooterHeight, "px");
|
|
273
|
+
scrollYVirtualEl.style.visibility = 'visible';
|
|
274
|
+
}
|
|
275
|
+
var yTopCornerEl = $xeGanttView.$refs.refScrollYTopCornerElem;
|
|
276
|
+
if (yTopCornerEl) {
|
|
277
|
+
yTopCornerEl.style.height = "".concat(tHeaderHeight, "px");
|
|
278
|
+
yTopCornerEl.style.display = tHeaderHeight ? 'block' : '';
|
|
279
|
+
}
|
|
280
|
+
var yWrapperEl = $xeGanttView.$refs.refScrollYWrapperElem;
|
|
281
|
+
if (yWrapperEl) {
|
|
282
|
+
yWrapperEl.style.height = "".concat(tbHeight, "px");
|
|
283
|
+
yWrapperEl.style.top = "".concat(tHeaderHeight, "px");
|
|
284
|
+
}
|
|
285
|
+
var yBottomCornerEl = $xeGanttView.$refs.refScrollYBottomCornerElem;
|
|
286
|
+
if (yBottomCornerEl) {
|
|
287
|
+
yBottomCornerEl.style.height = "".concat(tFooterHeight, "px");
|
|
288
|
+
yBottomCornerEl.style.top = "".concat(tHeaderHeight + tbHeight, "px");
|
|
289
|
+
yBottomCornerEl.style.display = tFooterHeight ? 'block' : '';
|
|
290
|
+
}
|
|
291
|
+
var colInfoElem = $xeGanttView.$refs.refColInfoElem;
|
|
292
|
+
if (colInfoElem) {
|
|
293
|
+
reactData.viewCellWidth = colInfoElem.clientWidth || 40;
|
|
294
|
+
}
|
|
295
|
+
var viewTableWidth = reactData.viewCellWidth * tableColumn.length;
|
|
296
|
+
if (bodyScrollElem) {
|
|
297
|
+
var viewWidth = bodyScrollElem.clientWidth;
|
|
298
|
+
var remainWidth = viewWidth - viewTableWidth;
|
|
299
|
+
if (remainWidth > 0) {
|
|
300
|
+
reactData.viewCellWidth += Math.floor(remainWidth / tableColumn.length);
|
|
301
|
+
viewTableWidth = viewWidth;
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
var headerTableElem = (0, _util.getRefElem)(elemStore['main-header-table']);
|
|
305
|
+
var bodyTableElem = (0, _util.getRefElem)(elemStore['main-body-table']);
|
|
306
|
+
if (headerTableElem) {
|
|
307
|
+
headerTableElem.style.width = "".concat(viewTableWidth, "px");
|
|
308
|
+
}
|
|
309
|
+
if (bodyTableElem) {
|
|
310
|
+
bodyTableElem.style.width = "".concat(viewTableWidth, "px");
|
|
311
|
+
}
|
|
312
|
+
reactData.scrollXWidth = viewTableWidth;
|
|
313
|
+
return updateChart($xeGanttView);
|
|
314
|
+
}
|
|
315
|
+
function _handleLazyRecalculate($xeGanttView) {
|
|
316
|
+
calcScrollbar($xeGanttView);
|
|
317
|
+
updateStyle($xeGanttView);
|
|
318
|
+
return $xeGanttView.$nextTick();
|
|
319
|
+
}
|
|
320
|
+
function _updateScrollXSpace($xeGanttView) {
|
|
321
|
+
var reactData = $xeGanttView.reactData;
|
|
322
|
+
var internalData = $xeGanttView.internalData;
|
|
323
|
+
var scrollXLoad = reactData.scrollXLoad,
|
|
324
|
+
scrollXWidth = reactData.scrollXWidth;
|
|
325
|
+
var elemStore = internalData.elemStore;
|
|
326
|
+
var bodyScrollElem = (0, _util.getRefElem)(elemStore['main-body-scroll']);
|
|
327
|
+
var bodyTableElem = (0, _util.getRefElem)(elemStore['main-body-table']);
|
|
328
|
+
var xSpaceLeft = 0;
|
|
329
|
+
var clientWidth = 0;
|
|
330
|
+
if (bodyScrollElem) {
|
|
331
|
+
clientWidth = bodyScrollElem.clientWidth;
|
|
332
|
+
}
|
|
333
|
+
// 虚拟渲染
|
|
334
|
+
var isScrollXBig = false;
|
|
335
|
+
var ySpaceWidth = scrollXWidth;
|
|
336
|
+
if (scrollXWidth > maxXWidth) {
|
|
337
|
+
// 触右
|
|
338
|
+
if (bodyScrollElem && bodyTableElem && bodyScrollElem.scrollLeft + clientWidth >= maxXWidth) {
|
|
339
|
+
xSpaceLeft = maxXWidth - bodyTableElem.clientWidth;
|
|
340
|
+
} else {
|
|
341
|
+
xSpaceLeft = (maxXWidth - clientWidth) * (xSpaceLeft / (scrollXWidth - clientWidth));
|
|
342
|
+
}
|
|
343
|
+
ySpaceWidth = maxXWidth;
|
|
344
|
+
isScrollXBig = true;
|
|
345
|
+
}
|
|
346
|
+
if (bodyTableElem) {
|
|
347
|
+
bodyTableElem.style.transform = "translate(".concat(xSpaceLeft, "px, ").concat(reactData.scrollYTop || 0, "px)");
|
|
348
|
+
}
|
|
349
|
+
var layoutList = ['header', 'body', 'footer'];
|
|
350
|
+
layoutList.forEach(function (layout) {
|
|
351
|
+
var xSpaceElem = (0, _util.getRefElem)(elemStore["main-".concat(layout, "-xSpace")]);
|
|
352
|
+
if (xSpaceElem) {
|
|
353
|
+
xSpaceElem.style.width = scrollXLoad ? "".concat(ySpaceWidth, "px") : '';
|
|
354
|
+
}
|
|
355
|
+
});
|
|
356
|
+
reactData.scrollXLeft = xSpaceLeft;
|
|
357
|
+
reactData.scrollXWidth = ySpaceWidth;
|
|
358
|
+
reactData.isScrollXBig = isScrollXBig;
|
|
359
|
+
var scrollXSpaceEl = $xeGanttView.$refs.refScrollXSpaceElem;
|
|
360
|
+
if (scrollXSpaceEl) {
|
|
361
|
+
scrollXSpaceEl.style.width = "".concat(ySpaceWidth, "px");
|
|
362
|
+
}
|
|
363
|
+
calcScrollbar($xeGanttView);
|
|
364
|
+
return $xeGanttView.$nextTick().then(function () {
|
|
365
|
+
updateStyle($xeGanttView);
|
|
366
|
+
});
|
|
367
|
+
}
|
|
368
|
+
function _updateScrollYSpace($xeGanttView) {
|
|
369
|
+
var reactData = $xeGanttView.reactData;
|
|
370
|
+
var internalData = $xeGanttView.internalData;
|
|
371
|
+
var scrollYLoad = reactData.scrollYLoad,
|
|
372
|
+
overflowY = reactData.overflowY;
|
|
373
|
+
var elemStore = internalData.elemStore;
|
|
374
|
+
var $xeTable = internalData.xeTable;
|
|
375
|
+
var bodyScrollElem = (0, _util.getRefElem)(elemStore['main-body-scroll']);
|
|
376
|
+
var bodyTableElem = (0, _util.getRefElem)(elemStore['main-body-table']);
|
|
377
|
+
var ySpaceTop = 0;
|
|
378
|
+
var scrollYHeight = 0;
|
|
379
|
+
var isScrollYBig = false;
|
|
380
|
+
if ($xeTable) {
|
|
381
|
+
var tableReactData = $xeTable;
|
|
382
|
+
ySpaceTop = tableReactData.scrollYTop;
|
|
383
|
+
scrollYHeight = tableReactData.scrollYHeight;
|
|
384
|
+
isScrollYBig = tableReactData.isScrollYBig;
|
|
385
|
+
}
|
|
386
|
+
var ySpaceHeight = scrollYHeight;
|
|
387
|
+
var scrollYTop = ySpaceTop;
|
|
388
|
+
var clientHeight = 0;
|
|
389
|
+
if (bodyScrollElem) {
|
|
390
|
+
clientHeight = bodyScrollElem.clientHeight;
|
|
391
|
+
}
|
|
392
|
+
if (isScrollYBig) {
|
|
393
|
+
// 触底
|
|
394
|
+
if (bodyScrollElem && bodyTableElem && bodyScrollElem.scrollTop + clientHeight >= maxYHeight) {
|
|
395
|
+
scrollYTop = maxYHeight - bodyTableElem.clientHeight;
|
|
396
|
+
} else {
|
|
397
|
+
scrollYTop = (maxYHeight - clientHeight) * (ySpaceTop / (scrollYHeight - clientHeight));
|
|
398
|
+
}
|
|
399
|
+
ySpaceHeight = maxYHeight;
|
|
400
|
+
}
|
|
401
|
+
if (!(scrollYLoad && overflowY)) {
|
|
402
|
+
scrollYTop = 0;
|
|
403
|
+
}
|
|
404
|
+
if (bodyTableElem) {
|
|
405
|
+
bodyTableElem.style.transform = "translate(".concat(reactData.scrollXLeft || 0, "px, ").concat(scrollYTop, "px)");
|
|
406
|
+
}
|
|
407
|
+
var layoutList = ['header', 'body', 'footer'];
|
|
408
|
+
layoutList.forEach(function (layout) {
|
|
409
|
+
var ySpaceElem = (0, _util.getRefElem)(elemStore["main-".concat(layout, "-ySpace")]);
|
|
410
|
+
if (ySpaceElem) {
|
|
411
|
+
ySpaceElem.style.height = ySpaceHeight ? "".concat(ySpaceHeight, "px") : '';
|
|
412
|
+
}
|
|
413
|
+
});
|
|
414
|
+
var scrollYSpaceEl = $xeGanttView.$refs.refScrollYSpaceElem;
|
|
415
|
+
if (scrollYSpaceEl) {
|
|
416
|
+
scrollYSpaceEl.style.height = ySpaceHeight ? "".concat(ySpaceHeight, "px") : '';
|
|
417
|
+
}
|
|
418
|
+
reactData.scrollYTop = scrollYTop;
|
|
419
|
+
reactData.scrollYHeight = scrollYHeight;
|
|
420
|
+
reactData.isScrollYBig = isScrollYBig;
|
|
421
|
+
calcScrollbar($xeGanttView);
|
|
422
|
+
return $xeGanttView.$nextTick().then(function () {
|
|
423
|
+
updateStyle($xeGanttView);
|
|
424
|
+
});
|
|
425
|
+
}
|
|
426
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
427
|
+
function checkLastSyncScroll($xeGanttView, isRollX, isRollY) {
|
|
428
|
+
var reactData = $xeGanttView.reactData;
|
|
429
|
+
var internalData = $xeGanttView.internalData;
|
|
430
|
+
var lcsTimeout = internalData.lcsTimeout;
|
|
431
|
+
reactData.lazScrollLoading = true;
|
|
432
|
+
if (lcsTimeout) {
|
|
433
|
+
clearTimeout(lcsTimeout);
|
|
434
|
+
}
|
|
435
|
+
internalData.lcsTimeout = setTimeout(function () {
|
|
436
|
+
internalData.lcsRunTime = Date.now();
|
|
437
|
+
internalData.lcsTimeout = undefined;
|
|
438
|
+
internalData.intoRunScroll = false;
|
|
439
|
+
internalData.inVirtualScroll = false;
|
|
440
|
+
internalData.inWheelScroll = false;
|
|
441
|
+
internalData.inHeaderScroll = false;
|
|
442
|
+
internalData.inBodyScroll = false;
|
|
443
|
+
internalData.inFooterScroll = false;
|
|
444
|
+
reactData.lazScrollLoading = false;
|
|
445
|
+
}, 200);
|
|
446
|
+
}
|
|
447
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
448
|
+
function handleScrollEvent($xeGanttView, evnt, isRollY, isRollX, scrollTop, scrollLeft) {
|
|
449
|
+
checkLastSyncScroll($xeGanttView, isRollX, isRollY);
|
|
450
|
+
}
|
|
451
|
+
/**
|
|
452
|
+
* 同步表格滚动
|
|
453
|
+
*/
|
|
454
|
+
function syncTableScrollTop($xeGanttView, scrollTop) {
|
|
455
|
+
var internalData = $xeGanttView.internalData;
|
|
456
|
+
var $xeTable = internalData.xeTable;
|
|
457
|
+
if ($xeTable) {
|
|
458
|
+
var tableInternalData = $xeTable;
|
|
459
|
+
var tableElemStore = tableInternalData.elemStore;
|
|
460
|
+
var tableBodyScrollElem = (0, _util.getRefElem)(tableElemStore['main-body-scroll']);
|
|
461
|
+
if (tableBodyScrollElem) {
|
|
462
|
+
tableBodyScrollElem.scrollTop = scrollTop;
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
467
|
+
name: 'VxeGanttView',
|
|
468
|
+
inject: {
|
|
469
|
+
$xeGantt: {
|
|
470
|
+
default: null
|
|
471
|
+
}
|
|
472
|
+
},
|
|
473
|
+
provide: function provide() {
|
|
474
|
+
var $xeGanttView = this;
|
|
475
|
+
return {
|
|
476
|
+
$xeGanttView: $xeGanttView
|
|
477
|
+
};
|
|
478
|
+
},
|
|
479
|
+
props: {},
|
|
480
|
+
data: function data() {
|
|
481
|
+
var xID = _xeUtils.default.uniqueId();
|
|
482
|
+
var reactData = {
|
|
483
|
+
// 是否启用了横向 X 可视渲染方式加载
|
|
484
|
+
scrollXLoad: false,
|
|
485
|
+
// 是否启用了纵向 Y 可视渲染方式加载
|
|
486
|
+
scrollYLoad: false,
|
|
487
|
+
// 是否存在纵向滚动条
|
|
488
|
+
overflowY: false,
|
|
489
|
+
// 是否存在横向滚动条
|
|
490
|
+
overflowX: false,
|
|
491
|
+
// 纵向滚动条的宽度
|
|
492
|
+
scrollbarWidth: 0,
|
|
493
|
+
// 横向滚动条的高度
|
|
494
|
+
scrollbarHeight: 0,
|
|
495
|
+
lazScrollLoading: false,
|
|
496
|
+
scrollVMLoading: false,
|
|
497
|
+
scrollYHeight: 0,
|
|
498
|
+
scrollYTop: 0,
|
|
499
|
+
isScrollYBig: false,
|
|
500
|
+
scrollXLeft: 0,
|
|
501
|
+
scrollXWidth: 0,
|
|
502
|
+
isScrollXBig: false,
|
|
503
|
+
minViewDate: null,
|
|
504
|
+
maxViewDate: null,
|
|
505
|
+
tableData: [],
|
|
506
|
+
tableColumn: [],
|
|
507
|
+
headerGroups: [],
|
|
508
|
+
viewCellWidth: 40,
|
|
509
|
+
rowHeightStore: {
|
|
510
|
+
large: 52,
|
|
511
|
+
default: 48,
|
|
512
|
+
medium: 44,
|
|
513
|
+
small: 40,
|
|
514
|
+
mini: 36
|
|
515
|
+
}
|
|
516
|
+
};
|
|
517
|
+
var internalData = createInternalData();
|
|
518
|
+
return {
|
|
519
|
+
xID: xID,
|
|
520
|
+
reactData: reactData,
|
|
521
|
+
internalData: internalData
|
|
522
|
+
};
|
|
523
|
+
},
|
|
524
|
+
computed: Object.assign({}, {}),
|
|
525
|
+
methods: {
|
|
526
|
+
//
|
|
527
|
+
// Method
|
|
528
|
+
//
|
|
529
|
+
refreshData: function refreshData() {
|
|
530
|
+
var $xeGanttView = this;
|
|
531
|
+
handleUpdateData($xeGanttView);
|
|
532
|
+
return _handleLazyRecalculate($xeGanttView);
|
|
533
|
+
},
|
|
534
|
+
updateViewData: function updateViewData() {
|
|
535
|
+
var $xeGanttView = this;
|
|
536
|
+
var reactData = $xeGanttView.reactData;
|
|
537
|
+
var internalData = $xeGanttView.internalData;
|
|
538
|
+
var $xeTable = internalData.xeTable;
|
|
539
|
+
if ($xeTable) {
|
|
540
|
+
var tableReactData = $xeTable;
|
|
541
|
+
var tableData = tableReactData.tableData;
|
|
542
|
+
reactData.tableData = tableData;
|
|
543
|
+
}
|
|
544
|
+
return $xeGanttView.$nextTick();
|
|
545
|
+
},
|
|
546
|
+
connectUpdate: function connectUpdate(_ref) {
|
|
547
|
+
var $table = _ref.$table;
|
|
548
|
+
var $xeGanttView = this;
|
|
549
|
+
var internalData = $xeGanttView.internalData;
|
|
550
|
+
if ($table) {
|
|
551
|
+
internalData.xeTable = $table;
|
|
552
|
+
}
|
|
553
|
+
return $xeGanttView.$nextTick();
|
|
554
|
+
},
|
|
555
|
+
handleUpdateStyle: function handleUpdateStyle() {
|
|
556
|
+
var $xeGanttView = this;
|
|
557
|
+
return updateStyle($xeGanttView);
|
|
558
|
+
},
|
|
559
|
+
handleLazyRecalculate: function handleLazyRecalculate() {
|
|
560
|
+
var $xeGanttView = this;
|
|
561
|
+
return _handleLazyRecalculate($xeGanttView);
|
|
562
|
+
},
|
|
563
|
+
triggerHeaderScrollEvent: function triggerHeaderScrollEvent(evnt) {
|
|
564
|
+
var $xeGanttView = this;
|
|
565
|
+
var internalData = $xeGanttView.internalData;
|
|
566
|
+
var elemStore = internalData.elemStore,
|
|
567
|
+
inVirtualScroll = internalData.inVirtualScroll,
|
|
568
|
+
inBodyScroll = internalData.inBodyScroll,
|
|
569
|
+
inFooterScroll = internalData.inFooterScroll;
|
|
570
|
+
if (inVirtualScroll) {
|
|
571
|
+
return;
|
|
572
|
+
}
|
|
573
|
+
if (inBodyScroll || inFooterScroll) {
|
|
574
|
+
return;
|
|
575
|
+
}
|
|
576
|
+
var wrapperEl = evnt.currentTarget;
|
|
577
|
+
var bodyScrollElem = (0, _util.getRefElem)(elemStore['main-body-scroll']);
|
|
578
|
+
var xHandleEl = $xeGanttView.$refs.refScrollXHandleElem;
|
|
579
|
+
if (bodyScrollElem && wrapperEl) {
|
|
580
|
+
var isRollX = true;
|
|
581
|
+
var isRollY = false;
|
|
582
|
+
var currLeftNum = wrapperEl.scrollLeft;
|
|
583
|
+
internalData.inHeaderScroll = true;
|
|
584
|
+
(0, _dom.setScrollLeft)(xHandleEl, currLeftNum);
|
|
585
|
+
(0, _dom.setScrollLeft)(bodyScrollElem, currLeftNum);
|
|
586
|
+
handleScrollEvent($xeGanttView, evnt, isRollY, isRollX, wrapperEl.scrollTop, currLeftNum);
|
|
587
|
+
}
|
|
588
|
+
},
|
|
589
|
+
triggerBodyScrollEvent: function triggerBodyScrollEvent(evnt) {
|
|
590
|
+
var $xeGanttView = this;
|
|
591
|
+
var internalData = $xeGanttView.internalData;
|
|
592
|
+
var elemStore = internalData.elemStore,
|
|
593
|
+
inVirtualScroll = internalData.inVirtualScroll,
|
|
594
|
+
inHeaderScroll = internalData.inHeaderScroll,
|
|
595
|
+
inFooterScroll = internalData.inFooterScroll;
|
|
596
|
+
if (inVirtualScroll) {
|
|
597
|
+
return;
|
|
598
|
+
}
|
|
599
|
+
if (inHeaderScroll || inFooterScroll) {
|
|
600
|
+
return;
|
|
601
|
+
}
|
|
602
|
+
var wrapperEl = evnt.currentTarget;
|
|
603
|
+
var headerScrollElem = (0, _util.getRefElem)(elemStore['main-header-scroll']);
|
|
604
|
+
var xHandleEl = $xeGanttView.$refs.refScrollXHandleElem;
|
|
605
|
+
var yHandleEl = $xeGanttView.$refs.refScrollYHandleElem;
|
|
606
|
+
if (headerScrollElem && wrapperEl) {
|
|
607
|
+
var isRollX = true;
|
|
608
|
+
var isRollY = true;
|
|
609
|
+
var currLeftNum = wrapperEl.scrollLeft;
|
|
610
|
+
var currTopNum = wrapperEl.scrollTop;
|
|
611
|
+
internalData.inBodyScroll = true;
|
|
612
|
+
(0, _dom.setScrollLeft)(xHandleEl, currLeftNum);
|
|
613
|
+
(0, _dom.setScrollLeft)(headerScrollElem, currLeftNum);
|
|
614
|
+
(0, _dom.setScrollTop)(yHandleEl, currTopNum);
|
|
615
|
+
syncTableScrollTop($xeGanttView, currTopNum);
|
|
616
|
+
handleScrollEvent($xeGanttView, evnt, isRollY, isRollX, wrapperEl.scrollTop, currLeftNum);
|
|
617
|
+
}
|
|
618
|
+
},
|
|
619
|
+
triggerFooterScrollEvent: function triggerFooterScrollEvent(evnt) {
|
|
620
|
+
var $xeGanttView = this;
|
|
621
|
+
var internalData = $xeGanttView.internalData;
|
|
622
|
+
var inVirtualScroll = internalData.inVirtualScroll,
|
|
623
|
+
inHeaderScroll = internalData.inHeaderScroll,
|
|
624
|
+
inBodyScroll = internalData.inBodyScroll;
|
|
625
|
+
if (inVirtualScroll) {
|
|
626
|
+
return;
|
|
627
|
+
}
|
|
628
|
+
if (inHeaderScroll || inBodyScroll) {
|
|
629
|
+
return;
|
|
630
|
+
}
|
|
631
|
+
var wrapperEl = evnt.currentTarget;
|
|
632
|
+
if (wrapperEl) {
|
|
633
|
+
var isRollX = true;
|
|
634
|
+
var isRollY = false;
|
|
635
|
+
var currLeftNum = wrapperEl.scrollLeft;
|
|
636
|
+
handleScrollEvent($xeGanttView, evnt, isRollY, isRollX, wrapperEl.scrollTop, currLeftNum);
|
|
637
|
+
}
|
|
638
|
+
},
|
|
639
|
+
triggerVirtualScrollXEvent: function triggerVirtualScrollXEvent(evnt) {
|
|
640
|
+
var $xeGanttView = this;
|
|
641
|
+
var internalData = $xeGanttView.internalData;
|
|
642
|
+
var elemStore = internalData.elemStore,
|
|
643
|
+
inHeaderScroll = internalData.inHeaderScroll,
|
|
644
|
+
inBodyScroll = internalData.inBodyScroll;
|
|
645
|
+
if (inHeaderScroll || inBodyScroll) {
|
|
646
|
+
return;
|
|
647
|
+
}
|
|
648
|
+
var wrapperEl = evnt.currentTarget;
|
|
649
|
+
var headerScrollElem = (0, _util.getRefElem)(elemStore['main-header-scroll']);
|
|
650
|
+
var bodyScrollElem = (0, _util.getRefElem)(elemStore['main-body-scroll']);
|
|
651
|
+
if (wrapperEl) {
|
|
652
|
+
var isRollY = false;
|
|
653
|
+
var isRollX = true;
|
|
654
|
+
var currLeftNum = wrapperEl.scrollLeft;
|
|
655
|
+
internalData.inVirtualScroll = true;
|
|
656
|
+
(0, _dom.setScrollLeft)(headerScrollElem, currLeftNum);
|
|
657
|
+
(0, _dom.setScrollLeft)(bodyScrollElem, currLeftNum);
|
|
658
|
+
handleScrollEvent($xeGanttView, evnt, isRollY, isRollX, wrapperEl.scrollTop, currLeftNum);
|
|
659
|
+
}
|
|
660
|
+
},
|
|
661
|
+
triggerVirtualScrollYEvent: function triggerVirtualScrollYEvent(evnt) {
|
|
662
|
+
var $xeGanttView = this;
|
|
663
|
+
var internalData = $xeGanttView.internalData;
|
|
664
|
+
var elemStore = internalData.elemStore,
|
|
665
|
+
inHeaderScroll = internalData.inHeaderScroll,
|
|
666
|
+
inBodyScroll = internalData.inBodyScroll;
|
|
667
|
+
if (inHeaderScroll || inBodyScroll) {
|
|
668
|
+
return;
|
|
669
|
+
}
|
|
670
|
+
var wrapperEl = evnt.currentTarget;
|
|
671
|
+
var bodyScrollElem = (0, _util.getRefElem)(elemStore['main-body-scroll']);
|
|
672
|
+
if (wrapperEl) {
|
|
673
|
+
var isRollY = true;
|
|
674
|
+
var isRollX = false;
|
|
675
|
+
var currTopNum = wrapperEl.scrollTop;
|
|
676
|
+
internalData.inVirtualScroll = true;
|
|
677
|
+
(0, _dom.setScrollTop)(bodyScrollElem, currTopNum);
|
|
678
|
+
syncTableScrollTop($xeGanttView, currTopNum);
|
|
679
|
+
handleScrollEvent($xeGanttView, evnt, isRollY, isRollX, currTopNum, wrapperEl.scrollLeft);
|
|
680
|
+
}
|
|
681
|
+
},
|
|
682
|
+
updateScrollXSpace: function updateScrollXSpace() {
|
|
683
|
+
var $xeGanttView = this;
|
|
684
|
+
return _updateScrollXSpace($xeGanttView);
|
|
685
|
+
},
|
|
686
|
+
updateScrollYSpace: function updateScrollYSpace() {
|
|
687
|
+
var $xeGanttView = this;
|
|
688
|
+
return _updateScrollYSpace($xeGanttView);
|
|
689
|
+
},
|
|
690
|
+
handleGlobalResizeEvent: function handleGlobalResizeEvent() {
|
|
691
|
+
var $xeGanttView = this;
|
|
692
|
+
_handleLazyRecalculate($xeGanttView);
|
|
693
|
+
},
|
|
694
|
+
//
|
|
695
|
+
// Render
|
|
696
|
+
//
|
|
697
|
+
renderScrollX: function renderScrollX(h) {
|
|
698
|
+
var $xeGanttView = this;
|
|
699
|
+
return h('div', {
|
|
700
|
+
key: 'vsx',
|
|
701
|
+
ref: 'refScrollXVirtualElem',
|
|
702
|
+
class: 'vxe-gantt-view--scroll-x-virtual'
|
|
703
|
+
}, [h('div', {
|
|
704
|
+
ref: 'refScrollXLeftCornerElem',
|
|
705
|
+
class: 'vxe-gantt-view--scroll-x-left-corner'
|
|
706
|
+
}), h('div', {
|
|
707
|
+
ref: 'refScrollXWrapperElem',
|
|
708
|
+
class: 'vxe-gantt-view--scroll-x-wrapper'
|
|
709
|
+
}, [h('div', {
|
|
710
|
+
ref: 'refScrollXHandleElem',
|
|
711
|
+
class: 'vxe-gantt-view--scroll-x-handle',
|
|
712
|
+
on: {
|
|
713
|
+
scroll: $xeGanttView.triggerVirtualScrollXEvent
|
|
714
|
+
}
|
|
715
|
+
}, [h('div', {
|
|
716
|
+
ref: 'refScrollXSpaceElem',
|
|
717
|
+
class: 'vxe-gantt-view--scroll-x-space'
|
|
718
|
+
})])]), h('div', {
|
|
719
|
+
ref: 'refScrollXRightCornerElem',
|
|
720
|
+
class: 'vxe-gantt-view--scroll-x-right-corner'
|
|
721
|
+
})]);
|
|
722
|
+
},
|
|
723
|
+
renderScrollY: function renderScrollY(h) {
|
|
724
|
+
var $xeGanttView = this;
|
|
725
|
+
return h('div', {
|
|
726
|
+
ref: 'refScrollYVirtualElem',
|
|
727
|
+
class: 'vxe-gantt-view--scroll-y-virtual'
|
|
728
|
+
}, [h('div', {
|
|
729
|
+
ref: 'refScrollYTopCornerElem',
|
|
730
|
+
class: 'vxe-gantt-view--scroll-y-top-corner'
|
|
731
|
+
}), h('div', {
|
|
732
|
+
ref: 'refScrollYWrapperElem',
|
|
733
|
+
class: 'vxe-gantt-view--scroll-y-wrapper'
|
|
734
|
+
}, [h('div', {
|
|
735
|
+
ref: 'refScrollYHandleElem',
|
|
736
|
+
class: 'vxe-gantt-view--scroll-y-handle',
|
|
737
|
+
on: {
|
|
738
|
+
scroll: $xeGanttView.triggerVirtualScrollYEvent
|
|
739
|
+
}
|
|
740
|
+
}, [h('div', {
|
|
741
|
+
ref: 'refScrollYSpaceElem',
|
|
742
|
+
class: 'vxe-gantt-view--scroll-y-space'
|
|
743
|
+
})])]), h('div', {
|
|
744
|
+
ref: 'refScrollYBottomCornerElem',
|
|
745
|
+
class: 'vxe-gantt-view--scroll-y-bottom-corner'
|
|
746
|
+
})]);
|
|
747
|
+
},
|
|
748
|
+
renderViewport: function renderViewport(h) {
|
|
749
|
+
return h('div', {
|
|
750
|
+
class: 'vxe-gantt-view--viewport-wrapper'
|
|
751
|
+
}, [h(_ganttHeader.default), h(_ganttBody.default)]);
|
|
752
|
+
},
|
|
753
|
+
renderBody: function renderBody(h) {
|
|
754
|
+
var $xeGanttView = this;
|
|
755
|
+
var $xeGantt = $xeGanttView.$xeGantt;
|
|
756
|
+
var scrollbarYToLeft = $xeGantt.computeScrollbarYToLeft;
|
|
757
|
+
return h('div', {
|
|
758
|
+
class: 'vxe-gantt-view--layout-wrapper'
|
|
759
|
+
}, scrollbarYToLeft ? [$xeGanttView.renderScrollY(h), $xeGanttView.renderViewport(h)] : [$xeGanttView.renderViewport(h), $xeGanttView.renderScrollY(h)]);
|
|
760
|
+
},
|
|
761
|
+
renderVN: function renderVN(h) {
|
|
762
|
+
var $xeGanttView = this;
|
|
763
|
+
var $xeGantt = $xeGanttView.$xeGantt;
|
|
764
|
+
var reactData = $xeGanttView.reactData;
|
|
765
|
+
var overflowX = reactData.overflowX,
|
|
766
|
+
overflowY = reactData.overflowY,
|
|
767
|
+
scrollXLoad = reactData.scrollXLoad,
|
|
768
|
+
scrollYLoad = reactData.scrollYLoad;
|
|
769
|
+
var taskViewOpts = $xeGantt.computeTaskViewOpts;
|
|
770
|
+
var scrollbarXToTop = $xeGantt.computeScrollbarXToTop;
|
|
771
|
+
return h('div', {
|
|
772
|
+
ref: 'refElem',
|
|
773
|
+
class: ['vxe-gantt-view', "mode--".concat(taskViewOpts.mode || 'day'), {
|
|
774
|
+
'is--scroll-y': overflowY,
|
|
775
|
+
'is--scroll-x': overflowX,
|
|
776
|
+
'is--virtual-x': scrollXLoad,
|
|
777
|
+
'is--virtual-y': scrollYLoad
|
|
778
|
+
}]
|
|
779
|
+
}, [h('div', {
|
|
780
|
+
class: 'vxe-gantt-view--render-wrapper'
|
|
781
|
+
}, scrollbarXToTop ? [$xeGanttView.renderScrollX(h), $xeGanttView.renderBody(h)] : [$xeGanttView.renderBody(h), $xeGanttView.renderScrollX(h)]), h('div', {
|
|
782
|
+
class: 'vxe-gantt-view--render-vars'
|
|
783
|
+
}, [h('div', {
|
|
784
|
+
ref: 'refColInfoElem',
|
|
785
|
+
class: 'vxe-gantt-view--column-info'
|
|
786
|
+
})])]);
|
|
787
|
+
}
|
|
788
|
+
},
|
|
789
|
+
watch: {
|
|
790
|
+
'reactData.tableData': function reactDataTableData() {
|
|
791
|
+
var $xeGanttView = this;
|
|
792
|
+
handleUpdateData($xeGanttView);
|
|
793
|
+
}
|
|
794
|
+
},
|
|
795
|
+
mounted: function mounted() {
|
|
796
|
+
var $xeGanttView = this;
|
|
797
|
+
globalEvents.on($xeGanttView, 'resize', $xeGanttView.handleGlobalResizeEvent);
|
|
798
|
+
},
|
|
799
|
+
beforeDestroy: function beforeDestroy() {
|
|
800
|
+
var $xeGanttView = this;
|
|
801
|
+
var internalData = $xeGanttView.internalData;
|
|
802
|
+
globalEvents.off($xeGanttView, 'keydown');
|
|
803
|
+
_xeUtils.default.assign(internalData, createInternalData());
|
|
804
|
+
},
|
|
805
|
+
render: function render(h) {
|
|
806
|
+
return this.renderVN(h);
|
|
807
|
+
}
|
|
808
|
+
});
|