vxe-table 4.19.22 → 4.19.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 (183) hide show
  1. package/dist/all.esm.js +634 -335
  2. package/dist/style.css +1 -1
  3. package/dist/style.min.css +1 -1
  4. package/es/{iconfont.1782890314097.ttf → iconfont.1783331249334.ttf} +0 -0
  5. package/es/iconfont.1783331249334.woff +0 -0
  6. package/es/iconfont.1783331249334.woff2 +0 -0
  7. package/es/index.css +1 -1
  8. package/es/index.min.css +1 -1
  9. package/es/locale/lang/ar-EG.js +12 -3
  10. package/es/locale/lang/de-DE.js +12 -3
  11. package/es/locale/lang/en-US.js +16 -7
  12. package/es/locale/lang/es-ES.js +12 -3
  13. package/es/locale/lang/fr-FR.js +12 -3
  14. package/es/locale/lang/hu-HU.js +12 -3
  15. package/es/locale/lang/hy-AM.js +12 -3
  16. package/es/locale/lang/id-ID.js +12 -3
  17. package/es/locale/lang/it-IT.js +11 -2
  18. package/es/locale/lang/ja-JP.js +12 -3
  19. package/es/locale/lang/ko-KR.js +12 -3
  20. package/es/locale/lang/ms-MY.js +12 -3
  21. package/es/locale/lang/nb-NO.js +12 -3
  22. package/es/locale/lang/pt-BR.js +12 -3
  23. package/es/locale/lang/ru-RU.js +12 -3
  24. package/es/locale/lang/th-TH.js +12 -3
  25. package/es/locale/lang/ug-CN.js +12 -3
  26. package/es/locale/lang/uk-UA.js +12 -3
  27. package/es/locale/lang/uz-UZ.js +12 -3
  28. package/es/locale/lang/vi-VN.js +11 -2
  29. package/es/locale/lang/zh-CHT.js +14 -5
  30. package/es/locale/lang/zh-CN.js +14 -5
  31. package/es/style.css +1 -1
  32. package/es/style.min.css +1 -1
  33. package/es/table/module/custom/hook.js +83 -12
  34. package/es/table/module/custom/panel.js +398 -257
  35. package/es/table/src/cell.js +2 -2
  36. package/es/table/src/columnInfo.js +14 -8
  37. package/es/table/src/emits.js +3 -0
  38. package/es/table/src/table.js +78 -46
  39. package/es/table/src/util.js +32 -1
  40. package/es/table/style.css +96 -49
  41. package/es/table/style.min.css +1 -1
  42. package/es/ui/index.js +16 -4
  43. package/es/ui/src/log.js +1 -1
  44. package/es/vxe-table/style.css +96 -49
  45. package/es/vxe-table/style.min.css +1 -1
  46. package/lib/{iconfont.1782890314097.ttf → iconfont.1783331249334.ttf} +0 -0
  47. package/lib/iconfont.1783331249334.woff +0 -0
  48. package/lib/iconfont.1783331249334.woff2 +0 -0
  49. package/lib/index.css +1 -1
  50. package/lib/index.min.css +1 -1
  51. package/lib/index.umd.js +521 -181
  52. package/lib/index.umd.min.js +1 -1
  53. package/lib/locale/lang/ar-EG.js +12 -3
  54. package/lib/locale/lang/ar-EG.min.js +1 -1
  55. package/lib/locale/lang/ar-EG.umd.js +12 -3
  56. package/lib/locale/lang/de-DE.js +12 -3
  57. package/lib/locale/lang/de-DE.min.js +1 -1
  58. package/lib/locale/lang/de-DE.umd.js +12 -3
  59. package/lib/locale/lang/en-US.js +16 -7
  60. package/lib/locale/lang/en-US.min.js +1 -1
  61. package/lib/locale/lang/en-US.umd.js +16 -7
  62. package/lib/locale/lang/es-ES.js +12 -3
  63. package/lib/locale/lang/es-ES.min.js +1 -1
  64. package/lib/locale/lang/es-ES.umd.js +12 -3
  65. package/lib/locale/lang/fr-FR.js +12 -3
  66. package/lib/locale/lang/fr-FR.min.js +1 -1
  67. package/lib/locale/lang/fr-FR.umd.js +12 -3
  68. package/lib/locale/lang/hu-HU.js +12 -3
  69. package/lib/locale/lang/hu-HU.min.js +1 -1
  70. package/lib/locale/lang/hu-HU.umd.js +12 -3
  71. package/lib/locale/lang/hy-AM.js +12 -3
  72. package/lib/locale/lang/hy-AM.min.js +1 -1
  73. package/lib/locale/lang/hy-AM.umd.js +12 -3
  74. package/lib/locale/lang/id-ID.js +12 -3
  75. package/lib/locale/lang/id-ID.min.js +1 -1
  76. package/lib/locale/lang/id-ID.umd.js +12 -3
  77. package/lib/locale/lang/it-IT.js +11 -2
  78. package/lib/locale/lang/it-IT.min.js +1 -1
  79. package/lib/locale/lang/it-IT.umd.js +11 -2
  80. package/lib/locale/lang/ja-JP.js +12 -3
  81. package/lib/locale/lang/ja-JP.min.js +1 -1
  82. package/lib/locale/lang/ja-JP.umd.js +12 -3
  83. package/lib/locale/lang/ko-KR.js +12 -3
  84. package/lib/locale/lang/ko-KR.min.js +1 -1
  85. package/lib/locale/lang/ko-KR.umd.js +12 -3
  86. package/lib/locale/lang/ms-MY.js +12 -3
  87. package/lib/locale/lang/ms-MY.min.js +1 -1
  88. package/lib/locale/lang/ms-MY.umd.js +12 -3
  89. package/lib/locale/lang/nb-NO.js +12 -3
  90. package/lib/locale/lang/nb-NO.min.js +1 -1
  91. package/lib/locale/lang/nb-NO.umd.js +12 -3
  92. package/lib/locale/lang/pt-BR.js +12 -3
  93. package/lib/locale/lang/pt-BR.min.js +1 -1
  94. package/lib/locale/lang/pt-BR.umd.js +12 -3
  95. package/lib/locale/lang/ru-RU.js +12 -3
  96. package/lib/locale/lang/ru-RU.min.js +1 -1
  97. package/lib/locale/lang/ru-RU.umd.js +12 -3
  98. package/lib/locale/lang/th-TH.js +12 -3
  99. package/lib/locale/lang/th-TH.min.js +1 -1
  100. package/lib/locale/lang/th-TH.umd.js +12 -3
  101. package/lib/locale/lang/ug-CN.js +12 -3
  102. package/lib/locale/lang/ug-CN.min.js +1 -1
  103. package/lib/locale/lang/ug-CN.umd.js +12 -3
  104. package/lib/locale/lang/uk-UA.js +12 -3
  105. package/lib/locale/lang/uk-UA.min.js +1 -1
  106. package/lib/locale/lang/uk-UA.umd.js +12 -3
  107. package/lib/locale/lang/uz-UZ.js +12 -3
  108. package/lib/locale/lang/uz-UZ.min.js +1 -1
  109. package/lib/locale/lang/uz-UZ.umd.js +12 -3
  110. package/lib/locale/lang/vi-VN.js +11 -2
  111. package/lib/locale/lang/vi-VN.min.js +1 -1
  112. package/lib/locale/lang/vi-VN.umd.js +11 -2
  113. package/lib/locale/lang/zh-CHT.js +14 -5
  114. package/lib/locale/lang/zh-CHT.min.js +1 -1
  115. package/lib/locale/lang/zh-CHT.umd.js +14 -5
  116. package/lib/locale/lang/zh-CN.js +14 -5
  117. package/lib/locale/lang/zh-CN.min.js +1 -1
  118. package/lib/locale/lang/zh-CN.umd.js +14 -5
  119. package/lib/style.css +1 -1
  120. package/lib/style.min.css +1 -1
  121. package/lib/table/module/custom/hook.js +90 -10
  122. package/lib/table/module/custom/hook.min.js +1 -1
  123. package/lib/table/module/custom/panel.js +333 -141
  124. package/lib/table/module/custom/panel.min.js +1 -1
  125. package/lib/table/src/cell.js +2 -1
  126. package/lib/table/src/cell.min.js +1 -1
  127. package/lib/table/src/columnInfo.js +17 -7
  128. package/lib/table/src/columnInfo.min.js +1 -1
  129. package/lib/table/src/emits.js +1 -1
  130. package/lib/table/src/emits.min.js +1 -1
  131. package/lib/table/src/table.js +10 -10
  132. package/lib/table/src/table.min.js +1 -1
  133. package/lib/table/src/util.js +38 -1
  134. package/lib/table/src/util.min.js +1 -1
  135. package/lib/table/style/style.css +96 -49
  136. package/lib/table/style/style.min.css +1 -1
  137. package/lib/ui/index.js +16 -4
  138. package/lib/ui/index.min.js +1 -1
  139. package/lib/ui/src/log.js +1 -1
  140. package/lib/ui/src/log.min.js +1 -1
  141. package/lib/vxe-table/style/style.css +96 -49
  142. package/lib/vxe-table/style/style.min.css +1 -1
  143. package/package.json +2 -2
  144. package/packages/locale/lang/ar-EG.ts +12 -3
  145. package/packages/locale/lang/de-DE.ts +12 -3
  146. package/packages/locale/lang/en-US.ts +16 -7
  147. package/packages/locale/lang/es-ES.ts +12 -3
  148. package/packages/locale/lang/fr-FR.ts +12 -3
  149. package/packages/locale/lang/hu-HU.ts +12 -3
  150. package/packages/locale/lang/hy-AM.ts +12 -3
  151. package/packages/locale/lang/id-ID.ts +12 -3
  152. package/packages/locale/lang/it-IT.ts +11 -2
  153. package/packages/locale/lang/ja-JP.ts +12 -3
  154. package/packages/locale/lang/ko-KR.ts +12 -3
  155. package/packages/locale/lang/ms-MY.ts +12 -3
  156. package/packages/locale/lang/nb-NO.ts +12 -3
  157. package/packages/locale/lang/pt-BR.ts +12 -3
  158. package/packages/locale/lang/ru-RU.ts +12 -3
  159. package/packages/locale/lang/th-TH.ts +12 -3
  160. package/packages/locale/lang/ug-CN.ts +12 -3
  161. package/packages/locale/lang/uk-UA.ts +12 -3
  162. package/packages/locale/lang/uz-UZ.ts +12 -3
  163. package/packages/locale/lang/vi-VN.ts +11 -2
  164. package/packages/locale/lang/zh-CHT.ts +14 -5
  165. package/packages/locale/lang/zh-CN.ts +14 -5
  166. package/packages/table/module/custom/hook.ts +83 -12
  167. package/packages/table/module/custom/panel.ts +481 -286
  168. package/packages/table/src/cell.ts +2 -2
  169. package/packages/table/src/columnInfo.ts +14 -8
  170. package/packages/table/src/emits.ts +3 -0
  171. package/packages/table/src/table.ts +89 -47
  172. package/packages/table/src/util.ts +35 -1
  173. package/packages/ui/index.ts +15 -3
  174. package/styles/components/icon.scss +29 -2
  175. package/styles/components/table-module/custom.scss +88 -67
  176. package/styles/icon/iconfont.ttf +0 -0
  177. package/styles/icon/iconfont.woff +0 -0
  178. package/styles/icon/iconfont.woff2 +0 -0
  179. package/styles/theme/base.scss +11 -0
  180. package/es/iconfont.1782890314097.woff +0 -0
  181. package/es/iconfont.1782890314097.woff2 +0 -0
  182. package/lib/iconfont.1782890314097.woff +0 -0
  183. package/lib/iconfont.1782890314097.woff2 +0 -0
