vxe-table 3.21.22 → 3.21.24

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.
Files changed (176) hide show
  1. package/es/{iconfont.1782890276645.ttf → iconfont.1783331230583.ttf} +0 -0
  2. package/es/iconfont.1783331230583.woff +0 -0
  3. package/es/iconfont.1783331230583.woff2 +0 -0
  4. package/es/index.css +1 -1
  5. package/es/index.min.css +1 -1
  6. package/es/locale/lang/ar-EG.js +12 -3
  7. package/es/locale/lang/de-DE.js +12 -3
  8. package/es/locale/lang/en-US.js +16 -7
  9. package/es/locale/lang/es-ES.js +12 -3
  10. package/es/locale/lang/fr-FR.js +12 -3
  11. package/es/locale/lang/hu-HU.js +12 -3
  12. package/es/locale/lang/hy-AM.js +12 -3
  13. package/es/locale/lang/id-ID.js +12 -3
  14. package/es/locale/lang/it-IT.js +11 -2
  15. package/es/locale/lang/ja-JP.js +12 -3
  16. package/es/locale/lang/ko-KR.js +12 -3
  17. package/es/locale/lang/ms-MY.js +12 -3
  18. package/es/locale/lang/nb-NO.js +12 -3
  19. package/es/locale/lang/pt-BR.js +12 -3
  20. package/es/locale/lang/ru-RU.js +12 -3
  21. package/es/locale/lang/th-TH.js +12 -3
  22. package/es/locale/lang/ug-CN.js +12 -3
  23. package/es/locale/lang/uk-UA.js +12 -3
  24. package/es/locale/lang/uz-UZ.js +12 -3
  25. package/es/locale/lang/vi-VN.js +11 -2
  26. package/es/locale/lang/zh-CHT.js +14 -5
  27. package/es/locale/lang/zh-CN.js +14 -5
  28. package/es/style.css +1 -1
  29. package/es/style.min.css +1 -1
  30. package/es/table/module/custom/mixin.js +84 -13
  31. package/es/table/module/custom/panel.js +485 -312
  32. package/es/table/src/cell.js +2 -2
  33. package/es/table/src/columnInfo.js +13 -7
  34. package/es/table/src/methods.js +102 -60
  35. package/es/table/src/util.js +31 -1
  36. package/es/table/style.css +96 -49
  37. package/es/table/style.min.css +1 -1
  38. package/es/ui/index.js +16 -4
  39. package/es/ui/src/log.js +1 -1
  40. package/es/vxe-table/style.css +96 -49
  41. package/es/vxe-table/style.min.css +1 -1
  42. package/lib/{iconfont.1782890276645.ttf → iconfont.1783331230583.ttf} +0 -0
  43. package/lib/iconfont.1783331230583.woff +0 -0
  44. package/lib/iconfont.1783331230583.woff2 +0 -0
  45. package/lib/index.css +1 -1
  46. package/lib/index.min.css +1 -1
  47. package/lib/index.umd.js +560 -196
  48. package/lib/index.umd.min.js +1 -1
  49. package/lib/locale/lang/ar-EG.js +12 -3
  50. package/lib/locale/lang/ar-EG.min.js +1 -1
  51. package/lib/locale/lang/ar-EG.umd.js +12 -3
  52. package/lib/locale/lang/de-DE.js +12 -3
  53. package/lib/locale/lang/de-DE.min.js +1 -1
  54. package/lib/locale/lang/de-DE.umd.js +12 -3
  55. package/lib/locale/lang/en-US.js +16 -7
  56. package/lib/locale/lang/en-US.min.js +1 -1
  57. package/lib/locale/lang/en-US.umd.js +16 -7
  58. package/lib/locale/lang/es-ES.js +12 -3
  59. package/lib/locale/lang/es-ES.min.js +1 -1
  60. package/lib/locale/lang/es-ES.umd.js +12 -3
  61. package/lib/locale/lang/fr-FR.js +12 -3
  62. package/lib/locale/lang/fr-FR.min.js +1 -1
  63. package/lib/locale/lang/fr-FR.umd.js +12 -3
  64. package/lib/locale/lang/hu-HU.js +12 -3
  65. package/lib/locale/lang/hu-HU.min.js +1 -1
  66. package/lib/locale/lang/hu-HU.umd.js +12 -3
  67. package/lib/locale/lang/hy-AM.js +12 -3
  68. package/lib/locale/lang/hy-AM.min.js +1 -1
  69. package/lib/locale/lang/hy-AM.umd.js +12 -3
  70. package/lib/locale/lang/id-ID.js +12 -3
  71. package/lib/locale/lang/id-ID.min.js +1 -1
  72. package/lib/locale/lang/id-ID.umd.js +12 -3
  73. package/lib/locale/lang/it-IT.js +11 -2
  74. package/lib/locale/lang/it-IT.min.js +1 -1
  75. package/lib/locale/lang/it-IT.umd.js +11 -2
  76. package/lib/locale/lang/ja-JP.js +12 -3
  77. package/lib/locale/lang/ja-JP.min.js +1 -1
  78. package/lib/locale/lang/ja-JP.umd.js +12 -3
  79. package/lib/locale/lang/ko-KR.js +12 -3
  80. package/lib/locale/lang/ko-KR.min.js +1 -1
  81. package/lib/locale/lang/ko-KR.umd.js +12 -3
  82. package/lib/locale/lang/ms-MY.js +12 -3
  83. package/lib/locale/lang/ms-MY.min.js +1 -1
  84. package/lib/locale/lang/ms-MY.umd.js +12 -3
  85. package/lib/locale/lang/nb-NO.js +12 -3
  86. package/lib/locale/lang/nb-NO.min.js +1 -1
  87. package/lib/locale/lang/nb-NO.umd.js +12 -3
  88. package/lib/locale/lang/pt-BR.js +12 -3
  89. package/lib/locale/lang/pt-BR.min.js +1 -1
  90. package/lib/locale/lang/pt-BR.umd.js +12 -3
  91. package/lib/locale/lang/ru-RU.js +12 -3
  92. package/lib/locale/lang/ru-RU.min.js +1 -1
  93. package/lib/locale/lang/ru-RU.umd.js +12 -3
  94. package/lib/locale/lang/th-TH.js +12 -3
  95. package/lib/locale/lang/th-TH.min.js +1 -1
  96. package/lib/locale/lang/th-TH.umd.js +12 -3
  97. package/lib/locale/lang/ug-CN.js +12 -3
  98. package/lib/locale/lang/ug-CN.min.js +1 -1
  99. package/lib/locale/lang/ug-CN.umd.js +12 -3
  100. package/lib/locale/lang/uk-UA.js +12 -3
  101. package/lib/locale/lang/uk-UA.min.js +1 -1
  102. package/lib/locale/lang/uk-UA.umd.js +12 -3
  103. package/lib/locale/lang/uz-UZ.js +12 -3
  104. package/lib/locale/lang/uz-UZ.min.js +1 -1
  105. package/lib/locale/lang/uz-UZ.umd.js +12 -3
  106. package/lib/locale/lang/vi-VN.js +11 -2
  107. package/lib/locale/lang/vi-VN.min.js +1 -1
  108. package/lib/locale/lang/vi-VN.umd.js +11 -2
  109. package/lib/locale/lang/zh-CHT.js +14 -5
  110. package/lib/locale/lang/zh-CHT.min.js +1 -1
  111. package/lib/locale/lang/zh-CHT.umd.js +14 -5
  112. package/lib/locale/lang/zh-CN.js +14 -5
  113. package/lib/locale/lang/zh-CN.min.js +1 -1
  114. package/lib/locale/lang/zh-CN.umd.js +14 -5
  115. package/lib/style.css +1 -1
  116. package/lib/style.min.css +1 -1
  117. package/lib/table/module/custom/mixin.js +91 -11
  118. package/lib/table/module/custom/mixin.min.js +1 -1
  119. package/lib/table/module/custom/panel.js +376 -158
  120. package/lib/table/module/custom/panel.min.js +1 -1
  121. package/lib/table/src/cell.js +2 -1
  122. package/lib/table/src/cell.min.js +1 -1
  123. package/lib/table/src/columnInfo.js +16 -6
  124. package/lib/table/src/columnInfo.min.js +1 -1
  125. package/lib/table/src/methods.js +10 -9
  126. package/lib/table/src/methods.min.js +1 -1
  127. package/lib/table/src/util.js +35 -1
  128. package/lib/table/src/util.min.js +1 -1
  129. package/lib/table/style/style.css +96 -49
  130. package/lib/table/style/style.min.css +1 -1
  131. package/lib/ui/index.js +16 -4
  132. package/lib/ui/index.min.js +1 -1
  133. package/lib/ui/src/log.js +1 -1
  134. package/lib/ui/src/log.min.js +1 -1
  135. package/lib/vxe-table/style/style.css +96 -49
  136. package/lib/vxe-table/style/style.min.css +1 -1
  137. package/package.json +2 -2
  138. package/packages/locale/lang/ar-EG.ts +12 -3
  139. package/packages/locale/lang/de-DE.ts +12 -3
  140. package/packages/locale/lang/en-US.ts +16 -7
  141. package/packages/locale/lang/es-ES.ts +12 -3
  142. package/packages/locale/lang/fr-FR.ts +12 -3
  143. package/packages/locale/lang/hu-HU.ts +12 -3
  144. package/packages/locale/lang/hy-AM.ts +12 -3
  145. package/packages/locale/lang/id-ID.ts +12 -3
  146. package/packages/locale/lang/it-IT.ts +11 -2
  147. package/packages/locale/lang/ja-JP.ts +12 -3
  148. package/packages/locale/lang/ko-KR.ts +12 -3
  149. package/packages/locale/lang/ms-MY.ts +12 -3
  150. package/packages/locale/lang/nb-NO.ts +12 -3
  151. package/packages/locale/lang/pt-BR.ts +12 -3
  152. package/packages/locale/lang/ru-RU.ts +12 -3
  153. package/packages/locale/lang/th-TH.ts +12 -3
  154. package/packages/locale/lang/ug-CN.ts +12 -3
  155. package/packages/locale/lang/uk-UA.ts +12 -3
  156. package/packages/locale/lang/uz-UZ.ts +12 -3
  157. package/packages/locale/lang/vi-VN.ts +11 -2
  158. package/packages/locale/lang/zh-CHT.ts +14 -5
  159. package/packages/locale/lang/zh-CN.ts +14 -5
  160. package/packages/table/module/custom/mixin.ts +85 -14
  161. package/packages/table/module/custom/panel.ts +538 -307
  162. package/packages/table/src/cell.ts +2 -2
  163. package/packages/table/src/columnInfo.ts +13 -7
  164. package/packages/table/src/methods.ts +118 -61
  165. package/packages/table/src/util.ts +34 -1
  166. package/packages/ui/index.ts +15 -3
  167. package/styles/components/icon.scss +29 -2
  168. package/styles/components/table-module/custom.scss +88 -67
  169. package/styles/icon/iconfont.ttf +0 -0
  170. package/styles/icon/iconfont.woff +0 -0
  171. package/styles/icon/iconfont.woff2 +0 -0
  172. package/styles/theme/base.scss +11 -0
  173. package/es/iconfont.1782890276645.woff +0 -0
  174. package/es/iconfont.1782890276645.woff2 +0 -0
  175. package/lib/iconfont.1782890276645.woff +0 -0
  176. package/lib/iconfont.1782890276645.woff2 +0 -0
