vxe-table 3.4.15 → 3.5.0-beta.0

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 (156) hide show
  1. package/README.md +1 -1
  2. package/lib/button/src/button.js +19 -9
  3. package/lib/button/src/button.min.js +1 -1
  4. package/lib/checkbox/src/checkbox.js +2 -2
  5. package/lib/checkbox/src/checkbox.min.js +1 -1
  6. package/lib/edit/src/mixin.js +26 -18
  7. package/lib/edit/src/mixin.min.js +1 -1
  8. package/lib/export/src/export-panel.js +2 -2
  9. package/lib/export/src/export-panel.min.js +1 -1
  10. package/lib/export/src/import-panel.js +2 -2
  11. package/lib/export/src/import-panel.min.js +1 -1
  12. package/lib/export/src/mixin.js +26 -24
  13. package/lib/export/src/mixin.min.js +1 -1
  14. package/lib/filter/src/mixin.js +4 -4
  15. package/lib/filter/src/mixin.min.js +1 -1
  16. package/lib/filter/src/panel.js +2 -2
  17. package/lib/filter/src/panel.min.js +1 -1
  18. package/lib/footer/src/footer.js +7 -4
  19. package/lib/footer/src/footer.min.js +1 -1
  20. package/lib/form/src/form-gather.js +2 -2
  21. package/lib/form/src/form-gather.min.js +1 -1
  22. package/lib/form/src/form-item.js +3 -3
  23. package/lib/form/src/form-item.min.js +1 -1
  24. package/lib/form/src/form.js +17 -11
  25. package/lib/form/src/form.min.js +1 -1
  26. package/lib/form/src/render.js +5 -5
  27. package/lib/form/src/render.min.js +1 -1
  28. package/lib/form/src/util.js +2 -2
  29. package/lib/form/src/util.min.js +1 -1
  30. package/lib/grid/src/grid.js +44 -34
  31. package/lib/grid/src/grid.min.js +1 -1
  32. package/lib/header/src/header.js +10 -8
  33. package/lib/header/src/header.min.js +1 -1
  34. package/lib/index.umd.js +1963 -1083
  35. package/lib/index.umd.min.js +1 -2
  36. package/lib/input/src/input.js +30 -18
  37. package/lib/input/src/input.min.js +1 -1
  38. package/lib/keyboard/src/mixin.js +12 -8
  39. package/lib/keyboard/src/mixin.min.js +1 -1
  40. package/lib/list/src/list.js +7 -5
  41. package/lib/list/src/list.min.js +1 -1
  42. package/lib/menu/src/mixin.js +24 -14
  43. package/lib/menu/src/mixin.min.js +1 -1
  44. package/lib/menu/src/panel.js +3 -3
  45. package/lib/menu/src/panel.min.js +1 -1
  46. package/lib/modal/src/modal.js +24 -12
  47. package/lib/modal/src/modal.min.js +1 -1
  48. package/lib/pulldown/src/pulldown.js +16 -12
  49. package/lib/pulldown/src/pulldown.min.js +1 -1
  50. package/lib/radio/src/button.js +2 -2
  51. package/lib/radio/src/button.min.js +1 -1
  52. package/lib/radio/src/radio.js +2 -2
  53. package/lib/radio/src/radio.min.js +1 -1
  54. package/lib/select/src/select.js +26 -16
  55. package/lib/select/src/select.min.js +1 -1
  56. package/lib/switch/src/switch.js +4 -4
  57. package/lib/switch/src/switch.min.js +1 -1
  58. package/lib/table/src/body.js +34 -33
  59. package/lib/table/src/body.min.js +1 -1
  60. package/lib/table/src/cell.js +19 -11
  61. package/lib/table/src/cell.min.js +1 -1
  62. package/lib/table/src/column.js +3 -3
  63. package/lib/table/src/column.min.js +1 -1
  64. package/lib/table/src/columnInfo.js +201 -0
  65. package/lib/table/src/columnInfo.min.js +1 -0
  66. package/lib/table/src/methods.js +85 -85
  67. package/lib/table/src/methods.min.js +1 -1
  68. package/lib/table/src/table.js +80 -62
  69. package/lib/table/src/table.min.js +1 -1
  70. package/lib/table/src/util.js +38 -3
  71. package/lib/table/src/util.min.js +1 -1
  72. package/lib/textarea/src/textarea.js +2 -2
  73. package/lib/textarea/src/textarea.min.js +1 -1
  74. package/lib/toolbar/src/toolbar.js +16 -10
  75. package/lib/toolbar/src/toolbar.min.js +1 -1
  76. package/lib/tools/{src/dom.js → dom.js} +0 -0
  77. package/lib/tools/{src/dom.min.js → dom.min.js} +0 -0
  78. package/lib/tools/{src/event.js → event.js} +3 -6
  79. package/lib/tools/event.min.js +1 -0
  80. package/lib/tools/log.js +29 -0
  81. package/lib/tools/log.min.js +1 -0
  82. package/lib/tools/{src/resize.js → resize.js} +1 -1
  83. package/lib/tools/resize.min.js +1 -0
  84. package/lib/tools/utils.js +155 -0
  85. package/lib/tools/utils.min.js +1 -0
  86. package/lib/tooltip/src/tooltip.js +8 -6
  87. package/lib/tooltip/src/tooltip.min.js +1 -1
  88. package/lib/v-x-e-table/index.js +7 -4
  89. package/lib/v-x-e-table/index.min.js +1 -1
  90. package/lib/v-x-e-table/src/conf.js +3 -1
  91. package/lib/v-x-e-table/src/interceptor.js +4 -4
  92. package/lib/v-x-e-table/src/interceptor.min.js +1 -1
  93. package/lib/v-x-e-table/src/renderer.js +18 -10
  94. package/lib/v-x-e-table/src/renderer.min.js +1 -1
  95. package/lib/v-x-e-table/src/store.js +3 -3
  96. package/lib/v-x-e-table/src/store.min.js +1 -1
  97. package/lib/validator/src/mixin.js +4 -4
  98. package/lib/validator/src/mixin.min.js +1 -1
  99. package/package.json +1 -1
  100. package/packages/button/src/button.js +4 -2
  101. package/packages/checkbox/src/checkbox.js +2 -2
  102. package/packages/edit/src/mixin.js +7 -6
  103. package/packages/export/src/export-panel.js +1 -1
  104. package/packages/export/src/import-panel.js +1 -1
  105. package/packages/export/src/mixin.js +20 -19
  106. package/packages/filter/src/mixin.js +3 -3
  107. package/packages/filter/src/panel.js +1 -1
  108. package/packages/footer/src/footer.js +4 -2
  109. package/packages/form/src/form-gather.js +2 -2
  110. package/packages/form/src/form-item.js +2 -2
  111. package/packages/form/src/form.js +7 -7
  112. package/packages/form/src/render.js +4 -4
  113. package/packages/form/src/util.js +2 -2
  114. package/packages/grid/src/grid.js +22 -20
  115. package/packages/header/src/header.js +3 -2
  116. package/packages/input/src/input.js +6 -3
  117. package/packages/keyboard/src/mixin.js +1 -2
  118. package/packages/list/src/list.js +3 -2
  119. package/packages/menu/src/mixin.js +5 -3
  120. package/packages/menu/src/panel.js +3 -3
  121. package/packages/modal/src/modal.js +7 -4
  122. package/packages/pulldown/src/pulldown.js +3 -1
  123. package/packages/radio/src/button.js +2 -2
  124. package/packages/radio/src/radio.js +2 -2
  125. package/packages/select/src/select.js +5 -3
  126. package/packages/switch/src/switch.js +4 -4
  127. package/packages/table/src/body.js +23 -22
  128. package/packages/table/src/cell.js +5 -4
  129. package/packages/table/src/column.js +1 -1
  130. package/packages/table/src/columnInfo.js +148 -0
  131. package/packages/table/src/methods.js +50 -50
  132. package/packages/table/src/table.js +56 -41
  133. package/packages/table/src/util.js +19 -1
  134. package/packages/textarea/src/textarea.js +2 -2
  135. package/packages/toolbar/src/toolbar.js +7 -4
  136. package/packages/tools/{src/dom.js → dom.js} +0 -0
  137. package/packages/tools/{src/event.js → event.js} +1 -3
  138. package/packages/tools/log.js +16 -0
  139. package/packages/tools/{src/resize.js → resize.js} +1 -1
  140. package/packages/tools/utils.js +108 -0
  141. package/packages/tooltip/src/tooltip.js +2 -1
  142. package/packages/v-x-e-table/index.js +4 -2
  143. package/packages/v-x-e-table/src/conf.js +3 -1
  144. package/packages/v-x-e-table/src/interceptor.js +3 -3
  145. package/packages/v-x-e-table/src/renderer.js +4 -3
  146. package/packages/v-x-e-table/src/store.js +2 -2
  147. package/packages/validator/src/mixin.js +3 -3
  148. package/types/v-x-e-table/index.d.ts +8 -0
  149. package/lib/tools/index.js +0 -76
  150. package/lib/tools/index.min.js +0 -1
  151. package/lib/tools/src/event.min.js +0 -1
  152. package/lib/tools/src/resize.min.js +0 -1
  153. package/lib/tools/src/utils.js +0 -365
  154. package/lib/tools/src/utils.min.js +0 -1
  155. package/packages/tools/index.js +0 -14
  156. package/packages/tools/src/utils.js +0 -272
