vxe-table 3.21.21 → 3.21.23

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.1782656027274.ttf → iconfont.1783046294821.ttf} +0 -0
  2. package/es/iconfont.1783046294821.woff +0 -0
  3. package/es/iconfont.1783046294821.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 +16 -3
  7. package/es/locale/lang/de-DE.js +16 -3
  8. package/es/locale/lang/en-US.js +20 -7
  9. package/es/locale/lang/es-ES.js +16 -3
  10. package/es/locale/lang/fr-FR.js +16 -3
  11. package/es/locale/lang/hu-HU.js +16 -3
  12. package/es/locale/lang/hy-AM.js +16 -3
  13. package/es/locale/lang/id-ID.js +16 -3
  14. package/es/locale/lang/it-IT.js +15 -2
  15. package/es/locale/lang/ja-JP.js +16 -3
  16. package/es/locale/lang/ko-KR.js +16 -3
  17. package/es/locale/lang/ms-MY.js +16 -3
  18. package/es/locale/lang/nb-NO.js +16 -3
  19. package/es/locale/lang/pt-BR.js +16 -3
  20. package/es/locale/lang/ru-RU.js +16 -3
  21. package/es/locale/lang/th-TH.js +16 -3
  22. package/es/locale/lang/ug-CN.js +16 -3
  23. package/es/locale/lang/uk-UA.js +16 -3
  24. package/es/locale/lang/uz-UZ.js +16 -3
  25. package/es/locale/lang/vi-VN.js +15 -2
  26. package/es/locale/lang/zh-CHT.js +18 -5
  27. package/es/locale/lang/zh-CN.js +18 -5
  28. package/es/style.css +1 -1
  29. package/es/style.min.css +1 -1
  30. package/es/table/module/custom/mixin.js +115 -38
  31. package/es/table/module/custom/panel.js +492 -312
  32. package/es/table/module/edit/mixin.js +12 -6
  33. package/es/table/src/columnInfo.js +13 -7
  34. package/es/table/src/methods.js +105 -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.1782656027274.ttf → iconfont.1783046294821.ttf} +0 -0
  43. package/lib/iconfont.1783046294821.woff +0 -0
  44. package/lib/iconfont.1783046294821.woff2 +0 -0
  45. package/lib/index.css +1 -1
  46. package/lib/index.min.css +1 -1
  47. package/lib/index.umd.js +612 -226
  48. package/lib/index.umd.min.js +1 -1
  49. package/lib/locale/lang/ar-EG.js +16 -3
  50. package/lib/locale/lang/ar-EG.min.js +1 -1
  51. package/lib/locale/lang/ar-EG.umd.js +16 -3
  52. package/lib/locale/lang/de-DE.js +16 -3
  53. package/lib/locale/lang/de-DE.min.js +1 -1
  54. package/lib/locale/lang/de-DE.umd.js +16 -3
  55. package/lib/locale/lang/en-US.js +20 -7
  56. package/lib/locale/lang/en-US.min.js +1 -1
  57. package/lib/locale/lang/en-US.umd.js +20 -7
  58. package/lib/locale/lang/es-ES.js +16 -3
  59. package/lib/locale/lang/es-ES.min.js +1 -1
  60. package/lib/locale/lang/es-ES.umd.js +16 -3
  61. package/lib/locale/lang/fr-FR.js +16 -3
  62. package/lib/locale/lang/fr-FR.min.js +1 -1
  63. package/lib/locale/lang/fr-FR.umd.js +16 -3
  64. package/lib/locale/lang/hu-HU.js +16 -3
  65. package/lib/locale/lang/hu-HU.min.js +1 -1
  66. package/lib/locale/lang/hu-HU.umd.js +16 -3
  67. package/lib/locale/lang/hy-AM.js +16 -3
  68. package/lib/locale/lang/hy-AM.min.js +1 -1
  69. package/lib/locale/lang/hy-AM.umd.js +16 -3
  70. package/lib/locale/lang/id-ID.js +16 -3
  71. package/lib/locale/lang/id-ID.min.js +1 -1
  72. package/lib/locale/lang/id-ID.umd.js +16 -3
  73. package/lib/locale/lang/it-IT.js +15 -2
  74. package/lib/locale/lang/it-IT.min.js +1 -1
  75. package/lib/locale/lang/it-IT.umd.js +15 -2
  76. package/lib/locale/lang/ja-JP.js +16 -3
  77. package/lib/locale/lang/ja-JP.min.js +1 -1
  78. package/lib/locale/lang/ja-JP.umd.js +16 -3
  79. package/lib/locale/lang/ko-KR.js +16 -3
  80. package/lib/locale/lang/ko-KR.min.js +1 -1
  81. package/lib/locale/lang/ko-KR.umd.js +16 -3
  82. package/lib/locale/lang/ms-MY.js +16 -3
  83. package/lib/locale/lang/ms-MY.min.js +1 -1
  84. package/lib/locale/lang/ms-MY.umd.js +16 -3
  85. package/lib/locale/lang/nb-NO.js +16 -3
  86. package/lib/locale/lang/nb-NO.min.js +1 -1
  87. package/lib/locale/lang/nb-NO.umd.js +16 -3
  88. package/lib/locale/lang/pt-BR.js +16 -3
  89. package/lib/locale/lang/pt-BR.min.js +1 -1
  90. package/lib/locale/lang/pt-BR.umd.js +16 -3
  91. package/lib/locale/lang/ru-RU.js +16 -3
  92. package/lib/locale/lang/ru-RU.min.js +1 -1
  93. package/lib/locale/lang/ru-RU.umd.js +16 -3
  94. package/lib/locale/lang/th-TH.js +16 -3
  95. package/lib/locale/lang/th-TH.min.js +1 -1
  96. package/lib/locale/lang/th-TH.umd.js +16 -3
  97. package/lib/locale/lang/ug-CN.js +16 -3
  98. package/lib/locale/lang/ug-CN.min.js +1 -1
  99. package/lib/locale/lang/ug-CN.umd.js +16 -3
  100. package/lib/locale/lang/uk-UA.js +16 -3
  101. package/lib/locale/lang/uk-UA.min.js +1 -1
  102. package/lib/locale/lang/uk-UA.umd.js +16 -3
  103. package/lib/locale/lang/uz-UZ.js +16 -3
  104. package/lib/locale/lang/uz-UZ.min.js +1 -1
  105. package/lib/locale/lang/uz-UZ.umd.js +16 -3
  106. package/lib/locale/lang/vi-VN.js +15 -2
  107. package/lib/locale/lang/vi-VN.min.js +1 -1
  108. package/lib/locale/lang/vi-VN.umd.js +15 -2
  109. package/lib/locale/lang/zh-CHT.js +18 -5
  110. package/lib/locale/lang/zh-CHT.min.js +1 -1
  111. package/lib/locale/lang/zh-CHT.umd.js +18 -5
  112. package/lib/locale/lang/zh-CN.js +18 -5
  113. package/lib/locale/lang/zh-CN.min.js +1 -1
  114. package/lib/locale/lang/zh-CN.umd.js +18 -5
  115. package/lib/style.css +1 -1
  116. package/lib/style.min.css +1 -1
  117. package/lib/table/module/custom/mixin.js +121 -35
  118. package/lib/table/module/custom/mixin.min.js +1 -1
  119. package/lib/table/module/custom/panel.js +383 -158
  120. package/lib/table/module/custom/panel.min.js +1 -1
  121. package/lib/table/module/edit/mixin.js +12 -6
  122. package/lib/table/src/columnInfo.js +16 -6
  123. package/lib/table/src/columnInfo.min.js +1 -1
  124. package/lib/table/src/methods.js +11 -10
  125. package/lib/table/src/methods.min.js +1 -1
  126. package/lib/table/src/util.js +35 -1
  127. package/lib/table/src/util.min.js +1 -1
  128. package/lib/table/style/style.css +96 -49
  129. package/lib/table/style/style.min.css +1 -1
  130. package/lib/ui/index.js +16 -4
  131. package/lib/ui/index.min.js +1 -1
  132. package/lib/ui/src/log.js +1 -1
  133. package/lib/ui/src/log.min.js +1 -1
  134. package/lib/vxe-table/style/style.css +96 -49
  135. package/lib/vxe-table/style/style.min.css +1 -1
  136. package/package.json +2 -2
  137. package/packages/locale/lang/ar-EG.ts +16 -3
  138. package/packages/locale/lang/de-DE.ts +16 -3
  139. package/packages/locale/lang/en-US.ts +20 -7
  140. package/packages/locale/lang/es-ES.ts +16 -3
  141. package/packages/locale/lang/fr-FR.ts +16 -3
  142. package/packages/locale/lang/hu-HU.ts +16 -3
  143. package/packages/locale/lang/hy-AM.ts +16 -3
  144. package/packages/locale/lang/id-ID.ts +16 -3
  145. package/packages/locale/lang/it-IT.ts +15 -2
  146. package/packages/locale/lang/ja-JP.ts +16 -3
  147. package/packages/locale/lang/ko-KR.ts +16 -3
  148. package/packages/locale/lang/ms-MY.ts +16 -3
  149. package/packages/locale/lang/nb-NO.ts +16 -3
  150. package/packages/locale/lang/pt-BR.ts +16 -3
  151. package/packages/locale/lang/ru-RU.ts +16 -3
  152. package/packages/locale/lang/th-TH.ts +16 -3
  153. package/packages/locale/lang/ug-CN.ts +16 -3
  154. package/packages/locale/lang/uk-UA.ts +16 -3
  155. package/packages/locale/lang/uz-UZ.ts +16 -3
  156. package/packages/locale/lang/vi-VN.ts +15 -2
  157. package/packages/locale/lang/zh-CHT.ts +18 -5
  158. package/packages/locale/lang/zh-CN.ts +18 -5
  159. package/packages/table/module/custom/mixin.ts +115 -38
  160. package/packages/table/module/custom/panel.ts +545 -307
  161. package/packages/table/module/edit/mixin.ts +18 -6
  162. package/packages/table/src/columnInfo.ts +13 -7
  163. package/packages/table/src/methods.ts +120 -61
  164. package/packages/table/src/table.ts +6 -6
  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 +13 -1
  173. package/es/iconfont.1782656027274.woff +0 -0
  174. package/es/iconfont.1782656027274.woff2 +0 -0
  175. package/lib/iconfont.1782656027274.woff +0 -0
  176. package/lib/iconfont.1782656027274.woff2 +0 -0
