vxe-table 4.2.0-beta.5 → 4.2.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/edit/src/hook.js +3 -0
- package/es/export/src/hook.js +1 -1
- package/es/locale/lang/en-US.js +2 -1
- package/es/locale/lang/ja-JP.js +2 -1
- package/es/locale/lang/zh-CN.js +2 -1
- package/es/locale/lang/zh-TC.js +2 -1
- package/es/table/src/emits.js +1 -0
- package/es/table/src/table.js +41 -15
- package/es/tools/log.js +1 -1
- package/es/v-x-e-table/index.js +1 -1
- package/es/v-x-e-table/src/conf.js +1 -1
- package/lib/edit/src/hook.js +4 -0
- package/lib/edit/src/hook.min.js +1 -1
- package/lib/export/src/hook.js +1 -1
- package/lib/export/src/hook.min.js +1 -1
- package/lib/index.umd.js +63 -23
- package/lib/index.umd.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/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/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/locale/lang/zh-HK.min.js +1 -1
- package/lib/locale/lang/zh-HK.umd.js +2 -1
- package/lib/locale/lang/zh-MO.min.js +1 -1
- package/lib/locale/lang/zh-MO.umd.js +2 -1
- package/lib/locale/lang/zh-TC.js +2 -1
- package/lib/locale/lang/zh-TC.min.js +1 -1
- package/lib/locale/lang/zh-TC.umd.js +2 -1
- package/lib/locale/lang/zh-TW.min.js +1 -1
- package/lib/locale/lang/zh-TW.umd.js +2 -1
- package/lib/table/src/emits.js +1 -1
- package/lib/table/src/emits.min.js +1 -1
- package/lib/table/src/table.js +52 -17
- package/lib/table/src/table.min.js +1 -1
- package/lib/tools/log.js +1 -1
- package/lib/tools/log.min.js +1 -1
- package/lib/v-x-e-table/index.js +1 -1
- package/lib/v-x-e-table/index.min.js +1 -1
- package/lib/v-x-e-table/src/conf.js +1 -1
- package/lib/v-x-e-table/src/conf.min.js +1 -1
- package/package.json +1 -1
- package/packages/edit/src/hook.ts +3 -0
- package/packages/export/src/hook.ts +1 -1
- package/packages/locale/lang/en-US.ts +2 -1
- package/packages/locale/lang/ja-JP.ts +2 -1
- package/packages/locale/lang/zh-CN.ts +2 -1
- package/packages/locale/lang/zh-TC.ts +2 -1
- package/packages/table/src/emits.ts +1 -0
- package/packages/table/src/table.ts +44 -23
- package/packages/v-x-e-table/src/conf.ts +1 -1
- package/types/plugins/pro.d.ts +6 -2
- package/types/table.d.ts +9 -6
|
@@ -79,7 +79,8 @@ export default {
|
|
|
79
79
|
area: {
|
|
80
80
|
mergeErr: 'The operation cannot be performed on merged cells',
|
|
81
81
|
multiErr: 'The operation cannot be performed on multiple selection areas',
|
|
82
|
-
extendErr: 'If the extended area contains merged cells, all merged cells need to be the same size'
|
|
82
|
+
extendErr: 'If the extended area contains merged cells, all merged cells need to be the same size',
|
|
83
|
+
pasteMultiErr: 'Cannot paste, copied area and pasted area of the same size are required to perform this operation'
|
|
83
84
|
},
|
|
84
85
|
fnr: {
|
|
85
86
|
title: 'Find and replace',
|
|
@@ -79,7 +79,8 @@ export default {
|
|
|
79
79
|
area: {
|
|
80
80
|
mergeErr: '无法对合并单元格进行该操作',
|
|
81
81
|
multiErr: '无法对多重选择区域进行该操作',
|
|
82
|
-
extendErr: '如果延伸的区域包含被合并的单元格,所有合并的单元格需大小相同'
|
|
82
|
+
extendErr: '如果延伸的区域包含被合并的单元格,所有合并的单元格需大小相同',
|
|
83
|
+
pasteMultiErr: '无法粘贴,需要相同大小的复制的区域和粘贴的区域才能执行此操作'
|
|
83
84
|
},
|
|
84
85
|
fnr: {
|
|
85
86
|
title: '查找和替换',
|
|
@@ -79,7 +79,8 @@ export default {
|
|
|
79
79
|
area: {
|
|
80
80
|
mergeErr: '无法对合并单元格进行该操作',
|
|
81
81
|
multiErr: '无法对多重选择区域进行该操作',
|
|
82
|
-
extendErr: '如果延伸的区域包含被合并的单元格,所有合并的单元格需大小相同'
|
|
82
|
+
extendErr: '如果延伸的区域包含被合并的单元格,所有合并的单元格需大小相同',
|
|
83
|
+
pasteMultiErr: '无法粘贴,需要相同大小的复制的区域和粘贴的区域才能执行此操作'
|
|
83
84
|
},
|
|
84
85
|
fnr: {
|
|
85
86
|
title: '查找和替换',
|
|
@@ -79,7 +79,8 @@ export default {
|
|
|
79
79
|
area: {
|
|
80
80
|
mergeErr: '無法對合併儲存格進行該操作',
|
|
81
81
|
multiErr: '無法對多重選擇區域進行該操作',
|
|
82
|
-
extendErr: '如果延伸的區域包含被合併的儲存格,所有合併的儲存格需大小相同'
|
|
82
|
+
extendErr: '如果延伸的區域包含被合併的儲存格,所有合併的儲存格需大小相同',
|
|
83
|
+
pasteMultiErr: '无法粘贴,需要相同大小的复制的区域和粘贴的区域才能执行此操作'
|
|
83
84
|
},
|
|
84
85
|
fnr: {
|
|
85
86
|
title: '查找和替換',
|
|
@@ -598,8 +598,7 @@ export default defineComponent({
|
|
|
598
598
|
return true
|
|
599
599
|
}
|
|
600
600
|
if (XEUtils.isString(val1) || XEUtils.isNumber(val1)) {
|
|
601
|
-
|
|
602
|
-
return val1 == val2
|
|
601
|
+
return ('' + val1) === ('' + val2)
|
|
603
602
|
}
|
|
604
603
|
return XEUtils.isEqual(val1, val2)
|
|
605
604
|
}
|
|
@@ -618,9 +617,9 @@ export default defineComponent({
|
|
|
618
617
|
return rest && rest._v === version ? rest : { _v: version }
|
|
619
618
|
}
|
|
620
619
|
|
|
621
|
-
const getRecoverRow = (list: any) => {
|
|
620
|
+
const getRecoverRow = (list: any[]) => {
|
|
622
621
|
const { fullAllDataRowIdData } = internalData
|
|
623
|
-
return list.filter((row
|
|
622
|
+
return list.filter((row) => {
|
|
624
623
|
const rowid = getRowid($xetable, row)
|
|
625
624
|
return !!fullAllDataRowIdData[rowid]
|
|
626
625
|
})
|
|
@@ -1210,7 +1209,7 @@ export default defineComponent({
|
|
|
1210
1209
|
const treeOpts = computeTreeOpts.value
|
|
1211
1210
|
const { transform } = treeOpts
|
|
1212
1211
|
const { remote: allRemoteFilter, filterMethod: allFilterMethod } = filterOpts
|
|
1213
|
-
const { remote: allRemoteSort, sortMethod: allSortMethod } = sortOpts
|
|
1212
|
+
const { remote: allRemoteSort, sortMethod: allSortMethod, multiple: sortMultiple, chronological } = sortOpts
|
|
1214
1213
|
let tableData: any[] = []
|
|
1215
1214
|
let tableTree: any[] = []
|
|
1216
1215
|
|
|
@@ -1221,12 +1220,7 @@ export default defineComponent({
|
|
|
1221
1220
|
valueList: any[]
|
|
1222
1221
|
itemList: VxeTableDefines.FilterOption[]
|
|
1223
1222
|
}[] = []
|
|
1224
|
-
|
|
1225
|
-
column: VxeTableDefines.ColumnInfo
|
|
1226
|
-
field: string
|
|
1227
|
-
property: string
|
|
1228
|
-
order: VxeTablePropTypes.SortOrder
|
|
1229
|
-
}[] = []
|
|
1223
|
+
let orderColumns: VxeTableDefines.SortCheckedParams[] = []
|
|
1230
1224
|
tableFullColumn.forEach((column) => {
|
|
1231
1225
|
const { property, sortable, order, filters } = column
|
|
1232
1226
|
if (!allRemoteFilter && filters && filters.length) {
|
|
@@ -1243,9 +1237,12 @@ export default defineComponent({
|
|
|
1243
1237
|
}
|
|
1244
1238
|
}
|
|
1245
1239
|
if (!allRemoteSort && sortable && order) {
|
|
1246
|
-
orderColumns.push({ column, field: property, property, order })
|
|
1240
|
+
orderColumns.push({ column, field: property, property, order, sortTime: column.sortTime })
|
|
1247
1241
|
}
|
|
1248
1242
|
})
|
|
1243
|
+
if (sortMultiple && chronological && orderColumns.length > 1) {
|
|
1244
|
+
orderColumns = XEUtils.orderBy(orderColumns, 'sortTime')
|
|
1245
|
+
}
|
|
1249
1246
|
|
|
1250
1247
|
// 处理筛选
|
|
1251
1248
|
// 支持单列、多列、组合筛选
|
|
@@ -1586,12 +1583,13 @@ export default defineComponent({
|
|
|
1586
1583
|
defaultSort = [defaultSort]
|
|
1587
1584
|
}
|
|
1588
1585
|
if (defaultSort.length) {
|
|
1589
|
-
(sortConfig.multiple ? defaultSort : defaultSort.slice(0, 1)).forEach((item: any) => {
|
|
1586
|
+
(sortConfig.multiple ? defaultSort : defaultSort.slice(0, 1)).forEach((item: any, index: number) => {
|
|
1590
1587
|
const { field, order } = item
|
|
1591
1588
|
if (field && order) {
|
|
1592
1589
|
const column = tableMethods.getColumnByField(field)
|
|
1593
1590
|
if (column && column.sortable) {
|
|
1594
1591
|
column.order = order
|
|
1592
|
+
column.sortTime = Date.now() + index
|
|
1595
1593
|
}
|
|
1596
1594
|
}
|
|
1597
1595
|
})
|
|
@@ -3393,7 +3391,7 @@ export default defineComponent({
|
|
|
3393
3391
|
if (!multiple) {
|
|
3394
3392
|
clearAllSort()
|
|
3395
3393
|
}
|
|
3396
|
-
(multiple ? sortConfs : [sortConfs[0]]).forEach((confs: any) => {
|
|
3394
|
+
(multiple ? sortConfs : [sortConfs[0]]).forEach((confs: any, index: number) => {
|
|
3397
3395
|
let { field, order } = confs
|
|
3398
3396
|
let column = field
|
|
3399
3397
|
if (XEUtils.isString(field)) {
|
|
@@ -3406,7 +3404,7 @@ export default defineComponent({
|
|
|
3406
3404
|
if (column.order !== order) {
|
|
3407
3405
|
column.order = order
|
|
3408
3406
|
}
|
|
3409
|
-
column.sortTime = Date.now()
|
|
3407
|
+
column.sortTime = Date.now() + index
|
|
3410
3408
|
}
|
|
3411
3409
|
})
|
|
3412
3410
|
// 如果是服务端排序,则跳过本地排序处理
|
|
@@ -3445,14 +3443,19 @@ export default defineComponent({
|
|
|
3445
3443
|
return tableMethods.getSortColumns().length > 0
|
|
3446
3444
|
},
|
|
3447
3445
|
getSortColumns () {
|
|
3446
|
+
const sortOpts = computeSortOpts.value
|
|
3447
|
+
const { multiple, chronological } = sortOpts
|
|
3448
3448
|
const sortList: VxeTableDefines.SortCheckedParams[] = []
|
|
3449
3449
|
const { tableFullColumn } = internalData
|
|
3450
3450
|
tableFullColumn.forEach((column) => {
|
|
3451
3451
|
const { property, order } = column
|
|
3452
3452
|
if (column.sortable && order) {
|
|
3453
|
-
sortList.push({ column, field: property, property, order })
|
|
3453
|
+
sortList.push({ column, field: property, property, order, sortTime: column.sortTime })
|
|
3454
3454
|
}
|
|
3455
3455
|
})
|
|
3456
|
+
if (multiple && chronological && sortList.length > 1) {
|
|
3457
|
+
return XEUtils.orderBy(sortList, 'sortTime')
|
|
3458
|
+
}
|
|
3456
3459
|
return sortList
|
|
3457
3460
|
},
|
|
3458
3461
|
/**
|
|
@@ -5376,12 +5379,18 @@ export default defineComponent({
|
|
|
5376
5379
|
nextTick(updateStyle)
|
|
5377
5380
|
},
|
|
5378
5381
|
updateScrollXData () {
|
|
5379
|
-
|
|
5380
|
-
|
|
5382
|
+
reactData.tableColumn = []
|
|
5383
|
+
nextTick(() => {
|
|
5384
|
+
handleTableColumn()
|
|
5385
|
+
tablePrivateMethods.updateScrollXSpace()
|
|
5386
|
+
})
|
|
5381
5387
|
},
|
|
5382
5388
|
updateScrollYData () {
|
|
5383
|
-
|
|
5384
|
-
|
|
5389
|
+
reactData.tableData = []
|
|
5390
|
+
nextTick(() => {
|
|
5391
|
+
tablePrivateMethods.handleTableData()
|
|
5392
|
+
tablePrivateMethods.updateScrollYSpace()
|
|
5393
|
+
})
|
|
5385
5394
|
},
|
|
5386
5395
|
/**
|
|
5387
5396
|
* 处理固定列的显示状态
|
|
@@ -5713,13 +5722,13 @@ export default defineComponent({
|
|
|
5713
5722
|
|
|
5714
5723
|
if (process.env.VUE_APP_VXE_TABLE_ENV === 'development') {
|
|
5715
5724
|
// if (props.rowId) {
|
|
5716
|
-
// warnLog('vxe.error.delProp', ['
|
|
5725
|
+
// warnLog('vxe.error.delProp', ['row-id', 'row-config.keyField'])
|
|
5717
5726
|
// }
|
|
5718
5727
|
// if (props.rowKey) {
|
|
5719
|
-
// warnLog('vxe.error.delProp', ['
|
|
5728
|
+
// warnLog('vxe.error.delProp', ['row-id', 'row-config.useKey'])
|
|
5720
5729
|
// }
|
|
5721
5730
|
// if (props.columnKey) {
|
|
5722
|
-
// warnLog('vxe.error.delProp', ['
|
|
5731
|
+
// warnLog('vxe.error.delProp', ['row-id', 'column-config.useKey'])
|
|
5723
5732
|
// }
|
|
5724
5733
|
if (!(props.rowId || rowOpts.keyField) && (checkboxOpts.reserve || checkboxOpts.checkRowKeys || radioOpts.reserve || radioOpts.checkRowKey || expandOpts.expandRowKeys || treeOpts.expandRowKeys)) {
|
|
5725
5734
|
warnLog('vxe.error.reqProp', ['row-config.keyField'])
|
|
@@ -5736,6 +5745,18 @@ export default defineComponent({
|
|
|
5736
5745
|
if (props.showFooter && !props.footerMethod) {
|
|
5737
5746
|
warnLog('vxe.error.reqProp', ['footer-method'])
|
|
5738
5747
|
}
|
|
5748
|
+
// if (props.highlightCurrentRow) {
|
|
5749
|
+
// warnLog('vxe.error.delProp', ['highlight-current-row', 'row-config.isCurrent'])
|
|
5750
|
+
// }
|
|
5751
|
+
// if (props.highlightHoverRow) {
|
|
5752
|
+
// warnLog('vxe.error.delProp', ['highlight-hover-row', 'row-config.isHover'])
|
|
5753
|
+
// }
|
|
5754
|
+
// if (props.highlightCurrentColumn) {
|
|
5755
|
+
// warnLog('vxe.error.delProp', ['highlight-current-column', 'column-config.isCurrent'])
|
|
5756
|
+
// }
|
|
5757
|
+
// if (props.highlightHoverColumn) {
|
|
5758
|
+
// warnLog('vxe.error.delProp', ['highlight-hover-column', 'column-config.isHover'])
|
|
5759
|
+
// }
|
|
5739
5760
|
// 检查导入导出类型,如果自定义导入导出方法,则不校验类型
|
|
5740
5761
|
const { exportConfig, importConfig } = props
|
|
5741
5762
|
const exportOpts = computeExportOpts.value
|
package/types/plugins/pro.d.ts
CHANGED
|
@@ -12,9 +12,13 @@ export interface VxeTableProMethods {
|
|
|
12
12
|
*/
|
|
13
13
|
getActiveCellArea(): VxeTableProDefines.MouseActiveCellArea | null
|
|
14
14
|
/**
|
|
15
|
-
*
|
|
15
|
+
* @deprecated
|
|
16
16
|
*/
|
|
17
17
|
getCopyCellArea(): VxeTableProDefines.MouseCellArea | null
|
|
18
|
+
/**
|
|
19
|
+
* 用于 mouse-config.area,用于获取标记为复制粘贴的区域
|
|
20
|
+
*/
|
|
21
|
+
getCopyCellAreas(): VxeTableProDefines.MouseCellArea[]
|
|
18
22
|
/**
|
|
19
23
|
* 用于 mouse-config.area,复制指定区域,返回转换后的文本
|
|
20
24
|
*/
|
|
@@ -324,7 +328,7 @@ export namespace VxeTableProDefines {
|
|
|
324
328
|
export interface ActiveCellChangeStartEventParams extends EventParams, ActiveCellChangeStartParams { }
|
|
325
329
|
|
|
326
330
|
export interface ActiveCellChangeEndParams extends ActiveCellChangeStartParams {
|
|
327
|
-
|
|
331
|
+
beforeActiveArea: VxeTableProDefines.MouseCellArea
|
|
328
332
|
}
|
|
329
333
|
export interface ActiveCellChangeEndEventParams extends EventParams, ActiveCellChangeEndParams { }
|
|
330
334
|
}
|
package/types/table.d.ts
CHANGED
|
@@ -400,7 +400,7 @@ export interface TablePublicMethods {
|
|
|
400
400
|
*/
|
|
401
401
|
clearCheckboxRow(): Promise<any>
|
|
402
402
|
/**
|
|
403
|
-
* 用于
|
|
403
|
+
* 用于 row-config.isCurrent,设置某一行为高亮状态
|
|
404
404
|
* @param row 指定行
|
|
405
405
|
*/
|
|
406
406
|
setCurrentRow(row: any): Promise<any>
|
|
@@ -423,7 +423,7 @@ export interface TablePublicMethods {
|
|
|
423
423
|
*/
|
|
424
424
|
clearMergeFooterItems(): Promise<any>
|
|
425
425
|
/**
|
|
426
|
-
* 用于
|
|
426
|
+
* 用于 row-config.isCurrent,手动清空当前高亮的状态
|
|
427
427
|
*/
|
|
428
428
|
clearCurrentRow(): Promise<any>
|
|
429
429
|
/**
|
|
@@ -439,11 +439,11 @@ export interface TablePublicMethods {
|
|
|
439
439
|
*/
|
|
440
440
|
getMergeFooterItems(): VxeTableDefines.MergeInfo[]
|
|
441
441
|
/**
|
|
442
|
-
* 用于
|
|
442
|
+
* 用于 column-config.isCurrent,获取当前列
|
|
443
443
|
*/
|
|
444
444
|
getCurrentColumn(): VxeTableDefines.ColumnInfo | null
|
|
445
445
|
/**
|
|
446
|
-
* 用于
|
|
446
|
+
* 用于 row-config.isCurrent,获取当前行的行数据
|
|
447
447
|
*/
|
|
448
448
|
getCurrentRecord(): any
|
|
449
449
|
/**
|
|
@@ -451,12 +451,12 @@ export interface TablePublicMethods {
|
|
|
451
451
|
*/
|
|
452
452
|
getRadioRecord(isFull?: boolean): any
|
|
453
453
|
/**
|
|
454
|
-
* 用于
|
|
454
|
+
* 用于 column-config.isCurrent,设置某列行为高亮状态
|
|
455
455
|
* @param columnOrField 列对象或字段名
|
|
456
456
|
*/
|
|
457
457
|
setCurrentColumn(fieldOrColumn: VxeColumnPropTypes.Field | VxeTableDefines.ColumnInfo): Promise<any>
|
|
458
458
|
/**
|
|
459
|
-
* 用于
|
|
459
|
+
* 用于 column-config.isCurrent,手动清空当前高亮的状态
|
|
460
460
|
*/
|
|
461
461
|
clearCurrentColumn(): Promise<any>
|
|
462
462
|
/**
|
|
@@ -1310,6 +1310,7 @@ export namespace VxeTablePropTypes {
|
|
|
1310
1310
|
}): any[]
|
|
1311
1311
|
remote?: boolean
|
|
1312
1312
|
multiple?: boolean
|
|
1313
|
+
chronological?: boolean
|
|
1313
1314
|
trigger?: 'default' | 'cell'
|
|
1314
1315
|
showIcon?: boolean
|
|
1315
1316
|
iconAsc?: string
|
|
@@ -2074,6 +2075,7 @@ export type VxeTableEmits = [
|
|
|
2074
2075
|
'cell-menu',
|
|
2075
2076
|
'cell-mouseenter',
|
|
2076
2077
|
'cell-mouseleave',
|
|
2078
|
+
'cell-selected',
|
|
2077
2079
|
'header-cell-click',
|
|
2078
2080
|
'header-cell-dblclick',
|
|
2079
2081
|
'header-cell-menu',
|
|
@@ -2418,6 +2420,7 @@ export namespace VxeTableDefines {
|
|
|
2418
2420
|
field: VxeColumnPropTypes.Field
|
|
2419
2421
|
property: VxeColumnPropTypes.Field
|
|
2420
2422
|
order: VxeTablePropTypes.SortOrder
|
|
2423
|
+
sortTime: number
|
|
2421
2424
|
}
|
|
2422
2425
|
export interface SortChangeParams extends SortCheckedParams {
|
|
2423
2426
|
sortList: SortCheckedParams[]
|