@@ -567,7 +567,7 @@ export const Cell = {
567
567
  const { treeExpandedFlag } = tableReactData
568
568
  const { fullAllDataRowIdData, treeExpandedMaps, treeExpandLazyLoadedMaps } = tableInternalData
569
569
  const treeOpts = computeTreeOpts.value
570
- const { padding, indent, lazy, trigger, iconLoaded, showIcon, iconOpen, iconClose } = treeOpts
570
+ const { padding, indent, lazy, trigger, visibleMethod, iconLoaded, showIcon, iconOpen, iconClose } = treeOpts
571
571
  const childrenField = treeOpts.children || treeOpts.childrenField
572
572
  const hasChildField = treeOpts.hasChild || treeOpts.hasChildField
573
573
  const rowChilds = row[childrenField]
@@ -602,7 +602,7 @@ export const Cell = {
602
602
  }
603
603
  : undefined
604
604
  }, [
605
- showIcon && (lazy ? (isLazyLoaded ? hasChild : (hasChild || hasLazyChilds)) : hasChild)
605
+ showIcon && (lazy ? (isLazyLoaded ? hasChild : (hasChild || hasLazyChilds)) : hasChild) && (!visibleMethod || visibleMethod(params))
606
606
  ? [
607
607
  h('div', {
608
608
  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
 
@@ -87,10 +87,10 @@ export class ColumnInfo {
87
87
  minWidth: colConfs.minWidth,
88
88
  maxWidth: colConfs.maxWidth,
89
89
  resizable: colConfs.resizable,
90
- fixed: colConfs.fixed,
91
- align: colConfs.align,
92
- headerAlign: colConfs.headerAlign,
93
- footerAlign: colConfs.footerAlign,
90
+ fixed,
91
+ align,
92
+ headerAlign,
93
+ footerAlign,
94
94
  showOverflow: colConfs.showOverflow,
95
95
  showHeaderOverflow: colConfs.showHeaderOverflow,
96
96
  showFooterOverflow: colConfs.showFooterOverflow,
@@ -128,7 +128,7 @@ export class ColumnInfo {
128
128
  titlePrefix: colConfs.titlePrefix,
129
129
  titleSuffix: colConfs.titleSuffix,
130
130
 
131
- aggFunc: colConfs.aggFunc,
131
+ aggFunc,
132
132
  copyMethod: colConfs.copyMethod,
133
133
  cutMethod: colConfs.cutMethod,
134
134
  pasteMethod: colConfs.pasteMethod,
@@ -143,9 +143,12 @@ export class ColumnInfo {
143
143
  defaultParentId: null,
144
144
  halfVisible: false,
145
145
  defaultVisible: defaultVisible,
146
- defaultFixed: colConfs.fixed,
146
+ defaultFixed: fixed,
147
+ defaultAlign: align,
148
+ defaultHeaderAlign: headerAlign,
149
+ defaultFooterAlign: footerAlign,
147
150
 
148
- defaultAggFunc: colConfs.aggFunc,
151
+ defaultAggFunc: aggFunc,
149
152
 
150
153
  checked: false,
151
154
  halfChecked: false,
@@ -169,6 +172,9 @@ export class ColumnInfo {
169
172
  renderAggDigits: null,
170
173
  renderAggFormat: null,
171
174
 
175
+ renderAlign: '',
176
+ renderHeaderAlign: '',
177
+ renderFooterAlign: '',
172
178
  renderFixed: '',
173
179
  renderVisible: false,
174
180
 
@@ -95,6 +95,9 @@ export const tableEmits: VxeTableEmits = [
95
95
  'custom-visible-all',
96
96
  'custom-fixed-change',
97
97
  'custom-sort-change',
98
+ 'custom-align-change',
99
+ 'custom-header-align-change',
100
+ 'custom-footer-align-change',
98
101
 
99
102
  'change-fnr', // 废弃
100
103
 
@@ -4,7 +4,7 @@ import XEUtils from 'xe-utils'
4
4
  import { initTpImg, getTpImg, isPx, isScale, hasClass, addClass, removeClass, wheelScrollTopTo, wheelScrollLeftTo, getEventTargetNode, getPaddingTopBottomSize, setScrollTop, setScrollLeft, toCssUnit, hasControlKey, checkTargetElement, hasEventInputTarget } from '../../ui/src/dom'
5
5
  import { getLastZIndex, nextZIndex, hasChildrenList, getFuncText, isEnableConf, formatText, eqEmptyValue } from '../../ui/src/utils'
6
6
  import { VxeUI } from '../../ui'
7
- import { createReactData, createInternalData, getRowUniqueId, createRowId, clearTableAllStatus, getColumnList, toFilters, hasDeepKey, getRowkey, getRowid, rowToVisible, colToVisible, getCellValue, setCellValue, handleRowidOrRow, handleFieldOrColumn, toTreePathSeq, restoreScrollLocation, getRootColumn, getRefElem, getColReMinWidth, getColReMaxWidth, createHandleUpdateRowId, createHandleGetRowId, getCalcHeight, getCellRestHeight, getLastChildColumn, getRowMaxHeight } from './util'
7
+ import { createReactData, createInternalData, getRowUniqueId, createRowId, clearTableAllStatus, getColumnList, toFilters, hasDeepKey, getRowkey, getRowid, rowToVisible, colToVisible, getCellValue, setCellValue, handleRowidOrRow, handleFieldOrColumn, toTreePathSeq, restoreScrollLocation, getRootColumn, getRefElem, getColReMinWidth, getColReMaxWidth, createHandleUpdateRowId, createHandleGetRowId, getCalcHeight, getCellRestHeight, getLastChildColumn, getRowMaxHeight, handleCustomStoreConfig } from './util'
8
8
  import { getSlotVNs } from '../../ui/src/vn'
9
9
  import { moveRowAnimateToTb, clearRowAnimate, moveColAnimateToLr, clearColAnimate } from '../../ui/src/anime'
10
10
  import { createComponentLog } from '../../ui/src/log'
@@ -951,10 +951,6 @@ export default defineVxeComponent({
951
951
  internalData.isCurrDeepKey = hasDeepKey(keyField)
952
952
  }
953
953
 
954
- const hangleStorageDefaultValue = (value: boolean | null | undefined, isAll: boolean) => {
955
- return XEUtils.isBoolean(value) ? value : isAll
956
- }
957
-
958
954
  const getNextSortOrder = (column: VxeTableDefines.ColumnInfo) => {
959
955
  const sortOpts = computeSortOpts.value
960
956
  const { orders = [] } = sortOpts
@@ -1613,19 +1609,19 @@ export default defineVxeComponent({
1613
1609
  const handleCustomRestore = (storeData: VxeTableDefines.CustomStoreData) => {
1614
1610
  const { aggregateConfig, rowGroupConfig } = props
1615
1611
  const { collectColumn } = internalData
1616
- const customOpts = computeCustomOpts.value
1617
- const { storage, storeOptions } = customOpts
1618
- const isAllCustom = storage === true
1619
- const storageOpts: VxeTableDefines.VxeTableCustomStorageObj = Object.assign({}, isAllCustom ? {} : storage || {}, storeOptions)
1620
- const isCustomResizable = hangleStorageDefaultValue(storageOpts.resizable, isAllCustom)
1621
- const isCustomVisible = hangleStorageDefaultValue(storageOpts.visible, isAllCustom)
1622
- const isCustomFixed = hangleStorageDefaultValue(storageOpts.fixed, isAllCustom)
1623
- const isCustomSort = hangleStorageDefaultValue(storageOpts.sort, isAllCustom)
1624
- const isCustomAggGroup = hangleStorageDefaultValue(storageOpts.aggGroup, isAllCustom)
1625
- const isCustomAggFunc = hangleStorageDefaultValue(storageOpts.aggFunc, isAllCustom)
1626
- let { resizableData, sortData, visibleData, fixedData, aggGroupData, aggFuncData } = storeData
1612
+ const { isCustomAlign, isCustomHeaderAlign, isCustomFooterAlign, isCustomResizable, isCustomVisible, isCustomFixed, isCustomSort, isCustomAggGroup, isCustomAggFunc } = handleCustomStoreConfig($xeTable)
1613
+
1614
+ let { alignData, headerAlignData, footerAlignData, resizableData, sortData, visibleData, fixedData, aggGroupData, aggFuncData } = storeData
1627
1615
  // 处理还原
1628
- if ((isCustomResizable && resizableData) || (isCustomSort && sortData) || (isCustomVisible && visibleData) || (isCustomFixed && fixedData) || (isCustomAggGroup && aggGroupData) || (isCustomAggFunc && aggFuncData)) {
1616
+ if ((isCustomAlign && alignData) ||
1617
+ (isCustomHeaderAlign && headerAlignData) ||
1618
+ (isCustomFooterAlign && footerAlignData) ||
1619
+ (isCustomResizable && resizableData) ||
1620
+ (isCustomSort && sortData) ||
1621
+ (isCustomVisible && visibleData) ||
1622
+ (isCustomFixed && fixedData) ||
1623
+ (isCustomAggGroup && aggGroupData) ||
1624
+ (isCustomAggFunc && aggFuncData)) {
1629
1625
  const sortColMaps: Record<string, {
1630
1626
  key: string
1631
1627
  sNum: number
@@ -1712,16 +1708,23 @@ export default defineVxeComponent({
1712
1708
  const { customConfig } = props
1713
1709
  const tableId = computeTableId.value
1714
1710
  const customOpts = computeCustomOpts.value
1715
- const { storage, restoreStore, storeOptions } = customOpts
1716
- const isAllCustom = storage === true
1717
- const storageOpts: VxeTableDefines.VxeTableCustomStorageObj = Object.assign({}, isAllCustom ? {} : storage || {}, storeOptions)
1718
- const isCustomResizable = hangleStorageDefaultValue(storageOpts.resizable, isAllCustom)
1719
- const isCustomVisible = hangleStorageDefaultValue(storageOpts.visible, isAllCustom)
1720
- const isCustomFixed = hangleStorageDefaultValue(storageOpts.fixed, isAllCustom)
1721
- const isCustomSort = hangleStorageDefaultValue(storageOpts.sort, isAllCustom)
1722
- const isCustomAggGroup = hangleStorageDefaultValue(storageOpts.aggGroup, isAllCustom)
1723
- const isCustomAggFunc = hangleStorageDefaultValue(storageOpts.aggFunc, isAllCustom)
1724
- if (storage && (customConfig ? isEnableConf(customOpts) : customOpts.enabled) && (isCustomResizable || isCustomVisible || isCustomFixed || isCustomSort || isCustomAggGroup || isCustomAggFunc)) {
1711
+ const { storage, restoreStore } = customOpts
1712
+ const { isCustomAlign, isCustomHeaderAlign, isCustomFooterAlign, isCustomResizable, isCustomVisible, isCustomFixed, isCustomSort, isCustomAggGroup, isCustomAggFunc } = handleCustomStoreConfig($xeTable)
1713
+
1714
+ if (storage &&
1715
+ (customConfig ? isEnableConf(customOpts) : customOpts.enabled) &&
1716
+ (
1717
+ isCustomAlign ||
1718
+ isCustomHeaderAlign ||
1719
+ isCustomFooterAlign ||
1720
+ isCustomResizable ||
1721
+ isCustomVisible ||
1722
+ isCustomFixed ||
1723
+ isCustomSort ||
1724
+ isCustomAggGroup ||
1725
+ isCustomAggFunc
1726
+ )
1727
+ ) {
1725
1728
  if (!tableId) {
1726
1729
  errLog('vxe.error.reqProp', ['id'])
1727
1730
  return
@@ -4408,8 +4411,9 @@ export default defineVxeComponent({
4408
4411
  const result: any[] = []
4409
4412
  const columnIndex = $xeTable.getColumnIndex(treeNodeColumn)
4410
4413
  const $columnIndex = $xeTable.getVMColumnIndex(treeNodeColumn)
4414
+ const _columnIndex = $xeTable.getVTColumnIndex(treeNodeColumn)
4411
4415
  const { handleGetRowId } = createHandleGetRowId($xeTable)
4412
- let validRows = toggleMethod ? rows.filter((row: any) => toggleMethod({ $table: $xeTable, expanded, column: treeNodeColumn, columnIndex, $columnIndex, row })) : rows
4416
+ let validRows = toggleMethod ? rows.filter((row: any) => toggleMethod({ $table: $xeTable, expanded, column: treeNodeColumn, columnIndex, $columnIndex, _columnIndex, row })) : rows
4413
4417
  if (accordion) {
4414
4418
  validRows = validRows.length ? [validRows[validRows.length - 1]] : []
4415
4419
  // 同一级只能展开一个
@@ -8164,6 +8168,9 @@ export default defineVxeComponent({
8164
8168
  if (!checkMethod || checkMethod({ $table: $xeTable, column })) {
8165
8169
  column.visible = column.defaultVisible
8166
8170
  }
8171
+ column.align = column.defaultAlign
8172
+ column.headerAlign = column.defaultHeaderAlign
8173
+ column.footerAlign = column.defaultFooterAlign
8167
8174
  column.aggFunc = column.defaultAggFunc
8168
8175
  column.renderAggFn = column.defaultAggFunc
8169
8176
  column.renderResizeWidth = column.renderWidth
@@ -8206,22 +8213,23 @@ export default defineVxeComponent({
8206
8213
  const customOpts = computeCustomOpts.value
8207
8214
  const { isRowGroupStatus, rowGroupList } = reactData
8208
8215
  const { fullColumnFieldData, collectColumn } = internalData
8209
- const { storage, checkMethod, storeOptions } = customOpts
8210
- const isAllCustom = storage === true
8211
- const storageOpts: VxeTableDefines.VxeTableCustomStorageObj = Object.assign({}, isAllCustom ? {} : storage || {}, storeOptions)
8212
- const isCustomResizable = hangleStorageDefaultValue(storageOpts.resizable, isAllCustom)
8213
- const isCustomVisible = hangleStorageDefaultValue(storageOpts.visible, isAllCustom)
8214
- const isCustomFixed = hangleStorageDefaultValue(storageOpts.fixed, isAllCustom)
8215
- const isCustomSort = hangleStorageDefaultValue(storageOpts.sort, isAllCustom)
8216
- const isCustomAggGroup = hangleStorageDefaultValue(storageOpts.aggGroup, isAllCustom)
8217
- const isCustomAggFunc = hangleStorageDefaultValue(storageOpts.aggFunc, isAllCustom)
8216
+ const { storage, checkMethod } = customOpts
8217
+ const { isCustomAlign, isCustomHeaderAlign, isCustomFooterAlign, isCustomResizable, isCustomVisible, isCustomFixed, isCustomSort, isCustomAggGroup, isCustomAggFunc } = handleCustomStoreConfig($xeTable)
8218
+
8219
+ const alignData: Record<string, VxeColumnPropTypes.Align> = {}
8220
+ const headerAlignData: Record<string, VxeColumnPropTypes.HeaderAlign> = {}
8221
+ const footerAlignData: Record<string, VxeColumnPropTypes.FooterAlign> = {}
8218
8222
  const resizableData: Record<string, number> = {}
8219
8223
  const sortData: VxeTableDefines.CustomSortStoreObj[] = []
8220
8224
  const visibleData: Record<string, boolean> = {}
8221
8225
  const fixedData: Record<string, VxeColumnPropTypes.Fixed> = {}
8222
8226
  const aggGroupData: Record<string, boolean> = {}
8223
8227
  const aggFuncData: Record<string, VxeColumnPropTypes.AggFunc> = {}
8228
+
8224
8229
  const storeData: VxeTableDefines.CustomStoreData = {
8230
+ alignData: undefined,
8231
+ headerAlignData: undefined,
8232
+ footerAlignData: undefined,
8225
8233
  resizableData: undefined,
8226
8234
  sortData: undefined,
8227
8235
  visibleData: undefined,
@@ -8235,6 +8243,9 @@ export default defineVxeComponent({
8235
8243
  }
8236
8244
  return storeData
8237
8245
  }
8246
+ let hasAlign = 0
8247
+ let hasHeaderAlign = 0
8248
+ let hasFooterAlign = 0
8238
8249
  let hasResizable = 0
8239
8250
  let hasSort = 0
8240
8251
  let hasFixed = 0
@@ -8274,6 +8285,18 @@ export default defineVxeComponent({
8274
8285
  fixedData[colKey] = column.fixed
8275
8286
  }
8276
8287
  }
8288
+ if (isCustomAlign && column.align) {
8289
+ hasAlign = 1
8290
+ alignData[colKey] = column.align
8291
+ }
8292
+ if (isCustomHeaderAlign && column.headerAlign) {
8293
+ hasHeaderAlign = 1
8294
+ headerAlignData[colKey] = column.headerAlign
8295
+ }
8296
+ if (isCustomFooterAlign && column.footerAlign) {
8297
+ hasFooterAlign = 1
8298
+ footerAlignData[colKey] = column.footerAlign
8299
+ }
8277
8300
  if (isCustomResizable && column.resizeWidth) {
8278
8301
  hasResizable = 1
8279
8302
  resizableData[colKey] = column.renderWidth
@@ -8292,6 +8315,15 @@ export default defineVxeComponent({
8292
8315
  aggFuncData[colKey] = column.aggFunc
8293
8316
  }
8294
8317
  })
8318
+ if (hasAlign) {
8319
+ storeData.alignData = alignData
8320
+ }
8321
+ if (hasHeaderAlign) {
8322
+ storeData.headerAlignData = headerAlignData
8323
+ }
8324
+ if (hasFooterAlign) {
8325
+ storeData.footerAlignData = footerAlignData
8326
+ }
8295
8327
  if (hasResizable) {
8296
8328
  storeData.resizableData = resizableData
8297
8329
  }
@@ -10172,26 +10204,36 @@ export default defineVxeComponent({
10172
10204
  const { customConfig } = props
10173
10205
  const tableId = computeTableId.value
10174
10206
  const customOpts = computeCustomOpts.value
10175
- const { updateStore, storage, storeOptions } = customOpts
10176
- const isAllCustom = storage === true
10177
- const storageOpts: VxeTableDefines.VxeTableCustomStorageObj = Object.assign({}, isAllCustom ? {} : storage || {}, storeOptions)
10178
- const isCustomResizable = hangleStorageDefaultValue(storageOpts.resizable, isAllCustom)
10179
- const isCustomVisible = hangleStorageDefaultValue(storageOpts.visible, isAllCustom)
10180
- const isCustomFixed = hangleStorageDefaultValue(storageOpts.fixed, isAllCustom)
10181
- const isCustomSort = hangleStorageDefaultValue(storageOpts.sort, isAllCustom)
10182
- const isCustomAggGroup = hangleStorageDefaultValue(storageOpts.aggGroup, isAllCustom)
10183
- const isCustomAggFunc = hangleStorageDefaultValue(storageOpts.aggFunc, isAllCustom)
10207
+ const { updateStore, storage } = customOpts
10208
+ const { isCustomAlign, isCustomHeaderAlign, isCustomFooterAlign, isCustomResizable, isCustomVisible, isCustomFixed, isCustomSort, isCustomAggGroup, isCustomAggFunc } = handleCustomStoreConfig($xeTable)
10209
+
10184
10210
  if (type !== 'reset') {
10185
10211
  // fix:修复拖动列宽,重置按钮无法点击的问题
10186
10212
  reactData.isCustomStatus = true
10187
10213
  }
10188
- if (storage && (customConfig ? isEnableConf(customOpts) : customOpts.enabled) && (isCustomResizable || isCustomVisible || isCustomFixed || isCustomSort || isCustomAggGroup || isCustomAggFunc)) {
10214
+ if (storage &&
10215
+ (customConfig ? isEnableConf(customOpts) : customOpts.enabled) &&
10216
+ (
10217
+ isCustomAlign ||
10218
+ isCustomHeaderAlign ||
10219
+ isCustomFooterAlign ||
10220
+ isCustomResizable ||
10221
+ isCustomVisible ||
10222
+ isCustomFixed ||
10223
+ isCustomSort ||
10224
+ isCustomAggGroup ||
10225
+ isCustomAggFunc
10226
+ )
10227
+ ) {
10189
10228
  if (!tableId) {
10190
10229
  errLog('vxe.error.reqProp', ['id'])
10191
10230
  return nextTick()
10192
10231
  }
10193
10232
  const storeData: VxeTableDefines.CustomStoreData = type === 'reset'
10194
10233
  ? {
10234
+ alignData: {},
10235
+ headerAlignData: {},
10236
+ footerAlignData: {},
10195
10237
  resizableData: {},
10196
10238
  sortData: [],
10197
10239
  visibleData: {},
@@ -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: {}
@@ -1113,3 +1114,36 @@ export function colToVisible ($xeTable: VxeTableConstructor & VxeTablePrivateMet
1113
1114
  }
1114
1115
  return Promise.resolve()
1115
1116
  }
1117
+
1118
+ function hangleBolleanDefaultValue (currVal: boolean | null | undefined, defVal: boolean | null | undefined) {
1119
+ return XEUtils.isBoolean(currVal) ? currVal : defVal
1120
+ }
1121
+
1122
+ export function handleCustomStoreConfig ($xeTable: VxeTableConstructor) {
1123
+ const { computeCustomOpts } = $xeTable.getComputeMaps()
1124
+ const customOpts = computeCustomOpts.value
1125
+ const { storage, storeOptions } = customOpts
1126
+
1127
+ const isAllCustom = storage === true
1128
+ const storageOpts: VxeTableDefines.VxeTableCustomStorageObj = Object.assign({}, isAllCustom ? {} : storage || {}, storeOptions)
1129
+ const isCustomAlign = hangleBolleanDefaultValue(storageOpts.align, isAllCustom)
1130
+ const isCustomHeaderAlign = hangleBolleanDefaultValue(storageOpts.headerAlign, isAllCustom)
1131
+ const isCustomFooterAlign = hangleBolleanDefaultValue(storageOpts.footerAlign, isAllCustom)
1132
+ const isCustomResizable = hangleBolleanDefaultValue(storageOpts.resizable, isAllCustom)
1133
+ const isCustomVisible = hangleBolleanDefaultValue(storageOpts.visible, isAllCustom)
1134
+ const isCustomFixed = hangleBolleanDefaultValue(storageOpts.fixed, isAllCustom)
1135
+ const isCustomSort = hangleBolleanDefaultValue(storageOpts.sort, isAllCustom)
1136
+ const isCustomAggGroup = hangleBolleanDefaultValue(storageOpts.aggGroup, isAllCustom)
1137
+ const isCustomAggFunc = hangleBolleanDefaultValue(storageOpts.aggFunc, isAllCustom)
1138
+ return {
1139
+ isCustomAlign,
1140
+ isCustomHeaderAlign,
1141
+ isCustomFooterAlign,
1142
+ isCustomResizable,
1143
+ isCustomVisible,
1144
+ isCustomFixed,
1145
+ isCustomSort,
1146
+ isCustomAggGroup,
1147
+ isCustomAggFunc
1148
+ }
1149
+ }
@@ -117,6 +117,7 @@ VxeUI.setConfig({
117
117
  allowResizable: true,
118
118
  allowFixed: true,
119
119
  allowSort: true,
120
+ allowAlign: true,
120
121
  showSortDragButton: true,
121
122
  showFooter: true,
122
123
  placement: 'top-right',
@@ -125,9 +126,11 @@ VxeUI.setConfig({
125
126
  visible: true,
126
127
  resizable: true,
127
128
  sort: true,
128
- fixed: true
129
- // rowGroup: false,
130
- // aggFunc: false
129
+ fixed: true,
130
+ align: true,
131
+ headerAlign: true,
132
+ footerAlign: true,
133
+ aggFunc: true
131
134
  },
132
135
  // autoAggGroupValues: false,
133
136
  // checkMethod () {},
@@ -354,6 +357,15 @@ VxeUI.setIcon({
354
357
  TABLE_RADIO_UNCHECKED: iconPrefix + 'radio-unchecked',
355
358
  TABLE_RADIO_DISABLED_UNCHECKED: iconPrefix + 'radio-unchecked-fill',
356
359
  TABLE_CUSTOM_SORT: iconPrefix + 'drag-handle',
360
+ TABLE_CUSTOM_FIXED_LEFT: iconPrefix + 'fixed-left',
361
+ TABLE_CUSTOM_FIXED_RIGHT: iconPrefix + 'fixed-right',
362
+ TABLE_CUSTOM_ALIGN_LEFT: iconPrefix + 'align-left',
363
+ TABLE_CUSTOM_ALIGN_CENTER: iconPrefix + 'align-center',
364
+ TABLE_CUSTOM_ALIGN_RIGHT: iconPrefix + 'align-right',
365
+ TABLE_CUSTOM_MOVE_UP: iconPrefix + 'arrows-up',
366
+ TABLE_CUSTOM_MOVE_DN: iconPrefix + 'arrows-down',
367
+ TABLE_CUSTOM_PUT_TOP: iconPrefix + 'top',
368
+ TABLE_CUSTOM_PUT_BOTTOM: iconPrefix + 'bottom',
357
369
  TABLE_MENU_OPTIONS: iconPrefix + 'arrow-right',
358
370
  TABLE_MENU_OPTION_LOADING: iconPrefix + 'repeat roll',
359
371
  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
  }