vxe-table 3.12.10-beta.8 → 3.12.10
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/index.css +1 -1
- package/es/index.min.css +1 -1
- package/es/locale/lang/ar-EG.js +2 -1
- package/es/locale/lang/de-DE.js +2 -1
- package/es/locale/lang/en-US.js +4 -3
- package/es/locale/lang/es-ES.js +2 -1
- package/es/locale/lang/fr-FR.js +2 -1
- package/es/locale/lang/hu-HU.js +2 -1
- package/es/locale/lang/hy-AM.js +2 -1
- package/es/locale/lang/it-IT.js +2 -1
- package/es/locale/lang/ja-JP.js +2 -1
- package/es/locale/lang/ko-KR.js +2 -1
- package/es/locale/lang/nb-NO.js +2 -1
- package/es/locale/lang/pt-BR.js +2 -1
- package/es/locale/lang/ru-RU.js +4 -3
- package/es/locale/lang/th-TH.js +2 -1
- package/es/locale/lang/ug-CN.js +2 -1
- package/es/locale/lang/uk-UA.js +518 -517
- package/es/locale/lang/vi-VN.js +2 -1
- package/es/locale/lang/zh-CHT.js +2 -1
- package/es/locale/lang/zh-CN.js +2 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/module/edit/mixin.js +7 -7
- package/es/table/module/export/mixin.js +105 -69
- package/es/table/module/keyboard/mixin.js +68 -25
- package/es/table/module/menu/mixin.js +3 -1
- package/es/table/src/body.js +135 -83
- package/es/table/src/cell.js +43 -57
- package/es/table/src/column.js +43 -8
- package/es/table/src/columnInfo.js +3 -0
- package/es/table/src/footer.js +50 -9
- package/es/table/src/header.js +70 -168
- package/es/table/src/methods.js +985 -502
- package/es/table/src/props.js +14 -4
- package/es/table/src/table.js +114 -33
- package/es/table/src/util.js +73 -57
- package/es/table/style.css +253 -189
- package/es/table/style.min.css +1 -1
- package/es/ui/index.js +26 -10
- package/es/ui/src/log.js +1 -1
- package/es/vxe-table/style.css +253 -189
- package/es/vxe-table/style.min.css +1 -1
- package/lib/index.css +1 -1
- package/lib/index.min.css +1 -1
- package/lib/index.umd.js +1782 -1056
- package/lib/index.umd.min.js +1 -1
- package/lib/locale/lang/ar-EG.js +2 -1
- package/lib/locale/lang/ar-EG.min.js +1 -1
- package/lib/locale/lang/de-DE.js +2 -1
- package/lib/locale/lang/de-DE.min.js +1 -1
- package/lib/locale/lang/en-US.js +4 -3
- package/lib/locale/lang/en-US.min.js +1 -1
- package/lib/locale/lang/en-US.umd.js +4 -3
- package/lib/locale/lang/es-ES.js +2 -1
- package/lib/locale/lang/es-ES.min.js +1 -1
- package/lib/locale/lang/es-ES.umd.js +2 -1
- package/lib/locale/lang/fr-FR.js +2 -1
- package/lib/locale/lang/fr-FR.min.js +1 -1
- package/lib/locale/lang/hu-HU.js +2 -1
- package/lib/locale/lang/hu-HU.min.js +1 -1
- package/lib/locale/lang/hu-HU.umd.js +2 -1
- package/lib/locale/lang/hy-AM.js +2 -1
- package/lib/locale/lang/hy-AM.min.js +1 -1
- package/lib/locale/lang/it-IT.js +2 -1
- package/lib/locale/lang/it-IT.min.js +1 -1
- package/lib/locale/lang/ja-JP.js +2 -1
- package/lib/locale/lang/ja-JP.min.js +1 -1
- package/lib/locale/lang/ja-JP.umd.js +2 -1
- package/lib/locale/lang/ko-KR.js +2 -1
- package/lib/locale/lang/ko-KR.min.js +1 -1
- package/lib/locale/lang/ko-KR.umd.js +2 -1
- package/lib/locale/lang/nb-NO.js +2 -1
- package/lib/locale/lang/nb-NO.min.js +1 -1
- package/lib/locale/lang/pt-BR.js +2 -1
- package/lib/locale/lang/pt-BR.min.js +1 -1
- package/lib/locale/lang/pt-BR.umd.js +2 -1
- package/lib/locale/lang/ru-RU.js +4 -3
- package/lib/locale/lang/ru-RU.min.js +1 -1
- package/lib/locale/lang/ru-RU.umd.js +4 -3
- package/lib/locale/lang/th-TH.js +2 -1
- package/lib/locale/lang/th-TH.min.js +1 -1
- package/lib/locale/lang/ug-CN.js +2 -1
- package/lib/locale/lang/ug-CN.min.js +1 -1
- package/lib/locale/lang/uk-UA.js +518 -517
- package/lib/locale/lang/uk-UA.min.js +1 -1
- package/lib/locale/lang/uk-UA.umd.js +518 -517
- package/lib/locale/lang/vi-VN.js +2 -1
- package/lib/locale/lang/vi-VN.min.js +1 -1
- package/lib/locale/lang/zh-CHT.js +2 -1
- package/lib/locale/lang/zh-CHT.min.js +1 -1
- package/lib/locale/lang/zh-CHT.umd.js +2 -1
- package/lib/locale/lang/zh-CN.js +2 -1
- package/lib/locale/lang/zh-CN.min.js +1 -1
- package/lib/locale/lang/zh-CN.umd.js +2 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table/module/edit/mixin.js +7 -2
- package/lib/table/module/edit/mixin.min.js +1 -1
- package/lib/table/module/export/mixin.js +105 -64
- package/lib/table/module/export/mixin.min.js +1 -1
- package/lib/table/module/keyboard/mixin.js +73 -27
- package/lib/table/module/keyboard/mixin.min.js +1 -1
- package/lib/table/module/menu/mixin.js +3 -1
- package/lib/table/src/body.js +132 -79
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/cell.js +32 -42
- package/lib/table/src/cell.min.js +1 -1
- package/lib/table/src/column.js +12 -0
- package/lib/table/src/column.min.js +1 -1
- package/lib/table/src/columnInfo.js +3 -0
- package/lib/table/src/columnInfo.min.js +1 -1
- package/lib/table/src/footer.js +46 -7
- package/lib/table/src/footer.min.js +1 -1
- package/lib/table/src/header.js +52 -175
- package/lib/table/src/header.min.js +1 -1
- package/lib/table/src/methods.js +1096 -560
- package/lib/table/src/methods.min.js +1 -1
- package/lib/table/src/props.js +14 -4
- package/lib/table/src/props.min.js +1 -1
- package/lib/table/src/table.js +113 -36
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +87 -70
- package/lib/table/src/util.min.js +1 -1
- package/lib/table/style/style.css +253 -189
- package/lib/table/style/style.min.css +1 -1
- package/lib/ui/index.js +26 -10
- 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-table/style/style.css +253 -189
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +2 -2
- package/packages/locale/lang/ar-EG.ts +2 -1
- package/packages/locale/lang/de-DE.ts +2 -1
- package/packages/locale/lang/en-US.ts +4 -3
- package/packages/locale/lang/es-ES.ts +2 -1
- package/packages/locale/lang/fr-FR.ts +2 -1
- package/packages/locale/lang/hu-HU.ts +2 -1
- package/packages/locale/lang/hy-AM.ts +2 -1
- package/packages/locale/lang/it-IT.ts +2 -1
- package/packages/locale/lang/ja-JP.ts +2 -1
- package/packages/locale/lang/ko-KR.ts +2 -1
- package/packages/locale/lang/nb-NO.ts +2 -1
- package/packages/locale/lang/pt-BR.ts +2 -1
- package/packages/locale/lang/ru-RU.ts +4 -3
- package/packages/locale/lang/th-TH.ts +2 -1
- package/packages/locale/lang/ug-CN.ts +2 -1
- package/packages/locale/lang/uk-UA.ts +518 -517
- package/packages/locale/lang/vi-VN.ts +2 -1
- package/packages/locale/lang/zh-CHT.ts +2 -1
- package/packages/locale/lang/zh-CN.ts +2 -1
- package/packages/table/module/edit/mixin.ts +7 -7
- package/packages/table/module/export/mixin.ts +138 -80
- package/packages/table/module/keyboard/mixin.ts +65 -24
- package/packages/table/module/menu/mixin.ts +4 -1
- package/packages/table/src/body.ts +148 -86
- package/packages/table/src/cell.ts +45 -67
- package/packages/table/src/column.ts +48 -10
- package/packages/table/src/columnInfo.ts +3 -0
- package/packages/table/src/footer.ts +53 -10
- package/packages/table/src/header.ts +70 -169
- package/packages/table/src/methods.ts +1031 -515
- package/packages/table/src/props.ts +16 -6
- package/packages/table/src/table.ts +124 -33
- package/packages/table/src/util.ts +82 -62
- package/packages/ui/index.ts +25 -9
- package/styles/components/table.scss +319 -271
- package/styles/theme/base.scss +4 -6
- package/styles/theme/dark.scss +1 -0
- package/styles/theme/light.scss +1 -0
- package/styles/variable.scss +1 -0
- /package/es/{iconfont.1736840896964.ttf → iconfont.1738985837413.ttf} +0 -0
- /package/es/{iconfont.1736840896964.woff → iconfont.1738985837413.woff} +0 -0
- /package/es/{iconfont.1736840896964.woff2 → iconfont.1738985837413.woff2} +0 -0
- /package/lib/{iconfont.1736840896964.ttf → iconfont.1738985837413.ttf} +0 -0
- /package/lib/{iconfont.1736840896964.woff → iconfont.1738985837413.woff} +0 -0
- /package/lib/{iconfont.1736840896964.woff2 → iconfont.1738985837413.woff2} +0 -0
package/lib/table/src/header.js
CHANGED
|
@@ -7,11 +7,9 @@ exports.default = void 0;
|
|
|
7
7
|
var _xeUtils = _interopRequireDefault(require("xe-utils"));
|
|
8
8
|
var _ui = require("../../ui");
|
|
9
9
|
var _utils = require("../../ui/src/utils");
|
|
10
|
-
var _dom = require("../../ui/src/dom");
|
|
11
10
|
var _util = require("./util");
|
|
12
11
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
12
|
const {
|
|
14
|
-
getI18n,
|
|
15
13
|
renderer,
|
|
16
14
|
renderEmptyElement
|
|
17
15
|
} = _ui.VxeUI;
|
|
@@ -48,6 +46,10 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
|
|
|
48
46
|
} = tableInternalData;
|
|
49
47
|
const columnOpts = $xeTable.computeColumnOpts;
|
|
50
48
|
const columnDragOpts = $xeTable.computeColumnDragOpts;
|
|
49
|
+
const cellOpts = $xeTable.computeCellOpts;
|
|
50
|
+
const defaultRowHeight = $xeTable.computeDefaultRowHeight;
|
|
51
|
+
const headerCellOpts = $xeTable.computeHeaderCellOpts;
|
|
52
|
+
const currCellHeight = (0, _util.getCellHeight)(headerCellOpts.height || cellOpts.height) || defaultRowHeight;
|
|
51
53
|
const {
|
|
52
54
|
disabledMethod: dragDisabledMethod,
|
|
53
55
|
isCrossDrag,
|
|
@@ -70,6 +72,7 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
|
|
|
70
72
|
const compConf = renderOpts ? renderer.get(renderOpts.name) : null;
|
|
71
73
|
const isColGroup = column.children && column.children.length;
|
|
72
74
|
const fixedHiddenColumn = fixedType ? column.fixed !== fixedType && !isColGroup : column.fixed && overflowX;
|
|
75
|
+
const isPadding = _xeUtils.default.isBoolean(headerCellOpts.padding) ? headerCellOpts.padding : cellOpts.padding;
|
|
73
76
|
const headOverflow = _xeUtils.default.isUndefined(showHeaderOverflow) || _xeUtils.default.isNull(showHeaderOverflow) ? allColumnHeaderOverflow : showHeaderOverflow;
|
|
74
77
|
const headAlign = headerAlign || (compConf ? compConf.tableHeaderCellAlign : '') || allHeaderAlign || align || (compConf ? compConf.tableCellAlign : '') || allAlign;
|
|
75
78
|
let showEllipsis = headOverflow === 'ellipsis';
|
|
@@ -84,7 +87,7 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
|
|
|
84
87
|
}
|
|
85
88
|
const columnIndex = $xeTable.getColumnIndex(column);
|
|
86
89
|
const _columnIndex = $xeTable.getVTColumnIndex(column);
|
|
87
|
-
const
|
|
90
|
+
const cellParams = {
|
|
88
91
|
$table: $xeTable,
|
|
89
92
|
$grid: $xeGrid,
|
|
90
93
|
$rowIndex,
|
|
@@ -104,8 +107,8 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
|
|
|
104
107
|
rowspan: column.rowSpan > 1 ? column.rowSpan : null
|
|
105
108
|
};
|
|
106
109
|
const thOns = {
|
|
107
|
-
click: evnt => $xeTable.triggerHeaderCellClickEvent(evnt,
|
|
108
|
-
dblclick: evnt => $xeTable.triggerHeaderCellDblclickEvent(evnt,
|
|
110
|
+
click: evnt => $xeTable.triggerHeaderCellClickEvent(evnt, cellParams),
|
|
111
|
+
dblclick: evnt => $xeTable.triggerHeaderCellDblclickEvent(evnt, cellParams)
|
|
109
112
|
};
|
|
110
113
|
// 虚拟滚动不支持动态高度
|
|
111
114
|
if (scrollXLoad && !hasEllipsis) {
|
|
@@ -114,11 +117,11 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
|
|
|
114
117
|
const isColDragCell = columnOpts.drag && columnDragOpts.trigger === 'cell';
|
|
115
118
|
let isDisabledDrag = false;
|
|
116
119
|
if (isColDragCell) {
|
|
117
|
-
isDisabledDrag = !!(dragDisabledMethod && dragDisabledMethod(
|
|
120
|
+
isDisabledDrag = !!(dragDisabledMethod && dragDisabledMethod(cellParams));
|
|
118
121
|
}
|
|
119
122
|
// 按下事件处理
|
|
120
123
|
if (mouseConfig || isColDragCell) {
|
|
121
|
-
thOns.mousedown = evnt => $xeTable.triggerHeaderCellMousedownEvent(evnt,
|
|
124
|
+
thOns.mousedown = evnt => $xeTable.triggerHeaderCellMousedownEvent(evnt, cellParams);
|
|
122
125
|
}
|
|
123
126
|
// 拖拽列事件
|
|
124
127
|
if (columnOpts.drag) {
|
|
@@ -132,9 +135,15 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
|
|
|
132
135
|
const isLastColumn = $columnIndex === cols.length - 1;
|
|
133
136
|
const showResizable = _xeUtils.default.isBoolean(column.resizable) ? column.resizable : columnOpts.resizable || allResizable;
|
|
134
137
|
const isAutoCellWidth = !column.resizeWidth && (column.minWidth === 'auto' || column.width === 'auto');
|
|
135
|
-
let
|
|
136
|
-
if (scrollXLoad && !
|
|
137
|
-
|
|
138
|
+
let isVNPreEmptyStatus = false;
|
|
139
|
+
if (scrollXLoad && !column.fixed && (_columnIndex < scrollXStore.visibleStartIndex - scrollXStore.preloadSize || _columnIndex > scrollXStore.visibleEndIndex + scrollXStore.preloadSize)) {
|
|
140
|
+
isVNPreEmptyStatus = true;
|
|
141
|
+
}
|
|
142
|
+
const tcStyle = {};
|
|
143
|
+
if (hasEllipsis) {
|
|
144
|
+
tcStyle.height = `${currCellHeight}px`;
|
|
145
|
+
} else {
|
|
146
|
+
tcStyle.minHeight = `${currCellHeight}px`;
|
|
138
147
|
}
|
|
139
148
|
return h('th', {
|
|
140
149
|
class: ['vxe-header--column', colid, {
|
|
@@ -146,15 +155,16 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
|
|
|
146
155
|
'col--ellipsis': hasEllipsis,
|
|
147
156
|
'fixed--width': !isAutoCellWidth,
|
|
148
157
|
'fixed--hidden': fixedHiddenColumn,
|
|
158
|
+
'is--padding': isPadding,
|
|
149
159
|
'is--sortable': column.sortable,
|
|
150
160
|
'col--filter': !!filters,
|
|
151
161
|
'is--filter-active': hasFilter,
|
|
152
162
|
'is--drag-active': !column.fixed && !isDisabledDrag && (isCrossDrag || isPeerDrag || !column.parentId),
|
|
153
163
|
'is--drag-disabled': isDisabledDrag,
|
|
154
164
|
'col--current': currentColumn === column
|
|
155
|
-
}, (0, _utils.getClass)(headerClassName,
|
|
165
|
+
}, (0, _utils.getClass)(headerClassName, cellParams), (0, _utils.getClass)(headerCellClassName, cellParams)],
|
|
156
166
|
attrs: thAttrs,
|
|
157
|
-
style: headerCellStyle ? _xeUtils.default.isFunction(headerCellStyle) ? headerCellStyle(
|
|
167
|
+
style: headerCellStyle ? _xeUtils.default.isFunction(headerCellStyle) ? headerCellStyle(cellParams) : headerCellStyle : undefined,
|
|
158
168
|
on: thOns,
|
|
159
169
|
key: columnKey || scrollXLoad || scrollYLoad || columnOpts.useKey || columnOpts.drag || isColGroup ? colid : $columnIndex
|
|
160
170
|
}, [h('div', {
|
|
@@ -162,18 +172,24 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
|
|
|
162
172
|
'c--title': showTitle,
|
|
163
173
|
'c--tooltip': showTooltip,
|
|
164
174
|
'c--ellipsis': showEllipsis
|
|
165
|
-
}]
|
|
166
|
-
|
|
175
|
+
}],
|
|
176
|
+
style: tcStyle
|
|
177
|
+
}, isVNPreEmptyStatus || isOptimizeMode && fixedHiddenColumn ? [] : [h('div', {
|
|
178
|
+
attrs: {
|
|
179
|
+
colid
|
|
180
|
+
},
|
|
181
|
+
class: 'vxe-cell--wrapper'
|
|
182
|
+
}, column.renderHeader(h, cellParams))]),
|
|
167
183
|
/**
|
|
168
184
|
* 列宽拖动
|
|
169
185
|
*/
|
|
170
186
|
!fixedHiddenColumn && showResizable ? h('div', {
|
|
171
|
-
class: ['vxe-resizable', {
|
|
187
|
+
class: ['vxe-cell--col-resizable', {
|
|
172
188
|
'is--line': !border || border === 'none'
|
|
173
189
|
}],
|
|
174
190
|
on: {
|
|
175
|
-
mousedown: evnt =>
|
|
176
|
-
dblclick: evnt => $xeTable.
|
|
191
|
+
mousedown: evnt => $xeTable.handleColResizeMousedownEvent(evnt, fixedType, cellParams),
|
|
192
|
+
dblclick: evnt => $xeTable.handleColResizeDblclickEvent(evnt, cellParams)
|
|
177
193
|
}
|
|
178
194
|
}) : renderEmptyElement($xeTable)]);
|
|
179
195
|
});
|
|
@@ -193,6 +209,7 @@ function renderHeads(h, _vm, isGroup, isOptimizeMode, headerGroups) {
|
|
|
193
209
|
headerRowStyle
|
|
194
210
|
} = tableProps;
|
|
195
211
|
const {
|
|
212
|
+
isColLoading,
|
|
196
213
|
isDragColMove
|
|
197
214
|
} = tableReactData;
|
|
198
215
|
return headerGroups.map((cols, $rowIndex) => {
|
|
@@ -202,7 +219,7 @@ function renderHeads(h, _vm, isGroup, isOptimizeMode, headerGroups) {
|
|
|
202
219
|
fixed: fixedType,
|
|
203
220
|
type: cellType
|
|
204
221
|
};
|
|
205
|
-
if (columnOpts.drag && columnDragOpts.animation) {
|
|
222
|
+
if (!isColLoading && columnOpts.drag && columnDragOpts.animation) {
|
|
206
223
|
return h('transition-group', {
|
|
207
224
|
key: $rowIndex,
|
|
208
225
|
props: {
|
|
@@ -302,6 +319,7 @@ var _default = exports.default = {
|
|
|
302
319
|
headerColumn
|
|
303
320
|
} = this;
|
|
304
321
|
const {
|
|
322
|
+
mouseConfig,
|
|
305
323
|
showHeaderOverflow: allColumnHeaderOverflow,
|
|
306
324
|
spanMethod,
|
|
307
325
|
footerSpanMethod
|
|
@@ -316,6 +334,7 @@ var _default = exports.default = {
|
|
|
316
334
|
visibleColumn,
|
|
317
335
|
fullColumnIdData
|
|
318
336
|
} = tableInternalData;
|
|
337
|
+
const mouseOpts = $xeTable.computeMouseOpts;
|
|
319
338
|
let renderHeaderList = headerColumn;
|
|
320
339
|
let renderColumnList = tableColumn;
|
|
321
340
|
let isOptimizeMode = false;
|
|
@@ -410,14 +429,21 @@ var _default = exports.default = {
|
|
|
410
429
|
*/
|
|
411
430
|
h('thead', {
|
|
412
431
|
ref: 'refHeaderTHead'
|
|
413
|
-
}, renderHeads(h, this, isGroup, isOptimizeMode, renderHeaderList))
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
h('
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
432
|
+
}, renderHeads(h, this, isGroup, isOptimizeMode, renderHeaderList)), mouseConfig && mouseOpts.area ? h('div', {
|
|
433
|
+
class: 'vxe-table--cell-area'
|
|
434
|
+
}, [h('span', {
|
|
435
|
+
class: 'vxe-table--cell-main-area'
|
|
436
|
+
}), h('span', {
|
|
437
|
+
class: 'vxe-table--cell-copy-area'
|
|
438
|
+
}), h('span', {
|
|
439
|
+
class: 'vxe-table--cell-extend-area'
|
|
440
|
+
}), h('span', {
|
|
441
|
+
class: 'vxe-table--cell-multi-area'
|
|
442
|
+
}), h('span', {
|
|
443
|
+
class: 'vxe-table--cell-active-area'
|
|
444
|
+
}), h('span', {
|
|
445
|
+
class: 'vxe-table--cell-col-status-area'
|
|
446
|
+
})]) : renderEmptyElement($xeTable)])])]);
|
|
421
447
|
},
|
|
422
448
|
methods: {
|
|
423
449
|
uploadColumn() {
|
|
@@ -425,155 +451,6 @@ var _default = exports.default = {
|
|
|
425
451
|
$parent: $xetable
|
|
426
452
|
} = this;
|
|
427
453
|
this.headerColumn = $xetable.isGroup ? (0, _util.convertHeaderColumnToRows)(this.tableGroupColumn) : [];
|
|
428
|
-
},
|
|
429
|
-
resizeMousedownEvent(evnt, params) {
|
|
430
|
-
const _vm = this;
|
|
431
|
-
const props = _vm;
|
|
432
|
-
const $xeTable = this.$parent;
|
|
433
|
-
const tableReactData = $xeTable;
|
|
434
|
-
const tableInternalData = $xeTable;
|
|
435
|
-
const {
|
|
436
|
-
column
|
|
437
|
-
} = params;
|
|
438
|
-
const {
|
|
439
|
-
fixedType
|
|
440
|
-
} = props;
|
|
441
|
-
const {
|
|
442
|
-
scrollbarHeight
|
|
443
|
-
} = tableReactData;
|
|
444
|
-
const {
|
|
445
|
-
elemStore,
|
|
446
|
-
visibleColumn
|
|
447
|
-
} = tableInternalData;
|
|
448
|
-
const resizableOpts = $xeTable.computeResizableOpts;
|
|
449
|
-
const tableEl = $xeTable.$refs.refElem;
|
|
450
|
-
const leftContainerElem = $xeTable.$refs.refLeftContainer;
|
|
451
|
-
const rightContainerElem = $xeTable.$refs.refRightContainer;
|
|
452
|
-
const resizeBarElem = $xeTable.$refs.refCellResizeBar;
|
|
453
|
-
const resizeTipElem = $xeTable.$refs.refCellResizeTip;
|
|
454
|
-
const scrollbarXToTop = $xeTable.computeScrollbarXToTop;
|
|
455
|
-
const {
|
|
456
|
-
clientX: dragClientX
|
|
457
|
-
} = evnt;
|
|
458
|
-
const wrapperElem = _vm.$el;
|
|
459
|
-
const dragBtnElem = evnt.target;
|
|
460
|
-
let resizeColumn = column;
|
|
461
|
-
if (column.children && column.children.length) {
|
|
462
|
-
_xeUtils.default.eachTree(column.children, childColumn => {
|
|
463
|
-
resizeColumn = childColumn;
|
|
464
|
-
});
|
|
465
|
-
}
|
|
466
|
-
const cell = dragBtnElem.parentNode;
|
|
467
|
-
const cellParams = Object.assign(params, {
|
|
468
|
-
cell
|
|
469
|
-
});
|
|
470
|
-
let dragLeft = 0;
|
|
471
|
-
const bodyScrollElem = (0, _util.getRefElem)(elemStore['main-body-scroll']);
|
|
472
|
-
if (!bodyScrollElem) {
|
|
473
|
-
return;
|
|
474
|
-
}
|
|
475
|
-
const pos = (0, _dom.getOffsetPos)(dragBtnElem, tableEl);
|
|
476
|
-
const dragBtnWidth = dragBtnElem.clientWidth;
|
|
477
|
-
const dragBtnOffsetWidth = Math.floor(dragBtnWidth / 2);
|
|
478
|
-
const minInterval = (0, _util.getColReMinWidth)(cellParams) - dragBtnOffsetWidth; // 列之间的最小间距
|
|
479
|
-
let dragMinLeft = pos.left - cell.clientWidth + dragBtnWidth + minInterval;
|
|
480
|
-
let dragPosLeft = pos.left + dragBtnOffsetWidth;
|
|
481
|
-
const domMousemove = document.onmousemove;
|
|
482
|
-
const domMouseup = document.onmouseup;
|
|
483
|
-
const isLeftFixed = fixedType === 'left';
|
|
484
|
-
const isRightFixed = fixedType === 'right';
|
|
485
|
-
// 计算左右侧固定列偏移量
|
|
486
|
-
let fixedOffsetWidth = 0;
|
|
487
|
-
if (isLeftFixed || isRightFixed) {
|
|
488
|
-
const siblingProp = isLeftFixed ? 'nextElementSibling' : 'previousElementSibling';
|
|
489
|
-
let tempCellElem = cell[siblingProp];
|
|
490
|
-
while (tempCellElem) {
|
|
491
|
-
if ((0, _dom.hasClass)(tempCellElem, 'fixed--hidden')) {
|
|
492
|
-
break;
|
|
493
|
-
} else if (!(0, _dom.hasClass)(tempCellElem, 'col--group')) {
|
|
494
|
-
fixedOffsetWidth += tempCellElem.offsetWidth;
|
|
495
|
-
}
|
|
496
|
-
tempCellElem = tempCellElem[siblingProp];
|
|
497
|
-
}
|
|
498
|
-
if (isRightFixed && rightContainerElem) {
|
|
499
|
-
dragPosLeft = rightContainerElem.offsetLeft + fixedOffsetWidth;
|
|
500
|
-
}
|
|
501
|
-
}
|
|
502
|
-
// 处理拖动事件
|
|
503
|
-
const updateEvent = function (evnt) {
|
|
504
|
-
evnt.stopPropagation();
|
|
505
|
-
evnt.preventDefault();
|
|
506
|
-
const tableHeight = tableEl.clientHeight;
|
|
507
|
-
const offsetX = evnt.clientX - dragClientX;
|
|
508
|
-
let left = dragPosLeft + offsetX;
|
|
509
|
-
const scrollLeft = fixedType ? 0 : bodyScrollElem.scrollLeft;
|
|
510
|
-
if (isLeftFixed) {
|
|
511
|
-
// 左固定列(不允许超过右侧固定列、不允许超过右边距)
|
|
512
|
-
left = Math.min(left, (rightContainerElem ? rightContainerElem.offsetLeft : bodyScrollElem.clientWidth) - fixedOffsetWidth - minInterval);
|
|
513
|
-
} else if (isRightFixed) {
|
|
514
|
-
// 右侧固定列(不允许超过左侧固定列、不允许超过左边距)
|
|
515
|
-
dragMinLeft = (leftContainerElem ? leftContainerElem.clientWidth : 0) + fixedOffsetWidth + minInterval;
|
|
516
|
-
left = Math.min(left, dragPosLeft + cell.clientWidth - minInterval);
|
|
517
|
-
} else {
|
|
518
|
-
dragMinLeft = Math.max(bodyScrollElem.scrollLeft, dragMinLeft);
|
|
519
|
-
// left = Math.min(left, bodyScrollElem.clientWidth + bodyScrollElem.scrollLeft - 40)
|
|
520
|
-
}
|
|
521
|
-
dragLeft = Math.max(left, dragMinLeft);
|
|
522
|
-
const resizeBarLeft = Math.max(1, dragLeft - scrollLeft);
|
|
523
|
-
resizeBarElem.style.left = `${resizeBarLeft}px`;
|
|
524
|
-
resizeBarElem.style.top = `${scrollbarXToTop ? scrollbarHeight : 0}px`;
|
|
525
|
-
resizeBarElem.style.height = `${scrollbarXToTop ? tableHeight - scrollbarHeight : tableHeight}px`;
|
|
526
|
-
if (resizableOpts.showDragTip && resizeTipElem) {
|
|
527
|
-
const tableWidth = tableEl.clientWidth;
|
|
528
|
-
const wrapperRect = wrapperElem.getBoundingClientRect();
|
|
529
|
-
const resizeBarWidth = resizeBarElem.clientWidth;
|
|
530
|
-
const resizeTipWidth = resizeTipElem.clientWidth;
|
|
531
|
-
const resizeTipHeight = resizeTipElem.clientHeight;
|
|
532
|
-
let resizeTipLeft = -resizeTipWidth;
|
|
533
|
-
if (resizeBarLeft < resizeTipWidth + resizeBarWidth) {
|
|
534
|
-
resizeTipLeft = 0;
|
|
535
|
-
} else if (resizeBarLeft > tableWidth) {
|
|
536
|
-
resizeTipLeft += tableWidth - resizeBarLeft;
|
|
537
|
-
}
|
|
538
|
-
resizeTipElem.style.left = `${resizeTipLeft}px`;
|
|
539
|
-
resizeTipElem.style.top = `${Math.min(tableHeight - resizeTipHeight, Math.max(0, evnt.clientY - wrapperRect.y - resizeTipHeight / 2))}px`;
|
|
540
|
-
resizeTipElem.textContent = getI18n('vxe.table.resizeColTip', [resizeColumn.renderWidth + (isRightFixed ? dragPosLeft - dragLeft : dragLeft - dragPosLeft)]);
|
|
541
|
-
}
|
|
542
|
-
};
|
|
543
|
-
tableReactData._isResize = true;
|
|
544
|
-
(0, _dom.addClass)(tableEl, 'drag--resize');
|
|
545
|
-
resizeBarElem.style.display = 'block';
|
|
546
|
-
document.onmousemove = updateEvent;
|
|
547
|
-
document.onmouseup = function (evnt) {
|
|
548
|
-
document.onmousemove = domMousemove;
|
|
549
|
-
document.onmouseup = domMouseup;
|
|
550
|
-
const resizeWidth = resizeColumn.renderWidth + (isRightFixed ? dragPosLeft - dragLeft : dragLeft - dragPosLeft);
|
|
551
|
-
resizeColumn.resizeWidth = resizeWidth;
|
|
552
|
-
if (resizableOpts.dragMode === 'fixed') {
|
|
553
|
-
visibleColumn.forEach(item => {
|
|
554
|
-
if (item.id !== resizeColumn.id) {
|
|
555
|
-
if (!item.resizeWidth) {
|
|
556
|
-
item.resizeWidth = item.renderWidth;
|
|
557
|
-
}
|
|
558
|
-
}
|
|
559
|
-
});
|
|
560
|
-
}
|
|
561
|
-
resizeBarElem.style.display = 'none';
|
|
562
|
-
tableReactData._isResize = false;
|
|
563
|
-
tableInternalData._lastResizeTime = Date.now();
|
|
564
|
-
$xeTable.analyColumnWidth();
|
|
565
|
-
$xeTable.recalculate(true).then(() => {
|
|
566
|
-
$xeTable.saveCustomStore('update:visible');
|
|
567
|
-
$xeTable.updateCellAreas();
|
|
568
|
-
$xeTable.dispatchEvent('resizable-change', Object.assign(Object.assign({}, params), {
|
|
569
|
-
resizeWidth
|
|
570
|
-
}), evnt);
|
|
571
|
-
setTimeout(() => $xeTable.recalculate(true), 300);
|
|
572
|
-
});
|
|
573
|
-
(0, _dom.removeClass)(tableEl, 'drag--resize');
|
|
574
|
-
};
|
|
575
|
-
updateEvent(evnt);
|
|
576
|
-
$xeTable.closeMenu();
|
|
577
454
|
}
|
|
578
455
|
}
|
|
579
456
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{renderer,renderEmptyElement}=_ui.VxeUI,cellType="header",renderRows=($,e,l,E,S,D)=>{let T=e.$parent,R=T.xegrid;var r=T,a=T,t=T;let I=e.fixedType,{resizable:O,border:U,columnKey:k,headerCellClassName:z,headerCellStyle:M,showHeaderOverflow:A,headerAlign:F,align:q,mouseConfig:X}=r,{currentColumn:L,scrollXLoad:G,scrollYLoad:N,overflowX:B}=a,V=t.scrollXStore,K=T.computeColumnOpts,P=T.computeColumnDragOpts,W=T.computeCellOpts;e=T.computeDefaultRowHeight;let Y=T.computeHeaderCellOpts,j=(0,_util.getCellHeight)(Y.height||W.height)||e,{disabledMethod:J,isCrossDrag:Q,isPeerDrag:Z}=P;return S.map((e,l)=>{var{type:r,showHeaderOverflow:a,headerAlign:t,align:i,filters:d,headerClassName:s,editRender:o,cellRender:n}=e,u=e.id,o=o||n,n=o?renderer.get(o.name):null,o=e.children&&e.children.length,c=I?e.fixed!==I&&!o:e.fixed&&B,p=(_xeUtils.default.isBoolean(Y.padding)?Y:W).padding,a=_xeUtils.default.isUndefined(a)||_xeUtils.default.isNull(a)?A:a,t=t||(n?n.tableHeaderCellAlign:"")||F||i||(n?n.tableCellAlign:"")||q;let f="ellipsis"===a;i="title"===a,n=!0===a||"tooltip"===a;let x=i||n||f,m=!1,g=null;d&&(g=d[0],m=d.some(e=>e.checked));var a=T.getColumnIndex(e),h=T.getVTColumnIndex(e);let v={$table:T,$grid:R,$rowIndex:D,column:e,columnIndex:a,$columnIndex:l,_columnIndex:h,firstFilterOption:g,fixed:I,type:cellType,isHidden:c,hasFilter:m};var a={colid:u,colspan:1<e.colSpan?e.colSpan:null,rowspan:1<e.rowSpan?e.rowSpan:null},C={click:e=>T.triggerHeaderCellClickEvent(e,v),dblclick:e=>T.triggerHeaderCellDblclickEvent(e,v)},b=(G&&!x&&(f=x=!0),K.drag&&"cell"===P.trigger);let y=!1;b&&(y=!(!J||!J(v))),(X||b)&&(C.mousedown=e=>T.triggerHeaderCellMousedownEvent(e,v)),K.drag&&(C.dragstart=T.handleHeaderCellDragDragstartEvent,C.dragend=T.handleHeaderCellDragDragendEvent,C.dragover=T.handleHeaderCellDragDragoverEvent,b)&&(C.mouseup=T.handleHeaderCellDragMouseupEvent);var b=l===S.length-1,w=_xeUtils.default.isBoolean(e.resizable)?e.resizable:K.resizable||O,H=!e.resizeWidth&&("auto"===e.minWidth||"auto"===e.width);let _=!1;G&&!e.fixed&&(h<V.visibleStartIndex-V.preloadSize||h>V.visibleEndIndex+V.preloadSize)&&(_=!0);h={};return x?h.height=j+"px":h.minHeight=j+"px",$("th",{class:["vxe-header--column",u,{["col--"+t]:t,["col--"+r]:r,"col--last":b,"col--fixed":e.fixed,"col--group":o,"col--ellipsis":x,"fixed--width":!H,"fixed--hidden":c,"is--padding":p,"is--sortable":e.sortable,"col--filter":!!d,"is--filter-active":m,"is--drag-active":!e.fixed&&!y&&(Q||Z||!e.parentId),"is--drag-disabled":y,"col--current":L===e},(0,_utils.getClass)(s,v),(0,_utils.getClass)(z,v)],attrs:a,style:M?_xeUtils.default.isFunction(M)?M(v):M:void 0,on:C,key:k||G||N||K.useKey||K.drag||o?u:l},[$("div",{class:["vxe-cell",{"c--title":i,"c--tooltip":n,"c--ellipsis":f}],style:h},_||E&&c?[]:[$("div",{attrs:{colid:u},class:"vxe-cell--wrapper"},e.renderHeader($,v))]),!c&&w?$("div",{class:["vxe-cell--col-resizable",{"is--line":!U||"none"===U}],on:{mousedown:e=>T.handleColResizeMousedownEvent(e,I,v),dblclick:e=>T.handleColResizeDblclickEvent(e,v)}}):renderEmptyElement(T)])})};function renderHeads(a,t,i,d,e){let s=t.$parent;var l=s,r=s;let o=t.fixedType,n=s.computeColumnOpts,u=s.computeColumnDragOpts,{headerRowClassName:c,headerRowStyle:p}=l,{isColLoading:f,isDragColMove:x}=r;return e.map((e,l)=>{var r={$table:s,$rowIndex:l,fixed:o,type:cellType};return!f&&n.drag&&u.animation?a("transition-group",{key:l,props:{tag:"tr",name:"vxe-header--col-list"+(x?"":"-disabled"),class:["vxe-header--row",c?_xeUtils.default.isFunction(c)?c(r):c:""],style:p?_xeUtils.default.isFunction(p)?p(r):p:null}},renderRows(a,t,i,d,e,l)):a("tr",{key:l,class:["vxe-header--row",c?_xeUtils.default.isFunction(c)?c(r):c:""],style:p?_xeUtils.default.isFunction(p)?p(r):p:void 0},renderRows(a,t,i,d,e,l))})}var _default=exports.default={name:"VxeTableHeader",props:{tableData:Array,tableColumn:Array,tableGroupColumn:Array,fixedColumn:Array,fixedType:{type:String,default:null}},data(){return{headerColumn:[]}},watch:{tableColumn(){this.uploadColumn()}},created(){this.uploadColumn()},mounted(){var e=this,l=e.fixedType,r=e.$parent.elemStore,l=`${l||"main"}-header-`;r[l+"wrapper"]=e.$refs.refElem,r[l+"scroll"]=e.$refs.refHeaderScroll,r[l+"table"]=e.$refs.refHeaderTable,r[l+"colgroup"]=e.$refs.refHeaderColgroup,r[l+"list"]=e.$refs.refHeaderTHead,r[l+"xSpace"]=e.$refs.refHeaderXSpace,r[l+"repair"]=e.$refs.refHeaderBorderRepair},destroyed(){var e=this.fixedType,l=this.$parent.elemStore,e=`${e||"main"}-header-`;l[e+"wrapper"]=null,l[e+"scroll"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null,l[e+"repair"]=null},render(r){let l=this.$parent;var e=l,a=l,t=l,i=l.xID;let{fixedType:d,fixedColumn:s,tableColumn:o}=this;var n=this.headerColumn,{mouseConfig:e,showHeaderOverflow:u,spanMethod:c,footerSpanMethod:p}=e,{isGroup:a,scrollXLoad:f,scrollYLoad:x,dragCol:m}=a,{visibleColumn:t,fullColumnIdData:g}=t,h=l.computeMouseOpts;let v=n,C=o,b=!1;return a?C=t:(!(f||x||u)||c||p||(b=!0),d&&(C=t,b)&&(C=s||[]),v=[C]),d||a||f&&m&&2<C.length&&(n=g[m.id])&&(x=n._index,u=C[0],c=C[C.length-1],p=g[u.id],t=g[c.id],p)&&t&&(f=p._index,n=t._index,x<f?(C=[m].concat(C),v=[[m].concat(v[0])].concat(v.slice(1))):n<x&&(C=C.concat([m]),v=[v[0].concat([m])].concat(v.slice(1)))),r("div",{ref:"refElem",class:["vxe-table--header-wrapper",d?`fixed-${d}--wrapper`:"body--wrapper"],attrs:{xid:i}},[r("div",{ref:"refHeaderScroll",class:"vxe-table--header-inner-wrapper",on:{scroll(e){l.triggerHeaderScrollEvent(e,d)}}},[d?renderEmptyElement(l):r("div",{ref:"refHeaderXSpace",class:"vxe-body--x-space"}),r("table",{ref:"refHeaderTable",class:"vxe-table--header",attrs:{xid:i,cellspacing:0,cellpadding:0,border:0}},[r("colgroup",{ref:"refHeaderColgroup"},C.map((e,l)=>r("col",{attrs:{name:e.id},key:l}))),r("thead",{ref:"refHeaderTHead"},renderHeads(r,this,a,b,v)),e&&h.area?r("div",{class:"vxe-table--cell-area"},[r("span",{class:"vxe-table--cell-main-area"}),r("span",{class:"vxe-table--cell-copy-area"}),r("span",{class:"vxe-table--cell-extend-area"}),r("span",{class:"vxe-table--cell-multi-area"}),r("span",{class:"vxe-table--cell-active-area"}),r("span",{class:"vxe-table--cell-col-status-area"})]):renderEmptyElement(l)])])])},methods:{uploadColumn(){var e=this.$parent;this.headerColumn=e.isGroup?(0,_util.convertHeaderColumnToRows)(this.tableGroupColumn):[]}}};
|