vxe-table 4.6.5 → 4.6.6

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 (149) hide show
  1. package/es/button/style.css +6 -6
  2. package/es/checkbox/src/group.js +7 -1
  3. package/es/custom/src/hook.js +1 -0
  4. package/es/custom/src/panel.js +207 -45
  5. package/es/custom/style.css +326 -80
  6. package/es/export/src/export-panel.js +1 -1
  7. package/es/export/src/import-panel.js +1 -1
  8. package/es/icon/style.css +1 -1
  9. package/es/input/style.css +0 -1
  10. package/es/loading/src/loading.js +1 -1
  11. package/es/loading/style.css +1 -1
  12. package/es/locale/lang/en-US.js +18 -7
  13. package/es/locale/lang/es-ES.js +18 -7
  14. package/es/locale/lang/ja-JP.js +18 -6
  15. package/es/locale/lang/pt-BR.js +18 -7
  16. package/es/locale/lang/zh-CN.js +18 -7
  17. package/es/locale/lang/zh-TC.js +18 -7
  18. package/es/modal/src/modal.js +1 -1
  19. package/es/radio/src/group.js +7 -1
  20. package/es/style.css +1 -1
  21. package/es/style.min.css +1 -1
  22. package/es/table/src/columnInfo.js +3 -3
  23. package/es/table/src/table.js +60 -36
  24. package/es/table/style.css +4 -4
  25. package/es/tools/log.js +1 -1
  26. package/es/v-x-e-table/index.js +1 -1
  27. package/es/v-x-e-table/style.css +1 -1
  28. package/es/vxe-button/style.css +6 -6
  29. package/es/vxe-input/style.css +0 -1
  30. package/es/vxe-loading/style.css +1 -1
  31. package/es/vxe-table/style.css +4 -4
  32. package/es/vxe-table-custom-module/style.css +326 -80
  33. package/lib/button/style/style.css +6 -6
  34. package/lib/button/style/style.min.css +1 -1
  35. package/lib/checkbox/src/group.js +7 -1
  36. package/lib/checkbox/src/group.min.js +1 -1
  37. package/lib/custom/src/hook.js +1 -0
  38. package/lib/custom/src/hook.min.js +1 -1
  39. package/lib/custom/src/panel.js +185 -30
  40. package/lib/custom/src/panel.min.js +1 -1
  41. package/lib/custom/style/style.css +326 -80
  42. package/lib/custom/style/style.min.css +1 -1
  43. package/lib/export/src/export-panel.js +1 -1
  44. package/lib/export/src/export-panel.min.js +1 -1
  45. package/lib/export/src/import-panel.js +1 -1
  46. package/lib/export/src/import-panel.min.js +1 -1
  47. package/lib/icon/style/style.css +1 -1
  48. package/lib/icon/style/style.min.css +1 -1
  49. package/lib/index.umd.js +288 -84
  50. package/lib/index.umd.min.js +1 -1
  51. package/lib/input/style/style.css +0 -1
  52. package/lib/input/style/style.min.css +1 -1
  53. package/lib/loading/src/loading.js +1 -1
  54. package/lib/loading/src/loading.min.js +1 -1
  55. package/lib/loading/style/style.css +1 -1
  56. package/lib/loading/style/style.min.css +1 -1
  57. package/lib/locale/lang/en-US.js +18 -7
  58. package/lib/locale/lang/en-US.min.js +1 -1
  59. package/lib/locale/lang/en-US.umd.js +18 -7
  60. package/lib/locale/lang/es-ES.js +18 -7
  61. package/lib/locale/lang/es-ES.min.js +1 -1
  62. package/lib/locale/lang/es-ES.umd.js +18 -7
  63. package/lib/locale/lang/ja-JP.js +18 -6
  64. package/lib/locale/lang/ja-JP.min.js +1 -1
  65. package/lib/locale/lang/ja-JP.umd.js +18 -6
  66. package/lib/locale/lang/pt-BR.js +18 -7
  67. package/lib/locale/lang/pt-BR.min.js +1 -1
  68. package/lib/locale/lang/pt-BR.umd.js +18 -7
  69. package/lib/locale/lang/zh-CN.js +18 -7
  70. package/lib/locale/lang/zh-CN.min.js +1 -1
  71. package/lib/locale/lang/zh-CN.umd.js +18 -7
  72. package/lib/locale/lang/zh-HK.min.js +1 -1
  73. package/lib/locale/lang/zh-HK.umd.js +18 -7
  74. package/lib/locale/lang/zh-MO.min.js +1 -1
  75. package/lib/locale/lang/zh-MO.umd.js +18 -7
  76. package/lib/locale/lang/zh-TC.js +18 -7
  77. package/lib/locale/lang/zh-TC.min.js +1 -1
  78. package/lib/locale/lang/zh-TC.umd.js +18 -7
  79. package/lib/locale/lang/zh-TW.min.js +1 -1
  80. package/lib/locale/lang/zh-TW.umd.js +18 -7
  81. package/lib/modal/src/modal.js +1 -1
  82. package/lib/modal/src/modal.min.js +1 -1
  83. package/lib/radio/src/group.js +7 -1
  84. package/lib/radio/src/group.min.js +1 -1
  85. package/lib/style.css +1 -1
  86. package/lib/style.min.css +1 -1
  87. package/lib/table/src/columnInfo.js +3 -3
  88. package/lib/table/src/columnInfo.min.js +1 -1
  89. package/lib/table/src/table.js +61 -36
  90. package/lib/table/src/table.min.js +1 -1
  91. package/lib/table/style/style.css +4 -4
  92. package/lib/table/style/style.min.css +1 -1
  93. package/lib/tools/log.js +1 -1
  94. package/lib/tools/log.min.js +1 -1
  95. package/lib/v-x-e-table/index.js +1 -1
  96. package/lib/v-x-e-table/index.min.js +1 -1
  97. package/lib/v-x-e-table/style/style.css +1 -1
  98. package/lib/v-x-e-table/style/style.min.css +1 -1
  99. package/lib/vxe-button/style/style.css +6 -6
  100. package/lib/vxe-button/style/style.min.css +1 -1
  101. package/lib/vxe-input/style/style.css +0 -1
  102. package/lib/vxe-input/style/style.min.css +1 -1
  103. package/lib/vxe-loading/style/style.css +1 -1
  104. package/lib/vxe-loading/style/style.min.css +1 -1
  105. package/lib/vxe-table/style/style.css +4 -4
  106. package/lib/vxe-table/style/style.min.css +1 -1
  107. package/lib/vxe-table-custom-module/style/style.css +326 -80
  108. package/lib/vxe-table-custom-module/style/style.min.css +1 -1
  109. package/package.json +1 -1
  110. package/packages/checkbox/src/group.ts +8 -1
  111. package/packages/custom/src/hook.ts +1 -0
  112. package/packages/custom/src/panel.ts +213 -45
  113. package/packages/export/src/export-panel.ts +1 -1
  114. package/packages/export/src/import-panel.ts +1 -1
  115. package/packages/loading/src/loading.ts +1 -1
  116. package/packages/locale/lang/en-US.ts +18 -7
  117. package/packages/locale/lang/es-ES.ts +18 -7
  118. package/packages/locale/lang/ja-JP.ts +18 -6
  119. package/packages/locale/lang/pt-BR.ts +18 -7
  120. package/packages/locale/lang/zh-CN.ts +18 -7
  121. package/packages/locale/lang/zh-TC.ts +18 -7
  122. package/packages/modal/src/modal.ts +1 -1
  123. package/packages/radio/src/group.ts +8 -1
  124. package/packages/table/src/columnInfo.ts +9 -6
  125. package/packages/table/src/table.ts +62 -39
  126. package/packages/table/src/util.ts +1 -1
  127. package/styles/base/common.scss +4 -4
  128. package/styles/button.scss +5 -5
  129. package/styles/custom.scss +192 -86
  130. package/styles/helpers/mixin.scss +1 -1
  131. package/styles/input.scss +1 -2
  132. package/styles/loading.scss +1 -1
  133. package/styles/modal.scss +2 -2
  134. package/styles/select.scss +1 -1
  135. package/styles/table.scss +2 -2
  136. package/types/table.d.ts +32 -22
  137. package/types/v-x-e-table/renderer.d.ts +1 -0
  138. /package/es/icon/style/{iconfont.1714102086168.ttf → iconfont.1714295309081.ttf} +0 -0
  139. /package/es/icon/style/{iconfont.1714102086168.woff → iconfont.1714295309081.woff} +0 -0
  140. /package/es/icon/style/{iconfont.1714102086168.woff2 → iconfont.1714295309081.woff2} +0 -0
  141. /package/es/{iconfont.1714102086168.ttf → iconfont.1714295309081.ttf} +0 -0
  142. /package/es/{iconfont.1714102086168.woff → iconfont.1714295309081.woff} +0 -0
  143. /package/es/{iconfont.1714102086168.woff2 → iconfont.1714295309081.woff2} +0 -0
  144. /package/lib/icon/style/{iconfont.1714102086168.ttf → iconfont.1714295309081.ttf} +0 -0
  145. /package/lib/icon/style/{iconfont.1714102086168.woff → iconfont.1714295309081.woff} +0 -0
  146. /package/lib/icon/style/{iconfont.1714102086168.woff2 → iconfont.1714295309081.woff2} +0 -0
  147. /package/lib/{iconfont.1714102086168.ttf → iconfont.1714295309081.ttf} +0 -0
  148. /package/lib/{iconfont.1714102086168.woff → iconfont.1714295309081.woff} +0 -0
  149. /package/lib/{iconfont.1714102086168.woff2 → iconfont.1714295309081.woff2} +0 -0
