vxe-gantt 4.1.2 → 4.1.4
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 +9 -2
- package/es/gantt/src/gantt-view.js +47 -24
- package/es/gantt/src/gantt.js +21 -23
- package/es/ui/index.js +34 -3
- package/es/ui/src/log.js +1 -1
- package/lib/gantt/src/gantt-chart.js +15 -2
- package/lib/gantt/src/gantt-chart.min.js +1 -1
- package/lib/gantt/src/gantt-view.js +65 -27
- package/lib/gantt/src/gantt-view.min.js +1 -1
- package/lib/gantt/src/gantt.js +25 -33
- package/lib/gantt/src/gantt.min.js +1 -1
- package/lib/index.umd.js +140 -66
- package/lib/index.umd.min.js +1 -1
- package/lib/ui/index.js +34 -3
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/package.json +3 -3
- package/packages/gantt/src/gantt-chart.ts +9 -2
- package/packages/gantt/src/gantt-view.ts +47 -24
- package/packages/gantt/src/gantt.ts +21 -26
- package/packages/ui/index.ts +34 -2
|
@@ -12,6 +12,7 @@ export default defineVxeComponent({
|
|
|
12
12
|
setup() {
|
|
13
13
|
const $xeGantt = inject('$xeGantt', {});
|
|
14
14
|
const $xeGanttView = inject('$xeGanttView', {});
|
|
15
|
+
const { internalData: ganttInternalData } = $xeGantt;
|
|
15
16
|
const { reactData, internalData } = $xeGanttView;
|
|
16
17
|
const { computeProgressField, computeTitleField, computeTaskBarOpts, computeScaleUnit } = $xeGantt.getComputeMaps();
|
|
17
18
|
const refElem = ref();
|
|
@@ -84,13 +85,19 @@ export default defineVxeComponent({
|
|
|
84
85
|
};
|
|
85
86
|
if (showTooltip) {
|
|
86
87
|
ons.onMouseover = (evnt) => {
|
|
88
|
+
const { dragBarRow } = ganttInternalData;
|
|
87
89
|
const ttParams = Object.assign({ $event: evnt }, ctParams);
|
|
88
|
-
|
|
90
|
+
if (!dragBarRow) {
|
|
91
|
+
$xeGantt.triggerTaskBarTooltipEvent(evnt, ttParams);
|
|
92
|
+
}
|
|
89
93
|
$xeGantt.dispatchEvent('task-bar-mouseenter', ttParams, evnt);
|
|
90
94
|
};
|
|
91
95
|
ons.onMouseleave = (evnt) => {
|
|
96
|
+
const { dragBarRow } = ganttInternalData;
|
|
92
97
|
const ttParams = Object.assign({ $event: evnt }, ctParams);
|
|
93
|
-
|
|
98
|
+
if (!dragBarRow) {
|
|
99
|
+
$xeGantt.handleTaskBarTooltipLeaveEvent(evnt, ttParams);
|
|
100
|
+
}
|
|
94
101
|
$xeGantt.dispatchEvent('task-bar-mouseleave', ttParams, evnt);
|
|
95
102
|
};
|
|
96
103
|
}
|
|
@@ -42,7 +42,8 @@ export default defineVxeComponent({
|
|
|
42
42
|
setup(props, context) {
|
|
43
43
|
const xID = XEUtils.uniqueId();
|
|
44
44
|
const $xeGantt = inject('$xeGantt', {});
|
|
45
|
-
const {
|
|
45
|
+
const { internalData: ganttInternalData } = $xeGantt;
|
|
46
|
+
const { computeTaskOpts, computeTaskViewOpts, computeStartField, computeEndField, computeScrollbarOpts, computeScrollbarXToTop, computeScrollbarYToLeft, computeScaleUnit, computeWeekScale, computeMinScale } = $xeGantt.getComputeMaps();
|
|
46
47
|
const refElem = ref();
|
|
47
48
|
const refScrollXVirtualElem = ref();
|
|
48
49
|
const refScrollYVirtualElem = ref();
|
|
@@ -93,17 +94,20 @@ export default defineVxeComponent({
|
|
|
93
94
|
};
|
|
94
95
|
const computeScaleDateList = computed(() => {
|
|
95
96
|
const { minViewDate, maxViewDate } = reactData;
|
|
97
|
+
const taskViewOpts = computeTaskViewOpts.value;
|
|
96
98
|
const minScale = computeMinScale.value;
|
|
99
|
+
const { gridding } = taskViewOpts;
|
|
97
100
|
const dateList = [];
|
|
98
101
|
if (!minViewDate || !maxViewDate) {
|
|
99
102
|
return dateList;
|
|
100
103
|
}
|
|
101
|
-
const
|
|
102
|
-
const
|
|
104
|
+
const leftSize = -XEUtils.toNumber(gridding ? gridding.leftSpacing || 0 : 0);
|
|
105
|
+
const rightSize = XEUtils.toNumber(gridding ? gridding.rightSpacing || 0 : 0);
|
|
103
106
|
switch (minScale.type) {
|
|
104
107
|
case 'year': {
|
|
105
|
-
let currDate = XEUtils.getWhatYear(minViewDate,
|
|
106
|
-
|
|
108
|
+
let currDate = XEUtils.getWhatYear(minViewDate, leftSize, 'first');
|
|
109
|
+
const endDate = XEUtils.getWhatYear(maxViewDate, rightSize, 'first');
|
|
110
|
+
while (currDate <= endDate) {
|
|
107
111
|
const itemDate = currDate;
|
|
108
112
|
dateList.push(itemDate);
|
|
109
113
|
currDate = XEUtils.getWhatYear(currDate, 1);
|
|
@@ -111,8 +115,9 @@ export default defineVxeComponent({
|
|
|
111
115
|
break;
|
|
112
116
|
}
|
|
113
117
|
case 'quarter': {
|
|
114
|
-
let currDate = XEUtils.getWhatQuarter(minViewDate,
|
|
115
|
-
|
|
118
|
+
let currDate = XEUtils.getWhatQuarter(minViewDate, leftSize, 'first');
|
|
119
|
+
const endDate = XEUtils.getWhatQuarter(maxViewDate, rightSize, 'first');
|
|
120
|
+
while (currDate <= endDate) {
|
|
116
121
|
const itemDate = currDate;
|
|
117
122
|
dateList.push(itemDate);
|
|
118
123
|
currDate = XEUtils.getWhatQuarter(currDate, 1);
|
|
@@ -120,8 +125,9 @@ export default defineVxeComponent({
|
|
|
120
125
|
break;
|
|
121
126
|
}
|
|
122
127
|
case 'month': {
|
|
123
|
-
let currDate = XEUtils.getWhatMonth(minViewDate,
|
|
124
|
-
|
|
128
|
+
let currDate = XEUtils.getWhatMonth(minViewDate, leftSize, 'first');
|
|
129
|
+
const endDate = XEUtils.getWhatMonth(maxViewDate, rightSize, 'first');
|
|
130
|
+
while (currDate <= endDate) {
|
|
125
131
|
const itemDate = currDate;
|
|
126
132
|
dateList.push(itemDate);
|
|
127
133
|
currDate = XEUtils.getWhatMonth(currDate, 1);
|
|
@@ -129,8 +135,9 @@ export default defineVxeComponent({
|
|
|
129
135
|
break;
|
|
130
136
|
}
|
|
131
137
|
case 'week': {
|
|
132
|
-
let currDate = XEUtils.getWhatWeek(minViewDate,
|
|
133
|
-
|
|
138
|
+
let currDate = XEUtils.getWhatWeek(minViewDate, leftSize, minScale.startDay, minScale.startDay);
|
|
139
|
+
const endDate = XEUtils.getWhatWeek(maxViewDate, rightSize, minScale.startDay, minScale.startDay);
|
|
140
|
+
while (currDate <= endDate) {
|
|
134
141
|
const itemDate = currDate;
|
|
135
142
|
dateList.push(itemDate);
|
|
136
143
|
currDate = XEUtils.getWhatWeek(currDate, 1);
|
|
@@ -138,12 +145,22 @@ export default defineVxeComponent({
|
|
|
138
145
|
break;
|
|
139
146
|
}
|
|
140
147
|
case 'day':
|
|
141
|
-
case 'date':
|
|
148
|
+
case 'date': {
|
|
149
|
+
let currDate = XEUtils.getWhatDay(minViewDate, leftSize, 'first');
|
|
150
|
+
const endDate = XEUtils.getWhatDay(maxViewDate, rightSize, 'first');
|
|
151
|
+
while (currDate <= endDate) {
|
|
152
|
+
const itemDate = currDate;
|
|
153
|
+
dateList.push(itemDate);
|
|
154
|
+
currDate = XEUtils.getWhatDay(currDate, 1);
|
|
155
|
+
}
|
|
156
|
+
break;
|
|
157
|
+
}
|
|
142
158
|
case 'hour':
|
|
143
159
|
case 'minute':
|
|
144
160
|
case 'second': {
|
|
145
161
|
const gapTime = getStandardGapTime(minScale.type);
|
|
146
|
-
let currTime =
|
|
162
|
+
let currTime = minViewDate.getTime() + (leftSize * gapTime);
|
|
163
|
+
const endTime = maxViewDate.getTime() + (rightSize * gapTime);
|
|
147
164
|
while (currTime <= endTime) {
|
|
148
165
|
const itemDate = new Date(currTime);
|
|
149
166
|
dateList.push(itemDate);
|
|
@@ -246,12 +263,13 @@ export default defineVxeComponent({
|
|
|
246
263
|
};
|
|
247
264
|
for (let i = 0; i < scaleDateList.length; i++) {
|
|
248
265
|
const itemDate = scaleDateList[i];
|
|
249
|
-
const [yyyy, MM, dd, HH, mm, ss] = XEUtils.toDateString(itemDate, 'yyyy-M-d-H-m-s').split('-');
|
|
266
|
+
const [yy, yyyy, M, MM, d, dd, H, HH, m, mm, s, ss] = XEUtils.toDateString(itemDate, 'yy-yyyy-M-MM-d-dd-H-HH-m-mm-s-ss').split('-');
|
|
250
267
|
const e = itemDate.getDay();
|
|
251
268
|
const E = e + 1;
|
|
252
269
|
const q = Math.ceil((itemDate.getMonth() + 1) / 3);
|
|
253
|
-
const W = XEUtils.getYearWeek(itemDate, weekScale ? weekScale.startDay : undefined)
|
|
254
|
-
const
|
|
270
|
+
const W = `${XEUtils.getYearWeek(itemDate, weekScale ? weekScale.startDay : undefined)}`;
|
|
271
|
+
const WW = XEUtils.padStart(W, 2, '0');
|
|
272
|
+
const dateObj = { date: itemDate, yy, yyyy, M, MM, d, dd, H, HH, m, mm, s, ss, q, W, WW, E, e };
|
|
255
273
|
const colMaps = {
|
|
256
274
|
year: {
|
|
257
275
|
field: yyyy,
|
|
@@ -380,7 +398,7 @@ export default defineVxeComponent({
|
|
|
380
398
|
const offsetLeftSize = (indexMaps[startStr] || 0) + subtract;
|
|
381
399
|
return {
|
|
382
400
|
offsetLeftSize,
|
|
383
|
-
offsetWidthSize: (indexMaps[endStr] || 0) - offsetLeftSize + addSize
|
|
401
|
+
offsetWidthSize: (indexMaps[endStr] || 0) - offsetLeftSize + addSize + 1
|
|
384
402
|
};
|
|
385
403
|
};
|
|
386
404
|
}
|
|
@@ -403,7 +421,7 @@ export default defineVxeComponent({
|
|
|
403
421
|
const offsetLeftSize = (indexMaps[startStr] || 0) + subtract;
|
|
404
422
|
return {
|
|
405
423
|
offsetLeftSize,
|
|
406
|
-
offsetWidthSize: (indexMaps[endStr] || 0) - offsetLeftSize + addSize
|
|
424
|
+
offsetWidthSize: (indexMaps[endStr] || 0) - offsetLeftSize + addSize + 1
|
|
407
425
|
};
|
|
408
426
|
};
|
|
409
427
|
}
|
|
@@ -426,7 +444,7 @@ export default defineVxeComponent({
|
|
|
426
444
|
const offsetLeftSize = (indexMaps[startStr] || 0) + subtract;
|
|
427
445
|
return {
|
|
428
446
|
offsetLeftSize,
|
|
429
|
-
offsetWidthSize: (indexMaps[endStr] || 0) - offsetLeftSize + addSize
|
|
447
|
+
offsetWidthSize: (indexMaps[endStr] || 0) - offsetLeftSize + addSize + 1
|
|
430
448
|
};
|
|
431
449
|
};
|
|
432
450
|
}
|
|
@@ -449,7 +467,7 @@ export default defineVxeComponent({
|
|
|
449
467
|
const offsetLeftSize = (indexMaps[startStr] || 0) + subtract;
|
|
450
468
|
return {
|
|
451
469
|
offsetLeftSize,
|
|
452
|
-
offsetWidthSize: (indexMaps[endStr] || 0) - offsetLeftSize + addSize
|
|
470
|
+
offsetWidthSize: (indexMaps[endStr] || 0) - offsetLeftSize + addSize + 1
|
|
453
471
|
};
|
|
454
472
|
};
|
|
455
473
|
}
|
|
@@ -473,7 +491,7 @@ export default defineVxeComponent({
|
|
|
473
491
|
const offsetLeftSize = (indexMaps[startStr] || 0) + subtract;
|
|
474
492
|
return {
|
|
475
493
|
offsetLeftSize,
|
|
476
|
-
offsetWidthSize: (indexMaps[endStr] || 0) - offsetLeftSize + addSize
|
|
494
|
+
offsetWidthSize: (indexMaps[endStr] || 0) - offsetLeftSize + addSize + 1
|
|
477
495
|
};
|
|
478
496
|
};
|
|
479
497
|
}
|
|
@@ -496,7 +514,7 @@ export default defineVxeComponent({
|
|
|
496
514
|
const offsetLeftSize = (indexMaps[startStr] || 0) + subtract;
|
|
497
515
|
return {
|
|
498
516
|
offsetLeftSize,
|
|
499
|
-
offsetWidthSize: (indexMaps[endStr] || 0) - offsetLeftSize + addSize
|
|
517
|
+
offsetWidthSize: (indexMaps[endStr] || 0) - offsetLeftSize + addSize + 1
|
|
500
518
|
};
|
|
501
519
|
};
|
|
502
520
|
}
|
|
@@ -519,7 +537,7 @@ export default defineVxeComponent({
|
|
|
519
537
|
const offsetLeftSize = (indexMaps[startStr] || 0) + subtract;
|
|
520
538
|
return {
|
|
521
539
|
offsetLeftSize,
|
|
522
|
-
offsetWidthSize: (indexMaps[endStr] || 0) - offsetLeftSize + addSize
|
|
540
|
+
offsetWidthSize: (indexMaps[endStr] || 0) - offsetLeftSize + addSize + 1
|
|
523
541
|
};
|
|
524
542
|
};
|
|
525
543
|
}
|
|
@@ -687,16 +705,21 @@ export default defineVxeComponent({
|
|
|
687
705
|
}
|
|
688
706
|
};
|
|
689
707
|
const updateChart = () => {
|
|
708
|
+
const { dragBarRow } = ganttInternalData;
|
|
690
709
|
const { viewCellWidth } = reactData;
|
|
691
710
|
const { elemStore, chartMaps } = internalData;
|
|
711
|
+
const $xeTable = internalData.xeTable;
|
|
692
712
|
const chartWrapper = getRefElem(elemStore['main-chart-wrapper']);
|
|
693
|
-
if (chartWrapper) {
|
|
713
|
+
if (chartWrapper && $xeTable) {
|
|
694
714
|
XEUtils.arrayEach(chartWrapper.children, (rowEl) => {
|
|
695
715
|
const barEl = rowEl.children[0];
|
|
696
716
|
if (!barEl) {
|
|
697
717
|
return;
|
|
698
718
|
}
|
|
699
719
|
const rowid = rowEl.getAttribute('rowid');
|
|
720
|
+
if (dragBarRow && $xeTable.getRowid(dragBarRow) === rowid) {
|
|
721
|
+
return;
|
|
722
|
+
}
|
|
700
723
|
const rowRest = rowid ? chartMaps[rowid] : null;
|
|
701
724
|
barEl.style.left = `${rowRest ? viewCellWidth * rowRest.oLeftSize : 0}px`;
|
|
702
725
|
barEl.style.width = `${rowRest ? viewCellWidth * rowRest.oWidthSize : 0}px`;
|
package/es/gantt/src/gantt.js
CHANGED
|
@@ -19,7 +19,8 @@ function createInternalData() {
|
|
|
19
19
|
return {
|
|
20
20
|
uFoot: false,
|
|
21
21
|
resizeTableWidth: 0
|
|
22
|
-
// barTipTimeout:
|
|
22
|
+
// barTipTimeout: null
|
|
23
|
+
// dragBarRow: null
|
|
23
24
|
};
|
|
24
25
|
}
|
|
25
26
|
const viewTypeLevelMaps = {
|
|
@@ -379,6 +380,7 @@ export default defineVxeComponent({
|
|
|
379
380
|
refForm,
|
|
380
381
|
refToolbar,
|
|
381
382
|
refPager,
|
|
383
|
+
refGanttView,
|
|
382
384
|
refGanttContainerElem,
|
|
383
385
|
refClassifyWrapperElem,
|
|
384
386
|
refPopupContainerElem
|
|
@@ -423,28 +425,24 @@ export default defineVxeComponent({
|
|
|
423
425
|
const taskScaleConfs = computeTaskViewScales.value;
|
|
424
426
|
const taskViewScaleOpts = computeTaskViewScaleOpts.value;
|
|
425
427
|
const scaleConfs = [];
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
}
|
|
445
|
-
if (!scaleConfs.length) {
|
|
446
|
-
scaleConfs.push({ type: 'month', level: viewTypeLevelMaps.month }, { type: 'date', level: viewTypeLevelMaps.date });
|
|
447
|
-
}
|
|
428
|
+
const keyMaps = {};
|
|
429
|
+
const scaleList = (taskScaleConfs && taskScaleConfs.length ? taskScaleConfs : ['month', 'date']);
|
|
430
|
+
scaleList.forEach(conf => {
|
|
431
|
+
const sConf = !conf || XEUtils.isString(conf) ? { type: conf } : conf;
|
|
432
|
+
const { type } = sConf;
|
|
433
|
+
if (!type || !viewTypeLevelMaps[type]) {
|
|
434
|
+
errLog('vxe.error.errProp', [`type=${type}`, XEUtils.keys(viewTypeLevelMaps).join(',')]);
|
|
435
|
+
return;
|
|
436
|
+
}
|
|
437
|
+
if (keyMaps[type]) {
|
|
438
|
+
errLog('vxe.error.repeatProp', ['type', type]);
|
|
439
|
+
return;
|
|
440
|
+
}
|
|
441
|
+
keyMaps[type] = true;
|
|
442
|
+
scaleConfs.push(Object.assign({}, type ? taskViewScaleOpts[type] || {} : {}, sConf, {
|
|
443
|
+
level: getViewTypeLevel(type)
|
|
444
|
+
}));
|
|
445
|
+
});
|
|
448
446
|
reactData.taskScaleList = XEUtils.orderBy(scaleConfs, { field: 'level', order: 'desc' });
|
|
449
447
|
};
|
|
450
448
|
const initToolbar = () => {
|
package/es/ui/index.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { VxeUI } from '@vxe-ui/core';
|
|
2
2
|
import { errLog } from './src/log';
|
|
3
3
|
const { setConfig, setIcon, checkVersion } = VxeUI;
|
|
4
|
-
VxeUI.ganttVersion = "4.1.
|
|
4
|
+
VxeUI.ganttVersion = "4.1.4";
|
|
5
|
+
const ymdFormat = 'yyyy-MM-dd';
|
|
6
|
+
const ymdhmsFormat = 'yyyy-MM-dd HH:mm:ss';
|
|
5
7
|
setConfig({
|
|
6
8
|
gantt: {
|
|
7
9
|
// size: null,
|
|
@@ -44,12 +46,41 @@ setConfig({
|
|
|
44
46
|
enterable: true
|
|
45
47
|
},
|
|
46
48
|
taskViewScaleConfig: {
|
|
49
|
+
year: {
|
|
50
|
+
valueFormat: ymdFormat
|
|
51
|
+
},
|
|
52
|
+
quarter: {
|
|
53
|
+
valueFormat: ymdFormat
|
|
54
|
+
},
|
|
55
|
+
month: {
|
|
56
|
+
valueFormat: ymdFormat
|
|
57
|
+
},
|
|
47
58
|
week: {
|
|
48
|
-
startDay: 1
|
|
59
|
+
startDay: 1,
|
|
60
|
+
valueFormat: ymdFormat
|
|
61
|
+
},
|
|
62
|
+
day: {
|
|
63
|
+
valueFormat: ymdFormat
|
|
64
|
+
},
|
|
65
|
+
date: {
|
|
66
|
+
valueFormat: ymdFormat
|
|
67
|
+
},
|
|
68
|
+
hour: {
|
|
69
|
+
valueFormat: ymdhmsFormat
|
|
70
|
+
},
|
|
71
|
+
minute: {
|
|
72
|
+
valueFormat: ymdhmsFormat
|
|
73
|
+
},
|
|
74
|
+
second: {
|
|
75
|
+
valueFormat: ymdhmsFormat
|
|
49
76
|
}
|
|
50
77
|
},
|
|
51
78
|
taskViewConfig: {
|
|
52
|
-
showNowLine: true
|
|
79
|
+
showNowLine: true,
|
|
80
|
+
gridding: {
|
|
81
|
+
// leftSpacing: 0,
|
|
82
|
+
// rightSpacing: 0
|
|
83
|
+
}
|
|
53
84
|
},
|
|
54
85
|
taskSplitConfig: {
|
|
55
86
|
enabled: true,
|
package/es/ui/src/log.js
CHANGED
|
@@ -21,6 +21,9 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
21
21
|
setup() {
|
|
22
22
|
const $xeGantt = (0, _vue.inject)('$xeGantt', {});
|
|
23
23
|
const $xeGanttView = (0, _vue.inject)('$xeGanttView', {});
|
|
24
|
+
const {
|
|
25
|
+
internalData: ganttInternalData
|
|
26
|
+
} = $xeGantt;
|
|
24
27
|
const {
|
|
25
28
|
reactData,
|
|
26
29
|
internalData
|
|
@@ -131,17 +134,27 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
131
134
|
};
|
|
132
135
|
if (showTooltip) {
|
|
133
136
|
ons.onMouseover = evnt => {
|
|
137
|
+
const {
|
|
138
|
+
dragBarRow
|
|
139
|
+
} = ganttInternalData;
|
|
134
140
|
const ttParams = Object.assign({
|
|
135
141
|
$event: evnt
|
|
136
142
|
}, ctParams);
|
|
137
|
-
|
|
143
|
+
if (!dragBarRow) {
|
|
144
|
+
$xeGantt.triggerTaskBarTooltipEvent(evnt, ttParams);
|
|
145
|
+
}
|
|
138
146
|
$xeGantt.dispatchEvent('task-bar-mouseenter', ttParams, evnt);
|
|
139
147
|
};
|
|
140
148
|
ons.onMouseleave = evnt => {
|
|
149
|
+
const {
|
|
150
|
+
dragBarRow
|
|
151
|
+
} = ganttInternalData;
|
|
141
152
|
const ttParams = Object.assign({
|
|
142
153
|
$event: evnt
|
|
143
154
|
}, ctParams);
|
|
144
|
-
|
|
155
|
+
if (!dragBarRow) {
|
|
156
|
+
$xeGantt.handleTaskBarTooltipLeaveEvent(evnt, ttParams);
|
|
157
|
+
}
|
|
145
158
|
$xeGantt.dispatchEvent('task-bar-mouseleave', ttParams, evnt);
|
|
146
159
|
};
|
|
147
160
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_core=require("@vxe-ui/core"),_xeUtils=_interopRequireDefault(require("xe-utils")),_util=require("./util"),_utils=require("../../ui/src/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let renderEmptyElement=_core.VxeUI.renderEmptyElement,sourceType="gantt",viewType="chart";var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttViewChart",setup(){let C=(0,_vue.inject)("$xeGantt",{}),a=(0,_vue.inject)("$xeGanttView",{}),{reactData:r,internalData:t}=a,{computeProgressField:
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_core=require("@vxe-ui/core"),_xeUtils=_interopRequireDefault(require("xe-utils")),_util=require("./util"),_utils=require("../../ui/src/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let renderEmptyElement=_core.VxeUI.renderEmptyElement,sourceType="gantt",viewType="chart";var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttViewChart",setup(){let C=(0,_vue.inject)("$xeGantt",{}),a=(0,_vue.inject)("$xeGanttView",{}),D=C.internalData,{reactData:r,internalData:t}=a,{computeProgressField:M,computeTitleField:B,computeTaskBarOpts:R,computeScaleUnit:q}=C.getComputeMaps(),l=(0,_vue.ref)(),w=(e,t,a,r,l,n)=>{var o=e.props.treeConfig,u=e.reactData.resizeHeightFlag,i=e.internalData.fullAllDataRowIdData,{computeCellOpts:e,computeRowOpts:s,computeDefaultRowHeight:c}=e.getComputeMaps(),e=e.value,s=s.value,c=c.value,v=C.context.slots,v=v.taskBar||v["task-bar"],d=B.value,p=M.value,g=R.value,h=q.value;let m={$gantt:C,row:t,scaleType:h};var{showProgress:g,showContent:w,contentMethod:x,barStyle:_,drag:f,showTooltip:T}=g,E=_xeUtils.default.isFunction(_),_=(_?E?_(m):_:{})||{},k=_.round,i=i[a]||{},u=0<(u?i.resizeHeight:0),i=(0,_util.getCellRestHeight)(i,e,s,c);let b=(0,_utils.getStringValue)(_xeUtils.default.get(t,d));e={},s={width:`${(g?Math.min(100,Math.max(0,_xeUtils.default.toNumber(_xeUtils.default.get(t,p)))):0)||0}%`};E&&({bgColor:c,completedBgColor:d}=_,c&&(e.backgroundColor=c),d)&&(s.backgroundColor=d),x&&(b=(0,_utils.getStringValue)(x({row:t,title:b,scaleType:h})));let y={$gantt:C,source:sourceType,type:viewType,scaleType:h,row:t,$rowIndex:l,rowIndex:r,_rowIndex:n};p={onClick(e){C.handleTaskBarClickEvent(e,m)},onDblclick(e){C.handleTaskBarDblclickEvent(e,m)},onMousedown(e){C.handleTaskBarMousedownEvent&&C.handleTaskBarMousedownEvent(e,m)}};return T&&(p.onMouseover=e=>{var t=D.dragBarRow,a=Object.assign({$event:e},y);t||C.triggerTaskBarTooltipEvent(e,a),C.dispatchEvent("task-bar-mouseenter",a,e)},p.onMouseleave=e=>{var t=D.dragBarRow,a=Object.assign({$event:e},y);t||C.handleTaskBarTooltipLeaveEvent(e,a),C.dispatchEvent("task-bar-mouseleave",a,e)}),(0,_vue.h)("div",{key:o?a:l,rowid:a,class:["vxe-gantt-view--chart-row",{"is--round":k,"is--drag":f,"col--rs-height":u}],style:{height:i+"px"},onContextmenu(e){C.handleTaskBarContextmenuEvent(e,y)}},[(0,_vue.h)("div",Object.assign({class:v?"vxe-gantt-view--chart-custom-bar":"vxe-gantt-view--chart-bar",style:e,rowid:a},p),v?C.callSlot(v,m):[g?(0,_vue.h)("div",{class:"vxe-gantt-view--chart-progress",style:s}):renderEmptyElement(C),w?(0,_vue.h)("div",{class:"vxe-gantt-view--chart-content"},b):renderEmptyElement(C)])])},x=(i,e)=>{let s=i.props.treeConfig,c=i.reactData.treeExpandedFlag,{fullAllDataRowIdData:v,treeExpandedMaps:d}=i.internalData;var t=i.getComputeMaps().computeTreeOpts,t=t.value;let p=t.transform,g=t.children||t.childrenField,h=r.scrollYLoad,m=[];return e.forEach((e,t)=>{var a=i?i.getRowid(e):"",r=v[a]||{};let l=t,n=-1,o=(r&&(l=r.index,n=r._index),m.push(w(i,e,a,l,t,n)),!1),u=[];!s||h||p||(u=e[g],o=!!c&&u&&0<u.length&&!!d[a]),o&&m.push(...x(i,u))}),m};return(0,_vue.onMounted)(()=>{var e=t.elemStore;e["main-chart-wrapper"]=l}),(0,_vue.onUnmounted)(()=>{var e=t.elemStore;e["main-chart-wrapper"]=null}),()=>{var e=a.internalData.xeTable,t=r.tableData;return(0,_vue.h)("div",{ref:l,class:"vxe-gantt-view--chart-wrapper"},e?x(e,t):[])}}});
|
|
@@ -51,8 +51,12 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
51
51
|
setup(props, context) {
|
|
52
52
|
const xID = _xeUtils.default.uniqueId();
|
|
53
53
|
const $xeGantt = (0, _vue.inject)('$xeGantt', {});
|
|
54
|
+
const {
|
|
55
|
+
internalData: ganttInternalData
|
|
56
|
+
} = $xeGantt;
|
|
54
57
|
const {
|
|
55
58
|
computeTaskOpts,
|
|
59
|
+
computeTaskViewOpts,
|
|
56
60
|
computeStartField,
|
|
57
61
|
computeEndField,
|
|
58
62
|
computeScrollbarOpts,
|
|
@@ -115,18 +119,23 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
115
119
|
minViewDate,
|
|
116
120
|
maxViewDate
|
|
117
121
|
} = reactData;
|
|
122
|
+
const taskViewOpts = computeTaskViewOpts.value;
|
|
118
123
|
const minScale = computeMinScale.value;
|
|
124
|
+
const {
|
|
125
|
+
gridding
|
|
126
|
+
} = taskViewOpts;
|
|
119
127
|
const dateList = [];
|
|
120
128
|
if (!minViewDate || !maxViewDate) {
|
|
121
129
|
return dateList;
|
|
122
130
|
}
|
|
123
|
-
const
|
|
124
|
-
const
|
|
131
|
+
const leftSize = -_xeUtils.default.toNumber(gridding ? gridding.leftSpacing || 0 : 0);
|
|
132
|
+
const rightSize = _xeUtils.default.toNumber(gridding ? gridding.rightSpacing || 0 : 0);
|
|
125
133
|
switch (minScale.type) {
|
|
126
134
|
case 'year':
|
|
127
135
|
{
|
|
128
|
-
let currDate = _xeUtils.default.getWhatYear(minViewDate,
|
|
129
|
-
|
|
136
|
+
let currDate = _xeUtils.default.getWhatYear(minViewDate, leftSize, 'first');
|
|
137
|
+
const endDate = _xeUtils.default.getWhatYear(maxViewDate, rightSize, 'first');
|
|
138
|
+
while (currDate <= endDate) {
|
|
130
139
|
const itemDate = currDate;
|
|
131
140
|
dateList.push(itemDate);
|
|
132
141
|
currDate = _xeUtils.default.getWhatYear(currDate, 1);
|
|
@@ -135,8 +144,9 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
135
144
|
}
|
|
136
145
|
case 'quarter':
|
|
137
146
|
{
|
|
138
|
-
let currDate = _xeUtils.default.getWhatQuarter(minViewDate,
|
|
139
|
-
|
|
147
|
+
let currDate = _xeUtils.default.getWhatQuarter(minViewDate, leftSize, 'first');
|
|
148
|
+
const endDate = _xeUtils.default.getWhatQuarter(maxViewDate, rightSize, 'first');
|
|
149
|
+
while (currDate <= endDate) {
|
|
140
150
|
const itemDate = currDate;
|
|
141
151
|
dateList.push(itemDate);
|
|
142
152
|
currDate = _xeUtils.default.getWhatQuarter(currDate, 1);
|
|
@@ -145,8 +155,9 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
145
155
|
}
|
|
146
156
|
case 'month':
|
|
147
157
|
{
|
|
148
|
-
let currDate = _xeUtils.default.getWhatMonth(minViewDate,
|
|
149
|
-
|
|
158
|
+
let currDate = _xeUtils.default.getWhatMonth(minViewDate, leftSize, 'first');
|
|
159
|
+
const endDate = _xeUtils.default.getWhatMonth(maxViewDate, rightSize, 'first');
|
|
160
|
+
while (currDate <= endDate) {
|
|
150
161
|
const itemDate = currDate;
|
|
151
162
|
dateList.push(itemDate);
|
|
152
163
|
currDate = _xeUtils.default.getWhatMonth(currDate, 1);
|
|
@@ -155,8 +166,9 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
155
166
|
}
|
|
156
167
|
case 'week':
|
|
157
168
|
{
|
|
158
|
-
let currDate = _xeUtils.default.getWhatWeek(minViewDate,
|
|
159
|
-
|
|
169
|
+
let currDate = _xeUtils.default.getWhatWeek(minViewDate, leftSize, minScale.startDay, minScale.startDay);
|
|
170
|
+
const endDate = _xeUtils.default.getWhatWeek(maxViewDate, rightSize, minScale.startDay, minScale.startDay);
|
|
171
|
+
while (currDate <= endDate) {
|
|
160
172
|
const itemDate = currDate;
|
|
161
173
|
dateList.push(itemDate);
|
|
162
174
|
currDate = _xeUtils.default.getWhatWeek(currDate, 1);
|
|
@@ -165,12 +177,23 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
165
177
|
}
|
|
166
178
|
case 'day':
|
|
167
179
|
case 'date':
|
|
180
|
+
{
|
|
181
|
+
let currDate = _xeUtils.default.getWhatDay(minViewDate, leftSize, 'first');
|
|
182
|
+
const endDate = _xeUtils.default.getWhatDay(maxViewDate, rightSize, 'first');
|
|
183
|
+
while (currDate <= endDate) {
|
|
184
|
+
const itemDate = currDate;
|
|
185
|
+
dateList.push(itemDate);
|
|
186
|
+
currDate = _xeUtils.default.getWhatDay(currDate, 1);
|
|
187
|
+
}
|
|
188
|
+
break;
|
|
189
|
+
}
|
|
168
190
|
case 'hour':
|
|
169
191
|
case 'minute':
|
|
170
192
|
case 'second':
|
|
171
193
|
{
|
|
172
194
|
const gapTime = (0, _util.getStandardGapTime)(minScale.type);
|
|
173
|
-
let currTime =
|
|
195
|
+
let currTime = minViewDate.getTime() + leftSize * gapTime;
|
|
196
|
+
const endTime = maxViewDate.getTime() + rightSize * gapTime;
|
|
174
197
|
while (currTime <= endTime) {
|
|
175
198
|
const itemDate = new Date(currTime);
|
|
176
199
|
dateList.push(itemDate);
|
|
@@ -279,21 +302,29 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
279
302
|
};
|
|
280
303
|
for (let i = 0; i < scaleDateList.length; i++) {
|
|
281
304
|
const itemDate = scaleDateList[i];
|
|
282
|
-
const [yyyy, MM, dd, HH, mm, ss] = _xeUtils.default.toDateString(itemDate, 'yyyy-M-d-H-m-s').split('-');
|
|
305
|
+
const [yy, yyyy, M, MM, d, dd, H, HH, m, mm, s, ss] = _xeUtils.default.toDateString(itemDate, 'yy-yyyy-M-MM-d-dd-H-HH-m-mm-s-ss').split('-');
|
|
283
306
|
const e = itemDate.getDay();
|
|
284
307
|
const E = e + 1;
|
|
285
308
|
const q = Math.ceil((itemDate.getMonth() + 1) / 3);
|
|
286
|
-
const W = _xeUtils.default.getYearWeek(itemDate, weekScale ? weekScale.startDay : undefined)
|
|
309
|
+
const W = `${_xeUtils.default.getYearWeek(itemDate, weekScale ? weekScale.startDay : undefined)}`;
|
|
310
|
+
const WW = _xeUtils.default.padStart(W, 2, '0');
|
|
287
311
|
const dateObj = {
|
|
288
312
|
date: itemDate,
|
|
289
|
-
yy
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
313
|
+
yy,
|
|
314
|
+
yyyy,
|
|
315
|
+
M,
|
|
316
|
+
MM,
|
|
317
|
+
d,
|
|
318
|
+
dd,
|
|
319
|
+
H,
|
|
320
|
+
HH,
|
|
321
|
+
m,
|
|
322
|
+
mm,
|
|
323
|
+
s,
|
|
324
|
+
ss,
|
|
295
325
|
q,
|
|
296
326
|
W,
|
|
327
|
+
WW,
|
|
297
328
|
E,
|
|
298
329
|
e
|
|
299
330
|
};
|
|
@@ -430,7 +461,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
430
461
|
const offsetLeftSize = (indexMaps[startStr] || 0) + subtract;
|
|
431
462
|
return {
|
|
432
463
|
offsetLeftSize,
|
|
433
|
-
offsetWidthSize: (indexMaps[endStr] || 0) - offsetLeftSize + addSize
|
|
464
|
+
offsetWidthSize: (indexMaps[endStr] || 0) - offsetLeftSize + addSize + 1
|
|
434
465
|
};
|
|
435
466
|
};
|
|
436
467
|
}
|
|
@@ -456,7 +487,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
456
487
|
const offsetLeftSize = (indexMaps[startStr] || 0) + subtract;
|
|
457
488
|
return {
|
|
458
489
|
offsetLeftSize,
|
|
459
|
-
offsetWidthSize: (indexMaps[endStr] || 0) - offsetLeftSize + addSize
|
|
490
|
+
offsetWidthSize: (indexMaps[endStr] || 0) - offsetLeftSize + addSize + 1
|
|
460
491
|
};
|
|
461
492
|
};
|
|
462
493
|
}
|
|
@@ -482,7 +513,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
482
513
|
const offsetLeftSize = (indexMaps[startStr] || 0) + subtract;
|
|
483
514
|
return {
|
|
484
515
|
offsetLeftSize,
|
|
485
|
-
offsetWidthSize: (indexMaps[endStr] || 0) - offsetLeftSize + addSize
|
|
516
|
+
offsetWidthSize: (indexMaps[endStr] || 0) - offsetLeftSize + addSize + 1
|
|
486
517
|
};
|
|
487
518
|
};
|
|
488
519
|
}
|
|
@@ -514,7 +545,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
514
545
|
const offsetLeftSize = (indexMaps[startStr] || 0) + subtract;
|
|
515
546
|
return {
|
|
516
547
|
offsetLeftSize,
|
|
517
|
-
offsetWidthSize: (indexMaps[endStr] || 0) - offsetLeftSize + addSize
|
|
548
|
+
offsetWidthSize: (indexMaps[endStr] || 0) - offsetLeftSize + addSize + 1
|
|
518
549
|
};
|
|
519
550
|
};
|
|
520
551
|
}
|
|
@@ -541,7 +572,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
541
572
|
const offsetLeftSize = (indexMaps[startStr] || 0) + subtract;
|
|
542
573
|
return {
|
|
543
574
|
offsetLeftSize,
|
|
544
|
-
offsetWidthSize: (indexMaps[endStr] || 0) - offsetLeftSize + addSize
|
|
575
|
+
offsetWidthSize: (indexMaps[endStr] || 0) - offsetLeftSize + addSize + 1
|
|
545
576
|
};
|
|
546
577
|
};
|
|
547
578
|
}
|
|
@@ -567,7 +598,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
567
598
|
const offsetLeftSize = (indexMaps[startStr] || 0) + subtract;
|
|
568
599
|
return {
|
|
569
600
|
offsetLeftSize,
|
|
570
|
-
offsetWidthSize: (indexMaps[endStr] || 0) - offsetLeftSize + addSize
|
|
601
|
+
offsetWidthSize: (indexMaps[endStr] || 0) - offsetLeftSize + addSize + 1
|
|
571
602
|
};
|
|
572
603
|
};
|
|
573
604
|
}
|
|
@@ -593,7 +624,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
593
624
|
const offsetLeftSize = (indexMaps[startStr] || 0) + subtract;
|
|
594
625
|
return {
|
|
595
626
|
offsetLeftSize,
|
|
596
|
-
offsetWidthSize: (indexMaps[endStr] || 0) - offsetLeftSize + addSize
|
|
627
|
+
offsetWidthSize: (indexMaps[endStr] || 0) - offsetLeftSize + addSize + 1
|
|
597
628
|
};
|
|
598
629
|
};
|
|
599
630
|
}
|
|
@@ -808,6 +839,9 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
808
839
|
}
|
|
809
840
|
};
|
|
810
841
|
const updateChart = () => {
|
|
842
|
+
const {
|
|
843
|
+
dragBarRow
|
|
844
|
+
} = ganttInternalData;
|
|
811
845
|
const {
|
|
812
846
|
viewCellWidth
|
|
813
847
|
} = reactData;
|
|
@@ -815,14 +849,18 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
815
849
|
elemStore,
|
|
816
850
|
chartMaps
|
|
817
851
|
} = internalData;
|
|
852
|
+
const $xeTable = internalData.xeTable;
|
|
818
853
|
const chartWrapper = (0, _util.getRefElem)(elemStore['main-chart-wrapper']);
|
|
819
|
-
if (chartWrapper) {
|
|
854
|
+
if (chartWrapper && $xeTable) {
|
|
820
855
|
_xeUtils.default.arrayEach(chartWrapper.children, rowEl => {
|
|
821
856
|
const barEl = rowEl.children[0];
|
|
822
857
|
if (!barEl) {
|
|
823
858
|
return;
|
|
824
859
|
}
|
|
825
860
|
const rowid = rowEl.getAttribute('rowid');
|
|
861
|
+
if (dragBarRow && $xeTable.getRowid(dragBarRow) === rowid) {
|
|
862
|
+
return;
|
|
863
|
+
}
|
|
826
864
|
const rowRest = rowid ? chartMaps[rowid] : null;
|
|
827
865
|
barEl.style.left = `${rowRest ? viewCellWidth * rowRest.oLeftSize : 0}px`;
|
|
828
866
|
barEl.style.width = `${rowRest ? viewCellWidth * rowRest.oWidthSize : 0}px`;
|