vxe-pc-ui 3.14.17 → 3.14.18

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 (167) hide show
  1. package/es/language/ar-EG.js +4 -2
  2. package/es/language/de-DE.js +4 -2
  3. package/es/language/en-US.js +4 -2
  4. package/es/language/es-ES.js +4 -2
  5. package/es/language/fr-FR.js +4 -2
  6. package/es/language/hu-HU.js +4 -2
  7. package/es/language/hy-AM.js +4 -2
  8. package/es/language/id-ID.js +4 -2
  9. package/es/language/it-IT.js +4 -2
  10. package/es/language/ja-JP.js +4 -2
  11. package/es/language/ko-KR.js +4 -2
  12. package/es/language/ms-MY.js +4 -2
  13. package/es/language/nb-NO.js +4 -2
  14. package/es/language/pt-BR.js +4 -2
  15. package/es/language/ru-RU.js +4 -2
  16. package/es/language/th-TH.js +4 -2
  17. package/es/language/ug-CN.js +4 -2
  18. package/es/language/uk-UA.js +4 -2
  19. package/es/language/uz-UZ.js +4 -2
  20. package/es/language/vi-VN.js +4 -2
  21. package/es/language/zh-CHT.js +4 -2
  22. package/es/language/zh-CN.js +4 -2
  23. package/es/select/src/select.js +192 -48
  24. package/es/select/style.css +120 -12
  25. package/es/select/style.min.css +1 -1
  26. package/es/style.css +1 -1
  27. package/es/style.min.css +1 -1
  28. package/es/tree-select/src/tree-select.js +63 -20
  29. package/es/tree-select/style.css +5 -0
  30. package/es/tree-select/style.min.css +1 -1
  31. package/es/ui/index.js +10 -2
  32. package/es/ui/src/log.js +1 -1
  33. package/es/vxe-select/style.css +120 -12
  34. package/es/vxe-select/style.min.css +1 -1
  35. package/es/vxe-tree-select/style.css +5 -0
  36. package/es/vxe-tree-select/style.min.css +1 -1
  37. package/lib/index.umd.js +278 -69
  38. package/lib/index.umd.min.js +1 -1
  39. package/lib/language/ar-EG.js +4 -2
  40. package/lib/language/ar-EG.min.js +1 -1
  41. package/lib/language/ar-EG.umd.js +4 -2
  42. package/lib/language/de-DE.js +4 -2
  43. package/lib/language/de-DE.min.js +1 -1
  44. package/lib/language/de-DE.umd.js +4 -2
  45. package/lib/language/en-US.js +4 -2
  46. package/lib/language/en-US.min.js +1 -1
  47. package/lib/language/en-US.umd.js +4 -2
  48. package/lib/language/es-ES.js +4 -2
  49. package/lib/language/es-ES.min.js +1 -1
  50. package/lib/language/es-ES.umd.js +4 -2
  51. package/lib/language/fr-FR.js +4 -2
  52. package/lib/language/fr-FR.min.js +1 -1
  53. package/lib/language/fr-FR.umd.js +4 -2
  54. package/lib/language/hu-HU.js +4 -2
  55. package/lib/language/hu-HU.min.js +1 -1
  56. package/lib/language/hu-HU.umd.js +4 -2
  57. package/lib/language/hy-AM.js +4 -2
  58. package/lib/language/hy-AM.min.js +1 -1
  59. package/lib/language/hy-AM.umd.js +4 -2
  60. package/lib/language/id-ID.js +4 -2
  61. package/lib/language/id-ID.min.js +1 -1
  62. package/lib/language/id-ID.umd.js +4 -2
  63. package/lib/language/it-IT.js +4 -2
  64. package/lib/language/it-IT.min.js +1 -1
  65. package/lib/language/it-IT.umd.js +4 -2
  66. package/lib/language/ja-JP.js +4 -2
  67. package/lib/language/ja-JP.min.js +1 -1
  68. package/lib/language/ja-JP.umd.js +4 -2
  69. package/lib/language/ko-KR.js +4 -2
  70. package/lib/language/ko-KR.min.js +1 -1
  71. package/lib/language/ko-KR.umd.js +4 -2
  72. package/lib/language/ms-MY.js +4 -2
  73. package/lib/language/ms-MY.min.js +1 -1
  74. package/lib/language/ms-MY.umd.js +4 -2
  75. package/lib/language/nb-NO.js +4 -2
  76. package/lib/language/nb-NO.min.js +1 -1
  77. package/lib/language/nb-NO.umd.js +4 -2
  78. package/lib/language/pt-BR.js +4 -2
  79. package/lib/language/pt-BR.min.js +1 -1
  80. package/lib/language/pt-BR.umd.js +4 -2
  81. package/lib/language/ru-RU.js +4 -2
  82. package/lib/language/ru-RU.min.js +1 -1
  83. package/lib/language/ru-RU.umd.js +4 -2
  84. package/lib/language/th-TH.js +4 -2
  85. package/lib/language/th-TH.min.js +1 -1
  86. package/lib/language/th-TH.umd.js +4 -2
  87. package/lib/language/ug-CN.js +4 -2
  88. package/lib/language/ug-CN.min.js +1 -1
  89. package/lib/language/ug-CN.umd.js +4 -2
  90. package/lib/language/uk-UA.js +4 -2
  91. package/lib/language/uk-UA.min.js +1 -1
  92. package/lib/language/uk-UA.umd.js +4 -2
  93. package/lib/language/uz-UZ.js +4 -2
  94. package/lib/language/uz-UZ.min.js +1 -1
  95. package/lib/language/uz-UZ.umd.js +4 -2
  96. package/lib/language/vi-VN.js +4 -2
  97. package/lib/language/vi-VN.min.js +1 -1
  98. package/lib/language/vi-VN.umd.js +4 -2
  99. package/lib/language/zh-CHT.js +4 -2
  100. package/lib/language/zh-CHT.min.js +1 -1
  101. package/lib/language/zh-CHT.umd.js +4 -2
  102. package/lib/language/zh-CN.js +4 -2
  103. package/lib/language/zh-CN.min.js +1 -1
  104. package/lib/language/zh-CN.umd.js +4 -2
  105. package/lib/select/src/select.js +192 -44
  106. package/lib/select/src/select.min.js +1 -1
  107. package/lib/select/style/style.css +120 -12
  108. package/lib/select/style/style.min.css +1 -1
  109. package/lib/style.css +1 -1
  110. package/lib/style.min.css +1 -1
  111. package/lib/tree-select/src/tree-select.js +71 -20
  112. package/lib/tree-select/src/tree-select.min.js +1 -1
  113. package/lib/tree-select/style/style.css +5 -0
  114. package/lib/tree-select/style/style.min.css +1 -1
  115. package/lib/ui/index.js +10 -2
  116. package/lib/ui/index.min.js +1 -1
  117. package/lib/ui/src/log.js +1 -1
  118. package/lib/ui/src/log.min.js +1 -1
  119. package/lib/vxe-select/style/style.css +120 -12
  120. package/lib/vxe-select/style/style.min.css +1 -1
  121. package/lib/vxe-tree-select/style/style.css +5 -0
  122. package/lib/vxe-tree-select/style/style.min.css +1 -1
  123. package/package.json +1 -1
  124. package/packages/language/ar-EG.ts +4 -2
  125. package/packages/language/de-DE.ts +4 -2
  126. package/packages/language/en-US.ts +4 -2
  127. package/packages/language/es-ES.ts +4 -2
  128. package/packages/language/fr-FR.ts +4 -2
  129. package/packages/language/hu-HU.ts +4 -2
  130. package/packages/language/hy-AM.ts +4 -2
  131. package/packages/language/id-ID.ts +4 -2
  132. package/packages/language/it-IT.ts +4 -2
  133. package/packages/language/ja-JP.ts +4 -2
  134. package/packages/language/ko-KR.ts +4 -2
  135. package/packages/language/ms-MY.ts +4 -2
  136. package/packages/language/nb-NO.ts +4 -2
  137. package/packages/language/pt-BR.ts +4 -2
  138. package/packages/language/ru-RU.ts +4 -2
  139. package/packages/language/th-TH.ts +4 -2
  140. package/packages/language/ug-CN.ts +4 -2
  141. package/packages/language/uk-UA.ts +4 -2
  142. package/packages/language/uz-UZ.ts +4 -2
  143. package/packages/language/vi-VN.ts +4 -2
  144. package/packages/language/zh-CHT.ts +4 -2
  145. package/packages/language/zh-CN.ts +4 -2
  146. package/packages/select/src/select.ts +210 -49
  147. package/packages/tree-select/src/tree-select.ts +65 -21
  148. package/packages/ui/index.ts +9 -1
  149. package/styles/components/select.scss +39 -12
  150. package/styles/components/tree-select.scss +4 -0
  151. package/styles/theme/dark.scss +3 -0
  152. package/styles/theme/light.scss +3 -0
  153. package/styles/variable.scss +3 -0
  154. package/types/components/select.d.ts +20 -0
  155. package/types/components/tree-select.d.ts +22 -1
  156. /package/es/icon/{iconfont.1779331536287.ttf → iconfont.1779433512609.ttf} +0 -0
  157. /package/es/icon/{iconfont.1779331536287.woff → iconfont.1779433512609.woff} +0 -0
  158. /package/es/icon/{iconfont.1779331536287.woff2 → iconfont.1779433512609.woff2} +0 -0
  159. /package/es/{iconfont.1779331536287.ttf → iconfont.1779433512609.ttf} +0 -0
  160. /package/es/{iconfont.1779331536287.woff → iconfont.1779433512609.woff} +0 -0
  161. /package/es/{iconfont.1779331536287.woff2 → iconfont.1779433512609.woff2} +0 -0
  162. /package/lib/icon/style/{iconfont.1779331536287.ttf → iconfont.1779433512609.ttf} +0 -0
  163. /package/lib/icon/style/{iconfont.1779331536287.woff → iconfont.1779433512609.woff} +0 -0
  164. /package/lib/icon/style/{iconfont.1779331536287.woff2 → iconfont.1779433512609.woff2} +0 -0
  165. /package/lib/{iconfont.1779331536287.ttf → iconfont.1779433512609.ttf} +0 -0
  166. /package/lib/{iconfont.1779331536287.woff → iconfont.1779433512609.woff} +0 -0
  167. /package/lib/{iconfont.1779331536287.woff2 → iconfont.1779433512609.woff2} +0 -0
