vxe-table 3.12.9 → 3.12.10-beta.1
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/grid/src/grid.js +6 -1
- package/es/index.css +1 -1
- package/es/index.min.css +1 -1
- package/es/locale/lang/ko-KR.js +515 -515
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/module/export/mixin.js +3 -3
- package/es/table/module/filter/mixin.js +3 -3
- package/es/table/module/keyboard/mixin.js +4 -4
- package/es/table/module/menu/mixin.js +2 -2
- package/es/table/module/validator/mixin.js +2 -2
- package/es/table/src/body.js +247 -351
- package/es/table/src/footer.js +135 -154
- package/es/table/src/header.js +120 -100
- package/es/table/src/methods.js +1192 -797
- package/es/table/src/props.js +9 -3
- package/es/table/src/table.js +187 -103
- package/es/table/src/util.js +16 -7
- package/es/table/style.css +146 -63
- package/es/table/style.min.css +1 -1
- package/es/ui/index.js +14 -4
- package/es/ui/src/log.js +1 -1
- package/es/vxe-table/style.css +146 -63
- package/es/vxe-table/style.min.css +1 -1
- package/lib/grid/src/grid.js +4 -1
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/index.css +1 -1
- package/lib/index.min.css +1 -1
- package/lib/index.umd.js +1917 -1550
- package/lib/index.umd.min.js +1 -1
- package/lib/locale/lang/ko-KR.js +515 -515
- package/lib/locale/lang/ko-KR.min.js +1 -1
- package/lib/locale/lang/ko-KR.umd.js +515 -515
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table/module/export/mixin.js +3 -3
- package/lib/table/module/export/mixin.min.js +1 -1
- package/lib/table/module/filter/mixin.js +4 -4
- package/lib/table/module/filter/mixin.min.js +1 -1
- package/lib/table/module/keyboard/mixin.js +5 -5
- package/lib/table/module/keyboard/mixin.min.js +1 -1
- package/lib/table/module/menu/mixin.js +2 -2
- package/lib/table/module/menu/mixin.min.js +1 -1
- package/lib/table/module/validator/mixin.js +2 -2
- package/lib/table/module/validator/mixin.min.js +1 -1
- package/lib/table/src/body.js +185 -365
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/footer.js +124 -151
- package/lib/table/src/footer.min.js +1 -1
- package/lib/table/src/header.js +97 -74
- package/lib/table/src/header.min.js +1 -1
- package/lib/table/src/methods.js +1282 -840
- package/lib/table/src/methods.min.js +1 -1
- package/lib/table/src/props.js +9 -3
- package/lib/table/src/props.min.js +1 -1
- package/lib/table/src/table.js +171 -90
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +17 -7
- package/lib/table/src/util.min.js +1 -1
- package/lib/table/style/style.css +146 -63
- package/lib/table/style/style.min.css +1 -1
- package/lib/ui/index.js +14 -4
- 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 +146 -63
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +2 -2
- package/packages/grid/src/grid.ts +6 -1
- package/packages/locale/lang/ko-KR.ts +515 -515
- package/packages/table/module/export/mixin.ts +3 -3
- package/packages/table/module/filter/mixin.ts +3 -3
- package/packages/table/module/keyboard/mixin.ts +4 -4
- package/packages/table/module/menu/mixin.ts +2 -2
- package/packages/table/module/validator/mixin.ts +2 -2
- package/packages/table/src/body.ts +281 -427
- package/packages/table/src/footer.ts +148 -164
- package/packages/table/src/header.ts +135 -111
- package/packages/table/src/methods.ts +1271 -858
- package/packages/table/src/props.ts +9 -3
- package/packages/table/src/table.ts +195 -146
- package/packages/table/src/util.ts +17 -7
- package/packages/ui/index.ts +13 -3
- package/styles/components/table.scss +164 -74
- /package/es/{iconfont.1736414871619.ttf → iconfont.1736690657500.ttf} +0 -0
- /package/es/{iconfont.1736414871619.woff → iconfont.1736690657500.woff} +0 -0
- /package/es/{iconfont.1736414871619.woff2 → iconfont.1736690657500.woff2} +0 -0
- /package/lib/{iconfont.1736414871619.ttf → iconfont.1736690657500.ttf} +0 -0
- /package/lib/{iconfont.1736414871619.woff → iconfont.1736690657500.woff} +0 -0
- /package/lib/{iconfont.1736414871619.woff2 → iconfont.1736690657500.woff2} +0 -0
package/lib/table/src/header.js
CHANGED
|
@@ -16,12 +16,16 @@ const {
|
|
|
16
16
|
renderEmptyElement
|
|
17
17
|
} = _ui.VxeUI;
|
|
18
18
|
const cellType = 'header';
|
|
19
|
-
const renderRows = (h, _vm, cols, $rowIndex) => {
|
|
19
|
+
const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
|
|
20
|
+
const props = _vm;
|
|
20
21
|
const $xeTable = _vm.$parent;
|
|
21
22
|
const $xeGrid = $xeTable.xegrid;
|
|
23
|
+
const tableProps = $xeTable;
|
|
24
|
+
const tableReactData = $xeTable;
|
|
25
|
+
const tableInternalData = $xeTable;
|
|
22
26
|
const {
|
|
23
27
|
fixedType
|
|
24
|
-
} =
|
|
28
|
+
} = props;
|
|
25
29
|
const {
|
|
26
30
|
resizable: allResizable,
|
|
27
31
|
border,
|
|
@@ -31,14 +35,18 @@ const renderRows = (h, _vm, cols, $rowIndex) => {
|
|
|
31
35
|
showHeaderOverflow: allColumnHeaderOverflow,
|
|
32
36
|
headerAlign: allHeaderAlign,
|
|
33
37
|
align: allAlign,
|
|
38
|
+
mouseConfig
|
|
39
|
+
} = tableProps;
|
|
40
|
+
const {
|
|
34
41
|
currentColumn,
|
|
35
42
|
scrollXLoad,
|
|
36
43
|
scrollYLoad,
|
|
37
|
-
overflowX
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
} =
|
|
44
|
+
overflowX
|
|
45
|
+
} = tableReactData;
|
|
46
|
+
const {
|
|
47
|
+
scrollXStore
|
|
48
|
+
} = tableInternalData;
|
|
49
|
+
const columnOpts = $xeTable.computeColumnOpts;
|
|
42
50
|
const columnDragOpts = $xeTable.computeColumnDragOpts;
|
|
43
51
|
const {
|
|
44
52
|
disabledMethod: dragDisabledMethod,
|
|
@@ -122,6 +130,10 @@ const renderRows = (h, _vm, cols, $rowIndex) => {
|
|
|
122
130
|
}
|
|
123
131
|
}
|
|
124
132
|
const isAutoCellWidth = !column.resizeWidth && (column.minWidth === 'auto' || column.width === 'auto');
|
|
133
|
+
let isPreLoadStatus = false;
|
|
134
|
+
if (scrollXLoad && !isGroup && !column.fixed && (_columnIndex < scrollXStore.visibleStartIndex || _columnIndex > scrollXStore.visibleEndIndex)) {
|
|
135
|
+
isPreLoadStatus = true;
|
|
136
|
+
}
|
|
125
137
|
return h('th', {
|
|
126
138
|
class: ['vxe-header--column', colid, {
|
|
127
139
|
[`col--${headAlign}`]: headAlign,
|
|
@@ -140,7 +152,7 @@ const renderRows = (h, _vm, cols, $rowIndex) => {
|
|
|
140
152
|
'col--current': currentColumn === column
|
|
141
153
|
}, (0, _utils.getClass)(headerClassName, params), (0, _utils.getClass)(headerCellClassName, params)],
|
|
142
154
|
attrs: thAttrs,
|
|
143
|
-
style: headerCellStyle ? _xeUtils.default.isFunction(headerCellStyle) ? headerCellStyle(params) : headerCellStyle :
|
|
155
|
+
style: headerCellStyle ? _xeUtils.default.isFunction(headerCellStyle) ? headerCellStyle(params) : headerCellStyle : undefined,
|
|
144
156
|
on: thOns,
|
|
145
157
|
key: columnKey || scrollXLoad || scrollYLoad || columnOpts.useKey || columnOpts.drag || isColGroup ? colid : $columnIndex
|
|
146
158
|
}, [h('div', {
|
|
@@ -149,7 +161,7 @@ const renderRows = (h, _vm, cols, $rowIndex) => {
|
|
|
149
161
|
'c--tooltip': showTooltip,
|
|
150
162
|
'c--ellipsis': showEllipsis
|
|
151
163
|
}]
|
|
152
|
-
}, column.renderHeader(h, params)),
|
|
164
|
+
}, isPreLoadStatus || isOptimizeMode && fixedHiddenColumn ? [] : column.renderHeader(h, params)),
|
|
153
165
|
/**
|
|
154
166
|
* 列宽拖动
|
|
155
167
|
*/
|
|
@@ -162,17 +174,16 @@ const renderRows = (h, _vm, cols, $rowIndex) => {
|
|
|
162
174
|
dblclick: evnt => $xeTable.handleResizeDblclickEvent(evnt, params)
|
|
163
175
|
}
|
|
164
176
|
}) : null]);
|
|
165
|
-
})
|
|
166
|
-
key: `gr${$rowIndex}`,
|
|
167
|
-
class: 'vxe-header--gutter col--gutter'
|
|
168
|
-
})] : []);
|
|
177
|
+
});
|
|
169
178
|
};
|
|
170
|
-
function renderHeads(h, _vm, headerGroups) {
|
|
179
|
+
function renderHeads(h, _vm, isGroup, isOptimizeMode, headerGroups) {
|
|
180
|
+
const props = _vm;
|
|
171
181
|
const $xeTable = _vm.$parent;
|
|
172
182
|
const tableProps = $xeTable;
|
|
183
|
+
const tableReactData = $xeTable;
|
|
173
184
|
const {
|
|
174
185
|
fixedType
|
|
175
|
-
} =
|
|
186
|
+
} = props;
|
|
176
187
|
const columnOpts = $xeTable.computeColumnOpts;
|
|
177
188
|
const columnDragOpts = $xeTable.computeColumnDragOpts;
|
|
178
189
|
const {
|
|
@@ -181,7 +192,7 @@ function renderHeads(h, _vm, headerGroups) {
|
|
|
181
192
|
} = tableProps;
|
|
182
193
|
const {
|
|
183
194
|
isDragColMove
|
|
184
|
-
} =
|
|
195
|
+
} = tableReactData;
|
|
185
196
|
return headerGroups.map((cols, $rowIndex) => {
|
|
186
197
|
const params = {
|
|
187
198
|
$table: $xeTable,
|
|
@@ -198,13 +209,13 @@ function renderHeads(h, _vm, headerGroups) {
|
|
|
198
209
|
class: ['vxe-header--row', headerRowClassName ? _xeUtils.default.isFunction(headerRowClassName) ? headerRowClassName(params) : headerRowClassName : ''],
|
|
199
210
|
style: headerRowStyle ? _xeUtils.default.isFunction(headerRowStyle) ? headerRowStyle(params) : headerRowStyle : null
|
|
200
211
|
}
|
|
201
|
-
}, renderRows(h, _vm, cols, $rowIndex));
|
|
212
|
+
}, renderRows(h, _vm, isGroup, isOptimizeMode, cols, $rowIndex));
|
|
202
213
|
}
|
|
203
214
|
return h('tr', {
|
|
204
215
|
key: $rowIndex,
|
|
205
216
|
class: ['vxe-header--row', headerRowClassName ? _xeUtils.default.isFunction(headerRowClassName) ? headerRowClassName(params) : headerRowClassName : ''],
|
|
206
|
-
style: headerRowStyle ? _xeUtils.default.isFunction(headerRowStyle) ? headerRowStyle(params) : headerRowStyle :
|
|
207
|
-
}, renderRows(h, _vm, cols, $rowIndex));
|
|
217
|
+
style: headerRowStyle ? _xeUtils.default.isFunction(headerRowStyle) ? headerRowStyle(params) : headerRowStyle : undefined
|
|
218
|
+
}, renderRows(h, _vm, isGroup, isOptimizeMode, cols, $rowIndex));
|
|
208
219
|
});
|
|
209
220
|
}
|
|
210
221
|
var _default = exports.default = {
|
|
@@ -214,8 +225,10 @@ var _default = exports.default = {
|
|
|
214
225
|
tableColumn: Array,
|
|
215
226
|
tableGroupColumn: Array,
|
|
216
227
|
fixedColumn: Array,
|
|
217
|
-
|
|
218
|
-
|
|
228
|
+
fixedType: {
|
|
229
|
+
type: String,
|
|
230
|
+
default: null
|
|
231
|
+
}
|
|
219
232
|
},
|
|
220
233
|
data() {
|
|
221
234
|
return {
|
|
@@ -231,33 +244,38 @@ var _default = exports.default = {
|
|
|
231
244
|
this.uploadColumn();
|
|
232
245
|
},
|
|
233
246
|
mounted() {
|
|
247
|
+
const _vm = this;
|
|
248
|
+
const props = _vm;
|
|
249
|
+
const $xeTable = _vm.$parent;
|
|
250
|
+
const internalData = $xeTable;
|
|
234
251
|
const {
|
|
235
|
-
$parent: $xetable,
|
|
236
|
-
$el,
|
|
237
|
-
$refs,
|
|
238
252
|
fixedType
|
|
239
|
-
} =
|
|
253
|
+
} = props;
|
|
240
254
|
const {
|
|
241
255
|
elemStore
|
|
242
|
-
} =
|
|
256
|
+
} = internalData;
|
|
243
257
|
const prefix = `${fixedType || 'main'}-header-`;
|
|
244
|
-
elemStore[`${prefix}wrapper`] =
|
|
245
|
-
elemStore[`${prefix}
|
|
246
|
-
elemStore[`${prefix}
|
|
247
|
-
elemStore[`${prefix}
|
|
248
|
-
elemStore[`${prefix}
|
|
249
|
-
elemStore[`${prefix}
|
|
258
|
+
elemStore[`${prefix}wrapper`] = _vm.$refs.refElem;
|
|
259
|
+
elemStore[`${prefix}scroll`] = _vm.$refs.refHeaderScroll;
|
|
260
|
+
elemStore[`${prefix}table`] = _vm.$refs.refHeaderTable;
|
|
261
|
+
elemStore[`${prefix}colgroup`] = _vm.$refs.refHeaderColgroup;
|
|
262
|
+
elemStore[`${prefix}list`] = _vm.$refs.refHeaderTHead;
|
|
263
|
+
elemStore[`${prefix}xSpace`] = _vm.$refs.refHeaderXSpace;
|
|
264
|
+
elemStore[`${prefix}repair`] = _vm.$refs.refHeaderBorderRepair;
|
|
250
265
|
},
|
|
251
266
|
destroyed() {
|
|
267
|
+
const props = this;
|
|
268
|
+
const $xeTable = this.$parent;
|
|
269
|
+
const internalData = $xeTable;
|
|
252
270
|
const {
|
|
253
|
-
$parent: $xetable,
|
|
254
271
|
fixedType
|
|
255
|
-
} =
|
|
272
|
+
} = props;
|
|
256
273
|
const {
|
|
257
274
|
elemStore
|
|
258
|
-
} =
|
|
275
|
+
} = internalData;
|
|
259
276
|
const prefix = `${fixedType || 'main'}-header-`;
|
|
260
277
|
elemStore[`${prefix}wrapper`] = null;
|
|
278
|
+
elemStore[`${prefix}scroll`] = null;
|
|
261
279
|
elemStore[`${prefix}table`] = null;
|
|
262
280
|
elemStore[`${prefix}colgroup`] = null;
|
|
263
281
|
elemStore[`${prefix}list`] = null;
|
|
@@ -271,7 +289,7 @@ var _default = exports.default = {
|
|
|
271
289
|
const tableReactData = $xeTable;
|
|
272
290
|
const tableInternalData = $xeTable;
|
|
273
291
|
const {
|
|
274
|
-
|
|
292
|
+
xID
|
|
275
293
|
} = $xeTable;
|
|
276
294
|
const {
|
|
277
295
|
fixedType,
|
|
@@ -290,7 +308,6 @@ var _default = exports.default = {
|
|
|
290
308
|
isGroup,
|
|
291
309
|
scrollXLoad,
|
|
292
310
|
scrollYLoad,
|
|
293
|
-
scrollbarWidth,
|
|
294
311
|
dragCol
|
|
295
312
|
} = tableReactData;
|
|
296
313
|
const {
|
|
@@ -299,20 +316,23 @@ var _default = exports.default = {
|
|
|
299
316
|
} = tableInternalData;
|
|
300
317
|
let renderHeaderList = headerColumn;
|
|
301
318
|
let renderColumnList = tableColumn;
|
|
319
|
+
let isOptimizeMode = false;
|
|
302
320
|
if (isGroup) {
|
|
303
321
|
renderColumnList = visibleColumn;
|
|
304
322
|
} else {
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
if (
|
|
323
|
+
// 如果是使用优化模式
|
|
324
|
+
if (scrollXLoad || scrollYLoad || allColumnHeaderOverflow) {
|
|
325
|
+
if (spanMethod || footerSpanMethod) {
|
|
308
326
|
// 如果不支持优化模式
|
|
309
|
-
if (spanMethod || footerSpanMethod) {
|
|
310
|
-
renderColumnList = visibleColumn;
|
|
311
|
-
} else {
|
|
312
|
-
renderColumnList = fixedColumn || [];
|
|
313
|
-
}
|
|
314
327
|
} else {
|
|
315
|
-
|
|
328
|
+
isOptimizeMode = true;
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
if (fixedType) {
|
|
332
|
+
renderColumnList = visibleColumn;
|
|
333
|
+
// 如果是使用优化模式
|
|
334
|
+
if (isOptimizeMode) {
|
|
335
|
+
renderColumnList = fixedColumn || [];
|
|
316
336
|
}
|
|
317
337
|
}
|
|
318
338
|
renderHeaderList = [renderColumnList];
|
|
@@ -331,7 +351,6 @@ var _default = exports.default = {
|
|
|
331
351
|
if (firstColRest && lastColRest) {
|
|
332
352
|
const fcIndex = firstColRest._index;
|
|
333
353
|
const lcIndex = lastColRest._index;
|
|
334
|
-
console.log(dragCol.id, dcIndex, fcIndex, lcIndex, renderColumnList.length);
|
|
335
354
|
if (dcIndex < fcIndex) {
|
|
336
355
|
renderColumnList = [dragCol].concat(renderColumnList);
|
|
337
356
|
renderHeaderList = [[dragCol].concat(renderHeaderList[0])].concat(renderHeaderList.slice(1));
|
|
@@ -339,35 +358,43 @@ var _default = exports.default = {
|
|
|
339
358
|
renderColumnList = renderColumnList.concat([dragCol]);
|
|
340
359
|
renderHeaderList = [renderHeaderList[0].concat([dragCol])].concat(renderHeaderList.slice(1));
|
|
341
360
|
}
|
|
342
|
-
console.log(renderColumnList.length);
|
|
343
361
|
}
|
|
344
362
|
}
|
|
345
363
|
}
|
|
346
364
|
}
|
|
347
365
|
}
|
|
348
366
|
return h('div', {
|
|
367
|
+
ref: 'refElem',
|
|
349
368
|
class: ['vxe-table--header-wrapper', fixedType ? `fixed-${fixedType}--wrapper` : 'body--wrapper'],
|
|
350
369
|
attrs: {
|
|
351
|
-
xid:
|
|
370
|
+
xid: xID
|
|
371
|
+
}
|
|
372
|
+
}, [h('div', {
|
|
373
|
+
ref: 'refHeaderScroll',
|
|
374
|
+
class: 'vxe-table--header-inner-wrapper',
|
|
375
|
+
on: {
|
|
376
|
+
scroll(evnt) {
|
|
377
|
+
$xeTable.triggerHeaderScrollEvent(evnt, fixedType);
|
|
378
|
+
}
|
|
352
379
|
}
|
|
353
380
|
}, [fixedType ? renderEmptyElement($xeTable) : h('div', {
|
|
354
|
-
|
|
355
|
-
|
|
381
|
+
ref: 'refHeaderXSpace',
|
|
382
|
+
class: 'vxe-body--x-space'
|
|
356
383
|
}), h('table', {
|
|
384
|
+
ref: 'refHeaderTable',
|
|
357
385
|
class: 'vxe-table--header',
|
|
358
386
|
attrs: {
|
|
359
|
-
xid:
|
|
387
|
+
xid: xID,
|
|
360
388
|
cellspacing: 0,
|
|
361
389
|
cellpadding: 0,
|
|
362
390
|
border: 0
|
|
363
|
-
}
|
|
364
|
-
ref: 'table'
|
|
391
|
+
}
|
|
365
392
|
}, [
|
|
366
393
|
/**
|
|
367
394
|
* 列宽
|
|
368
395
|
*/
|
|
369
396
|
h('colgroup', {
|
|
370
|
-
ref: '
|
|
397
|
+
ref: 'refHeaderColgroup'
|
|
371
398
|
}, renderColumnList.map((column, $columnIndex) => {
|
|
372
399
|
return h('col', {
|
|
373
400
|
attrs: {
|
|
@@ -375,24 +402,20 @@ var _default = exports.default = {
|
|
|
375
402
|
},
|
|
376
403
|
key: $columnIndex
|
|
377
404
|
});
|
|
378
|
-
})
|
|
379
|
-
attrs: {
|
|
380
|
-
name: 'col_gutter'
|
|
381
|
-
}
|
|
382
|
-
})] : [])),
|
|
405
|
+
})),
|
|
383
406
|
/**
|
|
384
407
|
* 头部
|
|
385
408
|
*/
|
|
386
409
|
h('thead', {
|
|
387
|
-
ref: '
|
|
388
|
-
}, renderHeads(h, this, renderHeaderList))]),
|
|
410
|
+
ref: 'refHeaderTHead'
|
|
411
|
+
}, renderHeads(h, this, isGroup, isOptimizeMode, renderHeaderList))]),
|
|
389
412
|
/**
|
|
390
413
|
* 其他
|
|
391
414
|
*/
|
|
392
415
|
h('div', {
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
})]);
|
|
416
|
+
ref: 'refHeaderBorderRepair',
|
|
417
|
+
class: 'vxe-table--header-border-line'
|
|
418
|
+
})])]);
|
|
396
419
|
},
|
|
397
420
|
methods: {
|
|
398
421
|
uploadColumn() {
|
|
@@ -415,12 +438,12 @@ var _default = exports.default = {
|
|
|
415
438
|
visibleColumn
|
|
416
439
|
} = tableInternalData;
|
|
417
440
|
const {
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
441
|
+
refTableBody,
|
|
442
|
+
refLeftContainer,
|
|
443
|
+
refRightContainer
|
|
421
444
|
} = $xetable.$refs;
|
|
422
445
|
const tableEl = $xeTable.$el;
|
|
423
|
-
const resizeBarElem = $xetable.$refs.
|
|
446
|
+
const resizeBarElem = $xetable.$refs.refCellResizeBar;
|
|
424
447
|
const resizeTipElem = $xetable.$refs.refCellResizeTip;
|
|
425
448
|
const wrapperElem = this.$el;
|
|
426
449
|
const {
|
|
@@ -433,7 +456,7 @@ var _default = exports.default = {
|
|
|
433
456
|
});
|
|
434
457
|
const resizableOpts = $xeTable.computeResizableOpts;
|
|
435
458
|
let dragLeft = 0;
|
|
436
|
-
const tableBodyElem =
|
|
459
|
+
const tableBodyElem = refTableBody.$el;
|
|
437
460
|
const pos = (0, _dom.getOffsetPos)(dragBtnElem, tableEl);
|
|
438
461
|
const dragBtnWidth = dragBtnElem.clientWidth;
|
|
439
462
|
const dragBtnOffsetWidth = Math.floor(dragBtnWidth / 2);
|
|
@@ -457,8 +480,8 @@ var _default = exports.default = {
|
|
|
457
480
|
}
|
|
458
481
|
tempCellElem = tempCellElem[siblingProp];
|
|
459
482
|
}
|
|
460
|
-
if (isRightFixed &&
|
|
461
|
-
dragPosLeft =
|
|
483
|
+
if (isRightFixed && refRightContainer) {
|
|
484
|
+
dragPosLeft = refRightContainer.offsetLeft + fixedOffsetWidth;
|
|
462
485
|
}
|
|
463
486
|
}
|
|
464
487
|
// 处理拖动事件
|
|
@@ -470,10 +493,10 @@ var _default = exports.default = {
|
|
|
470
493
|
const scrollLeft = fixedType ? 0 : tableBodyElem.scrollLeft;
|
|
471
494
|
if (isLeftFixed) {
|
|
472
495
|
// 左固定列(不允许超过右侧固定列、不允许超过右边距)
|
|
473
|
-
left = Math.min(left, (
|
|
496
|
+
left = Math.min(left, (refRightContainer ? refRightContainer.offsetLeft : tableBodyElem.clientWidth) - fixedOffsetWidth - minInterval);
|
|
474
497
|
} else if (isRightFixed) {
|
|
475
498
|
// 右侧固定列(不允许超过左侧固定列、不允许超过左边距)
|
|
476
|
-
dragMinLeft = (
|
|
499
|
+
dragMinLeft = (refLeftContainer ? refLeftContainer.clientWidth : 0) + fixedOffsetWidth + minInterval;
|
|
477
500
|
left = Math.min(left, dragPosLeft + cell.clientWidth - minInterval);
|
|
478
501
|
} else {
|
|
479
502
|
dragMinLeft = Math.max(tableBodyElem.scrollLeft, dragMinLeft);
|
|
@@ -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"),_dom=require("../../ui/src/dom"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,renderer,renderEmptyElement}=_ui.VxeUI,cellType="header",renderRows=(
|
|
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"),_dom=require("../../ui/src/dom"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,renderer,renderEmptyElement}=_ui.VxeUI,cellType="header",renderRows=(_,w,H,$,z,T)=>{let D=w.$parent,E=D.xegrid;var e=D,l=D,r=D;let R=w.fixedType,{resizable:S,border:M,columnKey:W,headerCellClassName:I,headerCellStyle:O,showHeaderOverflow:k,headerAlign:U,align:A,mouseConfig:L}=e,{currentColumn:X,scrollXLoad:q,scrollYLoad:F,overflowX:B}=l,N=r.scrollXStore,j=D.computeColumnOpts,G=D.computeColumnDragOpts,{disabledMethod:P,isCrossDrag:V,isPeerDrag:Y}=G;return z.map((e,l)=>{var{type:r,showHeaderOverflow:t,headerAlign:a,align:i,filters:d,headerClassName:n,editRender:o,cellRender:s}=e,u=e.id,o=o||s,s=o?renderer.get(o.name):null,o=e.children&&e.children.length,c=R?e.fixed!==R&&!o:e.fixed&&B,t=_xeUtils.default.isUndefined(t)||_xeUtils.default.isNull(t)?k:t,a=a||(s?s.tableHeaderCellAlign:"")||U||i||(s?s.tableCellAlign:"")||A;let p="ellipsis"===t;i="title"===t,s=!0===t||"tooltip"===t;let f=i||s||p,m=!1,h=null;d&&(h=d[0],m=d.some(e=>e.checked));var t=D.getColumnIndex(e),g=D.getVTColumnIndex(e);let v={$table:D,$grid:E,$rowIndex:T,column:e,columnIndex:t,$columnIndex:l,_columnIndex:g,firstFilterOption:h,fixed:R,type:cellType,isHidden:c,hasFilter:m};var t={colid:u,colspan:1<e.colSpan?e.colSpan:null,rowspan:1<e.rowSpan?e.rowSpan:null},x={click:e=>D.triggerHeaderCellClickEvent(e,v),dblclick:e=>D.triggerHeaderCellDblclickEvent(e,v)},C=(q&&!f&&(p=f=!0),j.drag&&"cell"===G.trigger);let b=!1;C&&(b=!(!P||!P(v))),(L||C)&&(x.mousedown=e=>D.triggerHeaderCellMousedownEvent(e,v)),j.drag&&(x.dragstart=D.handleHeaderCellDragDragstartEvent,x.dragend=D.handleHeaderCellDragDragendEvent,x.dragover=D.handleHeaderCellDragDragoverEvent,C)&&(x.mouseup=D.handleHeaderCellDragMouseupEvent);C=!e.resizeWidth&&("auto"===e.minWidth||"auto"===e.width);let y=!1;return q&&!H&&!e.fixed&&(g<N.visibleStartIndex||g>N.visibleEndIndex)&&(y=!0),_("th",{class:["vxe-header--column",u,{["col--"+a]:a,["col--"+r]:r,"col--last":l===z.length-1,"col--fixed":e.fixed,"col--group":o,"col--ellipsis":f,"fixed--width":!C,"fixed--hidden":c,"is--sortable":e.sortable,"col--filter":!!d,"is--filter-active":m,"is--drag-active":!e.fixed&&!b&&(V||Y||!e.parentId),"is--drag-disabled":b,"col--current":X===e},(0,_utils.getClass)(n,v),(0,_utils.getClass)(I,v)],attrs:t,style:O?_xeUtils.default.isFunction(O)?O(v):O:void 0,on:x,key:W||q||F||j.useKey||j.drag||o?u:l},[_("div",{class:["vxe-cell",{"c--title":i,"c--tooltip":s,"c--ellipsis":p}]},y||$&&c?[]:e.renderHeader(_,v)),c||o||!(_xeUtils.default.isBoolean(e.resizable)?e.resizable:j.resizable||S)?null:_("div",{class:["vxe-resizable",{"is--line":!M||"none"===M}],on:{mousedown:e=>w.resizeMousedownEvent(e,v),dblclick:e=>D.handleResizeDblclickEvent(e,v)}})])})};function renderHeads(t,a,i,d,e){let n=a.$parent;var l=n,r=n;let o=a.fixedType,s=n.computeColumnOpts,u=n.computeColumnDragOpts,{headerRowClassName:c,headerRowStyle:p}=l,f=r.isDragColMove;return e.map((e,l)=>{var r={$table:n,$rowIndex:l,fixed:o,type:cellType};return s.drag&&u.animation?t("transition-group",{key:l,props:{tag:"tr",name:"vxe-header--col-list"+(f?"":"-disabled"),class:["vxe-header--row",c?_xeUtils.default.isFunction(c)?c(r):c:""],style:p?_xeUtils.default.isFunction(p)?p(r):p:null}},renderRows(t,a,i,d,e,l)):t("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(t,a,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,t=l,a=l,i=l.xID;let{fixedType:d,fixedColumn:n,tableColumn:o}=this;var s=this.headerColumn,{showHeaderOverflow:e,spanMethod:u,footerSpanMethod:c}=e,{isGroup:t,scrollXLoad:p,scrollYLoad:f,dragCol:m}=t,{visibleColumn:a,fullColumnIdData:h}=a;let g=s,v=o,x=!1;return t?v=a:(!(p||f||e)||u||c||(x=!0),d&&(v=a,x)&&(v=n||[]),g=[v]),d||t||p&&m&&2<v.length&&(s=h[m.id])&&(f=s._index,e=v[0],u=v[v.length-1],c=h[e.id],a=h[u.id],c)&&a&&(p=c._index,s=a._index,f<p?(v=[m].concat(v),g=[[m].concat(g[0])].concat(g.slice(1))):s<f&&(v=v.concat([m]),g=[g[0].concat([m])].concat(g.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"},v.map((e,l)=>r("col",{attrs:{name:e.id},key:l}))),r("thead",{ref:"refHeaderTHead"},renderHeads(r,this,t,x,g))]),r("div",{ref:"refHeaderBorderRepair",class:"vxe-table--header-border-line"})])])},methods:{uploadColumn(){var e=this.$parent;this.headerColumn=e.isGroup?(0,_util.convertHeaderColumnToRows)(this.tableGroupColumn):[]},resizeMousedownEvent(e,r){var l=this.$parent;let o=r.column,{$parent:t,fixedType:s}=this,a=l.visibleColumn,{refTableBody:i,refLeftContainer:u,refRightContainer:c}=t.$refs,p=l.$el,f=t.$refs.refCellResizeBar,m=t.$refs.refCellResizeTip,h=this.$el,g=e.clientX;var d=e.target;let v=d.parentNode;var n=Object.assign(r,{cell:v});let x=l.computeResizableOpts,C=0,b=i.$el;var l=(0,_dom.getOffsetPos)(d,p),d=d.clientWidth,y=Math.floor(d/2);let _=(0,_util.getColReMinWidth)(n)-y,w=l.left-v.clientWidth+d+_,H=l.left+y,$=document.onmousemove,z=document.onmouseup,T="left"===s,D="right"===s,E=0;if(T||D){var R=T?"nextElementSibling":"previousElementSibling";let e=v[R];for(;e&&!(0,_dom.hasClass)(e,"fixed--hidden");)(0,_dom.hasClass)(e,"col--group")||(E+=e.offsetWidth),e=e[R];D&&c&&(H=c.offsetLeft+E)}function S(l){l.stopPropagation(),l.preventDefault();var r=l.clientX-g;let e=H+r;if(r=s?0:b.scrollLeft,T?e=Math.min(e,(c?c.offsetLeft:b.clientWidth)-E-_):D?(w=(u?u.clientWidth:0)+E+_,e=Math.min(e,H+v.clientWidth-_)):w=Math.max(b.scrollLeft,w),r=(C=Math.max(e,w))-r,f.style.left=r+"px",x.showDragTip&&m){var t=p.clientWidth,a=h.getBoundingClientRect(),i=f.clientWidth,d=m.clientWidth,n=m.clientHeight;let e=-d;r<d+i?e=d+i-r:t<r&&(e+=t-r),m.style.left=e+"px",m.style.top=Math.min(p.clientHeight-n,Math.max(0,l.clientY-a.y-n/2))+"px",m.textContent=getI18n("vxe.table.resizeColTip",[o.renderWidth+(D?H-C:C-H)])}}t._isResize=!0,(0,_dom.addClass)(t.$el,"drag--resize"),f.style.display="block",document.onmousemove=S,document.onmouseup=function(e){document.onmousemove=$,document.onmouseup=z;let l=o.renderWidth+(D?H-C:C-H);o.resizeWidth=l,"fixed"===x.dragMode&&a.forEach(e=>{e.id===o.id||e.resizeWidth||(e.resizeWidth=e.renderWidth)}),f.style.display="none",t._isResize=!1,t._lastResizeTime=Date.now(),t.analyColumnWidth(),t.recalculate(!0).then(()=>{t.saveCustomStore("update:visible"),t.updateCellAreas(),t.emitEvent("resizable-change",Object.assign(Object.assign({},r),{resizeWidth:l}),e),setTimeout(()=>t.recalculate(!0),300)}),(0,_dom.removeClass)(t.$el,"drag--resize")},S(e),t.closeMenu()}}};
|