@@ -1,272 +0,0 @@
1
- import XEUtils from 'xe-utils'
2
- import GlobalConfig from '../../v-x-e-table/src/conf'
3
- import { formats } from '../../v-x-e-table/src/formats'
4
-
5
- let zindexIndex = 0
6
- let lastZindex = 1
7
-
8
- class ColumnInfo {
9
- /* eslint-disable @typescript-eslint/no-use-before-define */
10
- constructor ($xetable, _vm, { renderHeader, renderCell, renderFooter, renderData } = {}) {
11
- const $xegrid = $xetable.$xegrid
12
- const proxyOpts = $xegrid ? $xegrid.proxyOpts : null
13
- const formatter = _vm.formatter
14
- const visible = XEUtils.isBoolean(_vm.visible) ? _vm.visible : true
15
-
16
- if (process.env.VUE_APP_VXE_TABLE_ENV === 'development') {
17
- const types = ['seq', 'checkbox', 'radio', 'expand', 'html']
18
- if (_vm.type && types.indexOf(_vm.type) === -1) {
19
- UtilTools.warn('vxe.error.errProp', [`type=${_vm.type}`, types.join(', ')])
20
- }
21
- if (XEUtils.isBoolean(_vm.cellRender) || (_vm.cellRender && !XEUtils.isObject(_vm.cellRender))) {
22
- UtilTools.warn('vxe.error.errProp', [`column.cell-render=${_vm.cellRender}`, 'column.cell-render={}'])
23
- }
24
- if (XEUtils.isBoolean(_vm.editRender) || (_vm.editRender && !XEUtils.isObject(_vm.editRender))) {
25
- UtilTools.warn('vxe.error.errProp', [`column.edit-render=${_vm.editRender}`, 'column.edit-render={}'])
26
- }
27
- if (_vm.cellRender && _vm.editRender) {
28
- UtilTools.warn('vxe.error.errConflicts', ['column.cell-render', 'column.edit-render'])
29
- }
30
- if (_vm.type === 'expand') {
31
- if ($xetable.treeConfig && $xetable.treeOpts.line) {
32
- UtilTools.error('vxe.error.errConflicts', ['tree-config.line', 'column.type=expand'])
33
- }
34
- }
35
- if (_vm.remoteSort) {
36
- UtilTools.warn('vxe.error.delProp', ['column.remote-sort', 'sort-config.remote'])
37
- }
38
- if (_vm.sortMethod) {
39
- UtilTools.warn('vxe.error.delProp', ['column.sort-method', 'sort-config.sortMethod'])
40
- }
41
- if (formatter) {
42
- if (XEUtils.isString(formatter)) {
43
- const globalFunc = formats.get(formatter) || XEUtils[formatter]
44
- if (!XEUtils.isFunction(globalFunc)) {
45
- UtilTools.error('vxe.error.notFunc', [formatter])
46
- }
47
- } else if (XEUtils.isArray(formatter)) {
48
- const globalFunc = formats.get(formatter[0]) || XEUtils[formatter[0]]
49
- if (!XEUtils.isFunction(globalFunc)) {
50
- UtilTools.error('vxe.error.notFunc', [formatter[0]])
51
- }
52
- }
53
- }
54
- }
55
-
56
- Object.assign(this, {
57
- // 基本属性
58
- type: _vm.type,
59
- property: _vm.field,
60
- field: _vm.field,
61
- title: _vm.title,
62
- width: _vm.width,
63
- minWidth: _vm.minWidth,
64
- resizable: _vm.resizable,
65
- fixed: _vm.fixed,
66
- align: _vm.align,
67
- headerAlign: _vm.headerAlign,
68
- footerAlign: _vm.footerAlign,
69
- showOverflow: _vm.showOverflow,
70
- showHeaderOverflow: _vm.showHeaderOverflow,
71
- showFooterOverflow: _vm.showFooterOverflow,
72
- className: _vm.className,
73
- headerClassName: _vm.headerClassName,
74
- footerClassName: _vm.footerClassName,
75
- formatter: formatter,
76
- sortable: _vm.sortable,
77
- sortBy: _vm.sortBy,
78
- sortType: _vm.sortType,
79
- sortMethod: _vm.sortMethod,
80
- remoteSort: _vm.remoteSort,
81
- filters: UtilTools.getFilters(_vm.filters),
82
- filterMultiple: XEUtils.isBoolean(_vm.filterMultiple) ? _vm.filterMultiple : true,
83
- filterMethod: _vm.filterMethod,
84
- filterResetMethod: _vm.filterResetMethod,
85
- filterRecoverMethod: _vm.filterRecoverMethod,
86
- filterRender: _vm.filterRender,
87
- treeNode: _vm.treeNode,
88
- cellType: _vm.cellType,
89
- cellRender: _vm.cellRender,
90
- editRender: _vm.editRender,
91
- contentRender: _vm.contentRender,
92
- exportMethod: _vm.exportMethod,
93
- footerExportMethod: _vm.footerExportMethod,
94
- titleHelp: _vm.titleHelp,
95
- // 自定义参数
96
- params: _vm.params,
97
- // 渲染属性
98
- id: _vm.colId || XEUtils.uniqueId('col_'),
99
- parentId: null,
100
- visible,
101
- // 内部属性(一旦被使用,将导致不可升级版本)
102
- halfVisible: false,
103
- defaultVisible: visible,
104
- checked: false,
105
- halfChecked: false,
106
- disabled: false,
107
- level: 1,
108
- rowSpan: 1,
109
- colSpan: 1,
110
- order: null,
111
- sortTime: 0,
112
- renderWidth: 0,
113
- renderHeight: 0,
114
- resizeWidth: 0,
115
- renderLeft: 0,
116
- renderArgs: [], // 渲染参数可用于扩展
117
- model: {},
118
- renderHeader: renderHeader || _vm.renderHeader,
119
- renderCell: renderCell || _vm.renderCell,
120
- renderFooter: renderFooter || _vm.renderFooter,
121
- renderData: renderData,
122
- // 单元格插槽,只对 grid 有效
123
- slots: _vm.slots
124
- })
125
- if (proxyOpts && proxyOpts.beforeColumn) {
126
- proxyOpts.beforeColumn({ $grid: $xegrid, column: this })
127
- }
128
- }
129
-
130
- getTitle () {
131
- return UtilTools.getFuncText(this.title || (this.type === 'seq' ? GlobalConfig.i18n('vxe.table.seqTitle') : ''))
132
- }
133
-
134
- getKey () {
135
- return this.property || (this.type ? `type=${this.type}` : null)
136
- }
137
-
138
- update (name, value) {
139
- // 不支持双向的属性
140
- if (name !== 'filters') {
141
- if (name === 'field') {
142
- this.property = value
143
- } else {
144
- this[name] = value
145
- }
146
- }
147
- }
148
- }
149
-
150
- export function isEnableConf (conf) {
151
- return conf && conf.enabled !== false
152
- }
153
-
154
- function outLog (type) {
155
- return function (message, params) {
156
- const msg = UtilTools.getLog(message, params)
157
- console[type](msg)
158
- return msg
159
- }
160
- }
161
-
162
- /**
163
- * 判断值为:'' | null | undefined 时都属于空值
164
- */
165
- export function eqEmptyValue (cellValue) {
166
- return cellValue === '' || XEUtils.eqNull(cellValue)
167
- }
168
-
169
- export const UtilTools = {
170
- warn: outLog('warn'),
171
- error: outLog('error'),
172
- getLog (message, args) {
173
- return `[vxe-table] ${GlobalConfig.i18n(message, args)}`
174
- },
175
- getFuncText (content) {
176
- return XEUtils.isFunction(content) ? content() : (GlobalConfig.translate ? GlobalConfig.translate(content) : content)
177
- },
178
- nextZIndex () {
179
- lastZindex = GlobalConfig.zIndex + zindexIndex++
180
- return lastZindex
181
- },
182
- getLastZIndex () {
183
- return lastZindex
184
- },
185
- // 行主键 key
186
- getRowkey ($xetable) {
187
- return $xetable.rowId || '_X_ID'
188
- },
189
- // 行主键 value
190
- getRowid ($xetable, row) {
191
- const rowId = XEUtils.get(row, UtilTools.getRowkey($xetable))
192
- return XEUtils.eqNull(rowId) ? '' : encodeURIComponent(rowId)
193
- },
194
- // 获取所有的列,排除分组
195
- getColumnList (columns) {
196
- const result = []
197
- columns.forEach(column => {
198
- result.push(...(column.children && column.children.length ? UtilTools.getColumnList(column.children) : [column]))
199
- })
200
- return result
201
- },
202
- getClass (property, params) {
203
- return property ? XEUtils.isFunction(property) ? property(params) : property : ''
204
- },
205
- getFilters (filters) {
206
- if (filters && XEUtils.isArray(filters)) {
207
- return filters.map(({ label, value, data, resetValue, checked }) => {
208
- return { label, value, data, resetValue, checked: !!checked, _checked: !!checked }
209
- })
210
- }
211
- return filters
212
- },
213
- formatText (value, placeholder) {
214
- return '' + (value === '' || value === null || value === undefined ? (placeholder ? GlobalConfig.emptyCell : '') : value)
215
- },
216
- getCellValue (row, column) {
217
- return XEUtils.get(row, column.property)
218
- },
219
- setCellValue (row, column, value) {
220
- return XEUtils.set(row, column.property, value)
221
- },
222
- isColumn (column) {
223
- return column instanceof ColumnInfo
224
- },
225
- getColumnConfig ($xetable, _vm, options) {
226
- return UtilTools.isColumn(_vm) ? _vm : new ColumnInfo($xetable, _vm, options)
227
- },
228
- // 组装列配置
229
- assemColumn (_vm) {
230
- const { $el, $xetable, $xecolumn, columnConfig } = _vm
231
- const groupConfig = $xecolumn ? $xecolumn.columnConfig : null
232
- columnConfig.slots = _vm.$scopedSlots
233
- if (groupConfig) {
234
- if (process.env.VUE_APP_VXE_TABLE_ENV === 'development') {
235
- if ($xecolumn.$options._componentTag === 'vxe-table-column') {
236
- UtilTools.error('vxe.error.groupTag', [`<vxe-table-colgroup title=${$xecolumn.title} ...>`, `<vxe-table-column title=${$xecolumn.title} ...>`])
237
- } else if ($xecolumn.$options._componentTag === 'vxe-column') {
238
- UtilTools.warn('vxe.error.groupTag', [`<vxe-colgroup title=${$xecolumn.title} ...>`, `<vxe-column title=${$xecolumn.title} ...>`])
239
- }
240
- }
241
- if (!groupConfig.children) {
242
- groupConfig.children = []
243
- }
244
- groupConfig.children.splice([].indexOf.call($xecolumn.$el.children, $el), 0, columnConfig)
245
- } else {
246
- $xetable.staticColumns.splice([].indexOf.call($xetable.$refs.hideColumn.children, $el), 0, columnConfig)
247
- }
248
- },
249
- // 销毁列
250
- destroyColumn (_vm) {
251
- const { $xetable, columnConfig } = _vm
252
- const matchObj = XEUtils.findTree($xetable.staticColumns, column => column === columnConfig)
253
- if (matchObj) {
254
- matchObj.items.splice(matchObj.index, 1)
255
- }
256
- },
257
- hasChildrenList (item) {
258
- return item && item.children && item.children.length > 0
259
- },
260
- parseFile (file) {
261
- const name = file.name
262
- const tIndex = XEUtils.lastIndexOf(name, '.')
263
- const type = name.substring(tIndex + 1, name.length)
264
- const filename = name.substring(0, tIndex)
265
- return { filename, type }
266
- },
267
- isNumVal (num) {
268
- return !isNaN(parseFloat('' + num))
269
- }
270
- }
271
-
272
- export default UtilTools