@@ -5,13 +5,13 @@ import { getConfig, getI18n, getIcon, globalEvents, createEvent, globalMixins, r
5
5
  import { getEventTargetNode, updatePanelPlacement, toCssUnit } from '../../ui/src/dom'
6
6
  import { getLastZIndex, nextZIndex } from '../../ui/src/utils'
7
7
  import { deNodeValue } from '../../tree/src/util'
8
- import { errLog } from '../../ui/src/log'
8
+ import { warnLog, errLog } from '../../ui/src/log'
9
9
  import VxeInputComponent from '../../input'
10
10
  import VxeButtonComponent from '../../button'
11
11
  import VxeTreeComponent from '../../tree'
12
12
  import { getSlotVNs } from '../../ui/src/vn'
13
13
 
14
- import type { TreeSelectReactData, VxeTreeSelectEmits, TreeSelectInternalData, VxeComponentSizeType, VxeButtonDefines, VxeTreeDefines, ValueOf, VxeComponentStyleType, VxeTreeSelectPropTypes, VxeFormDefines, VxeDrawerConstructor, VxeDrawerMethods, VxeFormConstructor, VxeFormPrivateMethods, VxeModalConstructor, VxeModalMethods, VxeInputConstructor, VxeTreeConstructor } from '../../../types'
14
+ import type { TreeSelectReactData, VxeTreeSelectEmits, TreeSelectInternalData, VxeComponentSizeType, VxeButtonDefines, VxeInputDefines, VxeTreeDefines, ValueOf, VxeComponentStyleType, VxeTreeSelectPropTypes, VxeFormDefines, VxeDrawerConstructor, VxeDrawerMethods, VxeFormConstructor, VxeFormPrivateMethods, VxeModalConstructor, VxeModalMethods, VxeInputConstructor, VxeTreeConstructor } from '../../../types'
15
15
  import type { VxeTableConstructor, VxeTablePrivateMethods } from '../../../types/components/table'
16
16
 
17
17
  function getOptUniqueId () {
@@ -95,10 +95,26 @@ export default /* define-vxe-component start */ defineVxeComponent({
95
95
  treeConfig: Object as PropType<VxeTreeSelectPropTypes.TreeConfig>,
96
96
  menuConfig: Object as PropType<VxeTreeSelectPropTypes.MenuConfig>,
97
97
  virtualYConfig: Object as PropType<VxeTreeSelectPropTypes.VirtualYConfig>,
98
+ /**
99
+ * 已废弃,被 checked-closable, clear-closable 替换
100
+ * @deprecated
101
+ */
98
102
  autoClose: {
99
103
  type: Boolean as PropType<VxeTreeSelectPropTypes.AutoClose>,
100
104
  default: () => getConfig().treeSelect.autoClose
101
105
  },
106
+ checkedClosable: {
107
+ type: Boolean as PropType<VxeTreeSelectPropTypes.CheckedClosable>,
108
+ default: () => getConfig().treeSelect.checkedClosable
109
+ },
110
+ clearClosable: {
111
+ type: Boolean as PropType<VxeTreeSelectPropTypes.ClearClosable>,
112
+ default: () => getConfig().treeSelect.clearClosable
113
+ },
114
+ showCloseButton: {
115
+ type: Boolean as PropType<VxeTreeSelectPropTypes.ShowCloseButton>,
116
+ default: () => getConfig().treeSelect.showCloseButton
117
+ },
102
118
  showTotalButoon: {
103
119
  type: Boolean as PropType<VxeTreeSelectPropTypes.ShowTotalButoon>,
104
120
  default: () => getConfig().treeSelect.showTotalButoon
@@ -517,9 +533,10 @@ export default /* define-vxe-component start */ defineVxeComponent({
517
533
  }, 10)
518
534
  $xeTreeSelect.updateZindex()
519
535
  $xeTreeSelect.updatePlacement()
536
+ $xeTreeSelect.dispatchEvent('visible-change', { visible: true }, null)
520
537
  }
521
538
  },
522
- hideOptionPanel () {
539
+ hideOptionPanel (evnt?: Event) {
523
540
  const $xeTreeSelect = this
524
541
  const reactData = $xeTreeSelect.reactData
525
542
  const internalData = $xeTreeSelect.internalData
@@ -528,6 +545,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
528
545
  internalData.hpTimeout = setTimeout(() => {
529
546
  reactData.isAniVisible = false
530
547
  }, 350)
548
+ $xeTreeSelect.dispatchEvent('visible-change', { visible: false }, evnt || null)
531
549
  },
532
550
  changeEvent (evnt: Event, selectValue: any, node: any) {
533
551
  const $xeTreeSelect = this
@@ -551,26 +569,27 @@ export default /* define-vxe-component start */ defineVxeComponent({
551
569
  $xeTreeSelect.changeEvent(evnt, selectValue, null)
552
570
  $xeTreeSelect.dispatchEvent('clear', { value: selectValue }, evnt)
553
571
  },
554
- clearEvent (params: any, evnt: Event) {
572
+ clearEvent (params: VxeInputDefines.ClearEventParams) {
555
573
  const $xeTreeSelect = this
556
574
 
557
- $xeTreeSelect.clearValueEvent(evnt, null)
558
- $xeTreeSelect.hideOptionPanel()
575
+ const { $event } = params
576
+ $xeTreeSelect.clearValueEvent($event, null)
577
+ $xeTreeSelect.hideOptionPanel($event)
559
578
  },
560
579
  allCheckedPanelEvent (params: VxeButtonDefines.ClickEventParams) {
561
580
  const $xeTreeSelect = this
562
581
  const props = $xeTreeSelect
563
582
 
564
583
  const { $event } = params
565
- const { multiple, autoClose } = props
584
+ const { multiple, autoClose, checkedClosable } = props
566
585
  const $tree = $xeTreeSelect.$refs.refTree as VxeTreeConstructor
567
586
  if (multiple) {
568
587
  if ($tree) {
569
588
  $tree.setAllCheckboxNode(true).then(({ checkNodeKeys, checkNodes }) => {
570
589
  $xeTreeSelect.changeEvent($event, checkNodeKeys, checkNodes[0])
571
590
  $xeTreeSelect.dispatchEvent('all-change', { value: checkNodeKeys }, $event)
572
- if (autoClose) {
573
- $xeTreeSelect.hideOptionPanel()
591
+ if (XEUtils.isBoolean(autoClose) ? autoClose : checkedClosable) {
592
+ $xeTreeSelect.hideOptionPanel($event)
574
593
  }
575
594
  })
576
595
  }
@@ -581,19 +600,25 @@ export default /* define-vxe-component start */ defineVxeComponent({
581
600
  const props = $xeTreeSelect
582
601
 
583
602
  const { $event } = params
584
- const { multiple, autoClose } = props
603
+ const { multiple, autoClose, clearClosable } = props
585
604
  const $tree = $xeTreeSelect.$refs.refTree as VxeTreeConstructor
586
605
  if ($tree) {
587
606
  const value = multiple ? [] : null
588
607
  $tree.clearCheckboxNode().then(() => {
589
- if (autoClose) {
590
- $xeTreeSelect.hideOptionPanel()
608
+ if (XEUtils.isBoolean(autoClose) ? autoClose : clearClosable) {
609
+ $xeTreeSelect.hideOptionPanel($event)
591
610
  }
592
611
  })
593
612
  $xeTreeSelect.changeEvent($event, value, null)
594
613
  $xeTreeSelect.dispatchEvent('clear', { value }, $event)
595
614
  }
596
615
  },
616
+ closePanelEvent (params: VxeButtonDefines.ClickEventParams) {
617
+ const $xeTreeSelect = this
618
+
619
+ const { $event } = params
620
+ $xeTreeSelect.hideOptionPanel($event)
621
+ },
597
622
  allExpandPanelEvent () {
598
623
  const $xeTreeSelect = this
599
624
 
@@ -622,7 +647,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
622
647
  if (getEventTargetNode(evnt, panelElem).flag) {
623
648
  $xeTreeSelect.updatePlacement()
624
649
  } else {
625
- $xeTreeSelect.hideOptionPanel()
650
+ $xeTreeSelect.hideOptionPanel(evnt)
626
651
  }
627
652
  }
628
653
  }
@@ -638,17 +663,17 @@ export default /* define-vxe-component start */ defineVxeComponent({
638
663
  const panelElem = $xeTreeSelect.$refs.refOptionPanel as HTMLElement
639
664
  reactData.isActivated = getEventTargetNode(evnt, el).flag || getEventTargetNode(evnt, panelElem).flag
640
665
  if (visiblePanel && !reactData.isActivated) {
641
- $xeTreeSelect.hideOptionPanel()
666
+ $xeTreeSelect.hideOptionPanel(evnt)
642
667
  }
643
668
  }
644
669
  },
645
- handleGlobalBlurEvent () {
670
+ handleGlobalBlurEvent (evnt: Event) {
646
671
  const $xeTreeSelect = this
647
672
  const reactData = $xeTreeSelect.reactData
648
673
 
649
674
  const { visiblePanel, isActivated } = reactData
650
675
  if (visiblePanel) {
651
- $xeTreeSelect.hideOptionPanel()
676
+ $xeTreeSelect.hideOptionPanel(evnt)
652
677
  }
653
678
  if (isActivated) {
654
679
  reactData.isActivated = false
@@ -747,7 +772,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
747
772
  reactData.triggerFocusPanel = false
748
773
  } else {
749
774
  if (reactData.visiblePanel) {
750
- $xeTreeSelect.hideOptionPanel()
775
+ $xeTreeSelect.hideOptionPanel($event)
751
776
  } else {
752
777
  $xeTreeSelect.showOptionPanel()
753
778
  }
@@ -769,7 +794,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
769
794
 
770
795
  const { value, $event, node } = params
771
796
  $xeTreeSelect.changeEvent($event, value, node)
772
- $xeTreeSelect.hideOptionPanel()
797
+ $xeTreeSelect.hideOptionPanel($event)
773
798
  },
774
799
  checkboxChangeEvent (params: VxeTreeDefines.CheckboxChangeEventParams) {
775
800
  const $xeTreeSelect = this
@@ -792,7 +817,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
792
817
  const slots = $xeTreeSelect.$scopedSlots
793
818
  const reactData = $xeTreeSelect.reactData
794
819
 
795
- const { className, value: modelValue, multiple, options, loading, menuConfig, filterable, showTotalButoon, showCheckedButoon, showClearButton, showExpandButton } = props
820
+ const { className, value: modelValue, multiple, options, loading, menuConfig, filterable, showTotalButoon, showCheckedButoon, showClearButton, showExpandButton, showCloseButton } = props
796
821
  const { initialized, isActivated, isAniVisible, visiblePanel, searchValue } = reactData
797
822
  const vSize = $xeTreeSelect.computeSize
798
823
  const isDisabled = $xeTreeSelect.computeIsDisabled
@@ -923,7 +948,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
923
948
  })
924
949
  ])
925
950
  : renderEmptyElement($xeTreeSelect),
926
- showTotalButoon || (showCheckedButoon && multiple) || showClearButton || showExpandButton || headerSlot
951
+ (showCheckedButoon && multiple) || showClearButton || showExpandButton || headerSlot
927
952
  ? h('div', {
928
953
  class: 'vxe-tree-select--panel-header'
929
954
  }, headerSlot
@@ -1053,7 +1078,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
1053
1078
  })
1054
1079
  ])
1055
1080
  ]),
1056
- footerSlot || showTotalButoon
1081
+ footerSlot || showTotalButoon || (showCloseButton && multiple)
1057
1082
  ? h('div', {
1058
1083
  class: 'vxe-tree-select--panel-footer'
1059
1084
  }, footerSlot
@@ -1066,6 +1091,21 @@ export default /* define-vxe-component start */ defineVxeComponent({
1066
1091
  ? h('div', {
1067
1092
  class: 'vxe-tree-select--total-btns'
1068
1093
  }, getI18n('vxe.treeSelect.total', [selectVals.length]))
1094
+ : renderEmptyElement($xeTreeSelect),
1095
+ showCloseButton && multiple
1096
+ ? h('div', {
1097
+ class: 'vxe-tree-select--oper-btns'
1098
+ }, [
1099
+ h(VxeButtonComponent, {
1100
+ props: {
1101
+ content: getI18n('vxe.select.close'),
1102
+ mode: 'text'
1103
+ },
1104
+ on: {
1105
+ click: $xeTreeSelect.closePanelEvent
1106
+ }
1107
+ })
1108
+ ])
1069
1109
  : renderEmptyElement($xeTreeSelect)
1070
1110
  ])
1071
1111
  ])
@@ -1090,7 +1130,11 @@ export default /* define-vxe-component start */ defineVxeComponent({
1090
1130
  },
1091
1131
  mounted () {
1092
1132
  const $xeTreeSelect = this
1133
+ const props = $xeTreeSelect
1093
1134
 
1135
+ if (XEUtils.isBoolean(props.autoClose)) {
1136
+ warnLog('vxe.error.delProp', ['auto-close', 'checked-closable | clear-closable'])
1137
+ }
1094
1138
  globalEvents.on($xeTreeSelect, 'mousewheel', $xeTreeSelect.handleGlobalMousewheelEvent)
1095
1139
  globalEvents.on($xeTreeSelect, 'mousedown', $xeTreeSelect.handleGlobalMousedownEvent)
1096
1140
  globalEvents.on($xeTreeSelect, 'blur', $xeTreeSelect.handleGlobalBlurEvent)
@@ -323,6 +323,14 @@ setConfig({
323
323
  segmented: {},
324
324
  select: {
325
325
  multiCharOverflow: 8,
326
+ radioConfig: {
327
+ showIcon: true,
328
+ trigger: 'option'
329
+ },
330
+ checkboxConfig: {
331
+ showIcon: true,
332
+ trigger: 'option'
333
+ },
326
334
  remoteConfig: {
327
335
  enabled: true,
328
336
  autoLoad: true
@@ -417,7 +425,7 @@ setConfig({
417
425
  }
418
426
  },
419
427
  treeSelect: {
420
- autoClose: true,
428
+ autoClose: null as any,
421
429
  virtualYConfig: {
422
430
  enabled: true,
423
431
  gt: 0,
@@ -85,21 +85,26 @@
85
85
  display: flex;
86
86
  flex-direction: row;
87
87
  }
88
- .vxe-select--header-total {
88
+
89
+ .vxe-select--header-button,
90
+ .vxe-select--footer-button {
89
91
  display: flex;
90
92
  flex-direction: row;
91
- align-items: center;
92
- justify-content: center;
93
+ white-space: nowrap;
94
+ }
95
+ .vxe-select--total-btns {
96
+ padding-left: var(--vxe-ui-current-padding);
97
+ flex-grow: 1;
98
+ }
99
+ .vxe-select--oper-btns {
93
100
  flex-shrink: 0;
94
- padding-left: 0.8em;
95
101
  }
96
- .vxe-select--header-btns {
102
+ .vxe-select--footer-button {
97
103
  display: flex;
98
104
  flex-direction: row;
99
- flex-grow: 1;
100
- justify-content: right;
101
105
  }
102
106
 
107
+
103
108
  .vxe-select--panel-header {
104
109
  border-bottom: 1px solid var(--vxe-ui-base-popup-border-color);
105
110
  }
@@ -133,11 +138,9 @@
133
138
  }
134
139
  .vxe-select-option {
135
140
  position: relative;
141
+ flex-direction: row;
142
+ display: flex;
136
143
  padding: 0 0.6em;
137
- white-space: nowrap;
138
- overflow: hidden;
139
- text-overflow: ellipsis;
140
- white-space: nowrap;
141
144
  user-select: none;
142
145
  cursor: pointer;
143
146
  &.is--add {
@@ -156,7 +159,7 @@
156
159
  }
157
160
  &:not(.is--disabled) {
158
161
  &.is--hover {
159
- background-color: var(--vxe-ui-base-hover-background-color);
162
+ background-color: var(--vxe-ui-select-option-hover-background-color);
160
163
  }
161
164
  }
162
165
  &.is--disabled {
@@ -170,6 +173,12 @@
170
173
  cursor: default;
171
174
  }
172
175
 
176
+ .vxe-select-option--label {
177
+ flex-grow: 1;
178
+ overflow: hidden;
179
+ text-overflow: ellipsis;
180
+ white-space: nowrap;
181
+ }
173
182
  .vxe-select-option--add-icon {
174
183
  display: none;
175
184
  position: absolute;
@@ -177,6 +186,15 @@
177
186
  right: 0.6em;
178
187
  }
179
188
 
189
+ .vxe-select-option--checkbox {
190
+ padding-right: 0.4em;
191
+ @include baseMixin.createCheckboxIcon();
192
+ }
193
+ .vxe-select-option--radio {
194
+ padding-right: 0.4em;
195
+ @include baseMixin.createRadioIcon();
196
+ }
197
+
180
198
  .vxe-select--search-icon {
181
199
  margin-right: 0.5em;
182
200
  }
@@ -202,6 +220,15 @@
202
220
  }
203
221
  }
204
222
 
223
+ .vxe-select,
224
+ .vxe-select--panel {
225
+ --vxe-ui-current-padding: var(--vxe-ui-layout-padding-default);
226
+ &.size--small,
227
+ &.size--mini {
228
+ --vxe-ui-current-padding: var(--vxe-ui-layout-padding-half);
229
+ }
230
+ }
231
+
205
232
  .vxe-select--panel {
206
233
  .vxe-select-option {
207
234
  height: var(--vxe-ui-select-option-height-default);
@@ -74,6 +74,10 @@
74
74
  }
75
75
  .vxe-tree-select--total-btns {
76
76
  padding-left: var(--vxe-ui-current-padding);
77
+ flex-grow: 1;
78
+ }
79
+ .vxe-tree-select--oper-btns {
80
+ flex-shrink: 0;
77
81
  }
78
82
  .vxe-tree-select--footer-button,
79
83
  .vxe-tree-select--selected-btns,
@@ -96,6 +96,9 @@
96
96
  /*switch*/
97
97
  --vxe-ui-switch-close-background-color: #4C4D4F;
98
98
 
99
+ /*select*/
100
+ --vxe-ui-select-option-hover-background-color: #262727;
101
+
99
102
  /*upload*/
100
103
  --vxe-ui-upload-drag-over-background-color:rgba(48, 48, 0, 0.8);
101
104
 
@@ -94,6 +94,9 @@
94
94
 
95
95
  /*switch*/
96
96
  --vxe-ui-switch-close-background-color: #{light_variable.$vxe-ui-switch-close-background-color};
97
+
98
+ /*select*/
99
+ --vxe-ui-select-option-hover-background-color: #{light_variable.$vxe-ui-select-option-hover-background-color};
97
100
 
98
101
  /*upload*/
99
102
  --vxe-ui-upload-drag-over-background-color:#{light_variable.$vxe-ui-upload-drag-over-background-color};
@@ -88,6 +88,9 @@ $vxe-ui-list-design-table-header-background-color: #f8f8f9 !default;
88
88
  /*switch*/
89
89
  $vxe-ui-switch-close-background-color: rgba(0,0,0,0.35) !default;
90
90
 
91
+ /*select*/
92
+ $vxe-ui-select-option-hover-background-color: #f5f7fa !default;
93
+
91
94
  /*upload*/
92
95
  $vxe-ui-upload-drag-over-background-color:rgba(255,255,200,0.8) !default;
93
96
 
@@ -36,6 +36,9 @@ export namespace VxeSelectPropTypes {
36
36
  export type Readonly = boolean
37
37
  export type Loading = boolean
38
38
  export type Disabled = boolean
39
+ export type CheckedClosable = boolean
40
+ export type ClearClosable = boolean
41
+ export type ShowCloseButton = boolean
39
42
  export type ShowTotalButoon = boolean
40
43
  export type ShowCheckedButoon = boolean
41
44
  export type ShowClearButton = boolean
@@ -63,6 +66,16 @@ export namespace VxeSelectPropTypes {
63
66
  label?: string
64
67
  key?: string
65
68
  }
69
+ export type ShowRadio = boolean
70
+ export interface RadioConfig {
71
+ showIcon?: boolean
72
+ trigger?: '' | 'default' | 'icon' | 'option'
73
+ }
74
+ export type ShowCheckbox = boolean
75
+ export interface CheckboxConfig {
76
+ showIcon?: boolean
77
+ trigger?: '' | 'default' | 'icon' | 'option'
78
+ }
66
79
  export type Filterable = boolean
67
80
  export type FilterMethod = (params: {
68
81
  $select: VxeSelectConstructor
@@ -187,6 +200,9 @@ export interface VxeSelectProps {
187
200
  readonly?: VxeSelectPropTypes.Readonly
188
201
  loading?: VxeSelectPropTypes.Loading
189
202
  disabled?: VxeSelectPropTypes.Disabled
203
+ checkedClosable?: VxeSelectPropTypes.CheckedClosable
204
+ clearClosable?: VxeSelectPropTypes.ClearClosable
205
+ showCloseButton?: VxeSelectPropTypes.ShowCloseButton
190
206
  showTotalButoon?: VxeSelectPropTypes.ShowTotalButoon
191
207
  showCheckedButoon?: VxeSelectPropTypes.ShowCheckedButoon
192
208
  showClearButton?: VxeSelectPropTypes.ShowClearButton
@@ -208,6 +224,10 @@ export interface VxeSelectProps {
208
224
  optionGroupProps?: VxeSelectPropTypes.OptionGroupProps
209
225
  optionConfig?: VxeSelectPropTypes.OptionConfig
210
226
  emptyText?: VxeSelectPropTypes.EmptyText
227
+ showRadio?: VxeSelectPropTypes.ShowRadio
228
+ radioConfig?: VxeSelectPropTypes.RadioConfig
229
+ showCheckbox?: VxeSelectPropTypes.ShowCheckbox
230
+ checkboxConfig?: VxeSelectPropTypes.CheckboxConfig
211
231
  /**
212
232
  * 是否启用本地筛选
213
233
  */
@@ -29,7 +29,14 @@ export namespace VxeTreeSelectPropTypes {
29
29
  export type Readonly = boolean
30
30
  export type Loading = boolean
31
31
  export type Disabled = boolean
32
+ /**
33
+ * 已废弃,被 CheckedClosable, ClearClosable 替换
34
+ * @deprecated
35
+ */
32
36
  export type AutoClose = boolean
37
+ export type CheckedClosable = boolean
38
+ export type ClearClosable = boolean
39
+ export type ShowCloseButton = boolean
33
40
  export type ShowTotalButoon = boolean
34
41
  export type ShowCheckedButoon = boolean
35
42
  export type ShowExpandButton = boolean
@@ -146,7 +153,14 @@ export interface VxeTreeSelectProps<D = any> {
146
153
  readonly?: VxeTreeSelectPropTypes.Readonly
147
154
  loading?: VxeTreeSelectPropTypes.Loading
148
155
  disabled?: VxeTreeSelectPropTypes.Disabled
156
+ /**
157
+ * 已废弃,被 checked-closable, clear-closable 替换
158
+ * @deprecated
159
+ */
149
160
  autoClose?: VxeTreeSelectPropTypes.AutoClose
161
+ checkedClosable?: VxeTreeSelectPropTypes.CheckedClosable
162
+ clearClosable?: VxeTreeSelectPropTypes.ClearClosable
163
+ showCloseButton?: VxeTreeSelectPropTypes.ShowCloseButton
150
164
  showTotalButoon?: VxeTreeSelectPropTypes.ShowTotalButoon
151
165
  showCheckedButoon?: VxeTreeSelectPropTypes.ShowCheckedButoon
152
166
  showClearButton?: VxeTreeSelectPropTypes.ShowClearButton
@@ -230,7 +244,8 @@ export type VxeTreeSelectEmits = [
230
244
  'blur',
231
245
  'focus',
232
246
  'click',
233
- 'node-click'
247
+ 'node-click',
248
+ 'visible-change'
234
249
  ]
235
250
 
236
251
  export namespace VxeTreeSelectDefines {
@@ -250,6 +265,9 @@ export namespace VxeTreeSelectDefines {
250
265
  export interface FocusEventParams extends TreeSelectEventParams { }
251
266
  export interface BlurEventParams extends TreeSelectEventParams { }
252
267
  export interface ClickEventParams extends TreeSelectEventParams { }
268
+ export interface VisibleChangeEventParams extends TreeSelectEventParams {
269
+ visible: boolean
270
+ }
253
271
  }
254
272
 
255
273
  export interface VxeTreeSelectEventProps<D = any> {
@@ -258,6 +276,7 @@ export interface VxeTreeSelectEventProps<D = any> {
258
276
  onFocus?: VxeTreeSelectEvents.Focus
259
277
  onBlur?: VxeTreeSelectEvents.Blur
260
278
  onClick?: VxeTreeSelectEvents.Click
279
+ onVisibleChange?: VxeTreeSelectEvents.VisibleChange
261
280
  }
262
281
 
263
282
  export interface VxeTreeSelectListeners<D = any> {
@@ -266,6 +285,7 @@ export interface VxeTreeSelectListeners<D = any> {
266
285
  focus?: VxeTreeSelectEvents.Focus
267
286
  blur?: VxeTreeSelectEvents.Blur
268
287
  click?: VxeTreeSelectEvents.Click
288
+ visibleChange?: VxeTreeSelectEvents.VisibleChange
269
289
  }
270
290
 
271
291
  export namespace VxeTreeSelectEvents {
@@ -274,6 +294,7 @@ export namespace VxeTreeSelectEvents {
274
294
  export type Focus = (params: VxeTreeSelectDefines.FocusEventParams) => void
275
295
  export type Blur = (params: VxeTreeSelectDefines.BlurEventParams) => void
276
296
  export type Click = (params: VxeTreeSelectDefines.ClickEventParams) => void
297
+ export type VisibleChange = (params: VxeTreeSelectDefines.VisibleChangeEventParams) => void
277
298
  }
278
299
 
279
300
  export namespace VxeTreeSelectSlotTypes {