vxe-table 3.12.10-beta.2 → 3.12.10-beta.21
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 +2 -1
- 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 +55 -32
- package/es/table/module/keyboard/mixin.js +68 -25
- package/es/table/module/menu/mixin.js +3 -1
- package/es/table/src/body.js +96 -64
- package/es/table/src/cell.js +3 -7
- package/es/table/src/column.js +2 -0
- package/es/table/src/columnInfo.js +1 -0
- package/es/table/src/footer.js +31 -6
- package/es/table/src/header.js +45 -141
- package/es/table/src/methods.js +918 -456
- package/es/table/src/props.js +6 -2
- package/es/table/src/table.js +299 -149
- package/es/table/src/util.js +67 -57
- package/es/table/style.css +299 -191
- package/es/table/style.min.css +1 -1
- package/es/ui/index.js +20 -10
- package/es/ui/src/log.js +1 -1
- package/es/vxe-table/style.css +299 -191
- 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 +1735 -1025
- 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 +2 -1
- package/lib/locale/lang/en-US.min.js +1 -1
- package/lib/locale/lang/en-US.umd.js +2 -1
- 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 +12 -2
- package/lib/table/module/edit/mixin.min.js +1 -1
- package/lib/table/module/export/mixin.js +52 -27
- 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 +89 -60
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/cell.js +3 -5
- package/lib/table/src/cell.min.js +1 -1
- package/lib/table/src/column.js +2 -0
- package/lib/table/src/column.min.js +1 -1
- package/lib/table/src/columnInfo.js +1 -0
- package/lib/table/src/columnInfo.min.js +1 -1
- package/lib/table/src/footer.js +26 -6
- package/lib/table/src/footer.min.js +1 -1
- package/lib/table/src/header.js +38 -153
- package/lib/table/src/header.min.js +1 -1
- package/lib/table/src/methods.js +1076 -551
- package/lib/table/src/methods.min.js +1 -1
- package/lib/table/src/props.js +6 -2
- package/lib/table/src/props.min.js +1 -1
- package/lib/table/src/table.js +269 -129
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +80 -70
- package/lib/table/src/util.min.js +1 -1
- package/lib/table/style/style.css +299 -191
- package/lib/table/style/style.min.css +1 -1
- package/lib/ui/index.js +20 -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 +299 -191
- 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 +2 -1
- 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 +50 -27
- package/packages/table/module/keyboard/mixin.ts +65 -24
- package/packages/table/module/menu/mixin.ts +4 -1
- package/packages/table/src/body.ts +102 -61
- package/packages/table/src/cell.ts +3 -7
- package/packages/table/src/column.ts +7 -2
- package/packages/table/src/columnInfo.ts +1 -0
- package/packages/table/src/footer.ts +31 -6
- package/packages/table/src/header.ts +45 -141
- package/packages/table/src/methods.ts +957 -461
- package/packages/table/src/props.ts +6 -2
- package/packages/table/src/table.ts +325 -149
- package/packages/table/src/util.ts +75 -62
- package/packages/ui/index.ts +21 -9
- package/styles/components/table.scss +352 -260
- 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.1736736807414.ttf → iconfont.1737182271148.ttf} +0 -0
- /package/es/{iconfont.1736736807414.woff → iconfont.1737182271148.woff} +0 -0
- /package/es/{iconfont.1736736807414.woff2 → iconfont.1737182271148.woff2} +0 -0
- /package/lib/{iconfont.1736736807414.ttf → iconfont.1737182271148.ttf} +0 -0
- /package/lib/{iconfont.1736736807414.woff → iconfont.1737182271148.woff} +0 -0
- /package/lib/{iconfont.1736736807414.woff2 → iconfont.1737182271148.woff2} +0 -0
package/es/table/src/props.js
CHANGED
|
@@ -29,10 +29,10 @@ export default {
|
|
|
29
29
|
type: [Boolean, String],
|
|
30
30
|
default: () => getConfig().table.border
|
|
31
31
|
},
|
|
32
|
-
//
|
|
32
|
+
// 已废弃,被 cell-config.padding 替换
|
|
33
33
|
padding: {
|
|
34
34
|
type: Boolean,
|
|
35
|
-
default:
|
|
35
|
+
default: null
|
|
36
36
|
},
|
|
37
37
|
// 是否圆角边框
|
|
38
38
|
round: {
|
|
@@ -157,6 +157,10 @@ export default {
|
|
|
157
157
|
columnConfig: Object,
|
|
158
158
|
// 单元格配置信息
|
|
159
159
|
cellConfig: Object,
|
|
160
|
+
// 表头单元格配置信息
|
|
161
|
+
headerCellConfig: Object,
|
|
162
|
+
// 表尾单元格配置信息
|
|
163
|
+
footerCellConfig: Object,
|
|
160
164
|
// 行配置信息
|
|
161
165
|
rowConfig: Object,
|
|
162
166
|
// 已废弃,被 rowDragConfig 替换
|
package/es/table/src/table.js
CHANGED
|
@@ -165,12 +165,148 @@ const renderDragTip = (h, $xeTable) => {
|
|
|
165
165
|
}
|
|
166
166
|
return renderEmptyElement($xeTable);
|
|
167
167
|
};
|
|
168
|
-
function
|
|
168
|
+
function handleUpdateResize(_vm) {
|
|
169
169
|
const { $el } = _vm;
|
|
170
170
|
if ($el && $el.clientWidth && $el.clientHeight) {
|
|
171
171
|
_vm.recalculate();
|
|
172
172
|
}
|
|
173
173
|
}
|
|
174
|
+
function renderScrollX(h, $xeTable) {
|
|
175
|
+
return h('div', {
|
|
176
|
+
key: 'vsx',
|
|
177
|
+
ref: 'refScrollXVirtualElem',
|
|
178
|
+
class: 'vxe-table--scroll-x-virtual'
|
|
179
|
+
}, [
|
|
180
|
+
h('div', {
|
|
181
|
+
ref: 'refScrollXLeftCornerElem',
|
|
182
|
+
class: 'vxe-table--scroll-x-left-corner'
|
|
183
|
+
}),
|
|
184
|
+
h('div', {
|
|
185
|
+
ref: 'refScrollXWrapperElem',
|
|
186
|
+
class: 'vxe-table--scroll-x-wrapper'
|
|
187
|
+
}, [
|
|
188
|
+
h('div', {
|
|
189
|
+
ref: 'refScrollXHandleElem',
|
|
190
|
+
class: 'vxe-table--scroll-x-handle',
|
|
191
|
+
on: {
|
|
192
|
+
scroll: $xeTable.triggerVirtualScrollXEvent
|
|
193
|
+
}
|
|
194
|
+
}, [
|
|
195
|
+
h('div', {
|
|
196
|
+
ref: 'refScrollXSpaceElem',
|
|
197
|
+
class: 'vxe-table--scroll-x-space'
|
|
198
|
+
})
|
|
199
|
+
])
|
|
200
|
+
]),
|
|
201
|
+
h('div', {
|
|
202
|
+
ref: 'refScrollXRightCornerElem',
|
|
203
|
+
class: 'vxe-table--scroll-x-right-corner'
|
|
204
|
+
})
|
|
205
|
+
]);
|
|
206
|
+
}
|
|
207
|
+
function renderScrollY(h, $xeTable) {
|
|
208
|
+
return h('div', {
|
|
209
|
+
ref: 'refScrollYVirtualElem',
|
|
210
|
+
class: 'vxe-table--scroll-y-virtual'
|
|
211
|
+
}, [
|
|
212
|
+
h('div', {
|
|
213
|
+
ref: 'refScrollYTopCornerElem',
|
|
214
|
+
class: 'vxe-table--scroll-y-top-corner'
|
|
215
|
+
}),
|
|
216
|
+
h('div', {
|
|
217
|
+
ref: 'refScrollYWrapperElem',
|
|
218
|
+
class: 'vxe-table--scroll-y-wrapper'
|
|
219
|
+
}, [
|
|
220
|
+
h('div', {
|
|
221
|
+
ref: 'refScrollYHandleElem',
|
|
222
|
+
class: 'vxe-table--scroll-y-handle',
|
|
223
|
+
on: {
|
|
224
|
+
scroll: $xeTable.triggerVirtualScrollYEvent
|
|
225
|
+
}
|
|
226
|
+
}, [
|
|
227
|
+
h('div', {
|
|
228
|
+
ref: 'refScrollYSpaceElem',
|
|
229
|
+
class: 'vxe-table--scroll-y-space'
|
|
230
|
+
})
|
|
231
|
+
])
|
|
232
|
+
]),
|
|
233
|
+
h('div', {
|
|
234
|
+
ref: 'refScrollYBottomCornerElem',
|
|
235
|
+
class: 'vxe-table--scroll-y-bottom-corner'
|
|
236
|
+
})
|
|
237
|
+
]);
|
|
238
|
+
}
|
|
239
|
+
function renderViewport(h, $xeTable) {
|
|
240
|
+
const props = $xeTable;
|
|
241
|
+
const reactData = $xeTable;
|
|
242
|
+
const { showHeader, showFooter } = props;
|
|
243
|
+
const { overflowX, tableData, tableColumn, tableGroupColumn, footerTableData, columnStore } = reactData;
|
|
244
|
+
const { leftList, rightList } = columnStore;
|
|
245
|
+
return h('div', {
|
|
246
|
+
ref: 'refTableViewportElem',
|
|
247
|
+
class: 'vxe-table--viewport-wrapper'
|
|
248
|
+
}, [
|
|
249
|
+
h('div', {
|
|
250
|
+
class: 'vxe-table--main-wrapper'
|
|
251
|
+
}, [
|
|
252
|
+
/**
|
|
253
|
+
* 表头
|
|
254
|
+
*/
|
|
255
|
+
showHeader
|
|
256
|
+
? h(TableHeaderComponent, {
|
|
257
|
+
ref: 'refTableHeader',
|
|
258
|
+
props: {
|
|
259
|
+
tableData,
|
|
260
|
+
tableColumn,
|
|
261
|
+
tableGroupColumn
|
|
262
|
+
}
|
|
263
|
+
})
|
|
264
|
+
: renderEmptyElement($xeTable),
|
|
265
|
+
/**
|
|
266
|
+
* 表体
|
|
267
|
+
*/
|
|
268
|
+
h(TableBodyComponent, {
|
|
269
|
+
ref: 'refTableBody',
|
|
270
|
+
props: {
|
|
271
|
+
tableData,
|
|
272
|
+
tableColumn
|
|
273
|
+
}
|
|
274
|
+
}),
|
|
275
|
+
/**
|
|
276
|
+
* 表尾
|
|
277
|
+
*/
|
|
278
|
+
showFooter
|
|
279
|
+
? h(TableFooterComponent, {
|
|
280
|
+
ref: 'refTableFooter',
|
|
281
|
+
props: {
|
|
282
|
+
footerTableData,
|
|
283
|
+
tableColumn
|
|
284
|
+
}
|
|
285
|
+
})
|
|
286
|
+
: renderEmptyElement($xeTable)
|
|
287
|
+
]),
|
|
288
|
+
h('div', {
|
|
289
|
+
class: 'vxe-table--fixed-wrapper'
|
|
290
|
+
}, [
|
|
291
|
+
leftList && leftList.length && overflowX ? renderFixed(h, $xeTable, 'left') : renderEmptyElement($xeTable),
|
|
292
|
+
rightList && rightList.length && overflowX ? renderFixed(h, $xeTable, 'right') : renderEmptyElement($xeTable)
|
|
293
|
+
])
|
|
294
|
+
]);
|
|
295
|
+
}
|
|
296
|
+
function renderBody(h, $xeTable) {
|
|
297
|
+
const scrollbarYToLeft = $xeTable.computeScrollbarYToLeft;
|
|
298
|
+
return h('div', {
|
|
299
|
+
class: 'vxe-table--layout-wrapper'
|
|
300
|
+
}, scrollbarYToLeft
|
|
301
|
+
? [
|
|
302
|
+
renderScrollY(h, $xeTable),
|
|
303
|
+
renderViewport(h, $xeTable)
|
|
304
|
+
]
|
|
305
|
+
: [
|
|
306
|
+
renderViewport(h, $xeTable),
|
|
307
|
+
renderScrollY(h, $xeTable)
|
|
308
|
+
]);
|
|
309
|
+
}
|
|
174
310
|
export default {
|
|
175
311
|
name: 'VxeTable',
|
|
176
312
|
mixins: [
|
|
@@ -206,8 +342,7 @@ export default {
|
|
|
206
342
|
const xID = XEUtils.uniqueId();
|
|
207
343
|
return {
|
|
208
344
|
xID,
|
|
209
|
-
tId:
|
|
210
|
-
isCalcColumn: false,
|
|
345
|
+
tId: xID,
|
|
211
346
|
// 低性能的静态列
|
|
212
347
|
staticColumns: [],
|
|
213
348
|
// 渲染的列分组
|
|
@@ -418,15 +553,19 @@ export default {
|
|
|
418
553
|
isFooter: false
|
|
419
554
|
},
|
|
420
555
|
scrollVMLoading: false,
|
|
421
|
-
|
|
556
|
+
calcCellHeightFlag: 0,
|
|
557
|
+
resizeHeightFlag: 0,
|
|
422
558
|
isCustomStatus: false,
|
|
423
559
|
isDragRowMove: false,
|
|
424
560
|
dragRow: null,
|
|
425
561
|
isDragColMove: false,
|
|
426
562
|
dragCol: null,
|
|
427
563
|
dragTipText: '',
|
|
428
|
-
|
|
429
|
-
isLoading: false
|
|
564
|
+
isDragResize: false,
|
|
565
|
+
isLoading: false,
|
|
566
|
+
reScrollFlag: 0,
|
|
567
|
+
reLayoutFlag: 0,
|
|
568
|
+
footFlag: 0
|
|
430
569
|
};
|
|
431
570
|
},
|
|
432
571
|
computed: Object.assign(Object.assign({}, {}), { tableId() {
|
|
@@ -484,6 +623,16 @@ export default {
|
|
|
484
623
|
const props = $xeTable;
|
|
485
624
|
return Object.assign({}, getConfig().table.scrollbarConfig, props.scrollbarConfig);
|
|
486
625
|
},
|
|
626
|
+
computeScrollbarXToTop() {
|
|
627
|
+
const $xeTable = this;
|
|
628
|
+
const scrollbarOpts = $xeTable.computeScrollbarOpts;
|
|
629
|
+
return !!(scrollbarOpts.x && scrollbarOpts.x.position === 'top');
|
|
630
|
+
},
|
|
631
|
+
computeScrollbarYToLeft() {
|
|
632
|
+
const $xeTable = this;
|
|
633
|
+
const scrollbarOpts = $xeTable.computeScrollbarOpts;
|
|
634
|
+
return !!(scrollbarOpts.y && scrollbarOpts.y.position === 'left');
|
|
635
|
+
},
|
|
487
636
|
computeScrollYThreshold() {
|
|
488
637
|
const $xeTable = this;
|
|
489
638
|
const sYOpts = $xeTable.computeSYOpts;
|
|
@@ -508,7 +657,7 @@ export default {
|
|
|
508
657
|
const $xeTable = this;
|
|
509
658
|
const vSize = $xeTable.computeSize;
|
|
510
659
|
const rowHeightMaps = $xeTable.computeRowHeightMaps;
|
|
511
|
-
return rowHeightMaps[vSize || 'default'];
|
|
660
|
+
return rowHeightMaps[vSize || 'default'] || 18;
|
|
512
661
|
},
|
|
513
662
|
columnOpts() {
|
|
514
663
|
return this.computeColumnOpts;
|
|
@@ -517,7 +666,19 @@ export default {
|
|
|
517
666
|
return Object.assign({}, getConfig().table.columnConfig, this.columnConfig);
|
|
518
667
|
},
|
|
519
668
|
computeCellOpts() {
|
|
520
|
-
|
|
669
|
+
const $xeTable = this;
|
|
670
|
+
const props = $xeTable;
|
|
671
|
+
return Object.assign({}, getConfig().table.cellConfig, props.cellConfig);
|
|
672
|
+
},
|
|
673
|
+
computeHeaderCellOpts() {
|
|
674
|
+
const $xeTable = this;
|
|
675
|
+
const props = $xeTable;
|
|
676
|
+
return Object.assign({}, getConfig().table.headerCellConfig, props.headerCellConfig);
|
|
677
|
+
},
|
|
678
|
+
computeFooterCellOpts() {
|
|
679
|
+
const $xeTable = this;
|
|
680
|
+
const props = $xeTable;
|
|
681
|
+
return Object.assign({}, getConfig().table.footerCellConfig, props.footerCellConfig);
|
|
521
682
|
},
|
|
522
683
|
rowOpts() {
|
|
523
684
|
return this.computeRowOpts;
|
|
@@ -570,6 +731,18 @@ export default {
|
|
|
570
731
|
tipConfig() {
|
|
571
732
|
return Object.assign({}, this.tooltipOpts);
|
|
572
733
|
},
|
|
734
|
+
computeTableTipConfig() {
|
|
735
|
+
const $xeTable = this;
|
|
736
|
+
const reactData = $xeTable;
|
|
737
|
+
const { tooltipStore } = reactData;
|
|
738
|
+
const tooltipOpts = $xeTable.computeTooltipOpts;
|
|
739
|
+
return Object.assign({}, tooltipOpts, tooltipStore.currOpts);
|
|
740
|
+
},
|
|
741
|
+
computeValidTipConfig() {
|
|
742
|
+
const $xeTable = this;
|
|
743
|
+
const tooltipOpts = $xeTable.computeTooltipOpts;
|
|
744
|
+
return Object.assign({}, tooltipOpts);
|
|
745
|
+
},
|
|
573
746
|
validTipOpts() {
|
|
574
747
|
return Object.assign({ isArrow: false }, this.tooltipOpts);
|
|
575
748
|
},
|
|
@@ -622,24 +795,54 @@ export default {
|
|
|
622
795
|
return Object.assign({}, getConfig().table.fnrConfig, this.fnrConfig);
|
|
623
796
|
},
|
|
624
797
|
headerCtxMenu() {
|
|
625
|
-
|
|
798
|
+
return this.computeHeaderMenu;
|
|
799
|
+
},
|
|
800
|
+
computeHeaderMenu() {
|
|
801
|
+
const $xeTable = this;
|
|
802
|
+
const menuOpts = $xeTable.computeMenuOpts;
|
|
803
|
+
const headerOpts = menuOpts.header;
|
|
626
804
|
return headerOpts && headerOpts.options ? headerOpts.options : [];
|
|
627
805
|
},
|
|
628
806
|
bodyCtxMenu() {
|
|
629
|
-
|
|
807
|
+
return this.computeBodyMenu;
|
|
808
|
+
},
|
|
809
|
+
computeBodyMenu() {
|
|
810
|
+
const $xeTable = this;
|
|
811
|
+
const menuOpts = $xeTable.computeMenuOpts;
|
|
812
|
+
const bodyOpts = menuOpts.body;
|
|
630
813
|
return bodyOpts && bodyOpts.options ? bodyOpts.options : [];
|
|
631
814
|
},
|
|
632
815
|
footerCtxMenu() {
|
|
633
|
-
|
|
816
|
+
return this.computeFooterMenu;
|
|
817
|
+
},
|
|
818
|
+
computeFooterMenu() {
|
|
819
|
+
const $xeTable = this;
|
|
820
|
+
const menuOpts = $xeTable.computeMenuOpts;
|
|
821
|
+
const footerOpts = menuOpts.footer;
|
|
634
822
|
return footerOpts && footerOpts.options ? footerOpts.options : [];
|
|
635
823
|
},
|
|
636
824
|
isCtxMenu() {
|
|
637
|
-
return
|
|
825
|
+
return this.computeIsMenu;
|
|
826
|
+
},
|
|
827
|
+
computeIsMenu() {
|
|
828
|
+
const $xeTable = this;
|
|
829
|
+
const props = $xeTable;
|
|
830
|
+
const menuOpts = $xeTable.computeMenuOpts;
|
|
831
|
+
const headerMenu = $xeTable.computeHeaderMenu;
|
|
832
|
+
const bodyMenu = $xeTable.computeBodyMenu;
|
|
833
|
+
const footerMenu = $xeTable.computeFooterMenu;
|
|
834
|
+
return !!((props.contextMenu || props.menuConfig) && isEnableConf(menuOpts) && (headerMenu.length || bodyMenu.length || footerMenu.length));
|
|
638
835
|
},
|
|
639
836
|
ctxMenuList() {
|
|
837
|
+
return this.computeMenuList;
|
|
838
|
+
},
|
|
839
|
+
computeMenuList() {
|
|
840
|
+
const $xeTable = this;
|
|
841
|
+
const reactData = $xeTable;
|
|
842
|
+
const { ctxMenuStore } = reactData;
|
|
640
843
|
const rest = [];
|
|
641
|
-
|
|
642
|
-
list.forEach(item => {
|
|
844
|
+
ctxMenuStore.list.forEach((list) => {
|
|
845
|
+
list.forEach((item) => {
|
|
643
846
|
rest.push(item);
|
|
644
847
|
});
|
|
645
848
|
});
|
|
@@ -814,7 +1017,7 @@ export default {
|
|
|
814
1017
|
if (value && value.length >= 50000) {
|
|
815
1018
|
warnLog('vxe.error.errLargeData', ['loadData(data), reloadData(data)']);
|
|
816
1019
|
}
|
|
817
|
-
this.loadTableData(value || []).then(() => {
|
|
1020
|
+
this.loadTableData(value || [], false).then(() => {
|
|
818
1021
|
this.inited = true;
|
|
819
1022
|
this.initStatus = true;
|
|
820
1023
|
if (!initStatus) {
|
|
@@ -842,33 +1045,50 @@ export default {
|
|
|
842
1045
|
reColumnFlag() {
|
|
843
1046
|
this.$nextTick().then(() => this.refreshColumn());
|
|
844
1047
|
},
|
|
1048
|
+
computeSize() {
|
|
1049
|
+
this.reScrollFlag++;
|
|
1050
|
+
},
|
|
845
1051
|
showHeader() {
|
|
846
|
-
this
|
|
847
|
-
this.recalculate(true).then(() => this.refreshScroll());
|
|
848
|
-
});
|
|
1052
|
+
this.reScrollFlag++;
|
|
849
1053
|
},
|
|
850
1054
|
showFooter() {
|
|
851
|
-
this
|
|
852
|
-
|
|
1055
|
+
this.reScrollFlag++;
|
|
1056
|
+
},
|
|
1057
|
+
reScrollFlag() {
|
|
1058
|
+
const $xeTable = this;
|
|
1059
|
+
$xeTable.$nextTick(() => {
|
|
1060
|
+
$xeTable.recalculate(true).then(() => $xeTable.refreshScroll());
|
|
853
1061
|
});
|
|
854
1062
|
},
|
|
855
1063
|
height() {
|
|
856
|
-
this
|
|
1064
|
+
this.reLayoutFlag++;
|
|
857
1065
|
},
|
|
858
1066
|
maxHeight() {
|
|
859
|
-
this
|
|
1067
|
+
this.reLayoutFlag++;
|
|
860
1068
|
},
|
|
861
|
-
|
|
862
|
-
this
|
|
863
|
-
|
|
864
|
-
|
|
1069
|
+
computeScrollbarXToTop() {
|
|
1070
|
+
this.reLayoutFlag++;
|
|
1071
|
+
},
|
|
1072
|
+
computeScrollbarYToLeft() {
|
|
1073
|
+
this.reLayoutFlag++;
|
|
1074
|
+
},
|
|
1075
|
+
reLayoutFlag() {
|
|
1076
|
+
const $xeTable = this;
|
|
1077
|
+
$xeTable.$nextTick(() => $xeTable.recalculate(true));
|
|
1078
|
+
},
|
|
1079
|
+
footerData() {
|
|
1080
|
+
this.footFlag++;
|
|
1081
|
+
},
|
|
1082
|
+
footFlag() {
|
|
1083
|
+
const $xeTable = this;
|
|
1084
|
+
$xeTable.updateFooter();
|
|
865
1085
|
},
|
|
866
1086
|
syncResize(value) {
|
|
867
1087
|
if (value) {
|
|
868
|
-
|
|
1088
|
+
handleUpdateResize(this);
|
|
869
1089
|
this.$nextTick(() => {
|
|
870
|
-
|
|
871
|
-
setTimeout(() =>
|
|
1090
|
+
handleUpdateResize(this);
|
|
1091
|
+
setTimeout(() => handleUpdateResize(this));
|
|
872
1092
|
});
|
|
873
1093
|
}
|
|
874
1094
|
},
|
|
@@ -970,11 +1190,14 @@ export default {
|
|
|
970
1190
|
if (treeConfig && (treeOpts.showLine || treeOpts.line) && (!(this.rowKey || rowOpts.useKey) || !showOverflow)) {
|
|
971
1191
|
warnLog('vxe.error.reqProp', ['row-config.useKey | show-overflow']);
|
|
972
1192
|
}
|
|
1193
|
+
if (treeConfig && !treeOpts.transform && this.stripe) {
|
|
1194
|
+
warnLog('vxe.error.noTree', ['stripe']);
|
|
1195
|
+
}
|
|
973
1196
|
if (this.showFooter && !(this.footerMethod || this.footerData)) {
|
|
974
1197
|
warnLog('vxe.error.reqProp', ['footer-data | footer-method']);
|
|
975
1198
|
}
|
|
976
|
-
if (
|
|
977
|
-
warnLog('vxe.error.
|
|
1199
|
+
if (rowOpts.height) {
|
|
1200
|
+
warnLog('vxe.error.delProp', ['row-config.height', 'cell-config.height']);
|
|
978
1201
|
}
|
|
979
1202
|
if (this.tooltipOpts.enabled) {
|
|
980
1203
|
warnLog('vxe.error.delProp', ['tooltip-config.enabled', 'tooltip-config.showAll']);
|
|
@@ -1116,7 +1339,7 @@ export default {
|
|
|
1116
1339
|
endIndex: 1,
|
|
1117
1340
|
visibleSize: 0
|
|
1118
1341
|
});
|
|
1119
|
-
this.loadTableData(data).then(() => {
|
|
1342
|
+
this.loadTableData(data, true).then(() => {
|
|
1120
1343
|
if (data && data.length) {
|
|
1121
1344
|
this.inited = true;
|
|
1122
1345
|
this.initStatus = true;
|
|
@@ -1224,10 +1447,11 @@ export default {
|
|
|
1224
1447
|
const reactData = $xeTable;
|
|
1225
1448
|
const { xID } = $xeTable;
|
|
1226
1449
|
const { loading, stripe, showHeader, height, treeConfig, mouseConfig, showFooter, highlightCell, highlightHoverRow, highlightHoverColumn, editConfig, editRules } = props;
|
|
1227
|
-
const {
|
|
1450
|
+
const { isGroup, overflowX, overflowY, scrollXLoad, scrollYLoad, tableData, initStore, columnStore, filterStore, customStore } = reactData;
|
|
1228
1451
|
const { leftList, rightList } = columnStore;
|
|
1229
1452
|
const loadingSlot = slots.loading;
|
|
1230
|
-
const
|
|
1453
|
+
const tableTipConfig = $xeTable.computeTableTipConfig;
|
|
1454
|
+
const validTipConfig = $xeTable.computeValidTipConfig;
|
|
1231
1455
|
const validOpts = $xeTable.computeValidOpts;
|
|
1232
1456
|
const checkboxOpts = $xeTable.computeCheckboxOpts;
|
|
1233
1457
|
const treeOpts = $xeTable.computeTreeOpts;
|
|
@@ -1243,9 +1467,11 @@ export default {
|
|
|
1243
1467
|
const resizableOpts = $xeTable.computeResizableOpts;
|
|
1244
1468
|
const isArea = mouseConfig && mouseOpts.area;
|
|
1245
1469
|
const columnDragOpts = $xeTable.computeColumnDragOpts;
|
|
1470
|
+
const scrollbarXToTop = $xeTable.computeScrollbarXToTop;
|
|
1471
|
+
const scrollbarYToLeft = $xeTable.computeScrollbarYToLeft;
|
|
1246
1472
|
return h('div', {
|
|
1247
1473
|
ref: 'refElem',
|
|
1248
|
-
class: ['vxe-table', 'vxe-table--render-default', `tid_${xID}`, `border--${tableBorder}`, {
|
|
1474
|
+
class: ['vxe-table', 'vxe-table--render-default', `tid_${xID}`, `border--${tableBorder}`, `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}`, `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}`, {
|
|
1249
1475
|
[`size--${vSize}`]: vSize,
|
|
1250
1476
|
[`valid-msg--${validOpts.msgMode}`]: !!editRules,
|
|
1251
1477
|
'vxe-editable': !!editConfig,
|
|
@@ -1258,7 +1484,6 @@ export default {
|
|
|
1258
1484
|
'row--highlight': rowOpts.isHover || highlightHoverRow,
|
|
1259
1485
|
'column--highlight': columnOpts.isHover || highlightHoverColumn,
|
|
1260
1486
|
'checkbox--range': checkboxOpts.range,
|
|
1261
|
-
'column--calc': isCalcColumn,
|
|
1262
1487
|
'col--drag-cell': columnOpts.drag && columnDragOpts.trigger === 'cell',
|
|
1263
1488
|
'is--header': showHeader,
|
|
1264
1489
|
'is--footer': showFooter,
|
|
@@ -1267,7 +1492,6 @@ export default {
|
|
|
1267
1492
|
'is--fixed-left': leftList.length,
|
|
1268
1493
|
'is--fixed-right': rightList.length,
|
|
1269
1494
|
'is--animat': !!props.animat,
|
|
1270
|
-
'is--padding': props.padding,
|
|
1271
1495
|
'is--round': props.round,
|
|
1272
1496
|
'is--stripe': !treeConfig && stripe,
|
|
1273
1497
|
'is--loading': currLoading,
|
|
@@ -1294,108 +1518,15 @@ export default {
|
|
|
1294
1518
|
h('div', {
|
|
1295
1519
|
key: 'tw',
|
|
1296
1520
|
class: 'vxe-table--render-wrapper'
|
|
1297
|
-
},
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
/**
|
|
1306
|
-
* 表头
|
|
1307
|
-
*/
|
|
1308
|
-
showHeader
|
|
1309
|
-
? h(TableHeaderComponent, {
|
|
1310
|
-
ref: 'refTableHeader',
|
|
1311
|
-
props: {
|
|
1312
|
-
tableData,
|
|
1313
|
-
tableColumn,
|
|
1314
|
-
tableGroupColumn,
|
|
1315
|
-
size: vSize
|
|
1316
|
-
}
|
|
1317
|
-
})
|
|
1318
|
-
: renderEmptyElement($xeTable),
|
|
1319
|
-
/**
|
|
1320
|
-
* 表体
|
|
1321
|
-
*/
|
|
1322
|
-
h(TableBodyComponent, {
|
|
1323
|
-
ref: 'refTableBody',
|
|
1324
|
-
props: {
|
|
1325
|
-
tableData,
|
|
1326
|
-
tableColumn,
|
|
1327
|
-
size: vSize
|
|
1328
|
-
}
|
|
1329
|
-
}),
|
|
1330
|
-
/**
|
|
1331
|
-
* 表尾
|
|
1332
|
-
*/
|
|
1333
|
-
showFooter
|
|
1334
|
-
? h(TableFooterComponent, {
|
|
1335
|
-
ref: 'refTableFooter',
|
|
1336
|
-
props: {
|
|
1337
|
-
footerTableData,
|
|
1338
|
-
tableColumn,
|
|
1339
|
-
size: vSize
|
|
1340
|
-
}
|
|
1341
|
-
})
|
|
1342
|
-
: renderEmptyElement($xeTable)
|
|
1343
|
-
]),
|
|
1344
|
-
h('div', {
|
|
1345
|
-
class: 'vxe-table--fixed-wrapper'
|
|
1346
|
-
}, [
|
|
1347
|
-
leftList && leftList.length && overflowX ? renderFixed(h, this, 'left') : renderEmptyElement($xeTable),
|
|
1348
|
-
rightList && rightList.length && overflowX ? renderFixed(h, this, 'right') : renderEmptyElement($xeTable)
|
|
1349
|
-
])
|
|
1350
|
-
]),
|
|
1351
|
-
h('div', {
|
|
1352
|
-
ref: 'refScrollYVirtualElem',
|
|
1353
|
-
class: 'vxe-table--scroll-y-virtual'
|
|
1354
|
-
}, [
|
|
1355
|
-
h('div', {
|
|
1356
|
-
ref: 'refScrollYTopCornerElem',
|
|
1357
|
-
class: 'vxe-table--scroll-y-top-corner'
|
|
1358
|
-
}),
|
|
1359
|
-
h('div', {
|
|
1360
|
-
ref: 'refScrollYHandleElem',
|
|
1361
|
-
class: 'vxe-table--scroll-y-handle',
|
|
1362
|
-
on: {
|
|
1363
|
-
scroll: this.scrollYEvent
|
|
1364
|
-
}
|
|
1365
|
-
}, [
|
|
1366
|
-
h('div', {
|
|
1367
|
-
ref: 'refScrollYSpaceElem',
|
|
1368
|
-
class: 'vxe-table--scroll-y-space'
|
|
1369
|
-
})
|
|
1370
|
-
]),
|
|
1371
|
-
h('div', {
|
|
1372
|
-
ref: 'refScrollYBottomCornerElem',
|
|
1373
|
-
class: 'vxe-table--scroll-y-bottom-corner'
|
|
1374
|
-
})
|
|
1375
|
-
])
|
|
1376
|
-
]),
|
|
1377
|
-
h('div', {
|
|
1378
|
-
key: 'vx',
|
|
1379
|
-
ref: 'refScrollXVirtualElem',
|
|
1380
|
-
class: 'vxe-table--scroll-x-virtual'
|
|
1381
|
-
}, [
|
|
1382
|
-
h('div', {
|
|
1383
|
-
ref: 'refScrollXHandleElem',
|
|
1384
|
-
class: 'vxe-table--scroll-x-handle',
|
|
1385
|
-
on: {
|
|
1386
|
-
scroll: this.scrollXEvent
|
|
1387
|
-
}
|
|
1388
|
-
}, [
|
|
1389
|
-
h('div', {
|
|
1390
|
-
ref: 'refScrollXSpaceElem',
|
|
1391
|
-
class: 'vxe-table--scroll-x-space'
|
|
1392
|
-
})
|
|
1521
|
+
}, scrollbarXToTop
|
|
1522
|
+
? [
|
|
1523
|
+
renderScrollX(h, $xeTable),
|
|
1524
|
+
renderBody(h, $xeTable)
|
|
1525
|
+
]
|
|
1526
|
+
: [
|
|
1527
|
+
renderBody(h, $xeTable),
|
|
1528
|
+
renderScrollX(h, $xeTable)
|
|
1393
1529
|
]),
|
|
1394
|
-
h('div', {
|
|
1395
|
-
ref: 'refScrollXRightCornerElem',
|
|
1396
|
-
class: 'vxe-table--scroll-x-right-corner'
|
|
1397
|
-
})
|
|
1398
|
-
]),
|
|
1399
1530
|
/**
|
|
1400
1531
|
* 空数据
|
|
1401
1532
|
*/
|
|
@@ -1419,18 +1550,27 @@ export default {
|
|
|
1419
1550
|
* 列宽线
|
|
1420
1551
|
*/
|
|
1421
1552
|
h('div', {
|
|
1422
|
-
key: '
|
|
1423
|
-
ref: '
|
|
1424
|
-
class: 'vxe-table--resizable-bar'
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
|
|
1553
|
+
key: 'tcl',
|
|
1554
|
+
ref: 'refColResizeBar',
|
|
1555
|
+
class: 'vxe-table--resizable-col-bar'
|
|
1556
|
+
}, resizableOpts.showDragTip
|
|
1557
|
+
? [
|
|
1558
|
+
h('div', {
|
|
1559
|
+
ref: 'refColResizeTip',
|
|
1560
|
+
class: 'vxe-table--resizable-number-tip'
|
|
1561
|
+
})
|
|
1562
|
+
]
|
|
1563
|
+
: []),
|
|
1564
|
+
/**
|
|
1565
|
+
* 行高线
|
|
1566
|
+
*/
|
|
1567
|
+
h('div', {
|
|
1568
|
+
key: 'trl',
|
|
1569
|
+
ref: 'refRowResizeBar',
|
|
1570
|
+
class: 'vxe-table--resizable-row-bar'
|
|
1430
1571
|
}, resizableOpts.showDragTip
|
|
1431
1572
|
? [
|
|
1432
1573
|
h('div', {
|
|
1433
|
-
ref: 'refCellResizeTip',
|
|
1434
1574
|
class: 'vxe-table--resizable-number-tip'
|
|
1435
1575
|
})
|
|
1436
1576
|
]
|
|
@@ -1546,7 +1686,12 @@ export default {
|
|
|
1546
1686
|
? h(VxeUITooltipComponent, {
|
|
1547
1687
|
key: 'btp',
|
|
1548
1688
|
ref: 'tooltip',
|
|
1549
|
-
props:
|
|
1689
|
+
props: {
|
|
1690
|
+
theme: tableTipConfig.theme,
|
|
1691
|
+
enterable: tableTipConfig.enterable,
|
|
1692
|
+
enterDelay: tableTipConfig.enterDelay,
|
|
1693
|
+
leaveDelay: tableTipConfig.leaveDelay
|
|
1694
|
+
}
|
|
1550
1695
|
})
|
|
1551
1696
|
: renderEmptyElement($xeTable),
|
|
1552
1697
|
/**
|
|
@@ -1559,7 +1704,12 @@ export default {
|
|
|
1559
1704
|
class: [{
|
|
1560
1705
|
'old-cell-valid': editRules && getConfig().cellVaildMode === 'obsolete'
|
|
1561
1706
|
}, 'vxe-table--valid-error'],
|
|
1562
|
-
props:
|
|
1707
|
+
props: {
|
|
1708
|
+
theme: validTipConfig.theme,
|
|
1709
|
+
enterable: validTipConfig.enterable,
|
|
1710
|
+
enterDelay: validTipConfig.enterDelay,
|
|
1711
|
+
leaveDelay: validTipConfig.leaveDelay
|
|
1712
|
+
}
|
|
1563
1713
|
})
|
|
1564
1714
|
: renderEmptyElement($xeTable)
|
|
1565
1715
|
])
|