vxe-table 4.7.71 → 4.7.73

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 (92) hide show
  1. package/es/grid/src/grid.js +1 -1
  2. package/es/locale/lang/en-US.js +19 -2
  3. package/es/locale/lang/es-ES.js +19 -2
  4. package/es/locale/lang/hu-HU.js +23 -2
  5. package/es/locale/lang/ja-JP.js +19 -2
  6. package/es/locale/lang/ko-KR.js +19 -2
  7. package/es/locale/lang/pt-BR.js +19 -2
  8. package/es/locale/lang/ru-RU.js +19 -2
  9. package/es/locale/lang/vi-VN.js +19 -2
  10. package/es/locale/lang/zh-CN.js +19 -2
  11. package/es/locale/lang/zh-TC.js +19 -2
  12. package/es/style.css +1 -1
  13. package/es/style.min.css +1 -1
  14. package/es/table/module/custom/panel.js +176 -89
  15. package/es/table/module/export/export-panel.js +13 -4
  16. package/es/table/style.css +16 -37
  17. package/es/table/style.min.css +1 -1
  18. package/es/ui/index.js +2 -2
  19. package/es/ui/src/log.js +1 -1
  20. package/es/vxe-table/style.css +16 -37
  21. package/es/vxe-table/style.min.css +1 -1
  22. package/lib/grid/src/grid.js +1 -1
  23. package/lib/grid/src/grid.min.js +1 -1
  24. package/lib/index.umd.js +197 -74
  25. package/lib/index.umd.min.js +1 -1
  26. package/lib/locale/lang/en-US.js +19 -2
  27. package/lib/locale/lang/en-US.min.js +1 -1
  28. package/lib/locale/lang/en-US.umd.js +19 -2
  29. package/lib/locale/lang/es-ES.js +19 -2
  30. package/lib/locale/lang/es-ES.min.js +1 -1
  31. package/lib/locale/lang/es-ES.umd.js +19 -2
  32. package/lib/locale/lang/hu-HU.js +23 -2
  33. package/lib/locale/lang/hu-HU.min.js +1 -1
  34. package/lib/locale/lang/ja-JP.js +19 -2
  35. package/lib/locale/lang/ja-JP.min.js +1 -1
  36. package/lib/locale/lang/ja-JP.umd.js +19 -2
  37. package/lib/locale/lang/ko-KR.js +19 -2
  38. package/lib/locale/lang/ko-KR.min.js +1 -1
  39. package/lib/locale/lang/pt-BR.js +19 -2
  40. package/lib/locale/lang/pt-BR.min.js +1 -1
  41. package/lib/locale/lang/pt-BR.umd.js +19 -2
  42. package/lib/locale/lang/ru-RU.js +19 -2
  43. package/lib/locale/lang/ru-RU.min.js +1 -1
  44. package/lib/locale/lang/vi-VN.js +19 -2
  45. package/lib/locale/lang/vi-VN.min.js +1 -1
  46. package/lib/locale/lang/zh-CN.js +19 -2
  47. package/lib/locale/lang/zh-CN.min.js +1 -1
  48. package/lib/locale/lang/zh-CN.umd.js +19 -2
  49. package/lib/locale/lang/zh-HK.min.js +1 -1
  50. package/lib/locale/lang/zh-HK.umd.js +19 -2
  51. package/lib/locale/lang/zh-MO.min.js +1 -1
  52. package/lib/locale/lang/zh-MO.umd.js +19 -2
  53. package/lib/locale/lang/zh-TC.js +19 -2
  54. package/lib/locale/lang/zh-TC.min.js +1 -1
  55. package/lib/locale/lang/zh-TC.umd.js +19 -2
  56. package/lib/locale/lang/zh-TW.min.js +1 -1
  57. package/lib/locale/lang/zh-TW.umd.js +19 -2
  58. package/lib/style.css +1 -1
  59. package/lib/style.min.css +1 -1
  60. package/lib/table/module/custom/panel.js +140 -68
  61. package/lib/table/module/custom/panel.min.js +1 -1
  62. package/lib/table/module/export/export-panel.js +9 -2
  63. package/lib/table/module/export/export-panel.min.js +1 -1
  64. package/lib/table/style/style.css +16 -37
  65. package/lib/table/style/style.min.css +1 -1
  66. package/lib/ui/index.js +2 -2
  67. package/lib/ui/index.min.js +1 -1
  68. package/lib/ui/src/log.js +1 -1
  69. package/lib/ui/src/log.min.js +1 -1
  70. package/lib/vxe-table/style/style.css +16 -37
  71. package/lib/vxe-table/style/style.min.css +1 -1
  72. package/package.json +2 -2
  73. package/packages/grid/src/grid.ts +1 -1
  74. package/packages/locale/lang/en-US.ts +19 -2
  75. package/packages/locale/lang/es-ES.ts +19 -2
  76. package/packages/locale/lang/hu-HU.ts +23 -2
  77. package/packages/locale/lang/ja-JP.ts +19 -2
  78. package/packages/locale/lang/ko-KR.ts +19 -2
  79. package/packages/locale/lang/pt-BR.ts +19 -2
  80. package/packages/locale/lang/ru-RU.ts +19 -2
  81. package/packages/locale/lang/vi-VN.ts +19 -2
  82. package/packages/locale/lang/zh-CN.ts +19 -2
  83. package/packages/locale/lang/zh-TC.ts +19 -2
  84. package/packages/table/module/custom/panel.ts +176 -84
  85. package/packages/table/module/export/export-panel.ts +13 -4
  86. package/styles/components/table-module/custom.scss +21 -40
  87. /package/es/{iconfont.1724652383108.ttf → iconfont.1724892633863.ttf} +0 -0
  88. /package/es/{iconfont.1724652383108.woff → iconfont.1724892633863.woff} +0 -0
  89. /package/es/{iconfont.1724652383108.woff2 → iconfont.1724892633863.woff2} +0 -0
  90. /package/lib/{iconfont.1724652383108.ttf → iconfont.1724892633863.ttf} +0 -0
  91. /package/lib/{iconfont.1724652383108.woff → iconfont.1724892633863.woff} +0 -0
  92. /package/lib/{iconfont.1724652383108.woff2 → iconfont.1724892633863.woff2} +0 -0
