vxe-gantt 3.7.4 → 3.8.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/es/gantt/src/gantt-chart.js +5 -2
- package/es/gantt/src/gantt-view.js +225 -0
- package/es/gantt/src/gantt.js +49 -5
- package/es/gantt/style.css +23 -13
- package/es/gantt/style.min.css +1 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/ui/index.js +7 -0
- package/es/vxe-gantt/style.css +23 -13
- package/es/vxe-gantt/style.min.css +1 -1
- package/lib/gantt/src/gantt-chart.js +6 -1
- package/lib/gantt/src/gantt-chart.min.js +1 -1
- package/lib/gantt/src/gantt-view.js +278 -0
- package/lib/gantt/src/gantt-view.min.js +1 -1
- package/lib/gantt/src/gantt.js +50 -4
- package/lib/gantt/src/gantt.min.js +1 -1
- package/lib/gantt/style/style.css +23 -13
- package/lib/gantt/style/style.min.css +1 -1
- package/lib/index.umd.js +1803 -90
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/ui/index.js +7 -0
- package/lib/ui/index.min.js +1 -1
- package/lib/vxe-gantt/style/style.css +23 -13
- package/lib/vxe-gantt/style/style.min.css +1 -1
- package/package.json +2 -2
- package/packages/gantt/src/gantt-chart.ts +5 -2
- package/packages/gantt/src/gantt-view.ts +263 -1
- package/packages/gantt/src/gantt.ts +55 -4
- package/packages/gantt/src/util.ts +1 -1
- package/packages/ui/index.ts +7 -0
- package/styles/components/gantt-module/gantt-chart.scss +12 -0
- package/styles/components/gantt.scss +17 -13
- package/styles/theme/base.scss +2 -0
|
@@ -44,7 +44,8 @@ export default defineVxeComponent({
|
|
|
44
44
|
const taskBarSlot = ganttSlots.taskBar || ganttSlots['task-bar'];
|
|
45
45
|
const taskBarOverviewSlot = ganttSlots.taskBarOverview || ganttSlots['task-bar-overview'];
|
|
46
46
|
const { treeConfig, taskBarMilestoneConfig, taskBarSubviewConfig } = ganttProps;
|
|
47
|
-
const { activeLink, activeBarRowid } = ganttReactData;
|
|
47
|
+
const { activeLink, activeBarRowid, criticalPathFlag } = ganttReactData;
|
|
48
|
+
const { criticalRowMaps } = ganttInternalData;
|
|
48
49
|
const titleField = $xeGantt.computeTitleField;
|
|
49
50
|
const progressField = $xeGantt.computeProgressField;
|
|
50
51
|
const typeField = $xeGantt.computeTypeField;
|
|
@@ -63,7 +64,7 @@ export default defineVxeComponent({
|
|
|
63
64
|
rowIndex,
|
|
64
65
|
_rowIndex
|
|
65
66
|
};
|
|
66
|
-
const { showProgress, showContent, contentMethod, barStyle, moveable, showTooltip } = taskBarOpts;
|
|
67
|
+
const { showProgress, showCriticalPath, showContent, contentMethod, barStyle, moveable, showTooltip } = taskBarOpts;
|
|
67
68
|
const isBarRowStyle = XEUtils.isFunction(barStyle);
|
|
68
69
|
const barStyObj = (barStyle ? (isBarRowStyle ? barStyle(barParams) : barStyle) : {}) || {};
|
|
69
70
|
const barRound = barStyObj.round;
|
|
@@ -228,6 +229,7 @@ export default defineVxeComponent({
|
|
|
228
229
|
},
|
|
229
230
|
class: ['vxe-gantt-view--chart-subview-row', `is--${childRenderTaskType}`, {
|
|
230
231
|
'is--progress': showProgress,
|
|
232
|
+
'is--critical': showCriticalPath && criticalPathFlag && criticalRowMaps.has(childRowid),
|
|
231
233
|
'is--round': childRound,
|
|
232
234
|
'is--move': moveable,
|
|
233
235
|
'row--pending': !!pendingRowFlag && !!pendingRowMaps[childRowid]
|
|
@@ -346,6 +348,7 @@ export default defineVxeComponent({
|
|
|
346
348
|
},
|
|
347
349
|
class: ['vxe-gantt-view--chart-row', `is--${renderTaskType}`, {
|
|
348
350
|
'is--progress': showProgress,
|
|
351
|
+
'is--critical': showCriticalPath && criticalPathFlag && criticalRowMaps.has(rowid),
|
|
349
352
|
'row--pending': !!pendingRowFlag && !!pendingRowMaps[rowid],
|
|
350
353
|
'is--round': barRound,
|
|
351
354
|
'is--move': moveable
|
|
@@ -2,16 +2,21 @@ import { defineVxeComponent } from '../../ui/src/comp';
|
|
|
2
2
|
import { VxeUI } from '@vxe-ui/core';
|
|
3
3
|
import { setScrollTop, setScrollLeft, removeClass, addClass, hasClass } from '../../ui/src/dom';
|
|
4
4
|
import { getRefElem, getTaskBarLeft, getTaskBarWidth, hasMilestoneTask, getTaskType, hasSubviewTask } from './util';
|
|
5
|
+
import { VxeGanttDependencyType } from './static';
|
|
5
6
|
import XEUtils from 'xe-utils';
|
|
6
7
|
import GanttViewHeaderComponent from './gantt-header';
|
|
7
8
|
import GanttViewBodyComponent from './gantt-body';
|
|
8
9
|
import GanttViewFooterComponent from './gantt-footer';
|
|
9
10
|
const { globalEvents } = VxeUI;
|
|
11
|
+
const { FinishToStart, StartToFinish, StartToStart, FinishToFinish } = VxeGanttDependencyType;
|
|
10
12
|
const sourceType = 'gantt';
|
|
11
13
|
const secondMs = 1000;
|
|
12
14
|
const minuteMs = 1000 * 60;
|
|
13
15
|
const hourMs = 1000 * 60 * 60;
|
|
14
16
|
const dayMs = hourMs * 24;
|
|
17
|
+
function getTaskLinkKey(from, to, type) {
|
|
18
|
+
return from + '_' + to + '_' + (type || 0);
|
|
19
|
+
}
|
|
15
20
|
function createInternalData() {
|
|
16
21
|
return {
|
|
17
22
|
xeTable: null,
|
|
@@ -793,6 +798,8 @@ function handleUpdateData($xeGanttView) {
|
|
|
793
798
|
const reactData = $xeGanttView.reactData;
|
|
794
799
|
const internalData = $xeGanttView.internalData;
|
|
795
800
|
const ganttProps = $xeGantt;
|
|
801
|
+
const ganttReactData = $xeGantt.reactData;
|
|
802
|
+
const { linkList } = ganttReactData;
|
|
796
803
|
const { treeConfig } = ganttProps;
|
|
797
804
|
const { scrollXStore } = internalData;
|
|
798
805
|
const $xeTable = internalData.xeTable;
|
|
@@ -800,6 +807,7 @@ function handleUpdateData($xeGanttView) {
|
|
|
800
807
|
const edMaps = {};
|
|
801
808
|
let minDate = null;
|
|
802
809
|
let maxDate = null;
|
|
810
|
+
const allList = [];
|
|
803
811
|
if ($xeTable) {
|
|
804
812
|
const startField = $xeGantt.computeStartField;
|
|
805
813
|
const endField = $xeGantt.computeEndField;
|
|
@@ -835,6 +843,7 @@ function handleUpdateData($xeGanttView) {
|
|
|
835
843
|
maxDate = endDate;
|
|
836
844
|
}
|
|
837
845
|
}
|
|
846
|
+
allList.push(row);
|
|
838
847
|
};
|
|
839
848
|
if (isRowGroupStatus) {
|
|
840
849
|
// 行分组
|
|
@@ -858,6 +867,222 @@ function handleUpdateData($xeGanttView) {
|
|
|
858
867
|
internalData.startMaps = sdMaps;
|
|
859
868
|
internalData.endMaps = edMaps;
|
|
860
869
|
handleParseColumn($xeGanttView);
|
|
870
|
+
handleCriticalPath($xeGanttView, allList, linkList);
|
|
871
|
+
}
|
|
872
|
+
/**
|
|
873
|
+
* 正向:后置 ES 的下连接线
|
|
874
|
+
*/
|
|
875
|
+
function forwardCriticalPathLowerBound(linkType, predES, predEF, duration) {
|
|
876
|
+
switch (linkType) {
|
|
877
|
+
case FinishToStart:
|
|
878
|
+
return predEF;
|
|
879
|
+
case StartToFinish:
|
|
880
|
+
return predES - duration;
|
|
881
|
+
case StartToStart:
|
|
882
|
+
return predES;
|
|
883
|
+
case FinishToFinish:
|
|
884
|
+
return predEF - duration;
|
|
885
|
+
default:
|
|
886
|
+
return 0;
|
|
887
|
+
}
|
|
888
|
+
}
|
|
889
|
+
/**
|
|
890
|
+
* 反向:前置 LF 的上连接线
|
|
891
|
+
*/
|
|
892
|
+
function backwardCriticalPathUpperBound(linkType, succLS, succLF, duration) {
|
|
893
|
+
switch (linkType) {
|
|
894
|
+
case FinishToStart:
|
|
895
|
+
return succLS;
|
|
896
|
+
case StartToFinish:
|
|
897
|
+
return succLF + duration;
|
|
898
|
+
case StartToStart:
|
|
899
|
+
return succLS + duration;
|
|
900
|
+
case FinishToFinish:
|
|
901
|
+
return succLF;
|
|
902
|
+
default:
|
|
903
|
+
return -1;
|
|
904
|
+
}
|
|
905
|
+
}
|
|
906
|
+
/**
|
|
907
|
+
* 关键边:两端都关键时,约束是否连接
|
|
908
|
+
*/
|
|
909
|
+
function isCriticalPathLinkTight(linkType, fromES, fromEF, toES, toEF, tolerance) {
|
|
910
|
+
switch (linkType) {
|
|
911
|
+
case FinishToStart:
|
|
912
|
+
return Math.abs(fromEF - toES) < tolerance;
|
|
913
|
+
case StartToFinish:
|
|
914
|
+
return Math.abs(fromES - toEF) < tolerance;
|
|
915
|
+
case StartToStart:
|
|
916
|
+
return Math.abs(fromES - toES) < tolerance;
|
|
917
|
+
case FinishToFinish:
|
|
918
|
+
return Math.abs(fromEF - toEF) < tolerance;
|
|
919
|
+
default:
|
|
920
|
+
return false;
|
|
921
|
+
}
|
|
922
|
+
}
|
|
923
|
+
export function handleCriticalPath($xeGanttView, data, links) {
|
|
924
|
+
const $xeGantt = $xeGanttView.$xeGantt;
|
|
925
|
+
const internalData = $xeGanttView.internalData;
|
|
926
|
+
const ganttReactData = $xeGantt.reactData;
|
|
927
|
+
const ganttInternalData = $xeGantt.internalData;
|
|
928
|
+
const taskBarOpts = $xeGantt.computeTaskBarOpts;
|
|
929
|
+
const $xeTable = internalData.xeTable;
|
|
930
|
+
const criticalRowList = [];
|
|
931
|
+
const criticalRowMaps = new Map();
|
|
932
|
+
const criticalLinkKeyMaps = new Map();
|
|
933
|
+
ganttInternalData.criticalRowList = criticalRowList;
|
|
934
|
+
ganttInternalData.criticalRowMaps = criticalRowMaps;
|
|
935
|
+
ganttInternalData.criticalLinkKeyMaps = criticalLinkKeyMaps;
|
|
936
|
+
if (!taskBarOpts.showCriticalPath || !links.length || !data.length || !$xeTable) {
|
|
937
|
+
if (ganttReactData.criticalRowIds.length || ganttReactData.criticalLinks.length) {
|
|
938
|
+
ganttReactData.criticalPathFlag++;
|
|
939
|
+
}
|
|
940
|
+
ganttReactData.criticalLinks = [];
|
|
941
|
+
ganttReactData.criticalRowIds = [];
|
|
942
|
+
return;
|
|
943
|
+
}
|
|
944
|
+
const { chartMaps } = internalData;
|
|
945
|
+
const tolerance = 1e-6;
|
|
946
|
+
const nodeMap = new Map();
|
|
947
|
+
for (const row of data) {
|
|
948
|
+
const rowid = $xeTable.getRowid(row);
|
|
949
|
+
const chartRest = chartMaps[rowid];
|
|
950
|
+
nodeMap.set(rowid, {
|
|
951
|
+
row,
|
|
952
|
+
rowid: rowid,
|
|
953
|
+
duration: chartRest ? chartRest.oWidthSize : 0,
|
|
954
|
+
incoming: [],
|
|
955
|
+
outgoing: [],
|
|
956
|
+
indeg: 0,
|
|
957
|
+
ES: 0,
|
|
958
|
+
EF: 0,
|
|
959
|
+
LS: 0,
|
|
960
|
+
LF: 0
|
|
961
|
+
});
|
|
962
|
+
}
|
|
963
|
+
// 边界
|
|
964
|
+
const linkList = [];
|
|
965
|
+
for (const link of links) {
|
|
966
|
+
const fromKey = '' + link.from;
|
|
967
|
+
const toKey = '' + link.to;
|
|
968
|
+
if (!nodeMap.has(fromKey) || !nodeMap.has(toKey) || fromKey === toKey) {
|
|
969
|
+
continue;
|
|
970
|
+
}
|
|
971
|
+
const lkItemitem = {
|
|
972
|
+
from: link.from,
|
|
973
|
+
to: link.to,
|
|
974
|
+
type: XEUtils.toNumber(link.type) || 0,
|
|
975
|
+
raw: link
|
|
976
|
+
};
|
|
977
|
+
linkList.push(lkItemitem);
|
|
978
|
+
const toObjItem = nodeMap.get('' + link.to);
|
|
979
|
+
const fromObjItem = nodeMap.get('' + link.from);
|
|
980
|
+
if (fromObjItem) {
|
|
981
|
+
fromObjItem.outgoing.push(lkItemitem);
|
|
982
|
+
}
|
|
983
|
+
if (toObjItem) {
|
|
984
|
+
toObjItem.incoming.push(lkItemitem);
|
|
985
|
+
toObjItem.indeg++;
|
|
986
|
+
}
|
|
987
|
+
}
|
|
988
|
+
// 拓扑排序 + 环检测
|
|
989
|
+
const queueList = [];
|
|
990
|
+
nodeMap.forEach(nodeitem => {
|
|
991
|
+
if (nodeitem.indeg === 0) {
|
|
992
|
+
queueList.push(nodeitem);
|
|
993
|
+
}
|
|
994
|
+
});
|
|
995
|
+
const orderList = [];
|
|
996
|
+
for (let head = 0; head < queueList.length; head++) {
|
|
997
|
+
const node = queueList[head];
|
|
998
|
+
orderList.push(node);
|
|
999
|
+
for (const lkItemitem of node.outgoing) {
|
|
1000
|
+
const toObjItem = nodeMap.get('' + lkItemitem.to);
|
|
1001
|
+
if (toObjItem) {
|
|
1002
|
+
const nextDeg = toObjItem.indeg - 1;
|
|
1003
|
+
toObjItem.indeg = nextDeg;
|
|
1004
|
+
if (nextDeg === 0) {
|
|
1005
|
+
queueList.push(nodeMap.get('' + lkItemitem.to));
|
|
1006
|
+
}
|
|
1007
|
+
}
|
|
1008
|
+
}
|
|
1009
|
+
}
|
|
1010
|
+
if (orderList.length !== nodeMap.size) {
|
|
1011
|
+
// 异常数据,依赖图中存在环
|
|
1012
|
+
if (ganttReactData.criticalRowIds.length || ganttReactData.criticalLinks.length) {
|
|
1013
|
+
ganttReactData.criticalPathFlag++;
|
|
1014
|
+
}
|
|
1015
|
+
ganttReactData.criticalLinks = [];
|
|
1016
|
+
ganttReactData.criticalRowIds = [];
|
|
1017
|
+
return;
|
|
1018
|
+
}
|
|
1019
|
+
// 正向:ES / EF
|
|
1020
|
+
let criticalDuration = 0;
|
|
1021
|
+
for (const node of orderList) {
|
|
1022
|
+
let earliestStart = 0;
|
|
1023
|
+
for (const lkItem of node.incoming) {
|
|
1024
|
+
const fromObjItem = nodeMap.get('' + lkItem.from);
|
|
1025
|
+
if (fromObjItem) {
|
|
1026
|
+
const need = forwardCriticalPathLowerBound(lkItem.type, fromObjItem.ES, fromObjItem.EF, node.duration);
|
|
1027
|
+
if (need > earliestStart) {
|
|
1028
|
+
earliestStart = need;
|
|
1029
|
+
}
|
|
1030
|
+
}
|
|
1031
|
+
}
|
|
1032
|
+
node.ES = earliestStart;
|
|
1033
|
+
node.EF = earliestStart + node.duration;
|
|
1034
|
+
if (node.EF > criticalDuration) {
|
|
1035
|
+
criticalDuration = node.EF;
|
|
1036
|
+
}
|
|
1037
|
+
}
|
|
1038
|
+
// 反向:LS / LF
|
|
1039
|
+
for (let i = orderList.length - 1; i >= 0; i--) {
|
|
1040
|
+
const node = orderList[i];
|
|
1041
|
+
let latestFinish = criticalDuration;
|
|
1042
|
+
for (const lkItem of node.outgoing) {
|
|
1043
|
+
const toObjItem = nodeMap.get('' + lkItem.to);
|
|
1044
|
+
if (toObjItem) {
|
|
1045
|
+
const need = backwardCriticalPathUpperBound(lkItem.type, toObjItem.LS, toObjItem.LF, node.duration);
|
|
1046
|
+
if (need < latestFinish) {
|
|
1047
|
+
latestFinish = need;
|
|
1048
|
+
}
|
|
1049
|
+
}
|
|
1050
|
+
}
|
|
1051
|
+
node.LF = latestFinish;
|
|
1052
|
+
node.LS = latestFinish - node.duration;
|
|
1053
|
+
}
|
|
1054
|
+
// 关键任务
|
|
1055
|
+
const criticalSet = new Set();
|
|
1056
|
+
const criticalRowIds = [];
|
|
1057
|
+
for (const nodeItem of orderList) {
|
|
1058
|
+
if (Math.abs(nodeItem.LS - nodeItem.ES) < tolerance) {
|
|
1059
|
+
criticalSet.add(nodeItem.rowid);
|
|
1060
|
+
criticalRowIds.push(nodeItem.rowid);
|
|
1061
|
+
criticalRowList.push(nodeItem.row);
|
|
1062
|
+
criticalRowMaps.set(nodeItem.rowid, nodeItem.row);
|
|
1063
|
+
}
|
|
1064
|
+
}
|
|
1065
|
+
// 关键连接线
|
|
1066
|
+
const criticalLinks = [];
|
|
1067
|
+
for (const lkItem of linkList) {
|
|
1068
|
+
const toObjItem = nodeMap.get('' + lkItem.to);
|
|
1069
|
+
const fromObjItem = nodeMap.get('' + lkItem.from);
|
|
1070
|
+
if (!toObjItem || !fromObjItem) {
|
|
1071
|
+
continue;
|
|
1072
|
+
}
|
|
1073
|
+
// 两端必须都是关键任务
|
|
1074
|
+
if (!criticalSet.has(fromObjItem.rowid) || !criticalSet.has(toObjItem.rowid)) {
|
|
1075
|
+
continue;
|
|
1076
|
+
}
|
|
1077
|
+
// 约束必须是连接的
|
|
1078
|
+
if (isCriticalPathLinkTight(lkItem.type, fromObjItem.ES, fromObjItem.EF, toObjItem.ES, toObjItem.EF, tolerance)) {
|
|
1079
|
+
criticalLinks.push(lkItem.raw);
|
|
1080
|
+
criticalLinkKeyMaps.set(getTaskLinkKey(lkItem.from, lkItem.to, lkItem.type), lkItem.raw);
|
|
1081
|
+
}
|
|
1082
|
+
}
|
|
1083
|
+
ganttReactData.criticalLinks = criticalLinks;
|
|
1084
|
+
ganttReactData.criticalRowIds = criticalRowIds;
|
|
1085
|
+
ganttReactData.criticalPathFlag++;
|
|
861
1086
|
}
|
|
862
1087
|
function calcScrollbar($xeGanttView) {
|
|
863
1088
|
const $xeGantt = $xeGanttView.$xeGantt;
|
package/es/gantt/src/gantt.js
CHANGED
|
@@ -72,7 +72,11 @@ function createInternalData() {
|
|
|
72
72
|
dragLinkToStore: {
|
|
73
73
|
rowid: null,
|
|
74
74
|
type: 0
|
|
75
|
-
}
|
|
75
|
+
},
|
|
76
|
+
// 关键路径
|
|
77
|
+
criticalRowList: [],
|
|
78
|
+
criticalRowMaps: new Map(),
|
|
79
|
+
criticalLinkKeyMaps: new Map()
|
|
76
80
|
};
|
|
77
81
|
}
|
|
78
82
|
function createReactData() {
|
|
@@ -122,7 +126,11 @@ function createReactData() {
|
|
|
122
126
|
showSplitAnimat: false,
|
|
123
127
|
nowTime: 0,
|
|
124
128
|
currLeftSpacing: 0,
|
|
125
|
-
currRightSpacing: 0
|
|
129
|
+
currRightSpacing: 0,
|
|
130
|
+
// 关键路径
|
|
131
|
+
criticalLinks: [],
|
|
132
|
+
criticalRowIds: [],
|
|
133
|
+
criticalPathFlag: 0
|
|
126
134
|
};
|
|
127
135
|
}
|
|
128
136
|
export default {
|
|
@@ -130,7 +138,7 @@ export default {
|
|
|
130
138
|
mixins: [
|
|
131
139
|
globalMixins.sizeMixin
|
|
132
140
|
],
|
|
133
|
-
props: Object.assign(Object.assign({}, tableProps), { columns: Array, pagerConfig: Object, proxyConfig: Object, toolbarConfig: Object, formConfig: Object, zoomConfig: Object, links: Array, layouts: Array, taskConfig: Object, taskViewScaleConfig: Object, taskNowLineConfig: Object, taskViewConfig: Object, taskLinkConfig: Object, taskBarConfig: Object, taskBarMilestoneConfig: Object, taskBarSubviewConfig: Object, taskBarTooltipConfig: Object, taskSplitConfig: Object, taskBarResizeConfig: Object, taskBarResizeTooltipConfig: Object, taskBarMoveConfig: Object, taskBarMoveTooltipConfig: Object, size: {
|
|
141
|
+
props: Object.assign(Object.assign({}, tableProps), { columns: Array, pagerConfig: Object, proxyConfig: Object, toolbarConfig: Object, formConfig: Object, zoomConfig: Object, links: Array, layouts: Array, taskConfig: Object, taskViewScaleConfig: Object, taskNowLineConfig: Object, taskViewConfig: Object, taskLinkConfig: Object, taskBarConfig: Object, taskBarMilestoneConfig: Object, taskCriticalPathConfig: Object, taskBarSubviewConfig: Object, taskBarTooltipConfig: Object, taskSplitConfig: Object, taskBarResizeConfig: Object, taskBarResizeTooltipConfig: Object, taskBarMoveConfig: Object, taskBarMoveTooltipConfig: Object, size: {
|
|
134
142
|
type: String,
|
|
135
143
|
default: () => getConfig().gantt.size || getConfig().size
|
|
136
144
|
} }),
|
|
@@ -149,7 +157,8 @@ export default {
|
|
|
149
157
|
return {
|
|
150
158
|
xID,
|
|
151
159
|
reactData,
|
|
152
|
-
internalData
|
|
160
|
+
internalData,
|
|
161
|
+
reViewFlag: 0
|
|
153
162
|
};
|
|
154
163
|
},
|
|
155
164
|
computed: Object.assign(Object.assign({}, {}), { computeProxyOpts() {
|
|
@@ -242,6 +251,11 @@ export default {
|
|
|
242
251
|
const props = $xeGantt;
|
|
243
252
|
return Object.assign({}, getConfig().gantt.taskBarMilestoneConfig, props.taskBarMilestoneConfig);
|
|
244
253
|
},
|
|
254
|
+
computeTaskCriticalPathOpts() {
|
|
255
|
+
const $xeGantt = this;
|
|
256
|
+
const props = $xeGantt;
|
|
257
|
+
return Object.assign({}, getConfig().gantt.taskCriticalPathConfig, props.taskCriticalPathConfig);
|
|
258
|
+
},
|
|
245
259
|
computeTaskBarSubviewOpts() {
|
|
246
260
|
const $xeGantt = this;
|
|
247
261
|
const props = $xeGantt;
|
|
@@ -344,6 +358,11 @@ export default {
|
|
|
344
358
|
const scrollbarOpts = $xeGantt.computeScrollbarOpts;
|
|
345
359
|
return !!(scrollbarOpts.y && scrollbarOpts.y.position === 'left');
|
|
346
360
|
},
|
|
361
|
+
computeCriticalPathVisible() {
|
|
362
|
+
const $xeGantt = this;
|
|
363
|
+
const taskBarOpts = $xeGantt.computeTaskBarOpts;
|
|
364
|
+
return taskBarOpts.showCriticalPath;
|
|
365
|
+
},
|
|
347
366
|
computeWrapperStyle() {
|
|
348
367
|
const $xeGantt = this;
|
|
349
368
|
const props = $xeGantt;
|
|
@@ -354,12 +373,17 @@ export default {
|
|
|
354
373
|
const { viewStyle, tableStyle } = taskViewOpts;
|
|
355
374
|
const taskBarOpts = $xeGantt.computeTaskBarOpts;
|
|
356
375
|
const { barStyle } = taskBarOpts;
|
|
376
|
+
const taskCriticalPathOpts = $xeGantt.computeTaskCriticalPathOpts;
|
|
377
|
+
const { lineColor: cpLineColor } = taskCriticalPathOpts;
|
|
357
378
|
const taskBarSubviewOpts = $xeGantt.computeTaskBarSubviewOpts;
|
|
358
379
|
const taskNowLineOpts = $xeGantt.computeTaskNowLineOpts;
|
|
359
380
|
const { fontColor: nlfColor, bgColor: nlbgColor, width: nlWidth } = taskNowLineOpts;
|
|
360
381
|
const stys = {
|
|
361
382
|
'--vxe-ui-gantt-scrollbar-width': (overflowY && scrollbarWidth ? scrollbarWidth : 0) + 'px'
|
|
362
383
|
};
|
|
384
|
+
if (cpLineColor) {
|
|
385
|
+
stys['--vxe-ui-gantt-view-bar-critical-path-line-color'] = cpLineColor;
|
|
386
|
+
}
|
|
363
387
|
if (isZMax) {
|
|
364
388
|
stys.zIndex = tZindex;
|
|
365
389
|
}
|
|
@@ -582,6 +606,14 @@ export default {
|
|
|
582
606
|
computeTaskViewScales() {
|
|
583
607
|
const $xeGantt = this;
|
|
584
608
|
$xeGantt.handleTaskScaleConfig();
|
|
609
|
+
$xeGantt.reViewFlag++;
|
|
610
|
+
},
|
|
611
|
+
computeCriticalPathVisible() {
|
|
612
|
+
const $xeGantt = this;
|
|
613
|
+
$xeGantt.reViewFlag++;
|
|
614
|
+
},
|
|
615
|
+
reViewFlag() {
|
|
616
|
+
const $xeGantt = this;
|
|
585
617
|
$xeGantt.refreshTaskView();
|
|
586
618
|
},
|
|
587
619
|
computeTaskLinkStyle() {
|
|
@@ -1920,6 +1952,18 @@ export default {
|
|
|
1920
1952
|
}
|
|
1921
1953
|
return $xeGantt.$nextTick();
|
|
1922
1954
|
},
|
|
1955
|
+
getCriticalPath() {
|
|
1956
|
+
const $xeGantt = this;
|
|
1957
|
+
const reactData = $xeGantt.reactData;
|
|
1958
|
+
const internalData = $xeGantt.internalData;
|
|
1959
|
+
const { criticalRowIds, criticalLinks } = reactData;
|
|
1960
|
+
const { criticalRowMaps } = internalData;
|
|
1961
|
+
return {
|
|
1962
|
+
rowIds: criticalRowIds.slice(0),
|
|
1963
|
+
rows: Array.from(criticalRowMaps.values()),
|
|
1964
|
+
links: criticalLinks.slice(0)
|
|
1965
|
+
};
|
|
1966
|
+
},
|
|
1923
1967
|
/**
|
|
1924
1968
|
* 获取需要排除的高度
|
|
1925
1969
|
*/
|
|
@@ -2314,7 +2358,7 @@ export default {
|
|
|
2314
2358
|
// 处理插槽
|
|
2315
2359
|
formOpts.items.forEach((item) => {
|
|
2316
2360
|
XEUtils.each(item.slots, (func) => {
|
|
2317
|
-
if (!XEUtils.isFunction(func)) {
|
|
2361
|
+
if (func && !XEUtils.isFunction(func)) {
|
|
2318
2362
|
if (slots[func]) {
|
|
2319
2363
|
formSlots[func] = slots[func];
|
|
2320
2364
|
}
|
package/es/gantt/style.css
CHANGED
|
@@ -13,6 +13,12 @@
|
|
|
13
13
|
height: 0;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
+
.vxe-gantt-view--chart-row.is--critical > .vxe-gantt-view--chart-bar .vxe-gantt-view--chart-bar-content-wrapper {
|
|
17
|
+
border: var(--vxe-ui-gantt-view-task-line-width) solid var(--vxe-ui-gantt-view-bar-critical-path-line-color);
|
|
18
|
+
}
|
|
19
|
+
.vxe-gantt-view--chart-row.is--critical > .vxe-gantt-view--chart-custom-bar .vxe-gantt-view--chart-custom-bar-content-wrapper {
|
|
20
|
+
border: var(--vxe-ui-gantt-view-task-line-width) solid var(--vxe-ui-gantt-view-bar-critical-path-line-color);
|
|
21
|
+
}
|
|
16
22
|
.vxe-gantt-view--chart-row.row--pending .vxe-gantt-view--chart-bar {
|
|
17
23
|
color: var(--vxe-ui-font-disabled-color);
|
|
18
24
|
opacity: 0.5;
|
|
@@ -202,12 +208,29 @@
|
|
|
202
208
|
|
|
203
209
|
.vxe-gantt {
|
|
204
210
|
--vxe-ui-gantt-current-split-bar-action-btn-offset-left: 0px;
|
|
211
|
+
--vxe-ui-gantt-current-font-size: var(--vxe-ui-font-size-default);
|
|
212
|
+
}
|
|
213
|
+
.vxe-gantt.size--xlarge {
|
|
214
|
+
--vxe-ui-gantt-current-font-size: var(--vxe-ui-font-size-xlarge);
|
|
215
|
+
}
|
|
216
|
+
.vxe-gantt.size--large {
|
|
217
|
+
--vxe-ui-gantt-current-font-size: var(--vxe-ui-font-size-large);
|
|
218
|
+
}
|
|
219
|
+
.vxe-gantt.size--medium {
|
|
220
|
+
--vxe-ui-gantt-current-font-size: var(--vxe-ui-font-size-medium);
|
|
221
|
+
}
|
|
222
|
+
.vxe-gantt.size--small {
|
|
223
|
+
--vxe-ui-gantt-current-font-size: var(--vxe-ui-font-size-small);
|
|
224
|
+
}
|
|
225
|
+
.vxe-gantt.size--mini {
|
|
226
|
+
--vxe-ui-gantt-current-font-size: var(--vxe-ui-font-size-mini);
|
|
205
227
|
}
|
|
206
228
|
|
|
207
229
|
.vxe-gantt {
|
|
208
230
|
position: relative;
|
|
209
231
|
display: flex;
|
|
210
232
|
flex-direction: column;
|
|
233
|
+
font-size: var(--vxe-ui-gantt-current-font-size);
|
|
211
234
|
}
|
|
212
235
|
.vxe-gantt.is--loading:before {
|
|
213
236
|
content: "";
|
|
@@ -887,17 +910,4 @@
|
|
|
887
910
|
.vxe-gantt-view--body-row:last-child .vxe-gantt-view--body-column .vxe-gantt-view-cell--row-resizable {
|
|
888
911
|
height: 0.4em;
|
|
889
912
|
bottom: 0px;
|
|
890
|
-
}
|
|
891
|
-
|
|
892
|
-
.vxe-gantt {
|
|
893
|
-
font-size: var(--vxe-ui-font-size-default);
|
|
894
|
-
}
|
|
895
|
-
.vxe-gantt.size--medium {
|
|
896
|
-
font-size: var(--vxe-ui-font-size-medium);
|
|
897
|
-
}
|
|
898
|
-
.vxe-gantt.size--small {
|
|
899
|
-
font-size: var(--vxe-ui-font-size-small);
|
|
900
|
-
}
|
|
901
|
-
.vxe-gantt.size--mini {
|
|
902
|
-
font-size: var(--vxe-ui-font-size-mini);
|
|
903
913
|
}
|
package/es/gantt/style.min.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@charset "UTF-8";.vxe-gantt-view--chart-task-wrapper{position:absolute;top:0;left:0;pointer-events:none}.vxe-gantt-view--chart-row,.vxe-gantt-view--chart-subview-row{position:relative;width:100%;height:0}.vxe-gantt-view--chart-row.row--pending .vxe-gantt-view--chart-bar{color:var(--vxe-ui-font-disabled-color);opacity:.5;text-decoration:line-through}.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-bar,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-custom-bar{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-bar-content-wrapper,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-bar .vxe-gantt-view--chart-custom-bar-content-wrapper,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-custom-bar .vxe-gantt-view--chart-bar-content-wrapper,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-custom-bar .vxe-gantt-view--chart-custom-bar-content-wrapper{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,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-custom-bar:hover::after{border-radius:var(--vxe-ui-gantt-view-task-bar-border-radius)}.vxe-gantt-view--chart-subview-row.row--pending .vxe-gantt-view--chart-subview-bar,.vxe-gantt-view--chart-subview-row.row--pending .vxe-gantt-view--chart-subview-custom-bar{color:var(--vxe-ui-font-disabled-color);opacity:.5;text-decoration:line-through}.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-bar,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-custom-bar{border-radius:var(--vxe-ui-gantt-view-task-bar-border-radius)}.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-bar .vxe-gantt-view--chart-subview-bar-content-wrapper,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-bar .vxe-gantt-view--chart-subview-custom-bar-content-wrapper,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-custom-bar .vxe-gantt-view--chart-subview-bar-content-wrapper,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-custom-bar .vxe-gantt-view--chart-subview-custom-bar-content-wrapper{border-radius:var(--vxe-ui-gantt-view-task-bar-border-radius)}.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-bar:hover::after,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-custom-bar:hover::after{border-radius:var(--vxe-ui-gantt-view-task-bar-border-radius)}.vxe-gantt-view--chart-subview-wrapper.is--overview>.vxe-gantt-view--chart-subview-row .vxe-gantt-view--chart-subview-bar{color:#fff;background-color:var(--vxe-ui-gantt-view-task-bar-overview-background-color)}.vxe-gantt-view--chart-bar,.vxe-gantt-view--chart-custom-bar,.vxe-gantt-view--chart-subview-bar,.vxe-gantt-view--chart-subview-custom-bar{display:flex;flex-direction:row;position:absolute;top:50%;left:0;transform:translateY(-50%);pointer-events:all}.vxe-gantt-view--chart-row>.vxe-gantt-view--chart-bar.is--default,.vxe-gantt-view--chart-row>.vxe-gantt-view--chart-custom-bar.is--default{color:#fff;background-color:var(--vxe-ui-gantt-view-task-bar-background-color)}.vxe-gantt-view--chart-subview-row>.vxe-gantt-view--chart-subview-bar.is--subview,.vxe-gantt-view--chart-subview-row>.vxe-gantt-view--chart-subview-custom-bar.is--subview{color:#fff;background-color:var(--vxe-ui-gantt-view-task-bar-overview-background-color)}.vxe-gantt-view--chart-subview-row>.vxe-gantt-view--chart-subview-bar.is--default,.vxe-gantt-view--chart-subview-row>.vxe-gantt-view--chart-subview-custom-bar.is--default{color:#fff;background-color:var(--vxe-ui-gantt-view-task-bar-background-color)}.vxe-gantt-view--chart-bar-content-wrapper,.vxe-gantt-view--chart-subview-bar-content-wrapper{height:var(--vxe-ui-gantt-view-chart-bar-height)}.vxe-gantt-view--chart-custom-bar-content-wrapper,.vxe-gantt-view--chart-subview-custom-bar-content-wrapper{min-height:var(--vxe-ui-gantt-view-chart-bar-height)}.vxe-gantt-view--chart-bar-content-wrapper,.vxe-gantt-view--chart-custom-bar-content-wrapper,.vxe-gantt-view--chart-subview-bar-content-wrapper,.vxe-gantt-view--chart-subview-custom-bar-content-wrapper{width:100%;overflow:hidden}.vxe-gantt-view--chart-bar-content-wrapper,.vxe-gantt-view--chart-subview-bar-content-wrapper{width:100%;display:flex;flex-direction:row;align-items:center}.vxe-gantt-view--chart-bar,.vxe-gantt-view--chart-custom-bar,.vxe-gantt-view--chart-subview-bar,.vxe-gantt-view--chart-subview-custom-bar{align-items:center}.vxe-gantt-view--chart-bar.is--default:hover::after,.vxe-gantt-view--chart-custom-bar.is--default:hover::after,.vxe-gantt-view--chart-subview-bar.is--default:hover::after,.vxe-gantt-view--chart-subview-custom-bar.is--default: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-bar.is--milestone,.vxe-gantt-view--chart-custom-bar.is--milestone,.vxe-gantt-view--chart-subview-bar.is--milestone,.vxe-gantt-view--chart-subview-custom-bar.is--milestone{white-space:nowrap}.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-view--chart-milestone-wrapper{display:flex;flex-direction:row;align-items:center}.vxe-gantt-view--chart-milestone-icon{flex-shrink:0;padding:0 .3em;color:var(--vxe-ui-font-primary-color)}.vxe-gantt-view--chart-milestone-icon.theme--primary{color:var(--vxe-ui-font-primary-color)}.vxe-gantt-view--chart-milestone-icon.theme--success{color:var(--vxe-ui-status-success-color)}.vxe-gantt-view--chart-milestone-icon.theme--info{color:var(--vxe-ui-status-info-color)}.vxe-gantt-view--chart-milestone-icon.theme--warning{color:var(--vxe-ui-status-warning-color)}.vxe-gantt-view--chart-milestone-icon.theme--danger{color:var(--vxe-ui-status-danger-color)}.vxe-gantt-view--chart-milestone-icon.theme--error{color:var(--vxe-ui-status-error-color)}.vxe-gantt-view--chart-milestone-icon i{display:inline-block}.vxe-gantt-view--chart-milestone-content{flex-grow:1}.vxe-gantt-view--chart-row.row--drag-move,.vxe-gantt-view--chart-subview-row.row--drag-move{transition:transform .5s ease}.vxe-gantt-view--chart-row.row--drag-origin,.vxe-gantt-view--chart-subview-row.row--drag-origin{opacity:.3}.vxe-gantt{--vxe-ui-gantt-current-split-bar-action-btn-offset-left:0px}.vxe-gantt{position:relative;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;flex-grow:1;overflow:hidden}.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{position:relative;flex-grow:1;overflow:hidden}.vxe-gantt .vxe-gantt--view-split-bar-handle{background-color:var(--vxe-ui-gantt-view-split-bar-background-color)}.vxe-gantt .vxe-gantt--view-split-bar-handle:active,.vxe-gantt .vxe-gantt--view-split-bar-handle:hover{background-color:var(--vxe-ui-gantt-view-split-bar-hover-background-color)}.vxe-gantt.is--animat .vxe-gantt--table-wrapper{transition:width .3s ease-in-out}.vxe-gantt.show--animat.hide--right .vxe-gantt--table-wrapper{width:calc(100% - var(--vxe-ui-gantt-view-split-bar-width))!important;flex-shrink:0;flex-grow:unset}.vxe-gantt--gantt-container.hide--left>.vxe-gantt--table-wrapper{width:0!important;flex-shrink:0;flex-grow:unset}.vxe-gantt--gantt-container.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--gantt-container.hide--right>.vxe-gantt--view-wrapper{width:0!important;flex-shrink:0;flex-grow:unset}.vxe-gantt--gantt-container.show--left.show--right .vxe-gantt--view-split-bar{width:var(--vxe-ui-gantt-view-split-bar-width)}.vxe-gantt--view-split-bar{width:0;flex-shrink:0}.vxe-gantt--view-split-bar.is--resize{cursor:col-resize}.vxe-gantt--layout-body-wrapper{display:flex;flex-direction:row;overflow:auto;flex-grow:1}.vxe-gantt--layout-body-content-wrapper{display:flex;flex-direction:column;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-handle-appearance,.vxe-gantt.border--full .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--inner .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--outer .vxe-gantt-view--scroll-x-handle-appearance{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-handle-appearance,.vxe-gantt.border--full.sx-pos--top .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--inner.sx-pos--top .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--outer.sx-pos--top .vxe-gantt-view--scroll-x-handle-appearance{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-handle-appearance,.vxe-gantt.border--full.sx-pos--bottom .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--inner.sx-pos--bottom .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--outer.sx-pos--bottom .vxe-gantt-view--scroll-x-handle-appearance{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-handle-appearance,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-handle-appearance{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-handle-appearance,.vxe-gantt.border--full.sy-pos--left .vxe-gantt-view--scroll-y-handle-appearance{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-handle-appearance,.vxe-gantt.border--full.sy-pos--right .vxe-gantt-view--scroll-y-handle-appearance{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--default .vxe-gantt-view--footer-wrapper,.vxe-gantt.border--full .vxe-gantt-view--footer-wrapper,.vxe-gantt.border--inner .vxe-gantt-view--footer-wrapper{border-top:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.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--gantt-container.is--ah-split-btn>.vxe-gantt--view-split-bar .vxe-gantt--view-split-bar-action-btn{opacity:0}.vxe-gantt--gantt-container.is--ah-split-btn:hover>.vxe-gantt--view-split-bar .vxe-gantt--view-split-bar-action-btn{opacity:1}.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:3}.vxe-gantt--view-split-bar-btn-wrapper{position:absolute;width:100%;top:50%;transform:translateY(-50%);z-index:5;pointer-events:none}.vxe-gantt--view-split-bar-action-btn{position:absolute;display:flex;flex-direction:row;align-items:center;justify-content:center;height:var(--vxe-ui-gantt-view-split-bar-action-btn-height);width:var(--vxe-ui-gantt-view-split-bar-action-btn-width);border-radius:var(--vxe-ui-base-border-radius);background-color:var(--vxe-ui-gantt-view-handle-button-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-action-btn:hover{color:#fff;background-color:var(--vxe-ui-font-primary-color)}.vxe-gantt--view-split-bar-action-btn:active{transform:scale(.9)}.vxe-gantt--view-split-bar-action-btn.is--prev{left:calc(var(--vxe-ui-gantt-view-split-bar-action-btn-width) * -1 - var(--vxe-ui-gantt-current-split-bar-action-btn-offset-left) - .2em)}.vxe-gantt--view-split-bar-action-btn.is--next{right:calc(var(--vxe-ui-gantt-view-split-bar-action-btn-width) * -1 - var(--vxe-ui-gantt-current-split-bar-action-btn-offset-left) - .2em)}.vxe-gantt--view-split-bar-action-btn i{font-size:.5em}.vxe-gantt--gantt-container.sy-pos--right.hide--right{--vxe-ui-gantt-current-split-bar-action-btn-offset-left:var(--vxe-ui-gantt-scrollbar-width)}.vxe-gantt--gantt-container.sy-pos--left.hide--left{--vxe-ui-gantt-current-split-bar-action-btn-offset-left:var(--vxe-ui-gantt-scrollbar-width)}.vxe-gantt--resizable-split-tip{display:none;position:absolute;top:0;left:0;width:1px;height:100%;z-index:7;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--body-table{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vxe-gantt-view--header-wrapper{background-color:var(--vxe-ui-table-header-background-color)}.vxe-gantt-view--footer-wrapper{margin-top:calc(var(--vxe-ui-table-border-width) * -1);background-color:var(--vxe-ui-table-footer-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:scroll;overflow-x:scroll}.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--body-inner-wrapper::-webkit-scrollbar,.vxe-gantt-view--header-inner-wrapper::-webkit-scrollbar{display:none}.vxe-gantt-view--header-column{text-align:center;font-size:1em;height:var(--vxe-ui-gantt-view-cell-height,var(--vxe-ui-table-row-line-height))}.vxe-gantt-view--header-column.is--now{color:var(--vxe-ui-gantt-view-task-now-line-color,var(--vxe-ui-font-primary-color))}.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--pending>.vxe-gantt-view--body-column::after{content:"";position:absolute;top:50%;left:0;width:100%;height:0;border-bottom:1px solid var(--vxe-ui-table-validate-error-color);z-index:1}.vxe-gantt-view--chart-now-line{position:absolute;left:0;top:0;height:100%}.vxe-gantt-view--chart-now-line::before{content:"";display:block;width:var(--vxe-ui-gantt-view-task-now-line-width,1px);height:100%;background-color:var(--vxe-ui-gantt-view-task-now-line-background-color,var(--vxe-ui-font-primary-color))}.vxe-gantt-view--body-row.row--stripe{background-color:var(--vxe-ui-table-row-striped-background-color)}.vxe-gantt-view--body-row.row--radio{background-color:var(--vxe-ui-table-row-radio-checked-background-color)}.vxe-gantt-view--body-row.row--checked{background-color:var(--vxe-ui-table-row-checkbox-checked-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--radio{background-color:var(--vxe-ui-table-row-hover-radio-checked-background-color)}.vxe-gantt-view--body-row.row--hover.row--checked{background-color:var(--vxe-ui-table-row-hover-checkbox-checked-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--body-row.row--drag-move{transition:transform .5s ease}.vxe-gantt-view--body-row.row--drag-origin>.vxe-gantt-view--body-column{opacity:.3}.vxe-gantt-view--body-column .vxe-gantt-view-cell--row-resizable{position:absolute;left:0;bottom:-.4em;height:.8em;width:100%;text-align:center;z-index:1;cursor:row-resize}.vxe-gantt-view--body-row:last-child .vxe-gantt-view--body-column .vxe-gantt-view-cell--row-resizable{height:.4em;bottom:0}.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-task-wrapper{position:absolute;top:0;left:0;pointer-events:none}.vxe-gantt-view--chart-row,.vxe-gantt-view--chart-subview-row{position:relative;width:100%;height:0}.vxe-gantt-view--chart-row.is--critical>.vxe-gantt-view--chart-bar .vxe-gantt-view--chart-bar-content-wrapper{border:var(--vxe-ui-gantt-view-task-line-width) solid var(--vxe-ui-gantt-view-bar-critical-path-line-color)}.vxe-gantt-view--chart-row.is--critical>.vxe-gantt-view--chart-custom-bar .vxe-gantt-view--chart-custom-bar-content-wrapper{border:var(--vxe-ui-gantt-view-task-line-width) solid var(--vxe-ui-gantt-view-bar-critical-path-line-color)}.vxe-gantt-view--chart-row.row--pending .vxe-gantt-view--chart-bar{color:var(--vxe-ui-font-disabled-color);opacity:.5;text-decoration:line-through}.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-bar,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-custom-bar{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-bar-content-wrapper,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-bar .vxe-gantt-view--chart-custom-bar-content-wrapper,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-custom-bar .vxe-gantt-view--chart-bar-content-wrapper,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-custom-bar .vxe-gantt-view--chart-custom-bar-content-wrapper{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,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-custom-bar:hover::after{border-radius:var(--vxe-ui-gantt-view-task-bar-border-radius)}.vxe-gantt-view--chart-subview-row.row--pending .vxe-gantt-view--chart-subview-bar,.vxe-gantt-view--chart-subview-row.row--pending .vxe-gantt-view--chart-subview-custom-bar{color:var(--vxe-ui-font-disabled-color);opacity:.5;text-decoration:line-through}.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-bar,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-custom-bar{border-radius:var(--vxe-ui-gantt-view-task-bar-border-radius)}.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-bar .vxe-gantt-view--chart-subview-bar-content-wrapper,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-bar .vxe-gantt-view--chart-subview-custom-bar-content-wrapper,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-custom-bar .vxe-gantt-view--chart-subview-bar-content-wrapper,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-custom-bar .vxe-gantt-view--chart-subview-custom-bar-content-wrapper{border-radius:var(--vxe-ui-gantt-view-task-bar-border-radius)}.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-bar:hover::after,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-custom-bar:hover::after{border-radius:var(--vxe-ui-gantt-view-task-bar-border-radius)}.vxe-gantt-view--chart-subview-wrapper.is--overview>.vxe-gantt-view--chart-subview-row .vxe-gantt-view--chart-subview-bar{color:#fff;background-color:var(--vxe-ui-gantt-view-task-bar-overview-background-color)}.vxe-gantt-view--chart-bar,.vxe-gantt-view--chart-custom-bar,.vxe-gantt-view--chart-subview-bar,.vxe-gantt-view--chart-subview-custom-bar{display:flex;flex-direction:row;position:absolute;top:50%;left:0;transform:translateY(-50%);pointer-events:all}.vxe-gantt-view--chart-row>.vxe-gantt-view--chart-bar.is--default,.vxe-gantt-view--chart-row>.vxe-gantt-view--chart-custom-bar.is--default{color:#fff;background-color:var(--vxe-ui-gantt-view-task-bar-background-color)}.vxe-gantt-view--chart-subview-row>.vxe-gantt-view--chart-subview-bar.is--subview,.vxe-gantt-view--chart-subview-row>.vxe-gantt-view--chart-subview-custom-bar.is--subview{color:#fff;background-color:var(--vxe-ui-gantt-view-task-bar-overview-background-color)}.vxe-gantt-view--chart-subview-row>.vxe-gantt-view--chart-subview-bar.is--default,.vxe-gantt-view--chart-subview-row>.vxe-gantt-view--chart-subview-custom-bar.is--default{color:#fff;background-color:var(--vxe-ui-gantt-view-task-bar-background-color)}.vxe-gantt-view--chart-bar-content-wrapper,.vxe-gantt-view--chart-subview-bar-content-wrapper{height:var(--vxe-ui-gantt-view-chart-bar-height)}.vxe-gantt-view--chart-custom-bar-content-wrapper,.vxe-gantt-view--chart-subview-custom-bar-content-wrapper{min-height:var(--vxe-ui-gantt-view-chart-bar-height)}.vxe-gantt-view--chart-bar-content-wrapper,.vxe-gantt-view--chart-custom-bar-content-wrapper,.vxe-gantt-view--chart-subview-bar-content-wrapper,.vxe-gantt-view--chart-subview-custom-bar-content-wrapper{width:100%;overflow:hidden}.vxe-gantt-view--chart-bar-content-wrapper,.vxe-gantt-view--chart-subview-bar-content-wrapper{width:100%;display:flex;flex-direction:row;align-items:center}.vxe-gantt-view--chart-bar,.vxe-gantt-view--chart-custom-bar,.vxe-gantt-view--chart-subview-bar,.vxe-gantt-view--chart-subview-custom-bar{align-items:center}.vxe-gantt-view--chart-bar.is--default:hover::after,.vxe-gantt-view--chart-custom-bar.is--default:hover::after,.vxe-gantt-view--chart-subview-bar.is--default:hover::after,.vxe-gantt-view--chart-subview-custom-bar.is--default: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-bar.is--milestone,.vxe-gantt-view--chart-custom-bar.is--milestone,.vxe-gantt-view--chart-subview-bar.is--milestone,.vxe-gantt-view--chart-subview-custom-bar.is--milestone{white-space:nowrap}.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-view--chart-milestone-wrapper{display:flex;flex-direction:row;align-items:center}.vxe-gantt-view--chart-milestone-icon{flex-shrink:0;padding:0 .3em;color:var(--vxe-ui-font-primary-color)}.vxe-gantt-view--chart-milestone-icon.theme--primary{color:var(--vxe-ui-font-primary-color)}.vxe-gantt-view--chart-milestone-icon.theme--success{color:var(--vxe-ui-status-success-color)}.vxe-gantt-view--chart-milestone-icon.theme--info{color:var(--vxe-ui-status-info-color)}.vxe-gantt-view--chart-milestone-icon.theme--warning{color:var(--vxe-ui-status-warning-color)}.vxe-gantt-view--chart-milestone-icon.theme--danger{color:var(--vxe-ui-status-danger-color)}.vxe-gantt-view--chart-milestone-icon.theme--error{color:var(--vxe-ui-status-error-color)}.vxe-gantt-view--chart-milestone-icon i{display:inline-block}.vxe-gantt-view--chart-milestone-content{flex-grow:1}.vxe-gantt-view--chart-row.row--drag-move,.vxe-gantt-view--chart-subview-row.row--drag-move{transition:transform .5s ease}.vxe-gantt-view--chart-row.row--drag-origin,.vxe-gantt-view--chart-subview-row.row--drag-origin{opacity:.3}.vxe-gantt{--vxe-ui-gantt-current-split-bar-action-btn-offset-left:0px;--vxe-ui-gantt-current-font-size:var(--vxe-ui-font-size-default)}.vxe-gantt.size--xlarge{--vxe-ui-gantt-current-font-size:var(--vxe-ui-font-size-xlarge)}.vxe-gantt.size--large{--vxe-ui-gantt-current-font-size:var(--vxe-ui-font-size-large)}.vxe-gantt.size--medium{--vxe-ui-gantt-current-font-size:var(--vxe-ui-font-size-medium)}.vxe-gantt.size--small{--vxe-ui-gantt-current-font-size:var(--vxe-ui-font-size-small)}.vxe-gantt.size--mini{--vxe-ui-gantt-current-font-size:var(--vxe-ui-font-size-mini)}.vxe-gantt{position:relative;display:flex;flex-direction:column;font-size:var(--vxe-ui-gantt-current-font-size)}.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;flex-grow:1;overflow:hidden}.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{position:relative;flex-grow:1;overflow:hidden}.vxe-gantt .vxe-gantt--view-split-bar-handle{background-color:var(--vxe-ui-gantt-view-split-bar-background-color)}.vxe-gantt .vxe-gantt--view-split-bar-handle:active,.vxe-gantt .vxe-gantt--view-split-bar-handle:hover{background-color:var(--vxe-ui-gantt-view-split-bar-hover-background-color)}.vxe-gantt.is--animat .vxe-gantt--table-wrapper{transition:width .3s ease-in-out}.vxe-gantt.show--animat.hide--right .vxe-gantt--table-wrapper{width:calc(100% - var(--vxe-ui-gantt-view-split-bar-width))!important;flex-shrink:0;flex-grow:unset}.vxe-gantt--gantt-container.hide--left>.vxe-gantt--table-wrapper{width:0!important;flex-shrink:0;flex-grow:unset}.vxe-gantt--gantt-container.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--gantt-container.hide--right>.vxe-gantt--view-wrapper{width:0!important;flex-shrink:0;flex-grow:unset}.vxe-gantt--gantt-container.show--left.show--right .vxe-gantt--view-split-bar{width:var(--vxe-ui-gantt-view-split-bar-width)}.vxe-gantt--view-split-bar{width:0;flex-shrink:0}.vxe-gantt--view-split-bar.is--resize{cursor:col-resize}.vxe-gantt--layout-body-wrapper{display:flex;flex-direction:row;overflow:auto;flex-grow:1}.vxe-gantt--layout-body-content-wrapper{display:flex;flex-direction:column;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-handle-appearance,.vxe-gantt.border--full .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--inner .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--outer .vxe-gantt-view--scroll-x-handle-appearance{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-handle-appearance,.vxe-gantt.border--full.sx-pos--top .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--inner.sx-pos--top .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--outer.sx-pos--top .vxe-gantt-view--scroll-x-handle-appearance{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-handle-appearance,.vxe-gantt.border--full.sx-pos--bottom .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--inner.sx-pos--bottom .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--outer.sx-pos--bottom .vxe-gantt-view--scroll-x-handle-appearance{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-handle-appearance,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-handle-appearance{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-handle-appearance,.vxe-gantt.border--full.sy-pos--left .vxe-gantt-view--scroll-y-handle-appearance{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-handle-appearance,.vxe-gantt.border--full.sy-pos--right .vxe-gantt-view--scroll-y-handle-appearance{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--default .vxe-gantt-view--footer-wrapper,.vxe-gantt.border--full .vxe-gantt-view--footer-wrapper,.vxe-gantt.border--inner .vxe-gantt-view--footer-wrapper{border-top:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.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--gantt-container.is--ah-split-btn>.vxe-gantt--view-split-bar .vxe-gantt--view-split-bar-action-btn{opacity:0}.vxe-gantt--gantt-container.is--ah-split-btn:hover>.vxe-gantt--view-split-bar .vxe-gantt--view-split-bar-action-btn{opacity:1}.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:3}.vxe-gantt--view-split-bar-btn-wrapper{position:absolute;width:100%;top:50%;transform:translateY(-50%);z-index:5;pointer-events:none}.vxe-gantt--view-split-bar-action-btn{position:absolute;display:flex;flex-direction:row;align-items:center;justify-content:center;height:var(--vxe-ui-gantt-view-split-bar-action-btn-height);width:var(--vxe-ui-gantt-view-split-bar-action-btn-width);border-radius:var(--vxe-ui-base-border-radius);background-color:var(--vxe-ui-gantt-view-handle-button-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-action-btn:hover{color:#fff;background-color:var(--vxe-ui-font-primary-color)}.vxe-gantt--view-split-bar-action-btn:active{transform:scale(.9)}.vxe-gantt--view-split-bar-action-btn.is--prev{left:calc(var(--vxe-ui-gantt-view-split-bar-action-btn-width) * -1 - var(--vxe-ui-gantt-current-split-bar-action-btn-offset-left) - .2em)}.vxe-gantt--view-split-bar-action-btn.is--next{right:calc(var(--vxe-ui-gantt-view-split-bar-action-btn-width) * -1 - var(--vxe-ui-gantt-current-split-bar-action-btn-offset-left) - .2em)}.vxe-gantt--view-split-bar-action-btn i{font-size:.5em}.vxe-gantt--gantt-container.sy-pos--right.hide--right{--vxe-ui-gantt-current-split-bar-action-btn-offset-left:var(--vxe-ui-gantt-scrollbar-width)}.vxe-gantt--gantt-container.sy-pos--left.hide--left{--vxe-ui-gantt-current-split-bar-action-btn-offset-left:var(--vxe-ui-gantt-scrollbar-width)}.vxe-gantt--resizable-split-tip{display:none;position:absolute;top:0;left:0;width:1px;height:100%;z-index:7;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--body-table{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vxe-gantt-view--header-wrapper{background-color:var(--vxe-ui-table-header-background-color)}.vxe-gantt-view--footer-wrapper{margin-top:calc(var(--vxe-ui-table-border-width) * -1);background-color:var(--vxe-ui-table-footer-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:scroll;overflow-x:scroll}.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--body-inner-wrapper::-webkit-scrollbar,.vxe-gantt-view--header-inner-wrapper::-webkit-scrollbar{display:none}.vxe-gantt-view--header-column{text-align:center;font-size:1em;height:var(--vxe-ui-gantt-view-cell-height,var(--vxe-ui-table-row-line-height))}.vxe-gantt-view--header-column.is--now{color:var(--vxe-ui-gantt-view-task-now-line-color,var(--vxe-ui-font-primary-color))}.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--pending>.vxe-gantt-view--body-column::after{content:"";position:absolute;top:50%;left:0;width:100%;height:0;border-bottom:1px solid var(--vxe-ui-table-validate-error-color);z-index:1}.vxe-gantt-view--chart-now-line{position:absolute;left:0;top:0;height:100%}.vxe-gantt-view--chart-now-line::before{content:"";display:block;width:var(--vxe-ui-gantt-view-task-now-line-width,1px);height:100%;background-color:var(--vxe-ui-gantt-view-task-now-line-background-color,var(--vxe-ui-font-primary-color))}.vxe-gantt-view--body-row.row--stripe{background-color:var(--vxe-ui-table-row-striped-background-color)}.vxe-gantt-view--body-row.row--radio{background-color:var(--vxe-ui-table-row-radio-checked-background-color)}.vxe-gantt-view--body-row.row--checked{background-color:var(--vxe-ui-table-row-checkbox-checked-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--radio{background-color:var(--vxe-ui-table-row-hover-radio-checked-background-color)}.vxe-gantt-view--body-row.row--hover.row--checked{background-color:var(--vxe-ui-table-row-hover-checkbox-checked-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--body-row.row--drag-move{transition:transform .5s ease}.vxe-gantt-view--body-row.row--drag-origin>.vxe-gantt-view--body-column{opacity:.3}.vxe-gantt-view--body-column .vxe-gantt-view-cell--row-resizable{position:absolute;left:0;bottom:-.4em;height:.8em;width:100%;text-align:center;z-index:1;cursor:row-resize}.vxe-gantt-view--body-row:last-child .vxe-gantt-view--body-column .vxe-gantt-view-cell--row-resizable{height:.4em;bottom:0}
|