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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) 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 +26 -5
  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/vxe-gantt/style.css +17 -0
  12. package/es/vxe-gantt/style.min.css +1 -1
  13. package/lib/gantt/src/gantt-body.js +98 -40
  14. package/lib/gantt/src/gantt-body.min.js +1 -1
  15. package/lib/gantt/src/gantt-chart.js +95 -62
  16. package/lib/gantt/src/gantt-chart.min.js +1 -1
  17. package/lib/gantt/src/gantt-view.js +72 -6
  18. package/lib/gantt/src/gantt-view.min.js +1 -1
  19. package/lib/gantt/src/gantt.js +26 -5
  20. package/lib/gantt/src/gantt.min.js +1 -1
  21. package/lib/gantt/style/style.css +17 -0
  22. package/lib/gantt/style/style.min.css +1 -1
  23. package/lib/index.umd.js +295 -121
  24. package/lib/index.umd.min.js +1 -1
  25. package/lib/style.css +1 -1
  26. package/lib/style.min.css +1 -1
  27. package/lib/ui/index.js +13 -2
  28. package/lib/ui/index.min.js +1 -1
  29. package/lib/ui/src/log.js +1 -1
  30. package/lib/ui/src/log.min.js +1 -1
  31. package/lib/vxe-gantt/style/style.css +17 -0
  32. package/lib/vxe-gantt/style/style.min.css +1 -1
  33. package/package.json +4 -4
  34. package/packages/gantt/src/gantt-body.ts +85 -39
  35. package/packages/gantt/src/gantt-chart.ts +99 -66
  36. package/packages/gantt/src/gantt-view.ts +65 -7
  37. package/packages/gantt/src/gantt.ts +26 -5
  38. package/packages/ui/index.ts +9 -1
  39. package/styles/components/gantt-module/gantt-chart.scss +1 -0
  40. package/styles/components/gantt.scss +19 -0
@@ -20,47 +20,87 @@ export default defineVxeComponent({
20
20
  //
21
21
  // Render
22
22
  //
23
- renderRows(h) {
23
+ renderColumn(h, $xeTable, row, rowid, $rowIndex, column, $columnIndex) {
24
24
  const _vm = this;
25
25
  const $xeGantt = _vm.$xeGantt;
26
+ const tableInternalData = $xeTable;
27
+ const { fullAllDataRowIdData } = tableInternalData;
28
+ const cellOpts = $xeTable.computeCellOpts;
29
+ const rowOpts = $xeTable.computeRowOpts;
30
+ const defaultRowHeight = $xeTable.computeDefaultRowHeight;
31
+ const rowRest = fullAllDataRowIdData[rowid] || {};
32
+ const cellHeight = getCellRestHeight(rowRest, cellOpts, rowOpts, defaultRowHeight);
33
+ return h('td', {
34
+ key: $columnIndex,
35
+ class: 'vxe-gantt-view--body-column',
36
+ style: {
37
+ height: `${cellHeight}px`
38
+ },
39
+ on: {
40
+ click(evnt) {
41
+ $xeGantt.handleTaskCellClickEvent(evnt, { row, column });
42
+ },
43
+ dblclick(evnt) {
44
+ $xeGantt.handleTaskCellDblclickEvent(evnt, { row, column });
45
+ }
46
+ }
47
+ });
48
+ },
49
+ renderRows(h, $xeTable, tableData) {
50
+ const _vm = this;
26
51
  const $xeGanttView = _vm.$xeGanttView;
27
- const $xeTable = $xeGanttView.internalData.xeTable;
28
- const tableInternalData = ($xeTable ? $xeTable : {});
29
- const fullAllDataRowIdData = tableInternalData.fullAllDataRowIdData || {};
30
- let cellOpts = {};
31
- let rowOpts = {};
32
- let defaultRowHeight = 0;
33
- if ($xeTable) {
34
- cellOpts = $xeTable.computeCellOpts;
35
- rowOpts = $xeTable.computeRowOpts;
36
- defaultRowHeight = $xeTable.computeDefaultRowHeight;
37
- }
38
52
  const { reactData } = $xeGanttView;
39
- const { tableData, tableColumn } = reactData;
53
+ const tableProps = $xeTable;
54
+ const { treeConfig, stripe, highlightHoverRow } = tableProps;
55
+ const tableReactData = $xeTable;
56
+ const { treeExpandedFlag } = tableReactData;
57
+ const tableInternalData = $xeTable;
58
+ const { fullAllDataRowIdData, treeExpandedMaps } = tableInternalData;
59
+ const rowOpts = $xeTable.computeRowOpts;
60
+ const treeOpts = $xeTable.computeTreeOpts;
61
+ const { transform } = treeOpts;
62
+ const childrenField = treeOpts.children || treeOpts.childrenField;
63
+ const { tableColumn, scrollYLoad } = reactData;
40
64
  const trVNs = [];
41
- tableData.forEach((row, rIndex) => {
42
- const rowid = $xeTable ? $xeTable.getRowid(row) : '';
65
+ tableData.forEach((row, $rowIndex) => {
66
+ const rowid = $xeTable.getRowid(row);
43
67
  const rowRest = fullAllDataRowIdData[rowid] || {};
44
- const cellHeight = getCellRestHeight(rowRest, cellOpts, rowOpts, defaultRowHeight);
68
+ const trOns = {};
69
+ let rowIndex = $rowIndex;
70
+ let _rowIndex = -1;
71
+ if (rowRest) {
72
+ rowIndex = rowRest.index;
73
+ _rowIndex = rowRest._index;
74
+ }
75
+ // 当前行事件
76
+ if (rowOpts.isHover || highlightHoverRow) {
77
+ trOns.mouseenter = (evnt) => {
78
+ $xeTable.triggerHoverEvent(evnt, { row, rowIndex });
79
+ };
80
+ trOns.mouseleave = () => {
81
+ $xeTable.clearHoverRow();
82
+ };
83
+ }
45
84
  trVNs.push(h('tr', {
46
- key: rIndex
47
- }, tableColumn.map((column, cIndex) => {
48
- return h('td', {
49
- key: cIndex,
50
- class: 'vxe-gantt-view--body-column',
51
- style: {
52
- height: `${cellHeight}px`
53
- },
54
- on: {
55
- click(evnt) {
56
- $xeGantt.handleTaskCellClickEvent(evnt, { row });
57
- },
58
- dblclick(evnt) {
59
- $xeGantt.handleTaskCellDblclickEvent(evnt, { row });
60
- }
61
- }
62
- });
63
- })));
85
+ key: treeConfig ? rowid : $rowIndex,
86
+ class: ['vxe-gantt-view--body-row', {
87
+ 'row--stripe': stripe && (_rowIndex + 1) % 2 === 0
88
+ }],
89
+ attrs: {
90
+ rowid
91
+ },
92
+ on: trOns
93
+ }, tableColumn.map((column, $columnIndex) => _vm.renderColumn(h, $xeTable, row, rowid, $rowIndex, column, $columnIndex))));
94
+ let isExpandTree = false;
95
+ let rowChildren = [];
96
+ if (treeConfig && !scrollYLoad && !transform) {
97
+ rowChildren = row[childrenField];
98
+ isExpandTree = !!treeExpandedFlag && rowChildren && rowChildren.length > 0 && !!treeExpandedMaps[rowid];
99
+ }
100
+ // 如果是树形表格
101
+ if (isExpandTree) {
102
+ trVNs.push(..._vm.renderRows(h, $xeTable, rowChildren));
103
+ }
64
104
  });
65
105
  return trVNs;
66
106
  },
@@ -68,7 +108,8 @@ export default defineVxeComponent({
68
108
  const _vm = this;
69
109
  const $xeGanttView = _vm.$xeGanttView;
70
110
  const { reactData } = $xeGanttView;
71
- const { tableColumn, viewCellWidth } = reactData;
111
+ const $xeTable = $xeGanttView.internalData.xeTable;
112
+ const { tableData, tableColumn, viewCellWidth } = reactData;
72
113
  return h('div', {
73
114
  ref: 'refElem',
74
115
  class: 'vxe-gantt-view--body-wrapper'
@@ -100,7 +141,7 @@ export default defineVxeComponent({
100
141
  }
101
142
  });
102
143
  })),
103
- h('tbody', {}, _vm.renderRows(h))
144
+ h('tbody', {}, $xeTable ? _vm.renderRows(h, $xeTable, tableData) : [])
104
145
  ]),
