vxe-gantt 4.0.15 → 4.0.16
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-body.js +11 -2
- package/es/gantt/src/gantt-chart.js +16 -3
- package/es/gantt/src/gantt-footer.js +7 -1
- package/es/gantt/src/gantt-header.js +7 -2
- package/es/gantt/src/gantt.js +44 -0
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/lib/gantt/src/gantt-body.js +25 -2
- package/lib/gantt/src/gantt-body.min.js +1 -1
- package/lib/gantt/src/gantt-chart.js +23 -2
- package/lib/gantt/src/gantt-chart.min.js +1 -1
- package/lib/gantt/src/gantt-footer.js +11 -1
- package/lib/gantt/src/gantt-footer.min.js +1 -1
- package/lib/gantt/src/gantt-header.js +9 -1
- package/lib/gantt/src/gantt-header.min.js +1 -1
- package/lib/gantt/src/gantt.js +52 -0
- package/lib/gantt/src/gantt.min.js +1 -1
- package/lib/index.umd.js +122 -8
- package/lib/index.umd.min.js +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/package.json +2 -2
- package/packages/gantt/src/gantt-body.ts +14 -4
- package/packages/gantt/src/gantt-chart.ts +17 -3
- package/packages/gantt/src/gantt-footer.ts +9 -2
- package/packages/gantt/src/gantt-header.ts +8 -2
- package/packages/gantt/src/gantt.ts +44 -0
|
@@ -2,6 +2,8 @@ import { h, inject, ref, onMounted, onUnmounted } from 'vue';
|
|
|
2
2
|
import { defineVxeComponent } from '../../ui/src/comp';
|
|
3
3
|
import { getCellRestHeight } from './util';
|
|
4
4
|
import GanttViewChartComponent from './gantt-chart';
|
|
5
|
+
const sourceType = 'gantt';
|
|
6
|
+
const viewType = 'body';
|
|
5
7
|
export default defineVxeComponent({
|
|
6
8
|
name: 'VxeGanttViewBody',
|
|
7
9
|
setup() {
|
|
@@ -53,7 +55,7 @@ export default defineVxeComponent({
|
|
|
53
55
|
$columnIndex: 0,
|
|
54
56
|
_columnIndex: 0,
|
|
55
57
|
fixed: '',
|
|
56
|
-
type:
|
|
58
|
+
type: viewType,
|
|
57
59
|
isHidden: false,
|
|
58
60
|
isEdit: false,
|
|
59
61
|
level: -1,
|
|
@@ -68,6 +70,7 @@ export default defineVxeComponent({
|
|
|
68
70
|
onDblclick: (evnt) => $xeTable.handleRowResizeDblclickEvent(evnt, cellParams)
|
|
69
71
|
}));
|
|
70
72
|
}
|
|
73
|
+
const ctParams = { source: sourceType, type: viewType, row, column, $rowIndex, rowIndex, _rowIndex };
|
|
71
74
|
return h('td', {
|
|
72
75
|
key: $columnIndex,
|
|
73
76
|
class: ['vxe-gantt-view--body-column', {
|
|
@@ -82,6 +85,9 @@ export default defineVxeComponent({
|
|
|
82
85
|
},
|
|
83
86
|
onDblclick(evnt) {
|
|
84
87
|
$xeGantt.handleTaskCellDblclickEvent(evnt, { row, column });
|
|
88
|
+
},
|
|
89
|
+
onContextmenu(evnt) {
|
|
90
|
+
$xeGantt.handleTaskBodyContextmenuEvent(evnt, ctParams);
|
|
85
91
|
}
|
|
86
92
|
}, tdVNs);
|
|
87
93
|
};
|
|
@@ -161,7 +167,10 @@ export default defineVxeComponent({
|
|
|
161
167
|
h('div', {
|
|
162
168
|
ref: refBodyScroll,
|
|
163
169
|
class: 'vxe-gantt-view--body-inner-wrapper',
|
|
164
|
-
onScroll: $xeGanttView.triggerBodyScrollEvent
|
|
170
|
+
onScroll: $xeGanttView.triggerBodyScrollEvent,
|
|
171
|
+
onContextmenu(evnt) {
|
|
172
|
+
$xeGantt.handleTaskBodyContextmenuEvent(evnt, { source: sourceType, type: viewType, rowIndex: -1, $rowIndex: -1, _rowIndex: -1 });
|
|
173
|
+
}
|
|
165
174
|
}, [
|
|
166
175
|
h('div', {
|
|
167
176
|
ref: refBodyXSpace,
|
|
@@ -5,6 +5,8 @@ import XEUtils from 'xe-utils';
|
|
|
5
5
|
import { getCellRestHeight } from './util';
|
|
6
6
|
import { getStringValue } from '../../ui/src/utils';
|
|
7
7
|
const { renderEmptyElement } = VxeUI;
|
|
8
|
+
const sourceType = 'gantt';
|
|
9
|
+
const viewType = 'chart';
|
|
8
10
|
export default defineVxeComponent({
|
|
9
11
|
name: 'VxeGanttViewChart',
|
|
10
12
|
setup() {
|
|
@@ -13,7 +15,7 @@ export default defineVxeComponent({
|
|
|
13
15
|
const { reactData, internalData } = $xeGanttView;
|
|
14
16
|
const { computeProgressField, computeTitleField, computeTaskBarOpts } = $xeGantt.getComputeMaps();
|
|
15
17
|
const refElem = ref();
|
|
16
|
-
const renderTaskBar = ($xeTable, row, rowid, $rowIndex) => {
|
|
18
|
+
const renderTaskBar = ($xeTable, row, rowid, rowIndex, $rowIndex, _rowIndex) => {
|
|
17
19
|
const tableProps = $xeTable.props;
|
|
18
20
|
const { treeConfig } = tableProps;
|
|
19
21
|
const tableReactData = $xeTable.reactData;
|
|
@@ -56,6 +58,7 @@ export default defineVxeComponent({
|
|
|
56
58
|
if (contentMethod) {
|
|
57
59
|
title = getStringValue(contentMethod({ row, title }));
|
|
58
60
|
}
|
|
61
|
+
const ctParams = { source: sourceType, type: viewType, row, $rowIndex, rowIndex, _rowIndex };
|
|
59
62
|
return h('div', {
|
|
60
63
|
key: treeConfig ? rowid : $rowIndex,
|
|
61
64
|
rowid,
|
|
@@ -65,6 +68,9 @@ export default defineVxeComponent({
|
|
|
65
68
|
}],
|
|
66
69
|
style: {
|
|
67
70
|
height: `${cellHeight}px`
|
|
71
|
+
},
|
|
72
|
+
onContextmenu(evnt) {
|
|
73
|
+
$xeGantt.handleTaskBarContextmenuEvent(evnt, ctParams);
|
|
68
74
|
}
|
|
69
75
|
}, [
|
|
70
76
|
h('div', {
|
|
@@ -105,7 +111,7 @@ export default defineVxeComponent({
|
|
|
105
111
|
const tableReactData = $xeTable.reactData;
|
|
106
112
|
const { treeExpandedFlag } = tableReactData;
|
|
107
113
|
const tableInternalData = $xeTable.internalData;
|
|
108
|
-
const { treeExpandedMaps } = tableInternalData;
|
|
114
|
+
const { fullAllDataRowIdData, treeExpandedMaps } = tableInternalData;
|
|
109
115
|
const { computeTreeOpts } = $xeTable.getComputeMaps();
|
|
110
116
|
const treeOpts = computeTreeOpts.value;
|
|
111
117
|
const { transform } = treeOpts;
|
|
@@ -114,7 +120,14 @@ export default defineVxeComponent({
|
|
|
114
120
|
const trVNs = [];
|
|
115
121
|
tableData.forEach((row, $rowIndex) => {
|
|
116
122
|
const rowid = $xeTable ? $xeTable.getRowid(row) : '';
|
|
117
|
-
|
|
123
|
+
const rowRest = fullAllDataRowIdData[rowid] || {};
|
|
124
|
+
let rowIndex = $rowIndex;
|
|
125
|
+
let _rowIndex = -1;
|
|
126
|
+
if (rowRest) {
|
|
127
|
+
rowIndex = rowRest.index;
|
|
128
|
+
_rowIndex = rowRest._index;
|
|
129
|
+
}
|
|
130
|
+
trVNs.push(renderTaskBar($xeTable, row, rowid, rowIndex, $rowIndex, _rowIndex));
|
|
118
131
|
let isExpandTree = false;
|
|
119
132
|
let rowChildren = [];
|
|
120
133
|
if (treeConfig && !scrollYLoad && !transform) {
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { h, inject, ref, onMounted, onUnmounted } from 'vue';
|
|
2
2
|
import { defineVxeComponent } from '../../ui/src/comp';
|
|
3
|
+
const sourceType = 'gantt';
|
|
4
|
+
const viewType = 'footer';
|
|
3
5
|
export default defineVxeComponent({
|
|
4
6
|
name: 'VxeGanttViewFooter',
|
|
5
7
|
setup() {
|
|
8
|
+
const $xeGantt = inject('$xeGantt', {});
|
|
6
9
|
const $xeGanttView = inject('$xeGanttView', {});
|
|
7
10
|
const { internalData } = $xeGanttView;
|
|
8
11
|
const refElem = ref();
|
|
@@ -10,7 +13,10 @@ export default defineVxeComponent({
|
|
|
10
13
|
const renderVN = () => {
|
|
11
14
|
return h('div', {
|
|
12
15
|
ref: refElem,
|
|
13
|
-
class: 'vxe-gantt-view--footer-wrapper'
|
|
16
|
+
class: 'vxe-gantt-view--footer-wrapper',
|
|
17
|
+
onContextmenu(evnt) {
|
|
18
|
+
$xeGantt.handleTaskFooterContextmenuEvent(evnt, { source: sourceType, type: viewType, $rowIndex: -1 });
|
|
19
|
+
}
|
|
14
20
|
}, [
|
|
15
21
|
h('div', {
|
|
16
22
|
ref: refHeaderScroll,
|
|
@@ -3,6 +3,8 @@ import { defineVxeComponent } from '../../ui/src/comp';
|
|
|
3
3
|
import { VxeUI } from '@vxe-ui/core';
|
|
4
4
|
import XEUtils from 'xe-utils';
|
|
5
5
|
const { getI18n } = VxeUI;
|
|
6
|
+
const sourceType = 'gantt';
|
|
7
|
+
const viewType = 'header';
|
|
6
8
|
export default defineVxeComponent({
|
|
7
9
|
name: 'VxeGanttViewHeader',
|
|
8
10
|
setup() {
|
|
@@ -62,7 +64,7 @@ export default defineVxeComponent({
|
|
|
62
64
|
}
|
|
63
65
|
}
|
|
64
66
|
let cellVNs = label;
|
|
65
|
-
const ctParams = { scaleObj: scaleItem, title: label, dateObj: dateObj, $rowIndex };
|
|
67
|
+
const ctParams = { source: sourceType, type: viewType, column, scaleObj: scaleItem, title: label, dateObj: dateObj, $rowIndex };
|
|
66
68
|
if (titleSlot) {
|
|
67
69
|
cellVNs = $xeGantt.callSlot(titleSlot, ctParams);
|
|
68
70
|
}
|
|
@@ -85,7 +87,10 @@ export default defineVxeComponent({
|
|
|
85
87
|
}],
|
|
86
88
|
colspan: childCount || null,
|
|
87
89
|
title: titleSlot ? null : label,
|
|
88
|
-
style: cellStys
|
|
90
|
+
style: cellStys,
|
|
91
|
+
onContextmenu(evnt) {
|
|
92
|
+
$xeGantt.handleTaskHeaderContextmenuEvent(evnt, ctParams);
|
|
93
|
+
}
|
|
89
94
|
}, cellVNs);
|
|
90
95
|
}));
|
|
91
96
|
}))
|
package/es/gantt/src/gantt.js
CHANGED
|
@@ -1442,6 +1442,50 @@ export default defineVxeComponent({
|
|
|
1442
1442
|
},
|
|
1443
1443
|
handleTaskBarDblclickEvent(evnt, params) {
|
|
1444
1444
|
$xeGantt.dispatchEvent('task-bar-dblclick', params, evnt);
|
|
1445
|
+
},
|
|
1446
|
+
handleTaskHeaderContextmenuEvent(evnt, params) {
|
|
1447
|
+
const $xeTable = refTable.value;
|
|
1448
|
+
if ($xeTable) {
|
|
1449
|
+
const tableProps = $xeTable.props;
|
|
1450
|
+
const { menuConfig } = tableProps;
|
|
1451
|
+
if (isEnableConf(menuConfig)) {
|
|
1452
|
+
evnt.stopPropagation();
|
|
1453
|
+
$xeTable.handleOpenMenuEvent(evnt, 'header', params);
|
|
1454
|
+
}
|
|
1455
|
+
}
|
|
1456
|
+
},
|
|
1457
|
+
handleTaskBodyContextmenuEvent(evnt, params) {
|
|
1458
|
+
const $xeTable = refTable.value;
|
|
1459
|
+
if ($xeTable) {
|
|
1460
|
+
const tableProps = $xeTable.props;
|
|
1461
|
+
const { menuConfig } = tableProps;
|
|
1462
|
+
if (isEnableConf(menuConfig)) {
|
|
1463
|
+
evnt.stopPropagation();
|
|
1464
|
+
$xeTable.handleOpenMenuEvent(evnt, 'body', params);
|
|
1465
|
+
}
|
|
1466
|
+
}
|
|
1467
|
+
},
|
|
1468
|
+
handleTaskFooterContextmenuEvent(evnt, params) {
|
|
1469
|
+
const $xeTable = refTable.value;
|
|
1470
|
+
if ($xeTable) {
|
|
1471
|
+
const tableProps = $xeTable.props;
|
|
1472
|
+
const { menuConfig } = tableProps;
|
|
1473
|
+
if (isEnableConf(menuConfig)) {
|
|
1474
|
+
evnt.stopPropagation();
|
|
1475
|
+
$xeTable.handleOpenMenuEvent(evnt, 'footer', params);
|
|
1476
|
+
}
|
|
1477
|
+
}
|
|
1478
|
+
},
|
|
1479
|
+
handleTaskBarContextmenuEvent(evnt, params) {
|
|
1480
|
+
const $xeTable = refTable.value;
|
|
1481
|
+
if ($xeTable) {
|
|
1482
|
+
const tableProps = $xeTable.props;
|
|
1483
|
+
const { menuConfig } = tableProps;
|
|
1484
|
+
if (isEnableConf(menuConfig)) {
|
|
1485
|
+
evnt.stopPropagation();
|
|
1486
|
+
$xeTable.handleOpenMenuEvent(evnt, 'body', params);
|
|
1487
|
+
}
|
|
1488
|
+
}
|
|
1445
1489
|
}
|
|
1446
1490
|
};
|
|
1447
1491
|
Object.assign($xeGantt, ganttExtendTableMethods, ganttMethods, ganttPrivateMethods, {
|
package/es/ui/index.js
CHANGED
package/es/ui/src/log.js
CHANGED
|
@@ -9,6 +9,8 @@ var _comp = require("../../ui/src/comp");
|
|
|
9
9
|
var _util = require("./util");
|
|
10
10
|
var _ganttChart = _interopRequireDefault(require("./gantt-chart"));
|
|
11
11
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
|
+
const sourceType = 'gantt';
|
|
13
|
+
const viewType = 'body';
|
|
12
14
|
var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
13
15
|
name: 'VxeGanttViewBody',
|
|
14
16
|
setup() {
|
|
@@ -87,7 +89,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
87
89
|
$columnIndex: 0,
|
|
88
90
|
_columnIndex: 0,
|
|
89
91
|
fixed: '',
|
|
90
|
-
type:
|
|
92
|
+
type: viewType,
|
|
91
93
|
isHidden: false,
|
|
92
94
|
isEdit: false,
|
|
93
95
|
level: -1,
|
|
@@ -102,6 +104,15 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
102
104
|
onDblclick: evnt => $xeTable.handleRowResizeDblclickEvent(evnt, cellParams)
|
|
103
105
|
}));
|
|
104
106
|
}
|
|
107
|
+
const ctParams = {
|
|
108
|
+
source: sourceType,
|
|
109
|
+
type: viewType,
|
|
110
|
+
row,
|
|
111
|
+
column,
|
|
112
|
+
$rowIndex,
|
|
113
|
+
rowIndex,
|
|
114
|
+
_rowIndex
|
|
115
|
+
};
|
|
105
116
|
return (0, _vue.h)('td', {
|
|
106
117
|
key: $columnIndex,
|
|
107
118
|
class: ['vxe-gantt-view--body-column', {
|
|
@@ -122,6 +133,9 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
122
133
|
row,
|
|
123
134
|
column
|
|
124
135
|
});
|
|
136
|
+
},
|
|
137
|
+
onContextmenu(evnt) {
|
|
138
|
+
$xeGantt.handleTaskBodyContextmenuEvent(evnt, ctParams);
|
|
125
139
|
}
|
|
126
140
|
}, tdVNs);
|
|
127
141
|
};
|
|
@@ -235,7 +249,16 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
235
249
|
}, [(0, _vue.h)('div', {
|
|
236
250
|
ref: refBodyScroll,
|
|
237
251
|
class: 'vxe-gantt-view--body-inner-wrapper',
|
|
238
|
-
onScroll: $xeGanttView.triggerBodyScrollEvent
|
|
252
|
+
onScroll: $xeGanttView.triggerBodyScrollEvent,
|
|
253
|
+
onContextmenu(evnt) {
|
|
254
|
+
$xeGantt.handleTaskBodyContextmenuEvent(evnt, {
|
|
255
|
+
source: sourceType,
|
|
256
|
+
type: viewType,
|
|
257
|
+
rowIndex: -1,
|
|
258
|
+
$rowIndex: -1,
|
|
259
|
+
_rowIndex: -1
|
|
260
|
+
});
|
|
261
|
+
}
|
|
239
262
|
}, [(0, _vue.h)('div', {
|
|
240
263
|
ref: refBodyXSpace,
|
|
241
264
|
class: 'vxe-body--x-space'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_util=require("./util"),_ganttChart=_interopRequireDefault(require("./gantt-chart"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttViewBody",setup(){let
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_util=require("./util"),_ganttChart=_interopRequireDefault(require("./gantt-chart"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let sourceType="gantt",viewType="body";var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttViewBody",setup(){let y=(0,_vue.inject)("$xeGantt",{}),l=(0,_vue.inject)("$xeGanttView",{}),b=y.getComputeMaps().computeTaskViewOpts,{reactData:M,internalData:D}=l,r=(0,_vue.ref)(),n=(0,_vue.ref)(),i=(0,_vue.ref)(),u=(0,_vue.ref)(),s=(0,_vue.ref)(),O=(a,o,e,l,r,n,t,i)=>{var u=a.reactData.resizeHeightFlag,{fullAllDataRowIdData:s,visibleColumn:d}=a.internalData,{computeCellOpts:v,computeRowOpts:p,computeDefaultRowHeight:c,computeResizableOpts:w}=a.getComputeMaps(),v=v.value,p=p.value,c=c.value,w=w.value.isAllRowDrag,h=M.headerGroups,g=D.todayDateMaps,x=b.value.showNowLine,h=(h[h.length-1]||{}).scaleItem,m=t.field,g=x&&h?g[h.type]:null,h=s[e]||{},s=0<(u?h.resizeHeight:0),u=(0,_util.getCellRestHeight)(h,v,p,c),h=[];if(w&&p.resizable){let t={$table:a,$grid:null,$gantt:y,seq:-1,rowid:e,row:o,rowIndex:l,$rowIndex:r,_rowIndex:n,column:d[0],columnIndex:0,$columnIndex:0,_columnIndex:0,fixed:"",type:viewType,isHidden:!1,isEdit:!1,level:-1,visibleData:[],data:[],items:[]};h.push((0,_vue.h)("div",{class:"vxe-gantt-view-cell--row-resizable",onMousedown:e=>a.handleRowResizeMousedownEvent(e,t),onDblclick:e=>a.handleRowResizeDblclickEvent(e,t)}))}let _={source:sourceType,type:viewType,row:o,column:t,$rowIndex:r,rowIndex:l,_rowIndex:n};return(0,_vue.h)("td",{key:i,class:["vxe-gantt-view--body-column",{"is--now":x&&g===m,"col--rs-height":s}],style:{height:u+"px"},onClick(e){y.handleTaskCellClickEvent(e,{row:o,column:t})},onDblclick(e){y.handleTaskCellDblclickEvent(e,{row:o,column:t})},onContextmenu(e){y.handleTaskBodyContextmenuEvent(e,_)}},h)},H=(d,e)=>{let{treeConfig:v,stripe:p,highlightHoverRow:c,editConfig:w}=d.props,{treeExpandedFlag:h,selectRadioRow:g,pendingRowFlag:x,isRowGroupStatus:m}=d.reactData,{fullAllDataRowIdData:_,treeExpandedMaps:y,pendingRowMaps:b}=d.internalData;var{computeRadioOpts:t,computeCheckboxOpts:a,computeTreeOpts:o,computeRowOpts:l}=d.getComputeMaps();let D=t.value,f=a.value,R=l.value;t=o.value;let C=t.transform,k=t.children||t.childrenField,{tableColumn:I,scrollYLoad:E}=M,T=[];return e.forEach((a,o)=>{let l=d.getRowid(a);var e=_[l]||{},t={};let r=o,n=-1,i=(e&&(r=e.index,n=e._index),!1),u=(w&&(i=d.isInsertByRow(a)),(R.isHover||c)&&(t.onMouseenter=e=>{d.triggerHoverEvent(e,{row:a,rowIndex:r})},t.onMouseleave=()=>{d.clearHoverRow()}),!R.drag||m||v&&!C||(t.onDragstart=d.handleRowDragDragstartEvent,t.onDragend=d.handleRowDragDragendEvent,t.onDragover=d.handleRowDragDragoverEvent),T.push((0,_vue.h)("tr",Object.assign({key:v?l:o,class:["vxe-gantt-view--body-row",{"row--stripe":p&&(n+1)%2==0,"is--new":i,"row--radio":D.highlight&&d.eqRow(g,a),"row--checked":f.highlight&&d.isCheckedByCheckboxRow(a),"row--pending":!!x&&!!b[l]}],rowid:l},t),I.map((e,t)=>O(d,a,l,r,o,n,e,t)))),!1),s=[];!v||E||C||(s=a[k],u=!!h&&s&&0<s.length&&!!y[l]),u&&T.push(...H(d,s))}),T};return(0,_vue.onMounted)(()=>{var e=D.elemStore,t="main-body-";e[t+"wrapper"]=r,e[t+"scroll"]=n,e[t+"table"]=i,e[t+"xSpace"]=u,e[t+"ySpace"]=s}),(0,_vue.onUnmounted)(()=>{var e=D.elemStore,t="main-body-";e[t+"wrapper"]=null,e[t+"scroll"]=null,e[t+"table"]=null,e[t+"xSpace"]=null,e[t+"ySpace"]=null}),()=>{var e=l.internalData.xeTable;let{tableData:t,tableColumn:a,viewCellWidth:o}=M;return(0,_vue.h)("div",{ref:r,class:"vxe-gantt-view--body-wrapper"},[(0,_vue.h)("div",{ref:n,class:"vxe-gantt-view--body-inner-wrapper",onScroll:l.triggerBodyScrollEvent,onContextmenu(e){y.handleTaskBodyContextmenuEvent(e,{source:sourceType,type:viewType,rowIndex:-1,$rowIndex:-1,_rowIndex:-1})}},[(0,_vue.h)("div",{ref:u,class:"vxe-body--x-space"}),(0,_vue.h)("div",{ref:s,class:"vxe-body--y-space"}),(0,_vue.h)("table",{ref:i,class:"vxe-gantt-view--body-table"},[(0,_vue.h)("colgroup",{},a.map((e,t)=>(0,_vue.h)("col",{key:t,style:{width:o+"px"}}))),(0,_vue.h)("tbody",{},e?H(e,t):[])]),(0,_vue.h)(_ganttChart.default)])])}}});
|
|
@@ -14,6 +14,8 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
|
|
|
14
14
|
const {
|
|
15
15
|
renderEmptyElement
|
|
16
16
|
} = _core.VxeUI;
|
|
17
|
+
const sourceType = 'gantt';
|
|
18
|
+
const viewType = 'chart';
|
|
17
19
|
var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
18
20
|
name: 'VxeGanttViewChart',
|
|
19
21
|
setup() {
|
|
@@ -29,7 +31,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
29
31
|
computeTaskBarOpts
|
|
30
32
|
} = $xeGantt.getComputeMaps();
|
|
31
33
|
const refElem = (0, _vue.ref)();
|
|
32
|
-
const renderTaskBar = ($xeTable, row, rowid, $rowIndex) => {
|
|
34
|
+
const renderTaskBar = ($xeTable, row, rowid, rowIndex, $rowIndex, _rowIndex) => {
|
|
33
35
|
const tableProps = $xeTable.props;
|
|
34
36
|
const {
|
|
35
37
|
treeConfig
|
|
@@ -98,6 +100,14 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
98
100
|
title
|
|
99
101
|
}));
|
|
100
102
|
}
|
|
103
|
+
const ctParams = {
|
|
104
|
+
source: sourceType,
|
|
105
|
+
type: viewType,
|
|
106
|
+
row,
|
|
107
|
+
$rowIndex,
|
|
108
|
+
rowIndex,
|
|
109
|
+
_rowIndex
|
|
110
|
+
};
|
|
101
111
|
return (0, _vue.h)('div', {
|
|
102
112
|
key: treeConfig ? rowid : $rowIndex,
|
|
103
113
|
rowid,
|
|
@@ -107,6 +117,9 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
107
117
|
}],
|
|
108
118
|
style: {
|
|
109
119
|
height: `${cellHeight}px`
|
|
120
|
+
},
|
|
121
|
+
onContextmenu(evnt) {
|
|
122
|
+
$xeGantt.handleTaskBarContextmenuEvent(evnt, ctParams);
|
|
110
123
|
}
|
|
111
124
|
}, [(0, _vue.h)('div', {
|
|
112
125
|
class: taskBarSlot ? 'vxe-gantt-view--chart-custom-bar' : 'vxe-gantt-view--chart-bar',
|
|
@@ -141,6 +154,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
141
154
|
} = tableReactData;
|
|
142
155
|
const tableInternalData = $xeTable.internalData;
|
|
143
156
|
const {
|
|
157
|
+
fullAllDataRowIdData,
|
|
144
158
|
treeExpandedMaps
|
|
145
159
|
} = tableInternalData;
|
|
146
160
|
const {
|
|
@@ -157,7 +171,14 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
157
171
|
const trVNs = [];
|
|
158
172
|
tableData.forEach((row, $rowIndex) => {
|
|
159
173
|
const rowid = $xeTable ? $xeTable.getRowid(row) : '';
|
|
160
|
-
|
|
174
|
+
const rowRest = fullAllDataRowIdData[rowid] || {};
|
|
175
|
+
let rowIndex = $rowIndex;
|
|
176
|
+
let _rowIndex = -1;
|
|
177
|
+
if (rowRest) {
|
|
178
|
+
rowIndex = rowRest.index;
|
|
179
|
+
_rowIndex = rowRest._index;
|
|
180
|
+
}
|
|
181
|
+
trVNs.push(renderTaskBar($xeTable, row, rowid, rowIndex, $rowIndex, _rowIndex));
|
|
161
182
|
let isExpandTree = false;
|
|
162
183
|
let rowChildren = [];
|
|
163
184
|
if (treeConfig && !scrollYLoad && !transform) {
|
|
@@ -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;var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttViewChart",setup(){let
|
|
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 E=(0,_vue.inject)("$xeGantt",{}),a=(0,_vue.inject)("$xeGanttView",{}),{reactData:r,internalData:t}=a,{computeProgressField:k,computeTitleField:y,computeTaskBarOpts:b}=E.getComputeMaps(),l=(0,_vue.ref)(),x=(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,d=E.context.slots,d=d.taskBar||d["task-bar"],p=y.value,v=k.value,h=b.value;let g={$gantt:E,row:t};var{showProgress:h,showContent:m,contentMethod:x,barStyle:_}=h,w=_xeUtils.default.isFunction(_),_=(_?w?_(g):_:{})||{},f=_.round,i=i[a]||{},u=0<(u?i.resizeHeight:0),i=(0,_util.getCellRestHeight)(i,e,s,c);let C=(0,_utils.getStringValue)(_xeUtils.default.get(t,p));e={},s={width:`${(h?Math.min(100,Math.max(0,_xeUtils.default.toNumber(_xeUtils.default.get(t,v)))):0)||0}%`};w&&({bgColor:c,completedBgColor:p}=_,c&&(e.backgroundColor=c),p)&&(s.backgroundColor=p),x&&(C=(0,_utils.getStringValue)(x({row:t,title:C})));let D={source:sourceType,type:viewType,row:t,$rowIndex:l,rowIndex:r,_rowIndex:n};return(0,_vue.h)("div",{key:o?a:l,rowid:a,class:["vxe-gantt-view--chart-row",{"is--round":f,"col--rs-height":u}],style:{height:i+"px"},onContextmenu(e){E.handleTaskBarContextmenuEvent(e,D)}},[(0,_vue.h)("div",{class:d?"vxe-gantt-view--chart-custom-bar":"vxe-gantt-view--chart-bar",style:e,rowid:a,onClick(e){E.handleTaskBarClickEvent(e,g)},onDblclick(e){E.handleTaskBarDblclickEvent(e,g)},onMousedown(e){E.handleTaskBarMousedownEvent&&E.handleTaskBarMousedownEvent(e,g)}},d?E.callSlot(d,g):[h?(0,_vue.h)("div",{class:"vxe-gantt-view--chart-progress",style:s}):renderEmptyElement(E),m?(0,_vue.h)("div",{class:"vxe-gantt-view--chart-content"},C):renderEmptyElement(E)])])},_=(i,e)=>{let s=i.props.treeConfig,c=i.reactData.treeExpandedFlag,{fullAllDataRowIdData:d,treeExpandedMaps:p}=i.internalData;var t=i.getComputeMaps().computeTreeOpts,t=t.value;let v=t.transform,h=t.children||t.childrenField,g=r.scrollYLoad,m=[];return e.forEach((e,t)=>{var a=i?i.getRowid(e):"",r=d[a]||{};let l=t,n=-1,o=(r&&(l=r.index,n=r._index),m.push(x(i,e,a,l,t,n)),!1),u=[];!s||g||v||(u=e[h],o=!!c&&u&&0<u.length&&!!p[a]),o&&m.push(..._(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?_(e,t):[])}}});
|
|
@@ -6,9 +6,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _vue = require("vue");
|
|
8
8
|
var _comp = require("../../ui/src/comp");
|
|
9
|
+
const sourceType = 'gantt';
|
|
10
|
+
const viewType = 'footer';
|
|
9
11
|
var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
10
12
|
name: 'VxeGanttViewFooter',
|
|
11
13
|
setup() {
|
|
14
|
+
const $xeGantt = (0, _vue.inject)('$xeGantt', {});
|
|
12
15
|
const $xeGanttView = (0, _vue.inject)('$xeGanttView', {});
|
|
13
16
|
const {
|
|
14
17
|
internalData
|
|
@@ -18,7 +21,14 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
18
21
|
const renderVN = () => {
|
|
19
22
|
return (0, _vue.h)('div', {
|
|
20
23
|
ref: refElem,
|
|
21
|
-
class: 'vxe-gantt-view--footer-wrapper'
|
|
24
|
+
class: 'vxe-gantt-view--footer-wrapper',
|
|
25
|
+
onContextmenu(evnt) {
|
|
26
|
+
$xeGantt.handleTaskFooterContextmenuEvent(evnt, {
|
|
27
|
+
source: sourceType,
|
|
28
|
+
type: viewType,
|
|
29
|
+
$rowIndex: -1
|
|
30
|
+
});
|
|
31
|
+
}
|
|
22
32
|
}, [(0, _vue.h)('div', {
|
|
23
33
|
ref: refHeaderScroll,
|
|
24
34
|
class: 'vxe-gantt-view--footer-inner-wrapper'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttViewFooter",setup(){let t=(0,_vue.inject)("$xeGanttView",{}).internalData,o=(0,_vue.ref)(),n=(0,_vue.ref)();return(0,_vue.onMounted)(()=>{var e=
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp");let sourceType="gantt",viewType="footer";var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttViewFooter",setup(){let t=(0,_vue.inject)("$xeGantt",{});let r=(0,_vue.inject)("$xeGanttView",{}).internalData,o=(0,_vue.ref)(),n=(0,_vue.ref)();return(0,_vue.onMounted)(()=>{var e=r.elemStore,t="main-footer-";e[t+"wrapper"]=o,e[t+"scroll"]=n}),(0,_vue.onUnmounted)(()=>{var e=r.elemStore,t="main-footer-";e[t+"wrapper"]=null,e[t+"scroll"]=null}),()=>(0,_vue.h)("div",{ref:o,class:"vxe-gantt-view--footer-wrapper",onContextmenu(e){t.handleTaskFooterContextmenuEvent(e,{source:sourceType,type:viewType,$rowIndex:-1})}},[(0,_vue.h)("div",{ref:n,class:"vxe-gantt-view--footer-inner-wrapper"})])}});
|
|
@@ -12,6 +12,8 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
|
|
|
12
12
|
const {
|
|
13
13
|
getI18n
|
|
14
14
|
} = _core.VxeUI;
|
|
15
|
+
const sourceType = 'gantt';
|
|
16
|
+
const viewType = 'header';
|
|
15
17
|
var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
16
18
|
name: 'VxeGanttViewHeader',
|
|
17
19
|
setup() {
|
|
@@ -91,6 +93,9 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
91
93
|
}
|
|
92
94
|
let cellVNs = label;
|
|
93
95
|
const ctParams = {
|
|
96
|
+
source: sourceType,
|
|
97
|
+
type: viewType,
|
|
98
|
+
column,
|
|
94
99
|
scaleObj: scaleItem,
|
|
95
100
|
title: label,
|
|
96
101
|
dateObj: dateObj,
|
|
@@ -116,7 +121,10 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
116
121
|
}],
|
|
117
122
|
colspan: childCount || null,
|
|
118
123
|
title: titleSlot ? null : label,
|
|
119
|
-
style: cellStys
|
|
124
|
+
style: cellStys,
|
|
125
|
+
onContextmenu(evnt) {
|
|
126
|
+
$xeGantt.handleTaskHeaderContextmenuEvent(evnt, ctParams);
|
|
127
|
+
}
|
|
120
128
|
}, cellVNs);
|
|
121
129
|
}));
|
|
122
130
|
}))])])]);
|
|
@@ -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"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let getI18n=_core.VxeUI.getI18n;var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttViewHeader",setup(){let
|
|
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"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let getI18n=_core.VxeUI.getI18n,sourceType="gantt",viewType="header";var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttViewHeader",setup(){let w=(0,_vue.inject)("$xeGantt",{}),t=(0,_vue.inject)("$xeGanttView",{}),a=w.getComputeMaps().computeTaskViewOpts,{reactData:n,internalData:u}=t,o=(0,_vue.ref)(),i=(0,_vue.ref)(),v=(0,_vue.ref)(),s=(0,_vue.ref)();return(0,_vue.onMounted)(()=>{var e=u.elemStore,t="main-header-";e[t+"wrapper"]=o,e[t+"scroll"]=i,e[t+"table"]=v,e[t+"xSpace"]=s}),(0,_vue.onUnmounted)(()=>{var e=u.elemStore,t="main-header-";e[t+"wrapper"]=null,e[t+"scroll"]=null,e[t+"table"]=null,e[t+"xSpace"]=null}),()=>{let{headerGroups:x,viewCellWidth:l}=n,{todayDateMaps:r,visibleColumn:e}=u;let m=a.value.showNowLine;return(0,_vue.h)("div",{ref:o,class:"vxe-gantt-view--header-wrapper"},[(0,_vue.h)("div",{ref:i,class:"vxe-gantt-view--header-inner-wrapper",onScroll:t.triggerHeaderScrollEvent},[(0,_vue.h)("div",{ref:s,class:"vxe-body--x-space"}),(0,_vue.h)("table",{ref:v,class:"vxe-gantt-view--header-table"},[(0,_vue.h)("colgroup",{},e.map((e,t)=>(0,_vue.h)("col",{key:t,style:{width:l+"px"}}))),(0,_vue.h)("thead",{},x.map(({scaleItem:v,columns:e},s)=>{let{type:p,titleMethod:d,headerCellStyle:c,slots:t}=v,_=t?t.title:null,h=m&&s===x.length-1?r[p]:null;return(0,_vue.h)("tr",{key:s},e.map((e,t)=>{var{field:l,childCount:r,dateObj:a}=e;let n=""+e.title,u=n=s<x.length-1?"day"===v.type?getI18n("vxe.gantt.dayss.w"+a.e):getI18n(`vxe.gantt.${!s&&1<x.length?"tFullFormat":"tSimpleFormat"}.`+p,a):n,o={source:sourceType,type:viewType,column:e,scaleObj:v,title:n,dateObj:a,$rowIndex:s},i=(_?u=w.callSlot(_,o):d&&(u=""+d(o)),{});return c&&(i=_xeUtils.default.isFunction(c)?c(o):c),(0,_vue.h)("th",{key:t,class:["vxe-gantt-view--header-column",{"is--now":m&&h&&h===l}],colspan:r||null,title:_?null:n,style:i,onContextmenu(e){w.handleTaskHeaderContextmenuEvent(e,o)}},u)}))}))])])])}}});
|
package/lib/gantt/src/gantt.js
CHANGED
|
@@ -1732,6 +1732,58 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1732
1732
|
},
|
|
1733
1733
|
handleTaskBarDblclickEvent(evnt, params) {
|
|
1734
1734
|
$xeGantt.dispatchEvent('task-bar-dblclick', params, evnt);
|
|
1735
|
+
},
|
|
1736
|
+
handleTaskHeaderContextmenuEvent(evnt, params) {
|
|
1737
|
+
const $xeTable = refTable.value;
|
|
1738
|
+
if ($xeTable) {
|
|
1739
|
+
const tableProps = $xeTable.props;
|
|
1740
|
+
const {
|
|
1741
|
+
menuConfig
|
|
1742
|
+
} = tableProps;
|
|
1743
|
+
if ((0, _utils.isEnableConf)(menuConfig)) {
|
|
1744
|
+
evnt.stopPropagation();
|
|
1745
|
+
$xeTable.handleOpenMenuEvent(evnt, 'header', params);
|
|
1746
|
+
}
|
|
1747
|
+
}
|
|
1748
|
+
},
|
|
1749
|
+
handleTaskBodyContextmenuEvent(evnt, params) {
|
|
1750
|
+
const $xeTable = refTable.value;
|
|
1751
|
+
if ($xeTable) {
|
|
1752
|
+
const tableProps = $xeTable.props;
|
|
1753
|
+
const {
|
|
1754
|
+
menuConfig
|
|
1755
|
+
} = tableProps;
|
|
1756
|
+
if ((0, _utils.isEnableConf)(menuConfig)) {
|
|
1757
|
+
evnt.stopPropagation();
|
|
1758
|
+
$xeTable.handleOpenMenuEvent(evnt, 'body', params);
|
|
1759
|
+
}
|
|
1760
|
+
}
|
|
1761
|
+
},
|
|
1762
|
+
handleTaskFooterContextmenuEvent(evnt, params) {
|
|
1763
|
+
const $xeTable = refTable.value;
|
|
1764
|
+
if ($xeTable) {
|
|
1765
|
+
const tableProps = $xeTable.props;
|
|
1766
|
+
const {
|
|
1767
|
+
menuConfig
|
|
1768
|
+
} = tableProps;
|
|
1769
|
+
if ((0, _utils.isEnableConf)(menuConfig)) {
|
|
1770
|
+
evnt.stopPropagation();
|
|
1771
|
+
$xeTable.handleOpenMenuEvent(evnt, 'footer', params);
|
|
1772
|
+
}
|
|
1773
|
+
}
|
|
1774
|
+
},
|
|
1775
|
+
handleTaskBarContextmenuEvent(evnt, params) {
|
|
1776
|
+
const $xeTable = refTable.value;
|
|
1777
|
+
if ($xeTable) {
|
|
1778
|
+
const tableProps = $xeTable.props;
|
|
1779
|
+
const {
|
|
1780
|
+
menuConfig
|
|
1781
|
+
} = tableProps;
|
|
1782
|
+
if ((0, _utils.isEnableConf)(menuConfig)) {
|
|
1783
|
+
evnt.stopPropagation();
|
|
1784
|
+
$xeTable.handleOpenMenuEvent(evnt, 'body', params);
|
|
1785
|
+
}
|
|
1786
|
+
}
|
|
1735
1787
|
}
|
|
1736
1788
|
};
|
|
1737
1789
|
Object.assign($xeGantt, ganttExtendTableMethods, ganttMethods, ganttPrivateMethods, {
|