vxe-table 4.23.8 → 4.23.9

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 (126) hide show
  1. package/dist/all.esm.js +5715 -3783
  2. package/es/components.d.ts +1 -0
  3. package/es/components.js +2 -7
  4. package/es/grid/src/emits.js +1 -15
  5. package/es/grid/src/grid.js +397 -120
  6. package/es/index.esm.js +1 -0
  7. package/es/index.js +1 -0
  8. package/es/table/module/custom/hook.js +49 -42
  9. package/es/table/module/custom/panel.js +777 -527
  10. package/es/table/module/edit/hook.js +140 -62
  11. package/es/table/module/export/export-panel.js +399 -316
  12. package/es/table/module/export/hook.js +395 -337
  13. package/es/table/module/export/import-panel.js +152 -123
  14. package/es/table/module/filter/hook.js +16 -2
  15. package/es/table/module/filter/panel.js +146 -84
  16. package/es/table/module/keyboard/hook.js +8 -4
  17. package/es/table/module/menu/panel.js +197 -126
  18. package/es/table/render/index.js +151 -98
  19. package/es/table/src/body.js +355 -233
  20. package/es/table/src/cell.js +426 -269
  21. package/es/table/src/columnInfo.js +1 -0
  22. package/es/table/src/footer.js +144 -99
  23. package/es/table/src/group.js +7 -3
  24. package/es/table/src/header.js +229 -172
  25. package/es/table/src/table.js +1503 -1030
  26. package/es/table/src/util.js +15 -19
  27. package/es/toolbar/src/toolbar.js +132 -75
  28. package/es/ui/index.js +1 -1
  29. package/es/ui/src/dom.js +9 -6
  30. package/es/ui/src/log.js +1 -1
  31. package/es/ui/src/utils.d.ts +1 -1
  32. package/lib/components.js +2 -7
  33. package/lib/grid/src/emits.js +1 -15
  34. package/lib/grid/src/grid.js +397 -120
  35. package/lib/index.common.js +1 -0
  36. package/lib/index.js +1 -0
  37. package/lib/index.umd.js +5732 -3800
  38. package/lib/index.umd.min.js +3 -3
  39. package/lib/table/module/custom/hook.js +49 -42
  40. package/lib/table/module/custom/panel.js +777 -527
  41. package/lib/table/module/edit/hook.js +140 -62
  42. package/lib/table/module/export/export-panel.js +399 -316
  43. package/lib/table/module/export/hook.js +395 -337
  44. package/lib/table/module/export/import-panel.js +152 -123
  45. package/lib/table/module/filter/hook.js +16 -2
  46. package/lib/table/module/filter/panel.js +146 -84
  47. package/lib/table/module/keyboard/hook.js +8 -4
  48. package/lib/table/module/menu/panel.js +197 -126
  49. package/lib/table/render/index.js +151 -98
  50. package/lib/table/src/body.js +355 -233
  51. package/lib/table/src/cell.js +426 -269
  52. package/lib/table/src/columnInfo.js +1 -0
  53. package/lib/table/src/footer.js +144 -99
  54. package/lib/table/src/group.js +7 -3
  55. package/lib/table/src/header.js +229 -172
  56. package/lib/table/src/table.js +1471 -1029
  57. package/lib/table/src/util.js +15 -19
  58. package/lib/toolbar/src/toolbar.js +132 -75
  59. package/lib/ui/index.js +1 -1
  60. package/lib/ui/src/dom.js +9 -6
  61. package/lib/ui/src/log.js +1 -1
  62. package/package.json +2 -2
  63. package/packages/colgroup/index.ts +22 -22
  64. package/packages/column/index.ts +22 -22
  65. package/packages/components.ts +41 -44
  66. package/packages/grid/index.ts +18 -18
  67. package/packages/grid/src/emits.ts +5 -19
  68. package/packages/grid/src/grid.ts +2229 -1925
  69. package/packages/grid/src/props.ts +22 -23
  70. package/packages/index.ts +11 -11
  71. package/packages/locale/lang/fr-FR.ts +15 -15
  72. package/packages/locale/lang/it-IT.ts +4 -4
  73. package/packages/locale/lang/uk-UA.ts +1 -1
  74. package/packages/locale/lang/uz-UZ.ts +13 -13
  75. package/packages/locale/lang/zh-CN.ts +907 -907
  76. package/packages/table/index.ts +26 -26
  77. package/packages/table/module/custom/hook.ts +510 -503
  78. package/packages/table/module/custom/panel.ts +2002 -1743
  79. package/packages/table/module/edit/hook.ts +1224 -1131
  80. package/packages/table/module/export/export-panel.ts +697 -611
  81. package/packages/table/module/export/hook.ts +2160 -2059
  82. package/packages/table/module/export/import-panel.ts +319 -279
  83. package/packages/table/module/export/util.ts +25 -24
  84. package/packages/table/module/filter/hook.ts +519 -501
  85. package/packages/table/module/filter/panel.ts +368 -304
  86. package/packages/table/module/keyboard/hook.ts +498 -494
  87. package/packages/table/module/menu/hook.ts +330 -330
  88. package/packages/table/module/menu/panel.ts +272 -201
  89. package/packages/table/module/validator/hook.ts +653 -635
  90. package/packages/table/render/index.ts +1819 -1744
  91. package/packages/table/src/body.ts +1078 -955
  92. package/packages/table/src/cell.ts +1524 -1359
  93. package/packages/table/src/column.ts +192 -192
  94. package/packages/table/src/columnInfo.ts +232 -232
  95. package/packages/table/src/emits.ts +134 -134
  96. package/packages/table/src/footer.ts +425 -380
  97. package/packages/table/src/group.ts +67 -63
  98. package/packages/table/src/header.ts +642 -581
  99. package/packages/table/src/props.ts +336 -336
  100. package/packages/table/src/store.ts +14 -14
  101. package/packages/table/src/table.ts +16011 -15454
  102. package/packages/table/src/use/cell-view.ts +41 -44
  103. package/packages/table/src/use/index.ts +1 -1
  104. package/packages/table/src/util.ts +1206 -1216
  105. package/packages/toolbar/index.ts +18 -18
  106. package/packages/toolbar/src/toolbar.ts +768 -706
  107. package/packages/ui/index.ts +519 -520
  108. package/packages/ui/src/anime.ts +51 -52
  109. package/packages/ui/src/comp.ts +3 -3
  110. package/packages/ui/src/dom.ts +466 -463
  111. package/packages/ui/src/log.ts +19 -19
  112. package/packages/ui/src/utils.ts +66 -66
  113. package/packages/ui/src/vn.ts +55 -55
  114. package/packages/v-x-e-table/index.d.ts +3 -3
  115. package/packages/v-x-e-table/index.ts +3 -3
  116. package/types/all.d.ts +76 -76
  117. package/types/index.d.ts +4 -4
  118. /package/dist/{iconfont.1793007753347.ttf → iconfont.1793009263429.ttf} +0 -0
  119. /package/dist/{iconfont.1793007753347.woff → iconfont.1793009263429.woff} +0 -0
  120. /package/dist/{iconfont.1793007753347.woff2 → iconfont.1793009263429.woff2} +0 -0
  121. /package/es/{iconfont.1793007753347.ttf → iconfont.1793009263429.ttf} +0 -0
  122. /package/es/{iconfont.1793007753347.woff → iconfont.1793009263429.woff} +0 -0
  123. /package/es/{iconfont.1793007753347.woff2 → iconfont.1793009263429.woff2} +0 -0
  124. /package/lib/{iconfont.1793007753347.ttf → iconfont.1793009263429.ttf} +0 -0
  125. /package/lib/{iconfont.1793007753347.woff → iconfont.1793009263429.woff} +0 -0
  126. /package/lib/{iconfont.1793007753347.woff2 → iconfont.1793009263429.woff2} +0 -0
