vxe-table 3.18.0 → 3.18.2
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/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/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/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 +577 -85
- package/es/table/src/props.js +23 -6
- package/es/table/src/store.js +8 -0
- package/es/table/src/table.js +67 -26
- package/es/table/src/util.js +70 -2
- package/es/table/style.css +11 -17
- 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/vxe-table/style.css +11 -17
- package/es/vxe-table/style.min.css +1 -1
- package/lib/index.css +1 -1
- package/lib/index.min.css +1 -1
- package/lib/index.umd.js +1002 -200
- 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/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/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 +647 -94
- 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/store.js +15 -0
- package/lib/table/src/store.min.js +1 -0
- package/lib/table/src/table.js +74 -25
- 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 -17
- 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/vxe-table/style/style.css +11 -17
- package/lib/vxe-table/style/style.min.css +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/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 +607 -90
- package/packages/table/src/props.ts +29 -12
- package/packages/table/src/store.ts +15 -0
- package/packages/table/src/table.ts +79 -24
- package/packages/table/src/util.ts +76 -2
- package/styles/components/table.scss +33 -55
- /package/es/{iconfont.1756083626568.ttf → iconfont.1756452257212.ttf} +0 -0
- /package/es/{iconfont.1756083626568.woff → iconfont.1756452257212.woff} +0 -0
- /package/es/{iconfont.1756083626568.woff2 → iconfont.1756452257212.woff2} +0 -0
- /package/lib/{iconfont.1756083626568.ttf → iconfont.1756452257212.ttf} +0 -0
- /package/lib/{iconfont.1756083626568.woff → iconfont.1756452257212.woff} +0 -0
- /package/lib/{iconfont.1756083626568.woff2 → iconfont.1756452257212.woff2} +0 -0
|
@@ -7,6 +7,7 @@ import { getRowUniqueId, clearTableAllStatus, getColumnList, toFilters, getRowke
|
|
|
7
7
|
import { getSlotVNs } from '../../ui/src/vn'
|
|
8
8
|
import { moveRowAnimateToTb, clearRowAnimate, moveColAnimateToLr, clearColAnimate } from './anime'
|
|
9
9
|
import { warnLog, errLog } from '../../ui/src/log'
|
|
10
|
+
import { getCrossTableDragRowInfo } from './store'
|
|
10
11
|
|
|
11
12
|
import type { VxeTableDefines, VxeColumnPropTypes, VxeTableEmits, ValueOf, TableReactData, VxeTableConstructor, VxeToolbarConstructor, VxeToolbarInstance, TableInternalData, VxeGridConstructor, VxeTablePrivateMethods, VxeTooltipInstance, VxeTablePropTypes, VxeGridPrivateMethods } from '../../../types'
|
|
12
13
|
|
|
@@ -19,6 +20,11 @@ const customStorageKey = 'VXE_CUSTOM_STORE'
|
|
|
19
20
|
const maxYHeight = 5e6
|
|
20
21
|
const maxXWidth = 5e6
|
|
21
22
|
|
|
23
|
+
let crossTableDragRowObj: {
|
|
24
|
+
$oldTable: VxeTableConstructor & VxeTablePrivateMethods
|
|
25
|
+
$newTable: (VxeTableConstructor & VxeTablePrivateMethods) | null
|
|
26
|
+
} | null = null
|
|
27
|
+
|
|
22
28
|
function eqCellValue (row1: any, row2: any, field: any) {
|
|
23
29
|
const val1 = XEUtils.get(row1, field)
|
|
24
30
|
const val2 = XEUtils.get(row2, field)
|
|
@@ -1001,22 +1007,27 @@ function updateStyle ($xeTable: VxeTableConstructor & VxeTablePrivateMethods) {
|
|
|
1001
1007
|
emptyPlaceholderElem.style.height = bodyWrapperElem ? `${bodyWrapperElem.offsetHeight - osbHeight}px` : ''
|
|
1002
1008
|
}
|
|
1003
1009
|
|
|
1010
|
+
const scrollbarXConf = scrollbarOpts.x || {}
|
|
1004
1011
|
const scrollbarXToTop = $xeTable.computeScrollbarXToTop
|
|
1012
|
+
const scrollbarYConf = scrollbarOpts.y || {}
|
|
1005
1013
|
const scrollbarYToLeft = $xeTable.computeScrollbarYToLeft
|
|
1006
1014
|
|
|
1007
1015
|
let xScrollbarVisible = overflowX ? 'visible' : 'hidden'
|
|
1008
|
-
if ($xeGanttView) {
|
|
1016
|
+
if (scrollbarXConf.visible === 'visible' || $xeGanttView) {
|
|
1009
1017
|
osbHeight = scrollbarHeight
|
|
1010
1018
|
xScrollbarVisible = 'visible'
|
|
1011
|
-
} else if (
|
|
1019
|
+
} else if (scrollbarXConf.visible === 'hidden' || scrollbarXConf.visible === false) {
|
|
1012
1020
|
osbHeight = 0
|
|
1013
1021
|
xScrollbarVisible = 'hidden'
|
|
1014
1022
|
}
|
|
1015
1023
|
|
|
1016
1024
|
let yScrollbarVisible = overflowY ? 'visible' : 'hidden'
|
|
1017
|
-
if ((
|
|
1025
|
+
if ((scrollbarYConf.visible === 'hidden' || scrollbarYConf.visible === false) || ($xeGanttView && !scrollbarYToLeft)) {
|
|
1018
1026
|
osbWidth = 0
|
|
1019
1027
|
yScrollbarVisible = 'hidden'
|
|
1028
|
+
} else if (scrollbarYConf.visible === 'visible') {
|
|
1029
|
+
osbWidth = scrollbarWidth
|
|
1030
|
+
yScrollbarVisible = 'visible'
|
|
1020
1031
|
}
|
|
1021
1032
|
|
|
1022
1033
|
let tbHeight = 0
|
|
@@ -1058,7 +1069,7 @@ function updateStyle ($xeTable: VxeTableConstructor & VxeTablePrivateMethods) {
|
|
|
1058
1069
|
}
|
|
1059
1070
|
if (xRightCornerEl) {
|
|
1060
1071
|
xRightCornerEl.style.width = scrollbarXToTop ? '' : `${osbWidth}px`
|
|
1061
|
-
xRightCornerEl.style.display = scrollbarXToTop ? '' : (
|
|
1072
|
+
xRightCornerEl.style.display = scrollbarXToTop ? '' : (xScrollbarVisible === 'visible' ? 'block' : '')
|
|
1062
1073
|
}
|
|
1063
1074
|
|
|
1064
1075
|
const scrollYVirtualEl = $xeTable.$refs.refScrollYVirtualElem as HTMLDivElement
|
|
@@ -1070,7 +1081,7 @@ function updateStyle ($xeTable: VxeTableConstructor & VxeTablePrivateMethods) {
|
|
|
1070
1081
|
const yTopCornerEl = $xeTable.$refs.refScrollYTopCornerElem as HTMLDivElement
|
|
1071
1082
|
if (yTopCornerEl) {
|
|
1072
1083
|
yTopCornerEl.style.height = `${tHeaderHeight}px`
|
|
1073
|
-
yTopCornerEl.style.display =
|
|
1084
|
+
yTopCornerEl.style.display = tHeaderHeight && yScrollbarVisible === 'visible' ? 'block' : ''
|
|
1074
1085
|
}
|
|
1075
1086
|
const yWrapperEl = $xeTable.$refs.refScrollYWrapperElem as HTMLDivElement
|
|
1076
1087
|
if (yWrapperEl) {
|
|
@@ -1081,7 +1092,7 @@ function updateStyle ($xeTable: VxeTableConstructor & VxeTablePrivateMethods) {
|
|
|
1081
1092
|
if (yBottomCornerEl) {
|
|
1082
1093
|
yBottomCornerEl.style.height = `${tFooterHeight}px`
|
|
1083
1094
|
yBottomCornerEl.style.top = `${tHeaderHeight + tbHeight}px`
|
|
1084
|
-
yBottomCornerEl.style.display =
|
|
1095
|
+
yBottomCornerEl.style.display = tFooterHeight && yScrollbarVisible === 'visible' ? 'block' : ''
|
|
1085
1096
|
}
|
|
1086
1097
|
|
|
1087
1098
|
const rowExpandEl = $xeTable.$refs.refRowExpandElem as HTMLDivElement
|
|
@@ -2005,12 +2016,60 @@ function handleBodyMerge ($xeTable: VxeTableConstructor & VxeTablePrivateMethods
|
|
|
2005
2016
|
}
|
|
2006
2017
|
}
|
|
2007
2018
|
|
|
2008
|
-
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[]) {
|
|
2009
2068
|
const reactData = $xeTable as unknown as TableReactData
|
|
2010
2069
|
const internalData = $xeTable as unknown as TableInternalData
|
|
2011
2070
|
|
|
2012
2071
|
const { footerTableData } = reactData
|
|
2013
|
-
const {
|
|
2072
|
+
const { mergeHeaderList, mergeHeaderMaps, fullColumnIdData } = internalData
|
|
2014
2073
|
if (merges) {
|
|
2015
2074
|
const { visibleColumn } = internalData
|
|
2016
2075
|
if (!XEUtils.isArray(merges)) {
|
|
@@ -2035,7 +2094,7 @@ function handleFooterMerge ($xeTable: VxeTableConstructor & VxeTablePrivateMetho
|
|
|
2035
2094
|
if (rowspan > 1 || colspan > 1) {
|
|
2036
2095
|
const row = footerTableData[mergeRowIndex]
|
|
2037
2096
|
const column = visibleColumn[mergeColumnIndex]
|
|
2038
|
-
let mergeItem =
|
|
2097
|
+
let mergeItem = mergeHeaderMaps[`${mergeRowIndex}:${mergeColumnIndex}`]
|
|
2039
2098
|
if (mergeItem) {
|
|
2040
2099
|
mergeItem.rowspan = rowspan
|
|
2041
2100
|
mergeItem.colspan = colspan
|
|
@@ -2052,8 +2111,8 @@ function handleFooterMerge ($xeTable: VxeTableConstructor & VxeTablePrivateMetho
|
|
|
2052
2111
|
_rowspan: rowspan,
|
|
2053
2112
|
_colspan: colspan
|
|
2054
2113
|
}
|
|
2055
|
-
|
|
2056
|
-
|
|
2114
|
+
mergeHeaderMaps[`${mergeRowIndex}:${mergeColumnIndex}`] = mergeItem
|
|
2115
|
+
mergeHeaderList.push(mergeItem)
|
|
2057
2116
|
}
|
|
2058
2117
|
}
|
|
2059
2118
|
}
|
|
@@ -2061,29 +2120,19 @@ function handleFooterMerge ($xeTable: VxeTableConstructor & VxeTablePrivateMetho
|
|
|
2061
2120
|
}
|
|
2062
2121
|
}
|
|
2063
2122
|
|
|
2064
|
-
function
|
|
2123
|
+
function removeHeaderMerges ($xeTable: VxeTableConstructor & VxeTablePrivateMethods, merges: VxeTableDefines.MergeOptions | VxeTableDefines.MergeOptions[]) {
|
|
2065
2124
|
const internalData = $xeTable as unknown as TableInternalData
|
|
2066
2125
|
|
|
2067
|
-
const {
|
|
2126
|
+
const { mergeHeaderList, fullColumnIdData, mergeHeaderMaps } = internalData
|
|
2068
2127
|
const rest: VxeTableDefines.MergeItem[] = []
|
|
2069
2128
|
if (merges) {
|
|
2070
|
-
const { handleGetRowId } = createHandleGetRowId($xeTable)
|
|
2071
2129
|
if (!XEUtils.isArray(merges)) {
|
|
2072
2130
|
merges = [merges]
|
|
2073
2131
|
}
|
|
2074
2132
|
merges.forEach((item) => {
|
|
2075
2133
|
const { row: margeRow, col: margeCol } = item
|
|
2076
|
-
|
|
2134
|
+
const mergeRowIndex = XEUtils.isNumber(margeRow) ? margeRow : -1
|
|
2077
2135
|
let mergeColumnIndex = -1
|
|
2078
|
-
if (XEUtils.isNumber(margeRow)) {
|
|
2079
|
-
mergeRowIndex = margeRow
|
|
2080
|
-
} else {
|
|
2081
|
-
const rowid = margeRow ? handleGetRowId(margeRow) : null
|
|
2082
|
-
const rowRest = rowid ? fullAllDataRowIdData[rowid] : null
|
|
2083
|
-
if (rowRest) {
|
|
2084
|
-
mergeRowIndex = rowRest._index
|
|
2085
|
-
}
|
|
2086
|
-
}
|
|
2087
2136
|
if (XEUtils.isNumber(margeCol)) {
|
|
2088
2137
|
mergeColumnIndex = margeCol
|
|
2089
2138
|
} else {
|
|
@@ -2093,14 +2142,14 @@ function removeBodyMerges ($xeTable: VxeTableConstructor & VxeTablePrivateMethod
|
|
|
2093
2142
|
mergeColumnIndex = colRest._index
|
|
2094
2143
|
}
|
|
2095
2144
|
}
|
|
2096
|
-
const mcIndex = XEUtils.findIndexOf(
|
|
2145
|
+
const mcIndex = XEUtils.findIndexOf(mergeHeaderList, item => item.row === mergeRowIndex && item.col === mergeColumnIndex)
|
|
2097
2146
|
if (mcIndex > -1) {
|
|
2098
|
-
const rItems =
|
|
2147
|
+
const rItems = mergeHeaderList.splice(mcIndex, 1)
|
|
2099
2148
|
const item = rItems[0]
|
|
2100
2149
|
if (item) {
|
|
2101
|
-
rest.push(
|
|
2102
|
-
if (
|
|
2103
|
-
delete
|
|
2150
|
+
rest.push(item)
|
|
2151
|
+
if (mergeHeaderMaps[`${mergeRowIndex}:${mergeColumnIndex}`]) {
|
|
2152
|
+
delete mergeHeaderMaps[`${mergeRowIndex}:${mergeColumnIndex}`]
|
|
2104
2153
|
}
|
|
2105
2154
|
}
|
|
2106
2155
|
}
|
|
@@ -2109,6 +2158,62 @@ function removeBodyMerges ($xeTable: VxeTableConstructor & VxeTablePrivateMethod
|
|
|
2109
2158
|
return rest
|
|
2110
2159
|
}
|
|
2111
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
|
+
|
|
2112
2217
|
function removeFooterMerges ($xeTable: VxeTableConstructor & VxeTablePrivateMethods, merges: VxeTableDefines.MergeOptions | VxeTableDefines.MergeOptions[]) {
|
|
2113
2218
|
const internalData = $xeTable as unknown as TableInternalData
|
|
2114
2219
|
|
|
@@ -2225,8 +2330,22 @@ function calcTableHeight ($xeTable: VxeTableConstructor & VxeTablePrivateMethods
|
|
|
2225
2330
|
const props = $xeTable
|
|
2226
2331
|
const reactData = $xeTable as unknown as TableReactData
|
|
2227
2332
|
|
|
2333
|
+
const { editConfig } = props
|
|
2228
2334
|
const { parentHeight } = reactData
|
|
2229
|
-
|
|
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
|
+
}
|
|
2230
2349
|
let num = 0
|
|
2231
2350
|
if (val) {
|
|
2232
2351
|
if (val === '100%' || val === 'auto') {
|
|
@@ -2435,6 +2554,13 @@ function handleTargetEnterEvent ($xeTable: VxeTableConstructor, isClear: boolean
|
|
|
2435
2554
|
}
|
|
2436
2555
|
}
|
|
2437
2556
|
|
|
2557
|
+
function clearCrossTableDragStatus ($xeTable: VxeTableConstructor & VxeTablePrivateMethods) {
|
|
2558
|
+
const crossTableDragRowInfo = getCrossTableDragRowInfo($xeTable)
|
|
2559
|
+
|
|
2560
|
+
crossTableDragRowObj = null
|
|
2561
|
+
crossTableDragRowInfo.row = null
|
|
2562
|
+
}
|
|
2563
|
+
|
|
2438
2564
|
function clearDragStatus ($xeTable: VxeTableConstructor & VxeTablePrivateMethods) {
|
|
2439
2565
|
const reactData = $xeTable as unknown as TableReactData
|
|
2440
2566
|
|
|
@@ -2443,6 +2569,7 @@ function clearDragStatus ($xeTable: VxeTableConstructor & VxeTablePrivateMethods
|
|
|
2443
2569
|
clearColDropOrigin($xeTable)
|
|
2444
2570
|
clearRowDropOrigin($xeTable)
|
|
2445
2571
|
hideDropTip($xeTable)
|
|
2572
|
+
clearCrossTableDragStatus($xeTable)
|
|
2446
2573
|
reactData.dragRow = null
|
|
2447
2574
|
reactData.dragCol = null
|
|
2448
2575
|
}
|
|
@@ -2642,6 +2769,28 @@ function hideDropTip ($xeTable: VxeTableConstructor & VxeTablePrivateMethods) {
|
|
|
2642
2769
|
}
|
|
2643
2770
|
}
|
|
2644
2771
|
|
|
2772
|
+
function clearRowDragData ($xeTable: VxeTableConstructor & VxeTablePrivateMethods) {
|
|
2773
|
+
const $xeGantt = $xeTable.$xeGantt
|
|
2774
|
+
const reactData = $xeTable as unknown as TableReactData
|
|
2775
|
+
const internalData = $xeTable as unknown as TableInternalData
|
|
2776
|
+
|
|
2777
|
+
let wrapperEl = $xeTable.$refs.refElem as HTMLDivElement
|
|
2778
|
+
const dtClss = ['.vxe-body--row']
|
|
2779
|
+
if ($xeGantt) {
|
|
2780
|
+
const ganttContainerElem = $xeGantt.$refs.refGanttContainerElem as HTMLDivElement
|
|
2781
|
+
if (ganttContainerElem) {
|
|
2782
|
+
wrapperEl = ganttContainerElem
|
|
2783
|
+
}
|
|
2784
|
+
dtClss.push('.vxe-gantt-view--body-row', '.vxe-gantt-view--chart-row')
|
|
2785
|
+
}
|
|
2786
|
+
hideDropTip($xeTable)
|
|
2787
|
+
clearRowDropOrigin($xeTable)
|
|
2788
|
+
clearRowAnimate(wrapperEl, dtClss)
|
|
2789
|
+
internalData.prevDragToChild = false
|
|
2790
|
+
reactData.dragRow = null
|
|
2791
|
+
reactData.dragCol = null
|
|
2792
|
+
}
|
|
2793
|
+
|
|
2645
2794
|
/**
|
|
2646
2795
|
* 处理显示 tooltip
|
|
2647
2796
|
* @param {Event} evnt 事件
|
|
@@ -2715,12 +2864,22 @@ function handleDefaultMergeCells ($xeTable: VxeTableConstructor & VxeTablePrivat
|
|
|
2715
2864
|
}
|
|
2716
2865
|
}
|
|
2717
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
|
+
|
|
2718
2876
|
function handleDefaultMergeFooterItems ($xeTable: VxeTableConstructor & VxeTablePrivateMethods) {
|
|
2719
2877
|
const props = $xeTable
|
|
2720
2878
|
|
|
2721
|
-
const { mergeFooterItems } = props
|
|
2722
|
-
|
|
2723
|
-
|
|
2879
|
+
const { mergeFooterCells, mergeFooterItems } = props
|
|
2880
|
+
const mFooterCells = mergeFooterCells || mergeFooterItems
|
|
2881
|
+
if (mFooterCells) {
|
|
2882
|
+
$xeTable.setMergeFooterCells(mFooterCells)
|
|
2724
2883
|
}
|
|
2725
2884
|
}
|
|
2726
2885
|
|
|
@@ -3196,6 +3355,10 @@ function loadTableData ($xeTable: VxeTableConstructor & VxeTablePrivateMethods,
|
|
|
3196
3355
|
|
|
3197
3356
|
handleReserveStatus($xeTable)
|
|
3198
3357
|
$xeTable.checkSelectionStatus()
|
|
3358
|
+
$xeTable.dispatchEvent('data-change', {
|
|
3359
|
+
visibleColumn: internalData.visibleColumn,
|
|
3360
|
+
visibleData: internalData.afterFullData
|
|
3361
|
+
}, null)
|
|
3199
3362
|
return new Promise<void>(resolve => {
|
|
3200
3363
|
$xeTable.$nextTick()
|
|
3201
3364
|
.then(() => handleRecalculateStyle($xeTable, false, false, false))
|
|
@@ -3258,6 +3421,7 @@ function handleLoadDefaults ($xeTable: VxeTableConstructor & VxeTablePrivateMeth
|
|
|
3258
3421
|
handleDefaultTreeExpand($xeTable)
|
|
3259
3422
|
handleDefaultRowGroupExpand($xeTable)
|
|
3260
3423
|
handleDefaultMergeCells($xeTable)
|
|
3424
|
+
handleDefaultMergeHeaderItems($xeTable)
|
|
3261
3425
|
handleDefaultMergeFooterItems($xeTable)
|
|
3262
3426
|
$xeTable.$nextTick(() => setTimeout(() => $xeTable.recalculate()))
|
|
3263
3427
|
}
|
|
@@ -4977,7 +5141,9 @@ const Methods = {
|
|
|
4977
5141
|
}
|
|
4978
5142
|
}
|
|
4979
5143
|
}
|
|
4980
|
-
|
|
5144
|
+
const rest = $xeTable.handleRowDragSwapEvent(null, true, dragRow, prevDragRow, dragPos || defPos, dragToChild === true)
|
|
5145
|
+
clearRowDragData($xeTable)
|
|
5146
|
+
return rest
|
|
4981
5147
|
},
|
|
4982
5148
|
/**
|
|
4983
5149
|
* 获取表格的全量列
|
|
@@ -6399,7 +6565,7 @@ const Methods = {
|
|
|
6399
6565
|
!getEventTargetNode(evnt, $el).flag
|
|
6400
6566
|
) {
|
|
6401
6567
|
setTimeout(() => {
|
|
6402
|
-
|
|
6568
|
+
$xeTable.handleClearEdit(evnt).then(() => {
|
|
6403
6569
|
// 如果存在校验,点击了表格之外则清除
|
|
6404
6570
|
if (!this.isActivated && editRules && validOpts.autoClear) {
|
|
6405
6571
|
this.validErrorMaps = {}
|
|
@@ -6414,17 +6580,17 @@ const Methods = {
|
|
|
6414
6580
|
}
|
|
6415
6581
|
} else if (mouseConfig) {
|
|
6416
6582
|
if (!getEventTargetNode(evnt, $el).flag && !($xeGGWrapper && getEventTargetNode(evnt, $xeGGWrapper.$el).flag) && !(tableMenu && getEventTargetNode(evnt, tableMenu.$el).flag) && !($toolbar && getEventTargetNode(evnt, $toolbar.$el).flag)) {
|
|
6417
|
-
if (
|
|
6418
|
-
|
|
6583
|
+
if ($xeTable.clearSelected) {
|
|
6584
|
+
$xeTable.clearSelected()
|
|
6419
6585
|
}
|
|
6420
6586
|
if (areaOpts.autoClear) {
|
|
6421
|
-
if (
|
|
6422
|
-
const cellAreas =
|
|
6587
|
+
if ($xeTable.getCellAreas) {
|
|
6588
|
+
const cellAreas = $xeTable.getCellAreas()
|
|
6423
6589
|
if (cellAreas && cellAreas.length && !getEventTargetNode(evnt, document.body, 'vxe-table--ignore-areas-clear').flag) {
|
|
6424
|
-
|
|
6425
|
-
|
|
6426
|
-
|
|
6427
|
-
|
|
6590
|
+
$xeTable.preventEvent(evnt, 'event.clearAreas', {}, () => {
|
|
6591
|
+
$xeTable.clearCellAreas()
|
|
6592
|
+
$xeTable.clearCopyCellArea()
|
|
6593
|
+
$xeTable.dispatchEvent('clear-cell-area-selection', { cellAreas }, evnt)
|
|
6428
6594
|
})
|
|
6429
6595
|
}
|
|
6430
6596
|
}
|
|
@@ -6461,13 +6627,15 @@ const Methods = {
|
|
|
6461
6627
|
* 表格键盘事件
|
|
6462
6628
|
*/
|
|
6463
6629
|
keydownEvent (evnt: any) {
|
|
6630
|
+
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
6631
|
+
|
|
6464
6632
|
const { filterStore, ctxMenuStore, editStore, keyboardConfig, mouseConfig, mouseOpts, keyboardOpts } = this
|
|
6465
6633
|
const { actived } = editStore
|
|
6466
6634
|
const { keyCode } = evnt
|
|
6467
6635
|
const isEsc = keyCode === 27
|
|
6468
6636
|
if (isEsc) {
|
|
6469
6637
|
this.preventEvent(evnt, 'event.keydown', null, () => {
|
|
6470
|
-
|
|
6638
|
+
$xeTable.dispatchEvent('keydown-start', {}, evnt)
|
|
6471
6639
|
if (keyboardConfig && mouseConfig && mouseOpts.area && this.handleKeyboardCellAreaEvent) {
|
|
6472
6640
|
this.handleKeyboardCellAreaEvent(evnt)
|
|
6473
6641
|
} else if (actived.row || filterStore.visible || ctxMenuStore.visible) {
|
|
@@ -6487,8 +6655,8 @@ const Methods = {
|
|
|
6487
6655
|
}
|
|
6488
6656
|
}
|
|
6489
6657
|
}
|
|
6490
|
-
|
|
6491
|
-
|
|
6658
|
+
$xeTable.dispatchEvent('keydown', {}, evnt)
|
|
6659
|
+
$xeTable.dispatchEvent('keydown-end', {}, evnt)
|
|
6492
6660
|
})
|
|
6493
6661
|
}
|
|
6494
6662
|
},
|
|
@@ -6796,6 +6964,8 @@ const Methods = {
|
|
|
6796
6964
|
}
|
|
6797
6965
|
},
|
|
6798
6966
|
handleGlobalPasteEvent (evnt: any) {
|
|
6967
|
+
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
6968
|
+
|
|
6799
6969
|
const { isActivated, keyboardConfig, keyboardOpts, mouseConfig, mouseOpts, editStore, filterStore } = this
|
|
6800
6970
|
const { actived } = editStore
|
|
6801
6971
|
if (isActivated && !filterStore.visible) {
|
|
@@ -6804,10 +6974,12 @@ const Methods = {
|
|
|
6804
6974
|
this.handlePasteCellAreaEvent(evnt)
|
|
6805
6975
|
}
|
|
6806
6976
|
}
|
|
6807
|
-
|
|
6977
|
+
$xeTable.dispatchEvent('paste', {}, evnt)
|
|
6808
6978
|
}
|
|
6809
6979
|
},
|
|
6810
6980
|
handleGlobalCopyEvent (evnt: any) {
|
|
6981
|
+
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
6982
|
+
|
|
6811
6983
|
const { isActivated, keyboardConfig, keyboardOpts, mouseConfig, mouseOpts, editStore, filterStore } = this
|
|
6812
6984
|
const { actived } = editStore
|
|
6813
6985
|
if (isActivated && !filterStore.visible) {
|
|
@@ -6816,10 +6988,12 @@ const Methods = {
|
|
|
6816
6988
|
this.handleCopyCellAreaEvent(evnt)
|
|
6817
6989
|
}
|
|
6818
6990
|
}
|
|
6819
|
-
|
|
6991
|
+
$xeTable.dispatchEvent('copy', {}, evnt)
|
|
6820
6992
|
}
|
|
6821
6993
|
},
|
|
6822
6994
|
handleGlobalCutEvent (evnt: any) {
|
|
6995
|
+
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
6996
|
+
|
|
6823
6997
|
const { isActivated, keyboardConfig, keyboardOpts, mouseConfig, mouseOpts, editStore, filterStore } = this
|
|
6824
6998
|
const { actived } = editStore
|
|
6825
6999
|
if (isActivated && !filterStore.visible) {
|
|
@@ -6828,7 +7002,7 @@ const Methods = {
|
|
|
6828
7002
|
this.handleCutCellAreaEvent(evnt)
|
|
6829
7003
|
}
|
|
6830
7004
|
}
|
|
6831
|
-
|
|
7005
|
+
$xeTable.dispatchEvent('cut', {}, evnt)
|
|
6832
7006
|
}
|
|
6833
7007
|
},
|
|
6834
7008
|
handleGlobalResizeEvent () {
|
|
@@ -6851,6 +7025,15 @@ const Methods = {
|
|
|
6851
7025
|
internalData.mergeBodyCellMaps = buildMergeData(mergeBodyList)
|
|
6852
7026
|
reactData.mergeBodyFlag++
|
|
6853
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
|
+
},
|
|
6854
7037
|
handleUpdateFooterMerge () {
|
|
6855
7038
|
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
6856
7039
|
const reactData = $xeTable as unknown as TableReactData
|
|
@@ -8028,7 +8211,9 @@ const Methods = {
|
|
|
8028
8211
|
return $xeTable.$nextTick()
|
|
8029
8212
|
},
|
|
8030
8213
|
triggerHeaderCellDblclickEvent (evnt: any, params: any) {
|
|
8031
|
-
|
|
8214
|
+
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
8215
|
+
|
|
8216
|
+
$xeTable.dispatchEvent('header-cell-dblclick', Object.assign({ cell: evnt.currentTarget }, params), evnt)
|
|
8032
8217
|
},
|
|
8033
8218
|
getCurrentColumn () {
|
|
8034
8219
|
return this.columnOpts.isCurrent || this.highlightCurrentColumn ? this.currentColumn : null
|
|
@@ -8213,7 +8398,7 @@ const Methods = {
|
|
|
8213
8398
|
}
|
|
8214
8399
|
}
|
|
8215
8400
|
}
|
|
8216
|
-
|
|
8401
|
+
$xeTable.dispatchEvent('cell-dblclick', params, evnt)
|
|
8217
8402
|
},
|
|
8218
8403
|
handleColumnSortEvent (evnt: any, column: any) {
|
|
8219
8404
|
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
@@ -8659,12 +8844,240 @@ const Methods = {
|
|
|
8659
8844
|
}
|
|
8660
8845
|
return Promise.resolve(errRest)
|
|
8661
8846
|
},
|
|
8662
|
-
|
|
8847
|
+
/**
|
|
8848
|
+
* 处理跨表拖拽完成
|
|
8849
|
+
*/
|
|
8850
|
+
handleCrossTableRowDragFinishEvent (evnt: DragEvent) {
|
|
8851
|
+
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
8852
|
+
const $xeGantt = $xeTable.$xeGantt
|
|
8853
|
+
const reactData = $xeTable as unknown as TableReactData
|
|
8854
|
+
const internalData = $xeTable as unknown as TableInternalData
|
|
8855
|
+
const crossTableDragRowInfo = getCrossTableDragRowInfo($xeTable)
|
|
8856
|
+
|
|
8857
|
+
const { tableData } = reactData
|
|
8858
|
+
const { fullAllDataRowIdData } = internalData
|
|
8859
|
+
const rowOpts = $xeTable.computeRowOpts
|
|
8860
|
+
const cellOpts = $xeTable.computeCellOpts
|
|
8861
|
+
const defaultRowHeight = $xeTable.computeDefaultRowHeight
|
|
8862
|
+
const rowDragOpts = $xeTable.computeRowDragOpts
|
|
8863
|
+
const { animation, isCrossTableDrag } = rowDragOpts
|
|
8864
|
+
const treeOpts = $xeTable.computeTreeOpts
|
|
8865
|
+
const { mapChildrenField } = treeOpts
|
|
8866
|
+
const el = $xeTable.$refs.refElem as HTMLDivElement
|
|
8867
|
+
if (isCrossTableDrag && crossTableDragRowObj && crossTableDragRowInfo) {
|
|
8868
|
+
const { row: dragRow } = crossTableDragRowInfo
|
|
8869
|
+
if (dragRow) {
|
|
8870
|
+
const dragRowid = getRowid($xeTable, dragRow)
|
|
8871
|
+
const dragRowRest = fullAllDataRowIdData[dragRowid]
|
|
8872
|
+
let dragRowHeight = 0
|
|
8873
|
+
let rsIndex = -1
|
|
8874
|
+
if (dragRowRest) {
|
|
8875
|
+
if (animation) {
|
|
8876
|
+
dragRowHeight = getCellRestHeight(dragRowRest, cellOpts, rowOpts, defaultRowHeight)
|
|
8877
|
+
}
|
|
8878
|
+
rsIndex = dragRowRest.$index
|
|
8879
|
+
}
|
|
8880
|
+
const dragRangeList = rsIndex > -1 && rsIndex < tableData.length - 1 ? tableData.slice(rsIndex + 1) : []
|
|
8881
|
+
const dragList = XEUtils.toTreeArray([dragRow], {
|
|
8882
|
+
updated: true,
|
|
8883
|
+
children: mapChildrenField
|
|
8884
|
+
})
|
|
8885
|
+
$xeTable.remove(dragList).then(() => {
|
|
8886
|
+
if (animation && dragRowHeight && dragRangeList.length) {
|
|
8887
|
+
const $xeGanttView = internalData.xeGanttView
|
|
8888
|
+
let wrapperEl = el
|
|
8889
|
+
if ($xeGantt && $xeGanttView) {
|
|
8890
|
+
const ganttContainerElem = $xeGantt.$refs.refGanttContainerElem as HTMLDivElement
|
|
8891
|
+
if (ganttContainerElem) {
|
|
8892
|
+
wrapperEl = ganttContainerElem
|
|
8893
|
+
}
|
|
8894
|
+
}
|
|
8895
|
+
|
|
8896
|
+
const dtClss: string[] = []
|
|
8897
|
+
dragRangeList.forEach(row => {
|
|
8898
|
+
const rowid = getRowid($xeTable, row)
|
|
8899
|
+
dtClss.push(`.vxe-body--row[rowid="${rowid}"]`)
|
|
8900
|
+
if ($xeGantt) {
|
|
8901
|
+
dtClss.push(`.vxe-gantt-view--body-row[rowid="${rowid}"]`, `.vxe-gantt-view--chart-row[rowid="${rowid}"]`)
|
|
8902
|
+
}
|
|
8903
|
+
})
|
|
8904
|
+
const dtTrList = wrapperEl.querySelectorAll<HTMLElement>(dtClss.join(','))
|
|
8905
|
+
moveRowAnimateToTb(dtTrList, dragRowHeight)
|
|
8906
|
+
}
|
|
8907
|
+
})
|
|
8908
|
+
$xeTable.dispatchEvent('row-remove-dragend', {
|
|
8909
|
+
row: dragRow
|
|
8910
|
+
}, evnt)
|
|
8911
|
+
clearRowDragData($xeTable)
|
|
8912
|
+
clearCrossTableDragStatus($xeTable)
|
|
8913
|
+
}
|
|
8914
|
+
}
|
|
8915
|
+
},
|
|
8916
|
+
/**
|
|
8917
|
+
* 处理跨表拖至新的空表
|
|
8918
|
+
*/
|
|
8919
|
+
handleCrossTableRowDragoverEmptyEvent (evnt: DragEvent) {
|
|
8920
|
+
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
8921
|
+
const reactData = $xeTable as unknown as TableReactData
|
|
8922
|
+
const internalData = $xeTable as unknown as TableInternalData
|
|
8923
|
+
|
|
8924
|
+
const { tableData } = reactData
|
|
8925
|
+
const rowDragOpts = $xeTable.computeRowDragOpts
|
|
8926
|
+
const { isCrossTableDrag } = rowDragOpts
|
|
8927
|
+
if (isCrossTableDrag && crossTableDragRowObj && !tableData.length) {
|
|
8928
|
+
const { $oldTable } = crossTableDragRowObj
|
|
8929
|
+
if ($oldTable && $oldTable.xID !== $xeTable.xID) {
|
|
8930
|
+
evnt.preventDefault()
|
|
8931
|
+
crossTableDragRowObj.$newTable = $xeTable
|
|
8932
|
+
internalData.prevDragRow = null
|
|
8933
|
+
}
|
|
8934
|
+
}
|
|
8935
|
+
},
|
|
8936
|
+
/**
|
|
8937
|
+
* 处理跨表拖插入
|
|
8938
|
+
*/
|
|
8939
|
+
handleCrossTableRowDragInsertEvent (evnt: DragEvent) {
|
|
8663
8940
|
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
8664
8941
|
const $xeGantt = $xeTable.$xeGantt
|
|
8665
8942
|
const props = $xeTable
|
|
8666
8943
|
const reactData = $xeTable as unknown as TableReactData
|
|
8667
8944
|
const internalData = $xeTable as unknown as TableInternalData
|
|
8945
|
+
const crossTableDragRowInfo = getCrossTableDragRowInfo($xeTable)
|
|
8946
|
+
|
|
8947
|
+
const { treeConfig } = props
|
|
8948
|
+
const { prevDragRow, prevDragPos, prevDragToChild } = internalData
|
|
8949
|
+
const rowDragOpts = $xeTable.computeRowDragOpts
|
|
8950
|
+
const { animation, isSelfToChildDrag, isCrossTableDrag, dragEndMethod, dragToChildMethod } = rowDragOpts
|
|
8951
|
+
const rowOpts = $xeTable.computeRowOpts
|
|
8952
|
+
const cellOpts = $xeTable.computeCellOpts
|
|
8953
|
+
const defaultRowHeight = $xeTable.computeDefaultRowHeight
|
|
8954
|
+
const treeOpts = $xeTable.computeTreeOpts
|
|
8955
|
+
const { parentField, mapChildrenField } = treeOpts
|
|
8956
|
+
const childrenField = treeOpts.children || treeOpts.childrenField
|
|
8957
|
+
// 跨表拖拽
|
|
8958
|
+
if (isCrossTableDrag && crossTableDragRowObj && crossTableDragRowInfo) {
|
|
8959
|
+
const { row: oldRow } = crossTableDragRowInfo
|
|
8960
|
+
const { $oldTable } = crossTableDragRowObj
|
|
8961
|
+
const el = $xeTable.$refs.refElem as HTMLDivElement
|
|
8962
|
+
if ($oldTable && oldRow) {
|
|
8963
|
+
const dragRow = oldRow
|
|
8964
|
+
let dragOffsetIndex = -1
|
|
8965
|
+
if (prevDragRow) {
|
|
8966
|
+
dragOffsetIndex = prevDragPos === 'bottom' ? 1 : 0
|
|
8967
|
+
}
|
|
8968
|
+
const dragParams = {
|
|
8969
|
+
oldRow: dragRow,
|
|
8970
|
+
newRow: prevDragRow,
|
|
8971
|
+
dragRow,
|
|
8972
|
+
dragPos: prevDragPos as 'top' | 'bottom',
|
|
8973
|
+
dragToChild: !!prevDragToChild,
|
|
8974
|
+
offsetIndex: dragOffsetIndex as 0 | 1
|
|
8975
|
+
}
|
|
8976
|
+
const isDragToChildFlag = isSelfToChildDrag && dragToChildMethod ? dragToChildMethod(dragParams) : prevDragToChild
|
|
8977
|
+
const errRest = {
|
|
8978
|
+
status: false
|
|
8979
|
+
}
|
|
8980
|
+
Promise.resolve(dragEndMethod ? dragEndMethod(dragParams) : true).then((status) => {
|
|
8981
|
+
if (!status) {
|
|
8982
|
+
return errRest
|
|
8983
|
+
}
|
|
8984
|
+
let insertRest: Promise<any> = Promise.resolve()
|
|
8985
|
+
if (treeConfig) {
|
|
8986
|
+
const dragList = XEUtils.toTreeArray([dragRow], {
|
|
8987
|
+
updated: true,
|
|
8988
|
+
children: mapChildrenField
|
|
8989
|
+
})
|
|
8990
|
+
$oldTable.handleCrossTableRowDragFinishEvent(evnt)
|
|
8991
|
+
if (prevDragRow) {
|
|
8992
|
+
dragRow[parentField] = prevDragRow[parentField]
|
|
8993
|
+
} else {
|
|
8994
|
+
dragRow[parentField] = null
|
|
8995
|
+
}
|
|
8996
|
+
dragList.forEach(row => {
|
|
8997
|
+
row[childrenField] = undefined
|
|
8998
|
+
row[mapChildrenField] = undefined
|
|
8999
|
+
})
|
|
9000
|
+
if (prevDragRow) {
|
|
9001
|
+
if (prevDragPos === 'bottom') {
|
|
9002
|
+
insertRest = $xeTable.insertNextAt(dragList, prevDragRow)
|
|
9003
|
+
} else {
|
|
9004
|
+
insertRest = $xeTable.insertAt(dragList, prevDragRow)
|
|
9005
|
+
}
|
|
9006
|
+
} else {
|
|
9007
|
+
insertRest = $xeTable.insert(dragList)
|
|
9008
|
+
}
|
|
9009
|
+
} else {
|
|
9010
|
+
$oldTable.handleCrossTableRowDragFinishEvent(evnt)
|
|
9011
|
+
if (prevDragRow) {
|
|
9012
|
+
if (prevDragPos === 'bottom') {
|
|
9013
|
+
insertRest = $xeTable.insertNextAt(dragRow, prevDragRow)
|
|
9014
|
+
} else {
|
|
9015
|
+
insertRest = $xeTable.insertAt(dragRow, prevDragRow)
|
|
9016
|
+
}
|
|
9017
|
+
} else {
|
|
9018
|
+
insertRest = $xeTable.insert(dragRow)
|
|
9019
|
+
}
|
|
9020
|
+
}
|
|
9021
|
+
$xeTable.dispatchEvent('row-insert-dragend', {
|
|
9022
|
+
oldRow,
|
|
9023
|
+
newRow: prevDragRow,
|
|
9024
|
+
dragRow,
|
|
9025
|
+
dragPos: prevDragPos as any,
|
|
9026
|
+
dragToChild: isDragToChildFlag,
|
|
9027
|
+
offsetIndex: dragOffsetIndex
|
|
9028
|
+
}, evnt)
|
|
9029
|
+
clearRowDragData($xeTable)
|
|
9030
|
+
|
|
9031
|
+
insertRest.then(() => {
|
|
9032
|
+
const { tableData } = reactData
|
|
9033
|
+
const { fullAllDataRowIdData } = internalData
|
|
9034
|
+
const oldRowid = getRowid($xeTable, dragRow)
|
|
9035
|
+
const oldRowRest = fullAllDataRowIdData[oldRowid]
|
|
9036
|
+
let dragRowHeight = 0
|
|
9037
|
+
let rsIndex = -1
|
|
9038
|
+
if (oldRowRest) {
|
|
9039
|
+
if (animation) {
|
|
9040
|
+
dragRowHeight = getCellRestHeight(oldRowRest, cellOpts, rowOpts, defaultRowHeight)
|
|
9041
|
+
}
|
|
9042
|
+
rsIndex = oldRowRest.$index
|
|
9043
|
+
}
|
|
9044
|
+
const dragRangeList = rsIndex > -1 ? tableData.slice(rsIndex) : []
|
|
9045
|
+
if (animation && dragRowHeight && dragRangeList.length) {
|
|
9046
|
+
const $xeGanttView = internalData.xeGanttView
|
|
9047
|
+
let wrapperEl = el
|
|
9048
|
+
if ($xeGantt && $xeGanttView) {
|
|
9049
|
+
const ganttContainerElem = $xeGantt.$refs.refGanttContainerElem as HTMLDivElement
|
|
9050
|
+
if (ganttContainerElem) {
|
|
9051
|
+
wrapperEl = ganttContainerElem
|
|
9052
|
+
}
|
|
9053
|
+
}
|
|
9054
|
+
|
|
9055
|
+
const dtClss: string[] = []
|
|
9056
|
+
dragRangeList.forEach(row => {
|
|
9057
|
+
const rowid = getRowid($xeTable, row)
|
|
9058
|
+
dtClss.push(`.vxe-body--row[rowid="${rowid}"]`)
|
|
9059
|
+
if ($xeGantt) {
|
|
9060
|
+
dtClss.push(`.vxe-gantt-view--body-row[rowid="${rowid}"]`, `.vxe-gantt-view--chart-row[rowid="${rowid}"]`)
|
|
9061
|
+
}
|
|
9062
|
+
})
|
|
9063
|
+
const dtTrList = wrapperEl.querySelectorAll<HTMLElement>(dtClss.join(','))
|
|
9064
|
+
moveRowAnimateToTb(dtTrList, -dragRowHeight)
|
|
9065
|
+
}
|
|
9066
|
+
})
|
|
9067
|
+
})
|
|
9068
|
+
}
|
|
9069
|
+
}
|
|
9070
|
+
},
|
|
9071
|
+
hideCrossTableRowDropClearStatus () {
|
|
9072
|
+
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
9073
|
+
|
|
9074
|
+
hideDropTip($xeTable)
|
|
9075
|
+
},
|
|
9076
|
+
handleRowDragDragendEvent (evnt: DragEvent) {
|
|
9077
|
+
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
9078
|
+
const props = $xeTable
|
|
9079
|
+
const reactData = $xeTable as unknown as TableReactData
|
|
9080
|
+
const internalData = $xeTable as unknown as TableInternalData
|
|
8668
9081
|
|
|
8669
9082
|
const { treeConfig } = props
|
|
8670
9083
|
const { fullAllDataRowIdData, prevDragToChild } = internalData
|
|
@@ -8673,8 +9086,18 @@ const Methods = {
|
|
|
8673
9086
|
const { lazy } = treeOpts
|
|
8674
9087
|
const hasChildField = treeOpts.hasChild || treeOpts.hasChildField
|
|
8675
9088
|
const { prevDragRow, prevDragPos } = internalData
|
|
8676
|
-
|
|
8677
|
-
|
|
9089
|
+
const rowDragOpts = $xeTable.computeRowDragOpts
|
|
9090
|
+
const { isCrossTableDrag, isCrossDrag } = rowDragOpts
|
|
9091
|
+
// 跨表拖拽
|
|
9092
|
+
if (isCrossTableDrag && crossTableDragRowObj) {
|
|
9093
|
+
const { $newTable } = crossTableDragRowObj
|
|
9094
|
+
if ($newTable && $newTable.xID !== $xeTable.xID) {
|
|
9095
|
+
if (!treeConfig || isCrossDrag) {
|
|
9096
|
+
$newTable.handleCrossTableRowDragInsertEvent(evnt)
|
|
9097
|
+
}
|
|
9098
|
+
return
|
|
9099
|
+
}
|
|
9100
|
+
}
|
|
8678
9101
|
if (treeConfig && lazy && prevDragToChild) {
|
|
8679
9102
|
// 懒加载
|
|
8680
9103
|
const newRowid = getRowid($xeTable, prevDragRow)
|
|
@@ -8689,20 +9112,8 @@ const Methods = {
|
|
|
8689
9112
|
} else {
|
|
8690
9113
|
$xeTable.handleRowDragSwapEvent(evnt, true, dragRow, prevDragRow, prevDragPos, prevDragToChild)
|
|
8691
9114
|
}
|
|
8692
|
-
|
|
8693
|
-
|
|
8694
|
-
const ganttContainerElem = $xeGantt.$refs.refGanttContainerElem as HTMLDivElement
|
|
8695
|
-
if (ganttContainerElem) {
|
|
8696
|
-
wrapperEl = ganttContainerElem
|
|
8697
|
-
}
|
|
8698
|
-
dtClss.push('.vxe-gantt-view--body-row', '.vxe-gantt-view--chart-row')
|
|
8699
|
-
}
|
|
8700
|
-
hideDropTip($xeTable)
|
|
8701
|
-
clearRowDropOrigin($xeTable)
|
|
8702
|
-
clearRowAnimate(wrapperEl, dtClss)
|
|
8703
|
-
internalData.prevDragToChild = false
|
|
8704
|
-
reactData.dragRow = null
|
|
8705
|
-
reactData.dragCol = null
|
|
9115
|
+
clearRowDragData($xeTable)
|
|
9116
|
+
clearCrossTableDragStatus($xeTable)
|
|
8706
9117
|
},
|
|
8707
9118
|
handleRowDragDragoverEvent (evnt: DragEvent) {
|
|
8708
9119
|
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
@@ -8717,8 +9128,8 @@ const Methods = {
|
|
|
8717
9128
|
const { lazy, transform, parentField } = treeOpts
|
|
8718
9129
|
const hasChildField = treeOpts.hasChild || treeOpts.hasChildField
|
|
8719
9130
|
const rowDragOpts = $xeTable.computeRowDragOpts
|
|
8720
|
-
const { isPeerDrag, isCrossDrag, isToChildDrag } = rowDragOpts
|
|
8721
|
-
if (!dragRow) {
|
|
9131
|
+
const { isPeerDrag, isCrossDrag, isToChildDrag, isCrossTableDrag } = rowDragOpts
|
|
9132
|
+
if (!dragRow && !(isCrossTableDrag && (!treeConfig || isCrossDrag) && crossTableDragRowObj)) {
|
|
8722
9133
|
evnt.preventDefault()
|
|
8723
9134
|
return
|
|
8724
9135
|
}
|
|
@@ -8727,19 +9138,40 @@ const Methods = {
|
|
|
8727
9138
|
const rowid = trEl.getAttribute('rowid') || ''
|
|
8728
9139
|
const rest = fullAllDataRowIdData[rowid]
|
|
8729
9140
|
if (rest) {
|
|
9141
|
+
evnt.preventDefault()
|
|
8730
9142
|
const row = rest.row
|
|
8731
9143
|
const rowid = getRowid($xeTable, row)
|
|
8732
9144
|
const rowRest = fullAllDataRowIdData[rowid]
|
|
8733
|
-
evnt.preventDefault()
|
|
8734
|
-
const { dragRow } = reactData
|
|
8735
9145
|
const offsetY = evnt.clientY - trEl.getBoundingClientRect().y
|
|
8736
9146
|
const dragPos = offsetY < trEl.clientHeight / 2 ? 'top' : 'bottom'
|
|
8737
|
-
internalData.prevDragToChild = !!(treeConfig && transform && isToChildDrag && isControlKey)
|
|
9147
|
+
internalData.prevDragToChild = !!(treeConfig && transform && (isCrossDrag && isToChildDrag) && isControlKey)
|
|
8738
9148
|
internalData.prevDragRow = row
|
|
8739
9149
|
internalData.prevDragPos = dragPos
|
|
9150
|
+
// 跨表拖拽
|
|
9151
|
+
if (isCrossTableDrag && (!treeConfig || isCrossDrag) && crossTableDragRowObj) {
|
|
9152
|
+
const { $oldTable, $newTable } = crossTableDragRowObj
|
|
9153
|
+
if ($oldTable) {
|
|
9154
|
+
const oldTableReactData = $oldTable as unknown as TableReactData
|
|
9155
|
+
if ($oldTable.xID === $xeTable.xID) {
|
|
9156
|
+
if ($newTable) {
|
|
9157
|
+
$newTable.hideCrossTableRowDropClearStatus()
|
|
9158
|
+
}
|
|
9159
|
+
reactData.isCrossDragRow = false
|
|
9160
|
+
oldTableReactData.isCrossDragRow = false
|
|
9161
|
+
crossTableDragRowObj.$newTable = null
|
|
9162
|
+
} else if (!treeConfig || isCrossDrag) {
|
|
9163
|
+
$oldTable.hideCrossTableRowDropClearStatus()
|
|
9164
|
+
oldTableReactData.isCrossDragRow = true
|
|
9165
|
+
reactData.dragTipText = oldTableReactData.dragTipText
|
|
9166
|
+
crossTableDragRowObj.$newTable = $xeTable
|
|
9167
|
+
showDropTip($xeTable, evnt, trEl, null, true, dragPos)
|
|
9168
|
+
return
|
|
9169
|
+
}
|
|
9170
|
+
}
|
|
9171
|
+
}
|
|
8740
9172
|
if ($xeTable.eqRow(dragRow, row) ||
|
|
8741
|
-
|
|
8742
|
-
|
|
9173
|
+
(isControlKey && treeConfig && lazy && row[hasChildField] && rowRest && !rowRest.treeLoaded) ||
|
|
9174
|
+
(!isCrossDrag && treeConfig && transform && (isPeerDrag ? dragRow[parentField] !== row[parentField] : rest.level))
|
|
8743
9175
|
) {
|
|
8744
9176
|
showDropTip($xeTable, evnt, trEl, null, false, dragPos)
|
|
8745
9177
|
return
|
|
@@ -8752,15 +9184,19 @@ const Methods = {
|
|
|
8752
9184
|
}, evnt)
|
|
8753
9185
|
}
|
|
8754
9186
|
},
|
|
8755
|
-
handleCellDragMousedownEvent (evnt:
|
|
9187
|
+
handleCellDragMousedownEvent (evnt: DragEvent, params: {
|
|
9188
|
+
row: any;
|
|
9189
|
+
column: VxeTableDefines.ColumnInfo<any>;
|
|
9190
|
+
}) {
|
|
8756
9191
|
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
8757
9192
|
const props = $xeTable
|
|
8758
9193
|
const reactData = $xeTable as unknown as TableReactData
|
|
9194
|
+
const crossTableDragRowInfo = getCrossTableDragRowInfo($xeTable)
|
|
8759
9195
|
|
|
8760
9196
|
evnt.stopPropagation()
|
|
8761
9197
|
const { dragConfig } = props
|
|
8762
9198
|
const rowDragOpts = $xeTable.computeRowDragOpts
|
|
8763
|
-
const { trigger, dragStartMethod } = rowDragOpts
|
|
9199
|
+
const { isCrossTableDrag, trigger, dragStartMethod } = rowDragOpts
|
|
8764
9200
|
const { row } = params
|
|
8765
9201
|
const dragEl = evnt.currentTarget as HTMLElement
|
|
8766
9202
|
const tdEl = trigger === 'cell' || trigger === 'row' ? dragEl : dragEl.parentElement?.parentElement as HTMLElement
|
|
@@ -8771,10 +9207,16 @@ const Methods = {
|
|
|
8771
9207
|
trEl.draggable = false
|
|
8772
9208
|
reactData.dragRow = null
|
|
8773
9209
|
reactData.dragCol = null
|
|
9210
|
+
clearCrossTableDragStatus($xeTable)
|
|
8774
9211
|
hideDropTip($xeTable)
|
|
8775
9212
|
return
|
|
8776
9213
|
}
|
|
9214
|
+
if (isCrossTableDrag) {
|
|
9215
|
+
crossTableDragRowInfo.row = row
|
|
9216
|
+
crossTableDragRowObj = { $oldTable: $xeTable, $newTable: null }
|
|
9217
|
+
}
|
|
8777
9218
|
reactData.dragRow = row
|
|
9219
|
+
reactData.isCrossDragRow = false
|
|
8778
9220
|
reactData.dragCol = null
|
|
8779
9221
|
trEl.draggable = true
|
|
8780
9222
|
updateRowDropOrigin($xeTable, row)
|
|
@@ -9113,6 +9555,7 @@ const Methods = {
|
|
|
9113
9555
|
internalData.prevDragToChild = false
|
|
9114
9556
|
reactData.dragRow = null
|
|
9115
9557
|
reactData.dragCol = null
|
|
9558
|
+
clearCrossTableDragStatus($xeTable)
|
|
9116
9559
|
},
|
|
9117
9560
|
handleHeaderCellDragDragoverEvent (evnt: DragEvent) {
|
|
9118
9561
|
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
@@ -9199,11 +9642,13 @@ const Methods = {
|
|
|
9199
9642
|
reactData.dragRow = null
|
|
9200
9643
|
reactData.dragCol = null
|
|
9201
9644
|
hideDropTip($xeTable)
|
|
9645
|
+
clearCrossTableDragStatus($xeTable)
|
|
9202
9646
|
return
|
|
9203
9647
|
}
|
|
9204
9648
|
reactData.dragCol = column
|
|
9205
9649
|
reactData.dragRow = null
|
|
9206
9650
|
thEl.draggable = true
|
|
9651
|
+
clearCrossTableDragStatus($xeTable)
|
|
9207
9652
|
updateColDropOrigin($xeTable, column)
|
|
9208
9653
|
updateColDropTipContent($xeTable, thEl)
|
|
9209
9654
|
$xeTable.dispatchEvent('column-dragstart', params, evnt)
|
|
@@ -9214,6 +9659,7 @@ const Methods = {
|
|
|
9214
9659
|
|
|
9215
9660
|
clearColDropOrigin($xeTable)
|
|
9216
9661
|
hideDropTip($xeTable)
|
|
9662
|
+
clearCrossTableDragStatus($xeTable)
|
|
9217
9663
|
reactData.dragRow = null
|
|
9218
9664
|
reactData.dragCol = null
|
|
9219
9665
|
},
|
|
@@ -11204,6 +11650,10 @@ const Methods = {
|
|
|
11204
11650
|
}
|
|
11205
11651
|
reactData.footerTableData = footData
|
|
11206
11652
|
$xeTable.handleUpdateFooterMerge()
|
|
11653
|
+
$xeTable.dispatchEvent('footer-data-change', {
|
|
11654
|
+
visibleColumn: internalData.visibleColumn,
|
|
11655
|
+
footData
|
|
11656
|
+
}, null)
|
|
11207
11657
|
return $xeTable.$nextTick()
|
|
11208
11658
|
},
|
|
11209
11659
|
/**
|
|
@@ -11225,7 +11675,7 @@ const Methods = {
|
|
|
11225
11675
|
/**
|
|
11226
11676
|
* 设置合并单元格 [{ row: Row|number, column: ColumnInfo|number, rowspan: number, colspan: number }]
|
|
11227
11677
|
*/
|
|
11228
|
-
setMergeCells (merges:
|
|
11678
|
+
setMergeCells (merges: VxeTableDefines.MergeOptions | VxeTableDefines.MergeOptions[]) {
|
|
11229
11679
|
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
11230
11680
|
const props = $xeTable
|
|
11231
11681
|
const reactData = $xeTable as unknown as TableReactData
|
|
@@ -11249,7 +11699,7 @@ const Methods = {
|
|
|
11249
11699
|
/**
|
|
11250
11700
|
* 移除单元格合并 [{row:Row|number, col:ColumnInfo|number}]
|
|
11251
11701
|
*/
|
|
11252
|
-
removeMergeCells (merges:
|
|
11702
|
+
removeMergeCells (merges: VxeTableDefines.MergeOptions | VxeTableDefines.MergeOptions[]) {
|
|
11253
11703
|
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
11254
11704
|
const props = $xeTable
|
|
11255
11705
|
|
|
@@ -11289,48 +11739,111 @@ const Methods = {
|
|
|
11289
11739
|
return updateStyle($xeTable)
|
|
11290
11740
|
})
|
|
11291
11741
|
},
|
|
11292
|
-
|
|
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[]) {
|
|
11293
11790
|
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
11294
11791
|
const props = $xeTable
|
|
11295
11792
|
|
|
11296
11793
|
if (props.footerSpanMethod) {
|
|
11297
|
-
errLog('vxe.error.errConflicts', ['merge-footer-items', 'footer-span-method'])
|
|
11794
|
+
errLog('vxe.error.errConflicts', ['merge-footer-cells | merge-footer-items', 'footer-span-method'])
|
|
11298
11795
|
}
|
|
11299
11796
|
handleFooterMerge($xeTable, merges)
|
|
11300
11797
|
$xeTable.handleUpdateFooterMerge()
|
|
11301
11798
|
return $xeTable.$nextTick().then(() => {
|
|
11302
|
-
$xeTable.updateCellAreas()
|
|
11303
11799
|
return updateStyle($xeTable)
|
|
11304
11800
|
})
|
|
11305
11801
|
},
|
|
11306
|
-
|
|
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[]) {
|
|
11307
11809
|
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
11308
11810
|
const props = $xeTable
|
|
11309
11811
|
|
|
11310
11812
|
if (props.footerSpanMethod) {
|
|
11311
|
-
errLog('vxe.error.errConflicts', ['merge-footer-items', 'footer-span-method'])
|
|
11813
|
+
errLog('vxe.error.errConflicts', ['merge-footer-cells | merge-footer-items', 'footer-span-method'])
|
|
11312
11814
|
}
|
|
11313
11815
|
const rest = removeFooterMerges($xeTable, merges)
|
|
11314
11816
|
$xeTable.handleUpdateFooterMerge()
|
|
11315
11817
|
return $xeTable.$nextTick().then(() => {
|
|
11316
|
-
$xeTable.updateCellAreas()
|
|
11317
11818
|
updateStyle($xeTable)
|
|
11318
11819
|
return rest
|
|
11319
11820
|
})
|
|
11320
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
|
+
},
|
|
11321
11828
|
/**
|
|
11322
11829
|
* 获取所有被合并的表尾
|
|
11323
11830
|
*/
|
|
11324
|
-
|
|
11831
|
+
getMergeFooterCells () {
|
|
11325
11832
|
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
11326
11833
|
const internalData = $xeTable as unknown as TableInternalData
|
|
11327
11834
|
|
|
11328
11835
|
return internalData.mergeFooterList.slice(0)
|
|
11329
11836
|
},
|
|
11837
|
+
getMergeFooterItems () {
|
|
11838
|
+
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
11839
|
+
|
|
11840
|
+
// errLog('vxe.error.delFunc', ['getMergeFooterItems', 'getMergeFooterCells'])
|
|
11841
|
+
return $xeTable.getMergeFooterCells()
|
|
11842
|
+
},
|
|
11330
11843
|
/**
|
|
11331
11844
|
* 清除所有表尾合并
|
|
11332
11845
|
*/
|
|
11333
|
-
|
|
11846
|
+
clearMergeFooterCells () {
|
|
11334
11847
|
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
11335
11848
|
const reactData = $xeTable as unknown as TableReactData
|
|
11336
11849
|
const internalData = $xeTable as unknown as TableInternalData
|
|
@@ -11343,6 +11856,12 @@ const Methods = {
|
|
|
11343
11856
|
return updateStyle($xeTable)
|
|
11344
11857
|
})
|
|
11345
11858
|
},
|
|
11859
|
+
clearMergeFooterItems () {
|
|
11860
|
+
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
11861
|
+
|
|
11862
|
+
// errLog('vxe.error.delFunc', ['clearMergeFooterItems', 'clearMergeFooterCells'])
|
|
11863
|
+
return $xeTable.clearMergeFooterCells()
|
|
11864
|
+
},
|
|
11346
11865
|
handleUpdateAggData () {
|
|
11347
11866
|
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
11348
11867
|
const internalData = $xeTable as unknown as TableInternalData
|
|
@@ -11377,10 +11896,8 @@ const Methods = {
|
|
|
11377
11896
|
// 已废弃,使用 dispatchEvent
|
|
11378
11897
|
emitEvent (type: any, params: any, evnt: any) {
|
|
11379
11898
|
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
11380
|
-
const $xeGrid = $xeTable.$xeGrid
|
|
11381
|
-
const $xeGantt = $xeTable.$xeGantt
|
|
11382
11899
|
|
|
11383
|
-
$xeTable
|
|
11900
|
+
$xeTable.dispatchEvent(type, params, evnt)
|
|
11384
11901
|
},
|
|
11385
11902
|
focus () {
|
|
11386
11903
|
this.isActivated = true
|