@@ -543,7 +543,9 @@ export default {
543
543
  * @param {*} records
544
544
  */
545
545
  _insert (records: any) {
546
- return handleInsertRowAt(this, records, null)
546
+ const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
547
+
548
+ return handleInsertRowAt($xeTable, records, null)
547
549
  },
548
550
  /**
549
551
  * 往表格指定行中插入临时数据
@@ -553,19 +555,29 @@ export default {
553
555
  * @returns
554
556
  */
555
557
  _insertAt (records: any, targetRowOrRowid: any) {
556
- return handleInsertRowAt(this, records, targetRowOrRowid)
558
+ const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
559
+
560
+ return handleInsertRowAt($xeTable, records, targetRowOrRowid)
557
561
  },
558
562
  _insertNextAt (records: any, targetRowOrRowid: any) {
559
- return handleInsertRowAt(this, records, targetRowOrRowid, true)
563
+ const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
564
+
565
+ return handleInsertRowAt($xeTable, records, targetRowOrRowid, true)
560
566
  },
561
567
  _insertChild (records: any, parentRowOrParentId: any) {
562
- return handleInsertChildRowAt(this, records, parentRowOrParentId, null)
568
+ const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
569
+
570
+ return handleInsertChildRowAt($xeTable, records, parentRowOrParentId, null)
563
571
  },
564
572
  _insertChildAt (records: any, parentRowOrParentId: any, targetRowOrRowid: any) {
565
- return handleInsertChildRowAt(this, records, parentRowOrParentId, targetRowOrRowid)
573
+ const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
574
+
575
+ return handleInsertChildRowAt($xeTable, records, parentRowOrParentId, targetRowOrRowid)
566
576
  },
567
577
  _insertChildNextAt (records: any, parentRowOrParentId: any, targetRowOrRowid: any) {
568
- return handleInsertChildRowAt(this, records, parentRowOrParentId, targetRowOrRowid, true)
578
+ const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
579
+
580
+ return handleInsertChildRowAt($xeTable, records, parentRowOrParentId, targetRowOrRowid, true)
569
581
  },
570
582
  /**
571
583
  * 删除指定行数据
@@ -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
@@ -2999,11 +3002,14 @@ function handleTooltip ($xeTable: VxeTableConstructor & VxeTablePrivateMethods,
2999
3002
  // 如果为 null 使用默认逻辑
3000
3003
  if (XEUtils.eqNull(customContent)) {
3001
3004
  isShow = isOver
3005
+ content = cellText
3002
3006
  } else if (customContent !== '' && customContent !== false) {
3003
3007
  // 如果为 '' | false 则不显示
3004
3008
  isShow = true
3009
+ content = customContent
3010
+ } else {
3011
+ content = cellText
3005
3012
  }
3006
- content = cellText
3007
3013
  }
3008
3014
  if (isShow && content) {
3009
3015
  const tipContent = formatText(content)
@@ -6658,15 +6664,23 @@ const tableMethods: any = {
6658
6664
  const { customConfig } = props
6659
6665
  const tableId = $xeTable.computeTableId
6660
6666
  const customOpts = $xeTable.computeCustomOpts
6661
- const { storage, restoreStore, storeOptions } = customOpts
6662
- const isAllCustom = storage === true
6663
- const storageOpts: VxeTableDefines.VxeTableCustomStorageObj = Object.assign({}, isAllCustom ? {} : storage || {}, storeOptions)
6664
- const isCustomResizable = hangleStorageDefaultValue(storageOpts.resizable, isAllCustom)
6665
- const isCustomVisible = hangleStorageDefaultValue(storageOpts.visible, isAllCustom)
6666
- const isCustomFixed = hangleStorageDefaultValue(storageOpts.fixed, isAllCustom)
6667
- const isCustomAggGroup = hangleStorageDefaultValue(storageOpts.aggGroup, isAllCustom)
6668
- const isCustomSort = hangleStorageDefaultValue(storageOpts.sort, isAllCustom)
6669
- if (storage && (customConfig ? isEnableConf(customOpts) : customOpts.enabled) && (isCustomResizable || isCustomVisible || isCustomFixed || isCustomAggGroup || isCustomSort)) {
6667
+ const { storage, restoreStore } = customOpts
6668
+ const { isCustomAlign, isCustomHeaderAlign, isCustomFooterAlign, isCustomResizable, isCustomVisible, isCustomFixed, isCustomSort, isCustomAggGroup, isCustomAggFunc } = handleCustomStoreConfig($xeTable)
6669
+
6670
+ if (storage &&
6671
+ (customConfig ? isEnableConf(customOpts) : customOpts.enabled) &&
6672
+ (
6673
+ isCustomAlign ||
6674
+ isCustomHeaderAlign ||
6675
+ isCustomFooterAlign ||
6676
+ isCustomResizable ||
6677
+ isCustomVisible ||
6678
+ isCustomFixed ||
6679
+ isCustomSort ||
6680
+ isCustomAggGroup ||
6681
+ isCustomAggFunc
6682
+ )
6683
+ ) {
6670
6684
  if (!tableId) {
6671
6685
  errLog('vxe.error.reqProp', ['id'])
6672
6686
  return
@@ -6713,6 +6727,9 @@ const tableMethods: any = {
6713
6727
  if (!checkMethod || checkMethod({ $table: $xeTable, column })) {
6714
6728
  column.visible = column.defaultVisible
6715
6729
  }
6730
+ column.align = column.defaultAlign
6731
+ column.headerAlign = column.defaultHeaderAlign
6732
+ column.footerAlign = column.defaultFooterAlign
6716
6733
  column.aggFunc = column.defaultAggFunc
6717
6734
  column.renderAggFn = column.defaultAggFunc
6718
6735
  column.renderResizeWidth = column.renderWidth
@@ -6760,22 +6777,23 @@ const tableMethods: any = {
6760
6777
  const customOpts = $xeTable.computeCustomOpts
6761
6778
  const { isRowGroupStatus, rowGroupList } = reactData
6762
6779
  const { fullColumnFieldData, collectColumn } = internalData
6763
- const { storage, checkMethod, storeOptions } = customOpts
6764
- const isAllCustom = storage === true
6765
- const storageOpts: VxeTableDefines.VxeTableCustomStorageObj = Object.assign({}, isAllCustom ? {} : storage || {}, storeOptions)
6766
- const isCustomResizable = hangleStorageDefaultValue(storageOpts.resizable, isAllCustom)
6767
- const isCustomVisible = hangleStorageDefaultValue(storageOpts.visible, isAllCustom)
6768
- const isCustomFixed = hangleStorageDefaultValue(storageOpts.fixed, isAllCustom)
6769
- const isCustomSort = hangleStorageDefaultValue(storageOpts.sort, isAllCustom)
6770
- const isCustomAggGroup = hangleStorageDefaultValue(storageOpts.aggGroup, isAllCustom)
6771
- const isCustomAggFunc = hangleStorageDefaultValue(storageOpts.aggFunc, isAllCustom)
6780
+ const { storage, checkMethod } = customOpts
6781
+ const { isCustomAlign, isCustomHeaderAlign, isCustomFooterAlign, isCustomResizable, isCustomVisible, isCustomFixed, isCustomSort, isCustomAggGroup, isCustomAggFunc } = handleCustomStoreConfig($xeTable)
6782
+
6783
+ const alignData: Record<string, VxeColumnPropTypes.Align> = {}
6784
+ const headerAlignData: Record<string, VxeColumnPropTypes.HeaderAlign> = {}
6785
+ const footerAlignData: Record<string, VxeColumnPropTypes.FooterAlign> = {}
6772
6786
  const resizableData: Record<string, number> = {}
6773
6787
  const sortData: VxeTableDefines.CustomSortStoreObj[] = []
6774
6788
  const visibleData: Record<string, boolean> = {}
6775
6789
  const fixedData: Record<string, VxeColumnPropTypes.Fixed> = {}
6776
6790
  const aggGroupData: Record<string, boolean> = {}
6777
6791
  const aggFuncData: Record<string, VxeColumnPropTypes.AggFunc> = {}
6792
+
6778
6793
  const storeData: VxeTableDefines.CustomStoreData = {
6794
+ alignData: undefined,
6795
+ headerAlignData: undefined,
6796
+ footerAlignData: undefined,
6779
6797
  resizableData: undefined,
6780
6798
  sortData: undefined,
6781
6799
  visibleData: undefined,
@@ -6789,6 +6807,9 @@ const tableMethods: any = {
6789
6807
  }
6790
6808
  return storeData
6791
6809
  }
6810
+ let hasAlign = 0
6811
+ let hasHeaderAlign = 0
6812
+ let hasFooterAlign = 0
6792
6813
  let hasResizable = 0
6793
6814
  let hasSort = 0
6794
6815
  let hasFixed = 0
@@ -6828,6 +6849,18 @@ const tableMethods: any = {
6828
6849
  fixedData[colKey] = column.fixed
6829
6850
  }
6830
6851
  }
6852
+ if (isCustomAlign && column.align) {
6853
+ hasAlign = 1
6854
+ alignData[colKey] = column.align
6855
+ }
6856
+ if (isCustomHeaderAlign && column.headerAlign) {
6857
+ hasHeaderAlign = 1
6858
+ headerAlignData[colKey] = column.headerAlign
6859
+ }
6860
+ if (isCustomFooterAlign && column.footerAlign) {
6861
+ hasFooterAlign = 1
6862
+ footerAlignData[colKey] = column.footerAlign
6863
+ }
6831
6864
  if (isCustomResizable && column.resizeWidth) {
6832
6865
  hasResizable = 1
6833
6866
  resizableData[colKey] = column.renderWidth
@@ -6846,6 +6879,15 @@ const tableMethods: any = {
6846
6879
  aggFuncData[colKey] = column.aggFunc
6847
6880
  }
6848
6881
  })
6882
+ if (hasAlign) {
6883
+ storeData.alignData = alignData
6884
+ }
6885
+ if (hasHeaderAlign) {
6886
+ storeData.headerAlignData = headerAlignData
6887
+ }
6888
+ if (hasFooterAlign) {
6889
+ storeData.footerAlignData = footerAlignData
6890
+ }
6849
6891
  if (hasResizable) {
6850
6892
  storeData.resizableData = resizableData
6851
6893
  }
@@ -6883,33 +6925,44 @@ const tableMethods: any = {
6883
6925
  const { customConfig } = props
6884
6926
  const tableId = $xeTable.computeTableId
6885
6927
  const customOpts = $xeTable.computeCustomOpts
6886
- const { updateStore, storage, storeOptions } = customOpts
6887
- const isAllCustom = storage === true
6888
- const storageOpts: VxeTableDefines.VxeTableCustomStorageObj = Object.assign({}, isAllCustom ? {} : storage || {}, storeOptions)
6889
- const isCustomResizable = hangleStorageDefaultValue(storageOpts.resizable, isAllCustom)
6890
- const isCustomVisible = hangleStorageDefaultValue(storageOpts.visible, isAllCustom)
6891
- const isCustomFixed = hangleStorageDefaultValue(storageOpts.fixed, isAllCustom)
6892
- const isCustomSort = hangleStorageDefaultValue(storageOpts.sort, isAllCustom)
6893
- const isCustomAggGroup = hangleStorageDefaultValue(storageOpts.aggGroup, isAllCustom)
6894
- const isCustomAggFunc = hangleStorageDefaultValue(storageOpts.aggFunc, isAllCustom)
6928
+ const { updateStore, storage } = customOpts
6929
+ const { isCustomAlign, isCustomHeaderAlign, isCustomFooterAlign, isCustomResizable, isCustomVisible, isCustomFixed, isCustomSort, isCustomAggGroup, isCustomAggFunc } = handleCustomStoreConfig($xeTable)
6930
+
6895
6931
  if (type !== 'reset') {
6932
+ // fix:修复拖动列宽,重置按钮无法点击的问题
6896
6933
  reactData.isCustomStatus = true
6897
6934
  }
6898
- if (storage && (customConfig ? isEnableConf(customOpts) : customOpts.enabled) && (isCustomResizable || isCustomVisible || isCustomFixed || isCustomSort || isCustomAggGroup || isCustomAggFunc)) {
6935
+ if (storage &&
6936
+ (customConfig ? isEnableConf(customOpts) : customOpts.enabled) &&
6937
+ (
6938
+ isCustomAlign ||
6939
+ isCustomHeaderAlign ||
6940
+ isCustomFooterAlign ||
6941
+ isCustomResizable ||
6942
+ isCustomVisible ||
6943
+ isCustomFixed ||
6944
+ isCustomSort ||
6945
+ isCustomAggGroup ||
6946
+ isCustomAggFunc
6947
+ )
6948
+ ) {
6899
6949
  if (!tableId) {
6900
6950
  errLog('vxe.error.reqProp', ['id'])
6901
- return this.$nextTick()
6951
+ return $xeTable.$nextTick()
6902
6952
  }
6903
6953
  const storeData: VxeTableDefines.CustomStoreData = type === 'reset'
6904
6954
  ? {
6955
+ alignData: {},
6956
+ headerAlignData: {},
6957
+ footerAlignData: {},
6905
6958
  resizableData: {},
6906
- sortData: {},
6959
+ sortData: [],
6907
6960
  visibleData: {},
6908
6961
  fixedData: {},
6909
6962
  aggGroupData: {},
6910
6963
  aggFuncData: {}
6911
6964
  }
6912
- : this.getCustomStoreData()
6965
+ : $xeTable.getCustomStoreData()
6913
6966
  if (updateStore) {
6914
6967
  return updateStore({
6915
6968
  $table: $xeTable,
@@ -6921,13 +6974,19 @@ const tableMethods: any = {
6921
6974
  setCustomStorageMap(tableId, type === 'reset' ? null : storeData)
6922
6975
  }
6923
6976
  }
6924
- return this.$nextTick()
6977
+ return $xeTable.$nextTick()
6925
6978
  },
6926
6979
  handleUpdateDataQueue () {
6927
- this.upDataFlag++
6980
+ const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
6981
+ const reactData = $xeTable as unknown as TableReactData
6982
+
6983
+ reactData.upDataFlag++
6928
6984
  },
6929
6985
  handleRefreshColumnQueue () {
6930
- this.reColumnFlag++
6986
+ const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
6987
+ const reactData = $xeTable as unknown as TableReactData
6988
+
6989
+ reactData.reColumnFlag++
6931
6990
  },
6932
6991
  handleFilterOptions (column: VxeTableDefines.ColumnInfo) {
6933
6992
  const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
@@ -2245,12 +2245,12 @@ export default {
2245
2245
  const { isCrossTableDrag } = rowDragOpts
2246
2246
  const tbOns: {
2247
2247
  contextmenu: (...args: any[]) => void
2248
- keydown: (...args: any[]) => void
2249
- dragover?: (...args: any[]) => void
2250
- } = {
2251
- contextmenu: this.contextMenuEvent,
2252
- keydown: this.keydownEvent
2253
- }
2248
+ keydown: (...args: any[]) => void
2249
+ dragover?: (...args: any[]) => void
2250
+ } = {
2251
+ contextmenu: this.contextMenuEvent,
2252
+ keydown: this.keydownEvent
2253
+ }
2254
2254
  if (isCrossTableDrag && !tableData.length) {
2255
2255
  tbOns.dragover = $xeTable.handleCrossTableRowDragoverEmptyEvent
2256
2256
  }
@@ -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
  }