@@ -1,232 +1,232 @@
1
- import XEUtils from 'xe-utils'
2
- import { VxeUI } from '@vxe-ui/core'
3
- import { toFilters } from './util'
4
- import { isEnableConf, getFuncText } from '../../ui/src/utils'
5
- import { isPx } from '../../ui/src/dom'
6
- import { createComponentLog } from '../../ui/src/log'
7
-
8
- import type { VxeTableConstructor, VxeTablePrivateMethods, VxeTableDefines, VxeColumnProps } from '../../../types'
9
-
10
- const { warnLog, errLog } = createComponentLog('table')
11
-
12
- const { getI18n, formats, renderer } = VxeUI
13
-
14
- export class ColumnInfo {
15
- /* eslint-disable @typescript-eslint/no-use-before-define */
16
- constructor ($xeTable: VxeTableConstructor & VxeTablePrivateMethods, colConfs: VxeColumnProps & { renderHeader?: any, renderCell?: any, renderFooter?: any, slots?: any }, { renderHeader, renderCell, renderFooter, renderData }: any = {}) {
17
- const tableProps = $xeTable.props
18
- const $xeGrid = $xeTable.xeGrid
19
- const $xeGantt = $xeTable.xeGantt
20
- const $xeGGWrapper = $xeGrid || $xeGantt
21
-
22
- const { computeRendererOpts, computeTreeOpts } = $xeTable.getComputeMaps()
23
-
24
- const { type, field, width, visible, fixed, align, headerAlign, footerAlign, aggFunc, formatter, filterMultiple, cellRender, editRender, filterRender } = colConfs
25
-
26
- const colId = colConfs.colId || XEUtils.uniqueId('col_')
27
-
28
- const defaultVisible = XEUtils.isBoolean(visible) ? visible : true
29
- const defaultRenderWidth = width && isPx(width) && width !== 'auto' ? Math.max(0, XEUtils.toInteger(width)) : 0
30
-
31
- const rendererOpts = computeRendererOpts.value
32
- const flCompConf = filterRender && isEnableConf(filterRender) && filterRender.name ? (rendererOpts[filterRender.name] || renderer.get(filterRender.name)) : null
33
- const ctFilterOptions = flCompConf ? flCompConf.createTableFilterOptions : null
34
-
35
- const filters = toFilters(colConfs.filters, colId)
36
-
37
- const types = ['seq', 'checkbox', 'radio', 'expand', 'html']
38
- if (type && types.indexOf(type) === -1) {
39
- warnLog('vxe.error.errProp', [`type=${type}`, types.join(', ')])
40
- }
41
- if (XEUtils.isBoolean(cellRender) || (cellRender && !XEUtils.isObject(cellRender))) {
42
- warnLog('vxe.error.errProp', [`column.cell-render=${cellRender}`, 'column.cell-render={}'])
43
- }
44
- if (XEUtils.isBoolean(editRender) || (editRender && !XEUtils.isObject(editRender))) {
45
- warnLog('vxe.error.errProp', [`column.edit-render=${editRender}`, 'column.edit-render={}'])
46
- }
47
- if (type === 'expand') {
48
- const { treeConfig } = tableProps
49
- const treeOpts = computeTreeOpts.value
50
- if (treeConfig && (treeOpts.showLine || treeOpts.line)) {
51
- errLog('vxe.error.errConflicts', ['tree-config.showLine', 'column.type=expand'])
52
- }
53
- }
54
- if (formatter) {
55
- if (XEUtils.isString(formatter)) {
56
- const gFormatOpts = formats.get(formatter) || XEUtils[formatter]
57
- if (!gFormatOpts || !XEUtils.isFunction(gFormatOpts.tableCellFormatMethod || gFormatOpts.cellFormatMethod)) {
58
- errLog('vxe.error.notFormats', [formatter])
59
- }
60
- } else if (XEUtils.isArray(formatter)) {
61
- const gFormatOpts = formats.get(formatter[0]) || XEUtils[formatter[0]]
62
- if (!gFormatOpts || !XEUtils.isFunction(gFormatOpts.tableCellFormatMethod || gFormatOpts.cellFormatMethod)) {
63
- errLog('vxe.error.notFormats', [formatter[0]])
64
- }
65
- }
66
- }
67
- if (aggFunc) {
68
- if (!$xeTable.handlePivotTableAggData && aggFunc !== true) {
69
- errLog('vxe.error.errProp', [`column.agg-func=${aggFunc}`, 'column.agg-func=true'])
70
- }
71
- }
72
-
73
- if (field && editRender) {
74
- if (editRender.startField && `${editRender.startField}`.indexOf(field) >= 0) {
75
- errLog('vxe.error.modelConflicts', [`field=${field}`, `edit-render.startField=${editRender.startField}`])
76
- }
77
- if (editRender.endField && `${editRender.endField}`.indexOf(field) >= 0) {
78
- errLog('vxe.error.modelConflicts', [`field=${field}`, `edit-render.endField=${editRender.endField}`])
79
- }
80
- }
81
-
82
- Object.assign(this, {
83
- // 基本属性
84
- type: colConfs.type,
85
- property: colConfs.field,
86
- field: field,
87
- title: colConfs.title,
88
- width: colConfs.width,
89
- minWidth: colConfs.minWidth,
90
- maxWidth: colConfs.maxWidth,
91
- resizable: colConfs.resizable,
92
- fixed,
93
- align,
94
- headerAlign,
95
- footerAlign,
96
- showOverflow: colConfs.showOverflow,
97
- showHeaderOverflow: colConfs.showHeaderOverflow,
98
- showFooterOverflow: colConfs.showFooterOverflow,
99
- className: colConfs.className,
100
- headerClassName: colConfs.headerClassName,
101
- footerClassName: colConfs.footerClassName,
102
- formatter: formatter,
103
- headerFormatter: colConfs.headerFormatter,
104
- footerFormatter: colConfs.footerFormatter,
105
- padding: colConfs.padding,
106
- verticalAlign: colConfs.verticalAlign,
107
- sortable: colConfs.sortable,
108
- sortBy: colConfs.sortBy,
109
- sortType: colConfs.sortType,
110
- filters: filters,
111
- filterMultiple: XEUtils.isBoolean(filterMultiple) ? filterMultiple : true,
112
- filterMethod: colConfs.filterMethod,
113
- filterResetMethod: colConfs.filterResetMethod,
114
- filterRecoverMethod: colConfs.filterRecoverMethod,
115
- filterRender: filterRender,
116
- floatingFilters: colConfs.floatingFilters,
117
- rules: colConfs.rules,
118
- rowGroupNode: colConfs.rowGroupNode,
119
- treeNode: colConfs.treeNode,
120
- dragSort: colConfs.dragSort,
121
- rowResize: colConfs.rowResize,
122
- cellType: colConfs.cellType,
123
- cellRender: cellRender,
124
- editRender: editRender,
125
- contentRender: colConfs.contentRender,
126
- headerExportMethod: colConfs.headerExportMethod,
127
- exportMethod: colConfs.exportMethod,
128
- footerExportMethod: colConfs.footerExportMethod,
129
- titleHelp: colConfs.titleHelp,
130
- titlePrefix: colConfs.titlePrefix,
131
- titleSuffix: colConfs.titleSuffix,
132
-
133
- aggFunc,
134
- copyMethod: colConfs.copyMethod,
135
- cutMethod: colConfs.cutMethod,
136
- pasteMethod: colConfs.pasteMethod,
137
-
138
- // 自定义参数
139
- params: colConfs.params,
140
- // 渲染属性
141
- id: colId,
142
- parentId: null,
143
- visible: defaultVisible,
144
- // 内部属性(一旦被使用,将导致不可升级版本)
145
- defaultParentId: null,
146
- halfVisible: false,
147
- defaultVisible: defaultVisible,
148
- defaultFixed: fixed,
149
- defaultAlign: align,
150
- defaultHeaderAlign: headerAlign,
151
- defaultFooterAlign: footerAlign,
152
-
153
- defaultAggFunc: aggFunc,
154
-
155
- checked: false,
156
- halfChecked: false,
157
- disabled: false,
158
- // 分组层级
159
- level: 1,
160
- // 跨行
161
- rowSpan: 1,
162
- // 跨列
163
- colSpan: 1,
164
-
165
- // 数据排序
166
- order: null, // 用于记录排序类型,升序和倒序
167
- sortTime: 0, // 用于多列的先后顺序
168
-
169
- // 列排序
170
- sortNumber: 0, // 用于记录自定义列顺序
171
- renderSortNumber: 0, // 用于记录自定义列顺序
172
-
173
- renderAggFn: '',
174
- renderAggDigits: null,
175
- renderAggFormat: null,
176
-
177
- renderAlign: '',
178
- renderHeaderAlign: '',
179
- renderFooterAlign: '',
180
- renderFixed: '',
181
- renderVisible: false,
182
-
183
- renderWidth: defaultRenderWidth,
184
- renderHeight: 0,
185
- renderResizeWidth: 0,
186
- renderAutoWidth: 0,
187
- resizeWidth: 0, // 手动调整
188
-
189
- renderLeft: 0,
190
- renderArgs: [], // 渲染参数可用于扩展
191
- model: {},
192
- renderHeader: renderHeader || colConfs.renderHeader,
193
- renderCell: renderCell || colConfs.renderCell,
194
- renderFooter: renderFooter || colConfs.renderFooter,
195
- renderData: renderData,
196
- // 单元格插槽,只对 grid 有效
197
- slots: colConfs.slots
198
- })
199
- if (ctFilterOptions && (!filters || !filters.length)) {
200
- (this as any).filters = toFilters(ctFilterOptions({ $table: $xeTable, column: this as unknown as VxeTableDefines.ColumnInfo }), colId)
201
- }
202
- if ($xeGGWrapper) {
203
- const { computeProxyOpts } = $xeGGWrapper.getComputeMaps()
204
- const proxyOpts = computeProxyOpts.value
205
- if (proxyOpts.beforeColumn) {
206
- proxyOpts.beforeColumn({ $table: $xeTable, $grid: $xeGrid, $gantt: $xeGantt, column: this as unknown as VxeTableDefines.ColumnInfo })
207
- }
208
- }
209
- }
210
-
211
- getTitle () {
212
- return getFuncText(this.title || (this.type === 'seq' ? getI18n('vxe.table.seqTitle') : ''))
213
- }
214
-
215
- getKey () {
216
- const { type, field } = this
217
- return field || (type ? `type=${type}` : null)
218
- }
219
-
220
- update (name: string, value: any) {
221
- // 不支持直接修改的属性
222
- if (name !== 'filters') {
223
- if (name === 'field') {
224
- // 兼容旧属性
225
- this.property = value
226
- }
227
- this[name] = value
228
- }
229
- }
230
-
231
- [key: string]: any
232
- }
1
+ import XEUtils from 'xe-utils'
2
+ import { VxeUI } from '@vxe-ui/core'
3
+ import { toFilters } from './util'
4
+ import { isEnableConf, getFuncText } from '../../ui/src/utils'
5
+ import { isPx } from '../../ui/src/dom'
6
+ import { createComponentLog } from '../../ui/src/log'
7
+
8
+ import type { VxeTableConstructor, VxeTablePrivateMethods, VxeTableDefines, VxeColumnProps } from '../../../types'
9
+
10
+ const { warnLog, errLog } = createComponentLog('table')
11
+
12
+ const { getI18n, formats, renderer } = VxeUI
13
+
14
+ export class ColumnInfo {
15
+ /* eslint-disable @typescript-eslint/no-use-before-define */
16
+ constructor($xeTable: VxeTableConstructor & VxeTablePrivateMethods, colConfs: VxeColumnProps & { renderHeader?: any; renderCell?: any; renderFooter?: any; slots?: any }, { renderHeader, renderCell, renderFooter, renderData }: any = {}) {
17
+ const tableProps = $xeTable.props
18
+ const $xeGrid = $xeTable.xeGrid
19
+ const $xeGantt = $xeTable.xeGantt
20
+ const $xeGGWrapper = $xeGrid || $xeGantt
21
+
22
+ const { computeRendererOpts, computeTreeOpts } = $xeTable.getComputeMaps()
23
+
24
+ const { type, field, width, visible, fixed, align, headerAlign, footerAlign, aggFunc, formatter, filterMultiple, cellRender, editRender, filterRender } = colConfs
25
+
26
+ const colId = colConfs.colId || XEUtils.uniqueId('col_')
27
+
28
+ const defaultVisible = XEUtils.isBoolean(visible) ? visible : true
29
+ const defaultRenderWidth = width && isPx(width) && width !== 'auto' ? Math.max(0, XEUtils.toInteger(width)) : 0
30
+
31
+ const rendererOpts = computeRendererOpts.value
32
+ const flCompConf = filterRender && isEnableConf(filterRender) && filterRender.name ? rendererOpts[filterRender.name] || renderer.get(filterRender.name) : null
33
+ const ctFilterOptions = flCompConf ? flCompConf.createTableFilterOptions : null
34
+
35
+ const filters = toFilters(colConfs.filters, colId)
36
+
37
+ const types = ['seq', 'checkbox', 'radio', 'expand', 'html']
38
+ if (type && types.indexOf(type) === -1) {
39
+ warnLog('vxe.error.errProp', [`type=${type}`, types.join(', ')])
40
+ }
41
+ if (XEUtils.isBoolean(cellRender) || (cellRender && !XEUtils.isObject(cellRender))) {
42
+ warnLog('vxe.error.errProp', [`column.cell-render=${cellRender}`, 'column.cell-render={}'])
43
+ }
44
+ if (XEUtils.isBoolean(editRender) || (editRender && !XEUtils.isObject(editRender))) {
45
+ warnLog('vxe.error.errProp', [`column.edit-render=${editRender}`, 'column.edit-render={}'])
46
+ }
47
+ if (type === 'expand') {
48
+ const { treeConfig } = tableProps
49
+ const treeOpts = computeTreeOpts.value
50
+ if (treeConfig && (treeOpts.showLine || treeOpts.line)) {
51
+ errLog('vxe.error.errConflicts', ['tree-config.showLine', 'column.type=expand'])
52
+ }
53
+ }
54
+ if (formatter) {
55
+ if (XEUtils.isString(formatter)) {
56
+ const gFormatOpts = formats.get(formatter) || XEUtils[formatter]
57
+ if (!gFormatOpts || !XEUtils.isFunction(gFormatOpts.tableCellFormatMethod || gFormatOpts.cellFormatMethod)) {
58
+ errLog('vxe.error.notFormats', [formatter])
59
+ }
60
+ } else if (XEUtils.isArray(formatter)) {
61
+ const gFormatOpts = formats.get(formatter[0]) || XEUtils[formatter[0]]
62
+ if (!gFormatOpts || !XEUtils.isFunction(gFormatOpts.tableCellFormatMethod || gFormatOpts.cellFormatMethod)) {
63
+ errLog('vxe.error.notFormats', [formatter[0]])
64
+ }
65
+ }
66
+ }
67
+ if (aggFunc) {
68
+ if (!$xeTable.handlePivotTableAggData && aggFunc !== true) {
69
+ errLog('vxe.error.errProp', [`column.agg-func=${aggFunc}`, 'column.agg-func=true'])
70
+ }
71
+ }
72
+
73
+ if (field && editRender) {
74
+ if (editRender.startField && `${editRender.startField}`.indexOf(field) >= 0) {
75
+ errLog('vxe.error.modelConflicts', [`field=${field}`, `edit-render.startField=${editRender.startField}`])
76
+ }
77
+ if (editRender.endField && `${editRender.endField}`.indexOf(field) >= 0) {
78
+ errLog('vxe.error.modelConflicts', [`field=${field}`, `edit-render.endField=${editRender.endField}`])
79
+ }
80
+ }
81
+
82
+ Object.assign(this, {
83
+ // 基本属性
84
+ type: colConfs.type,
85
+ property: colConfs.field,
86
+ field: field,
87
+ title: colConfs.title,
88
+ width: colConfs.width,
89
+ minWidth: colConfs.minWidth,
90
+ maxWidth: colConfs.maxWidth,
91
+ resizable: colConfs.resizable,
92
+ fixed,
93
+ align,
94
+ headerAlign,
95
+ footerAlign,
96
+ showOverflow: colConfs.showOverflow,
97
+ showHeaderOverflow: colConfs.showHeaderOverflow,
98
+ showFooterOverflow: colConfs.showFooterOverflow,
99
+ className: colConfs.className,
100
+ headerClassName: colConfs.headerClassName,
101
+ footerClassName: colConfs.footerClassName,
102
+ formatter: formatter,
103
+ headerFormatter: colConfs.headerFormatter,
104
+ footerFormatter: colConfs.footerFormatter,
105
+ padding: colConfs.padding,
106
+ verticalAlign: colConfs.verticalAlign,
107
+ sortable: colConfs.sortable,
108
+ sortBy: colConfs.sortBy,
109
+ sortType: colConfs.sortType,
110
+ filters: filters,
111
+ filterMultiple: XEUtils.isBoolean(filterMultiple) ? filterMultiple : true,
112
+ filterMethod: colConfs.filterMethod,
113
+ filterResetMethod: colConfs.filterResetMethod,
114
+ filterRecoverMethod: colConfs.filterRecoverMethod,
115
+ filterRender: filterRender,
116
+ floatingFilters: colConfs.floatingFilters,
117
+ rules: colConfs.rules,
118
+ rowGroupNode: colConfs.rowGroupNode,
119
+ treeNode: colConfs.treeNode,
120
+ dragSort: colConfs.dragSort,
121
+ rowResize: colConfs.rowResize,
122
+ cellType: colConfs.cellType,
123
+ cellRender: cellRender,
124
+ editRender: editRender,
125
+ contentRender: colConfs.contentRender,
126
+ headerExportMethod: colConfs.headerExportMethod,
127
+ exportMethod: colConfs.exportMethod,
128
+ footerExportMethod: colConfs.footerExportMethod,
129
+ titleHelp: colConfs.titleHelp,
130
+ titlePrefix: colConfs.titlePrefix,
131
+ titleSuffix: colConfs.titleSuffix,
132
+
133
+ aggFunc,
134
+ copyMethod: colConfs.copyMethod,
135
+ cutMethod: colConfs.cutMethod,
136
+ pasteMethod: colConfs.pasteMethod,
137
+
138
+ // 自定义参数
139
+ params: colConfs.params,
140
+ // 渲染属性
141
+ id: colId,
142
+ parentId: null,
143
+ visible: defaultVisible,
144
+ // 内部属性(一旦被使用,将导致不可升级版本)
145
+ defaultParentId: null,
146
+ halfVisible: false,
147
+ defaultVisible: defaultVisible,
148
+ defaultFixed: fixed,
149
+ defaultAlign: align,
150
+ defaultHeaderAlign: headerAlign,
151
+ defaultFooterAlign: footerAlign,
152
+
153
+ defaultAggFunc: aggFunc,
154
+
155
+ checked: false,
156
+ halfChecked: false,
157
+ disabled: false,
158
+ // 分组层级
159
+ level: 1,
160
+ // 跨行
161
+ rowSpan: 1,
162
+ // 跨列
163
+ colSpan: 1,
164
+
165
+ // 数据排序
166
+ order: null, // 用于记录排序类型,升序和倒序
167
+ sortTime: 0, // 用于多列的先后顺序
168
+
169
+ // 列排序
170
+ sortNumber: 0, // 用于记录自定义列顺序
171
+ renderSortNumber: 0, // 用于记录自定义列顺序
172
+
173
+ renderAggFn: '',
174
+ renderAggDigits: null,
175
+ renderAggFormat: null,
176
+
177
+ renderAlign: '',
178
+ renderHeaderAlign: '',
179
+ renderFooterAlign: '',
180
+ renderFixed: '',
181
+ renderVisible: false,
182
+
183
+ renderWidth: defaultRenderWidth,
184
+ renderHeight: 0,
185
+ renderResizeWidth: 0,
186
+ renderAutoWidth: 0,
187
+ resizeWidth: 0, // 手动调整
188
+
189
+ renderLeft: 0,
190
+ renderArgs: [], // 渲染参数可用于扩展
191
+ model: {},
192
+ renderHeader: renderHeader || colConfs.renderHeader,
193
+ renderCell: renderCell || colConfs.renderCell,
194
+ renderFooter: renderFooter || colConfs.renderFooter,
195
+ renderData: renderData,
196
+ // 单元格插槽,只对 grid 有效
197
+ slots: colConfs.slots
198
+ })
199
+ if (ctFilterOptions && (!filters || !filters.length)) {
200
+ ;(this as any).filters = toFilters(ctFilterOptions({ $table: $xeTable, column: this as unknown as VxeTableDefines.ColumnInfo }), colId)
201
+ }
202
+ if ($xeGGWrapper) {
203
+ const { computeProxyOpts } = $xeGGWrapper.getComputeMaps()
204
+ const proxyOpts = computeProxyOpts.value
205
+ if (proxyOpts.beforeColumn) {
206
+ proxyOpts.beforeColumn({ $table: $xeTable, $grid: $xeGrid, $gantt: $xeGantt, column: this as unknown as VxeTableDefines.ColumnInfo })
207
+ }
208
+ }
209
+ }
210
+
211
+ getTitle() {
212
+ return getFuncText(this.title || (this.type === 'seq' ? getI18n('vxe.table.seqTitle') : ''))
213
+ }
214
+
215
+ getKey() {
216
+ const { type, field } = this
217
+ return field || (type ? `type=${type}` : null)
218
+ }
219
+
220
+ update(name: string, value: any) {
221
+ // 不支持直接修改的属性
222
+ if (name !== 'filters') {
223
+ if (name === 'field') {
224
+ // 兼容旧属性
225
+ this.property = value
226
+ }
227
+ this[name] = value
228
+ }
229
+ }
230
+
231
+ [key: string]: any
232
+ }