vxe-table 3.18.1 → 3.18.3
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/grid/src/grid.js +5 -1
- 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/module/menu/mixin.js +67 -43
- package/es/table/module/menu/panel.js +10 -8
- package/es/table/src/body.js +12 -14
- package/es/table/src/column.js +2 -0
- package/es/table/src/columnInfo.js +1 -0
- package/es/table/src/footer.js +7 -5
- package/es/table/src/header.js +67 -28
- package/es/table/src/methods.js +233 -39
- package/es/table/src/props.js +23 -6
- package/es/table/src/table.js +43 -19
- package/es/table/src/util.js +70 -2
- package/es/table/style.css +11 -21
- 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/ui/src/vn.js +16 -11
- package/es/vxe-table/style.css +11 -21
- package/es/vxe-table/style.min.css +1 -1
- package/lib/grid/src/grid.js +6 -0
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/index.css +1 -1
- package/lib/index.min.css +1 -1
- package/lib/index.umd.js +610 -185
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table/module/menu/mixin.js +84 -58
- package/lib/table/module/menu/mixin.min.js +1 -1
- package/lib/table/module/menu/panel.js +11 -10
- package/lib/table/module/menu/panel.min.js +1 -1
- package/lib/table/src/body.js +11 -13
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/column.js +2 -0
- package/lib/table/src/column.min.js +1 -1
- package/lib/table/src/columnInfo.js +1 -0
- package/lib/table/src/columnInfo.min.js +1 -1
- package/lib/table/src/footer.js +7 -5
- package/lib/table/src/header.js +82 -25
- package/lib/table/src/header.min.js +1 -1
- package/lib/table/src/methods.js +259 -42
- package/lib/table/src/methods.min.js +1 -1
- package/lib/table/src/props.js +11 -3
- package/lib/table/src/props.min.js +1 -1
- package/lib/table/src/table.js +46 -16
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +74 -2
- package/lib/table/src/util.min.js +1 -1
- package/lib/table/style/style.css +11 -21
- 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/ui/src/vn.js +16 -10
- package/lib/ui/src/vn.min.js +1 -1
- package/lib/vxe-table/style/style.css +11 -21
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +1 -1
- package/packages/grid/src/grid.ts +5 -1
- package/packages/table/module/menu/mixin.ts +79 -50
- package/packages/table/module/menu/panel.ts +11 -9
- package/packages/table/src/body.ts +11 -13
- package/packages/table/src/column.ts +4 -2
- package/packages/table/src/columnInfo.ts +1 -0
- package/packages/table/src/footer.ts +11 -9
- package/packages/table/src/header.ts +76 -34
- package/packages/table/src/methods.ts +245 -40
- package/packages/table/src/props.ts +29 -12
- package/packages/table/src/table.ts +53 -16
- package/packages/table/src/util.ts +76 -2
- package/packages/ui/src/vn.ts +16 -11
- package/styles/components/table.scss +33 -56
- /package/es/{iconfont.1756272539382.ttf → iconfont.1756629700380.ttf} +0 -0
- /package/es/{iconfont.1756272539382.woff → iconfont.1756629700380.woff} +0 -0
- /package/es/{iconfont.1756272539382.woff2 → iconfont.1756629700380.woff2} +0 -0
- /package/lib/{iconfont.1756272539382.ttf → iconfont.1756629700380.ttf} +0 -0
- /package/lib/{iconfont.1756272539382.woff → iconfont.1756629700380.woff} +0 -0
- /package/lib/{iconfont.1756272539382.woff2 → iconfont.1756629700380.woff2} +0 -0
|
@@ -1069,7 +1069,7 @@ function updateStyle ($xeTable: VxeTableConstructor & VxeTablePrivateMethods) {
|
|
|
1069
1069
|
}
|
|
1070
1070
|
if (xRightCornerEl) {
|
|
1071
1071
|
xRightCornerEl.style.width = scrollbarXToTop ? '' : `${osbWidth}px`
|
|
1072
|
-
xRightCornerEl.style.display = scrollbarXToTop ? '' : (
|
|
1072
|
+
xRightCornerEl.style.display = scrollbarXToTop ? '' : (xScrollbarVisible === 'visible' ? 'block' : '')
|
|
1073
1073
|
}
|
|
1074
1074
|
|
|
1075
1075
|
const scrollYVirtualEl = $xeTable.$refs.refScrollYVirtualElem as HTMLDivElement
|
|
@@ -1081,7 +1081,7 @@ function updateStyle ($xeTable: VxeTableConstructor & VxeTablePrivateMethods) {
|
|
|
1081
1081
|
const yTopCornerEl = $xeTable.$refs.refScrollYTopCornerElem as HTMLDivElement
|
|
1082
1082
|
if (yTopCornerEl) {
|
|
1083
1083
|
yTopCornerEl.style.height = `${tHeaderHeight}px`
|
|
1084
|
-
yTopCornerEl.style.display =
|
|
1084
|
+
yTopCornerEl.style.display = tHeaderHeight && yScrollbarVisible === 'visible' ? 'block' : ''
|
|
1085
1085
|
}
|
|
1086
1086
|
const yWrapperEl = $xeTable.$refs.refScrollYWrapperElem as HTMLDivElement
|
|
1087
1087
|
if (yWrapperEl) {
|
|
@@ -1092,7 +1092,7 @@ function updateStyle ($xeTable: VxeTableConstructor & VxeTablePrivateMethods) {
|
|
|
1092
1092
|
if (yBottomCornerEl) {
|
|
1093
1093
|
yBottomCornerEl.style.height = `${tFooterHeight}px`
|
|
1094
1094
|
yBottomCornerEl.style.top = `${tHeaderHeight + tbHeight}px`
|
|
1095
|
-
yBottomCornerEl.style.display =
|
|
1095
|
+
yBottomCornerEl.style.display = tFooterHeight && yScrollbarVisible === 'visible' ? 'block' : ''
|
|
1096
1096
|
}
|
|
1097
1097
|
|
|
1098
1098
|
const rowExpandEl = $xeTable.$refs.refRowExpandElem as HTMLDivElement
|
|
@@ -2016,12 +2016,60 @@ function handleBodyMerge ($xeTable: VxeTableConstructor & VxeTablePrivateMethods
|
|
|
2016
2016
|
}
|
|
2017
2017
|
}
|
|
2018
2018
|
|
|
2019
|
-
function
|
|
2019
|
+
function removeBodyMerges ($xeTable: VxeTableConstructor & VxeTablePrivateMethods, merges: VxeTableDefines.MergeOptions | VxeTableDefines.MergeOptions[]) {
|
|
2020
|
+
const internalData = $xeTable as unknown as TableInternalData
|
|
2021
|
+
|
|
2022
|
+
const { mergeBodyList, fullColumnIdData, fullAllDataRowIdData, mergeBodyMaps } = internalData
|
|
2023
|
+
const rest: VxeTableDefines.MergeItem[] = []
|
|
2024
|
+
if (merges) {
|
|
2025
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable)
|
|
2026
|
+
if (!XEUtils.isArray(merges)) {
|
|
2027
|
+
merges = [merges]
|
|
2028
|
+
}
|
|
2029
|
+
merges.forEach((item) => {
|
|
2030
|
+
const { row: margeRow, col: margeCol } = item
|
|
2031
|
+
let mergeRowIndex = -1
|
|
2032
|
+
let mergeColumnIndex = -1
|
|
2033
|
+
if (XEUtils.isNumber(margeRow)) {
|
|
2034
|
+
mergeRowIndex = margeRow
|
|
2035
|
+
} else {
|
|
2036
|
+
const rowid = margeRow ? handleGetRowId(margeRow) : null
|
|
2037
|
+
const rowRest = rowid ? fullAllDataRowIdData[rowid] : null
|
|
2038
|
+
if (rowRest) {
|
|
2039
|
+
mergeRowIndex = rowRest._index
|
|
2040
|
+
}
|
|
2041
|
+
}
|
|
2042
|
+
if (XEUtils.isNumber(margeCol)) {
|
|
2043
|
+
mergeColumnIndex = margeCol
|
|
2044
|
+
} else {
|
|
2045
|
+
const colid = margeCol ? margeCol.id : null
|
|
2046
|
+
const colRest = colid ? fullColumnIdData[colid] : null
|
|
2047
|
+
if (colRest) {
|
|
2048
|
+
mergeColumnIndex = colRest._index
|
|
2049
|
+
}
|
|
2050
|
+
}
|
|
2051
|
+
const mcIndex = XEUtils.findIndexOf(mergeBodyList, item => (item.row === mergeRowIndex) && (item.col === mergeColumnIndex))
|
|
2052
|
+
if (mcIndex > -1) {
|
|
2053
|
+
const rItems = mergeBodyList.splice(mcIndex, 1)
|
|
2054
|
+
const item = rItems[0]
|
|
2055
|
+
if (item) {
|
|
2056
|
+
rest.push(rItems[0])
|
|
2057
|
+
if (mergeBodyMaps[`${mergeRowIndex}:${mergeColumnIndex}`]) {
|
|
2058
|
+
delete mergeBodyMaps[`${mergeRowIndex}:${mergeColumnIndex}`]
|
|
2059
|
+
}
|
|
2060
|
+
}
|
|
2061
|
+
}
|
|
2062
|
+
})
|
|
2063
|
+
}
|
|
2064
|
+
return rest
|
|
2065
|
+
}
|
|
2066
|
+
|
|
2067
|
+
function handleHeaderMerge ($xeTable: VxeTableConstructor & VxeTablePrivateMethods, merges: VxeTableDefines.MergeOptions | VxeTableDefines.MergeOptions[]) {
|
|
2020
2068
|
const reactData = $xeTable as unknown as TableReactData
|
|
2021
2069
|
const internalData = $xeTable as unknown as TableInternalData
|
|
2022
2070
|
|
|
2023
2071
|
const { footerTableData } = reactData
|
|
2024
|
-
const {
|
|
2072
|
+
const { mergeHeaderList, mergeHeaderMaps, fullColumnIdData } = internalData
|
|
2025
2073
|
if (merges) {
|
|
2026
2074
|
const { visibleColumn } = internalData
|
|
2027
2075
|
if (!XEUtils.isArray(merges)) {
|
|
@@ -2046,7 +2094,7 @@ function handleFooterMerge ($xeTable: VxeTableConstructor & VxeTablePrivateMetho
|
|
|
2046
2094
|
if (rowspan > 1 || colspan > 1) {
|
|
2047
2095
|
const row = footerTableData[mergeRowIndex]
|
|
2048
2096
|
const column = visibleColumn[mergeColumnIndex]
|
|
2049
|
-
let mergeItem =
|
|
2097
|
+
let mergeItem = mergeHeaderMaps[`${mergeRowIndex}:${mergeColumnIndex}`]
|
|
2050
2098
|
if (mergeItem) {
|
|
2051
2099
|
mergeItem.rowspan = rowspan
|
|
2052
2100
|
mergeItem.colspan = colspan
|
|
@@ -2063,8 +2111,8 @@ function handleFooterMerge ($xeTable: VxeTableConstructor & VxeTablePrivateMetho
|
|
|
2063
2111
|
_rowspan: rowspan,
|
|
2064
2112
|
_colspan: colspan
|
|
2065
2113
|
}
|
|
2066
|
-
|
|
2067
|
-
|
|
2114
|
+
mergeHeaderMaps[`${mergeRowIndex}:${mergeColumnIndex}`] = mergeItem
|
|
2115
|
+
mergeHeaderList.push(mergeItem)
|
|
2068
2116
|
}
|
|
2069
2117
|
}
|
|
2070
2118
|
}
|
|
@@ -2072,29 +2120,19 @@ function handleFooterMerge ($xeTable: VxeTableConstructor & VxeTablePrivateMetho
|
|
|
2072
2120
|
}
|
|
2073
2121
|
}
|
|
2074
2122
|
|
|
2075
|
-
function
|
|
2123
|
+
function removeHeaderMerges ($xeTable: VxeTableConstructor & VxeTablePrivateMethods, merges: VxeTableDefines.MergeOptions | VxeTableDefines.MergeOptions[]) {
|
|
2076
2124
|
const internalData = $xeTable as unknown as TableInternalData
|
|
2077
2125
|
|
|
2078
|
-
const {
|
|
2126
|
+
const { mergeHeaderList, fullColumnIdData, mergeHeaderMaps } = internalData
|
|
2079
2127
|
const rest: VxeTableDefines.MergeItem[] = []
|
|
2080
2128
|
if (merges) {
|
|
2081
|
-
const { handleGetRowId } = createHandleGetRowId($xeTable)
|
|
2082
2129
|
if (!XEUtils.isArray(merges)) {
|
|
2083
2130
|
merges = [merges]
|
|
2084
2131
|
}
|
|
2085
2132
|
merges.forEach((item) => {
|
|
2086
2133
|
const { row: margeRow, col: margeCol } = item
|
|
2087
|
-
|
|
2134
|
+
const mergeRowIndex = XEUtils.isNumber(margeRow) ? margeRow : -1
|
|
2088
2135
|
let mergeColumnIndex = -1
|
|
2089
|
-
if (XEUtils.isNumber(margeRow)) {
|
|
2090
|
-
mergeRowIndex = margeRow
|
|
2091
|
-
} else {
|
|
2092
|
-
const rowid = margeRow ? handleGetRowId(margeRow) : null
|
|
2093
|
-
const rowRest = rowid ? fullAllDataRowIdData[rowid] : null
|
|
2094
|
-
if (rowRest) {
|
|
2095
|
-
mergeRowIndex = rowRest._index
|
|
2096
|
-
}
|
|
2097
|
-
}
|
|
2098
2136
|
if (XEUtils.isNumber(margeCol)) {
|
|
2099
2137
|
mergeColumnIndex = margeCol
|
|
2100
2138
|
} else {
|
|
@@ -2104,14 +2142,14 @@ function removeBodyMerges ($xeTable: VxeTableConstructor & VxeTablePrivateMethod
|
|
|
2104
2142
|
mergeColumnIndex = colRest._index
|
|
2105
2143
|
}
|
|
2106
2144
|
}
|
|
2107
|
-
const mcIndex = XEUtils.findIndexOf(
|
|
2145
|
+
const mcIndex = XEUtils.findIndexOf(mergeHeaderList, item => item.row === mergeRowIndex && item.col === mergeColumnIndex)
|
|
2108
2146
|
if (mcIndex > -1) {
|
|
2109
|
-
const rItems =
|
|
2147
|
+
const rItems = mergeHeaderList.splice(mcIndex, 1)
|
|
2110
2148
|
const item = rItems[0]
|
|
2111
2149
|
if (item) {
|
|
2112
|
-
rest.push(
|
|
2113
|
-
if (
|
|
2114
|
-
delete
|
|
2150
|
+
rest.push(item)
|
|
2151
|
+
if (mergeHeaderMaps[`${mergeRowIndex}:${mergeColumnIndex}`]) {
|
|
2152
|
+
delete mergeHeaderMaps[`${mergeRowIndex}:${mergeColumnIndex}`]
|
|
2115
2153
|
}
|
|
2116
2154
|
}
|
|
2117
2155
|
}
|
|
@@ -2120,6 +2158,62 @@ function removeBodyMerges ($xeTable: VxeTableConstructor & VxeTablePrivateMethod
|
|
|
2120
2158
|
return rest
|
|
2121
2159
|
}
|
|
2122
2160
|
|
|
2161
|
+
function handleFooterMerge ($xeTable: VxeTableConstructor & VxeTablePrivateMethods, merges: VxeTableDefines.MergeOptions | VxeTableDefines.MergeOptions[]) {
|
|
2162
|
+
const reactData = $xeTable as unknown as TableReactData
|
|
2163
|
+
const internalData = $xeTable as unknown as TableInternalData
|
|
2164
|
+
|
|
2165
|
+
const { footerTableData } = reactData
|
|
2166
|
+
const { mergeFooterList, mergeFooterMaps, fullColumnIdData } = internalData
|
|
2167
|
+
if (merges) {
|
|
2168
|
+
const { visibleColumn } = internalData
|
|
2169
|
+
if (!XEUtils.isArray(merges)) {
|
|
2170
|
+
merges = [merges]
|
|
2171
|
+
}
|
|
2172
|
+
merges.forEach((item) => {
|
|
2173
|
+
let { row: margeRow, col: margeCol, rowspan, colspan } = item
|
|
2174
|
+
const mergeRowIndex = XEUtils.isNumber(margeRow) ? margeRow : -1
|
|
2175
|
+
let mergeColumnIndex = -1
|
|
2176
|
+
if (XEUtils.isNumber(margeCol)) {
|
|
2177
|
+
mergeColumnIndex = margeCol
|
|
2178
|
+
} else {
|
|
2179
|
+
const colid = margeCol ? margeCol.id : null
|
|
2180
|
+
const colRest = colid ? fullColumnIdData[colid] : null
|
|
2181
|
+
if (colRest) {
|
|
2182
|
+
mergeColumnIndex = colRest._index
|
|
2183
|
+
}
|
|
2184
|
+
}
|
|
2185
|
+
if (mergeRowIndex > -1 && mergeColumnIndex > -1 && (rowspan || colspan)) {
|
|
2186
|
+
rowspan = XEUtils.toNumber(rowspan) || 1
|
|
2187
|
+
colspan = XEUtils.toNumber(colspan) || 1
|
|
2188
|
+
if (rowspan > 1 || colspan > 1) {
|
|
2189
|
+
const row = footerTableData[mergeRowIndex]
|
|
2190
|
+
const column = visibleColumn[mergeColumnIndex]
|
|
2191
|
+
let mergeItem = mergeFooterMaps[`${mergeRowIndex}:${mergeColumnIndex}`]
|
|
2192
|
+
if (mergeItem) {
|
|
2193
|
+
mergeItem.rowspan = rowspan
|
|
2194
|
+
mergeItem.colspan = colspan
|
|
2195
|
+
mergeItem._rowspan = rowspan
|
|
2196
|
+
mergeItem._colspan = colspan
|
|
2197
|
+
} else {
|
|
2198
|
+
mergeItem = {
|
|
2199
|
+
row: mergeRowIndex,
|
|
2200
|
+
col: mergeColumnIndex,
|
|
2201
|
+
rowspan,
|
|
2202
|
+
colspan,
|
|
2203
|
+
_row: row,
|
|
2204
|
+
_col: column,
|
|
2205
|
+
_rowspan: rowspan,
|
|
2206
|
+
_colspan: colspan
|
|
2207
|
+
}
|
|
2208
|
+
mergeFooterMaps[`${mergeRowIndex}:${mergeColumnIndex}`] = mergeItem
|
|
2209
|
+
mergeFooterList.push(mergeItem)
|
|
2210
|
+
}
|
|
2211
|
+
}
|
|
2212
|
+
}
|
|
2213
|
+
})
|
|
2214
|
+
}
|
|
2215
|
+
}
|
|
2216
|
+
|
|
2123
2217
|
function removeFooterMerges ($xeTable: VxeTableConstructor & VxeTablePrivateMethods, merges: VxeTableDefines.MergeOptions | VxeTableDefines.MergeOptions[]) {
|
|
2124
2218
|
const internalData = $xeTable as unknown as TableInternalData
|
|
2125
2219
|
|
|
@@ -2236,8 +2330,22 @@ function calcTableHeight ($xeTable: VxeTableConstructor & VxeTablePrivateMethods
|
|
|
2236
2330
|
const props = $xeTable
|
|
2237
2331
|
const reactData = $xeTable as unknown as TableReactData
|
|
2238
2332
|
|
|
2333
|
+
const { editConfig } = props
|
|
2239
2334
|
const { parentHeight } = reactData
|
|
2240
|
-
|
|
2335
|
+
let val = props[key]
|
|
2336
|
+
if (key === 'minHeight') {
|
|
2337
|
+
const defMinHeight = getConfig().table.minHeight
|
|
2338
|
+
if (XEUtils.eqNull(val)) {
|
|
2339
|
+
if (eqEmptyValue(defMinHeight)) {
|
|
2340
|
+
// 编辑模式默认最小高度
|
|
2341
|
+
if (isEnableConf(editConfig)) {
|
|
2342
|
+
val = 144
|
|
2343
|
+
}
|
|
2344
|
+
} else {
|
|
2345
|
+
val = defMinHeight
|
|
2346
|
+
}
|
|
2347
|
+
}
|
|
2348
|
+
}
|
|
2241
2349
|
let num = 0
|
|
2242
2350
|
if (val) {
|
|
2243
2351
|
if (val === '100%' || val === 'auto') {
|
|
@@ -2756,12 +2864,22 @@ function handleDefaultMergeCells ($xeTable: VxeTableConstructor & VxeTablePrivat
|
|
|
2756
2864
|
}
|
|
2757
2865
|
}
|
|
2758
2866
|
|
|
2867
|
+
function handleDefaultMergeHeaderItems ($xeTable: VxeTableConstructor & VxeTablePrivateMethods) {
|
|
2868
|
+
const props = $xeTable
|
|
2869
|
+
|
|
2870
|
+
const { mergeHeaderCells } = props
|
|
2871
|
+
if (mergeHeaderCells) {
|
|
2872
|
+
$xeTable.setMergeHeaderCells(mergeHeaderCells)
|
|
2873
|
+
}
|
|
2874
|
+
}
|
|
2875
|
+
|
|
2759
2876
|
function handleDefaultMergeFooterItems ($xeTable: VxeTableConstructor & VxeTablePrivateMethods) {
|
|
2760
2877
|
const props = $xeTable
|
|
2761
2878
|
|
|
2762
|
-
const { mergeFooterItems } = props
|
|
2763
|
-
|
|
2764
|
-
|
|
2879
|
+
const { mergeFooterCells, mergeFooterItems } = props
|
|
2880
|
+
const mFooterCells = mergeFooterCells || mergeFooterItems
|
|
2881
|
+
if (mFooterCells) {
|
|
2882
|
+
$xeTable.setMergeFooterCells(mFooterCells)
|
|
2765
2883
|
}
|
|
2766
2884
|
}
|
|
2767
2885
|
|
|
@@ -3237,6 +3355,10 @@ function loadTableData ($xeTable: VxeTableConstructor & VxeTablePrivateMethods,
|
|
|
3237
3355
|
|
|
3238
3356
|
handleReserveStatus($xeTable)
|
|
3239
3357
|
$xeTable.checkSelectionStatus()
|
|
3358
|
+
$xeTable.dispatchEvent('data-change', {
|
|
3359
|
+
visibleColumn: internalData.visibleColumn,
|
|
3360
|
+
visibleData: internalData.afterFullData
|
|
3361
|
+
}, null)
|
|
3240
3362
|
return new Promise<void>(resolve => {
|
|
3241
3363
|
$xeTable.$nextTick()
|
|
3242
3364
|
.then(() => handleRecalculateStyle($xeTable, false, false, false))
|
|
@@ -3299,6 +3421,7 @@ function handleLoadDefaults ($xeTable: VxeTableConstructor & VxeTablePrivateMeth
|
|
|
3299
3421
|
handleDefaultTreeExpand($xeTable)
|
|
3300
3422
|
handleDefaultRowGroupExpand($xeTable)
|
|
3301
3423
|
handleDefaultMergeCells($xeTable)
|
|
3424
|
+
handleDefaultMergeHeaderItems($xeTable)
|
|
3302
3425
|
handleDefaultMergeFooterItems($xeTable)
|
|
3303
3426
|
$xeTable.$nextTick(() => setTimeout(() => $xeTable.recalculate()))
|
|
3304
3427
|
}
|
|
@@ -6902,6 +7025,15 @@ const Methods = {
|
|
|
6902
7025
|
internalData.mergeBodyCellMaps = buildMergeData(mergeBodyList)
|
|
6903
7026
|
reactData.mergeBodyFlag++
|
|
6904
7027
|
},
|
|
7028
|
+
handleUpdateHeaderMerge () {
|
|
7029
|
+
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
7030
|
+
const reactData = $xeTable as unknown as TableReactData
|
|
7031
|
+
const internalData = $xeTable as unknown as TableInternalData
|
|
7032
|
+
|
|
7033
|
+
const { mergeHeaderList } = internalData
|
|
7034
|
+
internalData.mergeHeaderCellMaps = buildMergeData(mergeHeaderList)
|
|
7035
|
+
reactData.mergeHeadFlag++
|
|
7036
|
+
},
|
|
6905
7037
|
handleUpdateFooterMerge () {
|
|
6906
7038
|
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
6907
7039
|
const reactData = $xeTable as unknown as TableReactData
|
|
@@ -11518,6 +11650,10 @@ const Methods = {
|
|
|
11518
11650
|
}
|
|
11519
11651
|
reactData.footerTableData = footData
|
|
11520
11652
|
$xeTable.handleUpdateFooterMerge()
|
|
11653
|
+
$xeTable.dispatchEvent('footer-data-change', {
|
|
11654
|
+
visibleColumn: internalData.visibleColumn,
|
|
11655
|
+
footData
|
|
11656
|
+
}, null)
|
|
11521
11657
|
return $xeTable.$nextTick()
|
|
11522
11658
|
},
|
|
11523
11659
|
/**
|
|
@@ -11539,7 +11675,7 @@ const Methods = {
|
|
|
11539
11675
|
/**
|
|
11540
11676
|
* 设置合并单元格 [{ row: Row|number, column: ColumnInfo|number, rowspan: number, colspan: number }]
|
|
11541
11677
|
*/
|
|
11542
|
-
setMergeCells (merges:
|
|
11678
|
+
setMergeCells (merges: VxeTableDefines.MergeOptions | VxeTableDefines.MergeOptions[]) {
|
|
11543
11679
|
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
11544
11680
|
const props = $xeTable
|
|
11545
11681
|
const reactData = $xeTable as unknown as TableReactData
|
|
@@ -11563,7 +11699,7 @@ const Methods = {
|
|
|
11563
11699
|
/**
|
|
11564
11700
|
* 移除单元格合并 [{row:Row|number, col:ColumnInfo|number}]
|
|
11565
11701
|
*/
|
|
11566
|
-
removeMergeCells (merges:
|
|
11702
|
+
removeMergeCells (merges: VxeTableDefines.MergeOptions | VxeTableDefines.MergeOptions[]) {
|
|
11567
11703
|
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
11568
11704
|
const props = $xeTable
|
|
11569
11705
|
|
|
@@ -11603,48 +11739,111 @@ const Methods = {
|
|
|
11603
11739
|
return updateStyle($xeTable)
|
|
11604
11740
|
})
|
|
11605
11741
|
},
|
|
11606
|
-
|
|
11742
|
+
setMergeHeaderCells (merges: VxeTableDefines.MergeOptions | VxeTableDefines.MergeOptions[]) {
|
|
11743
|
+
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
11744
|
+
|
|
11745
|
+
handleHeaderMerge($xeTable, merges)
|
|
11746
|
+
$xeTable.handleUpdateHeaderMerge()
|
|
11747
|
+
return $xeTable.$nextTick().then(() => {
|
|
11748
|
+
return updateStyle($xeTable)
|
|
11749
|
+
})
|
|
11750
|
+
},
|
|
11751
|
+
/**
|
|
11752
|
+
* 移除表头单元格合并 [{row:Row|number, col:ColumnInfo|number}]
|
|
11753
|
+
*/
|
|
11754
|
+
removeMergeHeaderCells (merges: VxeTableDefines.MergeOptions | VxeTableDefines.MergeOptions[]) {
|
|
11755
|
+
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
11756
|
+
|
|
11757
|
+
const rest = removeHeaderMerges($xeTable, merges)
|
|
11758
|
+
$xeTable.handleUpdateHeaderMerge()
|
|
11759
|
+
return $xeTable.$nextTick().then(() => {
|
|
11760
|
+
updateStyle($xeTable)
|
|
11761
|
+
return rest
|
|
11762
|
+
})
|
|
11763
|
+
},
|
|
11764
|
+
/**
|
|
11765
|
+
* 获取所有被合并的表头单元格
|
|
11766
|
+
*/
|
|
11767
|
+
getMergeHeaderCells () {
|
|
11768
|
+
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
11769
|
+
const internalData = $xeTable as unknown as TableInternalData
|
|
11770
|
+
|
|
11771
|
+
return internalData.mergeHeaderList.slice(0)
|
|
11772
|
+
},
|
|
11773
|
+
/**
|
|
11774
|
+
* 清除所有表头单元格合并
|
|
11775
|
+
*/
|
|
11776
|
+
clearMergeHeaderCells () {
|
|
11777
|
+
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
11778
|
+
const reactData = $xeTable as unknown as TableReactData
|
|
11779
|
+
const internalData = $xeTable as unknown as TableInternalData
|
|
11780
|
+
|
|
11781
|
+
internalData.mergeHeaderList = []
|
|
11782
|
+
internalData.mergeHeaderMaps = {}
|
|
11783
|
+
internalData.mergeHeaderCellMaps = {}
|
|
11784
|
+
reactData.mergeHeadFlag++
|
|
11785
|
+
return $xeTable.$nextTick().then(() => {
|
|
11786
|
+
return updateStyle($xeTable)
|
|
11787
|
+
})
|
|
11788
|
+
},
|
|
11789
|
+
setMergeFooterCells (merges: VxeTableDefines.MergeOptions | VxeTableDefines.MergeOptions[]) {
|
|
11607
11790
|
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
11608
11791
|
const props = $xeTable
|
|
11609
11792
|
|
|
11610
11793
|
if (props.footerSpanMethod) {
|
|
11611
|
-
errLog('vxe.error.errConflicts', ['merge-footer-items', 'footer-span-method'])
|
|
11794
|
+
errLog('vxe.error.errConflicts', ['merge-footer-cells | merge-footer-items', 'footer-span-method'])
|
|
11612
11795
|
}
|
|
11613
11796
|
handleFooterMerge($xeTable, merges)
|
|
11614
11797
|
$xeTable.handleUpdateFooterMerge()
|
|
11615
11798
|
return $xeTable.$nextTick().then(() => {
|
|
11616
|
-
$xeTable.updateCellAreas()
|
|
11617
11799
|
return updateStyle($xeTable)
|
|
11618
11800
|
})
|
|
11619
11801
|
},
|
|
11620
|
-
|
|
11802
|
+
setMergeFooterItems (merges: VxeTableDefines.MergeOptions | VxeTableDefines.MergeOptions[]) {
|
|
11803
|
+
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
11804
|
+
|
|
11805
|
+
// errLog('vxe.error.delFunc', ['setMergeFooterItems', 'setMergeFooterCells'])
|
|
11806
|
+
return $xeTable.setMergeFooterCells(merges)
|
|
11807
|
+
},
|
|
11808
|
+
removeMergeFooterCells (merges: VxeTableDefines.MergeOptions | VxeTableDefines.MergeOptions[]) {
|
|
11621
11809
|
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
11622
11810
|
const props = $xeTable
|
|
11623
11811
|
|
|
11624
11812
|
if (props.footerSpanMethod) {
|
|
11625
|
-
errLog('vxe.error.errConflicts', ['merge-footer-items', 'footer-span-method'])
|
|
11813
|
+
errLog('vxe.error.errConflicts', ['merge-footer-cells | merge-footer-items', 'footer-span-method'])
|
|
11626
11814
|
}
|
|
11627
11815
|
const rest = removeFooterMerges($xeTable, merges)
|
|
11628
11816
|
$xeTable.handleUpdateFooterMerge()
|
|
11629
11817
|
return $xeTable.$nextTick().then(() => {
|
|
11630
|
-
$xeTable.updateCellAreas()
|
|
11631
11818
|
updateStyle($xeTable)
|
|
11632
11819
|
return rest
|
|
11633
11820
|
})
|
|
11634
11821
|
},
|
|
11822
|
+
removeMergeFooterItems (merges: VxeTableDefines.MergeOptions | VxeTableDefines.MergeOptions[]) {
|
|
11823
|
+
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
11824
|
+
|
|
11825
|
+
// errLog('vxe.error.delFunc', ['removeMergeFooterItems', 'removeMergeFooterCells'])
|
|
11826
|
+
return $xeTable.removeMergeFooterCells(merges)
|
|
11827
|
+
},
|
|
11635
11828
|
/**
|
|
11636
11829
|
* 获取所有被合并的表尾
|
|
11637
11830
|
*/
|
|
11638
|
-
|
|
11831
|
+
getMergeFooterCells () {
|
|
11639
11832
|
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
11640
11833
|
const internalData = $xeTable as unknown as TableInternalData
|
|
11641
11834
|
|
|
11642
11835
|
return internalData.mergeFooterList.slice(0)
|
|
11643
11836
|
},
|
|
11837
|
+
getMergeFooterItems () {
|
|
11838
|
+
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
11839
|
+
|
|
11840
|
+
// errLog('vxe.error.delFunc', ['getMergeFooterItems', 'getMergeFooterCells'])
|
|
11841
|
+
return $xeTable.getMergeFooterCells()
|
|
11842
|
+
},
|
|
11644
11843
|
/**
|
|
11645
11844
|
* 清除所有表尾合并
|
|
11646
11845
|
*/
|
|
11647
|
-
|
|
11846
|
+
clearMergeFooterCells () {
|
|
11648
11847
|
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
11649
11848
|
const reactData = $xeTable as unknown as TableReactData
|
|
11650
11849
|
const internalData = $xeTable as unknown as TableInternalData
|
|
@@ -11657,6 +11856,12 @@ const Methods = {
|
|
|
11657
11856
|
return updateStyle($xeTable)
|
|
11658
11857
|
})
|
|
11659
11858
|
},
|
|
11859
|
+
clearMergeFooterItems () {
|
|
11860
|
+
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
11861
|
+
|
|
11862
|
+
// errLog('vxe.error.delFunc', ['clearMergeFooterItems', 'clearMergeFooterCells'])
|
|
11863
|
+
return $xeTable.clearMergeFooterCells()
|
|
11864
|
+
},
|
|
11660
11865
|
handleUpdateAggData () {
|
|
11661
11866
|
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
11662
11867
|
const internalData = $xeTable as unknown as TableInternalData
|
|
@@ -15,7 +15,7 @@ export const tableProps = {
|
|
|
15
15
|
// 表格的最小高度
|
|
16
16
|
minHeight: {
|
|
17
17
|
type: [Number, String] as PropType<VxeTablePropTypes.MinHeight>,
|
|
18
|
-
default: () =>
|
|
18
|
+
default: () => null
|
|
19
19
|
},
|
|
20
20
|
// 表格的最大高度
|
|
21
21
|
maxHeight: [Number, String] as PropType<VxeTablePropTypes.MaxHeight>,
|
|
@@ -131,23 +131,40 @@ export const tableProps = {
|
|
|
131
131
|
// 给行附加样式
|
|
132
132
|
rowStyle: [Object, Function],
|
|
133
133
|
// 给表头行附加样式
|
|
134
|
-
headerRowStyle: [Object, Function]
|
|
134
|
+
headerRowStyle: [Object, Function] as PropType<VxeTablePropTypes.HeaderRowStyle>,
|
|
135
135
|
// 给表尾行附加样式
|
|
136
|
-
footerRowStyle: [Object, Function]
|
|
137
|
-
//
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
136
|
+
footerRowStyle: [Object, Function] as PropType<VxeTablePropTypes.FooterRowStyle>,
|
|
137
|
+
// 用于分组表头,显示为自定义列头,配合 mergeHeaderCells 灵活实现自定义合并
|
|
138
|
+
showCustomHeader: {
|
|
139
|
+
type: Boolean as PropType<VxeTablePropTypes.ShowCustomHeader>,
|
|
140
|
+
default: () => getConfig().table.showCustomHeader
|
|
141
|
+
},
|
|
142
|
+
// 临时合并指定的表头单元格
|
|
143
|
+
mergeHeaderCells: Array as PropType<VxeTablePropTypes.MergeHeaderCells>,
|
|
144
|
+
// 临时合并指定的单元格
|
|
145
|
+
mergeCells: Array as PropType<VxeTablePropTypes.MergeCells>,
|
|
146
|
+
// 临时合并指定的表尾单元格
|
|
147
|
+
mergeFooterCells: Array as PropType<VxeTablePropTypes.MergeFooterCells>,
|
|
148
|
+
mergeFooterItems: Array as PropType<VxeTablePropTypes.MergeFooterItems>,
|
|
141
149
|
// 自定义合并行或列的方法
|
|
142
|
-
spanMethod: Function
|
|
150
|
+
spanMethod: Function as PropType<VxeTablePropTypes.SpanMethod>,
|
|
143
151
|
// 表尾合并行或列
|
|
144
|
-
footerSpanMethod: Function
|
|
152
|
+
footerSpanMethod: Function as PropType<VxeTablePropTypes.FooterSpanMethod>,
|
|
145
153
|
// 设置所有内容过长时显示为省略号
|
|
146
|
-
showOverflow: {
|
|
154
|
+
showOverflow: {
|
|
155
|
+
type: [Boolean, String] as PropType<VxeTablePropTypes.ShowOverflow>,
|
|
156
|
+
default: () => getConfig().table.showOverflow
|
|
157
|
+
},
|
|
147
158
|
// 设置表头所有内容过长时显示为省略号
|
|
148
|
-
showHeaderOverflow: {
|
|
159
|
+
showHeaderOverflow: {
|
|
160
|
+
type: [Boolean, String] as PropType<VxeTablePropTypes.ShowHeaderOverflow>,
|
|
161
|
+
default: () => getConfig().table.showHeaderOverflow
|
|
162
|
+
},
|
|
149
163
|
// 设置表尾所有内容过长时显示为省略号
|
|
150
|
-
showFooterOverflow: {
|
|
164
|
+
showFooterOverflow: {
|
|
165
|
+
type: [Boolean, String] as PropType<VxeTablePropTypes.ShowFooterOverflow>,
|
|
166
|
+
default: () => getConfig().table.showFooterOverflow
|
|
167
|
+
},
|
|
151
168
|
|
|
152
169
|
/** 高级属性 */
|
|
153
170
|
/**
|