vxe-table 3.12.14 → 3.12.15
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 +31 -15
- package/es/table/module/export/mixin.js +3 -2
- package/es/table/module/validator/mixin.js +6 -1
- package/es/table/src/body.js +1 -0
- package/es/table/src/methods.js +123 -88
- package/es/table/src/table.js +0 -1
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/lib/index.umd.js +212 -149
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/table/module/edit/mixin.js +37 -15
- package/lib/table/module/edit/mixin.min.js +1 -1
- package/lib/table/module/export/mixin.js +3 -2
- package/lib/table/module/export/mixin.min.js +1 -1
- package/lib/table/module/validator/mixin.js +8 -0
- package/lib/table/module/validator/mixin.min.js +1 -1
- package/lib/table/src/body.js +1 -0
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/methods.js +161 -129
- package/lib/table/src/methods.min.js +1 -1
- package/lib/table/src/table.js +0 -1
- 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 +37 -15
- package/packages/table/module/export/mixin.ts +3 -2
- package/packages/table/module/validator/mixin.ts +6 -1
- package/packages/table/src/body.ts +1 -0
- package/packages/table/src/methods.ts +127 -84
- package/packages/table/src/table.ts +0 -1
- /package/es/{iconfont.1739181382716.ttf → iconfont.1739257460253.ttf} +0 -0
- /package/es/{iconfont.1739181382716.woff → iconfont.1739257460253.woff} +0 -0
- /package/es/{iconfont.1739181382716.woff2 → iconfont.1739257460253.woff2} +0 -0
- /package/lib/{iconfont.1739181382716.ttf → iconfont.1739257460253.ttf} +0 -0
- /package/lib/{iconfont.1739181382716.woff → iconfont.1739257460253.woff} +0 -0
- /package/lib/{iconfont.1739181382716.woff2 → iconfont.1739257460253.woff2} +0 -0
|
@@ -1120,14 +1120,14 @@ const calcCellHeight = ($xeTable: VxeTableConstructor) => {
|
|
|
1120
1120
|
}
|
|
1121
1121
|
}
|
|
1122
1122
|
|
|
1123
|
-
function getOrderField (
|
|
1123
|
+
function getOrderField ($xeTable: VxeTableConstructor, column: VxeTableDefines.ColumnInfo) {
|
|
1124
1124
|
const { sortBy, sortType } = column
|
|
1125
1125
|
return (row: any) => {
|
|
1126
1126
|
let cellValue
|
|
1127
1127
|
if (sortBy) {
|
|
1128
1128
|
cellValue = XEUtils.isFunction(sortBy) ? sortBy({ row, column }) : XEUtils.get(row, sortBy)
|
|
1129
1129
|
} else {
|
|
1130
|
-
cellValue =
|
|
1130
|
+
cellValue = $xeTable.getCellLabel(row, column)
|
|
1131
1131
|
}
|
|
1132
1132
|
if (!sortType || sortType === 'auto') {
|
|
1133
1133
|
return isNaN(cellValue) ? cellValue : XEUtils.toNumber(cellValue)
|
|
@@ -2968,74 +2968,148 @@ const Methods = {
|
|
|
2968
2968
|
* 如果存在筛选条件,继续处理
|
|
2969
2969
|
*/
|
|
2970
2970
|
updateAfterFullData () {
|
|
2971
|
-
const $xeTable = this
|
|
2971
|
+
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
2972
|
+
const props = $xeTable
|
|
2973
|
+
const internalData = $xeTable as unknown as TableInternalData
|
|
2972
2974
|
|
|
2973
|
-
const {
|
|
2975
|
+
const { treeConfig } = props
|
|
2976
|
+
const { tableFullColumn, tableFullData, tableFullTreeData } = internalData
|
|
2977
|
+
const filterOpts = $xeTable.computeFilterOpts
|
|
2978
|
+
const sortOpts = $xeTable.computeSortOpts
|
|
2979
|
+
const treeOpts = $xeTable.computeTreeOpts
|
|
2980
|
+
const childrenField = treeOpts.children || treeOpts.childrenField
|
|
2981
|
+
const { transform, rowField, parentField, mapChildrenField } = treeOpts
|
|
2974
2982
|
const { remote: allRemoteFilter, filterMethod: allFilterMethod } = filterOpts
|
|
2975
2983
|
const { remote: allRemoteSort, sortMethod: allSortMethod, multiple: sortMultiple, chronological } = sortOpts
|
|
2976
|
-
const { transform } = treeOpts
|
|
2977
|
-
const childrenField = treeOpts.children || treeOpts.childrenField
|
|
2978
2984
|
let tableData: any[] = []
|
|
2979
2985
|
let tableTree: any[] = []
|
|
2980
|
-
|
|
2981
|
-
|
|
2982
|
-
|
|
2983
|
-
const {
|
|
2984
|
-
|
|
2985
|
-
|
|
2986
|
-
|
|
2987
|
-
|
|
2988
|
-
|
|
2989
|
-
|
|
2990
|
-
|
|
2986
|
+
|
|
2987
|
+
// 处理数据
|
|
2988
|
+
if (!allRemoteFilter || !allRemoteSort) {
|
|
2989
|
+
const filterColumns: {
|
|
2990
|
+
column: VxeTableDefines.ColumnInfo
|
|
2991
|
+
valueList: any[]
|
|
2992
|
+
itemList: VxeTableDefines.FilterOption[]
|
|
2993
|
+
}[] = []
|
|
2994
|
+
let orderColumns: VxeTableDefines.SortCheckedParams[] = []
|
|
2995
|
+
tableFullColumn.forEach((column) => {
|
|
2996
|
+
const { field, sortable, order, filters } = column
|
|
2997
|
+
if (!allRemoteFilter && filters && filters.length) {
|
|
2998
|
+
const valueList: any[] = []
|
|
2999
|
+
const itemList: VxeTableDefines.FilterOption[] = []
|
|
3000
|
+
filters.forEach((item) => {
|
|
3001
|
+
if (item.checked) {
|
|
3002
|
+
itemList.push(item as VxeTableDefines.FilterOption)
|
|
3003
|
+
valueList.push(item.value)
|
|
3004
|
+
}
|
|
3005
|
+
})
|
|
3006
|
+
if (itemList.length) {
|
|
3007
|
+
filterColumns.push({ column, valueList, itemList })
|
|
2991
3008
|
}
|
|
2992
|
-
})
|
|
2993
|
-
if (itemList.length) {
|
|
2994
|
-
filterColumns.push({ column, valueList, itemList })
|
|
2995
3009
|
}
|
|
3010
|
+
if (!allRemoteSort && sortable && order) {
|
|
3011
|
+
orderColumns.push({ column, field, property: field, order: order, sortTime: column.sortTime })
|
|
3012
|
+
}
|
|
3013
|
+
})
|
|
3014
|
+
if (sortMultiple && chronological && orderColumns.length > 1) {
|
|
3015
|
+
orderColumns = XEUtils.orderBy(orderColumns, 'sortTime')
|
|
2996
3016
|
}
|
|
2997
|
-
|
|
2998
|
-
|
|
2999
|
-
|
|
3000
|
-
|
|
3001
|
-
|
|
3002
|
-
|
|
3003
|
-
|
|
3004
|
-
if (filterColumns.length) {
|
|
3005
|
-
const handleFilter = (row: any) => {
|
|
3006
|
-
return filterColumns.every(({ column, valueList, itemList }) => {
|
|
3007
|
-
if (valueList.length && !allRemoteFilter) {
|
|
3008
|
-
const { filterMethod, filterRender, field } = column
|
|
3017
|
+
|
|
3018
|
+
// 处理筛选
|
|
3019
|
+
// 支持单列、多列、组合筛选
|
|
3020
|
+
if (!allRemoteFilter && filterColumns.length) {
|
|
3021
|
+
const handleFilter = (row: any) => {
|
|
3022
|
+
return filterColumns.every(({ column, valueList, itemList }) => {
|
|
3023
|
+
const { filterMethod, filterRender } = column
|
|
3009
3024
|
const compConf = isEnableConf(filterRender) ? renderer.get(filterRender.name) : null
|
|
3010
3025
|
const compFilterMethod = compConf ? (compConf.tableFilterMethod || compConf.filterMethod) : null
|
|
3011
3026
|
const tdFilterMethod = compConf ? (compConf.tableFilterDefaultMethod || compConf.defaultTableFilterMethod || compConf.defaultFilterMethod) : null
|
|
3012
3027
|
const cellValue = getCellValue(row, column)
|
|
3013
3028
|
if (filterMethod) {
|
|
3014
|
-
return itemList.some((item
|
|
3029
|
+
return itemList.some((item) => filterMethod({ value: item.value, option: item, cellValue, row, column, $table: $xeTable }))
|
|
3015
3030
|
} else if (compFilterMethod) {
|
|
3016
|
-
return itemList.some((item
|
|
3031
|
+
return itemList.some((item) => compFilterMethod({ value: item.value, option: item, cellValue, row, column, $table: $xeTable }))
|
|
3017
3032
|
} else if (allFilterMethod) {
|
|
3018
3033
|
return allFilterMethod({ options: itemList, values: valueList, cellValue, row, column })
|
|
3019
3034
|
} else if (tdFilterMethod) {
|
|
3020
|
-
return itemList.some((item
|
|
3035
|
+
return itemList.some((item) => tdFilterMethod({ value: item.value, option: item, cellValue, row, column, $table: $xeTable }))
|
|
3021
3036
|
}
|
|
3022
|
-
return valueList.indexOf(XEUtils.get(row, field)) > -1
|
|
3023
|
-
}
|
|
3024
|
-
|
|
3025
|
-
|
|
3026
|
-
|
|
3027
|
-
|
|
3028
|
-
|
|
3029
|
-
|
|
3030
|
-
|
|
3031
|
-
|
|
3032
|
-
|
|
3033
|
-
|
|
3034
|
-
}
|
|
3035
|
-
|
|
3037
|
+
return valueList.indexOf(XEUtils.get(row, column.field)) > -1
|
|
3038
|
+
})
|
|
3039
|
+
}
|
|
3040
|
+
if (treeConfig && transform) {
|
|
3041
|
+
// 筛选虚拟树
|
|
3042
|
+
tableTree = XEUtils.searchTree(tableFullTreeData, handleFilter, {
|
|
3043
|
+
original: true,
|
|
3044
|
+
isEvery: true,
|
|
3045
|
+
children: mapChildrenField,
|
|
3046
|
+
mapChildren: childrenField
|
|
3047
|
+
})
|
|
3048
|
+
tableData = tableTree
|
|
3049
|
+
} else {
|
|
3050
|
+
tableData = treeConfig ? tableFullTreeData.filter(handleFilter) : tableFullData.filter(handleFilter)
|
|
3051
|
+
tableTree = tableData
|
|
3052
|
+
}
|
|
3036
3053
|
} else {
|
|
3037
|
-
|
|
3038
|
-
|
|
3054
|
+
if (treeConfig && transform) {
|
|
3055
|
+
// 还原虚拟树
|
|
3056
|
+
tableTree = XEUtils.searchTree(tableFullTreeData, () => true, {
|
|
3057
|
+
original: true,
|
|
3058
|
+
isEvery: true,
|
|
3059
|
+
children: mapChildrenField,
|
|
3060
|
+
mapChildren: childrenField
|
|
3061
|
+
})
|
|
3062
|
+
tableData = tableTree
|
|
3063
|
+
} else {
|
|
3064
|
+
tableData = treeConfig ? tableFullTreeData.slice(0) : tableFullData.slice(0)
|
|
3065
|
+
tableTree = tableData
|
|
3066
|
+
}
|
|
3067
|
+
}
|
|
3068
|
+
|
|
3069
|
+
// 处理排序(不能用于树形结构)
|
|
3070
|
+
// 支持单列、多列、组合排序
|
|
3071
|
+
if (!allRemoteSort && orderColumns.length) {
|
|
3072
|
+
if (treeConfig && transform) {
|
|
3073
|
+
// 虚拟树和列表一样,只能排序根级节点
|
|
3074
|
+
if (allSortMethod) {
|
|
3075
|
+
const sortRests = allSortMethod({ data: tableTree, sortList: orderColumns, $table: $xeTable })
|
|
3076
|
+
tableTree = XEUtils.isArray(sortRests) ? sortRests : tableTree
|
|
3077
|
+
} else {
|
|
3078
|
+
const treeList = XEUtils.toTreeArray(tableTree, {
|
|
3079
|
+
children: mapChildrenField
|
|
3080
|
+
})
|
|
3081
|
+
tableTree = XEUtils.toArrayTree(
|
|
3082
|
+
XEUtils.orderBy(treeList, orderColumns.map(({ column, order }) => [getOrderField($xeTable, column), order])),
|
|
3083
|
+
{
|
|
3084
|
+
key: rowField,
|
|
3085
|
+
parentKey: parentField,
|
|
3086
|
+
children: childrenField,
|
|
3087
|
+
mapChildren: mapChildrenField
|
|
3088
|
+
}
|
|
3089
|
+
)
|
|
3090
|
+
}
|
|
3091
|
+
tableData = tableTree
|
|
3092
|
+
} else {
|
|
3093
|
+
if (allSortMethod) {
|
|
3094
|
+
const sortRests = allSortMethod({ data: tableData, sortList: orderColumns, $table: $xeTable })
|
|
3095
|
+
tableData = XEUtils.isArray(sortRests) ? sortRests : tableData
|
|
3096
|
+
} else {
|
|
3097
|
+
// 兼容 v4
|
|
3098
|
+
if (sortMultiple) {
|
|
3099
|
+
tableData = XEUtils.orderBy(tableData, orderColumns.map(({ column, order }) => [getOrderField(this, column), order]))
|
|
3100
|
+
} else {
|
|
3101
|
+
const firstOrderColumn = orderColumns[0]
|
|
3102
|
+
let sortByConfs
|
|
3103
|
+
// 已废弃,兼容 v2,在 v4 中废弃, sortBy 不能为数组
|
|
3104
|
+
if (XEUtils.isArray((firstOrderColumn as any).sortBy)) {
|
|
3105
|
+
sortByConfs = (firstOrderColumn as any).sortBy.map((item: any) => [item, firstOrderColumn.order])
|
|
3106
|
+
}
|
|
3107
|
+
tableData = XEUtils.orderBy(tableData, sortByConfs || [firstOrderColumn].map(({ column, order }) => [getOrderField(this, column), order]))
|
|
3108
|
+
}
|
|
3109
|
+
tableData = XEUtils.orderBy(tableData, orderColumns.map(({ column, order }) => [getOrderField($xeTable, column), order]))
|
|
3110
|
+
}
|
|
3111
|
+
tableTree = tableData
|
|
3112
|
+
}
|
|
3039
3113
|
}
|
|
3040
3114
|
} else {
|
|
3041
3115
|
if (treeConfig && transform) {
|
|
@@ -3052,39 +3126,8 @@ const Methods = {
|
|
|
3052
3126
|
tableTree = tableData
|
|
3053
3127
|
}
|
|
3054
3128
|
}
|
|
3055
|
-
|
|
3056
|
-
|
|
3057
|
-
if (treeConfig && transform) {
|
|
3058
|
-
// 虚拟树和列表一样,只能排序根级节点
|
|
3059
|
-
if (allSortMethod) {
|
|
3060
|
-
const sortRests = allSortMethod({ data: tableTree, sortList: orderColumns, $table: this })
|
|
3061
|
-
tableTree = XEUtils.isArray(sortRests) ? sortRests : tableTree
|
|
3062
|
-
} else {
|
|
3063
|
-
tableTree = XEUtils.orderBy(tableTree, orderColumns.map(({ column, order }) => [getOrderField(this, column), order]))
|
|
3064
|
-
}
|
|
3065
|
-
tableData = tableTree
|
|
3066
|
-
} else {
|
|
3067
|
-
if (allSortMethod) {
|
|
3068
|
-
const sortRests = allSortMethod({ data: tableData, column: firstOrderColumn.column, property: firstOrderColumn.field, field: firstOrderColumn.field, order: firstOrderColumn.order, sortList: orderColumns, $table: this })
|
|
3069
|
-
tableData = XEUtils.isArray(sortRests) ? sortRests : tableData
|
|
3070
|
-
} else {
|
|
3071
|
-
// 兼容 v4
|
|
3072
|
-
if (sortMultiple) {
|
|
3073
|
-
tableData = XEUtils.orderBy(tableData, orderColumns.map(({ column, order }) => [getOrderField(this, column), order]))
|
|
3074
|
-
} else {
|
|
3075
|
-
// 兼容 v2,在 v4 中废弃, sortBy 不能为数组
|
|
3076
|
-
let sortByConfs
|
|
3077
|
-
if (XEUtils.isArray(firstOrderColumn.sortBy)) {
|
|
3078
|
-
sortByConfs = firstOrderColumn.sortBy.map((item: any) => [item, firstOrderColumn.order])
|
|
3079
|
-
}
|
|
3080
|
-
tableData = XEUtils.orderBy(tableData, sortByConfs || [firstOrderColumn].map(({ column, order }) => [getOrderField(this, column), order]))
|
|
3081
|
-
}
|
|
3082
|
-
}
|
|
3083
|
-
tableTree = tableData
|
|
3084
|
-
}
|
|
3085
|
-
}
|
|
3086
|
-
this.afterFullData = tableData
|
|
3087
|
-
this.afterTreeFullData = tableTree
|
|
3129
|
+
internalData.afterFullData = tableData
|
|
3130
|
+
internalData.afterTreeFullData = tableTree
|
|
3088
3131
|
updateAfterDataIndex($xeTable)
|
|
3089
3132
|
},
|
|
3090
3133
|
/**
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|