vxe-table 3.15.27 → 3.15.29
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/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/index.js +11 -3
- package/es/table/module/filter/mixin.js +20 -8
- package/es/table/src/methods.js +192 -55
- package/es/table/src/table.js +6 -3
- package/es/table/style.css +6 -0
- package/es/table/style.min.css +1 -1
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/es/vxe-table/style.css +6 -0
- 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 +264 -79
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table/index.js +10 -3
- package/lib/table/index.min.js +1 -1
- package/lib/table/module/filter/mixin.js +26 -8
- package/lib/table/module/filter/mixin.min.js +1 -1
- package/lib/table/src/methods.js +218 -61
- package/lib/table/src/methods.min.js +1 -1
- package/lib/table/src/table.js +8 -5
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/style/style.css +6 -0
- package/lib/table/style/style.min.css +1 -1
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/vxe-table/style/style.css +6 -0
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +1 -1
- package/packages/table/index.ts +10 -3
- package/packages/table/module/filter/mixin.ts +27 -12
- package/packages/table/src/methods.ts +196 -57
- package/packages/table/src/table.ts +6 -3
- package/styles/components/table.scss +14 -0
- /package/es/{iconfont.1747094784148.ttf → iconfont.1747286367921.ttf} +0 -0
- /package/es/{iconfont.1747094784148.woff → iconfont.1747286367921.woff} +0 -0
- /package/es/{iconfont.1747094784148.woff2 → iconfont.1747286367921.woff2} +0 -0
- /package/lib/{iconfont.1747094784148.ttf → iconfont.1747286367921.ttf} +0 -0
- /package/lib/{iconfont.1747094784148.woff → iconfont.1747286367921.woff} +0 -0
- /package/lib/{iconfont.1747094784148.woff2 → iconfont.1747286367921.woff2} +0 -0
|
@@ -4,7 +4,7 @@ import { toFilters, handleFieldOrColumn, getRefElem } from '../../src/util'
|
|
|
4
4
|
import { toCssUnit, triggerEvent, getDomNode } from '../../../ui/src/dom'
|
|
5
5
|
import { isEnableConf } from '../../../ui/src/utils'
|
|
6
6
|
|
|
7
|
-
import type { VxeTableConstructor, VxeTableDefines, TableReactData, TableInternalData } from '../../../../types'
|
|
7
|
+
import type { VxeTableConstructor, VxeTableDefines, TableReactData, TableInternalData, VxeTablePrivateMethods } from '../../../../types'
|
|
8
8
|
|
|
9
9
|
const { renderer } = VxeUI
|
|
10
10
|
|
|
@@ -41,6 +41,7 @@ export default {
|
|
|
41
41
|
if (column && column.filters) {
|
|
42
42
|
column.filters = toFilters(options || [])
|
|
43
43
|
if (isUpdate) {
|
|
44
|
+
// 已废弃,即将去掉事件触发 new Event('click') -> null
|
|
44
45
|
return $xeTable.handleColumnConfirmFilter(column, new Event('click'))
|
|
45
46
|
}
|
|
46
47
|
}
|
|
@@ -294,25 +295,37 @@ export default {
|
|
|
294
295
|
* 当筛选面板中的重置按钮被按下时触发
|
|
295
296
|
* @param {Event} evnt 事件
|
|
296
297
|
*/
|
|
297
|
-
handleFilterResetFilter (evnt:
|
|
298
|
-
this
|
|
299
|
-
|
|
298
|
+
handleFilterResetFilter (evnt: Event) {
|
|
299
|
+
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
300
|
+
const reactData = $xeTable as unknown as TableReactData
|
|
301
|
+
|
|
302
|
+
const { filterStore } = reactData
|
|
303
|
+
$xeTable.handleClearFilter(filterStore.column)
|
|
304
|
+
$xeTable.confirmFilterEvent(evnt)
|
|
305
|
+
if (evnt) {
|
|
306
|
+
$xeTable.dispatchEvent('clear-filter', { filterList: [] }, evnt)
|
|
307
|
+
}
|
|
300
308
|
},
|
|
301
309
|
/**
|
|
302
310
|
* 清空指定列的筛选条件
|
|
303
311
|
* 如果为空则清空所有列的筛选条件
|
|
304
312
|
* @param {String} fieldOrColumn 列
|
|
305
313
|
*/
|
|
306
|
-
_clearFilter (fieldOrColumn: any) {
|
|
307
|
-
const
|
|
314
|
+
_clearFilter (fieldOrColumn: string | VxeTableDefines.ColumnInfo<any> | null | undefined) {
|
|
315
|
+
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
316
|
+
const reactData = $xeTable as unknown as TableReactData
|
|
317
|
+
const internalData = $xeTable as unknown as TableInternalData
|
|
318
|
+
|
|
319
|
+
const { filterStore } = reactData
|
|
320
|
+
const { tableFullColumn } = internalData
|
|
308
321
|
let column
|
|
309
322
|
if (fieldOrColumn) {
|
|
310
|
-
column = handleFieldOrColumn(
|
|
323
|
+
column = handleFieldOrColumn($xeTable, fieldOrColumn)
|
|
311
324
|
if (column) {
|
|
312
|
-
|
|
325
|
+
$xeTable.handleClearFilter(column)
|
|
313
326
|
}
|
|
314
327
|
} else {
|
|
315
|
-
|
|
328
|
+
tableFullColumn.forEach($xeTable.handleClearFilter)
|
|
316
329
|
}
|
|
317
330
|
if (!fieldOrColumn || column !== filterStore.column) {
|
|
318
331
|
Object.assign(filterStore, {
|
|
@@ -325,12 +338,14 @@ export default {
|
|
|
325
338
|
visible: false
|
|
326
339
|
})
|
|
327
340
|
}
|
|
328
|
-
return
|
|
341
|
+
return $xeTable.updateData()
|
|
329
342
|
},
|
|
330
|
-
_updateFilterOptionStatus (item: any, checked:
|
|
343
|
+
_updateFilterOptionStatus (item: any, checked: boolean) {
|
|
344
|
+
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
345
|
+
|
|
331
346
|
item._checked = checked
|
|
332
347
|
item.checked = checked
|
|
333
|
-
return
|
|
348
|
+
return $xeTable.$nextTick()
|
|
334
349
|
}
|
|
335
350
|
} as any
|
|
336
351
|
}
|
|
@@ -3,7 +3,7 @@ import { getTpImg, isPx, isScale, hasClass, addClass, removeClass, getEventTarge
|
|
|
3
3
|
import { getLastZIndex, nextZIndex, hasChildrenList, getFuncText, isEnableConf, formatText, eqEmptyValue } from '../../ui/src/utils'
|
|
4
4
|
import { VxeUI } from '../../ui'
|
|
5
5
|
import Cell from './cell'
|
|
6
|
-
import { getRowUniqueId, clearTableAllStatus, getRowkey, getRowid, rowToVisible, colToVisible, getCellValue, setCellValue, handleRowidOrRow, handleFieldOrColumn, toTreePathSeq, restoreScrollLocation, getRootColumn, getColReMinWidth, createHandleUpdateRowId, createHandleGetRowId, getRefElem } from './util'
|
|
6
|
+
import { getRowUniqueId, clearTableAllStatus, toFilters, getRowkey, getRowid, rowToVisible, colToVisible, getCellValue, setCellValue, handleRowidOrRow, handleFieldOrColumn, toTreePathSeq, restoreScrollLocation, getRootColumn, getColReMinWidth, createHandleUpdateRowId, createHandleGetRowId, getRefElem } from './util'
|
|
7
7
|
import { getSlotVNs } from '../../ui/src/vn'
|
|
8
8
|
import { warnLog, errLog } from '../../ui/src/log'
|
|
9
9
|
|
|
@@ -30,8 +30,9 @@ function eqCellValue (row1: any, row2: any, field: any) {
|
|
|
30
30
|
return XEUtils.isEqual(val1, val2)
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
function getNextSortOrder (
|
|
34
|
-
const
|
|
33
|
+
function getNextSortOrder ($xeTable: VxeTableConstructor & VxeTablePrivateMethods, column: any) {
|
|
34
|
+
const sortOpts = $xeTable.computeSortOpts
|
|
35
|
+
const { orders = [] } = sortOpts
|
|
35
36
|
const currOrder = column.order || null
|
|
36
37
|
const oIndex = orders.indexOf(currOrder) + 1
|
|
37
38
|
return orders[oIndex < orders.length ? oIndex : 0]
|
|
@@ -2019,8 +2020,59 @@ function removeFooterMerges ($xeTable: VxeTableConstructor & VxeTablePrivateMeth
|
|
|
2019
2020
|
return rest
|
|
2020
2021
|
}
|
|
2021
2022
|
|
|
2022
|
-
function
|
|
2023
|
-
|
|
2023
|
+
function handleSortEvent ($xeTable: VxeTableConstructor & VxeTablePrivateMethods, evnt: Event | null, sortConfs: VxeTableDefines.SortConfs | VxeTableDefines.SortConfs[], isUpdate?: boolean) {
|
|
2024
|
+
const sortOpts = $xeTable.computeSortOpts
|
|
2025
|
+
const { multiple, remote, orders } = sortOpts
|
|
2026
|
+
if (!XEUtils.isArray(sortConfs)) {
|
|
2027
|
+
sortConfs = [sortConfs]
|
|
2028
|
+
}
|
|
2029
|
+
if (sortConfs && sortConfs.length) {
|
|
2030
|
+
if (!multiple) {
|
|
2031
|
+
sortConfs = [sortConfs[0]]
|
|
2032
|
+
clearAllSort($xeTable)
|
|
2033
|
+
}
|
|
2034
|
+
let firstColumn: any = null
|
|
2035
|
+
sortConfs.forEach((confs: any, index: number) => {
|
|
2036
|
+
let { field, order } = confs
|
|
2037
|
+
let column = field
|
|
2038
|
+
if (XEUtils.isString(field)) {
|
|
2039
|
+
column = $xeTable.getColumnByField(field)
|
|
2040
|
+
}
|
|
2041
|
+
if (!firstColumn) {
|
|
2042
|
+
firstColumn = column
|
|
2043
|
+
}
|
|
2044
|
+
if (column && column.sortable) {
|
|
2045
|
+
if (orders && orders.indexOf(order) === -1) {
|
|
2046
|
+
order = getNextSortOrder($xeTable, column)
|
|
2047
|
+
}
|
|
2048
|
+
if (column.order !== order) {
|
|
2049
|
+
column.order = order
|
|
2050
|
+
}
|
|
2051
|
+
column.sortTime = Date.now() + index
|
|
2052
|
+
}
|
|
2053
|
+
})
|
|
2054
|
+
if (isUpdate) {
|
|
2055
|
+
if (!remote) {
|
|
2056
|
+
$xeTable.handleTableData(true)
|
|
2057
|
+
}
|
|
2058
|
+
}
|
|
2059
|
+
if (evnt) {
|
|
2060
|
+
$xeTable.handleColumnSortEvent(evnt, firstColumn)
|
|
2061
|
+
}
|
|
2062
|
+
return $xeTable.$nextTick().then(() => {
|
|
2063
|
+
updateRowOffsetTop($xeTable)
|
|
2064
|
+
$xeTable.updateCellAreas()
|
|
2065
|
+
return updateStyle($xeTable)
|
|
2066
|
+
})
|
|
2067
|
+
}
|
|
2068
|
+
return $xeTable.$nextTick()
|
|
2069
|
+
}
|
|
2070
|
+
|
|
2071
|
+
function clearAllSort ($xeTable: VxeTableConstructor & VxeTablePrivateMethods) {
|
|
2072
|
+
const internalData = $xeTable as unknown as TableInternalData
|
|
2073
|
+
|
|
2074
|
+
const { tableFullColumn } = internalData
|
|
2075
|
+
tableFullColumn.forEach((column: any) => {
|
|
2024
2076
|
column.order = null
|
|
2025
2077
|
})
|
|
2026
2078
|
}
|
|
@@ -3288,7 +3340,7 @@ function checkLastSyncScroll ($xeTable: VxeTableConstructor & VxeTablePrivateMet
|
|
|
3288
3340
|
const reactData = $xeTable as unknown as TableReactData
|
|
3289
3341
|
const internalData = $xeTable as unknown as TableInternalData
|
|
3290
3342
|
|
|
3291
|
-
const { scrollXLoad, scrollYLoad } = reactData
|
|
3343
|
+
const { scrollXLoad, scrollYLoad, isAllOverflow } = reactData
|
|
3292
3344
|
const { lcsTimeout } = internalData
|
|
3293
3345
|
if (lcsTimeout) {
|
|
3294
3346
|
clearTimeout(lcsTimeout)
|
|
@@ -3303,13 +3355,19 @@ function checkLastSyncScroll ($xeTable: VxeTableConstructor & VxeTablePrivateMet
|
|
|
3303
3355
|
internalData.inBodyScroll = false
|
|
3304
3356
|
internalData.inFooterScroll = false
|
|
3305
3357
|
internalData.scrollRenderType = ''
|
|
3306
|
-
|
|
3358
|
+
if (!isAllOverflow) {
|
|
3359
|
+
calcCellHeight($xeTable)
|
|
3360
|
+
updateRowOffsetTop($xeTable)
|
|
3361
|
+
}
|
|
3307
3362
|
if (isRollX && scrollXLoad) {
|
|
3308
3363
|
$xeTable.updateScrollXData()
|
|
3309
3364
|
}
|
|
3310
3365
|
if (isRollY && scrollYLoad) {
|
|
3311
3366
|
$xeTable.updateScrollYData().then(() => {
|
|
3312
|
-
|
|
3367
|
+
if (!isAllOverflow) {
|
|
3368
|
+
calcCellHeight($xeTable)
|
|
3369
|
+
updateRowOffsetTop($xeTable)
|
|
3370
|
+
}
|
|
3313
3371
|
$xeTable.updateScrollYSpace()
|
|
3314
3372
|
})
|
|
3315
3373
|
}
|
|
@@ -4812,6 +4870,7 @@ const Methods = {
|
|
|
4812
4870
|
}
|
|
4813
4871
|
XEUtils.eachTree([targetColumn], (column) => {
|
|
4814
4872
|
column.fixed = fixed
|
|
4873
|
+
column.renderFixed = fixed
|
|
4815
4874
|
})
|
|
4816
4875
|
$xeTable.saveCustomStore('update:fixed')
|
|
4817
4876
|
if (!status) {
|
|
@@ -4838,6 +4897,7 @@ const Methods = {
|
|
|
4838
4897
|
if (targetColumn && targetColumn.fixed) {
|
|
4839
4898
|
XEUtils.eachTree([targetColumn], (column) => {
|
|
4840
4899
|
column.fixed = null
|
|
4900
|
+
column.renderFixed = null
|
|
4841
4901
|
})
|
|
4842
4902
|
$xeTable.saveCustomStore('update:fixed')
|
|
4843
4903
|
if (!status) {
|
|
@@ -6425,7 +6485,16 @@ const Methods = {
|
|
|
6425
6485
|
}
|
|
6426
6486
|
}
|
|
6427
6487
|
if (tooltipStore.column !== column || tooltipStore.row !== row || !tooltipStore.visible) {
|
|
6428
|
-
|
|
6488
|
+
const ctEl = tdEl.querySelector<HTMLElement>('.vxe-cell--wrapper')
|
|
6489
|
+
let ovEl = null
|
|
6490
|
+
let tipEl = tdEl.querySelector<HTMLElement>(column.type === 'html' ? '.vxe-cell--html' : '.vxe-cell--label')
|
|
6491
|
+
if (column.treeNode) {
|
|
6492
|
+
ovEl = tdEl.querySelector<HTMLElement>('.vxe-tree-cell')
|
|
6493
|
+
}
|
|
6494
|
+
if (!tipEl) {
|
|
6495
|
+
tipEl = ctEl
|
|
6496
|
+
}
|
|
6497
|
+
handleTooltip($xeTable, evnt, tdEl, ovEl || ctEl, tipEl, params)
|
|
6429
6498
|
}
|
|
6430
6499
|
},
|
|
6431
6500
|
/**
|
|
@@ -6440,10 +6509,19 @@ const Methods = {
|
|
|
6440
6509
|
const tdEl = evnt.currentTarget as HTMLTableCellElement
|
|
6441
6510
|
handleTargetEnterEvent($xeTable, tooltipStore.column !== column || !!tooltipStore.row)
|
|
6442
6511
|
if (tooltipStore.column !== column || !tooltipStore.visible) {
|
|
6443
|
-
|
|
6512
|
+
const ctEl = tdEl.querySelector<HTMLElement>('.vxe-cell--wrapper')
|
|
6513
|
+
let ovEl = null
|
|
6514
|
+
let tipEl = tdEl.querySelector<HTMLElement>(column.type === 'html' ? '.vxe-cell--html' : '.vxe-cell--label')
|
|
6515
|
+
if (column.type === 'html') {
|
|
6516
|
+
ovEl = tdEl.querySelector<HTMLElement>('.vxe-cell--html')
|
|
6517
|
+
}
|
|
6518
|
+
if (!tipEl) {
|
|
6519
|
+
tipEl = ctEl
|
|
6520
|
+
}
|
|
6521
|
+
handleTooltip($xeTable, evnt, tdEl, ovEl || ctEl, tipEl, params)
|
|
6444
6522
|
}
|
|
6445
6523
|
},
|
|
6446
|
-
openTooltip (target:
|
|
6524
|
+
openTooltip (target: HTMLElement, content: string | number) {
|
|
6447
6525
|
const { $refs } = this
|
|
6448
6526
|
const commTip = $refs.refCommTooltip
|
|
6449
6527
|
if (commTip) {
|
|
@@ -7584,12 +7662,15 @@ const Methods = {
|
|
|
7584
7662
|
|
|
7585
7663
|
const { mouseConfig } = props
|
|
7586
7664
|
const mouseOpts = $xeTable.computeMouseOpts
|
|
7587
|
-
const { field, sortable } = column
|
|
7665
|
+
const { field, sortable, order } = column
|
|
7588
7666
|
if (sortable) {
|
|
7589
|
-
const params = { $table: $xeTable, $event: evnt, column, field, property: field, order
|
|
7667
|
+
const params = { $table: $xeTable, $event: evnt, column, field, property: field, order, sortList: $xeTable.getSortColumns(), sortTime: column.sortTime }
|
|
7590
7668
|
if (mouseConfig && mouseOpts.area && $xeTable.handleSortEvent) {
|
|
7591
7669
|
$xeTable.handleSortEvent(evnt, params)
|
|
7592
7670
|
}
|
|
7671
|
+
if (!order) {
|
|
7672
|
+
$xeTable.dispatchEvent('clear-sort', params, evnt)
|
|
7673
|
+
}
|
|
7593
7674
|
$xeTable.dispatchEvent('sort-change', params, evnt)
|
|
7594
7675
|
}
|
|
7595
7676
|
},
|
|
@@ -8516,49 +8597,13 @@ const Methods = {
|
|
|
8516
8597
|
setSort (sortConfs: VxeTableDefines.SortConfs | VxeTableDefines.SortConfs[], isUpdate?: boolean) {
|
|
8517
8598
|
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
8518
8599
|
|
|
8519
|
-
|
|
8520
|
-
|
|
8521
|
-
|
|
8522
|
-
|
|
8523
|
-
|
|
8524
|
-
|
|
8525
|
-
|
|
8526
|
-
sortConfs = [sortConfs[0]]
|
|
8527
|
-
clearAllSort($xeTable)
|
|
8528
|
-
}
|
|
8529
|
-
let firstColumn: any = null
|
|
8530
|
-
sortConfs.forEach((confs: any, index: number) => {
|
|
8531
|
-
let { field, order } = confs
|
|
8532
|
-
let column = field
|
|
8533
|
-
if (XEUtils.isString(field)) {
|
|
8534
|
-
column = $xeTable.getColumnByField(field)
|
|
8535
|
-
}
|
|
8536
|
-
if (!firstColumn) {
|
|
8537
|
-
firstColumn = column
|
|
8538
|
-
}
|
|
8539
|
-
if (column && column.sortable) {
|
|
8540
|
-
if (orders && orders.indexOf(order) === -1) {
|
|
8541
|
-
order = getNextSortOrder($xeTable, column)
|
|
8542
|
-
}
|
|
8543
|
-
if (column.order !== order) {
|
|
8544
|
-
column.order = order
|
|
8545
|
-
}
|
|
8546
|
-
column.sortTime = Date.now() + index
|
|
8547
|
-
}
|
|
8548
|
-
})
|
|
8549
|
-
if (isUpdate) {
|
|
8550
|
-
if (!remote) {
|
|
8551
|
-
$xeTable.handleTableData(true)
|
|
8552
|
-
}
|
|
8553
|
-
$xeTable.handleColumnSortEvent(new Event('click'), firstColumn)
|
|
8554
|
-
}
|
|
8555
|
-
return $xeTable.$nextTick().then(() => {
|
|
8556
|
-
updateRowOffsetTop($xeTable)
|
|
8557
|
-
$xeTable.updateCellAreas()
|
|
8558
|
-
return updateStyle($xeTable)
|
|
8559
|
-
})
|
|
8560
|
-
}
|
|
8561
|
-
return $xeTable.$nextTick()
|
|
8600
|
+
// 已废弃,即将去掉事件触发 new Event('click') -> null
|
|
8601
|
+
return handleSortEvent($xeTable, new Event('click'), sortConfs, isUpdate)
|
|
8602
|
+
},
|
|
8603
|
+
setSortByEvent (evnt: Event, sortConfs: VxeTableDefines.SortConfs | VxeTableDefines.SortConfs[], isUpdate?: boolean) {
|
|
8604
|
+
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
8605
|
+
|
|
8606
|
+
return handleSortEvent($xeTable, evnt, sortConfs, isUpdate)
|
|
8562
8607
|
},
|
|
8563
8608
|
/**
|
|
8564
8609
|
* 清空指定列的排序条件
|
|
@@ -8585,6 +8630,43 @@ const Methods = {
|
|
|
8585
8630
|
return updateStyle($xeTable)
|
|
8586
8631
|
})
|
|
8587
8632
|
},
|
|
8633
|
+
clearSortByEvent (evnt: Event, fieldOrColumn?: VxeColumnPropTypes.Field | VxeTableDefines.ColumnInfo<any> | null) {
|
|
8634
|
+
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
8635
|
+
const internalData = $xeTable as unknown as TableInternalData
|
|
8636
|
+
|
|
8637
|
+
const { tableFullColumn } = internalData
|
|
8638
|
+
const sortOpts = $xeTable.computeSortOpts
|
|
8639
|
+
const sortCols: VxeTableDefines.ColumnInfo[] = []
|
|
8640
|
+
let column: VxeTableDefines.ColumnInfo<any> | null = null
|
|
8641
|
+
if (evnt) {
|
|
8642
|
+
if (fieldOrColumn) {
|
|
8643
|
+
column = handleFieldOrColumn($xeTable, fieldOrColumn)
|
|
8644
|
+
if (column) {
|
|
8645
|
+
column.order = null
|
|
8646
|
+
}
|
|
8647
|
+
} else {
|
|
8648
|
+
tableFullColumn.forEach((column) => {
|
|
8649
|
+
if (column.order) {
|
|
8650
|
+
column.order = null
|
|
8651
|
+
sortCols.push(column)
|
|
8652
|
+
}
|
|
8653
|
+
})
|
|
8654
|
+
}
|
|
8655
|
+
if (!sortOpts.remote) {
|
|
8656
|
+
$xeTable.handleTableData(true)
|
|
8657
|
+
}
|
|
8658
|
+
if (sortCols.length) {
|
|
8659
|
+
const params = { $table: $xeTable, $event: evnt, cols: sortCols, sortList: [] }
|
|
8660
|
+
$xeTable.dispatchEvent('clear-all-sort', params, evnt)
|
|
8661
|
+
} else if (column) {
|
|
8662
|
+
$xeTable.handleColumnSortEvent(evnt, column)
|
|
8663
|
+
}
|
|
8664
|
+
}
|
|
8665
|
+
return $xeTable.$nextTick().then(() => {
|
|
8666
|
+
updateRowOffsetTop($xeTable)
|
|
8667
|
+
return updateStyle($xeTable)
|
|
8668
|
+
})
|
|
8669
|
+
},
|
|
8588
8670
|
// 在 v3 中废弃
|
|
8589
8671
|
getSortColumn () {
|
|
8590
8672
|
if (process.env.VUE_APP_VXE_ENV === 'development') {
|
|
@@ -8613,6 +8695,18 @@ const Methods = {
|
|
|
8613
8695
|
}
|
|
8614
8696
|
return sortList
|
|
8615
8697
|
},
|
|
8698
|
+
setFilterByEvent (evnt: Event, fieldOrColumn: VxeColumnPropTypes.Field | VxeTableDefines.ColumnInfo<any>, options: VxeColumnPropTypes.FilterItem[], isUpdate?: boolean) {
|
|
8699
|
+
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
8700
|
+
|
|
8701
|
+
const column = handleFieldOrColumn($xeTable, fieldOrColumn)
|
|
8702
|
+
if (column && column.filters) {
|
|
8703
|
+
column.filters = toFilters(options || [])
|
|
8704
|
+
if (isUpdate) {
|
|
8705
|
+
return $xeTable.handleColumnConfirmFilter(column, evnt)
|
|
8706
|
+
}
|
|
8707
|
+
}
|
|
8708
|
+
return $xeTable.$nextTick()
|
|
8709
|
+
},
|
|
8616
8710
|
/**
|
|
8617
8711
|
* 关闭筛选
|
|
8618
8712
|
* @param {Event} evnt 事件
|
|
@@ -8653,6 +8747,51 @@ const Methods = {
|
|
|
8653
8747
|
isFilter (fieldOrColumn: any) {
|
|
8654
8748
|
return this.isActiveFilterByColumn(fieldOrColumn)
|
|
8655
8749
|
},
|
|
8750
|
+
clearFilterByEvent (evnt: Event, fieldOrColumn?: VxeColumnPropTypes.Field | VxeTableDefines.ColumnInfo<any> | null) {
|
|
8751
|
+
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
8752
|
+
const reactData = $xeTable as unknown as TableReactData
|
|
8753
|
+
const internalData = $xeTable as unknown as TableInternalData
|
|
8754
|
+
|
|
8755
|
+
const { filterStore } = reactData
|
|
8756
|
+
const { tableFullColumn } = internalData
|
|
8757
|
+
const filterOpts = $xeTable.computeFilterOpts
|
|
8758
|
+
const filterCols: VxeTableDefines.ColumnInfo[] = []
|
|
8759
|
+
let column: VxeTableDefines.ColumnInfo<any> | null = null
|
|
8760
|
+
if (fieldOrColumn) {
|
|
8761
|
+
column = handleFieldOrColumn($xeTable, fieldOrColumn)
|
|
8762
|
+
if (column) {
|
|
8763
|
+
$xeTable.handleClearFilter(column)
|
|
8764
|
+
}
|
|
8765
|
+
} else {
|
|
8766
|
+
tableFullColumn.forEach(column => {
|
|
8767
|
+
if (column.filters) {
|
|
8768
|
+
filterCols.push(column)
|
|
8769
|
+
$xeTable.handleClearFilter(column)
|
|
8770
|
+
}
|
|
8771
|
+
})
|
|
8772
|
+
}
|
|
8773
|
+
if (!fieldOrColumn || column !== filterStore.column) {
|
|
8774
|
+
Object.assign(filterStore, {
|
|
8775
|
+
isAllSelected: false,
|
|
8776
|
+
isIndeterminate: false,
|
|
8777
|
+
style: null,
|
|
8778
|
+
options: [],
|
|
8779
|
+
column: null,
|
|
8780
|
+
multiple: false,
|
|
8781
|
+
visible: false
|
|
8782
|
+
})
|
|
8783
|
+
}
|
|
8784
|
+
if (!filterOpts.remote) {
|
|
8785
|
+
$xeTable.updateData()
|
|
8786
|
+
}
|
|
8787
|
+
if (filterCols.length) {
|
|
8788
|
+
const params = { $table: $xeTable, $event: evnt, cols: filterCols, filterList: [] }
|
|
8789
|
+
$xeTable.dispatchEvent('clear-all-filter', params, evnt)
|
|
8790
|
+
} else if (column) {
|
|
8791
|
+
$xeTable.dispatchEvent('clear-filter', { filterList: () => $xeTable.getCheckedFilters() }, evnt)
|
|
8792
|
+
}
|
|
8793
|
+
return $xeTable.$nextTick()
|
|
8794
|
+
},
|
|
8656
8795
|
/**
|
|
8657
8796
|
* 判断展开行是否懒加载完成
|
|
8658
8797
|
* @param {Row} row 行对象
|
|
@@ -8665,7 +8804,7 @@ const Methods = {
|
|
|
8665
8804
|
return rowRest && !!rowRest.expandLoaded
|
|
8666
8805
|
},
|
|
8667
8806
|
clearRowExpandLoaded (row: any) {
|
|
8668
|
-
const $xeTable = this as VxeTableConstructor
|
|
8807
|
+
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
8669
8808
|
const reactData = $xeTable as unknown as TableReactData
|
|
8670
8809
|
const internalData = $xeTable as unknown as TableInternalData
|
|
8671
8810
|
|
|
@@ -1794,6 +1794,7 @@ export default {
|
|
|
1794
1794
|
const columnOpts = $xeTable.computeColumnOpts
|
|
1795
1795
|
const rowOpts = $xeTable.computeRowOpts
|
|
1796
1796
|
const customOpts = $xeTable.computeCustomOpts
|
|
1797
|
+
const virtualYOpts = $xeTable.computeVirtualYOpts
|
|
1797
1798
|
|
|
1798
1799
|
if (columnOpts.drag || rowOpts.drag || customOpts.allowSort) {
|
|
1799
1800
|
initTpImg()
|
|
@@ -1839,9 +1840,11 @@ export default {
|
|
|
1839
1840
|
this.$resize = resizeObserver
|
|
1840
1841
|
}
|
|
1841
1842
|
|
|
1842
|
-
|
|
1843
|
-
|
|
1844
|
-
tableViewportEl
|
|
1843
|
+
if (virtualYOpts.mode !== 'scroll') {
|
|
1844
|
+
const tableViewportEl = $xeTable.$refs.refTableViewportElem as HTMLDivElement
|
|
1845
|
+
if (tableViewportEl) {
|
|
1846
|
+
tableViewportEl.addEventListener('wheel', $xeTable.triggerBodyWheelEvent, { passive: false })
|
|
1847
|
+
}
|
|
1845
1848
|
}
|
|
1846
1849
|
|
|
1847
1850
|
this.preventEvent(null, 'mounted')
|
|
@@ -1050,6 +1050,20 @@ $btnThemeList: (
|
|
|
1050
1050
|
}
|
|
1051
1051
|
}
|
|
1052
1052
|
}
|
|
1053
|
+
.vxe-header--column {
|
|
1054
|
+
&.col--ellipsis {
|
|
1055
|
+
&.col--center {
|
|
1056
|
+
.vxe-cell--wrapper {
|
|
1057
|
+
justify-content: center;
|
|
1058
|
+
}
|
|
1059
|
+
}
|
|
1060
|
+
&.col--right {
|
|
1061
|
+
.vxe-cell--wrapper {
|
|
1062
|
+
justify-content: right;
|
|
1063
|
+
}
|
|
1064
|
+
}
|
|
1065
|
+
}
|
|
1066
|
+
}
|
|
1053
1067
|
.vxe-header--column,
|
|
1054
1068
|
.vxe-footer--column {
|
|
1055
1069
|
&.col--ellipsis {
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|