vxe-table 3.18.0 → 3.18.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/style.css +1 -1
- package/es/table/module/edit/mixin.js +58 -20
- package/es/table/module/filter/mixin.js +12 -10
- package/es/table/module/menu/mixin.js +16 -9
- package/es/table/module/validator/mixin.js +4 -2
- package/es/table/src/methods.js +344 -46
- package/es/table/src/store.js +8 -0
- package/es/table/src/table.js +26 -9
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/lib/index.umd.js +518 -104
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/table/module/edit/mixin.js +55 -16
- package/lib/table/module/edit/mixin.min.js +1 -1
- package/lib/table/module/filter/mixin.js +12 -10
- package/lib/table/module/filter/mixin.min.js +1 -1
- package/lib/table/module/menu/mixin.js +20 -13
- package/lib/table/module/menu/mixin.min.js +1 -1
- package/lib/table/module/validator/mixin.js +4 -2
- package/lib/table/module/validator/mixin.min.js +1 -1
- package/lib/table/src/methods.js +388 -52
- package/lib/table/src/methods.min.js +1 -1
- package/lib/table/src/store.js +15 -0
- package/lib/table/src/store.min.js +1 -0
- package/lib/table/src/table.js +28 -9
- package/lib/table/src/table.min.js +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/package.json +1 -1
- package/packages/table/module/edit/mixin.ts +59 -23
- package/packages/table/module/filter/mixin.ts +17 -13
- package/packages/table/module/menu/mixin.ts +16 -9
- package/packages/table/module/validator/mixin.ts +8 -4
- package/packages/table/src/methods.ts +362 -50
- package/packages/table/src/store.ts +15 -0
- package/packages/table/src/table.ts +27 -9
- /package/es/{iconfont.1756083626568.ttf → iconfont.1756272539382.ttf} +0 -0
- /package/es/{iconfont.1756083626568.woff → iconfont.1756272539382.woff} +0 -0
- /package/es/{iconfont.1756083626568.woff2 → iconfont.1756272539382.woff2} +0 -0
- /package/lib/{iconfont.1756083626568.ttf → iconfont.1756272539382.ttf} +0 -0
- /package/lib/{iconfont.1756083626568.woff → iconfont.1756272539382.woff} +0 -0
- /package/lib/{iconfont.1756083626568.woff2 → iconfont.1756272539382.woff2} +0 -0
|
@@ -15,11 +15,13 @@ export default {
|
|
|
15
15
|
* @param column
|
|
16
16
|
*/
|
|
17
17
|
_openFilter (fieldOrColumn: any) {
|
|
18
|
+
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
19
|
+
|
|
18
20
|
const column = handleFieldOrColumn(this, fieldOrColumn)
|
|
19
21
|
if (column && column.filters) {
|
|
20
22
|
const { elemStore } = this
|
|
21
23
|
const { fixed } = column
|
|
22
|
-
return
|
|
24
|
+
return $xeTable.scrollToColumn(column).then(() => {
|
|
23
25
|
const headerWrapperElem = elemStore[`${fixed || 'main'}-header-wrapper`] || elemStore['main-header-wrapper']
|
|
24
26
|
if (headerWrapperElem) {
|
|
25
27
|
const filterBtnElem = headerWrapperElem.querySelector(`.vxe-header--column.${column.id} .vxe-cell--filter`)
|
|
@@ -27,7 +29,7 @@ export default {
|
|
|
27
29
|
}
|
|
28
30
|
})
|
|
29
31
|
}
|
|
30
|
-
return
|
|
32
|
+
return $xeTable.$nextTick()
|
|
31
33
|
},
|
|
32
34
|
/**
|
|
33
35
|
* 修改筛选条件列表
|
|
@@ -195,9 +197,9 @@ export default {
|
|
|
195
197
|
return filterList
|
|
196
198
|
},
|
|
197
199
|
handleColumnConfirmFilter (column: VxeTableDefines.ColumnInfo, evnt: Event | null) {
|
|
198
|
-
const $xeTable = this
|
|
200
|
+
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
199
201
|
const props = $xeTable
|
|
200
|
-
const reactData = $xeTable
|
|
202
|
+
const reactData = $xeTable as unknown as TableReactData
|
|
201
203
|
|
|
202
204
|
const { mouseConfig } = props
|
|
203
205
|
const { scrollXLoad: oldScrollXLoad, scrollYLoad: oldScrollYLoad } = reactData
|
|
@@ -212,22 +214,22 @@ export default {
|
|
|
212
214
|
datas.push(item.data)
|
|
213
215
|
}
|
|
214
216
|
})
|
|
215
|
-
const filterList =
|
|
216
|
-
const params = { $table:
|
|
217
|
+
const filterList = $xeTable.getCheckedFilters()
|
|
218
|
+
const params = { $table: $xeTable, $event: evnt as Event, column, field, property: field, values, datas, filters: filterList, filterList }
|
|
217
219
|
// 如果是服务端筛选,则跳过本地筛选处理
|
|
218
220
|
if (!filterOpts.remote) {
|
|
219
|
-
|
|
220
|
-
|
|
221
|
+
$xeTable.handleTableData(true)
|
|
222
|
+
$xeTable.checkSelectionStatus()
|
|
221
223
|
}
|
|
222
|
-
if (mouseConfig && mouseOpts.area &&
|
|
223
|
-
$xeTable.handleFilterEvent(evnt, params)
|
|
224
|
+
if (mouseConfig && mouseOpts.area && $xeTable.handleFilterEvent) {
|
|
225
|
+
$xeTable.handleFilterEvent(evnt as Event, params)
|
|
224
226
|
}
|
|
225
227
|
if (evnt) {
|
|
226
|
-
$xeTable.
|
|
228
|
+
$xeTable.dispatchEvent('filter-change', params, evnt)
|
|
227
229
|
}
|
|
228
230
|
$xeTable.closeFilter()
|
|
229
231
|
return $xeTable.updateFooter().then(() => {
|
|
230
|
-
const { scrollXLoad, scrollYLoad } =
|
|
232
|
+
const { scrollXLoad, scrollYLoad } = reactData
|
|
231
233
|
if ((oldScrollXLoad || scrollXLoad) || (oldScrollYLoad || scrollYLoad)) {
|
|
232
234
|
if ((oldScrollXLoad || scrollXLoad)) {
|
|
233
235
|
$xeTable.updateScrollXSpace()
|
|
@@ -259,6 +261,8 @@ export default {
|
|
|
259
261
|
$xeTable.handleColumnConfirmFilter(column, evnt)
|
|
260
262
|
},
|
|
261
263
|
handleClearFilter (column: any) {
|
|
264
|
+
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
265
|
+
|
|
262
266
|
if (column) {
|
|
263
267
|
const { filters, filterRender } = column
|
|
264
268
|
if (filters) {
|
|
@@ -272,7 +276,7 @@ export default {
|
|
|
272
276
|
}
|
|
273
277
|
})
|
|
274
278
|
if (filterResetMethod) {
|
|
275
|
-
filterResetMethod({ options: filters, column, $table:
|
|
279
|
+
filterResetMethod({ options: filters, column, $table: $xeTable })
|
|
276
280
|
}
|
|
277
281
|
}
|
|
278
282
|
}
|
|
@@ -105,22 +105,29 @@ export default {
|
|
|
105
105
|
const params: any = { type: layout, $table: $xeTable, $grid: $xeGrid, $gantt: $xeGantt, columns: this.visibleColumn.slice(0), $event: evnt }
|
|
106
106
|
if (columnTargetNode.flag) {
|
|
107
107
|
const cell = columnTargetNode.targetElem
|
|
108
|
-
const
|
|
108
|
+
const columnNodeRest = $xeTable.getColumnNode(cell)
|
|
109
|
+
const column = columnNodeRest ? columnNodeRest.item : null
|
|
109
110
|
let typePrefix = `${layout}-`
|
|
110
|
-
|
|
111
|
+
if (column) {
|
|
112
|
+
Object.assign(params, { column, columnIndex: $xeTable.getColumnIndex(column), cell })
|
|
113
|
+
}
|
|
111
114
|
if (layout === 'body') {
|
|
112
|
-
const
|
|
115
|
+
const rowNodeRest = $xeTable.getRowNode(cell.parentNode)
|
|
116
|
+
const row = rowNodeRest ? rowNodeRest.item : null
|
|
113
117
|
typePrefix = ''
|
|
114
|
-
|
|
115
|
-
|
|
118
|
+
if (row) {
|
|
119
|
+
params.row = row
|
|
120
|
+
params.rowIndex = $xeTable.getRowIndex(row)
|
|
121
|
+
}
|
|
116
122
|
}
|
|
123
|
+
const eventType = `${typePrefix}cell-menu` as 'cell-menu' | 'header-cell-menu' | 'footer-cell-menu'
|
|
117
124
|
this.handleOpenMenuEvent(evnt, layout, params)
|
|
118
125
|
// 在 v4 中废弃事件 cell-context-menu、header-cell-context-menu、footer-cell-context-menu
|
|
119
126
|
if (this.$listeners[`${typePrefix}cell-context-menu`]) {
|
|
120
127
|
warnLog('vxe.error.delEvent', [`${typePrefix}cell-context-menu`, `${typePrefix}cell-menu`])
|
|
121
|
-
|
|
128
|
+
$xeTable.dispatchEvent(`${typePrefix}cell-context-menu` as any, params, evnt)
|
|
122
129
|
} else {
|
|
123
|
-
|
|
130
|
+
$xeTable.dispatchEvent(eventType, params, evnt)
|
|
124
131
|
}
|
|
125
132
|
return
|
|
126
133
|
} else if (getEventTargetNode(evnt, this.$el, `vxe-table--${layout}-wrapper`, target => target.getAttribute('xid') === tId).flag) {
|
|
@@ -271,9 +278,9 @@ export default {
|
|
|
271
278
|
// 在 v4 中废弃事件 context-menu-click
|
|
272
279
|
if (this.$listeners['context-menu-click']) {
|
|
273
280
|
warnLog('vxe.error.delEvent', ['context-menu-click', 'menu-click'])
|
|
274
|
-
|
|
281
|
+
$xeTable.dispatchEvent('context-menu-click' as any, params, evnt)
|
|
275
282
|
} else {
|
|
276
|
-
|
|
283
|
+
$xeTable.dispatchEvent('menu-click', params, evnt)
|
|
277
284
|
}
|
|
278
285
|
this.closeMenu()
|
|
279
286
|
}
|
|
@@ -5,7 +5,7 @@ import { scrollToView } from '../../../ui/src/dom'
|
|
|
5
5
|
import { handleFieldOrColumn, getRowid } from '../../src/util'
|
|
6
6
|
import { warnLog, errLog } from '../../../ui/src/log'
|
|
7
7
|
|
|
8
|
-
import type { VxeTableDefines, TableInternalData, TableReactData } from '../../../../types'
|
|
8
|
+
import type { VxeTableDefines, TableInternalData, TableReactData, VxeTableConstructor, VxeTablePrivateMethods } from '../../../../types'
|
|
9
9
|
|
|
10
10
|
const { getConfig, validators } = VxeUI
|
|
11
11
|
|
|
@@ -185,10 +185,12 @@ export default {
|
|
|
185
185
|
* 聚焦到校验通过的单元格并弹出校验错误提示
|
|
186
186
|
*/
|
|
187
187
|
handleValidError (params: any) {
|
|
188
|
+
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
189
|
+
|
|
188
190
|
const { validOpts } = this
|
|
189
191
|
return new Promise<void>(resolve => {
|
|
190
192
|
if (validOpts.autoPos === false) {
|
|
191
|
-
|
|
193
|
+
$xeTable.dispatchEvent('valid-error', params, null)
|
|
192
194
|
resolve()
|
|
193
195
|
} else {
|
|
194
196
|
this.handleEdit(params, { type: 'valid-error', trigger: 'call' }).then(() => {
|
|
@@ -227,7 +229,7 @@ export default {
|
|
|
227
229
|
* 返回 Promise 对象,或者使用回调方式
|
|
228
230
|
*/
|
|
229
231
|
beginValidate (rows: any, cols: VxeTableDefines.ColumnInfo[] | null, cb: any, isFull: any) {
|
|
230
|
-
const $xeTable = this
|
|
232
|
+
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
231
233
|
const props = $xeTable
|
|
232
234
|
const reactData = $xeTable as unknown as TableReactData
|
|
233
235
|
const internalData = $xeTable as unknown as TableInternalData
|
|
@@ -546,6 +548,8 @@ export default {
|
|
|
546
548
|
* 弹出校验错误提示
|
|
547
549
|
*/
|
|
548
550
|
showValidTooltip (params: any) {
|
|
551
|
+
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
552
|
+
|
|
549
553
|
const { $refs, height, validStore, validErrorMaps, tableData, validOpts } = this
|
|
550
554
|
const { rule, row, column, cell } = params
|
|
551
555
|
const validTip = $refs.refValidTooltip
|
|
@@ -570,7 +574,7 @@ export default {
|
|
|
570
574
|
}
|
|
571
575
|
})
|
|
572
576
|
}
|
|
573
|
-
|
|
577
|
+
$xeTable.dispatchEvent('valid-error', params, null)
|
|
574
578
|
if (validTip) {
|
|
575
579
|
if (validTip && (validOpts.message === 'tooltip' || (validOpts.message === 'default' && !height && tableData.length < 2))) {
|
|
576
580
|
return validTip.open(cell, content)
|