@@ -35,7 +35,7 @@ export default defineComponent({
35
35
  const bodyElemRef = ref() as Ref<HTMLDivElement>
36
36
  const dragHintElemRef = ref() as Ref<HTMLDivElement>
37
37
 
38
- const dragColumn = ref<VxeTableDefines.ColumnInfo | null>()
38
+ const dragColumnRef = ref<VxeTableDefines.ColumnInfo | null>()
39
39
 
40
40
  let prevDropTrEl: any
41
41
 
@@ -86,6 +86,11 @@ export default defineComponent({
86
86
  $xeTable.saveCustomStore('confirm')
87
87
  }
88
88
 
89
+ const cancelCloseEvent: VxeButtonEvents.Click = ({ $event }) => {
90
+ $xeTable.closeCustom()
91
+ $xeTable.emitCustomEvent('close', $event)
92
+ }
93
+
89
94
  const cancelCustomEvent: VxeButtonEvents.Click = ({ $event }) => {
90
95
  const { customStore } = props
91
96
  const { customColumnList } = reactData
@@ -153,51 +158,76 @@ export default defineComponent({
153
158
  const changeCheckboxOption = (column: VxeTableDefines.ColumnInfo) => {
154
159
  const isChecked = !column.renderVisible
155
160
  const customOpts = computeCustomOpts.value
156
- XEUtils.eachTree([column], (item) => {
157
- item.renderVisible = isChecked
158
- item.halfVisible = false
159
- })
160
- handleOptionCheck(column)
161
161
  if (customOpts.immediate) {
162
+ XEUtils.eachTree([column], (item) => {
163
+ item.visible = isChecked
164
+ item.renderVisible = isChecked
165
+ item.halfVisible = false
166
+ })
162
167
  $xeTable.handleCustom()
163
168
  $xeTable.saveCustomStore('update:visible')
169
+ } else {
170
+ XEUtils.eachTree([column], (item) => {
171
+ item.renderVisible = isChecked
172
+ item.halfVisible = false
173
+ })
164
174
  }
175
+ handleOptionCheck(column)
165
176
  $xeTable.checkCustomStatus()
166
177
  }
167
178
 
168
179
  const changeFixedOption = (column: VxeTableDefines.ColumnInfo, colFixed: VxeColumnPropTypes.Fixed) => {
169
180
  const isMaxFixedColumn = computeIsMaxFixedColumn.value
170
- if (column.renderFixed === colFixed) {
171
- column.renderFixed = ''
172
- // $xeTable.clearColumnFixed(column)
181
+ const customOpts = computeCustomOpts.value
182
+ if (customOpts.immediate) {
183
+ if (column.renderFixed === colFixed) {
184
+ column.fixed = ''
185
+ column.renderFixed = ''
186
+ } else {
187
+ if (!isMaxFixedColumn || column.renderFixed) {
188
+ column.fixed = colFixed
189
+ column.renderFixed = colFixed
190
+ }
191
+ }
192
+ $xeTable.handleCustom()
193
+ $xeTable.saveCustomStore('update:fixed')
173
194
  } else {
174
- if (!isMaxFixedColumn || column.renderFixed) {
175
- column.renderFixed = colFixed
176
- // $xeTable.setColumnFixed(column, colFixed)
195
+ if (column.renderFixed === colFixed) {
196
+ column.renderFixed = ''
197
+ } else {
198
+ if (!isMaxFixedColumn || column.renderFixed) {
199
+ column.renderFixed = colFixed
200
+ }
177
201
  }
178
202
  }
179
203
  }
180
204
 
181
- // const changePopupFixedOption = () => {
182
- // const isMaxFixedColumn = computeIsMaxFixedColumn.value
183
- // if (!isMaxFixedColumn) {
184
- // // $xeTable.setColumnFixed(column, column.fixed)
185
- // }
186
- // }
187
-
188
205
  const allOptionEvent = () => {
189
206
  const { customStore } = props
190
207
  const { customColumnList } = reactData
191
208
  const customOpts = computeCustomOpts.value
192
209
  const { checkMethod } = customOpts
193
210
  const isAll = !customStore.isAll
194
- XEUtils.eachTree(customColumnList, (column) => {
195
- if (!checkMethod || checkMethod({ column })) {
196
- column.renderVisible = isAll
197
- column.halfVisible = false
198
- }
199
- })
200
- customStore.isAll = isAll
211
+ if (customOpts.immediate) {
212
+ XEUtils.eachTree(customColumnList, (column) => {
213
+ if (!checkMethod || checkMethod({ column })) {
214
+ column.visible = isAll
215
+ column.renderVisible = isAll
216
+ column.halfVisible = false
217
+ }
218
+ })
219
+ customStore.isAll = isAll
220
+ $xeTable.handleCustom()
221
+ $xeTable.saveCustomStore('update:visible')
222
+ } else {
223
+ XEUtils.eachTree(customColumnList, (column) => {
224
+ if (!checkMethod || checkMethod({ column })) {
225
+ column.renderVisible = isAll
226
+ column.halfVisible = false
227
+ }
228
+ })
229
+ customStore.isAll = isAll
230
+ }
201
231
  $xeTable.checkCustomStatus()
202
232
  }
203
233
 
@@ -208,7 +238,7 @@ export default defineComponent({
208
238
  const colid = trEl.getAttribute('colid')
209
239
  const column = $xeTable.getColumnById(colid)
210
240
  trEl.draggable = true
211
- dragColumn.value = column
241
+ dragColumnRef.value = column
212
242
  addClass(trEl, 'active--drag-origin')
213
243
  }
214
244
 
@@ -218,7 +248,7 @@ export default defineComponent({
218
248
  const trEl = tdEl.parentNode as HTMLElement
219
249
  const dragHintEl = dragHintElemRef.value
220
250
  trEl.draggable = false
221
- dragColumn.value = null
251
+ dragColumnRef.value = null
222
252
  removeClass(trEl, 'active--drag-origin')
223
253
  if (dragHintEl) {
224
254
  dragHintEl.style.display = ''
@@ -234,6 +264,7 @@ export default defineComponent({
234
264
 
235
265
  const sortDragendEvent = (evnt: DragEvent) => {
236
266
  const { customColumnList } = reactData
267
+ const customOpts = computeCustomOpts.value
237
268
  const trEl = evnt.currentTarget as HTMLElement
238
269
  const dragHintEl = dragHintElemRef.value
239
270
  if (prevDropTrEl) {
@@ -261,7 +292,7 @@ export default defineComponent({
261
292
  prevDropTrEl.removeAttribute('drag-pos')
262
293
  removeClass(prevDropTrEl, 'active--drag-target')
263
294
  }
264
- dragColumn.value = null
295
+ dragColumnRef.value = null
265
296
  trEl.draggable = false
266
297
  trEl.removeAttribute('drag-pos')
267
298
  if (dragHintEl) {
@@ -269,6 +300,17 @@ export default defineComponent({
269
300
  }
270
301
  removeClass(trEl, 'active--drag-target')
271
302
  removeClass(trEl, 'active--drag-origin')
303
+
304
+ if (customOpts.immediate) {
305
+ XEUtils.eachTree(customColumnList, (column, index, items, path, parent) => {
306
+ if (!parent) {
307
+ const sortIndex = index + 1
308
+ column.renderSortNumber = sortIndex
309
+ }
310
+ })
311
+ $xeTable.handleCustom()
312
+ $xeTable.saveCustomStore('update:sort')
313
+ }
272
314
  }
273
315
 
274
316
  const sortDragoverEvent = (evnt: DragEvent) => {
@@ -327,6 +369,7 @@ export default defineComponent({
327
369
  const isColGroup = column.children && column.children.length
328
370
  const colTitle = formatText(column.getTitle(), 1)
329
371
  const isDisabled = checkMethod ? !checkMethod({ column }) : false
372
+ const isHidden = !isChecked
330
373
  colVNs.push(
331
374
  h('li', {
332
375
  key: column.id,
@@ -362,10 +405,16 @@ export default defineComponent({
362
405
  class: 'vxe-table-custom--sort-option'
363
406
  }, [
364
407
  h('span', {
365
- class: 'vxe-table-custom--sort-btn',
408
+ class: ['vxe-table-custom--sort-btn', {
409
+ 'is--disabled': isHidden
410
+ }],
366
411
  title: getI18n('vxe.custom.setting.sortHelpTip'),
367
- onMousedown: sortMousedownEvent,
368
- onMouseup: sortMouseupEvent
412
+ ...(isHidden
413
+ ? {}
414
+ : {
415
+ onMousedown: sortMousedownEvent,
416
+ onMouseup: sortMouseupEvent
417
+ })
369
418
  }, [
370
419
  h('i', {
371
420
  class: getIcon().TABLE_CUSTOM_SORT
@@ -373,34 +422,44 @@ export default defineComponent({
373
422
  ])
374
423
  ])
375
424
  : createCommentVNode(),
376
- h('div', {
377
- class: 'vxe-table-custom--checkbox-label',
378
- title: colTitle
379
- }, colTitle),
425
+ column.type === 'html'
426
+ ? h('div', {
427
+ key: '1',
428
+ class: 'vxe-table-custom--checkbox-label',
429
+ innerHTML: colTitle
430
+ })
431
+ : h('div', {
432
+ key: '0',
433
+ class: 'vxe-table-custom--checkbox-label'
434
+ }, colTitle),
380
435
  !parent && allowFixed
381
436
  ? h('div', {
382
437
  class: 'vxe-table-custom--fixed-option'
383
438
  }, [
384
- h('span', {
385
- class: ['vxe-table-custom--fixed-left-option', column.renderFixed === 'left' ? getIcon().TOOLBAR_TOOLS_FIXED_LEFT_ACTIVE : getIcon().TOOLBAR_TOOLS_FIXED_LEFT, {
386
- 'is--checked': column.renderFixed === 'left',
387
- 'is--disabled': isMaxFixedColumn && !column.renderFixed
388
- }],
389
- title: getI18n(column.renderFixed === 'left' ? 'vxe.toolbar.cancelFixed' : 'vxe.toolbar.fixedLeft'),
390
- onClick: () => {
391
- changeFixedOption(column, 'left')
392
- }
393
- }),
394
- h('span', {
395
- class: ['vxe-table-custom--fixed-right-option', column.renderFixed === 'right' ? getIcon().TOOLBAR_TOOLS_FIXED_RIGHT_ACTIVE : getIcon().TOOLBAR_TOOLS_FIXED_RIGHT, {
396
- 'is--checked': column.renderFixed === 'right',
397
- 'is--disabled': isMaxFixedColumn && !column.renderFixed
398
- }],
399
- title: getI18n(column.renderFixed === 'right' ? 'vxe.toolbar.cancelFixed' : 'vxe.toolbar.fixedRight'),
400
- onClick: () => {
401
- changeFixedOption(column, 'right')
402
- }
403
- })
439
+ VxeUIButtonComponent
440
+ ? h(VxeUIButtonComponent, {
441
+ mode: 'text',
442
+ icon: column.renderFixed === 'left' ? getIcon().TOOLBAR_TOOLS_FIXED_LEFT_ACTIVE : getIcon().TOOLBAR_TOOLS_FIXED_LEFT,
443
+ status: column.renderFixed === 'left' ? 'primary' : '',
444
+ disabled: isHidden || (isMaxFixedColumn && !column.renderFixed),
445
+ title: getI18n(column.renderFixed === 'left' ? 'vxe.toolbar.cancelFixed' : 'vxe.toolbar.fixedLeft'),
446
+ onClick: () => {
447
+ changeFixedOption(column, 'left')
448
+ }
449
+ })
450
+ : createCommentVNode(),
451
+ VxeUIButtonComponent
452
+ ? h(VxeUIButtonComponent, {
453
+ mode: 'text',
454
+ icon: column.renderFixed === 'right' ? getIcon().TOOLBAR_TOOLS_FIXED_RIGHT_ACTIVE : getIcon().TOOLBAR_TOOLS_FIXED_RIGHT,
455
+ status: column.renderFixed === 'right' ? 'primary' : '',
456
+ disabled: isHidden || (isMaxFixedColumn && !column.renderFixed),
457
+ title: getI18n(column.renderFixed === 'right' ? 'vxe.toolbar.cancelFixed' : 'vxe.toolbar.fixedRight'),
458
+ onClick: () => {
459
+ changeFixedOption(column, 'right')
460
+ }
461
+ })
462
+ : createCommentVNode()
404
463
  ])
405
464
  : createCommentVNode()
406
465
  ])
@@ -409,6 +468,7 @@ export default defineComponent({
409
468
  })
410
469
  const isAllChecked = customStore.isAll
411
470
  const isAllIndeterminate = customStore.isIndeterminate
471
+ const dragColumn = dragColumnRef.value
412
472
  return h('div', {
413
473
  ref: refElem,
414
474
  key: 'simple',
@@ -464,26 +524,44 @@ export default defineComponent({
464
524
  h('div', {
465
525
  ref: dragHintElemRef,
466
526
  class: 'vxe-table-custom-popup--drag-hint'
467
- }, getI18n('vxe.custom.cstmDragTarget', [dragColumn.value ? dragColumn.value.getTitle() : '']))
527
+ }, getI18n('vxe.custom.cstmDragTarget', [dragColumn && dragColumn.type !== 'html' ? dragColumn.getTitle() : '']))
468
528
  ]),
469
529
  customOpts.showFooter
470
530
  ? h('div', {
471
531
  class: 'vxe-table-custom--footer'
472
532
  }, [
473
- h('button', {
474
- class: 'btn--reset',
475
- onClick: resetCustomEvent
476
- }, customOpts.resetButtonText || getI18n('vxe.table.customRestore')),
533
+ VxeUIButtonComponent
534
+ ? h(VxeUIButtonComponent, {
535
+ mode: 'text',
536
+ content: customOpts.resetButtonText || getI18n('vxe.table.customRestore'),
537
+ onClick: resetCustomEvent
538
+ })
539
+ : createCommentVNode(),
540
+ customOpts.immediate
541
+ ? (VxeUIButtonComponent
542
+ ? h(VxeUIButtonComponent, {
543
+ mode: 'text',
544
+ content: customOpts.closeButtonText || getI18n('vxe.table.customClose'),
545
+ onClick: cancelCloseEvent
546
+ })
547
+ : createCommentVNode())
548
+ : (VxeUIButtonComponent
549
+ ? h(VxeUIButtonComponent, {
550
+ mode: 'text',
551
+ content: customOpts.cancelButtonText || getI18n('vxe.table.customCancel'),
552
+ onClick: cancelCustomEvent
553
+ })
554
+ : createCommentVNode()),
477
555
  customOpts.immediate
478
556
  ? createCommentVNode()
479
- : h('button', {
480
- class: 'btn--cancel',
481
- onClick: cancelCustomEvent
482
- }, customOpts.resetButtonText || getI18n('vxe.table.customCancel')),
483
- h('button', {
484
- class: 'btn--confirm',
485
- onClick: confirmCustomEvent
486
- }, customOpts.confirmButtonText || getI18n('vxe.table.customConfirm'))
557
+ : (VxeUIButtonComponent
558
+ ? h(VxeUIButtonComponent, {
559
+ mode: 'text',
560
+ status: 'primary',
561
+ content: customOpts.confirmButtonText || getI18n('vxe.table.customConfirm'),
562
+ onClick: confirmCustomEvent
563
+ })
564
+ : createCommentVNode())
487
565
  ])
488
566
  : null
489
567
  ]
@@ -510,6 +588,7 @@ export default defineComponent({
510
588
  const colTitle = formatText(column.getTitle(), 1)
511
589
  const isColGroup = column.children && column.children.length
512
590
  const isDisabled = checkMethod ? !checkMethod({ column }) : false
591
+ const isHidden = !isChecked
513
592
  trVNs.push(
514
593
  h('tr', {
515
594
  key: column.id,
@@ -550,10 +629,16 @@ export default defineComponent({
550
629
  }, [
551
630
  column.level === 1
552
631
  ? h('span', {
553
- class: 'vxe-table-custom-popup--column-sort-btn',
632
+ class: ['vxe-table-custom-popup--column-sort-btn', {
633
+ 'is--disabled': isHidden
634
+ }],
554
635
  title: getI18n('vxe.custom.setting.sortHelpTip'),
555
- onMousedown: sortMousedownEvent,
556
- onMouseup: sortMouseupEvent
636
+ ...(isHidden
637
+ ? {}
638
+ : {
639
+ onMousedown: sortMousedownEvent,
640
+ onMouseup: sortMouseupEvent
641
+ })
557
642
  }, [
558
643
  h('i', {
559
644
  class: getIcon().TABLE_CUSTOM_SORT
@@ -565,21 +650,29 @@ export default defineComponent({
565
650
  h('td', {
566
651
  class: 'vxe-table-custom-popup--column-item col--name'
567
652
  }, [
568
- h('div', {
569
- class: 'vxe-table-custom-popup--name',
570
- title: colTitle
571
- }, colTitle)
653
+ column.type === 'html'
654
+ ? h('div', {
655
+ key: '1',
656
+ class: 'vxe-table-custom-popup--name',
657
+ innerHTML: colTitle
658
+ })
659
+ : h('div', {
660
+ key: '0',
661
+ class: 'vxe-table-custom-popup--name',
662
+ title: colTitle
663
+ }, colTitle)
572
664
  ]),
573
665
  allowResizable
574
666
  ? h('td', {
575
667
  class: 'vxe-table-custom-popup--column-item col--resizable'
576
668
  }, [
577
- !isChecked || (column.children && column.children.length)
669
+ column.children && column.children.length
578
670
  ? h('span', '-')
579
671
  : (
580
672
  VxeUIInputComponent
581
673
  ? h(VxeUIInputComponent, {
582
674
  type: 'integer',
675
+ disabled: isHidden,
583
676
  modelValue: column.renderResizeWidth,
584
677
  'onUpdate:modelValue' (value: any) {
585
678
  column.renderResizeWidth = Math.max(0, Number(value))
@@ -601,17 +694,15 @@ export default defineComponent({
601
694
  modelValue: column.renderFixed || '',
602
695
  type: 'button',
603
696
  size: 'mini',
697
+ disabled: isHidden,
604
698
  options: [
605
- { label: getI18n('vxe.custom.setting.fixedLeft'), value: 'left', disabled: isMaxFixedColumn },
606
- { label: getI18n('vxe.custom.setting.fixedUnset'), value: '' },
607
- { label: getI18n('vxe.custom.setting.fixedRight'), value: 'right', disabled: isMaxFixedColumn }
699
+ { label: getI18n('vxe.custom.setting.fixedLeft'), value: 'left', disabled: isHidden || isMaxFixedColumn },
700
+ { label: getI18n('vxe.custom.setting.fixedUnset'), value: '', disabled: isHidden },
701
+ { label: getI18n('vxe.custom.setting.fixedRight'), value: 'right', disabled: isHidden || isMaxFixedColumn }
608
702
  ],
609
703
  'onUpdate:modelValue' (value: any) {
610
704
  column.renderFixed = value
611
705
  }
612
- // onChange () {
613
- // changePopupFixedOption(column)
614
- // }
615
706
  })
616
707
  : createCommentVNode()
617
708
  )
@@ -623,6 +714,7 @@ export default defineComponent({
623
714
  })
624
715
  const isAllChecked = customStore.isAll
625
716
  const isAllIndeterminate = customStore.isIndeterminate
717
+ const dragColumn = dragColumnRef.value
626
718
  const scopedSlots = {
627
719
  default: () => {
628
720
  return h('div', {
@@ -730,7 +822,7 @@ export default defineComponent({
730
822
  h('div', {
731
823
  ref: dragHintElemRef,
732
824
  class: 'vxe-table-custom-popup--drag-hint'
733
- }, getI18n('vxe.custom.cstmDragTarget', [dragColumn.value ? dragColumn.value.getTitle() : '']))
825
+ }, getI18n('vxe.custom.cstmDragTarget', [dragColumn ? dragColumn.getTitle() : '']))
734
826
  ])
735
827
  },
736
828
  footer: () => {
@@ -171,15 +171,17 @@ export default defineComponent({
171
171
  const isColGroup = column.children && column.children.length
172
172
  const isChecked = column.checked
173
173
  const indeterminate = column.halfChecked
174
+ const isHtml = column.type === 'html'
174
175
  cols.push(
175
176
  h('li', {
177
+ key: column.id,
176
178
  class: ['vxe-export--panel-column-option', `level--${column.level}`, {
177
179
  'is--group': isColGroup,
178
180
  'is--checked': isChecked,
179
181
  'is--indeterminate': indeterminate,
180
182
  'is--disabled': column.disabled
181
183
  }],
182
- title: colTitle,
184
+ title: isHtml ? '' : colTitle,
183
185
  onClick: () => {
184
186
  if (!column.disabled) {
185
187
  changeOption(column)
@@ -189,9 +191,16 @@ export default defineComponent({
189
191
  h('span', {
190
192
  class: ['vxe-checkbox--icon', indeterminate ? getIcon().TABLE_CHECKBOX_INDETERMINATE : (isChecked ? getIcon().TABLE_CHECKBOX_CHECKED : getIcon().TABLE_CHECKBOX_UNCHECKED)]
191
193
  }),
192
- h('span', {
193
- class: 'vxe-checkbox--label'
194
- }, colTitle)
194
+ isHtml
195
+ ? h('span', {
196
+ key: '1',
197
+ class: 'vxe-checkbox--label',
198
+ innerHTML: colTitle
199
+ })
200
+ : h('span', {
201
+ key: '0',
202
+ class: 'vxe-checkbox--label'
203
+ }, colTitle)
195
204
  ])
196
205
  )
197
206
  })
@@ -141,24 +141,9 @@
141
141
  flex-direction: row;
142
142
  flex-shrink: 0;
143
143
  border-top: 1px solid var(--vxe-ui-base-popup-border-color);
144
- text-align: right;
145
144
  button {
146
- background-color: transparent;
147
- width: 50%;
145
+ flex-grow: 1;
148
146
  height: 2.8em;
149
- border: 0;
150
- color: var(--vxe-ui-font-color);
151
- text-align: center;
152
- cursor: pointer;
153
- &:focus {
154
- outline: none;
155
- }
156
- &:hover {
157
- color: var(--vxe-ui-font-primary-lighten-color);
158
- }
159
- }
160
- .btn--confirm {
161
- color: var(--vxe-ui-font-primary-color);
162
147
  }
163
148
  }
164
149
 
@@ -180,9 +165,15 @@
180
165
  .vxe-table-custom--sort-btn {
181
166
  padding-left: 0.2em;
182
167
  padding-right: 0.4em;
183
- cursor: grabbing;
184
- &:hover {
185
- color: var(--vxe-ui-font-primary-color);
168
+ &:not(.is--disabled) {
169
+ cursor: grabbing;
170
+ &:hover {
171
+ color: var(--vxe-ui-font-primary-color);
172
+ }
173
+ }
174
+ &.is--disabled {
175
+ color: var(--vxe-ui-input-disabled-color);
176
+ cursor: not-allowed;
186
177
  }
187
178
  }
188
179
  .vxe-table-custom--checkbox-label {
@@ -201,22 +192,6 @@
201
192
  user-select: none;
202
193
  }
203
194
 
204
- .vxe-table-custom--fixed-left-option,
205
- .vxe-table-custom--fixed-right-option {
206
- line-height: 1.34em;
207
- font-size: 1.1em;
208
- padding: 0 0.2em;
209
- cursor: pointer;
210
- &.is--checked,
211
- &:hover {
212
- color: var(--vxe-ui-font-primary-color);
213
- }
214
- &.is--disabled {
215
- cursor: no-drop;
216
- color: var(--vxe-ui-input-disabled-color);
217
- }
218
- }
219
-
220
195
  .vxe-table-custom-popup--body {
221
196
  overflow: auto;
222
197
  height: 100%;
@@ -381,12 +356,18 @@
381
356
  .vxe-table-custom-popup--column-sort-btn {
382
357
  font-size: 1.2em;
383
358
  padding: 0.2em 0.5em;
384
- cursor: grab;
385
- &:hover {
386
- color: var(--vxe-ui-font-primary-color);
359
+ &:not(.is--disabled) {
360
+ cursor: grab;
361
+ &:hover {
362
+ color: var(--vxe-ui-font-primary-color);
363
+ }
364
+ &:active {
365
+ cursor: grabbing;
366
+ }
387
367
  }
388
- &:active {
389
- cursor: grabbing;
368
+ &.is--disabled {
369
+ color: var(--vxe-ui-input-disabled-color);
370
+ cursor: not-allowed;
390
371
  }
391
372
  }
392
373