@@ -1,5 +1,7 @@
1
- import { defineComponent, h, inject, ref, Ref, VNode, PropType, ComponentOptions } from 'vue'
1
+ import { defineComponent, h, inject, ref, Ref, VNode, PropType, ComponentOptions, TransitionGroup } from 'vue'
2
+ import { VXETable } from '../../v-x-e-table'
2
3
  import { formatText } from '../../tools/utils'
4
+ import { addClass, removeClass } from '../../tools/dom'
3
5
  import GlobalConfig from '../../v-x-e-table/src/conf'
4
6
  import VxeModalComponent from '../../modal/src/modal'
5
7
  import VxeButtonComponent from '../../button/src/button'
@@ -19,10 +21,16 @@ export default defineComponent({
19
21
  setup (props) {
20
22
  const $xetable = inject('$xetable', {} as VxeTableConstructor & VxeTableMethods & VxeTablePrivateMethods)
21
23
 
22
- const { internalData } = $xetable
24
+ const { reactData } = $xetable
23
25
  const { computeCustomOpts, computeIsMaxFixedColumn } = $xetable.getComputeMaps()
24
26
 
25
27
  const refElem = ref() as Ref<HTMLDivElement>
28
+ const bodyElemRef = ref() as Ref<HTMLDivElement>
29
+ const dragHintElemRef = ref() as Ref<HTMLDivElement>
30
+
31
+ const dragColumn = ref<VxeTableDefines.ColumnInfo | null>()
32
+
33
+ let prevDropTrEl: any
26
34
 
27
35
  const handleWrapperMouseenterEvent = (evnt: Event) => {
28
36
  const { customStore } = props
@@ -57,12 +65,24 @@ export default defineComponent({
57
65
  }
58
66
 
59
67
  const resetPopupCustomEvent = (evnt: Event) => {
60
- resetCustomEvent(evnt)
68
+ if (VXETable.modal) {
69
+ VXETable.modal.confirm({
70
+ content: GlobalConfig.i18n('vxe.custom.cstmConfirmRestore'),
71
+ className: 'vxe-table--ignore-clear',
72
+ escClosable: true
73
+ }).then(type => {
74
+ if (type === 'confirm') {
75
+ resetCustomEvent(evnt)
76
+ }
77
+ })
78
+ } else {
79
+ resetCustomEvent(evnt)
80
+ }
61
81
  }
62
82
 
63
83
  const handleOptionCheck = (column: VxeTableDefines.ColumnInfo) => {
64
- const { collectColumn } = internalData
65
- const matchObj = XEUtils.findTree(collectColumn, item => item === column)
84
+ const { customColumnList } = reactData
85
+ const matchObj = XEUtils.findTree(customColumnList, item => item === column)
66
86
  if (matchObj && matchObj.parent) {
67
87
  const { parent } = matchObj
68
88
  if (parent.children && parent.children.length) {
@@ -107,11 +127,11 @@ export default defineComponent({
107
127
 
108
128
  const allCustomEvent = () => {
109
129
  const { customStore } = props
110
- const { collectColumn } = internalData
130
+ const { customColumnList } = reactData
111
131
  const customOpts = computeCustomOpts.value
112
132
  const { checkMethod } = customOpts
113
133
  const isAll = !customStore.isAll
114
- XEUtils.eachTree(collectColumn, (column) => {
134
+ XEUtils.eachTree(customColumnList, (column) => {
115
135
  if (!checkMethod || checkMethod({ column })) {
116
136
  column.visible = isAll
117
137
  column.halfVisible = false
@@ -121,9 +141,117 @@ export default defineComponent({
121
141
  $xetable.checkCustomStatus()
122
142
  }
123
143
 
144
+ const sortMousedownEvent = (evnt: DragEvent) => {
145
+ const btnEl = evnt.currentTarget as HTMLElement
146
+ const tdEl = btnEl.parentNode as HTMLElement
147
+ const trEl = tdEl.parentNode as HTMLElement
148
+ const colid = trEl.getAttribute('colid')
149
+ const column = $xetable.getColumnById(colid)
150
+ trEl.draggable = true
151
+ dragColumn.value = column
152
+ addClass(trEl, 'active--drag-origin')
153
+ }
154
+
155
+ const sortMouseupEvent = (evnt: DragEvent) => {
156
+ const btnEl = evnt.currentTarget as HTMLElement
157
+ const tdEl = btnEl.parentNode as HTMLElement
158
+ const trEl = tdEl.parentNode as HTMLElement
159
+ const dragHintEl = dragHintElemRef.value
160
+ trEl.draggable = false
161
+ dragColumn.value = null
162
+ removeClass(trEl, 'active--drag-origin')
163
+ if (dragHintEl) {
164
+ dragHintEl.style.display = ''
165
+ }
166
+ }
167
+
168
+ const sortDragstartEvent = (evnt: DragEvent) => {
169
+ const img = new Image()
170
+ if (evnt.dataTransfer) {
171
+ evnt.dataTransfer.setDragImage(img, 0, 0)
172
+ }
173
+ }
174
+
175
+ const sortDragendEvent = (evnt: DragEvent) => {
176
+ const { customColumnList } = reactData
177
+ const trEl = evnt.currentTarget as HTMLElement
178
+ const dragHintEl = dragHintElemRef.value
179
+ if (prevDropTrEl) {
180
+ // 判断是否有拖动
181
+ if (prevDropTrEl !== trEl) {
182
+ const dragOffset = prevDropTrEl.getAttribute('drag-pos')
183
+ const colid = trEl.getAttribute('colid')
184
+ const column = $xetable.getColumnById(colid)
185
+ if (!column) {
186
+ return
187
+ }
188
+ const cIndex = XEUtils.findIndexOf(customColumnList, item => item.id === column.id)
189
+ const targetColid = prevDropTrEl.getAttribute('colid')
190
+ const targetColumn = $xetable.getColumnById(targetColid)
191
+ if (!targetColumn) {
192
+ return
193
+ }
194
+ // 移出源位置
195
+ customColumnList.splice(cIndex, 1)
196
+ const tcIndex = XEUtils.findIndexOf(customColumnList, item => item.id === targetColumn.id)
197
+ // 插新位置
198
+ customColumnList.splice(tcIndex + (dragOffset === 'bottom' ? 1 : 0), 0, column)
199
+ }
200
+ prevDropTrEl.draggable = false
201
+ prevDropTrEl.removeAttribute('drag-pos')
202
+ removeClass(prevDropTrEl, 'active--drag-target')
203
+ }
204
+ dragColumn.value = null
205
+ trEl.draggable = false
206
+ trEl.removeAttribute('drag-pos')
207
+ if (dragHintEl) {
208
+ dragHintEl.style.display = ''
209
+ }
210
+ removeClass(trEl, 'active--drag-target')
211
+ removeClass(trEl, 'active--drag-origin')
212
+ // 更新顺序
213
+ customColumnList.forEach((column, index) => {
214
+ column.renderSortNumber = index
215
+ })
216
+ }
217
+
218
+ const sortDragoverEvent = (evnt: DragEvent) => {
219
+ const trEl = evnt.currentTarget as HTMLElement
220
+ if (prevDropTrEl !== trEl) {
221
+ removeClass(prevDropTrEl, 'active--drag-target')
222
+ }
223
+ const colid = trEl.getAttribute('colid')
224
+ const column = $xetable.getColumnById(colid)
225
+ // 是否移入有效元行
226
+ if (column && column.level === 1) {
227
+ evnt.preventDefault()
228
+ const offsetY = evnt.clientY - trEl.getBoundingClientRect().y
229
+ const dragOffset = offsetY < trEl.clientHeight / 2 ? 'top' : 'bottom'
230
+ addClass(trEl, 'active--drag-target')
231
+ trEl.setAttribute('drag-pos', dragOffset)
232
+ prevDropTrEl = trEl
233
+ }
234
+ updateDropHint(evnt)
235
+ }
236
+
237
+ const updateDropHint = (evnt: DragEvent) => {
238
+ const dragHintEl = dragHintElemRef.value
239
+ const bodyEl = bodyElemRef.value
240
+ if (!bodyEl) {
241
+ return
242
+ }
243
+ if (dragHintEl) {
244
+ const warpperEl = bodyEl.parentNode as HTMLElement
245
+ const warpperRect = warpperEl.getBoundingClientRect()
246
+ dragHintEl.style.display = 'block'
247
+ dragHintEl.style.top = `${Math.min(warpperEl.clientHeight - warpperEl.scrollTop - dragHintEl.clientHeight, evnt.clientY - warpperRect.y)}px`
248
+ dragHintEl.style.left = `${Math.min(warpperEl.clientWidth - warpperEl.scrollLeft - dragHintEl.clientWidth - 16, evnt.clientX - warpperRect.x)}px`
249
+ }
250
+ }
251
+
124
252
  const renderSimplePanel = () => {
125
253
  const { customStore } = props
126
- const { collectColumn } = internalData
254
+ const { customColumnList } = reactData
127
255
  const customOpts = computeCustomOpts.value
128
256
  const { maxHeight } = customStore
129
257
  const { checkMethod, visibleMethod, trigger } = customOpts
@@ -135,7 +263,7 @@ export default defineComponent({
135
263
  customWrapperOns.onMouseenter = handleWrapperMouseenterEvent
136
264
  customWrapperOns.onMouseleave = handleWrapperMouseleaveEvent
137
265
  }
138
- XEUtils.eachTree(collectColumn, (column, index, items, path, parent) => {
266
+ XEUtils.eachTree(customColumnList, (column, index, items, path, parent) => {
139
267
  const isVisible = visibleMethod ? visibleMethod({ column }) : true
140
268
  if (isVisible) {
141
269
  const isChecked = column.visible
@@ -254,12 +382,12 @@ export default defineComponent({
254
382
 
255
383
  const renderPopupPanel = () => {
256
384
  const { customStore } = props
257
- const { collectColumn } = internalData
385
+ const { customColumnList } = reactData
258
386
  const customOpts = computeCustomOpts.value
259
387
  const { checkMethod, visibleMethod } = customOpts
260
388
  const isMaxFixedColumn = computeIsMaxFixedColumn.value
261
389
  const trVNs: VNode[] = []
262
- XEUtils.eachTree(collectColumn, (column, index, items, path, parent) => {
390
+ XEUtils.eachTree(customColumnList, (column, index, items, path, parent) => {
263
391
  const isVisible = visibleMethod ? visibleMethod({ column }) : true
264
392
  if (isVisible) {
265
393
  const isChecked = column.visible
@@ -270,12 +398,29 @@ export default defineComponent({
270
398
  trVNs.push(
271
399
  h('tr', {
272
400
  key: column.id,
273
- class: [`vxe-table-custom-popup--row-level${column.level}`, {
401
+ colid: column.id,
402
+ class: [`vxe-table-custom-popup--row level--${column.level}`, {
274
403
  'is--group': isColGroup
275
- }]
404
+ }],
405
+ onDragstart: sortDragstartEvent,
406
+ onDragend: sortDragendEvent,
407
+ onDragover: sortDragoverEvent
276
408
  }, [
277
409
  h('td', {
278
- class: 'vxe-table-custom-popup--column-name'
410
+ class: 'vxe-table-custom-popup--column-item col--sort'
411
+ }, [
412
+ column.level === 1 ? h('span', {
413
+ class: 'vxe-table-custom-popup--column-sort-btn',
414
+ onMousedown: sortMousedownEvent,
415
+ onMouseup: sortMouseupEvent
416
+ }, [
417
+ h('i', {
418
+ class: 'vxe-icon-sort'
419
+ })
420
+ ]) : null
421
+ ]),
422
+ h('td', {
423
+ class: 'vxe-table-custom-popup--column-item col--name'
279
424
  }, [
280
425
  h('div', {
281
426
  class: 'vxe-table-custom-popup--name',
@@ -283,7 +428,7 @@ export default defineComponent({
283
428
  }, colTitle)
284
429
  ]),
285
430
  h('td', {
286
- class: 'vxe-table-custom-popup--column-visiblw'
431
+ class: 'vxe-table-custom-popup--column-item col--visible'
287
432
  }, [
288
433
  h('div', {
289
434
  class: ['vxe-table-custom--checkbox-option', {
@@ -303,17 +448,16 @@ export default defineComponent({
303
448
  ])
304
449
  ]),
305
450
  h('td', {
306
- class: 'vxe-table-custom-popup--column-fixed'
451
+ class: 'vxe-table-custom-popup--column-item col--fixed'
307
452
  }, [
308
453
  !parent && customOpts.allowFixed ? h(VxeRadioGroupComponent, {
309
454
  modelValue: column.fixed || '',
310
- disabled: isMaxFixedColumn,
311
455
  type: 'button',
312
456
  size: 'mini',
313
457
  options: [
314
- { label: '左侧', value: 'left' },
315
- { label: '不固定', value: '' },
316
- { label: '右侧', value: 'right' }
458
+ { label: GlobalConfig.i18n('vxe.custom.setting.fixedLeft'), value: 'left', disabled: isMaxFixedColumn },
459
+ { label: GlobalConfig.i18n('vxe.custom.setting.fixedUnset'), value: '' },
460
+ { label: GlobalConfig.i18n('vxe.custom.setting.fixedRight'), value: 'right', disabled: isMaxFixedColumn }
317
461
  ],
318
462
  'onUpdate:modelValue' (value: any) {
319
463
  column.fixed = value
@@ -329,47 +473,71 @@ export default defineComponent({
329
473
  })
330
474
  return h(VxeModalComponent as ComponentOptions, {
331
475
  key: 'popup',
332
- className: 'vxe-table-custom-popup-warpper vxe-table--ignore-clear',
476
+ className: 'vxe-table-custom-popup-wrapper vxe-table--ignore-clear',
333
477
  modelValue: customStore.visible,
334
478
  title: GlobalConfig.i18n('vxe.custom.cstmTitle'),
335
- width: 700,
336
- maxHeight: 500,
479
+ width: '40vw',
480
+ minWidth: 500,
481
+ height: '50vh',
482
+ minHeight: 300,
337
483
  mask: true,
338
484
  lockView: true,
339
485
  showFooter: true,
486
+ resize: true,
340
487
  escClosable: true,
488
+ destroyOnClose: true,
341
489
  'onUpdate:modelValue' (value: any) {
342
490
  customStore.visible = value
343
491
  }
344
492
  }, {
345
493
  default: () => {
346
494
  return h('div', {
495
+ ref: bodyElemRef,
347
496
  class: 'vxe-table-custom-popup--body'
348
497
  }, [
349
- h('table', {
498
+ h('div', {
499
+ class: 'vxe-table-custom-popup--table-wrapper'
350
500
  }, [
351
- h('colgroup', {}, [
352
- h('col'),
353
- h('col', {
354
- style: {
355
- width: '80px'
356
- }
357
- }),
358
- h('col', {
359
- style: {
360
- width: '200px'
361
- }
501
+ h('table', {}, [
502
+ h('colgroup', {}, [
503
+ h('col', {
504
+ style: {
505
+ width: '60px'
506
+ }
507
+ }),
508
+ h('col'),
509
+ h('col', {
510
+ style: {
511
+ width: '80px'
512
+ }
513
+ }),
514
+ h('col', {
515
+ style: {
516
+ width: '200px'
517
+ }
518
+ })
519
+ ]),
520
+ h('thead', {}, [
521
+ h('tr', {}, [
522
+ h('th', {}, GlobalConfig.i18n('vxe.custom.setting.colSort')),
523
+ h('th', {}, GlobalConfig.i18n('vxe.custom.setting.colTitle')),
524
+ h('th', {}, GlobalConfig.i18n('vxe.custom.setting.colVisible')),
525
+ h('th', {}, GlobalConfig.i18n('vxe.custom.setting.colFixed'))
526
+ ])
527
+ ]),
528
+ h(TransitionGroup, {
529
+ class: 'vxe-table-custom--body',
530
+ tag: 'tbody',
531
+ name: 'vxe-table-custom--flip'
532
+ }, {
533
+ default: () => trVNs
362
534
  })
363
- ]),
364
- h('thead', {}, [
365
- h('tr', {}, [
366
- h('th', {}, '标题'),
367
- h('th', {}, '是否显示'),
368
- h('th', {}, '是否固定')
369
- ])
370
- ]),
371
- h('tbody', {}, trVNs)
372
- ])
535
+ ])
536
+ ]),
537
+ h('div', {
538
+ ref: dragHintElemRef,
539
+ class: 'vxe-table-custom-popup--drag-hint'
540
+ }, GlobalConfig.i18n('vxe.custom.cstmDragTarget', [dragColumn.value ? dragColumn.value.getTitle() : '']))
373
541
  ])
374
542
  },
375
543
  footer: () => {
@@ -193,7 +193,7 @@ export default defineComponent({
193
193
  return h(VxeModalComponent, {
194
194
  modelValue: storeData.visible,
195
195
  title: GlobalConfig.i18n(isPrint ? 'vxe.export.printTitle' : 'vxe.export.expTitle'),
196
- className: 'vxe-table-export-popup-warpper',
196
+ className: 'vxe-table-export-popup-wrapper',
197
197
  width: 660,
198
198
  mask: true,
199
199
  lockView: true,
@@ -96,7 +96,7 @@ export default defineComponent({
96
96
  return h(VxeModalComponent, {
97
97
  modelValue: storeData.visible,
98
98
  title: GlobalConfig.i18n('vxe.import.impTitle'),
99
- className: 'vxe-table-import-popup-warpper',
99
+ className: 'vxe-table-import-popup-wrapper',
100
100
  width: 440,
101
101
  mask: true,
102
102
  lockView: true,
@@ -27,7 +27,7 @@ export default defineComponent({
27
27
  }]
28
28
  }, slots.default ? [
29
29
  h('div', {
30
- class: 'vxe-loading--warpper'
30
+ class: 'vxe-loading--wrapper'
31
31
  }, slots.default({}))
32
32
  ] : [
33
33
  h('div', {
@@ -8,7 +8,7 @@ export default {
8
8
  text: 'Loading...'
9
9
  },
10
10
  error: {
11
- groupFixed: 'If you use group headers, the fixed columns must be set by group.',
11
+ groupFixed: 'If you use group headers, the freeze columns must be set by group.',
12
12
  groupMouseRange: 'Grouping headers and "{0}" cannot be used at the same time, which may cause errors.',
13
13
  groupTag: 'Grouping column header should use "{0}" instead of "{1}", which may cause errors.',
14
14
  scrollErrProp: 'The parameter "{0}" is not supported when virtual scrolling is enabled.',
@@ -61,7 +61,7 @@ export default {
61
61
  customAll: 'All',
62
62
  customConfirm: 'Confirm',
63
63
  customRestore: 'Reset',
64
- maxFixedCol: 'The maximum number of fixed columns cannot exceed {0}'
64
+ maxFixedCol: 'The maximum number of Freeze columns cannot exceed {0}'
65
65
  },
66
66
  grid: {
67
67
  selectOneRecord: 'Please choose at least one piece of record!',
@@ -96,7 +96,7 @@ export default {
96
96
  endPageTitle: 'End'
97
97
  },
98
98
  alert: {
99
- title: 'Message notification'
99
+ title: 'System messages'
100
100
  },
101
101
  button: {
102
102
  confirm: 'Confirm',
@@ -109,7 +109,18 @@ export default {
109
109
  cstmTitle: 'Column Settings',
110
110
  cstmRestore: 'Restore default',
111
111
  cstmCancel: 'Cancelar',
112
- cstmConfirm: 'Confirm'
112
+ cstmConfirm: 'Confirm',
113
+ cstmConfirmRestore: 'Please confirm whether to restore the default column configuration?',
114
+ cstmDragTarget: 'Moving target: {0}',
115
+ setting: {
116
+ colSort: 'Sort',
117
+ colTitle: 'Title',
118
+ colVisible: 'Visible',
119
+ colFixed: 'Freeze column',
120
+ fixedLeft: 'Left',
121
+ fixedUnset: 'Unset',
122
+ fixedRight: 'Right'
123
+ }
113
124
  },
114
125
  import: {
115
126
  modes: {
@@ -188,9 +199,9 @@ export default {
188
199
  customAll: 'All',
189
200
  customConfirm: 'Confirm',
190
201
  customRestore: 'Reset',
191
- fixedLeft: 'Fixed on the left side',
192
- fixedRight: 'Fixed on the right side',
193
- cancelfixed: 'Unfixed'
202
+ fixedLeft: 'Freeze on the left',
203
+ fixedRight: 'Freeze on the right',
204
+ cancelfixed: 'Unfreeze column'
194
205
  },
195
206
  input: {
196
207
  date: {
@@ -8,7 +8,7 @@ export default {
8
8
  text: 'Cargando...'
9
9
  },
10
10
  error: {
11
- groupFixed: 'Si se utilizan encabezados de grupo, las columnas fijas deben ser establecidas por grupo.',
11
+ groupFixed: 'If you use group headers, the freeze columns must be set by group.',
12
12
  groupMouseRange: 'Los encabezados de agrupación y "{0}" no pueden ser utilizados al mismo tiempo, lo que puede causar errores.',
13
13
  groupTag: 'El encabezado de columna de agrupación debería utilizar "{0}" en lugar de "{1}", lo que puede causar errores.',
14
14
  scrollErrProp: 'El parámetro "{0}" no es compatible cuando el desplazamiento virtual está habilitado.',
@@ -61,7 +61,7 @@ export default {
61
61
  customAll: 'Todo',
62
62
  customConfirm: 'Confirmar',
63
63
  customRestore: 'Restaurar',
64
- maxFixedCol: '最大固定列的数量不能超过 {0}'
64
+ maxFixedCol: 'The maximum number of Freeze columns cannot exceed {0}'
65
65
  },
66
66
  grid: {
67
67
  selectOneRecord: '¡Seleccione al menos un registro!',
@@ -88,7 +88,7 @@ export default {
88
88
  nextJump: 'Saltar siguiente página'
89
89
  },
90
90
  alert: {
91
- title: 'Notificación de mensaje'
91
+ title: 'System messages'
92
92
  },
93
93
  button: {
94
94
  confirm: 'Confirmar',
@@ -101,7 +101,18 @@ export default {
101
101
  cstmTitle: 'Column Settings',
102
102
  cstmRestore: 'Restore default',
103
103
  cstmCancel: 'Cancelar',
104
- cstmConfirm: 'Confirm'
104
+ cstmConfirm: 'Confirm',
105
+ cstmConfirmRestore: 'Please confirm whether to restore the default column configuration?',
106
+ cstmDragTarget: 'Moving target: {0}',
107
+ setting: {
108
+ colSort: 'Sort',
109
+ colTitle: 'Title',
110
+ colVisible: 'Visible',
111
+ colFixed: 'Freeze column',
112
+ fixedLeft: 'Left',
113
+ fixedUnset: 'Unset',
114
+ fixedRight: 'Right'
115
+ }
105
116
  },
106
117
  import: {
107
118
  modes: {
@@ -180,9 +191,9 @@ export default {
180
191
  customAll: 'Todo',
181
192
  customConfirm: 'Confirmar',
182
193
  customRestore: 'Restaurar',
183
- fixedLeft: '固定在左侧',
184
- fixedRight: '固定在右侧',
185
- cancelfixed: '取消固定'
194
+ fixedLeft: 'Freeze on the left',
195
+ fixedRight: 'Freeze on the right',
196
+ cancelfixed: 'Unfreeze column'
186
197
  },
187
198
  entrada: {
188
199
  fecha: {
@@ -8,7 +8,7 @@ export default {
8
8
  text: 'Loading...'
9
9
  },
10
10
  error: {
11
- groupFixed: 'グループのヘッダを使用すると、固定列はグループで設定しなければなりません',
11
+ groupFixed: 'If you use group headers, the freeze columns must be set by group.',
12
12
  groupMouseRange: 'グループ化ヘッダーと「{0}」は同時に使用できません。これによりエラーが発生する可能性があります',
13
13
  groupTag: '分组列头应该使用 "{0}" 而不是 "{1}",这可能会出现错误',
14
14
  scrollErrProp: '启用虚拟滚动后不支持该参数 "{0}"',
@@ -61,7 +61,7 @@ export default {
61
61
  customAll: '全部',
62
62
  customConfirm: '确认',
63
63
  customRestore: 'リセット',
64
- maxFixedCol: '最大固定列的数量不能超过 {0}'
64
+ maxFixedCol: 'The maximum number of Freeze columns cannot exceed {0}'
65
65
  },
66
66
  grid: {
67
67
  selectOneRecord: '少なくとも1つのレコードを選択してください',
@@ -96,7 +96,7 @@ export default {
96
96
  endPageTitle: 'End page'
97
97
  },
98
98
  alert: {
99
- title: 'メッセージ'
99
+ title: 'System messages'
100
100
  },
101
101
  button: {
102
102
  confirm: '完了',
@@ -109,7 +109,18 @@ export default {
109
109
  cstmTitle: 'Column Settings',
110
110
  cstmRestore: 'Restore default',
111
111
  cstmCancel: 'Cancelar',
112
- cstmConfirm: 'Confirm'
112
+ cstmConfirm: 'Confirm',
113
+ cstmConfirmRestore: 'Please confirm whether to restore the default column configuration?',
114
+ cstmDragTarget: 'Moving target: {0}',
115
+ setting: {
116
+ colSort: 'Sort',
117
+ colTitle: 'Title',
118
+ colVisible: 'Visible',
119
+ colFixed: 'Freeze column',
120
+ fixedLeft: 'Left',
121
+ fixedUnset: 'Unset',
122
+ fixedRight: 'Right'
123
+ }
113
124
  },
114
125
  import: {
115
126
  modes: {
@@ -188,8 +199,9 @@ export default {
188
199
  customAll: '全部',
189
200
  customConfirm: '確定',
190
201
  customRestore: 'リセット',
191
- fixedLeft: '固定在左侧',
192
- fixedRight: '固定在右侧'
202
+ fixedLeft: 'Freeze on the left',
203
+ fixedRight: 'Freeze on the right',
204
+ cancelfixed: 'Unfreeze column'
193
205
  },
194
206
  input: {
195
207
  date: {
@@ -8,7 +8,7 @@ export default {
8
8
  text: 'Carregando...'
9
9
  },
10
10
  error: {
11
- groupFixed: 'Se você estiver usando cabeçalhos de grupo, as colunas fixas devem ser definidas por grupo.',
11
+ groupFixed: 'If you use group headers, the freeze columns must be set by group.',
12
12
  groupMouseRange: 'Agrupar cabeçalhos e "{0}" não podem ser usados ao mesmo tempo, o que pode causar erros.',
13
13
  groupTag: 'O cabeçalho da coluna de agrupamento deve usar "{0}" em vez de "{1}", o que pode causar erros.',
14
14
  scrollErrProp: 'O parâmetro "{0}" não é suportado quando a rolagem virtual está habilitada.',
@@ -147,7 +147,7 @@ export default {
147
147
  customAll: 'Todos',
148
148
  customConfirm: 'Confirmar',
149
149
  customRestore: 'Redefinir',
150
- maxFixedCol: 'O número máximo de colunas fixas não pode exceder {0}'
150
+ maxFixedCol: 'The maximum number of Freeze columns cannot exceed {0}'
151
151
  },
152
152
  grid: {
153
153
  selectOneRecord: 'Por favor, selecione pelo menos um registro!',
@@ -174,7 +174,7 @@ export default {
174
174
  nextJump: 'Saltar para próxima página'
175
175
  },
176
176
  alert: {
177
- title: 'Notificação de Mensagem'
177
+ title: 'System messages'
178
178
  },
179
179
  button: {
180
180
  confirm: 'Confirmar',
@@ -184,7 +184,18 @@ export default {
184
184
  cstmTitle: 'Column Settings',
185
185
  cstmRestore: 'Restore default',
186
186
  cstmCancel: 'Cancelar',
187
- cstmConfirm: 'Confirm'
187
+ cstmConfirm: 'Confirm',
188
+ cstmConfirmRestore: 'Please confirm whether to restore the default column configuration?',
189
+ cstmDragTarget: 'Moving target: {0}',
190
+ setting: {
191
+ colSort: 'Sort',
192
+ colTitle: 'Title',
193
+ colVisible: 'Visible',
194
+ colFixed: 'Freeze column',
195
+ fixedLeft: 'Left',
196
+ fixedUnset: 'Unset',
197
+ fixedRight: 'Right'
198
+ }
188
199
  },
189
200
  import: {
190
201
  modes: {
@@ -263,9 +274,9 @@ export default {
263
274
  customAll: 'Todos',
264
275
  customConfirm: 'Confirmar',
265
276
  customRestore: 'Redefinir',
266
- fixedLeft: 'Fixar à esquerda',
267
- fixedRight: 'Fixar à direita',
268
- cancelfixed: 'Não fixar'
277
+ fixedLeft: 'Freeze on the left',
278
+ fixedRight: 'Freeze on the right',
279
+ cancelfixed: 'Unfreeze column'
269
280
  },
270
281
  input: {
271
282
  date: {