vxe-table 4.7.41 → 4.7.43

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 (81) hide show
  1. package/es/locale/lang/en-US.js +2 -5
  2. package/es/locale/lang/es-ES.js +2 -5
  3. package/es/locale/lang/ja-JP.js +2 -5
  4. package/es/locale/lang/pt-BR.js +2 -5
  5. package/es/locale/lang/zh-CN.js +2 -5
  6. package/es/locale/lang/zh-TC.js +3 -6
  7. package/es/style.css +1 -1
  8. package/es/style.min.css +1 -1
  9. package/es/table/module/custom/panel.js +171 -145
  10. package/es/table/render/index.js +16 -2
  11. package/es/table/src/table.js +21 -20
  12. package/es/table/style.css +3 -0
  13. package/es/table/style.min.css +1 -1
  14. package/es/toolbar/src/toolbar.js +1 -1
  15. package/es/ui/index.js +11 -4
  16. package/es/ui/src/log.js +1 -1
  17. package/es/vxe-table/style.css +3 -0
  18. package/es/vxe-table/style.min.css +1 -1
  19. package/lib/index.umd.js +112 -59
  20. package/lib/index.umd.min.js +1 -1
  21. package/lib/locale/lang/en-US.js +2 -5
  22. package/lib/locale/lang/en-US.min.js +1 -1
  23. package/lib/locale/lang/en-US.umd.js +2 -5
  24. package/lib/locale/lang/es-ES.js +2 -5
  25. package/lib/locale/lang/es-ES.min.js +1 -1
  26. package/lib/locale/lang/es-ES.umd.js +2 -5
  27. package/lib/locale/lang/ja-JP.js +2 -5
  28. package/lib/locale/lang/ja-JP.min.js +1 -1
  29. package/lib/locale/lang/ja-JP.umd.js +2 -5
  30. package/lib/locale/lang/pt-BR.js +2 -5
  31. package/lib/locale/lang/pt-BR.min.js +1 -1
  32. package/lib/locale/lang/pt-BR.umd.js +2 -5
  33. package/lib/locale/lang/zh-CN.js +2 -5
  34. package/lib/locale/lang/zh-CN.min.js +1 -1
  35. package/lib/locale/lang/zh-CN.umd.js +2 -5
  36. package/lib/locale/lang/zh-HK.min.js +1 -1
  37. package/lib/locale/lang/zh-HK.umd.js +3 -6
  38. package/lib/locale/lang/zh-MO.min.js +1 -1
  39. package/lib/locale/lang/zh-MO.umd.js +3 -6
  40. package/lib/locale/lang/zh-TC.js +3 -6
  41. package/lib/locale/lang/zh-TC.min.js +1 -1
  42. package/lib/locale/lang/zh-TC.umd.js +3 -6
  43. package/lib/locale/lang/zh-TW.min.js +1 -1
  44. package/lib/locale/lang/zh-TW.umd.js +3 -6
  45. package/lib/style.css +1 -1
  46. package/lib/style.min.css +1 -1
  47. package/lib/table/module/custom/panel.js +51 -22
  48. package/lib/table/module/custom/panel.min.js +1 -1
  49. package/lib/table/render/index.js +21 -2
  50. package/lib/table/render/index.min.js +1 -1
  51. package/lib/table/src/table.js +21 -24
  52. package/lib/table/src/table.min.js +1 -1
  53. package/lib/table/style/style.css +3 -0
  54. package/lib/table/style/style.min.css +1 -1
  55. package/lib/toolbar/src/toolbar.js +3 -1
  56. package/lib/toolbar/src/toolbar.min.js +1 -1
  57. package/lib/ui/index.js +11 -4
  58. package/lib/ui/index.min.js +1 -1
  59. package/lib/ui/src/log.js +1 -1
  60. package/lib/ui/src/log.min.js +1 -1
  61. package/lib/vxe-table/style/style.css +3 -0
  62. package/lib/vxe-table/style/style.min.css +1 -1
  63. package/package.json +2 -2
  64. package/packages/locale/lang/en-US.ts +2 -5
  65. package/packages/locale/lang/es-ES.ts +2 -5
  66. package/packages/locale/lang/ja-JP.ts +2 -5
  67. package/packages/locale/lang/pt-BR.ts +2 -5
  68. package/packages/locale/lang/zh-CN.ts +2 -5
  69. package/packages/locale/lang/zh-TC.ts +3 -6
  70. package/packages/table/module/custom/panel.ts +172 -146
  71. package/packages/table/render/index.ts +36 -17
  72. package/packages/table/src/table.ts +21 -20
  73. package/packages/toolbar/src/toolbar.ts +1 -1
  74. package/packages/ui/index.ts +9 -2
  75. package/styles/components/table-module/custom.scss +4 -1
  76. /package/es/{iconfont.1719997006744.ttf → iconfont.1720061363684.ttf} +0 -0
  77. /package/es/{iconfont.1719997006744.woff → iconfont.1720061363684.woff} +0 -0
  78. /package/es/{iconfont.1719997006744.woff2 → iconfont.1720061363684.woff2} +0 -0
  79. /package/lib/{iconfont.1719997006744.ttf → iconfont.1720061363684.ttf} +0 -0
  80. /package/lib/{iconfont.1719997006744.woff → iconfont.1720061363684.woff} +0 -0
  81. /package/lib/{iconfont.1719997006744.woff2 → iconfont.1720061363684.woff2} +0 -0
