vxe-gantt 3.2.6 → 3.3.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 +164 -145
- package/es/gantt/src/gantt-view.js +64 -9
- package/es/gantt/style.css +41 -12
- 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 +1 -1
- package/es/ui/src/log.js +1 -1
- package/es/vxe-gantt/style.css +41 -12
- package/es/vxe-gantt/style.min.css +1 -1
- package/lib/gantt/src/gantt-chart.js +152 -134
- package/lib/gantt/src/gantt-chart.min.js +1 -1
- package/lib/gantt/src/gantt-view.js +68 -9
- package/lib/gantt/src/gantt-view.min.js +1 -1
- package/lib/gantt/style/style.css +41 -12
- package/lib/gantt/style/style.min.css +1 -1
- package/lib/index.umd.js +222 -147
- 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 +1 -1
- 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/lib/vxe-gantt/style/style.css +41 -12
- package/lib/vxe-gantt/style/style.min.css +1 -1
- package/package.json +2 -2
- package/packages/gantt/src/gantt-chart.ts +164 -139
- package/packages/gantt/src/gantt-view.ts +65 -9
- package/styles/components/gantt-module/gantt-chart.scss +67 -11
- package/styles/theme/base.scss +1 -1
|
@@ -51,12 +51,14 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
51
51
|
var cellOpts = $xeTable.computeCellOpts;
|
|
52
52
|
var rowOpts = $xeTable.computeRowOpts;
|
|
53
53
|
var defaultRowHeight = $xeTable.computeDefaultRowHeight;
|
|
54
|
+
var treeOpts = $xeTable.computeTreeOpts;
|
|
55
|
+
var childrenField = treeOpts.children || treeOpts.childrenField;
|
|
54
56
|
var ganttProps = $xeGantt;
|
|
55
57
|
var ganttReactData = $xeGantt.reactData;
|
|
56
|
-
var ganttInternalData = $xeGantt.internalData;
|
|
57
58
|
var ganttSlots = $xeGantt.$scopedSlots;
|
|
58
59
|
var taskBarSlot = ganttSlots.taskBar || ganttSlots['task-bar'];
|
|
59
|
-
var
|
|
60
|
+
var treeConfig = ganttProps.treeConfig,
|
|
61
|
+
taskBarMilestoneConfig = ganttProps.taskBarMilestoneConfig,
|
|
60
62
|
taskBarSubviewConfig = ganttProps.taskBarSubviewConfig;
|
|
61
63
|
var activeLink = ganttReactData.activeLink,
|
|
62
64
|
activeBarRowid = ganttReactData.activeBarRowid;
|
|
@@ -86,8 +88,6 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
86
88
|
var title = (0, _utils.getStringValue)(_xeUtils.default.get(row, titleField));
|
|
87
89
|
var progressValue = showProgress ? Math.min(100, Math.max(0, _xeUtils.default.toNumber(_xeUtils.default.get(row, progressField)))) : 0;
|
|
88
90
|
var renderTaskType = (0, _util.getTaskType)(_xeUtils.default.get(row, typeField));
|
|
89
|
-
var isMilestone = !!((0, _utils.hasEnableConf)(taskBarMilestoneConfig, taskBarMilestoneOpts) && (0, _util.hasMilestoneTask)(renderTaskType));
|
|
90
|
-
var isSubview = !!((0, _utils.hasEnableConf)(taskBarSubviewConfig, taskBarSubviewOpts) && (0, _util.hasSubviewTask)(renderTaskType));
|
|
91
91
|
var vbStyle = {};
|
|
92
92
|
var vpStyle = {
|
|
93
93
|
width: "".concat(progressValue || 0, "%")
|
|
@@ -102,13 +102,6 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
102
102
|
vpStyle.backgroundColor = completedBgColor;
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
|
-
if (contentMethod) {
|
|
106
|
-
title = (0, _utils.getStringValue)(contentMethod({
|
|
107
|
-
row: row,
|
|
108
|
-
title: title,
|
|
109
|
-
scaleType: scaleUnit
|
|
110
|
-
}));
|
|
111
|
-
}
|
|
112
105
|
var ctParams = {
|
|
113
106
|
$gantt: $xeGantt,
|
|
114
107
|
source: sourceType,
|
|
@@ -119,139 +112,163 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
119
112
|
rowIndex: rowIndex,
|
|
120
113
|
_rowIndex: _rowIndex
|
|
121
114
|
};
|
|
122
|
-
var ctOns = {};
|
|
123
|
-
if (showTooltip) {
|
|
124
|
-
ctOns.mouseover = function (evnt) {
|
|
125
|
-
var dragBarRow = ganttInternalData.dragBarRow;
|
|
126
|
-
var ttParams = Object.assign({
|
|
127
|
-
$event: evnt
|
|
128
|
-
}, ctParams);
|
|
129
|
-
if (!dragBarRow) {
|
|
130
|
-
$xeGantt.triggerTaskBarTooltipEvent(evnt, ttParams);
|
|
131
|
-
}
|
|
132
|
-
$xeGantt.dispatchEvent('task-bar-mouseenter', ttParams, evnt);
|
|
133
|
-
};
|
|
134
|
-
ctOns.mouseleave = function (evnt) {
|
|
135
|
-
var dragBarRow = ganttInternalData.dragBarRow;
|
|
136
|
-
var ttParams = Object.assign({
|
|
137
|
-
$event: evnt
|
|
138
|
-
}, ctParams);
|
|
139
|
-
if (!dragBarRow) {
|
|
140
|
-
$xeGantt.handleTaskBarTooltipLeaveEvent(evnt, ttParams);
|
|
141
|
-
}
|
|
142
|
-
$xeGantt.dispatchEvent('task-bar-mouseleave', ttParams, evnt);
|
|
143
|
-
};
|
|
144
|
-
}
|
|
145
115
|
var cbVNs = [];
|
|
146
116
|
if ($xeGantt.renderGanttTaskBarContent) {
|
|
147
117
|
cbVNs = $xeGantt.renderGanttTaskBarContent(h, ctParams, {
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
vpStyle: vpStyle,
|
|
152
|
-
rowid: rowid,
|
|
153
|
-
ctOns: ctOns
|
|
118
|
+
$gantt: $xeGantt,
|
|
119
|
+
$table: $xeTable,
|
|
120
|
+
rowid: rowid
|
|
154
121
|
});
|
|
155
|
-
} else if (taskBarSlot) {
|
|
156
|
-
cbVNs.push(h('div', {
|
|
157
|
-
key: 'cbc',
|
|
158
|
-
class: 'vxe-gantt-view--chart-custom-bar-content-wrapper',
|
|
159
|
-
on: ctOns
|
|
160
|
-
}, $xeGantt.callSlot(taskBarSlot, barParams, h)));
|
|
161
122
|
} else {
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
123
|
+
var isMilestone = !!((0, _utils.hasEnableConf)(taskBarMilestoneConfig, taskBarMilestoneOpts) && (0, _util.hasMilestoneTask)(renderTaskType));
|
|
124
|
+
var isSubview = !!((0, _utils.hasEnableConf)(taskBarSubviewConfig, taskBarSubviewOpts) && (0, _util.hasSubviewTask)(renderTaskType));
|
|
125
|
+
if (contentMethod) {
|
|
126
|
+
title = (0, _utils.getStringValue)(contentMethod({
|
|
127
|
+
row: row,
|
|
128
|
+
title: title,
|
|
129
|
+
scaleType: scaleUnit
|
|
130
|
+
}));
|
|
131
|
+
}
|
|
132
|
+
var ctOns = {};
|
|
133
|
+
if (showTooltip) {
|
|
134
|
+
ctOns.mouseover = function (evnt) {
|
|
135
|
+
var ttParams = Object.assign({
|
|
136
|
+
$event: evnt
|
|
137
|
+
}, ctParams);
|
|
138
|
+
$xeGantt.dispatchEvent('task-bar-mouseenter', ttParams, evnt);
|
|
139
|
+
};
|
|
140
|
+
ctOns.mouseleave = function (evnt) {
|
|
141
|
+
var ttParams = Object.assign({
|
|
142
|
+
$event: evnt
|
|
143
|
+
}, ctParams);
|
|
144
|
+
$xeGantt.dispatchEvent('task-bar-mouseleave', ttParams, evnt);
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
if (taskBarSlot) {
|
|
148
|
+
cbVNs.push(h('div', {
|
|
149
|
+
key: 'cbc',
|
|
150
|
+
class: 'vxe-gantt-view--chart-custom-bar-content-wrapper',
|
|
151
|
+
on: ctOns
|
|
152
|
+
}, $xeGantt.callSlot(taskBarSlot, barParams, h)));
|
|
153
|
+
} else {
|
|
154
|
+
if (isSubview && treeConfig && rowChildren && rowChildren.length) {
|
|
155
|
+
if (isExpandTree) {
|
|
156
|
+
if (taskBarSubviewOpts.showOverview) {
|
|
157
|
+
cbVNs.push(h('div', {
|
|
158
|
+
key: 'vcso',
|
|
159
|
+
class: 'vxe-gantt-view--chart-subview-wrapper is--overview'
|
|
160
|
+
}, [h('div', {
|
|
161
|
+
key: rowid,
|
|
162
|
+
attrs: {
|
|
163
|
+
rowid: rowid
|
|
164
|
+
},
|
|
165
|
+
class: ['vxe-gantt-view--chart-subview-row', {
|
|
166
|
+
'is--progress': showProgress,
|
|
167
|
+
'is--round': round,
|
|
168
|
+
'is--move': moveable
|
|
169
|
+
}]
|
|
170
|
+
}, [h('div', {
|
|
171
|
+
attrs: {
|
|
172
|
+
rowid: rowid
|
|
173
|
+
},
|
|
174
|
+
class: 'vxe-gantt-view--chart-subview-bar'
|
|
175
|
+
}, [h('div', {
|
|
176
|
+
class: 'vxe-gantt-view--chart-subview-bar-content-wrapper'
|
|
177
|
+
}, [showContent ? h('div', {
|
|
178
|
+
class: 'vxe-gantt-view--chart-content'
|
|
179
|
+
}, title) : renderEmptyElement($xeGantt)])])])]));
|
|
180
|
+
}
|
|
181
|
+
} else {
|
|
182
|
+
var cbcVNs = [];
|
|
183
|
+
_xeUtils.default.eachTree(rowChildren, function (childRow) {
|
|
184
|
+
var childRowid = $xeTable.getRowid(childRow);
|
|
185
|
+
var childTitle = (0, _utils.getStringValue)(_xeUtils.default.get(childRow, titleField));
|
|
186
|
+
var childProgressValue = showProgress ? Math.min(100, Math.max(0, _xeUtils.default.toNumber(_xeUtils.default.get(childRow, progressField)))) : 0;
|
|
187
|
+
var childRenderTaskType = (0, _util.getTaskType)(_xeUtils.default.get(childRow, typeField));
|
|
188
|
+
var isChildSubview = !!((0, _utils.hasEnableConf)(taskBarSubviewConfig, taskBarSubviewOpts) && (0, _util.hasSubviewTask)(childRenderTaskType));
|
|
189
|
+
if (isChildSubview) {
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
var vpcStyle = {
|
|
193
|
+
width: "".concat(childProgressValue || 0, "%")
|
|
194
|
+
};
|
|
195
|
+
if (isBarRowStyle) {
|
|
196
|
+
var _completedBgColor = barStyObj.completedBgColor;
|
|
197
|
+
if (_completedBgColor) {
|
|
198
|
+
vpcStyle.backgroundColor = _completedBgColor;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
if (contentMethod) {
|
|
202
|
+
childTitle = (0, _utils.getStringValue)(contentMethod({
|
|
203
|
+
row: childRow,
|
|
204
|
+
title: childTitle,
|
|
205
|
+
scaleType: scaleUnit
|
|
206
|
+
}));
|
|
207
|
+
}
|
|
208
|
+
cbcVNs.push(h('div', {
|
|
209
|
+
key: childRowid,
|
|
210
|
+
attrs: {
|
|
211
|
+
rowid: childRowid
|
|
212
|
+
},
|
|
213
|
+
class: ['vxe-gantt-view--chart-subview-row', "is--".concat(childRenderTaskType), {
|
|
214
|
+
'is--progress': showProgress,
|
|
215
|
+
'is--round': round,
|
|
216
|
+
'is--move': moveable,
|
|
217
|
+
'row--pending': !!pendingRowFlag && !!pendingRowMaps[childRowid]
|
|
218
|
+
}]
|
|
219
|
+
}, [h('div', {
|
|
220
|
+
attrs: {
|
|
221
|
+
rowid: childRowid
|
|
222
|
+
},
|
|
223
|
+
class: 'vxe-gantt-view--chart-subview-bar'
|
|
224
|
+
}, [h('div', {
|
|
225
|
+
class: 'vxe-gantt-view--chart-subview-bar-content-wrapper'
|
|
226
|
+
}, [showProgress ? h('div', {
|
|
227
|
+
class: 'vxe-gantt-view--chart-progress',
|
|
228
|
+
style: vpcStyle
|
|
229
|
+
}) : renderEmptyElement($xeGantt), showContent ? h('div', {
|
|
230
|
+
class: 'vxe-gantt-view--chart-content'
|
|
231
|
+
}, childTitle) : renderEmptyElement($xeGantt)])])]));
|
|
232
|
+
}, {
|
|
233
|
+
children: childrenField
|
|
234
|
+
});
|
|
165
235
|
cbVNs.push(h('div', {
|
|
166
|
-
key: '
|
|
167
|
-
class:
|
|
168
|
-
|
|
169
|
-
'is--move': moveable
|
|
170
|
-
}]
|
|
171
|
-
}, [h('div', {
|
|
172
|
-
key: rowid,
|
|
173
|
-
attrs: {
|
|
174
|
-
rowid: rowid
|
|
175
|
-
},
|
|
176
|
-
class: 'vxe-gantt-view--chart-subview-bar'
|
|
177
|
-
}, [h('div', {
|
|
178
|
-
class: 'vxe-gantt-view--chart-subview-bar-content-wrapper'
|
|
179
|
-
}, [showContent ? h('div', {
|
|
180
|
-
class: 'vxe-gantt-view--chart-content'
|
|
181
|
-
}, title) : renderEmptyElement($xeGantt)])])]));
|
|
236
|
+
key: 'vcsc',
|
|
237
|
+
class: 'vxe-gantt-view--chart-subview-wrappe is--inliner'
|
|
238
|
+
}, cbcVNs));
|
|
182
239
|
}
|
|
240
|
+
} else if (isMilestone) {
|
|
241
|
+
var icon = taskBarMilestoneOpts.icon,
|
|
242
|
+
iconStatus = taskBarMilestoneOpts.iconStatus,
|
|
243
|
+
iconStyle = taskBarMilestoneOpts.iconStyle;
|
|
244
|
+
var tbmParams = {
|
|
245
|
+
$gantt: $xeGantt,
|
|
246
|
+
row: row
|
|
247
|
+
};
|
|
248
|
+
cbVNs.push(h('div', {
|
|
249
|
+
key: 'vcm',
|
|
250
|
+
class: 'vxe-gantt-view--chart-milestone-wrapper',
|
|
251
|
+
on: ctOns
|
|
252
|
+
}, [h('div', {
|
|
253
|
+
class: ['vxe-gantt-view--chart-milestone-icon', iconStatus ? "theme--".concat(_xeUtils.default.isFunction(iconStatus) ? iconStatus(tbmParams) : iconStatus) : ''],
|
|
254
|
+
style: iconStyle ? Object.assign({}, _xeUtils.default.isFunction(iconStyle) ? iconStyle(tbmParams) : iconStyle) : undefined
|
|
255
|
+
}, [h('i', {
|
|
256
|
+
class: (icon ? _xeUtils.default.isFunction(icon) ? icon(tbmParams) : icon : '') || getIcon().GANTT_VIEW_TASK_MILESTONE
|
|
257
|
+
})]), showContent ? h('div', {
|
|
258
|
+
class: 'vxe-gantt-view--chart-milestone-content'
|
|
259
|
+
}, title) : renderEmptyElement($xeGantt)]));
|
|
183
260
|
} else {
|
|
184
261
|
cbVNs.push(h('div', {
|
|
185
|
-
key: '
|
|
186
|
-
class: 'vxe-gantt-view--chart-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
};
|
|
195
|
-
if (isBarRowStyle) {
|
|
196
|
-
var _completedBgColor = barStyObj.completedBgColor;
|
|
197
|
-
if (_completedBgColor) {
|
|
198
|
-
vpcStyle.backgroundColor = _completedBgColor;
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
if (contentMethod) {
|
|
202
|
-
childTitle = (0, _utils.getStringValue)(contentMethod({
|
|
203
|
-
row: childRow,
|
|
204
|
-
title: childTitle,
|
|
205
|
-
scaleType: scaleUnit
|
|
206
|
-
}));
|
|
207
|
-
}
|
|
208
|
-
return h('div', {
|
|
209
|
-
key: childRowid,
|
|
210
|
-
attrs: {
|
|
211
|
-
rowid: childRowid
|
|
212
|
-
},
|
|
213
|
-
class: ['vxe-gantt-view--chart-subview-bar', "is--".concat(childRenderTaskType)]
|
|
214
|
-
}, [h('div', {
|
|
215
|
-
class: 'vxe-gantt-view--chart-subview-bar-content-wrapper'
|
|
216
|
-
}, [showProgress ? h('div', {
|
|
217
|
-
class: 'vxe-gantt-view--chart-progress',
|
|
218
|
-
style: vpcStyle
|
|
219
|
-
}) : renderEmptyElement($xeGantt), showContent ? h('div', {
|
|
220
|
-
class: 'vxe-gantt-view--chart-content'
|
|
221
|
-
}, childTitle) : renderEmptyElement($xeGantt)])]);
|
|
222
|
-
})));
|
|
262
|
+
key: 'vbc',
|
|
263
|
+
class: 'vxe-gantt-view--chart-bar-content-wrapper',
|
|
264
|
+
on: ctOns
|
|
265
|
+
}, [showProgress ? h('div', {
|
|
266
|
+
class: 'vxe-gantt-view--chart-progress',
|
|
267
|
+
style: vpStyle
|
|
268
|
+
}) : renderEmptyElement($xeGantt), showContent ? h('div', {
|
|
269
|
+
class: 'vxe-gantt-view--chart-content'
|
|
270
|
+
}, title) : renderEmptyElement($xeGantt)]));
|
|
223
271
|
}
|
|
224
|
-
} else if (isMilestone) {
|
|
225
|
-
var icon = taskBarMilestoneOpts.icon,
|
|
226
|
-
iconStatus = taskBarMilestoneOpts.iconStatus,
|
|
227
|
-
iconStyle = taskBarMilestoneOpts.iconStyle;
|
|
228
|
-
var tbmParams = {
|
|
229
|
-
$gantt: $xeGantt,
|
|
230
|
-
row: row
|
|
231
|
-
};
|
|
232
|
-
cbVNs.push(h('div', {
|
|
233
|
-
key: 'vcm',
|
|
234
|
-
class: 'vxe-gantt-view--chart-milestone-wrapper',
|
|
235
|
-
on: ctOns
|
|
236
|
-
}, [h('div', {
|
|
237
|
-
class: ['vxe-gantt-view--chart-milestone-icon', iconStatus ? "theme--".concat(_xeUtils.default.isFunction(iconStatus) ? iconStatus(tbmParams) : iconStatus) : ''],
|
|
238
|
-
style: iconStyle ? Object.assign({}, _xeUtils.default.isFunction(iconStyle) ? iconStyle(tbmParams) : iconStyle) : undefined
|
|
239
|
-
}, [h('i', {
|
|
240
|
-
class: (icon ? _xeUtils.default.isFunction(icon) ? icon(tbmParams) : icon : '') || getIcon().GANTT_VIEW_TASK_MILESTONE
|
|
241
|
-
})]), showContent ? h('div', {
|
|
242
|
-
class: 'vxe-gantt-view--chart-milestone-content'
|
|
243
|
-
}, title) : renderEmptyElement($xeGantt)]));
|
|
244
|
-
} else {
|
|
245
|
-
cbVNs.push(h('div', {
|
|
246
|
-
key: 'vbc',
|
|
247
|
-
class: 'vxe-gantt-view--chart-bar-content-wrapper',
|
|
248
|
-
on: ctOns
|
|
249
|
-
}, [showProgress ? h('div', {
|
|
250
|
-
class: 'vxe-gantt-view--chart-progress',
|
|
251
|
-
style: vpStyle
|
|
252
|
-
}) : renderEmptyElement($xeGantt), showContent ? h('div', {
|
|
253
|
-
class: 'vxe-gantt-view--chart-content'
|
|
254
|
-
}, title) : renderEmptyElement($xeGantt)]));
|
|
255
272
|
}
|
|
256
273
|
}
|
|
257
274
|
return h('div', {
|
|
@@ -260,6 +277,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
260
277
|
rowid: rowid
|
|
261
278
|
},
|
|
262
279
|
class: ['vxe-gantt-view--chart-row', "is--".concat(renderTaskType), {
|
|
280
|
+
'is--progress': showProgress,
|
|
263
281
|
'row--pending': !!pendingRowFlag && !!pendingRowMaps[rowid],
|
|
264
282
|
'is--round': round,
|
|
265
283
|
'is--move': moveable
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _comp=require("../../ui/src/comp"),_core=require("@vxe-ui/core"),_xeUtils=_interopRequireDefault(require("xe-utils")),_util=require("./util"),_utils=require("../../ui/src/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_unsupportedIterableToArray(e)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){var r;if(e)return"string"==typeof e?_arrayLikeToArray(e,t):"Map"===(r="Object"===(r={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:r)||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_arrayLikeToArray(e,t):void 0}function _iterableToArray(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function _arrayWithoutHoles(e){if(Array.isArray(e))return _arrayLikeToArray(e)}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,a=Array(t);r<t;r++)a[r]=e[r];return a}var getIcon=_core.VxeUI.getIcon,renderEmptyElement=_core.VxeUI.renderEmptyElement,sourceType="gantt",viewType="chart",_default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttViewChart",inject:{$xeGantt:{default:null},$xeGanttView:{default:null}},props:{},data:function(){return{}},computed:Object.assign({},{}),methods:{renderTaskBar:function(o,
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _comp=require("../../ui/src/comp"),_core=require("@vxe-ui/core"),_xeUtils=_interopRequireDefault(require("xe-utils")),_util=require("./util"),_utils=require("../../ui/src/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_unsupportedIterableToArray(e)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){var r;if(e)return"string"==typeof e?_arrayLikeToArray(e,t):"Map"===(r="Object"===(r={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:r)||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_arrayLikeToArray(e,t):void 0}function _iterableToArray(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function _arrayWithoutHoles(e){if(Array.isArray(e))return _arrayLikeToArray(e)}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,a=Array(t);r<t;r++)a[r]=e[r];return a}var getIcon=_core.VxeUI.getIcon,renderEmptyElement=_core.VxeUI.renderEmptyElement,sourceType="gantt",viewType="chart",_default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttViewChart",inject:{$xeGantt:{default:null},$xeGanttView:{default:null}},props:{},data:function(){return{}},computed:Object.assign({},{}),methods:{renderTaskBar:function(s,o,e,t,r,a,n,i,G){var l,c,u=this.$xeGantt,d=o.resizeHeightFlag,p=o.pendingRowFlag,v=o.fullAllDataRowIdData,M=o.pendingRowMaps,w=o.computeCellOpts,h=o.computeRowOpts,f=o.computeDefaultRowHeight,m=o.computeTreeOpts,m=m.children||m.childrenField,g=u.reactData,x=u.$scopedSlots,x=x.taskBar||x["task-bar"],R=u.treeConfig,y=u.taskBarMilestoneConfig,F=u.taskBarSubviewConfig,b=g.activeLink,g=g.activeBarRowid,L=u.computeTitleField,W=u.computeProgressField,j=u.computeTypeField,k=u.computeTaskBarOpts,_=u.computeTaskBarMilestoneOpts,T=u.computeTaskBarSubviewOpts,E=u.computeScaleUnit,C={$gantt:u,row:e,scaleType:E},S=k.showProgress,A=k.showContent,B=k.contentMethod,$=k.barStyle,I=k.moveable,k=k.showTooltip,U=_xeUtils.default.isFunction($),O=($?U?$(C):$:{})||{},V=O.round,$=v[t]||{},v=d?(0,_util.getCellRestHeight)($,w,h,f):0,d=(0,_utils.getStringValue)(_xeUtils.default.get(e,L)),$=S?Math.min(100,Math.max(0,_xeUtils.default.toNumber(_xeUtils.default.get(e,W)))):0,w=(0,_util.getTaskType)(_xeUtils.default.get(e,j)),h={},f={width:"".concat($||0,"%")},D=(U&&($=O.bgColor,l=O.completedBgColor,$&&(h.backgroundColor=$),l)&&(f.backgroundColor=l),{$gantt:u,source:sourceType,type:viewType,scaleType:E,row:e,$rowIndex:a,rowIndex:r,_rowIndex:n}),$=[];return u.renderGanttTaskBarContent?$=u.renderGanttTaskBarContent(s,D,{$gantt:u,$table:o,rowid:t}):(l=!(!(0,_utils.hasEnableConf)(y,_)||!(0,_util.hasMilestoneTask)(w)),a=!(!(0,_utils.hasEnableConf)(F,T)||!(0,_util.hasSubviewTask)(w)),B&&(d=(0,_utils.getStringValue)(B({row:e,title:d,scaleType:E}))),r={},k&&(r.mouseover=function(e){var t=Object.assign({$event:e},D);u.dispatchEvent("task-bar-mouseenter",t,e)},r.mouseleave=function(e){var t=Object.assign({$event:e},D);u.dispatchEvent("task-bar-mouseleave",t,e)}),x?$.push(s("div",{key:"cbc",class:"vxe-gantt-view--chart-custom-bar-content-wrapper",on:r},u.callSlot(x,C,s))):a&&R&&i&&i.length?G?T.showOverview&&$.push(s("div",{key:"vcso",class:"vxe-gantt-view--chart-subview-wrapper is--overview"},[s("div",{key:t,attrs:{rowid:t},class:["vxe-gantt-view--chart-subview-row",{"is--progress":S,"is--round":V,"is--move":I}]},[s("div",{attrs:{rowid:t},class:"vxe-gantt-view--chart-subview-bar"},[s("div",{class:"vxe-gantt-view--chart-subview-bar-content-wrapper"},[A?s("div",{class:"vxe-gantt-view--chart-content"},d):renderEmptyElement(u)])])])])):(c=[],_xeUtils.default.eachTree(i,function(e){var t,r=o.getRowid(e),a=(0,_utils.getStringValue)(_xeUtils.default.get(e,L)),n=S?Math.min(100,Math.max(0,_xeUtils.default.toNumber(_xeUtils.default.get(e,W)))):0,i=(0,_util.getTaskType)(_xeUtils.default.get(e,j));(!(0,_utils.hasEnableConf)(F,T)||!(0,_util.hasSubviewTask)(i))&&(n={width:"".concat(n||0,"%")},U&&(t=O.completedBgColor)&&(n.backgroundColor=t),B&&(a=(0,_utils.getStringValue)(B({row:e,title:a,scaleType:E}))),c.push(s("div",{key:r,attrs:{rowid:r},class:["vxe-gantt-view--chart-subview-row","is--".concat(i),{"is--progress":S,"is--round":V,"is--move":I,"row--pending":!!p&&!!M[r]}]},[s("div",{attrs:{rowid:r},class:"vxe-gantt-view--chart-subview-bar"},[s("div",{class:"vxe-gantt-view--chart-subview-bar-content-wrapper"},[S?s("div",{class:"vxe-gantt-view--chart-progress",style:n}):renderEmptyElement(u),A?s("div",{class:"vxe-gantt-view--chart-content"},a):renderEmptyElement(u)])])])))},{children:m}),$.push(s("div",{key:"vcsc",class:"vxe-gantt-view--chart-subview-wrappe is--inliner"},c))):l?(n=_.icon,y=_.iconStatus,k=_.iconStyle,a={$gantt:u,row:e},$.push(s("div",{key:"vcm",class:"vxe-gantt-view--chart-milestone-wrapper",on:r},[s("div",{class:["vxe-gantt-view--chart-milestone-icon",y?"theme--".concat(_xeUtils.default.isFunction(y)?y(a):y):""],style:k?Object.assign({},_xeUtils.default.isFunction(k)?k(a):k):void 0},[s("i",{class:(n?_xeUtils.default.isFunction(n)?n(a):n:"")||getIcon().GANTT_VIEW_TASK_MILESTONE})]),A?s("div",{class:"vxe-gantt-view--chart-milestone-content"},d):renderEmptyElement(u)]))):$.push(s("div",{key:"vbc",class:"vxe-gantt-view--chart-bar-content-wrapper",on:r},[S?s("div",{class:"vxe-gantt-view--chart-progress",style:f}):renderEmptyElement(u),A?s("div",{class:"vxe-gantt-view--chart-content"},d):renderEmptyElement(u)]))),s("div",{key:t,attrs:{rowid:t},class:["vxe-gantt-view--chart-row","is--".concat(w),{"is--progress":S,"row--pending":!!p&&!!M[t],"is--round":V,"is--move":I}],style:{height:"".concat(v,"px")},on:{contextmenu:function(e){u.handleTaskBarContextmenuEvent(e,D)}}},[s("div",{class:[x?"vxe-gantt-view--chart-custom-bar":"vxe-gantt-view--chart-bar","is--".concat(w),{"is--active":g===t,"active--link":b&&(t==="".concat(b.from)||t==="".concat(b.to))}],style:h,attrs:{rowid:t},on:{click:function(e){u.handleTaskBarClickEvent(e,C)},dblclick:function(e){u.handleTaskBarDblclickEvent(e,C)},mousedown:function(e){u.handleTaskBarMousedownEvent&&u.handleTaskBarMousedownEvent(e,C)}}},$)])},renderTaskRows:function(o,l,e){var c=this,t=c.$xeGanttView.reactData,u=l.treeConfig,d=l.treeExpandedFlag,p=l.fullAllDataRowIdData,v=l.treeExpandedMaps,r=l.computeTreeOpts,w=r.transform,h=r.children||r.childrenField,f=t.scrollYLoad,m=[];return e.forEach(function(e,t){var r=l.getRowid(e),a=p[r]||{},n=t,i=-1,a=(a&&(n=a.index,i=a._index),!1),s=[];u&&(s=e[h],a=!!d&&s&&0<s.length&&!!v[r]),m.push(c.renderTaskBar(o,l,e,r,n,t,i,s,a)),u&&a&&!f&&!w&&m.push.apply(m,_toConsumableArray(c.renderTaskRows(o,l,s)))}),m},renderVN:function(e){var t=this.$xeGantt,r=this.$xeGanttView,a=t.reactData,n=r.internalData.xeTable,a=a.dragLinkFromStore,r=r.reactData.tableData,i=t.computeTaskLinkOpts,s=i.isCurrent,o=t.computeTaskBarOpts.linkCreatable;return e("div",{ref:"refElem",class:["vxe-gantt-view--chart-wrapper",{"is--cl-drag":a.rowid}]},[t.renderGanttTaskChartBefores?e("div",{ref:"refChartBeforeWrapperElem",class:["vxe-gantt-view--chart-before-wrapper",{"link--current":s,"link--hover":i.isHover}]},n&&(0,_utils.isEnableConf)(i)?t.renderGanttTaskChartBefores(e):[]):renderEmptyElement(t),e("div",{ref:"refTaskWrapperElem",class:["vxe-gantt-view--chart-task-wrapper",{"link--current":s,"link--create":o}]},n?this.renderTaskRows(e,n,r):[]),t.renderGanttTaskChartAfters?e("div",{ref:"refChartAfterWrapperElem",class:"vxe-gantt-view--chart-after-wrapper"},n&&(0,_utils.isEnableConf)(i)?t.renderGanttTaskChartAfters(e):[]):renderEmptyElement(t)])}},mounted:function(){var e=this.$xeGanttView.internalData.elemStore,t="main-chart-";e["".concat(t,"task-wrapper")]=this.$refs.refTaskWrapperElem,e["".concat(t,"before-wrapper")]=this.$refs.refChartBeforeWrapperElem,e["".concat(t,"after-wrapper")]=this.$refs.refChartAfterWrapperElem},destroyed:function(){var e=this.$xeGanttView.internalData.elemStore,t="main-chart-";e["".concat(t,"task-wrapper")]=null,e["".concat(t,"before-wrapper")]=null,e["".concat(t,"after-wrapper")]=null},render:function(e){return this.renderVN(e)}});
|
|
@@ -753,6 +753,34 @@ function calcScrollbar($xeGanttView) {
|
|
|
753
753
|
reactData.overflowX = overflowX;
|
|
754
754
|
}
|
|
755
755
|
}
|
|
756
|
+
function handleSubTaskMinMaxSize($xeGanttView, $xeTable, list) {
|
|
757
|
+
var $xeGantt = $xeGanttView.$xeGantt;
|
|
758
|
+
var internalData = $xeGanttView.internalData;
|
|
759
|
+
var chartMaps = internalData.chartMaps;
|
|
760
|
+
var treeOpts = $xeTable.computeTreeOpts;
|
|
761
|
+
var childrenField = treeOpts.children || treeOpts.childrenField;
|
|
762
|
+
var typeField = $xeGantt.computeTypeField;
|
|
763
|
+
var minChildLeftSize = 0;
|
|
764
|
+
var maxChildLeftSize = 0;
|
|
765
|
+
_xeUtils.default.eachTree(list, function (childRow) {
|
|
766
|
+
var childRowid = $xeTable.getRowid(childRow);
|
|
767
|
+
var renderTaskType = _xeUtils.default.get(childRow, typeField);
|
|
768
|
+
if ((0, _util.hasSubviewTask)(renderTaskType)) {
|
|
769
|
+
return;
|
|
770
|
+
}
|
|
771
|
+
var childChartRest = childRowid ? chartMaps[childRowid] : null;
|
|
772
|
+
if (childChartRest) {
|
|
773
|
+
maxChildLeftSize = Math.max(maxChildLeftSize, childChartRest.oLeftSize + childChartRest.oWidthSize);
|
|
774
|
+
minChildLeftSize = minChildLeftSize ? Math.min(minChildLeftSize, childChartRest.oLeftSize) : childChartRest.oLeftSize;
|
|
775
|
+
}
|
|
776
|
+
}, {
|
|
777
|
+
children: childrenField
|
|
778
|
+
});
|
|
779
|
+
return {
|
|
780
|
+
minSize: minChildLeftSize,
|
|
781
|
+
maxSize: maxChildLeftSize
|
|
782
|
+
};
|
|
783
|
+
}
|
|
756
784
|
function updateTaskChartStyle($xeGanttView) {
|
|
757
785
|
var $xeGantt = $xeGanttView.$xeGantt;
|
|
758
786
|
var reactData = $xeGanttView.reactData;
|
|
@@ -765,6 +793,8 @@ function updateTaskChartStyle($xeGanttView) {
|
|
|
765
793
|
chartMaps = internalData.chartMaps;
|
|
766
794
|
var chartWrapper = (0, _util.getRefElem)(elemStore['main-chart-task-wrapper']);
|
|
767
795
|
if (chartWrapper && $xeTable) {
|
|
796
|
+
var treeOpts = $xeTable.computeTreeOpts;
|
|
797
|
+
var childrenField = treeOpts.children || treeOpts.childrenField;
|
|
768
798
|
_xeUtils.default.arrayEach(chartWrapper.children, function (rowEl) {
|
|
769
799
|
var barEl = rowEl.children[0];
|
|
770
800
|
if (!barEl) {
|
|
@@ -775,20 +805,49 @@ function updateTaskChartStyle($xeGanttView) {
|
|
|
775
805
|
return;
|
|
776
806
|
}
|
|
777
807
|
var chartRest = rowid ? chartMaps[rowid] : null;
|
|
808
|
+
var row = chartRest ? chartRest.row : null;
|
|
778
809
|
// 子任务视图
|
|
779
810
|
if ((0, _dom.hasClass)(barEl, 'is--subview')) {
|
|
780
811
|
var childWrapperEl = barEl.firstElementChild;
|
|
781
812
|
if (childWrapperEl) {
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
813
|
+
// 行内展示
|
|
814
|
+
if ((0, _dom.hasClass)(childWrapperEl, 'is--inline')) {
|
|
815
|
+
_xeUtils.default.arrayEach(childWrapperEl.children, function (childRowEl) {
|
|
816
|
+
var childBarEl = childRowEl.children[0];
|
|
817
|
+
var childRowid = childBarEl.getAttribute('rowid') || '';
|
|
818
|
+
var childChartRest = childRowid ? chartMaps[childRowid] : null;
|
|
819
|
+
if (childChartRest) {
|
|
820
|
+
var childRow = childChartRest.row;
|
|
821
|
+
// 如果是子视图
|
|
822
|
+
if ((0, _dom.hasClass)(childBarEl, 'is--subview')) {
|
|
823
|
+
var subChildren = childRow[childrenField];
|
|
824
|
+
var _handleSubTaskMinMaxS = handleSubTaskMinMaxSize($xeGanttView, $xeTable, subChildren),
|
|
825
|
+
minChildLeftSize = _handleSubTaskMinMaxS.minSize,
|
|
826
|
+
maxChildLeftSize = _handleSubTaskMinMaxS.maxSize;
|
|
827
|
+
childBarEl.style.left = "".concat(viewCellWidth * minChildLeftSize, "px");
|
|
828
|
+
childBarEl.style.width = "".concat(viewCellWidth * (maxChildLeftSize - minChildLeftSize), "px");
|
|
829
|
+
} else {
|
|
830
|
+
childBarEl.style.left = "".concat((0, _util.getTaskBarLeft)(childChartRest, viewCellWidth), "px");
|
|
831
|
+
if (!(0, _dom.hasClass)(childBarEl, 'is--milestone')) {
|
|
832
|
+
// 里程碑不需要宽度
|
|
833
|
+
childBarEl.style.width = "".concat((0, _util.getTaskBarWidth)(childChartRest, viewCellWidth), "px");
|
|
834
|
+
}
|
|
835
|
+
}
|
|
836
|
+
}
|
|
837
|
+
});
|
|
838
|
+
} else {
|
|
839
|
+
// 如果展开子任务
|
|
840
|
+
var childRowEl = childWrapperEl.children[0];
|
|
841
|
+
var childBarEl = childRowEl ? childRowEl.children[0] : null;
|
|
842
|
+
if (childBarEl) {
|
|
843
|
+
var rowChildren = row ? row[childrenField] : [];
|
|
844
|
+
var _handleSubTaskMinMaxS2 = handleSubTaskMinMaxSize($xeGanttView, $xeTable, rowChildren),
|
|
845
|
+
minChildLeftSize = _handleSubTaskMinMaxS2.minSize,
|
|
846
|
+
maxChildLeftSize = _handleSubTaskMinMaxS2.maxSize;
|
|
847
|
+
childBarEl.style.left = "".concat(viewCellWidth * minChildLeftSize, "px");
|
|
848
|
+
childBarEl.style.width = "".concat(viewCellWidth * (maxChildLeftSize - minChildLeftSize), "px");
|
|
790
849
|
}
|
|
791
|
-
}
|
|
850
|
+
}
|
|
792
851
|
}
|
|
793
852
|
} else {
|
|
794
853
|
barEl.style.left = "".concat((0, _util.getTaskBarLeft)(chartRest, viewCellWidth), "px");
|