105
146
  h(GanttViewChartComponent)
106
147
  ])
@@ -23,84 +23,111 @@ export default defineVxeComponent({
23
23
  //
24
24
  // Render
25
25
  //
26
- renderVN(h) {
26
+ renderTaskBar(h, $xeTable, row, rowid, $rowIndex) {
27
27
  const _vm = this;
28
28
  const $xeGantt = _vm.$xeGantt;
29
- const $xeGanttView = _vm.$xeGanttView;
30
- const $xeTable = $xeGanttView.internalData.xeTable;
31
- const tableInternalData = ($xeTable ? $xeTable : {});
32
- const fullAllDataRowIdData = tableInternalData.fullAllDataRowIdData || {};
33
- let cellOpts = {};
34
- let rowOpts = {};
35
- let defaultRowHeight = 0;
36
- if ($xeTable) {
37
- cellOpts = $xeTable.computeCellOpts;
38
- rowOpts = $xeTable.computeRowOpts;
39
- defaultRowHeight = $xeTable.computeDefaultRowHeight;
40
- }
41
- const { reactData } = $xeGanttView;
42
- const { tableData } = reactData;
29
+ const tableProps = $xeTable;
30
+ const { treeConfig } = tableProps;
31
+ const tableInternalData = $xeTable;
32
+ const { fullAllDataRowIdData } = tableInternalData;
33
+ const cellOpts = $xeTable.computeCellOpts;
34
+ const rowOpts = $xeTable.computeRowOpts;
35
+ const defaultRowHeight = $xeTable.computeDefaultRowHeight;
43
36
  const titleField = $xeGantt.computeTitleField;
44
37
  const progressField = $xeGantt.computeProgressField;
45
38
  const taskBarOpts = $xeGantt.computeTaskBarOpts;
46
39
  const { showProgress, showContent, contentMethod, barStyle } = taskBarOpts;
47
40
  const { round } = barStyle || {};
48
- const trVNs = [];
49
- tableData.forEach((row, rIndex) => {
50
- const rowid = $xeTable ? $xeTable.getRowid(row) : '';
51
- const rowRest = fullAllDataRowIdData[rowid] || {};
52
- const cellHeight = getCellRestHeight(rowRest, cellOpts, rowOpts, defaultRowHeight);
53
- let title = getStringValue(XEUtils.get(row, titleField));
54
- const progressValue = showProgress ? Math.min(100, Math.max(0, XEUtils.toNumber(XEUtils.get(row, progressField)))) : 0;
55
- if (contentMethod) {
56
- title = getStringValue(contentMethod({ row, title }));
41
+ const rowRest = fullAllDataRowIdData[rowid] || {};
42
+ const cellHeight = getCellRestHeight(rowRest, cellOpts, rowOpts, defaultRowHeight);
43
+ let title = getStringValue(XEUtils.get(row, titleField));
44
+ const progressValue = showProgress ? Math.min(100, Math.max(0, XEUtils.toNumber(XEUtils.get(row, progressField)))) : 0;
45
+ if (contentMethod) {
46
+ title = getStringValue(contentMethod({ row, title }));
47
+ }
48
+ return h('div', {
49
+ key: treeConfig ? rowid : $rowIndex,
50
+ attrs: {
51
+ rowid
52
+ },
53
+ class: ['vxe-gantt-view--chart-row', {
54
+ 'is--round': round
55
+ }],
56
+ style: {
57
+ height: `${cellHeight}px`
57
58
  }
58
- trVNs.push(h('div', {
59
- key: rIndex,
59
+ }, [
60
+ h('div', {
61
+ class: 'vxe-gantt-view--chart-bar',
60
62
  attrs: {
61
63
  rowid
62
64
  },
63
- class: ['vxe-gantt-view--chart-row', {
64
- 'is--round': round
65
- }],
66
- style: {
67
- height: `${cellHeight}px`
65
+ on: {
66
+ click(evnt) {
67
+ $xeGantt.handleTaskBarClickEvent(evnt, { row });
68
+ },
69
+ dblclick(evnt) {
70
+ $xeGantt.handleTaskBarDblclickEvent(evnt, { row });
71
+ }
68
72
  }
69
73
  }, [
70
- h('div', {
71
- class: 'vxe-gantt-view--chart-bar',
72
- attrs: {
73
- rowid
74
- },
75
- on: {
76
- click(evnt) {
77
- $xeGantt.handleTaskBarClickEvent(evnt, { row });
78
- },
79
- dblclick(evnt) {
80
- $xeGantt.handleTaskBarDblclickEvent(evnt, { row });
74
+ showProgress
75
+ ? h('div', {
76
+ class: 'vxe-gantt-view--chart-progress',
77
+ style: {
78
+ width: `${progressValue || 0}%`
81
79
  }
82
- }
83
- }, [
84
- showProgress
85
- ? h('div', {
86
- class: 'vxe-gantt-view--chart-progress',
87
- style: {
88
- width: `${progressValue || 0}%`
89
- }
90
- })
91
- : renderEmptyElement($xeGantt),
92
- showContent
93
- ? h('div', {
94
- class: 'vxe-gantt-view--chart-content'
95
- }, title)
96
- : renderEmptyElement($xeGantt)
97
- ])
98
- ]));
80
+ })
81
+ : renderEmptyElement($xeGantt),
82
+ showContent
83
+ ? h('div', {
84
+ class: 'vxe-gantt-view--chart-content'
85
+ }, title)
86
+ : renderEmptyElement($xeGantt)
87
+ ])
88
+ ]);
89
+ },
90
+ renderRows(h, $xeTable, tableData) {
91
+ const _vm = this;
92
+ const $xeGanttView = _vm.$xeGanttView;
93
+ const { reactData } = $xeGanttView;
94
+ const tableProps = $xeTable;
95
+ const { treeConfig } = tableProps;
96
+ const tableReactData = $xeTable;
97
+ const { treeExpandedFlag } = tableReactData;
98
+ const tableInternalData = $xeTable;
99
+ const { treeExpandedMaps } = tableInternalData;
100
+ const treeOpts = $xeTable.computeTreeOpts;
101
+ const { transform } = treeOpts;
102
+ const childrenField = treeOpts.children || treeOpts.childrenField;
103
+ const { scrollYLoad } = reactData;
104
+ const trVNs = [];
105
+ tableData.forEach((row, $rowIndex) => {
106
+ const rowid = $xeTable ? $xeTable.getRowid(row) : '';
107
+ trVNs.push(_vm.renderTaskBar(h, $xeTable, row, rowid, $rowIndex));
108
+ let isExpandTree = false;
109
+ let rowChildren = [];
110
+ if (treeConfig && !scrollYLoad && !transform) {
111
+ rowChildren = row[childrenField];
112
+ isExpandTree = !!treeExpandedFlag && rowChildren && rowChildren.length > 0 && !!treeExpandedMaps[rowid];
113
+ }
114
+ // 如果是树形表格
115
+ if (isExpandTree) {
116
+ trVNs.push(..._vm.renderRows(h, $xeTable, rowChildren));
117
+ }
99
118
  });
119
+ return trVNs;
120
+ },
121
+ renderVN(h) {
122
+ const _vm = this;
123
+ const $xeGanttView = _vm.$xeGanttView;
124
+ const { reactData } = $xeGanttView;
125
+ const $xeTable = $xeGanttView.internalData.xeTable;
126
+ const { tableData } = reactData;
100
127
  return h('div', {
101
128
  ref: 'refElem',
102
129
  class: 'vxe-gantt-view--chart-wrapper'
103
- }, trVNs);
130
+ }, $xeTable ? _vm.renderRows(h, $xeTable, tableData) : []);
104
131
  }
105
132
  },
106
133
  mounted() {
@@ -1,6 +1,6 @@
1
1
  import { defineVxeComponent } from '../../ui/src/comp';
2
2
  import { VxeUI } from '@vxe-ui/core';
3
- import { setScrollTop, setScrollLeft } from '../../ui/src/dom';
3
+ import { setScrollTop, setScrollLeft, removeClass, addClass } from '../../ui/src/dom';
4
4
  import { getRefElem } from './util';
5
5
  import XEUtils from 'xe-utils';
6
6
  import GanttViewHeaderComponent from './gantt-header';
@@ -41,6 +41,8 @@ function handleParseColumn($xeGanttView) {
41
41
  const $xeGantt = $xeGanttView.$xeGantt;
42
42
  const reactData = $xeGanttView.reactData;
43
43
  const internalData = $xeGanttView.internalData;
44
+ const ganttProps = $xeGantt;
45
+ const { treeConfig } = ganttProps;
44
46
  const { minViewDate, maxViewDate } = reactData;
45
47
  const taskViewOpts = $xeGantt.computeTaskViewOpts;
46
48
  const fullCols = [];
@@ -93,9 +95,12 @@ function handleParseColumn($xeGanttView) {
93
95
  const startField = $xeGantt.computeStartField;
94
96
  const endField = $xeGantt.computeEndField;
95
97
  const tableInternalData = $xeTable;
96
- const { afterFullData } = tableInternalData;
98
+ const { afterFullData, afterTreeFullData } = tableInternalData;
99
+ const treeOpts = $xeTable.computeTreeOpts;
100
+ const { transform } = treeOpts;
101
+ const childrenField = treeOpts.children || treeOpts.childrenField;
97
102
  const ctMaps = {};
98
- afterFullData.forEach(row => {
103
+ const handleParseRender = (row) => {
99
104
  const rowid = $xeTable.getRowid(row);
100
105
  const startValue = XEUtils.get(row, startField);
101
106
  const endValue = XEUtils.get(row, endField);
@@ -111,7 +116,13 @@ function handleParseColumn($xeGanttView) {
111
116
  oWidthSize
112
117
  };
113
118
  }
114
- });
119
+ };
120
+ if (treeConfig) {
121
+ XEUtils.eachTree(afterTreeFullData, handleParseRender, { children: transform ? treeOpts.mapChildrenField : childrenField });
122
+ }
123
+ else {
124
+ afterFullData.forEach(handleParseRender);
125
+ }
115
126
  internalData.chartMaps = ctMaps;
116
127
  }
117
128
  }
@@ -125,6 +136,8 @@ function handleUpdateData($xeGanttView) {
125
136
  const $xeGantt = $xeGanttView.$xeGantt;
126
137
  const reactData = $xeGanttView.reactData;
127
138
  const internalData = $xeGanttView.internalData;
139
+ const ganttProps = $xeGantt;
140
+ const { treeConfig } = ganttProps;
128
141
  const $xeTable = internalData.xeTable;
129
142
  const sdMaps = {};
130
143
  const edMaps = {};
@@ -134,8 +147,11 @@ function handleUpdateData($xeGanttView) {
134
147
  const startField = $xeGantt.computeStartField;
135
148
  const endField = $xeGantt.computeEndField;
136
149
  const tableInternalData = $xeTable;
137
- const { afterFullData } = tableInternalData;
138
- afterFullData.forEach(row => {
150
+ const { afterFullData, afterTreeFullData } = tableInternalData;
151
+ const treeOpts = $xeTable.computeTreeOpts;
152
+ const { transform } = treeOpts;
153
+ const childrenField = treeOpts.children || treeOpts.childrenField;
154
+ const handleMinMaxData = (row) => {
139
155
  const startValue = XEUtils.get(row, startField);
140
156
  const endValue = XEUtils.get(row, endField);
141
157
  if (startValue && endValue) {
@@ -148,7 +164,13 @@ function handleUpdateData($xeGanttView) {
148
164
  maxDate = endDate;
149
165
  }
150
166
  }
151
- });
167
+ };
168
+ if (treeConfig) {
169
+ XEUtils.eachTree(afterTreeFullData, handleMinMaxData, { children: transform ? treeOpts.mapChildrenField : childrenField });
170
+ }
171
+ else {
172
+ afterFullData.forEach(handleMinMaxData);
173
+ }
152
174
  }
153
175
  reactData.minViewDate = minDate;
154
176
  reactData.maxViewDate = maxDate;
@@ -303,6 +325,7 @@ function updateStyle($xeGanttView) {
303
325
  function handleLazyRecalculate($xeGanttView) {
304
326
  calcScrollbar($xeGanttView);
305
327
  updateStyle($xeGanttView);
328
+ updateChart($xeGanttView);
306
329
  return $xeGanttView.$nextTick();
307
330
  }
308
331
  function updateScrollXSpace($xeGanttView) {
@@ -547,6 +570,39 @@ export default defineVxeComponent({
547
570
  const $xeGanttView = this;
548
571
  return handleLazyRecalculate($xeGanttView);
549
572
  },
573
+ handleUpdateCurrentRow(row) {
574
+ const $xeGanttView = this;
575
+ const internalData = $xeGanttView.internalData;
576
+ const $xeTable = internalData.xeTable;
577
+ const el = $xeGanttView.$refs.refElem;
578
+ if ($xeTable && el) {
579
+ if (row) {
580
+ const tableProps = $xeTable;
581
+ const { highlightCurrentRow } = tableProps;
582
+ const rowOpts = $xeTable.computeRowOpts;
583
+ if (rowOpts.isCurrent || highlightCurrentRow) {
584
+ XEUtils.arrayEach(el.querySelectorAll(`[rowid="${$xeTable.getRowid(row)}"]`), elem => addClass(elem, 'row--current'));
585
+ }
586
+ }
587
+ else {
588
+ XEUtils.arrayEach(el.querySelectorAll('.row--current'), elem => removeClass(elem, 'row--current'));
589
+ }
590
+ }
591
+ },
592
+ handleUpdateHoverRow(row) {
593
+ const $xeGanttView = this;
594
+ const internalData = $xeGanttView.internalData;
595
+ const $xeTable = internalData.xeTable;
596
+ const el = $xeGanttView.$refs.refElem;
597
+ if ($xeTable && el) {
598
+ if (row) {
599
+ XEUtils.arrayEach(el.querySelectorAll(`.vxe-body--row[rowid="${$xeTable.getRowid(row)}"]`), elem => addClass(elem, 'row--hover'));
600
+ }
601
+ else {
602
+ XEUtils.arrayEach(el.querySelectorAll('.vxe-body--row.row--hover'), elem => removeClass(elem, 'row--hover'));
603
+ }
604
+ }
605
+ },
550
606
  triggerHeaderScrollEvent(evnt) {
551
607
  const $xeGanttView = this;
552
608
  const internalData = $xeGanttView.internalData;
@@ -234,7 +234,12 @@ export default {
234
234
  const proxyOpts = $xeGantt.computeProxyOpts;
235
235
  const pagerOpts = $xeGantt.computePagerOpts;
236
236
  const isLoading = $xeGantt.computeIsLoading;
237
- const tProps = Object.assign({}, tableExtendProps);
237
+ const tProps = Object.assign({}, tableExtendProps, {
238
+ showOverflow: true,
239
+ showHeaderOverflow: true,
240
+ showFooterOverflow: true,
241
+ showFooter: false
242
+ });
238
243
  if (isZMax) {
239
244
  if (tableExtendProps.maxHeight) {
240
245
  tProps.maxHeight = '100%';
@@ -1368,6 +1373,21 @@ export default {
1368
1373
  },
1369
1374
  handleTaskCellClickEvent(evnt, params) {
1370
1375
  const $xeGantt = this;
1376
+ const $xeTable = $xeGantt.$refs.refTable;
1377
+ if ($xeTable) {
1378
+ const tableProps = $xeTable;
1379
+ const { highlightCurrentRow } = tableProps;
1380
+ const rowOpts = $xeTable.computeRowOpts;
1381
+ const { row } = params;
1382
+ // 如果是当前行
1383
+ if (rowOpts.isCurrent || highlightCurrentRow) {
1384
+ $xeTable.triggerCurrentRowEvent(evnt, Object.assign({
1385
+ $table: $xeTable,
1386
+ rowIndex: $xeTable.getRowIndex(row),
1387
+ $rowIndex: $xeTable.getVMRowIndex(row)
1388
+ }, params));
1389
+ }
1390
+ }
1371
1391
  $xeGantt.dispatchEvent('task-cell-click', params, evnt);
1372
1392
  },
1373
1393
  handleTaskCellDblclickEvent(evnt, params) {
@@ -1694,18 +1714,19 @@ export default {
1694
1714
  if (!enabled) {
1695
1715
  return renderEmptyElement($xeGantt);
1696
1716
  }
1717
+ const isResize = resize && showLeftView && showRightView;
1697
1718
  const ons = {};
1698
- if (resize) {
1719
+ if (isResize) {
1699
1720
  ons.mousedown = $xeGantt.dragSplitEvent;
1700
1721
  }
1701
1722
  return h('div', {
1702
1723
  class: ['vxe-gantt--view-split-bar', {
1703
- 'is--resize': resize,
1704
- on: ons
1724
+ 'is--resize': isResize
1705
1725
  }]
1706
1726
  }, [
1707
1727
  h('div', {
1708
- class: 'vxe-gantt--view-split-bar-handle'
1728
+ class: 'vxe-gantt--view-split-bar-handle',
1729
+ on: ons
1709
1730
  }),
1710
1731
  showCollapseTableButton || showCollapseTaskButton
1711
1732
  ? h('div', {
@@ -40,6 +40,7 @@
40
40
  width: 100%;
41
41
  height: 100%;
42
42
  background-color: rgba(0, 0, 0, 0.1);
43
+ pointer-events: none;
43
44
  }
44
45
 
45
46
  .vxe-gantt-view--chart-progress {
@@ -615,6 +616,22 @@
615
616
  white-space: nowrap;
616
617
  }
617
618
 
619
+ .vxe-gantt-view--body-row.row--stripe {
620
+ background-color: var(--vxe-ui-table-row-striped-background-color);
621
+ }
622
+ .vxe-gantt-view--body-row.row--current {
623
+ background-color: var(--vxe-ui-table-row-current-background-color);
624
+ }
625
+ .vxe-gantt-view--body-row.row--hover {
626
+ background-color: var(--vxe-ui-table-row-hover-background-color);
627
+ }
628
+ .vxe-gantt-view--body-row.row--hover.row--stripe {
629
+ background-color: var(--vxe-ui-table-row-hover-striped-background-color);
630
+ }
631
+ .vxe-gantt-view--body-row.row--hover.row--current {
632
+ background-color: var(--vxe-ui-table-row-hover-current-background-color);
633
+ }
634
+
618
635
  .vxe-gantt-view.mode--day .vxe-gantt-view--header-column {
619
636
  height: 50%;
620
637
  }
@@ -1 +1 @@
1
- @charset "UTF-8";.vxe-gantt-view--chart-wrapper{position:absolute;top:0;left:0;pointer-events:none}.vxe-gantt-view--chart-row{position:relative}.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-bar{border-radius:var(--vxe-ui-gantt-view-task-bar-border-radius)}.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-bar:hover::after{border-radius:var(--vxe-ui-gantt-view-task-bar-border-radius)}.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-bar>.vxe-gantt-view--chart-progress{border-radius:var(--vxe-ui-gantt-view-task-bar-border-radius) 0 0 var(--vxe-ui-gantt-view-task-bar-border-radius)}.vxe-gantt-view--chart-bar{display:flex;flex-direction:row;align-items:center;position:absolute;top:50%;left:0;color:#fff;transform:translateY(-50%);height:var(--vxe-ui-gantt-view-chart-bar-height);background-color:var(--vxe-ui-gantt-view-task-bar-background-color);pointer-events:all}.vxe-gantt-view--chart-bar:hover::after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.1)}.vxe-gantt-view--chart-progress{flex-shrink:0;width:0;height:100%;text-align:left;background-color:var(--vxe-ui-gantt-view-task-bar-completed-background-color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-gantt-view--chart-content{position:absolute;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9em;padding:0 .6em}.vxe-gantt{position:relative;overflow:auto;display:flex;flex-direction:column}.vxe-gantt.is--loading:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:99;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:var(--vxe-ui-loading-background-color)}.vxe-gantt.is--loading>.vxe-gantt-view .vxe-loading{background-color:transparent}.vxe-gantt.is--maximize{position:fixed;top:0;left:0;width:100%;height:100%;padding:.5em 1em;background-color:var(--vxe-ui-layout-background-color)}.vxe-gantt.is--split-drag{cursor:col-resize}.vxe-gantt.is--split-drag .vxe-gantt--table-wrapper::after,.vxe-gantt.is--split-drag .vxe-gantt--view-wrapper::after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;background:0 0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vxe-gantt .vxe-gantt--bottom-wrapper,.vxe-gantt .vxe-gantt--form-wrapper,.vxe-gantt .vxe-gantt--top-wrapper{position:relative}.vxe-gantt .vxe-gantt--gantt-container{position:relative;display:flex;flex-direction:row}.vxe-gantt .vxe-gantt--left-wrapper,.vxe-gantt .vxe-gantt--right-wrapper{flex-shrink:0;overflow:auto;outline:0}.vxe-gantt .vxe-gantt--table-wrapper,.vxe-gantt .vxe-gantt--view-wrapper{display:none;position:relative;flex-grow:1;overflow:hidden}.vxe-gantt .vxe-gantt--view-split-bar{flex-shrink:0;width:var(--vxe-ui-gantt-view-split-bar-width);background-color:var(--vxe-ui-gantt-view-split-bar-background-color)}.vxe-gantt .vxe-gantt--view-split-bar.is--resize{cursor:col-resize}.vxe-gantt.show--left .vxe-gantt--table-wrapper{display:block}.vxe-gantt.show--left.show--right .vxe-gantt--table-wrapper{flex-grow:unset;flex-shrink:0;width:var(--vxe-ui-gantt-view-table-default-width)}.vxe-gantt.show--right .vxe-gantt--view-wrapper{display:block}.vxe-gantt--layout-body-wrapper{display:flex;flex-direction:row;overflow:auto;flex-grow:1}.vxe-gantt--layout-body-content-wrapper{flex-grow:1;overflow:hidden}.vxe-gantt--layout-aside-left-wrapper,.vxe-gantt--layout-footer-wrapper,.vxe-gantt--layout-header-wrapper{flex-shrink:0;overflow:auto}.vxe-gantt--border-line{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;pointer-events:none;border:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--full .vxe-gantt-view--body-column,.vxe-gantt.border--full .vxe-gantt-view--footer-column,.vxe-gantt.border--full .vxe-gantt-view--header-column{background-image:linear-gradient(var(--vxe-ui-table-border-color),var(--vxe-ui-table-border-color)),linear-gradient(var(--vxe-ui-table-border-color),var(--vxe-ui-table-border-color));background-repeat:no-repeat;background-size:var(--vxe-ui-table-border-width) 100%,100% var(--vxe-ui-table-border-width);background-position:right top,right bottom}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-bottom-corner::before,.vxe-gantt.border--default .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-bottom-corner::before,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--inner .vxe-gantt-view--scroll-y-bottom-corner::before,.vxe-gantt.border--inner .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--outer .vxe-gantt-view--scroll-y-bottom-corner::before,.vxe-gantt.border--outer .vxe-gantt-view--scroll-y-top-corner::before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;border-width:0;border-style:solid;border-color:var(--vxe-ui-table-border-color)}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--inner .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--outer .vxe-gantt-view--scroll-y-top-corner::before{border-bottom-width:var(--vxe-ui-table-border-width)}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt.border--inner .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt.border--outer .vxe-gantt-view--scroll-y-bottom-corner{border-top:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--full .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--inner .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--outer .vxe-gantt-view--scroll-x-wrapper::after{content:"";position:absolute;left:0;width:100%;height:100%;z-index:1;pointer-events:none}.vxe-gantt.border--default.sx-pos--top .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--full.sx-pos--top .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--inner.sx-pos--top .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--outer.sx-pos--top .vxe-gantt-view--scroll-x-wrapper::after{top:0;border-bottom:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default.sx-pos--bottom .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--full.sx-pos--bottom .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--inner.sx-pos--bottom .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--outer.sx-pos--bottom .vxe-gantt-view--scroll-x-wrapper::after{bottom:0;height:calc(100% + var(--vxe-ui-table-border-width));border-top:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-top-corner::before{border-left-width:var(--vxe-ui-table-border-width);border-right-width:var(--vxe-ui-table-border-width)}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-bottom-corner::before,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-bottom-corner::before{border-left-width:var(--vxe-ui-table-border-width);border-right-width:var(--vxe-ui-table-border-width)}.vxe-gantt.border--default.sy-pos--right .vxe-gantt-view--scroll-y-bottom-corner::before,.vxe-gantt.border--default.sy-pos--right .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--full.sy-pos--right .vxe-gantt-view--scroll-y-bottom-corner::before,.vxe-gantt.border--full.sy-pos--right .vxe-gantt-view--scroll-y-top-corner::before{width:calc(100% + 1px);left:-1px}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-wrapper::after,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-wrapper::after{content:"";position:absolute;top:0;width:100%;height:100%;z-index:1;pointer-events:none}.vxe-gantt.border--default.sy-pos--left .vxe-gantt-view--scroll-y-wrapper::after,.vxe-gantt.border--full.sy-pos--left .vxe-gantt-view--scroll-y-wrapper::after{left:0;border-right:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default.sy-pos--right .vxe-gantt-view--scroll-y-wrapper::after,.vxe-gantt.border--full.sy-pos--right .vxe-gantt-view--scroll-y-wrapper::after{right:0;width:calc(100% + var(--vxe-ui-table-border-width));border-left:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default .vxe-gantt-view--body-column,.vxe-gantt.border--default .vxe-gantt-view--footer-column,.vxe-gantt.border--default .vxe-gantt-view--header-column,.vxe-gantt.border--inner .vxe-gantt-view--body-column,.vxe-gantt.border--inner .vxe-gantt-view--footer-column,.vxe-gantt.border--inner .vxe-gantt-view--header-column{background-image:linear-gradient(var(--vxe-ui-table-border-color),var(--vxe-ui-table-border-color));background-repeat:no-repeat;background-size:100% var(--vxe-ui-table-border-width);background-position:right bottom}.vxe-gantt.border--inner .vxe-gantt--border-line{border-width:0 0 1px 0}.vxe-gantt.border--none .vxe-gantt--border-line{display:none}.vxe-gantt--view-split-bar{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vxe-gantt--view-split-bar-handle{position:absolute;top:0;left:0;width:100%;height:100%;z-index:13}.vxe-gantt--view-split-bar-btn-wrapper{display:flex;flex-direction:column;align-items:center;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:15;pointer-events:none}.vxe-gantt--view-split-bar-btn-wrapper>div{margin-top:1em}.vxe-gantt--view-split-bar-btn-wrapper>div:first-child{margin-top:0}.vxe-gantt--view-split-bar-left-btn,.vxe-gantt--view-split-bar-right-btn{display:flex;flex-direction:row;align-items:center;justify-content:center;font-size:.5em;height:var(--vxe-ui-gantt-view-split-bar-height);width:var(--vxe-ui-gantt-view-split-bar-width);color:var(--vxe-ui-layout-background-color);border-radius:var(--vxe-ui-base-border-radius);background-color:var(--vxe-ui-gantt-view-handle-background-color);border:1px solid var(--vxe-ui-input-border-color);pointer-events:all;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transition:all .1s ease-in-out}.vxe-gantt--view-split-bar-left-btn:hover,.vxe-gantt--view-split-bar-right-btn:hover{background-color:var(--vxe-ui-font-primary-lighten-color)}.vxe-gantt--view-split-bar-left-btn:active,.vxe-gantt--view-split-bar-right-btn:active{transform:scale(.9)}.vxe-gantt--resizable-split-tip{display:none;position:absolute;top:0;left:0;width:1px;height:100%;z-index:18;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:col-resize}.vxe-gantt--resizable-split-tip:before{content:"";display:block;height:100%;background-color:var(--vxe-ui-table-resizable-drag-line-color)}.vxe-gantt--resizable-split-tip-number{position:absolute;top:0;left:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none}.vxe-gantt--resizable-split-number-left,.vxe-gantt--resizable-split-number-right{position:absolute;padding:.25em .25em;font-size:12px;border-radius:var(--vxe-ui-border-radius);white-space:nowrap;color:#fff;background-color:var(--vxe-ui-table-resizable-drag-line-color)}.vxe-gantt--resizable-split-number-left{right:0}.vxe-gantt--resizable-split-number-right{left:1px}.vxe-gantt.is--loading>.vxe-gantt-view--scroll-x-virtual{visibility:hidden}.vxe-gantt.is--loading>.vxe-gantt-view--layout-wrapper>.vxe-gantt-view--scroll-y-virtual{visibility:hidden}.vxe-gantt .vxe-gantt-view--scroll-x-virtual{height:0}.vxe-gantt .vxe-gantt-view--scroll-y-virtual{width:0}.vxe-gantt .vxe-gantt-view--scroll-x-virtual,.vxe-gantt .vxe-gantt-view--scroll-y-virtual{visibility:hidden;position:relative;flex-shrink:0;z-index:7}.vxe-gantt .vxe-gantt-view--scroll-x-handle,.vxe-gantt .vxe-gantt-view--scroll-x-left-corner,.vxe-gantt .vxe-gantt-view--scroll-x-right-corner,.vxe-gantt .vxe-gantt-view--scroll-x-wrapper,.vxe-gantt .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt .vxe-gantt-view--scroll-y-handle,.vxe-gantt .vxe-gantt-view--scroll-y-top-corner,.vxe-gantt .vxe-gantt-view--scroll-y-wrapper{position:absolute}.vxe-gantt .vxe-gantt-view--scroll-x-handle,.vxe-gantt .vxe-gantt-view--scroll-x-wrapper{width:100%;left:0;bottom:0}.vxe-gantt .vxe-gantt-view--scroll-x-handle{overflow-y:hidden;overflow-x:scroll;height:18px}.vxe-gantt .vxe-gantt-view--scroll-x-wrapper{height:100%}.vxe-gantt .vxe-gantt-view--scroll-y-handle,.vxe-gantt .vxe-gantt-view--scroll-y-wrapper{width:100%;height:100%;right:0;top:0}.vxe-gantt .vxe-gantt-view--scroll-y-handle{overflow-y:scroll;overflow-x:hidden;width:18px;height:100%}.vxe-gantt .vxe-gantt-view--scroll-x-space{height:1px}.vxe-gantt .vxe-gantt-view--scroll-y-space{width:1px}.vxe-gantt .vxe-gantt-view--scroll-x-left-corner,.vxe-gantt .vxe-gantt-view--scroll-x-right-corner,.vxe-gantt .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt .vxe-gantt-view--scroll-y-top-corner{display:none;position:absolute}.vxe-gantt .vxe-gantt-view--scroll-x-left-corner,.vxe-gantt .vxe-gantt-view--scroll-x-right-corner{bottom:0;width:0;height:100%}.vxe-gantt .vxe-gantt-view--scroll-x-left-corner::before,.vxe-gantt .vxe-gantt-view--scroll-x-right-corner::before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;border-width:var(--vxe-ui-table-border-width);border-style:solid;border-color:var(--vxe-ui-table-border-color)}.vxe-gantt .vxe-gantt-view--scroll-x-left-corner{left:0}.vxe-gantt .vxe-gantt-view--scroll-x-right-corner{right:0}.vxe-gantt.sy-pos--right .vxe-gantt-view--scroll-x-right-corner{right:1px}.vxe-gantt.sy-pos--right .vxe-gantt-view--scroll-x-right-corner::before{border-right:0}.vxe-gantt.sx-pos--bottom .vxe-gantt-view--scroll-x-right-corner{bottom:1px}.vxe-gantt.sx-pos--bottom .vxe-gantt-view--scroll-x-right-corner::before{border-bottom:0}.vxe-gantt .vxe-gantt-view--scroll-y-top-corner{background-color:var(--vxe-ui-table-header-background-color)}.vxe-gantt .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt .vxe-gantt-view--scroll-y-top-corner{top:0;right:0;width:100%;height:0}.vxe-gantt .vxe-gantt-view--scroll-y-bottom-corner{margin-top:-1px}.vxe-gantt-view--layout-wrapper{display:flex;flex-direction:row;background-color:var(--vxe-ui-layout-background-color)}.vxe-gantt-view--viewport-wrapper{position:relative;overflow:hidden;flex-grow:1}.vxe-gantt-view--render-vars{width:0;height:0;overflow:hidden}.vxe-gantt-view--column-info{width:var(--vxe-ui-gantt-view-default-cell-width)}.vxe-gantt-view{flex-grow:1;overflow:hidden}.vxe-gantt-view .vxe-body--x-space{width:100%;height:1px;margin-bottom:-1px}.vxe-gantt-view .vxe-body--y-space{width:0;float:left}.vxe-gantt-view--body-table,.vxe-gantt-view--header-table{border:0;border-spacing:0;border-collapse:separate;table-layout:fixed}.vxe-gantt-view--body-table col,.vxe-gantt-view--header-table col{width:var(--vxe-ui-gantt-view-default-cell-width)}.vxe-gantt-view--header-wrapper{background-color:var(--vxe-ui-table-header-background-color)}.vxe-gantt-view--body-wrapper,.vxe-gantt-view--header-wrapper{overflow:hidden}.vxe-gantt-view--header-inner-wrapper{overflow-y:hidden;overflow-x:scroll}.vxe-gantt-view--body-inner-wrapper{overflow-y:auto;overflow-x:auto}.vxe-gantt-view--body-inner-wrapper,.vxe-gantt-view--header-inner-wrapper{position:relative;width:100%;height:100%;scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch}.vxe-gantt-view--header-column{text-align:center;font-size:1em}.vxe-gantt-view--body-column,.vxe-gantt-view--footer-column,.vxe-gantt-view--header-column{position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-gantt-view.mode--day .vxe-gantt-view--header-column{height:50%}.vxe-gantt{font-size:var(--vxe-ui-font-size-default)}.vxe-gantt.size--medium{font-size:var(--vxe-ui-font-size-medium)}.vxe-gantt.size--small{font-size:var(--vxe-ui-font-size-small)}.vxe-gantt.size--mini{font-size:var(--vxe-ui-font-size-mini)}
1
+ @charset "UTF-8";.vxe-gantt-view--chart-wrapper{position:absolute;top:0;left:0;pointer-events:none}.vxe-gantt-view--chart-row{position:relative}.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-bar{border-radius:var(--vxe-ui-gantt-view-task-bar-border-radius)}.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-bar:hover::after{border-radius:var(--vxe-ui-gantt-view-task-bar-border-radius)}.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-bar>.vxe-gantt-view--chart-progress{border-radius:var(--vxe-ui-gantt-view-task-bar-border-radius) 0 0 var(--vxe-ui-gantt-view-task-bar-border-radius)}.vxe-gantt-view--chart-bar{display:flex;flex-direction:row;align-items:center;position:absolute;top:50%;left:0;color:#fff;transform:translateY(-50%);height:var(--vxe-ui-gantt-view-chart-bar-height);background-color:var(--vxe-ui-gantt-view-task-bar-background-color);pointer-events:all}.vxe-gantt-view--chart-bar:hover::after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.1);pointer-events:none}.vxe-gantt-view--chart-progress{flex-shrink:0;width:0;height:100%;text-align:left;background-color:var(--vxe-ui-gantt-view-task-bar-completed-background-color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-gantt-view--chart-content{position:absolute;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9em;padding:0 .6em}.vxe-gantt{position:relative;overflow:auto;display:flex;flex-direction:column}.vxe-gantt.is--loading:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:99;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:var(--vxe-ui-loading-background-color)}.vxe-gantt.is--loading>.vxe-gantt-view .vxe-loading{background-color:transparent}.vxe-gantt.is--maximize{position:fixed;top:0;left:0;width:100%;height:100%;padding:.5em 1em;background-color:var(--vxe-ui-layout-background-color)}.vxe-gantt.is--split-drag{cursor:col-resize}.vxe-gantt.is--split-drag .vxe-gantt--table-wrapper::after,.vxe-gantt.is--split-drag .vxe-gantt--view-wrapper::after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;background:0 0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vxe-gantt .vxe-gantt--bottom-wrapper,.vxe-gantt .vxe-gantt--form-wrapper,.vxe-gantt .vxe-gantt--top-wrapper{position:relative}.vxe-gantt .vxe-gantt--gantt-container{position:relative;display:flex;flex-direction:row}.vxe-gantt .vxe-gantt--left-wrapper,.vxe-gantt .vxe-gantt--right-wrapper{flex-shrink:0;overflow:auto;outline:0}.vxe-gantt .vxe-gantt--table-wrapper,.vxe-gantt .vxe-gantt--view-wrapper{display:none;position:relative;flex-grow:1;overflow:hidden}.vxe-gantt .vxe-gantt--view-split-bar{flex-shrink:0;width:var(--vxe-ui-gantt-view-split-bar-width);background-color:var(--vxe-ui-gantt-view-split-bar-background-color)}.vxe-gantt .vxe-gantt--view-split-bar.is--resize{cursor:col-resize}.vxe-gantt.show--left .vxe-gantt--table-wrapper{display:block}.vxe-gantt.show--left.show--right .vxe-gantt--table-wrapper{flex-grow:unset;flex-shrink:0;width:var(--vxe-ui-gantt-view-table-default-width)}.vxe-gantt.show--right .vxe-gantt--view-wrapper{display:block}.vxe-gantt--layout-body-wrapper{display:flex;flex-direction:row;overflow:auto;flex-grow:1}.vxe-gantt--layout-body-content-wrapper{flex-grow:1;overflow:hidden}.vxe-gantt--layout-aside-left-wrapper,.vxe-gantt--layout-footer-wrapper,.vxe-gantt--layout-header-wrapper{flex-shrink:0;overflow:auto}.vxe-gantt--border-line{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;pointer-events:none;border:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--full .vxe-gantt-view--body-column,.vxe-gantt.border--full .vxe-gantt-view--footer-column,.vxe-gantt.border--full .vxe-gantt-view--header-column{background-image:linear-gradient(var(--vxe-ui-table-border-color),var(--vxe-ui-table-border-color)),linear-gradient(var(--vxe-ui-table-border-color),var(--vxe-ui-table-border-color));background-repeat:no-repeat;background-size:var(--vxe-ui-table-border-width) 100%,100% var(--vxe-ui-table-border-width);background-position:right top,right bottom}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-bottom-corner::before,.vxe-gantt.border--default .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-bottom-corner::before,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--inner .vxe-gantt-view--scroll-y-bottom-corner::before,.vxe-gantt.border--inner .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--outer .vxe-gantt-view--scroll-y-bottom-corner::before,.vxe-gantt.border--outer .vxe-gantt-view--scroll-y-top-corner::before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;border-width:0;border-style:solid;border-color:var(--vxe-ui-table-border-color)}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--inner .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--outer .vxe-gantt-view--scroll-y-top-corner::before{border-bottom-width:var(--vxe-ui-table-border-width)}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt.border--inner .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt.border--outer .vxe-gantt-view--scroll-y-bottom-corner{border-top:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--full .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--inner .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--outer .vxe-gantt-view--scroll-x-wrapper::after{content:"";position:absolute;left:0;width:100%;height:100%;z-index:1;pointer-events:none}.vxe-gantt.border--default.sx-pos--top .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--full.sx-pos--top .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--inner.sx-pos--top .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--outer.sx-pos--top .vxe-gantt-view--scroll-x-wrapper::after{top:0;border-bottom:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default.sx-pos--bottom .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--full.sx-pos--bottom .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--inner.sx-pos--bottom .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--outer.sx-pos--bottom .vxe-gantt-view--scroll-x-wrapper::after{bottom:0;height:calc(100% + var(--vxe-ui-table-border-width));border-top:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-top-corner::before{border-left-width:var(--vxe-ui-table-border-width);border-right-width:var(--vxe-ui-table-border-width)}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-bottom-corner::before,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-bottom-corner::before{border-left-width:var(--vxe-ui-table-border-width);border-right-width:var(--vxe-ui-table-border-width)}.vxe-gantt.border--default.sy-pos--right .vxe-gantt-view--scroll-y-bottom-corner::before,.vxe-gantt.border--default.sy-pos--right .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--full.sy-pos--right .vxe-gantt-view--scroll-y-bottom-corner::before,.vxe-gantt.border--full.sy-pos--right .vxe-gantt-view--scroll-y-top-corner::before{width:calc(100% + 1px);left:-1px}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-wrapper::after,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-wrapper::after{content:"";position:absolute;top:0;width:100%;height:100%;z-index:1;pointer-events:none}.vxe-gantt.border--default.sy-pos--left .vxe-gantt-view--scroll-y-wrapper::after,.vxe-gantt.border--full.sy-pos--left .vxe-gantt-view--scroll-y-wrapper::after{left:0;border-right:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default.sy-pos--right .vxe-gantt-view--scroll-y-wrapper::after,.vxe-gantt.border--full.sy-pos--right .vxe-gantt-view--scroll-y-wrapper::after{right:0;width:calc(100% + var(--vxe-ui-table-border-width));border-left:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default .vxe-gantt-view--body-column,.vxe-gantt.border--default .vxe-gantt-view--footer-column,.vxe-gantt.border--default .vxe-gantt-view--header-column,.vxe-gantt.border--inner .vxe-gantt-view--body-column,.vxe-gantt.border--inner .vxe-gantt-view--footer-column,.vxe-gantt.border--inner .vxe-gantt-view--header-column{background-image:linear-gradient(var(--vxe-ui-table-border-color),var(--vxe-ui-table-border-color));background-repeat:no-repeat;background-size:100% var(--vxe-ui-table-border-width);background-position:right bottom}.vxe-gantt.border--inner .vxe-gantt--border-line{border-width:0 0 1px 0}.vxe-gantt.border--none .vxe-gantt--border-line{display:none}.vxe-gantt--view-split-bar{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vxe-gantt--view-split-bar-handle{position:absolute;top:0;left:0;width:100%;height:100%;z-index:13}.vxe-gantt--view-split-bar-btn-wrapper{display:flex;flex-direction:column;align-items:center;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:15;pointer-events:none}.vxe-gantt--view-split-bar-btn-wrapper>div{margin-top:1em}.vxe-gantt--view-split-bar-btn-wrapper>div:first-child{margin-top:0}.vxe-gantt--view-split-bar-left-btn,.vxe-gantt--view-split-bar-right-btn{display:flex;flex-direction:row;align-items:center;justify-content:center;font-size:.5em;height:var(--vxe-ui-gantt-view-split-bar-height);width:var(--vxe-ui-gantt-view-split-bar-width);color:var(--vxe-ui-layout-background-color);border-radius:var(--vxe-ui-base-border-radius);background-color:var(--vxe-ui-gantt-view-handle-background-color);border:1px solid var(--vxe-ui-input-border-color);pointer-events:all;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transition:all .1s ease-in-out}.vxe-gantt--view-split-bar-left-btn:hover,.vxe-gantt--view-split-bar-right-btn:hover{background-color:var(--vxe-ui-font-primary-lighten-color)}.vxe-gantt--view-split-bar-left-btn:active,.vxe-gantt--view-split-bar-right-btn:active{transform:scale(.9)}.vxe-gantt--resizable-split-tip{display:none;position:absolute;top:0;left:0;width:1px;height:100%;z-index:18;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:col-resize}.vxe-gantt--resizable-split-tip:before{content:"";display:block;height:100%;background-color:var(--vxe-ui-table-resizable-drag-line-color)}.vxe-gantt--resizable-split-tip-number{position:absolute;top:0;left:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none}.vxe-gantt--resizable-split-number-left,.vxe-gantt--resizable-split-number-right{position:absolute;padding:.25em .25em;font-size:12px;border-radius:var(--vxe-ui-border-radius);white-space:nowrap;color:#fff;background-color:var(--vxe-ui-table-resizable-drag-line-color)}.vxe-gantt--resizable-split-number-left{right:0}.vxe-gantt--resizable-split-number-right{left:1px}.vxe-gantt.is--loading>.vxe-gantt-view--scroll-x-virtual{visibility:hidden}.vxe-gantt.is--loading>.vxe-gantt-view--layout-wrapper>.vxe-gantt-view--scroll-y-virtual{visibility:hidden}.vxe-gantt .vxe-gantt-view--scroll-x-virtual{height:0}.vxe-gantt .vxe-gantt-view--scroll-y-virtual{width:0}.vxe-gantt .vxe-gantt-view--scroll-x-virtual,.vxe-gantt .vxe-gantt-view--scroll-y-virtual{visibility:hidden;position:relative;flex-shrink:0;z-index:7}.vxe-gantt .vxe-gantt-view--scroll-x-handle,.vxe-gantt .vxe-gantt-view--scroll-x-left-corner,.vxe-gantt .vxe-gantt-view--scroll-x-right-corner,.vxe-gantt .vxe-gantt-view--scroll-x-wrapper,.vxe-gantt .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt .vxe-gantt-view--scroll-y-handle,.vxe-gantt .vxe-gantt-view--scroll-y-top-corner,.vxe-gantt .vxe-gantt-view--scroll-y-wrapper{position:absolute}.vxe-gantt .vxe-gantt-view--scroll-x-handle,.vxe-gantt .vxe-gantt-view--scroll-x-wrapper{width:100%;left:0;bottom:0}.vxe-gantt .vxe-gantt-view--scroll-x-handle{overflow-y:hidden;overflow-x:scroll;height:18px}.vxe-gantt .vxe-gantt-view--scroll-x-wrapper{height:100%}.vxe-gantt .vxe-gantt-view--scroll-y-handle,.vxe-gantt .vxe-gantt-view--scroll-y-wrapper{width:100%;height:100%;right:0;top:0}.vxe-gantt .vxe-gantt-view--scroll-y-handle{overflow-y:scroll;overflow-x:hidden;width:18px;height:100%}.vxe-gantt .vxe-gantt-view--scroll-x-space{height:1px}.vxe-gantt .vxe-gantt-view--scroll-y-space{width:1px}.vxe-gantt .vxe-gantt-view--scroll-x-left-corner,.vxe-gantt .vxe-gantt-view--scroll-x-right-corner,.vxe-gantt .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt .vxe-gantt-view--scroll-y-top-corner{display:none;position:absolute}.vxe-gantt .vxe-gantt-view--scroll-x-left-corner,.vxe-gantt .vxe-gantt-view--scroll-x-right-corner{bottom:0;width:0;height:100%}.vxe-gantt .vxe-gantt-view--scroll-x-left-corner::before,.vxe-gantt .vxe-gantt-view--scroll-x-right-corner::before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;border-width:var(--vxe-ui-table-border-width);border-style:solid;border-color:var(--vxe-ui-table-border-color)}.vxe-gantt .vxe-gantt-view--scroll-x-left-corner{left:0}.vxe-gantt .vxe-gantt-view--scroll-x-right-corner{right:0}.vxe-gantt.sy-pos--right .vxe-gantt-view--scroll-x-right-corner{right:1px}.vxe-gantt.sy-pos--right .vxe-gantt-view--scroll-x-right-corner::before{border-right:0}.vxe-gantt.sx-pos--bottom .vxe-gantt-view--scroll-x-right-corner{bottom:1px}.vxe-gantt.sx-pos--bottom .vxe-gantt-view--scroll-x-right-corner::before{border-bottom:0}.vxe-gantt .vxe-gantt-view--scroll-y-top-corner{background-color:var(--vxe-ui-table-header-background-color)}.vxe-gantt .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt .vxe-gantt-view--scroll-y-top-corner{top:0;right:0;width:100%;height:0}.vxe-gantt .vxe-gantt-view--scroll-y-bottom-corner{margin-top:-1px}.vxe-gantt-view--layout-wrapper{display:flex;flex-direction:row;background-color:var(--vxe-ui-layout-background-color)}.vxe-gantt-view--viewport-wrapper{position:relative;overflow:hidden;flex-grow:1}.vxe-gantt-view--render-vars{width:0;height:0;overflow:hidden}.vxe-gantt-view--column-info{width:var(--vxe-ui-gantt-view-default-cell-width)}.vxe-gantt-view{flex-grow:1;overflow:hidden}.vxe-gantt-view .vxe-body--x-space{width:100%;height:1px;margin-bottom:-1px}.vxe-gantt-view .vxe-body--y-space{width:0;float:left}.vxe-gantt-view--body-table,.vxe-gantt-view--header-table{border:0;border-spacing:0;border-collapse:separate;table-layout:fixed}.vxe-gantt-view--body-table col,.vxe-gantt-view--header-table col{width:var(--vxe-ui-gantt-view-default-cell-width)}.vxe-gantt-view--header-wrapper{background-color:var(--vxe-ui-table-header-background-color)}.vxe-gantt-view--body-wrapper,.vxe-gantt-view--header-wrapper{overflow:hidden}.vxe-gantt-view--header-inner-wrapper{overflow-y:hidden;overflow-x:scroll}.vxe-gantt-view--body-inner-wrapper{overflow-y:auto;overflow-x:auto}.vxe-gantt-view--body-inner-wrapper,.vxe-gantt-view--header-inner-wrapper{position:relative;width:100%;height:100%;scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch}.vxe-gantt-view--header-column{text-align:center;font-size:1em}.vxe-gantt-view--body-column,.vxe-gantt-view--footer-column,.vxe-gantt-view--header-column{position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-gantt-view--body-row.row--stripe{background-color:var(--vxe-ui-table-row-striped-background-color)}.vxe-gantt-view--body-row.row--current{background-color:var(--vxe-ui-table-row-current-background-color)}.vxe-gantt-view--body-row.row--hover{background-color:var(--vxe-ui-table-row-hover-background-color)}.vxe-gantt-view--body-row.row--hover.row--stripe{background-color:var(--vxe-ui-table-row-hover-striped-background-color)}.vxe-gantt-view--body-row.row--hover.row--current{background-color:var(--vxe-ui-table-row-hover-current-background-color)}.vxe-gantt-view.mode--day .vxe-gantt-view--header-column{height:50%}.vxe-gantt{font-size:var(--vxe-ui-font-size-default)}.vxe-gantt.size--medium{font-size:var(--vxe-ui-font-size-medium)}.vxe-gantt.size--small{font-size:var(--vxe-ui-font-size-small)}.vxe-gantt.size--mini{font-size:var(--vxe-ui-font-size-mini)}