vxe-table 3.5.0-beta.2 → 3.5.0
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/lib/export/src/mixin.js +1 -1
- package/lib/export/src/mixin.min.js +1 -1
- package/lib/index.umd.js +70 -41
- 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/methods.js +64 -36
- package/lib/table/src/methods.min.js +1 -1
- package/lib/table/src/table.js +16 -4
- 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/export/src/mixin.js +1 -1
- package/packages/locale/lang/en-US.js +2 -1
- package/packages/locale/lang/ja-JP.js +2 -1
- package/packages/locale/lang/zh-CN.js +2 -1
- package/packages/locale/lang/zh-TC.js +2 -1
- package/packages/table/src/methods.js +27 -14
- package/packages/table/src/table.js +15 -3
- package/packages/v-x-e-table/src/conf.js +1 -1
- package/types/table.d.ts +6 -6
|
@@ -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: '查找和替換',
|
|
@@ -31,8 +31,7 @@ function eqCellValue (row1, row2, field) {
|
|
|
31
31
|
return true
|
|
32
32
|
}
|
|
33
33
|
if (XEUtils.isString(val1) || XEUtils.isNumber(val1)) {
|
|
34
|
-
|
|
35
|
-
return val1 == val2
|
|
34
|
+
return ('' + val1) === ('' + val2)
|
|
36
35
|
}
|
|
37
36
|
return XEUtils.isEqual(val1, val2)
|
|
38
37
|
}
|
|
@@ -1151,12 +1150,12 @@ const Methods = {
|
|
|
1151
1150
|
updateAfterFullData () {
|
|
1152
1151
|
const { tableFullColumn, tableFullData, filterOpts, sortOpts, treeConfig, treeOpts, tableFullTreeData } = this
|
|
1153
1152
|
const { remote: allRemoteFilter, filterMethod: allFilterMethod } = filterOpts
|
|
1154
|
-
const { remote: allRemoteSort, sortMethod: allSortMethod, multiple: sortMultiple } = sortOpts
|
|
1153
|
+
const { remote: allRemoteSort, sortMethod: allSortMethod, multiple: sortMultiple, chronological } = sortOpts
|
|
1155
1154
|
const { transform } = treeOpts
|
|
1156
1155
|
let tableData = []
|
|
1157
1156
|
let tableTree = []
|
|
1158
1157
|
const filterColumns = []
|
|
1159
|
-
|
|
1158
|
+
let orderColumns = []
|
|
1160
1159
|
tableFullColumn.forEach(column => {
|
|
1161
1160
|
const { property, sortable, order, filters } = column
|
|
1162
1161
|
if (!allRemoteFilter && filters && filters.length) {
|
|
@@ -1173,9 +1172,12 @@ const Methods = {
|
|
|
1173
1172
|
}
|
|
1174
1173
|
}
|
|
1175
1174
|
if (!allRemoteSort && sortable && order) {
|
|
1176
|
-
orderColumns.push({ column, field: column.property, property, order })
|
|
1175
|
+
orderColumns.push({ column, field: column.property, property, order, sortTime: column.sortTime })
|
|
1177
1176
|
}
|
|
1178
1177
|
})
|
|
1178
|
+
if (sortMultiple && chronological && orderColumns.length > 1) {
|
|
1179
|
+
orderColumns = XEUtils.orderBy(orderColumns, 'sortTime')
|
|
1180
|
+
}
|
|
1179
1181
|
if (filterColumns.length) {
|
|
1180
1182
|
const handleFilter = (row) => {
|
|
1181
1183
|
return filterColumns.every(({ column, valueList, itemList }) => {
|
|
@@ -3513,13 +3515,13 @@ const Methods = {
|
|
|
3513
3515
|
defaultSort = [defaultSort]
|
|
3514
3516
|
}
|
|
3515
3517
|
if (defaultSort.length) {
|
|
3516
|
-
(sortConfig.multiple ? defaultSort : defaultSort.slice(0, 1)).forEach((item) => {
|
|
3518
|
+
(sortConfig.multiple ? defaultSort : defaultSort.slice(0, 1)).forEach((item, index) => {
|
|
3517
3519
|
const { field, order } = item
|
|
3518
3520
|
if (field && order) {
|
|
3519
3521
|
const column = this.getColumnByField(field)
|
|
3520
3522
|
if (column && column.sortable) {
|
|
3521
3523
|
column.order = order
|
|
3522
|
-
column.sortTime = Date.now()
|
|
3524
|
+
column.sortTime = Date.now() + index
|
|
3523
3525
|
}
|
|
3524
3526
|
}
|
|
3525
3527
|
})
|
|
@@ -3563,7 +3565,7 @@ const Methods = {
|
|
|
3563
3565
|
if (!multiple) {
|
|
3564
3566
|
clearAllSort(this)
|
|
3565
3567
|
}
|
|
3566
|
-
(multiple ? sortConfs : [sortConfs[0]]).forEach((confs) => {
|
|
3568
|
+
(multiple ? sortConfs : [sortConfs[0]]).forEach((confs, index) => {
|
|
3567
3569
|
let { field, order } = confs
|
|
3568
3570
|
let column = field
|
|
3569
3571
|
if (XEUtils.isString(field)) {
|
|
@@ -3579,6 +3581,7 @@ const Methods = {
|
|
|
3579
3581
|
if (column.order !== order) {
|
|
3580
3582
|
column.order = order
|
|
3581
3583
|
}
|
|
3584
|
+
column.sortTime = Date.now() + index
|
|
3582
3585
|
}
|
|
3583
3586
|
})
|
|
3584
3587
|
// 如果是服务端排序,则跳过本地排序处理
|
|
@@ -3624,13 +3627,17 @@ const Methods = {
|
|
|
3624
3627
|
return this.getSortColumns().length > 0
|
|
3625
3628
|
},
|
|
3626
3629
|
getSortColumns () {
|
|
3630
|
+
const { multiple, chronological } = this.sortOpts
|
|
3627
3631
|
const sortList = []
|
|
3628
3632
|
this.tableFullColumn.forEach((column) => {
|
|
3629
3633
|
const { property, order } = column
|
|
3630
3634
|
if ((column.sortable || column.remoteSort) && order) {
|
|
3631
|
-
sortList.push({ column, field: column.property, property, order })
|
|
3635
|
+
sortList.push({ column, field: column.property, property, order, sortTime: column.sortTime })
|
|
3632
3636
|
}
|
|
3633
3637
|
})
|
|
3638
|
+
if (multiple && chronological && sortList.length > 1) {
|
|
3639
|
+
return XEUtils.orderBy(sortList, 'sortTime')
|
|
3640
|
+
}
|
|
3634
3641
|
return sortList
|
|
3635
3642
|
},
|
|
3636
3643
|
/**
|
|
@@ -4246,8 +4253,11 @@ const Methods = {
|
|
|
4246
4253
|
this.tableColumn = scrollXLoad ? visibleColumn.slice(scrollXStore.startIndex, scrollXStore.endIndex) : visibleColumn.slice(0)
|
|
4247
4254
|
},
|
|
4248
4255
|
updateScrollXData () {
|
|
4249
|
-
this.
|
|
4250
|
-
this
|
|
4256
|
+
this.tableColumn = []
|
|
4257
|
+
this.$nextTick(() => {
|
|
4258
|
+
this.handleTableColumn()
|
|
4259
|
+
this.updateScrollXSpace()
|
|
4260
|
+
})
|
|
4251
4261
|
},
|
|
4252
4262
|
// 更新横向 X 可视渲染上下剩余空间大小
|
|
4253
4263
|
updateScrollXSpace () {
|
|
@@ -4286,8 +4296,11 @@ const Methods = {
|
|
|
4286
4296
|
}
|
|
4287
4297
|
},
|
|
4288
4298
|
updateScrollYData () {
|
|
4289
|
-
this.
|
|
4290
|
-
this
|
|
4299
|
+
this.tableData = []
|
|
4300
|
+
this.$nextTick(() => {
|
|
4301
|
+
this.handleTableData()
|
|
4302
|
+
this.updateScrollYSpace()
|
|
4303
|
+
})
|
|
4291
4304
|
},
|
|
4292
4305
|
// 更新纵向 Y 可视渲染上下剩余空间大小
|
|
4293
4306
|
updateScrollYSpace () {
|
|
@@ -4625,7 +4638,7 @@ const Methods = {
|
|
|
4625
4638
|
}
|
|
4626
4639
|
|
|
4627
4640
|
// Module methods
|
|
4628
|
-
const funcs = 'setFilter,openFilter,clearFilter,getCheckedFilters,closeMenu,setActiveCellArea,getActiveCellArea,getCellAreas,clearCellAreas,copyCellArea,cutCellArea,pasteCellArea,getCopyCellArea,clearCopyCellArea,setCellAreas,openFind,openReplace,closeFNR,getSelectedCell,clearSelected,insert,insertAt,remove,removeCheckboxRow,removeRadioRow,removeCurrentRow,getRecordset,getInsertRecords,getRemoveRecords,getUpdateRecords,clearActived,getActiveRecord,isActiveByRow,setActiveRow,setActiveCell,setSelectCell,clearValidate,fullValidate,validate,openExport,openPrint,exportData,openImport,importData,saveFile,readFile,importByFile,print'.split(',')
|
|
4641
|
+
const funcs = 'setFilter,openFilter,clearFilter,getCheckedFilters,closeMenu,setActiveCellArea,getActiveCellArea,getCellAreas,clearCellAreas,copyCellArea,cutCellArea,pasteCellArea,getCopyCellArea,getCopyCellAreas,clearCopyCellArea,setCellAreas,openFind,openReplace,closeFNR,getSelectedCell,clearSelected,insert,insertAt,remove,removeCheckboxRow,removeRadioRow,removeCurrentRow,getRecordset,getInsertRecords,getRemoveRecords,getUpdateRecords,clearActived,getActiveRecord,isActiveByRow,setActiveRow,setActiveCell,setSelectCell,clearValidate,fullValidate,validate,openExport,openPrint,exportData,openImport,importData,saveFile,readFile,importByFile,print'.split(',')
|
|
4629
4642
|
|
|
4630
4643
|
funcs.forEach(name => {
|
|
4631
4644
|
Methods[name] = function (...args) {
|
|
@@ -713,13 +713,13 @@ export default {
|
|
|
713
713
|
|
|
714
714
|
if (process.env.VUE_APP_VXE_TABLE_ENV === 'development') {
|
|
715
715
|
// if (this.rowId) {
|
|
716
|
-
// warnLog('vxe.error.delProp', ['
|
|
716
|
+
// warnLog('vxe.error.delProp', ['row-id', 'row-config.keyField'])
|
|
717
717
|
// }
|
|
718
718
|
// if (this.rowKey) {
|
|
719
|
-
// warnLog('vxe.error.delProp', ['
|
|
719
|
+
// warnLog('vxe.error.delProp', ['row-id', 'row-config.useKey'])
|
|
720
720
|
// }
|
|
721
721
|
// if (this.columnKey) {
|
|
722
|
-
// warnLog('vxe.error.delProp', ['
|
|
722
|
+
// warnLog('vxe.error.delProp', ['row-id', 'column-config.useKey'])
|
|
723
723
|
// }
|
|
724
724
|
if (!(this.rowId || rowOpts.keyField) && (this.checkboxOpts.reserve || this.checkboxOpts.checkRowKeys || this.radioOpts.reserve || this.radioOpts.checkRowKey || this.expandOpts.expandRowKeys || this.treeOpts.expandRowKeys)) {
|
|
725
725
|
warnLog('vxe.error.reqProp', ['row-config.keyField'])
|
|
@@ -739,6 +739,18 @@ export default {
|
|
|
739
739
|
if (this.tooltipOpts.enabled) {
|
|
740
740
|
warnLog('vxe.error.delProp', ['tooltip-config.enabled', 'tooltip-config.showAll'])
|
|
741
741
|
}
|
|
742
|
+
// if (this.highlightCurrentRow) {
|
|
743
|
+
// warnLog('vxe.error.delProp', ['highlight-current-row', 'row-config.isCurrent'])
|
|
744
|
+
// }
|
|
745
|
+
// if (this.highlightHoverRow) {
|
|
746
|
+
// warnLog('vxe.error.delProp', ['highlight-hover-row', 'row-config.isHover'])
|
|
747
|
+
// }
|
|
748
|
+
// if (this.highlightCurrentColumn) {
|
|
749
|
+
// warnLog('vxe.error.delProp', ['highlight-current-column', 'column-config.isCurrent'])
|
|
750
|
+
// }
|
|
751
|
+
// if (this.highlightHoverColumn) {
|
|
752
|
+
// warnLog('vxe.error.delProp', ['highlight-hover-column', 'column-config.isHover'])
|
|
753
|
+
// }
|
|
742
754
|
// 检查导入导出类型,如果自定义导入导出方法,则不校验类型
|
|
743
755
|
const { exportConfig, exportOpts, importConfig, importOpts } = this
|
|
744
756
|
if (importConfig && importOpts.types && !importOpts.importMethod && !XEUtils.includeArrays(VXETable.config.importTypes, importOpts.types)) {
|
package/types/table.d.ts
CHANGED
|
@@ -540,7 +540,7 @@ export declare class Table extends VXETableComponent {
|
|
|
540
540
|
*/
|
|
541
541
|
clearCheckboxRow(): Promise<any>;
|
|
542
542
|
/**
|
|
543
|
-
* 用于
|
|
543
|
+
* 用于 row-config.isCurrent,设置某一行为高亮状态
|
|
544
544
|
* @param row 指定行
|
|
545
545
|
*/
|
|
546
546
|
setCurrentRow(row: RowInfo): Promise<any>;
|
|
@@ -563,7 +563,7 @@ export declare class Table extends VXETableComponent {
|
|
|
563
563
|
*/
|
|
564
564
|
clearMergeFooterItems(): Promise<any>;
|
|
565
565
|
/**
|
|
566
|
-
* 用于
|
|
566
|
+
* 用于 row-config.isCurrent,手动清空当前高亮的状态
|
|
567
567
|
*/
|
|
568
568
|
clearCurrentRow(): Promise<any>;
|
|
569
569
|
/**
|
|
@@ -579,11 +579,11 @@ export declare class Table extends VXETableComponent {
|
|
|
579
579
|
*/
|
|
580
580
|
getMergeFooterItems(): MergeItem[];
|
|
581
581
|
/**
|
|
582
|
-
* 用于
|
|
582
|
+
* 用于 column-config.isCurrent,获取当前列
|
|
583
583
|
*/
|
|
584
584
|
getCurrentColumn(): ColumnInfo | null;
|
|
585
585
|
/**
|
|
586
|
-
* 用于
|
|
586
|
+
* 用于 row-config.isCurrent,获取当前行的行数据
|
|
587
587
|
*/
|
|
588
588
|
getCurrentRecord(): RowInfo;
|
|
589
589
|
/**
|
|
@@ -591,12 +591,12 @@ export declare class Table extends VXETableComponent {
|
|
|
591
591
|
*/
|
|
592
592
|
getRadioRecord(isFull?: boolean): RowInfo;
|
|
593
593
|
/**
|
|
594
|
-
* 用于
|
|
594
|
+
* 用于 column-config.isCurrent,设置某列行为高亮状态
|
|
595
595
|
* @param column 列对象
|
|
596
596
|
*/
|
|
597
597
|
setCurrentColumn(column: ColumnInfo): Promise<any>;
|
|
598
598
|
/**
|
|
599
|
-
* 用于
|
|
599
|
+
* 用于 column-config.isCurrent,手动清空当前高亮的状态
|
|
600
600
|
*/
|
|
601
601
|
clearCurrentColumn(): Promise<any>;
|
|
602
602
|
/**
|