vxe-gantt 3.0.0-beta.1 → 3.0.0-beta.3
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 +77 -36
- package/es/gantt/src/gantt-chart.js +87 -60
- package/es/gantt/src/gantt-view.js +63 -7
- package/es/gantt/src/gantt.js +30 -6
- package/es/gantt/style.css +17 -0
- package/es/gantt/style.min.css +1 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/ui/index.js +7 -2
- package/es/ui/src/log.js +1 -1
- package/es/ui/src/vn.js +10 -1
- package/es/vxe-gantt/style.css +17 -0
- package/es/vxe-gantt/style.min.css +1 -1
- package/lib/gantt/src/gantt-body.js +98 -40
- package/lib/gantt/src/gantt-body.min.js +1 -1
- package/lib/gantt/src/gantt-chart.js +95 -62
- package/lib/gantt/src/gantt-chart.min.js +1 -1
- package/lib/gantt/src/gantt-view.js +72 -6
- package/lib/gantt/src/gantt-view.min.js +1 -1
- package/lib/gantt/src/gantt.js +31 -8
- package/lib/gantt/src/gantt.min.js +1 -1
- package/lib/gantt/style/style.css +17 -0
- package/lib/gantt/style/style.min.css +1 -1
- package/lib/index.umd.js +309 -122
- 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 +13 -2
- 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/ui/src/vn.js +17 -1
- package/lib/ui/src/vn.min.js +1 -0
- package/lib/vxe-gantt/style/style.css +17 -0
- package/lib/vxe-gantt/style/style.min.css +1 -1
- package/package.json +4 -4
- package/packages/gantt/src/gantt-body.ts +85 -39
- package/packages/gantt/src/gantt-chart.ts +99 -66
- package/packages/gantt/src/gantt-view.ts +65 -7
- package/packages/gantt/src/gantt.ts +30 -6
- package/packages/ui/index.ts +9 -1
- package/packages/ui/src/vn.ts +13 -0
- package/styles/components/gantt-module/gantt-chart.scss +1 -0
- package/styles/components/gantt.scss +19 -0
|
@@ -10,6 +10,12 @@ var _xeUtils = _interopRequireDefault(require("xe-utils"));
|
|
|
10
10
|
var _util = require("./util");
|
|
11
11
|
var _utils = require("../../ui/src/utils");
|
|
12
12
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
|
+
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
|
|
14
|
+
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."); }
|
|
15
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
16
|
+
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
|
17
|
+
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
|
|
18
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
13
19
|
var renderEmptyElement = _core.VxeUI.renderEmptyElement;
|
|
14
20
|
var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
15
21
|
name: 'VxeGanttViewChart',
|
|
@@ -30,23 +36,16 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
30
36
|
//
|
|
31
37
|
// Render
|
|
32
38
|
//
|
|
33
|
-
|
|
39
|
+
renderTaskBar: function renderTaskBar(h, $xeTable, row, rowid, $rowIndex) {
|
|
34
40
|
var _vm = this;
|
|
35
41
|
var $xeGantt = _vm.$xeGantt;
|
|
36
|
-
var
|
|
37
|
-
var
|
|
38
|
-
var tableInternalData = $xeTable
|
|
39
|
-
var fullAllDataRowIdData = tableInternalData.fullAllDataRowIdData
|
|
40
|
-
var cellOpts =
|
|
41
|
-
var rowOpts =
|
|
42
|
-
var defaultRowHeight =
|
|
43
|
-
if ($xeTable) {
|
|
44
|
-
cellOpts = $xeTable.computeCellOpts;
|
|
45
|
-
rowOpts = $xeTable.computeRowOpts;
|
|
46
|
-
defaultRowHeight = $xeTable.computeDefaultRowHeight;
|
|
47
|
-
}
|
|
48
|
-
var reactData = $xeGanttView.reactData;
|
|
49
|
-
var tableData = reactData.tableData;
|
|
42
|
+
var tableProps = $xeTable;
|
|
43
|
+
var treeConfig = tableProps.treeConfig;
|
|
44
|
+
var tableInternalData = $xeTable;
|
|
45
|
+
var fullAllDataRowIdData = tableInternalData.fullAllDataRowIdData;
|
|
46
|
+
var cellOpts = $xeTable.computeCellOpts;
|
|
47
|
+
var rowOpts = $xeTable.computeRowOpts;
|
|
48
|
+
var defaultRowHeight = $xeTable.computeDefaultRowHeight;
|
|
50
49
|
var titleField = $xeGantt.computeTitleField;
|
|
51
50
|
var progressField = $xeGantt.computeProgressField;
|
|
52
51
|
var taskBarOpts = $xeGantt.computeTaskBarOpts;
|
|
@@ -56,60 +55,94 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
56
55
|
barStyle = taskBarOpts.barStyle;
|
|
57
56
|
var _ref = barStyle || {},
|
|
58
57
|
round = _ref.round;
|
|
59
|
-
var
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
58
|
+
var rowRest = fullAllDataRowIdData[rowid] || {};
|
|
59
|
+
var cellHeight = (0, _util.getCellRestHeight)(rowRest, cellOpts, rowOpts, defaultRowHeight);
|
|
60
|
+
var title = (0, _utils.getStringValue)(_xeUtils.default.get(row, titleField));
|
|
61
|
+
var progressValue = showProgress ? Math.min(100, Math.max(0, _xeUtils.default.toNumber(_xeUtils.default.get(row, progressField)))) : 0;
|
|
62
|
+
if (contentMethod) {
|
|
63
|
+
title = (0, _utils.getStringValue)(contentMethod({
|
|
64
|
+
row: row,
|
|
65
|
+
title: title
|
|
66
|
+
}));
|
|
67
|
+
}
|
|
68
|
+
return h('div', {
|
|
69
|
+
key: treeConfig ? rowid : $rowIndex,
|
|
70
|
+
attrs: {
|
|
71
|
+
rowid: rowid
|
|
72
|
+
},
|
|
73
|
+
class: ['vxe-gantt-view--chart-row', {
|
|
74
|
+
'is--round': round
|
|
75
|
+
}],
|
|
76
|
+
style: {
|
|
77
|
+
height: "".concat(cellHeight, "px")
|
|
71
78
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
}
|
|
83
|
-
}, [h('div', {
|
|
84
|
-
class: 'vxe-gantt-view--chart-bar',
|
|
85
|
-
attrs: {
|
|
86
|
-
rowid: rowid
|
|
79
|
+
}, [h('div', {
|
|
80
|
+
class: 'vxe-gantt-view--chart-bar',
|
|
81
|
+
attrs: {
|
|
82
|
+
rowid: rowid
|
|
83
|
+
},
|
|
84
|
+
on: {
|
|
85
|
+
click: function click(evnt) {
|
|
86
|
+
$xeGantt.handleTaskBarClickEvent(evnt, {
|
|
87
|
+
row: row
|
|
88
|
+
});
|
|
87
89
|
},
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
});
|
|
93
|
-
},
|
|
94
|
-
dblclick: function dblclick(evnt) {
|
|
95
|
-
$xeGantt.handleTaskBarDblclickEvent(evnt, {
|
|
96
|
-
row: row
|
|
97
|
-
});
|
|
98
|
-
}
|
|
90
|
+
dblclick: function dblclick(evnt) {
|
|
91
|
+
$xeGantt.handleTaskBarDblclickEvent(evnt, {
|
|
92
|
+
row: row
|
|
93
|
+
});
|
|
99
94
|
}
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
|
|
95
|
+
}
|
|
96
|
+
}, [showProgress ? h('div', {
|
|
97
|
+
class: 'vxe-gantt-view--chart-progress',
|
|
98
|
+
style: {
|
|
99
|
+
width: "".concat(progressValue || 0, "%")
|
|
100
|
+
}
|
|
101
|
+
}) : renderEmptyElement($xeGantt), showContent ? h('div', {
|
|
102
|
+
class: 'vxe-gantt-view--chart-content'
|
|
103
|
+
}, title) : renderEmptyElement($xeGantt)])]);
|
|
104
|
+
},
|
|
105
|
+
renderRows: function renderRows(h, $xeTable, tableData) {
|
|
106
|
+
var _vm = this;
|
|
107
|
+
var $xeGanttView = _vm.$xeGanttView;
|
|
108
|
+
var reactData = $xeGanttView.reactData;
|
|
109
|
+
var tableProps = $xeTable;
|
|
110
|
+
var treeConfig = tableProps.treeConfig;
|
|
111
|
+
var tableReactData = $xeTable;
|
|
112
|
+
var treeExpandedFlag = tableReactData.treeExpandedFlag;
|
|
113
|
+
var tableInternalData = $xeTable;
|
|
114
|
+
var treeExpandedMaps = tableInternalData.treeExpandedMaps;
|
|
115
|
+
var treeOpts = $xeTable.computeTreeOpts;
|
|
116
|
+
var transform = treeOpts.transform;
|
|
117
|
+
var childrenField = treeOpts.children || treeOpts.childrenField;
|
|
118
|
+
var scrollYLoad = reactData.scrollYLoad;
|
|
119
|
+
var trVNs = [];
|
|
120
|
+
tableData.forEach(function (row, $rowIndex) {
|
|
121
|
+
var rowid = $xeTable ? $xeTable.getRowid(row) : '';
|
|
122
|
+
trVNs.push(_vm.renderTaskBar(h, $xeTable, row, rowid, $rowIndex));
|
|
123
|
+
var isExpandTree = false;
|
|
124
|
+
var rowChildren = [];
|
|
125
|
+
if (treeConfig && !scrollYLoad && !transform) {
|
|
126
|
+
rowChildren = row[childrenField];
|
|
127
|
+
isExpandTree = !!treeExpandedFlag && rowChildren && rowChildren.length > 0 && !!treeExpandedMaps[rowid];
|
|
128
|
+
}
|
|
129
|
+
// 如果是树形表格
|
|
130
|
+
if (isExpandTree) {
|
|
131
|
+
trVNs.push.apply(trVNs, _toConsumableArray(_vm.renderRows(h, $xeTable, rowChildren)));
|
|
132
|
+
}
|
|
108
133
|
});
|
|
134
|
+
return trVNs;
|
|
135
|
+
},
|
|
136
|
+
renderVN: function renderVN(h) {
|
|
137
|
+
var _vm = this;
|
|
138
|
+
var $xeGanttView = _vm.$xeGanttView;
|
|
139
|
+
var reactData = $xeGanttView.reactData;
|
|
140
|
+
var $xeTable = $xeGanttView.internalData.xeTable;
|
|
141
|
+
var tableData = reactData.tableData;
|
|
109
142
|
return h('div', {
|
|
110
143
|
ref: 'refElem',
|
|
111
144
|
class: 'vxe-gantt-view--chart-wrapper'
|
|
112
|
-
},
|
|
145
|
+
}, $xeTable ? _vm.renderRows(h, $xeTable, tableData) : []);
|
|
113
146
|
}
|
|
114
147
|
},
|
|
115
148
|
mounted: function mounted() {
|
|
@@ -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}}var renderEmptyElement=_core.VxeUI.renderEmptyElement,_default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttViewChart",inject:{$xeGantt:{default:null},$xeGanttView:{default:null}},props:{},data:function(){return{}},computed:Object.assign({},{}),methods:{
|
|
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 renderEmptyElement=_core.VxeUI.renderEmptyElement,_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(e,t,r,a,n){var o=this.$xeGantt,i=t.treeConfig,l=t.fullAllDataRowIdData,u=t.computeCellOpts,s=o.computeTitleField,c=o.computeProgressField,d=o.computeTaskBarOpts,p=d.showProgress,f=d.showContent,m=d.contentMethod,d=(d.barStyle||{}).round,l=l[a]||{},l=(0,_util.getCellRestHeight)(l,u,t.computeRowOpts,t.computeDefaultRowHeight),u=(0,_utils.getStringValue)(_xeUtils.default.get(r,s)),t=p?Math.min(100,Math.max(0,_xeUtils.default.toNumber(_xeUtils.default.get(r,c)))):0;return m&&(u=(0,_utils.getStringValue)(m({row:r,title:u}))),e("div",{key:i?a:n,attrs:{rowid:a},class:["vxe-gantt-view--chart-row",{"is--round":d}],style:{height:"".concat(l,"px")}},[e("div",{class:"vxe-gantt-view--chart-bar",attrs:{rowid:a},on:{click:function(e){o.handleTaskBarClickEvent(e,{row:r})},dblclick:function(e){o.handleTaskBarDblclickEvent(e,{row:r})}}},[p?e("div",{class:"vxe-gantt-view--chart-progress",style:{width:"".concat(t||0,"%")}}):renderEmptyElement(o),f?e("div",{class:"vxe-gantt-view--chart-content"},u):renderEmptyElement(o)])])},renderRows:function(n,o,e){var i=this,t=i.$xeGanttView.reactData,l=o.treeConfig,u=o.treeExpandedFlag,s=o.treeExpandedMaps,r=o.computeTreeOpts,c=r.transform,d=r.children||r.childrenField,p=t.scrollYLoad,f=[];return e.forEach(function(e,t){var r=o?o.getRowid(e):"",t=(f.push(i.renderTaskBar(n,o,e,r,t)),!1),a=[];!l||p||c||(a=e[d],t=!!u&&a&&0<a.length&&!!s[r]),t&&f.push.apply(f,_toConsumableArray(i.renderRows(n,o,a)))}),f},renderVN:function(e){var t=this.$xeGanttView,r=t.reactData,t=t.internalData.xeTable,r=r.tableData;return e("div",{ref:"refElem",class:"vxe-gantt-view--chart-wrapper"},t?this.renderRows(e,t,r):[])}},mounted:function(){this.$xeGanttView.internalData.elemStore["".concat("main-chart-","wrapper")]=this.$refs.refElem},destroyed:function(){this.$xeGanttView.internalData.elemStore["".concat("main-chart-","wrapper")]=null},render:function(e){return this.renderVN(e)}});
|
|
@@ -48,6 +48,8 @@ function handleParseColumn($xeGanttView) {
|
|
|
48
48
|
var $xeGantt = $xeGanttView.$xeGantt;
|
|
49
49
|
var reactData = $xeGanttView.reactData;
|
|
50
50
|
var internalData = $xeGanttView.internalData;
|
|
51
|
+
var ganttProps = $xeGantt;
|
|
52
|
+
var treeConfig = ganttProps.treeConfig;
|
|
51
53
|
var minViewDate = reactData.minViewDate,
|
|
52
54
|
maxViewDate = reactData.maxViewDate;
|
|
53
55
|
var taskViewOpts = $xeGantt.computeTaskViewOpts;
|
|
@@ -101,9 +103,13 @@ function handleParseColumn($xeGanttView) {
|
|
|
101
103
|
var startField = $xeGantt.computeStartField;
|
|
102
104
|
var endField = $xeGantt.computeEndField;
|
|
103
105
|
var tableInternalData = $xeTable;
|
|
104
|
-
var afterFullData = tableInternalData.afterFullData
|
|
106
|
+
var afterFullData = tableInternalData.afterFullData,
|
|
107
|
+
afterTreeFullData = tableInternalData.afterTreeFullData;
|
|
108
|
+
var treeOpts = $xeTable.computeTreeOpts;
|
|
109
|
+
var transform = treeOpts.transform;
|
|
110
|
+
var childrenField = treeOpts.children || treeOpts.childrenField;
|
|
105
111
|
var ctMaps = {};
|
|
106
|
-
|
|
112
|
+
var handleParseRender = function handleParseRender(row) {
|
|
107
113
|
var rowid = $xeTable.getRowid(row);
|
|
108
114
|
var startValue = _xeUtils.default.get(row, startField);
|
|
109
115
|
var endValue = _xeUtils.default.get(row, endField);
|
|
@@ -119,7 +125,14 @@ function handleParseColumn($xeGanttView) {
|
|
|
119
125
|
oWidthSize: oWidthSize
|
|
120
126
|
};
|
|
121
127
|
}
|
|
122
|
-
}
|
|
128
|
+
};
|
|
129
|
+
if (treeConfig) {
|
|
130
|
+
_xeUtils.default.eachTree(afterTreeFullData, handleParseRender, {
|
|
131
|
+
children: transform ? treeOpts.mapChildrenField : childrenField
|
|
132
|
+
});
|
|
133
|
+
} else {
|
|
134
|
+
afterFullData.forEach(handleParseRender);
|
|
135
|
+
}
|
|
123
136
|
internalData.chartMaps = ctMaps;
|
|
124
137
|
}
|
|
125
138
|
}
|
|
@@ -133,6 +146,8 @@ function handleUpdateData($xeGanttView) {
|
|
|
133
146
|
var $xeGantt = $xeGanttView.$xeGantt;
|
|
134
147
|
var reactData = $xeGanttView.reactData;
|
|
135
148
|
var internalData = $xeGanttView.internalData;
|
|
149
|
+
var ganttProps = $xeGantt;
|
|
150
|
+
var treeConfig = ganttProps.treeConfig;
|
|
136
151
|
var $xeTable = internalData.xeTable;
|
|
137
152
|
var sdMaps = {};
|
|
138
153
|
var edMaps = {};
|
|
@@ -142,8 +157,12 @@ function handleUpdateData($xeGanttView) {
|
|
|
142
157
|
var startField = $xeGantt.computeStartField;
|
|
143
158
|
var endField = $xeGantt.computeEndField;
|
|
144
159
|
var tableInternalData = $xeTable;
|
|
145
|
-
var afterFullData = tableInternalData.afterFullData
|
|
146
|
-
|
|
160
|
+
var afterFullData = tableInternalData.afterFullData,
|
|
161
|
+
afterTreeFullData = tableInternalData.afterTreeFullData;
|
|
162
|
+
var treeOpts = $xeTable.computeTreeOpts;
|
|
163
|
+
var transform = treeOpts.transform;
|
|
164
|
+
var childrenField = treeOpts.children || treeOpts.childrenField;
|
|
165
|
+
var handleMinMaxData = function handleMinMaxData(row) {
|
|
147
166
|
var startValue = _xeUtils.default.get(row, startField);
|
|
148
167
|
var endValue = _xeUtils.default.get(row, endField);
|
|
149
168
|
if (startValue && endValue) {
|
|
@@ -156,7 +175,14 @@ function handleUpdateData($xeGanttView) {
|
|
|
156
175
|
maxDate = endDate;
|
|
157
176
|
}
|
|
158
177
|
}
|
|
159
|
-
}
|
|
178
|
+
};
|
|
179
|
+
if (treeConfig) {
|
|
180
|
+
_xeUtils.default.eachTree(afterTreeFullData, handleMinMaxData, {
|
|
181
|
+
children: transform ? treeOpts.mapChildrenField : childrenField
|
|
182
|
+
});
|
|
183
|
+
} else {
|
|
184
|
+
afterFullData.forEach(handleMinMaxData);
|
|
185
|
+
}
|
|
160
186
|
}
|
|
161
187
|
reactData.minViewDate = minDate;
|
|
162
188
|
reactData.maxViewDate = maxDate;
|
|
@@ -315,6 +341,7 @@ function updateStyle($xeGanttView) {
|
|
|
315
341
|
function _handleLazyRecalculate($xeGanttView) {
|
|
316
342
|
calcScrollbar($xeGanttView);
|
|
317
343
|
updateStyle($xeGanttView);
|
|
344
|
+
updateChart($xeGanttView);
|
|
318
345
|
return $xeGanttView.$nextTick();
|
|
319
346
|
}
|
|
320
347
|
function _updateScrollXSpace($xeGanttView) {
|
|
@@ -560,6 +587,45 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
560
587
|
var $xeGanttView = this;
|
|
561
588
|
return _handleLazyRecalculate($xeGanttView);
|
|
562
589
|
},
|
|
590
|
+
handleUpdateCurrentRow: function handleUpdateCurrentRow(row) {
|
|
591
|
+
var $xeGanttView = this;
|
|
592
|
+
var internalData = $xeGanttView.internalData;
|
|
593
|
+
var $xeTable = internalData.xeTable;
|
|
594
|
+
var el = $xeGanttView.$refs.refElem;
|
|
595
|
+
if ($xeTable && el) {
|
|
596
|
+
if (row) {
|
|
597
|
+
var tableProps = $xeTable;
|
|
598
|
+
var highlightCurrentRow = tableProps.highlightCurrentRow;
|
|
599
|
+
var rowOpts = $xeTable.computeRowOpts;
|
|
600
|
+
if (rowOpts.isCurrent || highlightCurrentRow) {
|
|
601
|
+
_xeUtils.default.arrayEach(el.querySelectorAll("[rowid=\"".concat($xeTable.getRowid(row), "\"]")), function (elem) {
|
|
602
|
+
return (0, _dom.addClass)(elem, 'row--current');
|
|
603
|
+
});
|
|
604
|
+
}
|
|
605
|
+
} else {
|
|
606
|
+
_xeUtils.default.arrayEach(el.querySelectorAll('.row--current'), function (elem) {
|
|
607
|
+
return (0, _dom.removeClass)(elem, 'row--current');
|
|
608
|
+
});
|
|
609
|
+
}
|
|
610
|
+
}
|
|
611
|
+
},
|
|
612
|
+
handleUpdateHoverRow: function handleUpdateHoverRow(row) {
|
|
613
|
+
var $xeGanttView = this;
|
|
614
|
+
var internalData = $xeGanttView.internalData;
|
|
615
|
+
var $xeTable = internalData.xeTable;
|
|
616
|
+
var el = $xeGanttView.$refs.refElem;
|
|
617
|
+
if ($xeTable && el) {
|
|
618
|
+
if (row) {
|
|
619
|
+
_xeUtils.default.arrayEach(el.querySelectorAll(".vxe-body--row[rowid=\"".concat($xeTable.getRowid(row), "\"]")), function (elem) {
|
|
620
|
+
return (0, _dom.addClass)(elem, 'row--hover');
|
|
621
|
+
});
|
|
622
|
+
} else {
|
|
623
|
+
_xeUtils.default.arrayEach(el.querySelectorAll('.vxe-body--row.row--hover'), function (elem) {
|
|
624
|
+
return (0, _dom.removeClass)(elem, 'row--hover');
|
|
625
|
+
});
|
|
626
|
+
}
|
|
627
|
+
}
|
|
628
|
+
},
|
|
563
629
|
triggerHeaderScrollEvent: function triggerHeaderScrollEvent(evnt) {
|
|
564
630
|
var $xeGanttView = this;
|
|
565
631
|
var internalData = $xeGanttView.internalData;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _comp=require("../../ui/src/comp"),_core=require("@vxe-ui/core"),_dom=require("../../ui/src/dom"),_util=require("./util"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ganttHeader=_interopRequireDefault(require("./gantt-header")),_ganttBody=_interopRequireDefault(require("./gantt-body"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var globalEvents=_core.VxeUI.globalEvents;function createInternalData(){return{xeTable:null,startMaps:{},endMaps:{},chartMaps:{},elemStore:{},scrollXStore:{preloadSize:0,offsetSize:0,visibleSize:0,visibleStartIndex:0,visibleEndIndex:0,startIndex:0,endIndex:0},scrollYStore:{preloadSize:0,offsetSize:0,visibleSize:0,visibleStartIndex:0,visibleEndIndex:0,startIndex:0,endIndex:0}}}var maxYHeight=5e6,maxXWidth=5e6;function handleParseColumn(e){var t=e.$xeGantt,l=e.reactData,r=e.internalData,o=l.minViewDate,a=l.maxViewDate,i=[],n=[];switch(t.computeTaskViewOpts.mode){case"year":case"quarter":case"month":case"week":break;default:if(o&&a){for(var c=o.getTime(),s=a.getTime()-o.getTime(),d=Math.max(6,Math.floor(s/864e5)+1),u=[],f=[],h={},m=0;m<d;m++){var p=new Date(c+864e5*m),S="".concat(p.getFullYear(),"-").concat(p.getMonth()+1),p="".concat(p.getDate()),g=h[S],p={field:"".concat(S,"-").concat(p),title:p};g?(g.children.push(p),i.push(g)):(u.push(g={field:S,title:S,children:[p]}),i.push(g),h[S]=g),f.push(p)}n.push(u,f);var v,x,y,b=r.xeTable;b&&(v=t.computeStartField,x=t.computeEndField,s=b.afterFullData,y={},s.forEach(function(e){var t,l=b.getRowid(e),r=_xeUtils.default.get(e,v),a=_xeUtils.default.get(e,x);r&&a&&(r=_xeUtils.default.toStringDate(r),a=_xeUtils.default.toStringDate(a),t=Math.floor((r.getTime()-o.getTime())/864e5),a=Math.floor((a.getTime()-r.getTime())/864e5)+1,y[l]={row:e,rowid:l,oLeftSize:t,oWidthSize:a})}),r.chartMaps=y)}}l.tableColumn=i,l.headerGroups=n}function handleUpdateData(e){var l,r,t=e.$xeGantt,a=e.reactData,o=e.internalData,i=o.xeTable,n=null,c=null;i&&(l=t.computeStartField,r=t.computeEndField,i.afterFullData.forEach(function(e){var t=_xeUtils.default.get(e,l),e=_xeUtils.default.get(e,r);t&&e&&(t=_xeUtils.default.toStringDate(t),(!n||n.getTime()>t.getTime())&&(n=t),t=_xeUtils.default.toStringDate(e),!c||c.getTime()<t.getTime())&&(c=t)})),a.minViewDate=n,a.maxViewDate=c,o.startMaps={},o.endMaps={},handleParseColumn(e)}function calcScrollbar(e){var t=e.$xeGantt,l=e.reactData,r=l.scrollXWidth,a=l.scrollYHeight,o=e.internalData.elemStore,t=t.computeScrollbarOpts,o=(0,_util.getRefElem)(o["main-body-wrapper"]),i=e.$refs.refScrollXHandleElem,e=e.$refs.refScrollYHandleElem;o&&(a=a>o.clientHeight,e&&(l.scrollbarWidth=t.width||e.offsetWidth-e.clientWidth||14),l.overflowY=a,e=r>o.clientWidth,i&&(l.scrollbarHeight=t.height||i.offsetHeight-i.clientHeight||14),l.overflowX=e)}function updateChart(e){var t=e.reactData,l=e.internalData,r=t.viewCellWidth,t=l.elemStore,a=l.chartMaps,l=(0,_util.getRefElem)(t["main-chart-wrapper"]);return l&&_xeUtils.default.arrayEach(l.children,function(e){var t=e.children[0];t&&(e=(e=e.getAttribute("rowid"))?a[e]:null)&&(t.style.left="".concat(r*e.oLeftSize,"px"),t.style.width="".concat(r*e.oWidthSize,"px"))}),e.$nextTick()}function updateStyle(e){var t,l,r,a,o,i,n,c=e.$xeGantt,s=e.reactData,d=e.internalData,u=s.scrollbarWidth,f=s.tableColumn,h=d.elemStore,d=d.xeTable,m=e.$refs.refElem;if(m&&m.clientHeight)return c=c.computeScrollbarXToTop,n=e.$refs.refScrollXLeftCornerElem,a=e.$refs.refScrollXRightCornerElem,i=e.$refs.refScrollXVirtualElem,u=u,o=s.scrollbarHeight,r=l=t=0,d&&(t=d.tBodyHeight,l=d.tHeaderHeight,r=d.tFooterHeight),(d=(0,_util.getRefElem)(h["main-header-scroll"]))&&(d.style.height="".concat(l,"px")),(d=(0,_util.getRefElem)(h["main-body-scroll"]))&&(d.style.height="".concat(t,"px")),i&&(i.style.height="".concat(o,"px"),i.style.visibility="visible"),(i=e.$refs.refScrollXWrapperElem)&&(i.style.left=c?"".concat(u,"px"):"",i.style.width="".concat(m.clientWidth-u,"px")),n&&(n.style.width=c?"".concat(u,"px"):"",n.style.display=c&&o?"block":""),a&&(a.style.width=c?"":"".concat(u,"px"),a.style.display=!c&&o?"block":""),(i=e.$refs.refScrollYVirtualElem)&&(i.style.width="".concat(u,"px"),i.style.height="".concat(t+l+r,"px"),i.style.visibility="visible"),(m=e.$refs.refScrollYTopCornerElem)&&(m.style.height="".concat(l,"px"),m.style.display=l?"block":""),(n=e.$refs.refScrollYWrapperElem)&&(n.style.height="".concat(t,"px"),n.style.top="".concat(l,"px")),(a=e.$refs.refScrollYBottomCornerElem)&&(a.style.height="".concat(r,"px"),a.style.top="".concat(l+t,"px"),a.style.display=r?"block":""),(c=e.$refs.refColInfoElem)&&(s.viewCellWidth=c.clientWidth||40),o=s.viewCellWidth*f.length,d&&0<(i=(u=d.clientWidth)-o)&&(s.viewCellWidth+=Math.floor(i/f.length),o=u),m=(0,_util.getRefElem)(h["main-header-table"]),n=(0,_util.getRefElem)(h["main-body-table"]),m&&(m.style.width="".concat(o,"px")),n&&(n.style.width="".concat(o,"px")),s.scrollXWidth=o,updateChart(e)}function _handleLazyRecalculate(e){return calcScrollbar(e),updateStyle(e),e.$nextTick()}function _updateScrollXSpace(e){var t=e.reactData,l=t.scrollXLoad,r=t.scrollXWidth,a=e.internalData.elemStore,o=(0,_util.getRefElem)(a["main-body-scroll"]),i=(0,_util.getRefElem)(a["main-body-table"]),n=0,c=0,s=(o&&(c=o.clientWidth),!1),d=r,o=(maxXWidth<r&&(n=o&&i&&o.scrollLeft+c>=maxXWidth?maxXWidth-i.clientWidth:n/(r-c)*(maxXWidth-c),d=maxXWidth,s=!0),i&&(i.style.transform="translate(".concat(n,"px, ").concat(t.scrollYTop||0,"px)")),["header","body","footer"].forEach(function(e){e=(0,_util.getRefElem)(a["main-".concat(e,"-xSpace")]);e&&(e.style.width=l?"".concat(d,"px"):"")}),t.scrollXLeft=n,t.scrollXWidth=d,t.isScrollXBig=s,e.$refs.refScrollXSpaceElem);return o&&(o.style.width="".concat(d,"px")),calcScrollbar(e),e.$nextTick().then(function(){updateStyle(e)})}function _updateScrollYSpace(e){var t=e.reactData,l=e.internalData,r=t.scrollYLoad,a=t.overflowY,o=l.elemStore,l=l.xeTable,i=(0,_util.getRefElem)(o["main-body-scroll"]),n=(0,_util.getRefElem)(o["main-body-table"]),c=0,s=0,d=!1,u=(l&&(c=l.scrollYTop,s=l.scrollYHeight,d=l.isScrollYBig),s),l=c,f=0,i=(i&&(f=i.clientHeight),d&&(l=i&&n&&i.scrollTop+f>=maxYHeight?maxYHeight-n.clientHeight:c/(s-f)*(maxYHeight-f),u=maxYHeight),r&&a||(l=0),n&&(n.style.transform="translate(".concat(t.scrollXLeft||0,"px, ").concat(l,"px)")),["header","body","footer"].forEach(function(e){e=(0,_util.getRefElem)(o["main-".concat(e,"-ySpace")]);e&&(e.style.height=u?"".concat(u,"px"):"")}),e.$refs.refScrollYSpaceElem);return i&&(i.style.height=u?"".concat(u,"px"):""),t.scrollYTop=l,t.scrollYHeight=s,t.isScrollYBig=d,calcScrollbar(e),e.$nextTick().then(function(){updateStyle(e)})}function checkLastSyncScroll(e,t,l){var r=e.reactData,a=e.internalData,e=a.lcsTimeout;r.lazScrollLoading=!0,e&&clearTimeout(e),a.lcsTimeout=setTimeout(function(){a.lcsRunTime=Date.now(),a.lcsTimeout=void 0,a.intoRunScroll=!1,a.inVirtualScroll=!1,a.inWheelScroll=!1,a.inHeaderScroll=!1,a.inBodyScroll=!1,a.inFooterScroll=!1,r.lazScrollLoading=!1},200)}function handleScrollEvent(e,t,l,r,a,o){checkLastSyncScroll(e,r,l)}function syncTableScrollTop(e,t){var e=e.internalData.xeTable;e&&(e=e.elemStore,e=(0,_util.getRefElem)(e["main-body-scroll"]))&&(e.scrollTop=t)}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttView",inject:{$xeGantt:{default:null}},provide:function(){return{$xeGanttView:this}},props:{},data:function(){return{xID:_xeUtils.default.uniqueId(),reactData:{scrollXLoad:!1,scrollYLoad:!1,overflowY:!1,overflowX:!1,scrollbarWidth:0,scrollbarHeight:0,lazScrollLoading:!1,scrollVMLoading:!1,scrollYHeight:0,scrollYTop:0,isScrollYBig:!1,scrollXLeft:0,scrollXWidth:0,isScrollXBig:!1,minViewDate:null,maxViewDate:null,tableData:[],tableColumn:[],headerGroups:[],viewCellWidth:40,rowHeightStore:{large:52,default:48,medium:44,small:40,mini:36}},internalData:createInternalData()}},computed:Object.assign({},{}),methods:{refreshData:function(){return handleUpdateData(this),_handleLazyRecalculate(this)},updateViewData:function(){var e=this.reactData,t=this.internalData.xeTable;return t&&(t=t.tableData,e.tableData=t),this.$nextTick()},connectUpdate:function(e){var e=e.$table,t=this.internalData;return e&&(t.xeTable=e),this.$nextTick()},handleUpdateStyle:function(){return updateStyle(this)},handleLazyRecalculate:function(){return _handleLazyRecalculate(this)},triggerHeaderScrollEvent:function(e){var t,l,r,a=this.internalData,o=a.elemStore;a.inVirtualScroll||a.inBodyScroll||a.inFooterScroll||(t=e.currentTarget,o=(0,_util.getRefElem)(o["main-body-scroll"]),l=this.$refs.refScrollXHandleElem,o&&t&&(r=t.scrollLeft,a.inHeaderScroll=!0,(0,_dom.setScrollLeft)(l,r),(0,_dom.setScrollLeft)(o,r),handleScrollEvent(this,e,!1,!0,t.scrollTop,r)))},triggerBodyScrollEvent:function(e){var t,l,r,a,o,i=this,n=i.internalData,c=n.elemStore;n.inVirtualScroll||n.inHeaderScroll||n.inFooterScroll||(t=e.currentTarget,c=(0,_util.getRefElem)(c["main-header-scroll"]),l=i.$refs.refScrollXHandleElem,r=i.$refs.refScrollYHandleElem,c&&t&&(a=t.scrollLeft,o=t.scrollTop,n.inBodyScroll=!0,(0,_dom.setScrollLeft)(l,a),(0,_dom.setScrollLeft)(c,a),(0,_dom.setScrollTop)(r,o),syncTableScrollTop(i,o),handleScrollEvent(i,e,!0,!0,t.scrollTop,a)))},triggerFooterScrollEvent:function(e){var t,l=this.internalData;l.inVirtualScroll||l.inHeaderScroll||l.inBodyScroll||(l=e.currentTarget)&&(t=l.scrollLeft,handleScrollEvent(this,e,!1,!0,l.scrollTop,t))},triggerVirtualScrollXEvent:function(e){var t,l,r,a=this.internalData,o=a.elemStore;a.inHeaderScroll||a.inBodyScroll||(t=e.currentTarget,l=(0,_util.getRefElem)(o["main-header-scroll"]),o=(0,_util.getRefElem)(o["main-body-scroll"]),t&&(r=t.scrollLeft,a.inVirtualScroll=!0,(0,_dom.setScrollLeft)(l,r),(0,_dom.setScrollLeft)(o,r),handleScrollEvent(this,e,!1,!0,t.scrollTop,r)))},triggerVirtualScrollYEvent:function(e){var t,l,r=this.internalData,a=r.elemStore;r.inHeaderScroll||r.inBodyScroll||(t=e.currentTarget,a=(0,_util.getRefElem)(a["main-body-scroll"]),t&&(l=t.scrollTop,r.inVirtualScroll=!0,(0,_dom.setScrollTop)(a,l),syncTableScrollTop(this,l),handleScrollEvent(this,e,!0,!1,l,t.scrollLeft)))},updateScrollXSpace:function(){return _updateScrollXSpace(this)},updateScrollYSpace:function(){return _updateScrollYSpace(this)},handleGlobalResizeEvent:function(){_handleLazyRecalculate(this)},renderScrollX:function(e){return e("div",{key:"vsx",ref:"refScrollXVirtualElem",class:"vxe-gantt-view--scroll-x-virtual"},[e("div",{ref:"refScrollXLeftCornerElem",class:"vxe-gantt-view--scroll-x-left-corner"}),e("div",{ref:"refScrollXWrapperElem",class:"vxe-gantt-view--scroll-x-wrapper"},[e("div",{ref:"refScrollXHandleElem",class:"vxe-gantt-view--scroll-x-handle",on:{scroll:this.triggerVirtualScrollXEvent}},[e("div",{ref:"refScrollXSpaceElem",class:"vxe-gantt-view--scroll-x-space"})])]),e("div",{ref:"refScrollXRightCornerElem",class:"vxe-gantt-view--scroll-x-right-corner"})])},renderScrollY:function(e){return e("div",{ref:"refScrollYVirtualElem",class:"vxe-gantt-view--scroll-y-virtual"},[e("div",{ref:"refScrollYTopCornerElem",class:"vxe-gantt-view--scroll-y-top-corner"}),e("div",{ref:"refScrollYWrapperElem",class:"vxe-gantt-view--scroll-y-wrapper"},[e("div",{ref:"refScrollYHandleElem",class:"vxe-gantt-view--scroll-y-handle",on:{scroll:this.triggerVirtualScrollYEvent}},[e("div",{ref:"refScrollYSpaceElem",class:"vxe-gantt-view--scroll-y-space"})])]),e("div",{ref:"refScrollYBottomCornerElem",class:"vxe-gantt-view--scroll-y-bottom-corner"})])},renderViewport:function(e){return e("div",{class:"vxe-gantt-view--viewport-wrapper"},[e(_ganttHeader.default),e(_ganttBody.default)])},renderBody:function(e){var t=this;return e("div",{class:"vxe-gantt-view--layout-wrapper"},t.$xeGantt.computeScrollbarYToLeft?[t.renderScrollY(e),t.renderViewport(e)]:[t.renderViewport(e),t.renderScrollY(e)])},renderVN:function(e){var t=this,l=t.$xeGantt,r=t.reactData,a=r.overflowX,o=r.overflowY,i=r.scrollXLoad,r=r.scrollYLoad,n=l.computeTaskViewOpts,l=l.computeScrollbarXToTop;return e("div",{ref:"refElem",class:["vxe-gantt-view","mode--".concat(n.mode||"day"),{"is--scroll-y":o,"is--scroll-x":a,"is--virtual-x":i,"is--virtual-y":r}]},[e("div",{class:"vxe-gantt-view--render-wrapper"},l?[t.renderScrollX(e),t.renderBody(e)]:[t.renderBody(e),t.renderScrollX(e)]),e("div",{class:"vxe-gantt-view--render-vars"},[e("div",{ref:"refColInfoElem",class:"vxe-gantt-view--column-info"})])])}},watch:{"reactData.tableData":function(){handleUpdateData(this)}},mounted:function(){globalEvents.on(this,"resize",this.handleGlobalResizeEvent)},beforeDestroy:function(){var e=this.internalData;globalEvents.off(this,"keydown"),_xeUtils.default.assign(e,createInternalData())},render:function(e){return this.renderVN(e)}});
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _comp=require("../../ui/src/comp"),_core=require("@vxe-ui/core"),_dom=require("../../ui/src/dom"),_util=require("./util"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ganttHeader=_interopRequireDefault(require("./gantt-header")),_ganttBody=_interopRequireDefault(require("./gantt-body"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var globalEvents=_core.VxeUI.globalEvents;function createInternalData(){return{xeTable:null,startMaps:{},endMaps:{},chartMaps:{},elemStore:{},scrollXStore:{preloadSize:0,offsetSize:0,visibleSize:0,visibleStartIndex:0,visibleEndIndex:0,startIndex:0,endIndex:0},scrollYStore:{preloadSize:0,offsetSize:0,visibleSize:0,visibleStartIndex:0,visibleEndIndex:0,startIndex:0,endIndex:0}}}var maxYHeight=5e6,maxXWidth=5e6;function handleParseColumn(e){var t=e.$xeGantt,l=e.reactData,r=e.internalData,a=t.treeConfig,o=l.minViewDate,i=l.maxViewDate,n=[],c=[];switch(t.computeTaskViewOpts.mode){case"year":case"quarter":case"month":case"week":break;default:if(o&&i){for(var s=o.getTime(),d=i.getTime()-o.getTime(),u=Math.max(6,Math.floor(d/864e5)+1),f=[],h=[],m={},p=0;p<u;p++){var S=new Date(s+864e5*p),v="".concat(S.getFullYear(),"-").concat(S.getMonth()+1),S="".concat(S.getDate()),g=m[v],S={field:"".concat(v,"-").concat(S),title:S};g?(g.children.push(S),n.push(g)):(f.push(g={field:v,title:v,children:[S]}),n.push(g),m[v]=g),h.push(S)}c.push(f,h);var x,y,w,E,b,_,T,D=r.xeTable;D&&(x=t.computeStartField,y=t.computeEndField,d=D.afterFullData,E=(w=D.computeTreeOpts).transform,b=w.children||w.childrenField,_={},T=function(e){var t,l=D.getRowid(e),r=_xeUtils.default.get(e,x),a=_xeUtils.default.get(e,y);r&&a&&(r=_xeUtils.default.toStringDate(r),a=_xeUtils.default.toStringDate(a),t=Math.floor((r.getTime()-o.getTime())/864e5),a=Math.floor((a.getTime()-r.getTime())/864e5)+1,_[l]={row:e,rowid:l,oLeftSize:t,oWidthSize:a})},a?_xeUtils.default.eachTree(D.afterTreeFullData,T,{children:E?w.mapChildrenField:b}):d.forEach(T),r.chartMaps=_)}}l.tableColumn=n,l.headerGroups=c}function handleUpdateData(e){var l,r,t,a,o,i,n=e.$xeGantt,c=e.reactData,s=e.internalData,d=n.treeConfig,u=s.xeTable,f=null,h=null;u&&(l=n.computeStartField,r=n.computeEndField,n=u.afterFullData,a=(t=u.computeTreeOpts).transform,o=t.children||t.childrenField,i=function(e){var t=_xeUtils.default.get(e,l),e=_xeUtils.default.get(e,r);t&&e&&(t=_xeUtils.default.toStringDate(t),(!f||f.getTime()>t.getTime())&&(f=t),t=_xeUtils.default.toStringDate(e),!h||h.getTime()<t.getTime())&&(h=t)},d?_xeUtils.default.eachTree(u.afterTreeFullData,i,{children:a?t.mapChildrenField:o}):n.forEach(i)),c.minViewDate=f,c.maxViewDate=h,s.startMaps={},s.endMaps={},handleParseColumn(e)}function calcScrollbar(e){var t=e.$xeGantt,l=e.reactData,r=l.scrollXWidth,a=l.scrollYHeight,o=e.internalData.elemStore,t=t.computeScrollbarOpts,o=(0,_util.getRefElem)(o["main-body-wrapper"]),i=e.$refs.refScrollXHandleElem,e=e.$refs.refScrollYHandleElem;o&&(a=a>o.clientHeight,e&&(l.scrollbarWidth=t.width||e.offsetWidth-e.clientWidth||14),l.overflowY=a,e=r>o.clientWidth,i&&(l.scrollbarHeight=t.height||i.offsetHeight-i.clientHeight||14),l.overflowX=e)}function updateChart(e){var t=e.reactData,l=e.internalData,r=t.viewCellWidth,t=l.elemStore,a=l.chartMaps,l=(0,_util.getRefElem)(t["main-chart-wrapper"]);return l&&_xeUtils.default.arrayEach(l.children,function(e){var t=e.children[0];t&&(e=(e=e.getAttribute("rowid"))?a[e]:null)&&(t.style.left="".concat(r*e.oLeftSize,"px"),t.style.width="".concat(r*e.oWidthSize,"px"))}),e.$nextTick()}function updateStyle(e){var t,l,r,a,o,i,n,c=e.$xeGantt,s=e.reactData,d=e.internalData,u=s.scrollbarWidth,f=s.tableColumn,h=d.elemStore,d=d.xeTable,m=e.$refs.refElem;if(m&&m.clientHeight)return c=c.computeScrollbarXToTop,n=e.$refs.refScrollXLeftCornerElem,a=e.$refs.refScrollXRightCornerElem,i=e.$refs.refScrollXVirtualElem,u=u,o=s.scrollbarHeight,r=l=t=0,d&&(t=d.tBodyHeight,l=d.tHeaderHeight,r=d.tFooterHeight),(d=(0,_util.getRefElem)(h["main-header-scroll"]))&&(d.style.height="".concat(l,"px")),(d=(0,_util.getRefElem)(h["main-body-scroll"]))&&(d.style.height="".concat(t,"px")),i&&(i.style.height="".concat(o,"px"),i.style.visibility="visible"),(i=e.$refs.refScrollXWrapperElem)&&(i.style.left=c?"".concat(u,"px"):"",i.style.width="".concat(m.clientWidth-u,"px")),n&&(n.style.width=c?"".concat(u,"px"):"",n.style.display=c&&o?"block":""),a&&(a.style.width=c?"":"".concat(u,"px"),a.style.display=!c&&o?"block":""),(i=e.$refs.refScrollYVirtualElem)&&(i.style.width="".concat(u,"px"),i.style.height="".concat(t+l+r,"px"),i.style.visibility="visible"),(m=e.$refs.refScrollYTopCornerElem)&&(m.style.height="".concat(l,"px"),m.style.display=l?"block":""),(n=e.$refs.refScrollYWrapperElem)&&(n.style.height="".concat(t,"px"),n.style.top="".concat(l,"px")),(a=e.$refs.refScrollYBottomCornerElem)&&(a.style.height="".concat(r,"px"),a.style.top="".concat(l+t,"px"),a.style.display=r?"block":""),(c=e.$refs.refColInfoElem)&&(s.viewCellWidth=c.clientWidth||40),o=s.viewCellWidth*f.length,d&&0<(i=(u=d.clientWidth)-o)&&(s.viewCellWidth+=Math.floor(i/f.length),o=u),m=(0,_util.getRefElem)(h["main-header-table"]),n=(0,_util.getRefElem)(h["main-body-table"]),m&&(m.style.width="".concat(o,"px")),n&&(n.style.width="".concat(o,"px")),s.scrollXWidth=o,updateChart(e)}function _handleLazyRecalculate(e){return calcScrollbar(e),updateStyle(e),updateChart(e),e.$nextTick()}function _updateScrollXSpace(e){var t=e.reactData,l=t.scrollXLoad,r=t.scrollXWidth,a=e.internalData.elemStore,o=(0,_util.getRefElem)(a["main-body-scroll"]),i=(0,_util.getRefElem)(a["main-body-table"]),n=0,c=0,s=(o&&(c=o.clientWidth),!1),d=r,o=(maxXWidth<r&&(n=o&&i&&o.scrollLeft+c>=maxXWidth?maxXWidth-i.clientWidth:n/(r-c)*(maxXWidth-c),d=maxXWidth,s=!0),i&&(i.style.transform="translate(".concat(n,"px, ").concat(t.scrollYTop||0,"px)")),["header","body","footer"].forEach(function(e){e=(0,_util.getRefElem)(a["main-".concat(e,"-xSpace")]);e&&(e.style.width=l?"".concat(d,"px"):"")}),t.scrollXLeft=n,t.scrollXWidth=d,t.isScrollXBig=s,e.$refs.refScrollXSpaceElem);return o&&(o.style.width="".concat(d,"px")),calcScrollbar(e),e.$nextTick().then(function(){updateStyle(e)})}function _updateScrollYSpace(e){var t=e.reactData,l=e.internalData,r=t.scrollYLoad,a=t.overflowY,o=l.elemStore,l=l.xeTable,i=(0,_util.getRefElem)(o["main-body-scroll"]),n=(0,_util.getRefElem)(o["main-body-table"]),c=0,s=0,d=!1,u=(l&&(c=l.scrollYTop,s=l.scrollYHeight,d=l.isScrollYBig),s),l=c,f=0,i=(i&&(f=i.clientHeight),d&&(l=i&&n&&i.scrollTop+f>=maxYHeight?maxYHeight-n.clientHeight:c/(s-f)*(maxYHeight-f),u=maxYHeight),r&&a||(l=0),n&&(n.style.transform="translate(".concat(t.scrollXLeft||0,"px, ").concat(l,"px)")),["header","body","footer"].forEach(function(e){e=(0,_util.getRefElem)(o["main-".concat(e,"-ySpace")]);e&&(e.style.height=u?"".concat(u,"px"):"")}),e.$refs.refScrollYSpaceElem);return i&&(i.style.height=u?"".concat(u,"px"):""),t.scrollYTop=l,t.scrollYHeight=s,t.isScrollYBig=d,calcScrollbar(e),e.$nextTick().then(function(){updateStyle(e)})}function checkLastSyncScroll(e,t,l){var r=e.reactData,a=e.internalData,e=a.lcsTimeout;r.lazScrollLoading=!0,e&&clearTimeout(e),a.lcsTimeout=setTimeout(function(){a.lcsRunTime=Date.now(),a.lcsTimeout=void 0,a.intoRunScroll=!1,a.inVirtualScroll=!1,a.inWheelScroll=!1,a.inHeaderScroll=!1,a.inBodyScroll=!1,a.inFooterScroll=!1,r.lazScrollLoading=!1},200)}function handleScrollEvent(e,t,l,r,a,o){checkLastSyncScroll(e,r,l)}function syncTableScrollTop(e,t){var e=e.internalData.xeTable;e&&(e=e.elemStore,e=(0,_util.getRefElem)(e["main-body-scroll"]))&&(e.scrollTop=t)}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttView",inject:{$xeGantt:{default:null}},provide:function(){return{$xeGanttView:this}},props:{},data:function(){return{xID:_xeUtils.default.uniqueId(),reactData:{scrollXLoad:!1,scrollYLoad:!1,overflowY:!1,overflowX:!1,scrollbarWidth:0,scrollbarHeight:0,lazScrollLoading:!1,scrollVMLoading:!1,scrollYHeight:0,scrollYTop:0,isScrollYBig:!1,scrollXLeft:0,scrollXWidth:0,isScrollXBig:!1,minViewDate:null,maxViewDate:null,tableData:[],tableColumn:[],headerGroups:[],viewCellWidth:40,rowHeightStore:{large:52,default:48,medium:44,small:40,mini:36}},internalData:createInternalData()}},computed:Object.assign({},{}),methods:{refreshData:function(){return handleUpdateData(this),_handleLazyRecalculate(this)},updateViewData:function(){var e=this.reactData,t=this.internalData.xeTable;return t&&(t=t.tableData,e.tableData=t),this.$nextTick()},connectUpdate:function(e){var e=e.$table,t=this.internalData;return e&&(t.xeTable=e),this.$nextTick()},handleUpdateStyle:function(){return updateStyle(this)},handleLazyRecalculate:function(){return _handleLazyRecalculate(this)},handleUpdateCurrentRow:function(e){var t,l=this.internalData.xeTable,r=this.$refs.refElem;l&&r&&(e?(t=l.highlightCurrentRow,(l.computeRowOpts.isCurrent||t)&&_xeUtils.default.arrayEach(r.querySelectorAll('[rowid="'.concat(l.getRowid(e),'"]')),function(e){return(0,_dom.addClass)(e,"row--current")})):_xeUtils.default.arrayEach(r.querySelectorAll(".row--current"),function(e){return(0,_dom.removeClass)(e,"row--current")}))},handleUpdateHoverRow:function(e){var t=this.internalData.xeTable,l=this.$refs.refElem;t&&l&&(e?_xeUtils.default.arrayEach(l.querySelectorAll('.vxe-body--row[rowid="'.concat(t.getRowid(e),'"]')),function(e){return(0,_dom.addClass)(e,"row--hover")}):_xeUtils.default.arrayEach(l.querySelectorAll(".vxe-body--row.row--hover"),function(e){return(0,_dom.removeClass)(e,"row--hover")}))},triggerHeaderScrollEvent:function(e){var t,l,r,a=this.internalData,o=a.elemStore;a.inVirtualScroll||a.inBodyScroll||a.inFooterScroll||(t=e.currentTarget,o=(0,_util.getRefElem)(o["main-body-scroll"]),l=this.$refs.refScrollXHandleElem,o&&t&&(r=t.scrollLeft,a.inHeaderScroll=!0,(0,_dom.setScrollLeft)(l,r),(0,_dom.setScrollLeft)(o,r),handleScrollEvent(this,e,!1,!0,t.scrollTop,r)))},triggerBodyScrollEvent:function(e){var t,l,r,a,o,i=this,n=i.internalData,c=n.elemStore;n.inVirtualScroll||n.inHeaderScroll||n.inFooterScroll||(t=e.currentTarget,c=(0,_util.getRefElem)(c["main-header-scroll"]),l=i.$refs.refScrollXHandleElem,r=i.$refs.refScrollYHandleElem,c&&t&&(a=t.scrollLeft,o=t.scrollTop,n.inBodyScroll=!0,(0,_dom.setScrollLeft)(l,a),(0,_dom.setScrollLeft)(c,a),(0,_dom.setScrollTop)(r,o),syncTableScrollTop(i,o),handleScrollEvent(i,e,!0,!0,t.scrollTop,a)))},triggerFooterScrollEvent:function(e){var t,l=this.internalData;l.inVirtualScroll||l.inHeaderScroll||l.inBodyScroll||(l=e.currentTarget)&&(t=l.scrollLeft,handleScrollEvent(this,e,!1,!0,l.scrollTop,t))},triggerVirtualScrollXEvent:function(e){var t,l,r,a=this.internalData,o=a.elemStore;a.inHeaderScroll||a.inBodyScroll||(t=e.currentTarget,l=(0,_util.getRefElem)(o["main-header-scroll"]),o=(0,_util.getRefElem)(o["main-body-scroll"]),t&&(r=t.scrollLeft,a.inVirtualScroll=!0,(0,_dom.setScrollLeft)(l,r),(0,_dom.setScrollLeft)(o,r),handleScrollEvent(this,e,!1,!0,t.scrollTop,r)))},triggerVirtualScrollYEvent:function(e){var t,l,r=this.internalData,a=r.elemStore;r.inHeaderScroll||r.inBodyScroll||(t=e.currentTarget,a=(0,_util.getRefElem)(a["main-body-scroll"]),t&&(l=t.scrollTop,r.inVirtualScroll=!0,(0,_dom.setScrollTop)(a,l),syncTableScrollTop(this,l),handleScrollEvent(this,e,!0,!1,l,t.scrollLeft)))},updateScrollXSpace:function(){return _updateScrollXSpace(this)},updateScrollYSpace:function(){return _updateScrollYSpace(this)},handleGlobalResizeEvent:function(){_handleLazyRecalculate(this)},renderScrollX:function(e){return e("div",{key:"vsx",ref:"refScrollXVirtualElem",class:"vxe-gantt-view--scroll-x-virtual"},[e("div",{ref:"refScrollXLeftCornerElem",class:"vxe-gantt-view--scroll-x-left-corner"}),e("div",{ref:"refScrollXWrapperElem",class:"vxe-gantt-view--scroll-x-wrapper"},[e("div",{ref:"refScrollXHandleElem",class:"vxe-gantt-view--scroll-x-handle",on:{scroll:this.triggerVirtualScrollXEvent}},[e("div",{ref:"refScrollXSpaceElem",class:"vxe-gantt-view--scroll-x-space"})])]),e("div",{ref:"refScrollXRightCornerElem",class:"vxe-gantt-view--scroll-x-right-corner"})])},renderScrollY:function(e){return e("div",{ref:"refScrollYVirtualElem",class:"vxe-gantt-view--scroll-y-virtual"},[e("div",{ref:"refScrollYTopCornerElem",class:"vxe-gantt-view--scroll-y-top-corner"}),e("div",{ref:"refScrollYWrapperElem",class:"vxe-gantt-view--scroll-y-wrapper"},[e("div",{ref:"refScrollYHandleElem",class:"vxe-gantt-view--scroll-y-handle",on:{scroll:this.triggerVirtualScrollYEvent}},[e("div",{ref:"refScrollYSpaceElem",class:"vxe-gantt-view--scroll-y-space"})])]),e("div",{ref:"refScrollYBottomCornerElem",class:"vxe-gantt-view--scroll-y-bottom-corner"})])},renderViewport:function(e){return e("div",{class:"vxe-gantt-view--viewport-wrapper"},[e(_ganttHeader.default),e(_ganttBody.default)])},renderBody:function(e){var t=this;return e("div",{class:"vxe-gantt-view--layout-wrapper"},t.$xeGantt.computeScrollbarYToLeft?[t.renderScrollY(e),t.renderViewport(e)]:[t.renderViewport(e),t.renderScrollY(e)])},renderVN:function(e){var t=this,l=t.$xeGantt,r=t.reactData,a=r.overflowX,o=r.overflowY,i=r.scrollXLoad,r=r.scrollYLoad,n=l.computeTaskViewOpts,l=l.computeScrollbarXToTop;return e("div",{ref:"refElem",class:["vxe-gantt-view","mode--".concat(n.mode||"day"),{"is--scroll-y":o,"is--scroll-x":a,"is--virtual-x":i,"is--virtual-y":r}]},[e("div",{class:"vxe-gantt-view--render-wrapper"},l?[t.renderScrollX(e),t.renderBody(e)]:[t.renderBody(e),t.renderScrollX(e)]),e("div",{class:"vxe-gantt-view--render-vars"},[e("div",{ref:"refColInfoElem",class:"vxe-gantt-view--column-info"})])])}},watch:{"reactData.tableData":function(){handleUpdateData(this)}},mounted:function(){globalEvents.on(this,"resize",this.handleGlobalResizeEvent)},beforeDestroy:function(){var e=this.internalData;globalEvents.off(this,"keydown"),_xeUtils.default.assign(e,createInternalData())},render:function(e){return this.renderVN(e)}});
|
package/lib/gantt/src/gantt.js
CHANGED
|
@@ -10,6 +10,7 @@ var _core = require("@vxe-ui/core");
|
|
|
10
10
|
var _xeUtils = _interopRequireDefault(require("xe-utils"));
|
|
11
11
|
var _utils = require("../../ui/src/utils");
|
|
12
12
|
var _dom = require("../../ui/src/dom");
|
|
13
|
+
var _vn = require("../../ui/src/vn");
|
|
13
14
|
var _log = require("../../ui/src/log");
|
|
14
15
|
var _ganttView = _interopRequireDefault(require("./gantt-view"));
|
|
15
16
|
var _vxeTable = require("vxe-table");
|
|
@@ -31,8 +32,7 @@ var getConfig = _core.VxeUI.getConfig,
|
|
|
31
32
|
createEvent = _core.VxeUI.createEvent,
|
|
32
33
|
globalEvents = _core.VxeUI.globalEvents,
|
|
33
34
|
GLOBAL_EVENT_KEYS = _core.VxeUI.GLOBAL_EVENT_KEYS,
|
|
34
|
-
renderEmptyElement = _core.VxeUI.renderEmptyElement
|
|
35
|
-
getSlotVNs = _core.VxeUI.getSlotVNs;
|
|
35
|
+
renderEmptyElement = _core.VxeUI.renderEmptyElement;
|
|
36
36
|
var tableProps = _vxeTable.VxeTable.props;
|
|
37
37
|
var tableMethods = {};
|
|
38
38
|
var propKeys = Object.keys(tableProps);
|
|
@@ -98,7 +98,9 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
98
98
|
}),
|
|
99
99
|
provide: function provide() {
|
|
100
100
|
var $xeGantt = this;
|
|
101
|
+
var $xeGrid = null;
|
|
101
102
|
return {
|
|
103
|
+
$xeGrid: $xeGrid,
|
|
102
104
|
$xeGantt: $xeGantt
|
|
103
105
|
};
|
|
104
106
|
},
|
|
@@ -285,7 +287,12 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
285
287
|
var proxyOpts = $xeGantt.computeProxyOpts;
|
|
286
288
|
var pagerOpts = $xeGantt.computePagerOpts;
|
|
287
289
|
var isLoading = $xeGantt.computeIsLoading;
|
|
288
|
-
var tProps = Object.assign({}, tableExtendProps
|
|
290
|
+
var tProps = Object.assign({}, tableExtendProps, {
|
|
291
|
+
showOverflow: true,
|
|
292
|
+
showHeaderOverflow: true,
|
|
293
|
+
showFooterOverflow: true,
|
|
294
|
+
showFooter: false
|
|
295
|
+
});
|
|
289
296
|
if (isZMax) {
|
|
290
297
|
if (tableExtendProps.maxHeight) {
|
|
291
298
|
tProps.maxHeight = '100%';
|
|
@@ -1486,7 +1493,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
1486
1493
|
slotFunc = slots[slotFunc] || null;
|
|
1487
1494
|
}
|
|
1488
1495
|
if (_xeUtils.default.isFunction(slotFunc)) {
|
|
1489
|
-
return getSlotVNs(slotFunc.call(this, params, h, vNodes));
|
|
1496
|
+
return (0, _vn.getSlotVNs)(slotFunc.call(this, params, h, vNodes));
|
|
1490
1497
|
}
|
|
1491
1498
|
}
|
|
1492
1499
|
return [];
|
|
@@ -1558,6 +1565,21 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
1558
1565
|
},
|
|
1559
1566
|
handleTaskCellClickEvent: function handleTaskCellClickEvent(evnt, params) {
|
|
1560
1567
|
var $xeGantt = this;
|
|
1568
|
+
var $xeTable = $xeGantt.$refs.refTable;
|
|
1569
|
+
if ($xeTable) {
|
|
1570
|
+
var _tableProps = $xeTable;
|
|
1571
|
+
var highlightCurrentRow = _tableProps.highlightCurrentRow;
|
|
1572
|
+
var rowOpts = $xeTable.computeRowOpts;
|
|
1573
|
+
var row = params.row;
|
|
1574
|
+
// 如果是当前行
|
|
1575
|
+
if (rowOpts.isCurrent || highlightCurrentRow) {
|
|
1576
|
+
$xeTable.triggerCurrentRowEvent(evnt, Object.assign({
|
|
1577
|
+
$table: $xeTable,
|
|
1578
|
+
rowIndex: $xeTable.getRowIndex(row),
|
|
1579
|
+
$rowIndex: $xeTable.getVMRowIndex(row)
|
|
1580
|
+
}, params));
|
|
1581
|
+
}
|
|
1582
|
+
}
|
|
1561
1583
|
$xeGantt.dispatchEvent('task-cell-click', params, evnt);
|
|
1562
1584
|
},
|
|
1563
1585
|
handleTaskCellDblclickEvent: function handleTaskCellDblclickEvent(evnt, params) {
|
|
@@ -1891,17 +1913,18 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
1891
1913
|
if (!enabled) {
|
|
1892
1914
|
return renderEmptyElement($xeGantt);
|
|
1893
1915
|
}
|
|
1916
|
+
var isResize = resize && showLeftView && showRightView;
|
|
1894
1917
|
var ons = {};
|
|
1895
|
-
if (
|
|
1918
|
+
if (isResize) {
|
|
1896
1919
|
ons.mousedown = $xeGantt.dragSplitEvent;
|
|
1897
1920
|
}
|
|
1898
1921
|
return h('div', {
|
|
1899
1922
|
class: ['vxe-gantt--view-split-bar', {
|
|
1900
|
-
'is--resize':
|
|
1901
|
-
on: ons
|
|
1923
|
+
'is--resize': isResize
|
|
1902
1924
|
}]
|
|
1903
1925
|
}, [h('div', {
|
|
1904
|
-
class: 'vxe-gantt--view-split-bar-handle'
|
|
1926
|
+
class: 'vxe-gantt--view-split-bar-handle',
|
|
1927
|
+
on: ons
|
|
1905
1928
|
}), showCollapseTableButton || showCollapseTaskButton ? h('div', {
|
|
1906
1929
|
class: 'vxe-gantt--view-split-bar-btn-wrapper'
|
|
1907
1930
|
}, [showCollapseTableButton && showRightView ? h('div', {
|