@@ -553,7 +553,7 @@ export const Cell = {
553
553
  const treeOpts = $table.computeTreeOpts
554
554
  const { row, column, level } = params
555
555
  const { slots } = column
556
- const { padding, indent, lazy, trigger, iconLoaded, showIcon, iconOpen, iconClose } = treeOpts
556
+ const { padding, indent, lazy, trigger, visibleMethod, iconLoaded, showIcon, iconOpen, iconClose } = treeOpts
557
557
  const childrenField = treeOpts.children || treeOpts.childrenField
558
558
  const hasChildField = treeOpts.hasChild || treeOpts.hasChildField
559
559
  const rowChilds = row[childrenField]
@@ -593,7 +593,7 @@ export const Cell = {
593
593
  }
594
594
  : undefined
595
595
  }, [
596
- showIcon && (lazy ? (isLazyLoaded ? hasChild : (hasChild || hasLazyChilds)) : hasChild)
596
+ showIcon && (lazy ? (isLazyLoaded ? hasChild : (hasChild || hasLazyChilds)) : hasChild) && (!visibleMethod || visibleMethod(params))
597
597
  ? [
598
598
  h('div', {
599
599
  class: 'vxe-cell--tree-btn',
@@ -19,7 +19,7 @@ export class ColumnInfo {
19
19
  const $xeGantt = $xeTable.$xeGantt
20
20
  const $xeGGWrapper = $xeGrid || $xeGantt
21
21
 
22
- const { type, field, width, visible, aggFunc, formatter, filterMultiple, cellRender, editRender, filterRender } = colConfs
22
+ const { type, field, width, visible, fixed, align, headerAlign, footerAlign, aggFunc, formatter, filterMultiple, cellRender, editRender, filterRender } = colConfs
23
23
 
24
24
  const colId = colConfs.colId || XEUtils.uniqueId('col_')
25
25
 
@@ -94,10 +94,10 @@ export class ColumnInfo {
94
94
  minWidth: colConfs.minWidth,
95
95
  maxWidth: colConfs.maxWidth,
96
96
  resizable: colConfs.resizable,
97
- fixed: colConfs.fixed,
98
- align: colConfs.align,
99
- headerAlign: colConfs.headerAlign,
100
- footerAlign: colConfs.footerAlign,
97
+ fixed,
98
+ align,
99
+ headerAlign,
100
+ footerAlign,
101
101
  showOverflow: colConfs.showOverflow,
102
102
  showHeaderOverflow: colConfs.showHeaderOverflow,
103
103
  showFooterOverflow: colConfs.showFooterOverflow,
@@ -141,7 +141,7 @@ export class ColumnInfo {
141
141
  titlePrefix: colConfs.titlePrefix,
142
142
  titleSuffix: colConfs.titleSuffix,
143
143
 
144
- aggFunc: colConfs.aggFunc,
144
+ aggFunc,
145
145
  copyMethod: colConfs.copyMethod,
146
146
  cutMethod: colConfs.cutMethod,
147
147
  pasteMethod: colConfs.pasteMethod,
@@ -156,7 +156,10 @@ export class ColumnInfo {
156
156
  defaultParentId: null,
157
157
  halfVisible: false,
158
158
  defaultVisible: defaultVisible,
159
- defaultFixed: colConfs.fixed,
159
+ defaultFixed: fixed,
160
+ defaultAlign: align,
161
+ defaultHeaderAlign: headerAlign,
162
+ defaultFooterAlign: footerAlign,
160
163
 
161
164
  defaultAggFunc: colConfs.aggFunc,
162
165
 
@@ -182,6 +185,9 @@ export class ColumnInfo {
182
185
  renderAggDigits: null,
183
186
  renderAggFormat: null,
184
187
 
188
+ renderAlign: '',
189
+ renderHeaderAlign: '',
190
+ renderFooterAlign: '',
185
191
  renderFixed: '',
186
192
  renderVisible: false,
187
193
 
@@ -3,7 +3,7 @@ import { getTpImg, isPx, isScale, hasClass, addClass, removeClass, wheelScrollLe
3
3
  import { getLastZIndex, nextZIndex, hasChildrenList, getFuncText, isEnableConf, formatText, eqEmptyValue } from '../../ui/src/utils'
4
4
  import { VxeUI } from '../../ui'
5
5
  import Cell from './cell'
6
- import { getRowUniqueId, createRowId, clearTableAllStatus, getColumnList, toFilters, getRowkey, getRowid, rowToVisible, colToVisible, getCellValue, setCellValue, handleRowidOrRow, handleFieldOrColumn, toTreePathSeq, restoreScrollLocation, getRootColumn, getColReMinWidth, getColReMaxWidth, createHandleUpdateRowId, createHandleGetRowId, getRefElem, getCellRestHeight, getLastChildColumn, getRowMaxHeight } from './util'
6
+ import { getRowUniqueId, createRowId, clearTableAllStatus, getColumnList, toFilters, getRowkey, getRowid, rowToVisible, colToVisible, getCellValue, setCellValue, handleRowidOrRow, handleFieldOrColumn, toTreePathSeq, restoreScrollLocation, getRootColumn, getColReMinWidth, getColReMaxWidth, createHandleUpdateRowId, createHandleGetRowId, getRefElem, getCellRestHeight, getLastChildColumn, getRowMaxHeight, handleCustomStoreConfig } from './util'
7
7
  import { getSlotVNs } from '../../ui/src/vn'
8
8
  import { moveRowAnimateToTb, clearRowAnimate, moveColAnimateToLr, clearColAnimate } from '../../ui/src/anime'
9
9
  import { createComponentLog } from '../../ui/src/log'
@@ -42,10 +42,6 @@ function eqCellValue (newRow: any, oldRow: any, field: any) {
42
42
  return { newValue: val1, oldValue: val2, result }
43
43
  }
44
44
 
45
- function hangleStorageDefaultValue (value: boolean | null | undefined, isAll: boolean) {
46
- return XEUtils.isBoolean(value) ? value : isAll
47
- }
48
-
49
45
  function getNextSortOrder ($xeTable: VxeTableConstructor & VxeTablePrivateMethods, column: any) {
50
46
  const sortOpts = $xeTable.computeSortOpts
51
47
  const { orders = [] } = sortOpts
@@ -148,19 +144,19 @@ function handleCustomRestore ($xeTable: VxeTableConstructor & VxeTablePrivateMet
148
144
 
149
145
  const { aggregateConfig, rowGroupConfig } = props
150
146
  const { collectColumn } = internalData
151
- const customOpts = $xeTable.computeCustomOpts
152
- const { storage, storeOptions } = customOpts
153
- const isAllCustom = storage === true
154
- const storageOpts: VxeTableDefines.VxeTableCustomStorageObj = Object.assign({}, isAllCustom ? {} : storage || {}, storeOptions)
155
- const isCustomResizable = hangleStorageDefaultValue(storageOpts.resizable, isAllCustom)
156
- const isCustomVisible = hangleStorageDefaultValue(storageOpts.visible, isAllCustom)
157
- const isCustomFixed = hangleStorageDefaultValue(storageOpts.fixed, isAllCustom)
158
- const isCustomSort = hangleStorageDefaultValue(storageOpts.sort, isAllCustom)
159
- const isCustomAggGroup = hangleStorageDefaultValue(storageOpts.aggGroup, isAllCustom)
160
- const isCustomAggFunc = hangleStorageDefaultValue(storageOpts.aggFunc, isAllCustom)
161
- let { resizableData, sortData, visibleData, fixedData, aggGroupData, aggFuncData } = storeData
147
+ const { isCustomAlign, isCustomHeaderAlign, isCustomFooterAlign, isCustomResizable, isCustomVisible, isCustomFixed, isCustomSort, isCustomAggGroup, isCustomAggFunc } = handleCustomStoreConfig($xeTable)
148
+
149
+ let { alignData, headerAlignData, footerAlignData, resizableData, sortData, visibleData, fixedData, aggGroupData, aggFuncData } = storeData
162
150
  // 处理还原
163
- if ((isCustomResizable && resizableData) || (isCustomSort && sortData) || (isCustomVisible && visibleData) || (isCustomFixed && fixedData) || (isCustomAggGroup && aggGroupData) || (isCustomAggFunc && aggFuncData)) {
151
+ if ((isCustomAlign && alignData) ||
152
+ (isCustomHeaderAlign && headerAlignData) ||
153
+ (isCustomFooterAlign && footerAlignData) ||
154
+ (isCustomResizable && resizableData) ||
155
+ (isCustomSort && sortData) ||
156
+ (isCustomVisible && visibleData) ||
157
+ (isCustomFixed && fixedData) ||
158
+ (isCustomAggGroup && aggGroupData) ||
159
+ (isCustomAggFunc && aggFuncData)) {
164
160
  const sortColMaps: Record<string, {
165
161
  key: string
166
162
  sNum: number
@@ -249,15 +245,22 @@ function restoreCustomStorage ($xeTable: VxeTableConstructor & VxeTablePrivateMe
249
245
  const { customConfig } = props
250
246
  const tableId = $xeTable.computeTableId
251
247
  const customOpts = $xeTable.computeCustomOpts
252
- const { storage, restoreStore, storeOptions } = customOpts
253
- const isAllCustom = storage === true
254
- const storageOpts: VxeTableDefines.VxeTableCustomStorageObj = Object.assign({}, isAllCustom ? {} : storage || {}, storeOptions)
255
- const isCustomResizable = hangleStorageDefaultValue(storageOpts.resizable, isAllCustom)
256
- const isCustomVisible = hangleStorageDefaultValue(storageOpts.visible, isAllCustom)
257
- const isCustomFixed = hangleStorageDefaultValue(storageOpts.fixed, isAllCustom)
258
- const isCustomSort = hangleStorageDefaultValue(storageOpts.sort, isAllCustom)
259
- const isCustomAggFunc = hangleStorageDefaultValue(storageOpts.aggFunc, isAllCustom)
260
- if (storage && (customConfig ? isEnableConf(customOpts) : customOpts.enabled) && (isCustomResizable || isCustomVisible || isCustomFixed || isCustomSort || isCustomAggFunc)) {
248
+ const { storage, restoreStore } = customOpts
249
+ const { isCustomAlign, isCustomHeaderAlign, isCustomFooterAlign, isCustomResizable, isCustomVisible, isCustomFixed, isCustomSort, isCustomAggGroup, isCustomAggFunc } = handleCustomStoreConfig($xeTable)
250
+
251
+ if (storage &&
252
+ (customConfig ? isEnableConf(customOpts) : customOpts.enabled) &&
253
+ (
254
+ isCustomAlign ||
255
+ isCustomHeaderAlign ||
256
+ isCustomFooterAlign ||
257
+ isCustomResizable ||
258
+ isCustomVisible ||
259
+ isCustomFixed ||
260
+ isCustomSort ||
261
+ isCustomAggGroup ||
262
+ isCustomAggFunc)
263
+ ) {
261
264
  if (!tableId) {
262
265
  errLog('vxe.error.reqProp', ['id'])
263
266
  return
@@ -484,8 +487,9 @@ function handleBaseTreeExpand ($xeTable: VxeTableConstructor & VxeTablePrivateMe
484
487
  const result: any[] = []
485
488
  const columnIndex = $xeTable.getColumnIndex(treeNodeColumn)
486
489
  const $columnIndex = $xeTable.getVMColumnIndex(treeNodeColumn)
490
+ const _columnIndex = $xeTable.getVTColumnIndex(treeNodeColumn)
487
491
  const { handleGetRowId } = createHandleGetRowId($xeTable)
488
- let validRows = toggleMethod ? rows.filter((row: any) => toggleMethod({ $table: $xeTable, expanded, column: treeNodeColumn, columnIndex, $columnIndex, row })) : rows
492
+ let validRows = toggleMethod ? rows.filter((row: any) => toggleMethod({ $table: $xeTable, expanded, column: treeNodeColumn, columnIndex, $columnIndex, _columnIndex, row })) : rows
489
493
  if (accordion) {
490
494
  validRows = validRows.length ? [validRows[validRows.length - 1]] : []
491
495
  // 同一级只能展开一个
@@ -6661,15 +6665,23 @@ const tableMethods: any = {
6661
6665
  const { customConfig } = props
6662
6666
  const tableId = $xeTable.computeTableId
6663
6667
  const customOpts = $xeTable.computeCustomOpts
6664
- const { storage, restoreStore, storeOptions } = customOpts
6665
- const isAllCustom = storage === true
6666
- const storageOpts: VxeTableDefines.VxeTableCustomStorageObj = Object.assign({}, isAllCustom ? {} : storage || {}, storeOptions)
6667
- const isCustomResizable = hangleStorageDefaultValue(storageOpts.resizable, isAllCustom)
6668
- const isCustomVisible = hangleStorageDefaultValue(storageOpts.visible, isAllCustom)
6669
- const isCustomFixed = hangleStorageDefaultValue(storageOpts.fixed, isAllCustom)
6670
- const isCustomAggGroup = hangleStorageDefaultValue(storageOpts.aggGroup, isAllCustom)
6671
- const isCustomSort = hangleStorageDefaultValue(storageOpts.sort, isAllCustom)
6672
- if (storage && (customConfig ? isEnableConf(customOpts) : customOpts.enabled) && (isCustomResizable || isCustomVisible || isCustomFixed || isCustomAggGroup || isCustomSort)) {
6668
+ const { storage, restoreStore } = customOpts
6669
+ const { isCustomAlign, isCustomHeaderAlign, isCustomFooterAlign, isCustomResizable, isCustomVisible, isCustomFixed, isCustomSort, isCustomAggGroup, isCustomAggFunc } = handleCustomStoreConfig($xeTable)
6670
+
6671
+ if (storage &&
6672
+ (customConfig ? isEnableConf(customOpts) : customOpts.enabled) &&
6673
+ (
6674
+ isCustomAlign ||
6675
+ isCustomHeaderAlign ||
6676
+ isCustomFooterAlign ||
6677
+ isCustomResizable ||
6678
+ isCustomVisible ||
6679
+ isCustomFixed ||
6680
+ isCustomSort ||
6681
+ isCustomAggGroup ||
6682
+ isCustomAggFunc
6683
+ )
6684
+ ) {
6673
6685
  if (!tableId) {
6674
6686
  errLog('vxe.error.reqProp', ['id'])
6675
6687
  return
@@ -6716,6 +6728,9 @@ const tableMethods: any = {
6716
6728
  if (!checkMethod || checkMethod({ $table: $xeTable, column })) {
6717
6729
  column.visible = column.defaultVisible
6718
6730
  }
6731
+ column.align = column.defaultAlign
6732
+ column.headerAlign = column.defaultHeaderAlign
6733
+ column.footerAlign = column.defaultFooterAlign
6719
6734
  column.aggFunc = column.defaultAggFunc
6720
6735
  column.renderAggFn = column.defaultAggFunc
6721
6736
  column.renderResizeWidth = column.renderWidth
@@ -6763,22 +6778,23 @@ const tableMethods: any = {
6763
6778
  const customOpts = $xeTable.computeCustomOpts
6764
6779
  const { isRowGroupStatus, rowGroupList } = reactData
6765
6780
  const { fullColumnFieldData, collectColumn } = internalData
6766
- const { storage, checkMethod, storeOptions } = customOpts
6767
- const isAllCustom = storage === true
6768
- const storageOpts: VxeTableDefines.VxeTableCustomStorageObj = Object.assign({}, isAllCustom ? {} : storage || {}, storeOptions)
6769
- const isCustomResizable = hangleStorageDefaultValue(storageOpts.resizable, isAllCustom)
6770
- const isCustomVisible = hangleStorageDefaultValue(storageOpts.visible, isAllCustom)
6771
- const isCustomFixed = hangleStorageDefaultValue(storageOpts.fixed, isAllCustom)
6772
- const isCustomSort = hangleStorageDefaultValue(storageOpts.sort, isAllCustom)
6773
- const isCustomAggGroup = hangleStorageDefaultValue(storageOpts.aggGroup, isAllCustom)
6774
- const isCustomAggFunc = hangleStorageDefaultValue(storageOpts.aggFunc, isAllCustom)
6781
+ const { storage, checkMethod } = customOpts
6782
+ const { isCustomAlign, isCustomHeaderAlign, isCustomFooterAlign, isCustomResizable, isCustomVisible, isCustomFixed, isCustomSort, isCustomAggGroup, isCustomAggFunc } = handleCustomStoreConfig($xeTable)
6783
+
6784
+ const alignData: Record<string, VxeColumnPropTypes.Align> = {}
6785
+ const headerAlignData: Record<string, VxeColumnPropTypes.HeaderAlign> = {}
6786
+ const footerAlignData: Record<string, VxeColumnPropTypes.FooterAlign> = {}
6775
6787
  const resizableData: Record<string, number> = {}
6776
6788
  const sortData: VxeTableDefines.CustomSortStoreObj[] = []
6777
6789
  const visibleData: Record<string, boolean> = {}
6778
6790
  const fixedData: Record<string, VxeColumnPropTypes.Fixed> = {}
6779
6791
  const aggGroupData: Record<string, boolean> = {}
6780
6792
  const aggFuncData: Record<string, VxeColumnPropTypes.AggFunc> = {}
6793
+
6781
6794
  const storeData: VxeTableDefines.CustomStoreData = {
6795
+ alignData: undefined,
6796
+ headerAlignData: undefined,
6797
+ footerAlignData: undefined,
6782
6798
  resizableData: undefined,
6783
6799
  sortData: undefined,
6784
6800
  visibleData: undefined,
@@ -6792,6 +6808,9 @@ const tableMethods: any = {
6792
6808
  }
6793
6809
  return storeData
6794
6810
  }
6811
+ let hasAlign = 0
6812
+ let hasHeaderAlign = 0
6813
+ let hasFooterAlign = 0
6795
6814
  let hasResizable = 0
6796
6815
  let hasSort = 0
6797
6816
  let hasFixed = 0
@@ -6831,6 +6850,18 @@ const tableMethods: any = {
6831
6850
  fixedData[colKey] = column.fixed
6832
6851
  }
6833
6852
  }
6853
+ if (isCustomAlign && column.align) {
6854
+ hasAlign = 1
6855
+ alignData[colKey] = column.align
6856
+ }
6857
+ if (isCustomHeaderAlign && column.headerAlign) {
6858
+ hasHeaderAlign = 1
6859
+ headerAlignData[colKey] = column.headerAlign
6860
+ }
6861
+ if (isCustomFooterAlign && column.footerAlign) {
6862
+ hasFooterAlign = 1
6863
+ footerAlignData[colKey] = column.footerAlign
6864
+ }
6834
6865
  if (isCustomResizable && column.resizeWidth) {
6835
6866
  hasResizable = 1
6836
6867
  resizableData[colKey] = column.renderWidth
@@ -6849,6 +6880,15 @@ const tableMethods: any = {
6849
6880
  aggFuncData[colKey] = column.aggFunc
6850
6881
  }
6851
6882
  })
6883
+ if (hasAlign) {
6884
+ storeData.alignData = alignData
6885
+ }
6886
+ if (hasHeaderAlign) {
6887
+ storeData.headerAlignData = headerAlignData
6888
+ }
6889
+ if (hasFooterAlign) {
6890
+ storeData.footerAlignData = footerAlignData
6891
+ }
6852
6892
  if (hasResizable) {
6853
6893
  storeData.resizableData = resizableData
6854
6894
  }
@@ -6886,33 +6926,44 @@ const tableMethods: any = {
6886
6926
  const { customConfig } = props
6887
6927
  const tableId = $xeTable.computeTableId
6888
6928
  const customOpts = $xeTable.computeCustomOpts
6889
- const { updateStore, storage, storeOptions } = customOpts
6890
- const isAllCustom = storage === true
6891
- const storageOpts: VxeTableDefines.VxeTableCustomStorageObj = Object.assign({}, isAllCustom ? {} : storage || {}, storeOptions)
6892
- const isCustomResizable = hangleStorageDefaultValue(storageOpts.resizable, isAllCustom)
6893
- const isCustomVisible = hangleStorageDefaultValue(storageOpts.visible, isAllCustom)
6894
- const isCustomFixed = hangleStorageDefaultValue(storageOpts.fixed, isAllCustom)
6895
- const isCustomSort = hangleStorageDefaultValue(storageOpts.sort, isAllCustom)
6896
- const isCustomAggGroup = hangleStorageDefaultValue(storageOpts.aggGroup, isAllCustom)
6897
- const isCustomAggFunc = hangleStorageDefaultValue(storageOpts.aggFunc, isAllCustom)
6929
+ const { updateStore, storage } = customOpts
6930
+ const { isCustomAlign, isCustomHeaderAlign, isCustomFooterAlign, isCustomResizable, isCustomVisible, isCustomFixed, isCustomSort, isCustomAggGroup, isCustomAggFunc } = handleCustomStoreConfig($xeTable)
6931
+
6898
6932
  if (type !== 'reset') {
6933
+ // fix:修复拖动列宽,重置按钮无法点击的问题
6899
6934
  reactData.isCustomStatus = true
6900
6935
  }
6901
- if (storage && (customConfig ? isEnableConf(customOpts) : customOpts.enabled) && (isCustomResizable || isCustomVisible || isCustomFixed || isCustomSort || isCustomAggGroup || isCustomAggFunc)) {
6936
+ if (storage &&
6937
+ (customConfig ? isEnableConf(customOpts) : customOpts.enabled) &&
6938
+ (
6939
+ isCustomAlign ||
6940
+ isCustomHeaderAlign ||
6941
+ isCustomFooterAlign ||
6942
+ isCustomResizable ||
6943
+ isCustomVisible ||
6944
+ isCustomFixed ||
6945
+ isCustomSort ||
6946
+ isCustomAggGroup ||
6947
+ isCustomAggFunc
6948
+ )
6949
+ ) {
6902
6950
  if (!tableId) {
6903
6951
  errLog('vxe.error.reqProp', ['id'])
6904
- return this.$nextTick()
6952
+ return $xeTable.$nextTick()
6905
6953
  }
6906
6954
  const storeData: VxeTableDefines.CustomStoreData = type === 'reset'
6907
6955
  ? {
6956
+ alignData: {},
6957
+ headerAlignData: {},
6958
+ footerAlignData: {},
6908
6959
  resizableData: {},
6909
- sortData: {},
6960
+ sortData: [],
6910
6961
  visibleData: {},
6911
6962
  fixedData: {},
6912
6963
  aggGroupData: {},
6913
6964
  aggFuncData: {}
6914
6965
  }
6915
- : this.getCustomStoreData()
6966
+ : $xeTable.getCustomStoreData()
6916
6967
  if (updateStore) {
6917
6968
  return updateStore({
6918
6969
  $table: $xeTable,
@@ -6924,13 +6975,19 @@ const tableMethods: any = {
6924
6975
  setCustomStorageMap(tableId, type === 'reset' ? null : storeData)
6925
6976
  }
6926
6977
  }
6927
- return this.$nextTick()
6978
+ return $xeTable.$nextTick()
6928
6979
  },
6929
6980
  handleUpdateDataQueue () {
6930
- this.upDataFlag++
6981
+ const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
6982
+ const reactData = $xeTable as unknown as TableReactData
6983
+
6984
+ reactData.upDataFlag++
6931
6985
  },
6932
6986
  handleRefreshColumnQueue () {
6933
- this.reColumnFlag++
6987
+ const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
6988
+ const reactData = $xeTable as unknown as TableReactData
6989
+
6990
+ reactData.reColumnFlag++
6934
6991
  },
6935
6992
  handleFilterOptions (column: VxeTableDefines.ColumnInfo) {
6936
6993
  const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
@@ -240,7 +240,8 @@ export function createReactData (): TableReactData {
240
240
  activeWrapper: false,
241
241
  visible: false,
242
242
  maxHeight: null,
243
- popupStyle: {},
243
+ defPopupStyle: {},
244
+ panePopupStyle: {},
244
245
  oldSortMaps: {},
245
246
  oldFixedMaps: {},
246
247
  oldVisibleMaps: {}
@@ -1101,3 +1102,35 @@ export function colToVisible ($xeTable: VxeTableConstructor & VxeTablePrivateMet
1101
1102
  }
1102
1103
  return Promise.resolve()
1103
1104
  }
1105
+
1106
+ function hangleBolleanDefaultValue (currVal: boolean | null | undefined, defVal: boolean | null | undefined) {
1107
+ return XEUtils.isBoolean(currVal) ? currVal : defVal
1108
+ }
1109
+
1110
+ export function handleCustomStoreConfig ($xeTable: VxeTableConstructor) {
1111
+ const customOpts = $xeTable.computeCustomOpts
1112
+ const { storage, storeOptions } = customOpts
1113
+
1114
+ const isAllCustom = storage === true
1115
+ const storageOpts: VxeTableDefines.VxeTableCustomStorageObj = Object.assign({}, isAllCustom ? {} : storage || {}, storeOptions)
1116
+ const isCustomAlign = hangleBolleanDefaultValue(storageOpts.align, isAllCustom)
1117
+ const isCustomHeaderAlign = hangleBolleanDefaultValue(storageOpts.headerAlign, isAllCustom)
1118
+ const isCustomFooterAlign = hangleBolleanDefaultValue(storageOpts.footerAlign, isAllCustom)
1119
+ const isCustomResizable = hangleBolleanDefaultValue(storageOpts.resizable, isAllCustom)
1120
+ const isCustomVisible = hangleBolleanDefaultValue(storageOpts.visible, isAllCustom)
1121
+ const isCustomFixed = hangleBolleanDefaultValue(storageOpts.fixed, isAllCustom)
1122
+ const isCustomSort = hangleBolleanDefaultValue(storageOpts.sort, isAllCustom)
1123
+ const isCustomAggGroup = hangleBolleanDefaultValue(storageOpts.aggGroup, isAllCustom)
1124
+ const isCustomAggFunc = hangleBolleanDefaultValue(storageOpts.aggFunc, isAllCustom)
1125
+ return {
1126
+ isCustomAlign,
1127
+ isCustomHeaderAlign,
1128
+ isCustomFooterAlign,
1129
+ isCustomResizable,
1130
+ isCustomVisible,
1131
+ isCustomFixed,
1132
+ isCustomSort,
1133
+ isCustomAggGroup,
1134
+ isCustomAggFunc
1135
+ }
1136
+ }
@@ -118,6 +118,7 @@ VxeUI.setConfig({
118
118
  allowResizable: true,
119
119
  allowFixed: true,
120
120
  allowSort: true,
121
+ allowAlign: true,
121
122
  showSortDragButton: true,
122
123
  showFooter: true,
123
124
  placement: 'top-right',
@@ -126,9 +127,11 @@ VxeUI.setConfig({
126
127
  visible: true,
127
128
  resizable: true,
128
129
  sort: true,
129
- fixed: true
130
- // rowGroup: false,
131
- // aggFunc: false
130
+ fixed: true,
131
+ align: true,
132
+ headerAlign: true,
133
+ footerAlign: true,
134
+ aggFunc: true
132
135
  },
133
136
  // autoAggGroupValues: false,
134
137
  // checkMethod () {},
@@ -355,6 +358,15 @@ VxeUI.setIcon({
355
358
  TABLE_RADIO_UNCHECKED: iconPrefix + 'radio-unchecked',
356
359
  TABLE_RADIO_DISABLED_UNCHECKED: iconPrefix + 'radio-unchecked-fill',
357
360
  TABLE_CUSTOM_SORT: iconPrefix + 'drag-handle',
361
+ TABLE_CUSTOM_FIXED_LEFT: iconPrefix + 'fixed-left',
362
+ TABLE_CUSTOM_FIXED_RIGHT: iconPrefix + 'fixed-right',
363
+ TABLE_CUSTOM_ALIGN_LEFT: iconPrefix + 'align-left',
364
+ TABLE_CUSTOM_ALIGN_CENTER: iconPrefix + 'align-center',
365
+ TABLE_CUSTOM_ALIGN_RIGHT: iconPrefix + 'align-right',
366
+ TABLE_CUSTOM_MOVE_UP: iconPrefix + 'arrows-up',
367
+ TABLE_CUSTOM_MOVE_DN: iconPrefix + 'arrows-down',
368
+ TABLE_CUSTOM_PUT_TOP: iconPrefix + 'top',
369
+ TABLE_CUSTOM_PUT_BOTTOM: iconPrefix + 'bottom',
358
370
  TABLE_MENU_OPTIONS: iconPrefix + 'arrow-right',
359
371
  TABLE_MENU_OPTION_LOADING: iconPrefix + 'repeat roll',
360
372
  TABLE_DRAG_ROW: iconPrefix + 'drag-handle',
@@ -4,8 +4,7 @@
4
4
 
5
5
  @font-face {
6
6
  font-family: "vxetableiconfont";
7
- src:
8
- url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2');
7
+ src: url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2');
9
8
  }
10
9
 
11
10
  @keyframes rollCircle {
@@ -79,6 +78,34 @@ $btnThemeList: (
79
78
  }
80
79
  }
81
80
 
81
+ .vxe-table-icon-top:before {
82
+ content: "\e614";
83
+ }
84
+
85
+ .vxe-table-icon-arrows-up:before {
86
+ content: "\f297";
87
+ }
88
+
89
+ .vxe-table-icon-arrows-down:before {
90
+ content: "\f298";
91
+ }
92
+
93
+ .vxe-table-icon-bottom:before {
94
+ content: "\f29b";
95
+ }
96
+
97
+ .vxe-table-icon-align-center:before {
98
+ content: "\e610";
99
+ }
100
+
101
+ .vxe-table-icon-align-right:before {
102
+ content: "\e6b9";
103
+ }
104
+
105
+ .vxe-table-icon-align-left:before {
106
+ content: "\e6bb";
107
+ }
108
+
82
109
  .vxe-table-icon-radio-unchecked-fill:before {
83
110
  content: "\e699";
84
111
  }