@@ -5,7 +5,7 @@ import { addClass, removeClass } from '../../../ui/src/dom'
5
5
  import { errLog } from '../../../ui/src/log'
6
6
  import XEUtils from 'xe-utils'
7
7
 
8
- import type { VxeModalComponent, VxeButtonComponent, VxeRadioGroupComponent, VxeTooltipComponent, VxeInputComponent } from 'vxe-pc-ui'
8
+ import type { VxeModalComponent, VxeDrawerComponent, VxeButtonComponent, VxeRadioGroupComponent, VxeTooltipComponent, VxeInputComponent } from 'vxe-pc-ui'
9
9
  import type { VxeTableDefines, VxeTablePrivateMethods, VxeTableConstructor, VxeTableMethods, VxeColumnPropTypes } from '../../../../types'
10
10
 
11
11
  const { getI18n, getIcon } = VxeUI
@@ -20,6 +20,7 @@ export default defineComponent({
20
20
  },
21
21
  setup (props) {
22
22
  const VxeUIModalComponent = VxeUI.getComponent<VxeModalComponent>('VxeModal')
23
+ const VxeUIDrawerComponent = VxeUI.getComponent<VxeDrawerComponent>('VxeDrawer')
23
24
  const VxeUIButtonComponent = VxeUI.getComponent<VxeButtonComponent>('VxeButton')
24
25
  const VxeUIInputComponent = VxeUI.getComponent<VxeInputComponent>('VxeInput')
25
26
  const VxeUITooltipComponent = VxeUI.getComponent<VxeTooltipComponent>('VxeTooltip')
@@ -493,9 +494,12 @@ export default defineComponent({
493
494
  const { customStore } = props
494
495
  const { customColumnList } = reactData
495
496
  const customOpts = computeCustomOpts.value
496
- const { modalOptions, allowVisible, allowSort, allowFixed, allowResizable, checkMethod, visibleMethod } = customOpts
497
+ const { modalOptions, drawerOptions, allowVisible, allowSort, allowFixed, allowResizable, checkMethod, visibleMethod } = customOpts
497
498
  const columnOpts = computeColumnOpts.value
499
+ const { maxFixedSize } = columnOpts
500
+ const { mode } = customOpts
498
501
  const modalOpts = Object.assign({}, modalOptions)
502
+ const drawerOpts = Object.assign({}, drawerOptions)
499
503
  const isMaxFixedColumn = computeIsMaxFixedColumn.value
500
504
  const trVNs: VNode[] = []
501
505
  XEUtils.eachTree(customColumnList, (column, index, items, path, parent) => {
@@ -620,166 +624,188 @@ export default defineComponent({
620
624
  })
621
625
  const isAllChecked = customStore.isAll
622
626
  const isAllIndeterminate = customStore.isIndeterminate
623
- return VxeUIModalComponent
624
- ? h(VxeUIModalComponent, {
625
- key: 'popup',
626
- className: ['vxe-table-custom-popup-wrapper', 'vxe-table--ignore-clear', modalOpts.className || ''].join(' '),
627
- modelValue: customStore.visible,
628
- title: modalOpts.title || getI18n('vxe.custom.cstmTitle'),
629
- width: modalOpts.width || '50vw',
630
- minWidth: modalOpts.minWidth || 700,
631
- height: modalOpts.height || '50vh',
632
- minHeight: modalOpts.minHeight || 400,
633
- mask: true,
634
- lockView: true,
635
- showFooter: true,
636
- resize: true,
637
- escClosable: true,
638
- destroyOnClose: true,
639
- 'onUpdate:modelValue' (value: any) {
640
- customStore.visible = value
641
- }
642
- }, {
643
- default: () => {
644
- return h('div', {
645
- ref: bodyElemRef,
646
- class: 'vxe-table-custom-popup--body'
627
+ const scopedSlots = {
628
+ default: () => {
629
+ return h('div', {
630
+ ref: bodyElemRef,
631
+ class: 'vxe-table-custom-popup--body'
632
+ }, [
633
+ h('div', {
634
+ class: 'vxe-table-custom-popup--table-wrapper'
647
635
  }, [
648
- h('div', {
649
- class: 'vxe-table-custom-popup--table-wrapper'
650
- }, [
651
- h('table', {}, [
652
- h('colgroup', {}, [
636
+ h('table', {}, [
637
+ h('colgroup', {}, [
638
+ allowVisible
639
+ ? h('col', {
640
+ style: {
641
+ width: '80px'
642
+ }
643
+ })
644
+ : createCommentVNode(),
645
+ allowSort
646
+ ? h('col', {
647
+ style: {
648
+ width: '80px'
649
+ }
650
+ })
651
+ : createCommentVNode(),
652
+ h('col', {
653
+ style: {
654
+ minWidth: '120px'
655
+ }
656
+ }),
657
+ allowResizable
658
+ ? h('col', {
659
+ style: {
660
+ width: '140px'
661
+ }
662
+ })
663
+ : createCommentVNode(),
664
+ allowFixed
665
+ ? h('col', {
666
+ style: {
667
+ width: '200px'
668
+ }
669
+ })
670
+ : createCommentVNode()
671
+ ]),
672
+ h('thead', {}, [
673
+ h('tr', {}, [
653
674
  allowVisible
654
- ? h('col', {
655
- style: {
656
- width: '80px'
657
- }
658
- })
675
+ ? h('th', {}, [
676
+ h('div', {
677
+ class: ['vxe-table-custom--checkbox-option', {
678
+ 'is--checked': isAllChecked,
679
+ 'is--indeterminate': isAllIndeterminate
680
+ }],
681
+ title: getI18n('vxe.table.allTitle'),
682
+ onClick: allCustomEvent
683
+ }, [
684
+ h('span', {
685
+ class: ['vxe-checkbox--icon', isAllIndeterminate ? getIcon().TABLE_CHECKBOX_INDETERMINATE : (isAllChecked ? getIcon().TABLE_CHECKBOX_CHECKED : getIcon().TABLE_CHECKBOX_UNCHECKED)]
686
+ }),
687
+ h('span', {
688
+ class: 'vxe-checkbox--label'
689
+ }, getI18n('vxe.toolbar.customAll'))
690
+ ])
691
+ ])
659
692
  : createCommentVNode(),
660
693
  allowSort
661
- ? h('col', {
662
- style: {
663
- width: '80px'
664
- }
665
- })
694
+ ? h('th', {}, [
695
+ h('span', {
696
+ class: 'vxe-table-custom-popup--table-sort-help-title'
697
+ }, getI18n('vxe.custom.setting.colSort')),
698
+ VxeUITooltipComponent
699
+ ? h(VxeUITooltipComponent, {
700
+ enterable: true,
701
+ content: getI18n('vxe.custom.setting.sortHelpTip')
702
+ }, {
703
+ default: () => {
704
+ return h('i', {
705
+ class: 'vxe-table-custom-popup--table-sort-help-icon vxe-icon-question-circle-fill'
706
+ })
707
+ }
708
+ })
709
+ : createCommentVNode()
710
+ ])
666
711
  : createCommentVNode(),
667
- h('col', {
668
- style: {
669
- minWidth: '120px'
670
- }
671
- }),
712
+ h('th', {}, getI18n('vxe.custom.setting.colTitle')),
672
713
  allowResizable
673
- ? h('col', {
674
- style: {
675
- width: '140px'
676
- }
677
- })
714
+ ? h('th', {}, getI18n('vxe.custom.setting.colResizable'))
678
715
  : createCommentVNode(),
679
716
  allowFixed
680
- ? h('col', {
681
- style: {
682
- width: '200px'
683
- }
684
- })
717
+ ? h('th', {}, getI18n(`vxe.custom.setting.${maxFixedSize ? 'colFixedMax' : 'colFixed'}`, [maxFixedSize]))
685
718
  : createCommentVNode()
686
- ]),
687
- h('thead', {}, [
688
- h('tr', {}, [
689
- allowVisible
690
- ? h('th', {}, [
691
- h('div', {
692
- class: ['vxe-table-custom--checkbox-option', {
693
- 'is--checked': isAllChecked,
694
- 'is--indeterminate': isAllIndeterminate
695
- }],
696
- title: getI18n('vxe.table.allTitle'),
697
- onClick: allCustomEvent
698
- }, [
699
- h('span', {
700
- class: ['vxe-checkbox--icon', isAllIndeterminate ? getIcon().TABLE_CHECKBOX_INDETERMINATE : (isAllChecked ? getIcon().TABLE_CHECKBOX_CHECKED : getIcon().TABLE_CHECKBOX_UNCHECKED)]
701
- }),
702
- h('span', {
703
- class: 'vxe-checkbox--label'
704
- }, getI18n('vxe.toolbar.customAll'))
705
- ])
706
- ])
707
- : createCommentVNode(),
708
- allowSort
709
- ? h('th', {}, [
710
- h('span', {
711
- class: 'vxe-table-custom-popup--table-sort-help-title'
712
- }, getI18n('vxe.custom.setting.colSort')),
713
- VxeUITooltipComponent
714
- ? h(VxeUITooltipComponent, {
715
- enterable: true,
716
- content: getI18n('vxe.custom.setting.sortHelpTip')
717
- }, {
718
- default: () => {
719
- return h('i', {
720
- class: 'vxe-table-custom-popup--table-sort-help-icon vxe-icon-question-circle-fill'
721
- })
722
- }
723
- })
724
- : createCommentVNode()
725
- ])
726
- : createCommentVNode(),
727
- h('th', {}, getI18n('vxe.custom.setting.colTitle')),
728
- allowResizable
729
- ? h('th', {}, getI18n('vxe.custom.setting.colResizable'))
730
- : createCommentVNode(),
731
- allowFixed
732
- ? h('th', {}, getI18n('vxe.custom.setting.colFixed', [columnOpts.maxFixedSize || 0]))
733
- : createCommentVNode()
734
- ])
735
- ]),
736
- h(TransitionGroup, {
737
- class: 'vxe-table-custom--body',
738
- tag: 'tbody',
739
- name: 'vxe-table-custom--list'
740
- }, {
741
- default: () => trVNs
742
- })
743
- ])
744
- ]),
745
- h('div', {
746
- ref: dragHintElemRef,
747
- class: 'vxe-table-custom-popup--drag-hint'
748
- }, getI18n('vxe.custom.cstmDragTarget', [dragColumn.value ? dragColumn.value.getTitle() : '']))
749
- ])
750
- },
751
- footer: () => {
752
- return h('div', {
753
- class: 'vxe-table-custom-popup--footer'
754
- }, [
755
- VxeUIButtonComponent
756
- ? h(VxeUIButtonComponent, {
757
- content: customOpts.resetButtonText || getI18n('vxe.custom.cstmRestore'),
758
- onClick: resetCustomEvent
759
- })
760
- : createCommentVNode(),
761
- VxeUIButtonComponent
762
- ? h(VxeUIButtonComponent, {
763
- content: customOpts.resetButtonText || getI18n('vxe.custom.cstmCancel'),
764
- onClick: cancelCustomEvent
765
- })
766
- : createCommentVNode(),
767
- VxeUIButtonComponent
768
- ? h(VxeUIButtonComponent, {
769
- status: 'primary',
770
- content: customOpts.confirmButtonText || getI18n('vxe.custom.cstmConfirm'),
771
- onClick: confirmCustomEvent
719
+ ])
720
+ ]),
721
+ h(TransitionGroup, {
722
+ class: 'vxe-table-custom--body',
723
+ tag: 'tbody',
724
+ name: 'vxe-table-custom--list'
725
+ }, {
726
+ default: () => trVNs
772
727
  })
773
- : createCommentVNode()
774
- ])
728
+ ])
729
+ ]),
730
+ h('div', {
731
+ ref: dragHintElemRef,
732
+ class: 'vxe-table-custom-popup--drag-hint'
733
+ }, getI18n('vxe.custom.cstmDragTarget', [dragColumn.value ? dragColumn.value.getTitle() : '']))
734
+ ])
735
+ },
736
+ footer: () => {
737
+ return h('div', {
738
+ class: 'vxe-table-custom-popup--footer'
739
+ }, [
740
+ VxeUIButtonComponent
741
+ ? h(VxeUIButtonComponent, {
742
+ content: customOpts.resetButtonText || getI18n('vxe.custom.cstmRestore'),
743
+ onClick: resetCustomEvent
744
+ })
745
+ : createCommentVNode(),
746
+ VxeUIButtonComponent
747
+ ? h(VxeUIButtonComponent, {
748
+ content: customOpts.resetButtonText || getI18n('vxe.custom.cstmCancel'),
749
+ onClick: cancelCustomEvent
750
+ })
751
+ : createCommentVNode(),
752
+ VxeUIButtonComponent
753
+ ? h(VxeUIButtonComponent, {
754
+ status: 'primary',
755
+ content: customOpts.confirmButtonText || getI18n('vxe.custom.cstmConfirm'),
756
+ onClick: confirmCustomEvent
757
+ })
758
+ : createCommentVNode()
759
+ ])
760
+ }
761
+ }
762
+ if (mode === 'drawer') {
763
+ return VxeUIDrawerComponent
764
+ ? h(VxeUIDrawerComponent, {
765
+ key: 'drawer',
766
+ className: ['vxe-table-custom-drawer-wrapper', 'vxe-table--ignore-clear', drawerOpts.className || ''].join(' '),
767
+ modelValue: customStore.visible,
768
+ title: drawerOpts.title || getI18n('vxe.custom.cstmTitle'),
769
+ width: drawerOpts.width || Math.min(880, document.documentElement.clientWidth),
770
+ position: drawerOpts.position,
771
+ escClosable: !!drawerOpts.escClosable,
772
+ destroyOnClose: true,
773
+ showFooter: true,
774
+ 'onUpdate:modelValue' (value: any) {
775
+ customStore.visible = value
776
+ }
777
+ }, scopedSlots)
778
+ : createCommentVNode()
779
+ }
780
+ return VxeUIModalComponent
781
+ ? h(VxeUIModalComponent, {
782
+ key: 'modal',
783
+ className: ['vxe-table-custom-modal-wrapper', 'vxe-table--ignore-clear', modalOpts.className || ''].join(' '),
784
+ modelValue: customStore.visible,
785
+ title: modalOpts.title || getI18n('vxe.custom.cstmTitle'),
786
+ width: modalOpts.width || Math.min(880, document.documentElement.clientWidth),
787
+ minWidth: modalOpts.minWidth || 700,
788
+ height: modalOpts.height || Math.min(680, document.documentElement.clientHeight),
789
+ minHeight: modalOpts.minHeight || 400,
790
+ showZoom: modalOpts.showZoom,
791
+ showMaximize: modalOpts.showMaximize,
792
+ showMinimize: modalOpts.showMinimize,
793
+ mask: modalOpts.mask,
794
+ lockView: modalOpts.lockView,
795
+ resize: modalOpts.resize,
796
+ escClosable: !!modalOpts.escClosable,
797
+ destroyOnClose: true,
798
+ showFooter: true,
799
+ 'onUpdate:modelValue' (value: any) {
800
+ customStore.visible = value
775
801
  }
776
- })
802
+ }, scopedSlots)
777
803
  : createCommentVNode()
778
804
  }
779
805
 
780
806
  const renderVN = () => {
781
807
  const customOpts = computeCustomOpts.value
782
- if (customOpts.mode === 'popup') {
808
+ if (['modal', 'drawer', 'popup'].includes(`${customOpts.mode}`)) {
783
809
  return renderPopupPanel()
784
810
  }
785
811
  return renderSimplePanel()
@@ -289,7 +289,7 @@ function nativeEditRender (renderOpts: any, params: any) {
289
289
  ]
290
290
  }
291
291
 
292
- function defaultCellRender (renderOpts: any, params: any) {
292
+ function buttonCellRender (renderOpts: any, params: any) {
293
293
  return [
294
294
  h(getDefaultComponent(renderOpts), {
295
295
  ...getCellEditProps(renderOpts, params, null),
@@ -298,7 +298,7 @@ function defaultCellRender (renderOpts: any, params: any) {
298
298
  ]
299
299
  }
300
300
 
301
- function defaultEditRender (renderOpts: VxeGlobalRendererHandles.RenderEditOptions, params: VxeGlobalRendererHandles.RenderEditParams) {
301
+ function defaultEditRender (renderOpts: VxeGlobalRendererHandles.RenderTableEditOptions, params: VxeGlobalRendererHandles.RenderEditParams) {
302
302
  const { row, column } = params
303
303
  const cellValue = getCellValue(row, column)
304
304
  return [
@@ -309,11 +309,24 @@ function defaultEditRender (renderOpts: VxeGlobalRendererHandles.RenderEditOptio
309
309
  ]
310
310
  }
311
311
 
312
+ function radioAndCheckboxEditRender (renderOpts: VxeGlobalRendererHandles.RenderTableEditOptions, params: VxeGlobalRendererHandles.RenderEditParams) {
313
+ const { options } = renderOpts
314
+ const { row, column } = params
315
+ const cellValue = getCellValue(row, column)
316
+ return [
317
+ h(getDefaultComponent(renderOpts), {
318
+ options,
319
+ ...getCellEditProps(renderOpts, params, cellValue),
320
+ ...getEditOns(renderOpts, params)
321
+ })
322
+ ]
323
+ }
324
+
312
325
  /**
313
326
  * 已废弃
314
327
  * @deprecated
315
328
  */
316
- function oldEditRender (renderOpts: VxeGlobalRendererHandles.RenderEditOptions, params: VxeGlobalRendererHandles.RenderEditParams) {
329
+ function oldEditRender (renderOpts: VxeGlobalRendererHandles.RenderTableEditOptions, params: VxeGlobalRendererHandles.RenderEditParams) {
317
330
  const { row, column } = params
318
331
  const cellValue = getCellValue(row, column)
319
332
  return [
@@ -520,12 +533,12 @@ renderer.mixin({
520
533
  select: {
521
534
  renderEdit: nativeSelectEditRender,
522
535
  renderDefault: nativeSelectEditRender,
523
- renderCell (renderOpts: any, params: any) {
536
+ renderCell (renderOpts, params) {
524
537
  return getCellLabelVNs(renderOpts, params, getSelectCellValue(renderOpts, params))
525
538
  },
526
- renderFilter (renderOpts: any, params: any) {
539
+ renderFilter (renderOpts, params) {
527
540
  const { column } = params
528
- return column.filters.map((option: any, oIndex: any) => {
541
+ return column.filters.map((option, oIndex) => {
529
542
  return h('select', {
530
543
  key: oIndex,
531
544
  class: 'vxe-default-select',
@@ -541,7 +554,7 @@ renderer.mixin({
541
554
  VxeInput: {
542
555
  autofocus: '.vxe-input--inner',
543
556
  renderEdit: defaultEditRender,
544
- renderCell (renderOpts: any, params: any) {
557
+ renderCell (renderOpts, params) {
545
558
  const { props = {} } = renderOpts
546
559
  const { row, column } = params
547
560
  const digits = props.digits || getConfig().input?.digits || 2
@@ -569,7 +582,7 @@ renderer.mixin({
569
582
  VxeNumberInput: {
570
583
  autofocus: '.vxe-number-input--inner',
571
584
  renderEdit: defaultEditRender,
572
- renderCell (renderOpts: any, params: any) {
585
+ renderCell (renderOpts, params) {
573
586
  const { props = {} } = renderOpts
574
587
  const { row, column } = params
575
588
  const digits = props.digits || getConfig().numberInput?.digits || 2
@@ -590,7 +603,7 @@ renderer.mixin({
590
603
  VxeDatePicker: {
591
604
  autofocus: '.vxe-date-picker--inner',
592
605
  renderEdit: defaultEditRender,
593
- renderCell (renderOpts: any, params: any) {
606
+ renderCell (renderOpts, params) {
594
607
  const { props = {} } = renderOpts
595
608
  const { row, column } = params
596
609
  let cellValue = XEUtils.get(row, column.property)
@@ -615,7 +628,7 @@ renderer.mixin({
615
628
  autofocus: '.vxe-textarea--inner'
616
629
  },
617
630
  VxeButton: {
618
- renderDefault: defaultCellRender
631
+ renderDefault: buttonCellRender
619
632
  },
620
633
  VxeButtonGroup: {
621
634
  renderDefault (renderOpts, params) {
@@ -633,13 +646,13 @@ renderer.mixin({
633
646
  autofocus: '.vxe-input--inner',
634
647
  renderEdit: defaultSelectEditRender,
635
648
  renderDefault: defaultSelectEditRender,
636
- renderCell (renderOpts: any, params: any) {
649
+ renderCell (renderOpts, params) {
637
650
  return getCellLabelVNs(renderOpts, params, getSelectCellValue(renderOpts, params))
638
651
  },
639
- renderFilter (renderOpts: any, params: any) {
652
+ renderFilter (renderOpts, params) {
640
653
  const { column } = params
641
654
  const { options, optionProps, optionGroups, optionGroupProps } = renderOpts
642
- return column.filters.map((option: any, oIndex: any) => {
655
+ return column.filters.map((option, oIndex) => {
643
656
  const optionValue = option.data
644
657
  return h(getDefaultComponent(renderOpts), {
645
658
  key: oIndex,
@@ -651,6 +664,12 @@ renderer.mixin({
651
664
  defaultFilterMethod: handleFilterMethod,
652
665
  exportMethod: handleExportSelectMethod
653
666
  },
667
+ VxeRadioGroup: {
668
+ renderDefault: radioAndCheckboxEditRender
669
+ },
670
+ VxeCheckboxGroup: {
671
+ renderDefault: radioAndCheckboxEditRender
672
+ },
654
673
  VxeSwitch: {
655
674
  autofocus: '.vxe-switch--button',
656
675
  renderEdit: defaultEditRender,
@@ -664,7 +683,7 @@ renderer.mixin({
664
683
  $input: {
665
684
  autofocus: '.vxe-input--inner',
666
685
  renderEdit: oldEditRender,
667
- renderCell (renderOpts: any, params: any) {
686
+ renderCell (renderOpts, params) {
668
687
  const { props = {} } = renderOpts
669
688
  const { row, column } = params
670
689
  const digits = props.digits || getConfig().input?.digits || 2
@@ -701,13 +720,13 @@ renderer.mixin({
701
720
  autofocus: '.vxe-input--inner',
702
721
  renderEdit: oldSelectEditRender,
703
722
  renderDefault: oldSelectEditRender,
704
- renderCell (renderOpts: any, params: any) {
723
+ renderCell (renderOpts, params) {
705
724
  return getCellLabelVNs(renderOpts, params, getSelectCellValue(renderOpts, params))
706
725
  },
707
- renderFilter (renderOpts: any, params: any) {
726
+ renderFilter (renderOpts, params) {
708
727
  const { column } = params
709
728
  const { options, optionProps, optionGroups, optionGroupProps } = renderOpts
710
- return column.filters.map((option: any, oIndex: any) => {
729
+ return column.filters.map((option, oIndex) => {
711
730
  const optionValue = option.data
712
731
  return h(getOldComponent(renderOpts), {
713
732
  key: oIndex,
@@ -541,7 +541,7 @@ export default defineComponent({
541
541
  let fixedSize = 0
542
542
  // 只判断第一层
543
543
  collectColumn.forEach((column) => {
544
- if (column.fixed) {
544
+ if (column.renderFixed) {
545
545
  fixedSize++
546
546
  }
547
547
  })
@@ -898,27 +898,29 @@ export default defineComponent({
898
898
  }
899
899
 
900
900
  const handleCustomRestore = (storeData: VxeTableDefines.CustomStoreData) => {
901
- const { tableFullColumn } = internalData
902
901
  let { collectColumn } = internalData
903
902
  const { resizableData, sortData, visibleData, fixedData } = storeData
904
903
  let hasCustomSort = false
905
904
  // 处理还原
906
905
  if (resizableData || sortData || visibleData || fixedData) {
907
- tableFullColumn.forEach(column => {
906
+ XEUtils.eachTree(collectColumn, (column, index, items, path, parent) => {
908
907
  const colKey = column.getKey()
908
+ // 支持一级
909
+ if (!parent) {
910
+ if (fixedData && fixedData[colKey]) {
911
+ column.fixed = fixedData[colKey]
912
+ }
913
+ if (sortData && XEUtils.isNumber(sortData[colKey])) {
914
+ hasCustomSort = true
915
+ column.renderSortNumber = sortData[colKey]
916
+ }
917
+ }
909
918
  if (resizableData && XEUtils.isNumber(resizableData[colKey])) {
910
919
  column.resizeWidth = resizableData[colKey]
911
920
  }
912
921
  if (visibleData && XEUtils.isBoolean(visibleData[colKey])) {
913
922
  column.visible = visibleData[colKey]
914
923
  }
915
- if (fixedData && fixedData[colKey]) {
916
- column.fixed = fixedData[colKey]
917
- }
918
- if (sortData && XEUtils.isNumber(sortData[colKey])) {
919
- hasCustomSort = true
920
- column.renderSortNumber = sortData[colKey]
921
- }
922
924
  })
923
925
  // 如果自定义了顺序
924
926
  if (hasCustomSort) {
@@ -3318,14 +3320,13 @@ export default defineComponent({
3318
3320
  const targetColumn = getRootColumn($xeTable, column as any)
3319
3321
  const isMaxFixedColumn = computeIsMaxFixedColumn.value
3320
3322
  const columnOpts = computeColumnOpts.value
3321
- const { maxFixedSize } = columnOpts
3322
3323
  if (targetColumn && targetColumn.fixed !== fixed) {
3323
3324
  // 是否超过最大固定列数量
3324
3325
  if (!targetColumn.fixed && isMaxFixedColumn) {
3325
3326
  if (VxeUI.modal) {
3326
3327
  VxeUI.modal.message({
3327
3328
  status: 'error',
3328
- content: getI18n('vxe.table.maxFixedCol', [maxFixedSize])
3329
+ content: getI18n('vxe.table.maxFixedCol', [columnOpts.maxFixedSize])
3329
3330
  })
3330
3331
  }
3331
3332
  return nextTick()
@@ -4595,7 +4596,7 @@ export default defineComponent({
4595
4596
  let hasFixedt = 0
4596
4597
  let hasVisible = 0
4597
4598
  XEUtils.eachTree(collectColumn, (column, index, items, path, parent) => {
4598
- // 排序只支持一级
4599
+ // 只支持一级
4599
4600
  if (!parent) {
4600
4601
  collectColumn.forEach((column) => {
4601
4602
  const colKey = column.getKey()
@@ -4604,6 +4605,13 @@ export default defineComponent({
4604
4605
  sortData[colKey] = column.renderSortNumber
4605
4606
  }
4606
4607
  })
4608
+ if (column.fixed && column.fixed !== column.defaultFixed) {
4609
+ const colKey = column.getKey()
4610
+ if (colKey) {
4611
+ hasFixedt = 1
4612
+ fixedData[colKey] = column.fixed
4613
+ }
4614
+ }
4607
4615
  }
4608
4616
  if (column.resizeWidth) {
4609
4617
  const colKey = column.getKey()
@@ -4612,13 +4620,6 @@ export default defineComponent({
4612
4620
  resizableData[colKey] = column.renderWidth
4613
4621
  }
4614
4622
  }
4615
- if (column.fixed && column.fixed !== column.defaultFixed) {
4616
- const colKey = column.getKey()
4617
- if (colKey) {
4618
- hasFixedt = 1
4619
- fixedData[colKey] = column.fixed
4620
- }
4621
- }
4622
4623
  if (!checkMethod || checkMethod({ column })) {
4623
4624
  if (!column.visible && column.defaultVisible) {
4624
4625
  const colKey = column.getKey()
@@ -97,7 +97,7 @@ export default defineComponent({
97
97
  return computeCustomOpts.value
98
98
  }
99
99
  }
100
- return {}
100
+ return { trigger: '' }
101
101
  })
102
102
 
103
103
  const computeTrigger = computed(() => {
@@ -68,9 +68,16 @@ VxeUI.setConfig({
68
68
  allowFixed: true,
69
69
  allowSort: true,
70
70
  showFooter: true,
71
- placement: 'top-right'
71
+ placement: 'top-right',
72
72
  // storage: false,
73
- // checkMethod () {}
73
+ // checkMethod () {},
74
+ modalOptions: {
75
+ showMaximize: true,
76
+ mask: true,
77
+ lockView: true,
78
+ resize: true,
79
+ escClosable: true
80
+ }
74
81
  },
75
82
  sortConfig: {
76
83
  // remote: false,
@@ -154,9 +154,12 @@
154
154
  outline: none;
155
155
  }
156
156
  &:hover {
157
- color: var(--vxe-ui-font-primary-color);
157
+ color: var(--vxe-ui-font-primary-lighten-color);
158
158
  }
159
159
  }
160
+ .btn--confirm {
161
+ color: var(--vxe-ui-font-primary-color);
162
+ }
160
163
  }
161
164
 
162
165
  .vxe-table-custom--checkbox-option {