vxe-pc-ui 4.16.7 → 4.16.9

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 (217) hide show
  1. package/README.en.md +3 -3
  2. package/README.ja-JP.md +3 -3
  3. package/README.md +3 -3
  4. package/README.zh-TW.md +3 -3
  5. package/dist/all.esm.js +118 -47
  6. package/dist/style.css +1 -1
  7. package/dist/style.min.css +1 -1
  8. package/es/button/style.css +14 -0
  9. package/es/button/style.min.css +1 -1
  10. package/es/cascader/src/cascader.js +66 -26
  11. package/es/cascader/style.css +9 -9
  12. package/es/cascader/style.min.css +1 -1
  13. package/es/checkbox/src/group.js +7 -4
  14. package/es/checkbox/style.css +11 -0
  15. package/es/checkbox/style.min.css +1 -1
  16. package/es/checkbox-button/style.css +6 -0
  17. package/es/checkbox-button/style.min.css +1 -1
  18. package/es/date-range-picker/src/date-range-picker.js +25 -9
  19. package/es/form/style.css +12 -0
  20. package/es/form/style.min.css +1 -1
  21. package/es/icon/style.css +7 -1
  22. package/es/icon/style.min.css +1 -1
  23. package/es/input/style.css +276 -66
  24. package/es/input/style.min.css +1 -1
  25. package/es/menu/src/menu.js +4 -3
  26. package/es/menu/style.css +10 -0
  27. package/es/menu/style.min.css +1 -1
  28. package/es/number-input/style.css +28 -21
  29. package/es/number-input/style.min.css +1 -1
  30. package/es/password-input/src/password-input.js +1 -0
  31. package/es/password-input/style.css +28 -399
  32. package/es/password-input/style.min.css +1 -1
  33. package/es/radio/src/group.js +3 -3
  34. package/es/radio/style.css +11 -0
  35. package/es/radio/style.min.css +1 -1
  36. package/es/radio-button/style.css +6 -0
  37. package/es/radio-button/style.min.css +1 -1
  38. package/es/select/style.css +10 -0
  39. package/es/select/style.min.css +1 -1
  40. package/es/style.css +1 -1
  41. package/es/style.min.css +1 -1
  42. package/es/switch/style.css +36 -22
  43. package/es/switch/style.min.css +1 -1
  44. package/es/tag/style.css +20 -19
  45. package/es/tag/style.min.css +1 -1
  46. package/es/tree/src/tree.js +13 -2
  47. package/es/tree/style.css +4 -1
  48. package/es/tree/style.min.css +1 -1
  49. package/es/ui/index.js +1 -1
  50. package/es/ui/src/log.js +1 -1
  51. package/es/upload/style.css +10 -0
  52. package/es/upload/style.min.css +1 -1
  53. package/es/vxe-button/style.css +14 -0
  54. package/es/vxe-button/style.min.css +1 -1
  55. package/es/vxe-cascader/style.css +9 -9
  56. package/es/vxe-cascader/style.min.css +1 -1
  57. package/es/vxe-checkbox/style.css +11 -0
  58. package/es/vxe-checkbox/style.min.css +1 -1
  59. package/es/vxe-checkbox-button/style.css +6 -0
  60. package/es/vxe-checkbox-button/style.min.css +1 -1
  61. package/es/vxe-form/style.css +12 -0
  62. package/es/vxe-form/style.min.css +1 -1
  63. package/es/vxe-icon/style.css +6 -0
  64. package/es/vxe-icon/style.min.css +1 -1
  65. package/es/vxe-input/style.css +276 -66
  66. package/es/vxe-input/style.min.css +1 -1
  67. package/es/vxe-menu/style.css +10 -0
  68. package/es/vxe-menu/style.min.css +1 -1
  69. package/es/vxe-number-input/style.css +28 -21
  70. package/es/vxe-number-input/style.min.css +1 -1
  71. package/es/vxe-password-input/style.css +28 -399
  72. package/es/vxe-password-input/style.min.css +1 -1
  73. package/es/vxe-radio/style.css +11 -0
  74. package/es/vxe-radio/style.min.css +1 -1
  75. package/es/vxe-radio-button/style.css +6 -0
  76. package/es/vxe-radio-button/style.min.css +1 -1
  77. package/es/vxe-select/style.css +10 -0
  78. package/es/vxe-select/style.min.css +1 -1
  79. package/es/vxe-switch/style.css +36 -22
  80. package/es/vxe-switch/style.min.css +1 -1
  81. package/es/vxe-tag/style.css +20 -19
  82. package/es/vxe-tag/style.min.css +1 -1
  83. package/es/vxe-tree/style.css +4 -1
  84. package/es/vxe-tree/style.min.css +1 -1
  85. package/es/vxe-upload/style.css +10 -0
  86. package/es/vxe-upload/style.min.css +1 -1
  87. package/lib/button/style/style.css +14 -0
  88. package/lib/button/style/style.min.css +1 -1
  89. package/lib/cascader/src/cascader.js +73 -27
  90. package/lib/cascader/src/cascader.min.js +1 -1
  91. package/lib/cascader/style/style.css +9 -9
  92. package/lib/cascader/style/style.min.css +1 -1
  93. package/lib/checkbox/src/group.js +8 -4
  94. package/lib/checkbox/src/group.min.js +1 -1
  95. package/lib/checkbox/style/style.css +11 -0
  96. package/lib/checkbox/style/style.min.css +1 -1
  97. package/lib/checkbox-button/style/style.css +6 -0
  98. package/lib/checkbox-button/style/style.min.css +1 -1
  99. package/lib/date-range-picker/src/date-range-picker.js +27 -9
  100. package/lib/date-range-picker/src/date-range-picker.min.js +1 -1
  101. package/lib/form/style/style.css +12 -0
  102. package/lib/form/style/style.min.css +1 -1
  103. package/lib/icon/style/style.css +7 -1
  104. package/lib/icon/style/style.min.css +7 -1
  105. package/lib/index.umd.js +129 -50
  106. package/lib/index.umd.min.js +1 -1
  107. package/lib/input/style/style.css +276 -66
  108. package/lib/input/style/style.min.css +1 -1
  109. package/lib/menu/src/menu.js +4 -3
  110. package/lib/menu/src/menu.min.js +1 -1
  111. package/lib/menu/style/style.css +10 -0
  112. package/lib/menu/style/style.min.css +1 -1
  113. package/lib/number-input/style/style.css +28 -21
  114. package/lib/number-input/style/style.min.css +1 -1
  115. package/lib/password-input/src/password-input.js +1 -0
  116. package/lib/password-input/src/password-input.min.js +1 -1
  117. package/lib/password-input/style/style.css +28 -399
  118. package/lib/password-input/style/style.min.css +1 -1
  119. package/lib/radio/src/group.js +4 -4
  120. package/lib/radio/src/group.min.js +1 -1
  121. package/lib/radio/style/style.css +11 -0
  122. package/lib/radio/style/style.min.css +1 -1
  123. package/lib/radio-button/style/style.css +6 -0
  124. package/lib/radio-button/style/style.min.css +1 -1
  125. package/lib/select/style/style.css +10 -0
  126. package/lib/select/style/style.min.css +1 -1
  127. package/lib/style.css +1 -1
  128. package/lib/style.min.css +1 -1
  129. package/lib/switch/style/style.css +36 -22
  130. package/lib/switch/style/style.min.css +1 -1
  131. package/lib/tag/style/style.css +20 -19
  132. package/lib/tag/style/style.min.css +1 -1
  133. package/lib/tree/src/tree.js +10 -2
  134. package/lib/tree/src/tree.min.js +1 -1
  135. package/lib/tree/style/style.css +4 -1
  136. package/lib/tree/style/style.min.css +1 -1
  137. package/lib/ui/index.js +1 -1
  138. package/lib/ui/index.min.js +1 -1
  139. package/lib/ui/src/log.js +1 -1
  140. package/lib/ui/src/log.min.js +1 -1
  141. package/lib/upload/style/style.css +10 -0
  142. package/lib/upload/style/style.min.css +1 -1
  143. package/lib/vxe-button/style/style.css +14 -0
  144. package/lib/vxe-button/style/style.min.css +1 -1
  145. package/lib/vxe-cascader/style/style.css +9 -9
  146. package/lib/vxe-cascader/style/style.min.css +1 -1
  147. package/lib/vxe-checkbox/style/style.css +11 -0
  148. package/lib/vxe-checkbox/style/style.min.css +1 -1
  149. package/lib/vxe-checkbox-button/style/style.css +6 -0
  150. package/lib/vxe-checkbox-button/style/style.min.css +1 -1
  151. package/lib/vxe-form/style/style.css +12 -0
  152. package/lib/vxe-form/style/style.min.css +1 -1
  153. package/lib/vxe-icon/style/style.css +6 -0
  154. package/lib/vxe-icon/style/style.min.css +1 -1
  155. package/lib/vxe-input/style/style.css +276 -66
  156. package/lib/vxe-input/style/style.min.css +1 -1
  157. package/lib/vxe-menu/style/style.css +10 -0
  158. package/lib/vxe-menu/style/style.min.css +1 -1
  159. package/lib/vxe-number-input/style/style.css +28 -21
  160. package/lib/vxe-number-input/style/style.min.css +1 -1
  161. package/lib/vxe-password-input/style/style.css +28 -399
  162. package/lib/vxe-password-input/style/style.min.css +1 -1
  163. package/lib/vxe-radio/style/style.css +11 -0
  164. package/lib/vxe-radio/style/style.min.css +1 -1
  165. package/lib/vxe-radio-button/style/style.css +6 -0
  166. package/lib/vxe-radio-button/style/style.min.css +1 -1
  167. package/lib/vxe-select/style/style.css +10 -0
  168. package/lib/vxe-select/style/style.min.css +1 -1
  169. package/lib/vxe-switch/style/style.css +36 -22
  170. package/lib/vxe-switch/style/style.min.css +1 -1
  171. package/lib/vxe-tag/style/style.css +20 -19
  172. package/lib/vxe-tag/style/style.min.css +1 -1
  173. package/lib/vxe-tree/style/style.css +4 -1
  174. package/lib/vxe-tree/style/style.min.css +1 -1
  175. package/lib/vxe-upload/style/style.css +10 -0
  176. package/lib/vxe-upload/style/style.min.css +1 -1
  177. package/package.json +3 -3
  178. package/packages/cascader/src/cascader.ts +66 -25
  179. package/packages/checkbox/src/group.ts +7 -4
  180. package/packages/date-range-picker/src/date-range-picker.ts +23 -9
  181. package/packages/menu/src/menu.ts +4 -3
  182. package/packages/password-input/src/password-input.ts +1 -0
  183. package/packages/radio/src/group.ts +3 -3
  184. package/packages/tree/src/tree.ts +13 -2
  185. package/styles/components/button.scss +12 -0
  186. package/styles/components/cascader.scss +9 -9
  187. package/styles/components/checkbox-button.scss +6 -0
  188. package/styles/components/checkbox.scss +11 -0
  189. package/styles/components/form.scss +12 -0
  190. package/styles/components/icon.scss +6 -0
  191. package/styles/components/input.scss +52 -28
  192. package/styles/components/menu.scss +8 -0
  193. package/styles/components/number-input.scss +29 -23
  194. package/styles/components/password-input.scss +29 -173
  195. package/styles/components/radio-button.scss +6 -0
  196. package/styles/components/radio.scss +11 -0
  197. package/styles/components/select.scss +8 -0
  198. package/styles/components/switch.scss +37 -22
  199. package/styles/components/tag.scss +21 -21
  200. package/styles/components/tree.scss +3 -1
  201. package/styles/components/upload.scss +8 -0
  202. package/styles/theme/base.scss +47 -0
  203. package/types/components/cascader.d.ts +1 -0
  204. package/types/components/checkbox-group.d.ts +2 -0
  205. package/types/components/tree.d.ts +7 -0
  206. /package/es/icon/{iconfont.1783873713408.ttf → iconfont.1783939831164.ttf} +0 -0
  207. /package/es/icon/{iconfont.1783873713408.woff → iconfont.1783939831164.woff} +0 -0
  208. /package/es/icon/{iconfont.1783873713408.woff2 → iconfont.1783939831164.woff2} +0 -0
  209. /package/es/{iconfont.1783873713408.ttf → iconfont.1783939831164.ttf} +0 -0
  210. /package/es/{iconfont.1783873713408.woff → iconfont.1783939831164.woff} +0 -0
  211. /package/es/{iconfont.1783873713408.woff2 → iconfont.1783939831164.woff2} +0 -0
  212. /package/lib/icon/style/{iconfont.1783873713408.ttf → iconfont.1783939831164.ttf} +0 -0
  213. /package/lib/icon/style/{iconfont.1783873713408.woff → iconfont.1783939831164.woff} +0 -0
  214. /package/lib/icon/style/{iconfont.1783873713408.woff2 → iconfont.1783939831164.woff2} +0 -0
  215. /package/lib/{iconfont.1783873713408.ttf → iconfont.1783939831164.ttf} +0 -0
  216. /package/lib/{iconfont.1783873713408.woff → iconfont.1783939831164.woff} +0 -0
  217. /package/lib/{iconfont.1783873713408.woff2 → iconfont.1783939831164.woff2} +0 -0
@@ -2,7 +2,8 @@ import { h, provide, PropType, computed, inject, reactive, onUnmounted, watch, o
2
2
  import { defineVxeComponent } from '../../ui/src/comp'
3
3
  import { getConfig, createEvent, useSize } from '../../ui'
4
4
  import XEUtils from 'xe-utils'
5
- import VxeCheckboxComponent from './checkbox'
5
+ import VxeCheckboxComponent from '../../checkbox'
6
+ import VxeCheckboxButtonComponent from '../../checkbox-button'
6
7
 
7
8
  import type { VxeCheckboxGroupConstructor, CheckboxGroupInternalData, VxeCheckboxGroupEmits, ValueOf, CheckboxGroupReactData, VxeCheckboxGroupPrivateMethods, CheckboxGroupPrivateMethods, CheckboxGroupPrivateComputed, CheckboxGroupMethods, VxeCheckboxGroupPropTypes, VxeFormConstructor, VxeFormPrivateMethods, VxeFormDefines } from '../../../types'
8
9
 
@@ -26,6 +27,7 @@ export default defineVxeComponent({
26
27
  type: Boolean as PropType<VxeCheckboxGroupPropTypes.Readonly>,
27
28
  default: null
28
29
  },
30
+ type: String as PropType<VxeCheckboxGroupPropTypes.Type>,
29
31
  disabled: {
30
32
  type: Boolean as PropType<VxeCheckboxGroupPropTypes.Disabled>,
31
33
  default: null
@@ -208,7 +210,7 @@ export default defineVxeComponent({
208
210
  Object.assign($xeCheckboxGroup, checkboxGroupMethods, checkboxGroupPrivateMethods)
209
211
 
210
212
  const renderVN = () => {
211
- const { status, options } = props
213
+ const { status, options, type } = props
212
214
  const defaultSlot = slots.default
213
215
  const valueField = computeValueField.value
214
216
  const labelField = computeLabelField.value
@@ -217,8 +219,9 @@ export default defineVxeComponent({
217
219
  const titleField = computeTitleField.value
218
220
  const isReadonly = computeIsReadonly.value
219
221
  const isDisabled = computeIsDisabled.value
222
+ const btnComp = type === 'button' ? VxeCheckboxButtonComponent : VxeCheckboxComponent
220
223
  return h('div', {
221
- class: ['vxe-checkbox-group', {
224
+ class: ['vxe-checkbox-group', `type--${type === 'button' ? type : ''}`, {
222
225
  [`theme--${status}`]: status,
223
226
  'is--readonly': isReadonly,
224
227
  'is--disabled': isDisabled
@@ -227,7 +230,7 @@ export default defineVxeComponent({
227
230
  ? defaultSlot({})
228
231
  : (options
229
232
  ? options.map(item => {
230
- return h(VxeCheckboxComponent, {
233
+ return h(btnComp, {
231
234
  key: item[valueField],
232
235
  checkedValue: item[valueField],
233
236
  content: item[labelField],
@@ -693,17 +693,24 @@ export default defineVxeComponent({
693
693
  }
694
694
 
695
695
  const startPanelChangeEvent = (params: any) => {
696
+ const { paneStartVal } = reactData
696
697
  const { selectStatus } = internalData
697
698
  const { value, currValue, $event } = params
698
699
  const paneVals = value ? (XEUtils.isString(value) ? value.split(',') : [value]) : []
699
700
  let startValue = ''
700
701
  let endValue = ''
701
702
  if (selectStatus) {
702
- startValue = paneVals[0]
703
- if (paneVals[1]) {
704
- endValue = paneVals[1]
703
+ // 如果选择同一天
704
+ if (!value && currValue === paneStartVal[0]) {
705
+ startValue = currValue
706
+ endValue = currValue
705
707
  } else {
706
- endValue = reactData.selectEdValue
708
+ startValue = paneVals[0]
709
+ if (paneVals[1]) {
710
+ endValue = paneVals[1]
711
+ } else {
712
+ endValue = reactData.selectEdValue
713
+ }
707
714
  }
708
715
  } else {
709
716
  startValue = currValue || XEUtils.last(paneVals)
@@ -725,18 +732,25 @@ export default defineVxeComponent({
725
732
  }
726
733
 
727
734
  const endPanelChangeEvent = (params: any) => {
735
+ const { paneEndVal } = reactData
728
736
  const { selectStatus } = internalData
729
737
  const { value, currValue, $event } = params
730
738
  const paneVals = value ? (XEUtils.isString(value) ? value.split(',') : [value]) : []
731
739
  let startValue = ''
732
740
  let endValue = ''
733
741
  if (selectStatus) {
734
- endValue = paneVals[0]
735
- if (paneVals[1]) {
736
- startValue = paneVals[0]
737
- endValue = paneVals[1]
742
+ // 如果选择同一天
743
+ if (!value && currValue === paneEndVal[1]) {
744
+ startValue = currValue
745
+ endValue = currValue
738
746
  } else {
739
- startValue = reactData.selectStValue
747
+ endValue = paneVals[0]
748
+ if (paneVals[1]) {
749
+ startValue = paneVals[0]
750
+ endValue = paneVals[1]
751
+ } else {
752
+ startValue = reactData.selectStValue
753
+ }
740
754
  }
741
755
  } else {
742
756
  endValue = currValue || XEUtils.last(paneVals)
@@ -227,6 +227,7 @@ export default defineVxeComponent({
227
227
  const { accordion } = props
228
228
  const { menuEffectMaps } = internalData
229
229
  const { itemId, hasChild, isExpand } = item
230
+ const isCollapsed = computeIsCollapsed.value
230
231
  const expanded = !isExpand
231
232
  if (hasChild) {
232
233
  evnt.stopPropagation()
@@ -245,9 +246,9 @@ export default defineVxeComponent({
245
246
  }
246
247
  item.isExpand = expanded
247
248
 
248
- const el = refElem.value
249
- if (el) {
250
- const nemuEl = el.querySelector<HTMLDivElement>(`.vxe-menu--item-wrapper[data-menu-id="${itemId}"]`)
249
+ const wrapperEl = isCollapsed ? refCollapseElem.value : refElem.value
250
+ if (wrapperEl) {
251
+ const nemuEl = wrapperEl.querySelector<HTMLDivElement>(`.vxe-menu--item-wrapper[data-menu-id="${itemId}"]`)
251
252
  const groupEl = nemuEl ? nemuEl.querySelector<HTMLDivElement>('.vxe-menu--item-group') : null
252
253
  if (groupEl) {
253
254
  if (expanded) {
@@ -174,6 +174,7 @@ export default defineVxeComponent({
174
174
  const blurEvent = (evnt: Event & { type: 'blur' }) => {
175
175
  const { inputValue } = reactData
176
176
  const value = inputValue
177
+ reactData.isActivated = false
177
178
  $xePasswordInput.dispatchEvent('blur', { value }, evnt)
178
179
  // 自动更新校验状态
179
180
  if ($xeForm && formItemInfo) {
@@ -2,8 +2,8 @@ import { h, provide, PropType, inject, computed, reactive, watch, onMounted, nex
2
2
  import { defineVxeComponent } from '../../ui/src/comp'
3
3
  import XEUtils from 'xe-utils'
4
4
  import { getConfig, createEvent, useSize } from '../../ui'
5
- import VxeRadioComponent from './radio'
6
- import VxeRadioButtonComponent from './button'
5
+ import VxeRadioComponent from '../../radio'
6
+ import VxeRadioButtonComponent from '../../radio-button'
7
7
 
8
8
  import type { VxeRadioGroupPropTypes, RadioGroupInternalData, VxeRadioGroupConstructor, RadioGroupReactData, VxeRadioGroupEmits, VxeRadioGroupPrivateMethods, RadioGroupPrivateMethods, RadioGroupPrivateComputed, RadioGroupMethods, VxeFormConstructor, VxeFormPrivateMethods, VxeFormDefines, ValueOf } from '../../../types'
9
9
 
@@ -202,7 +202,7 @@ export default defineVxeComponent({
202
202
  const btnComp = type === 'button' ? VxeRadioButtonComponent : VxeRadioComponent
203
203
 
204
204
  return h('div', {
205
- class: ['vxe-radio-group', {
205
+ class: ['vxe-radio-group', `type--${type === 'button' ? type : ''}`, {
206
206
  [`theme--${status}`]: status,
207
207
  [`size--${vSize}`]: vSize
208
208
  }]
@@ -108,6 +108,10 @@ export default defineVxeComponent({
108
108
  type: [String, Number] as PropType<VxeTreePropTypes.MinHeight>,
109
109
  default: () => getConfig().tree.minHeight
110
110
  },
111
+ emptyText: {
112
+ type: [String, Number] as PropType<VxeTreePropTypes.EmptyText>,
113
+ default: () => getConfig().tree.emptyText
114
+ },
111
115
  loading: Boolean as PropType<VxeTreePropTypes.Loading>,
112
116
  loadingConfig: Object as PropType<VxeTreePropTypes.LoadingConfig>,
113
117
  accordion: {
@@ -3243,14 +3247,21 @@ export default defineVxeComponent({
3243
3247
  }
3244
3248
 
3245
3249
  const renderList = (treeList: any[]) => {
3246
- const { transform } = props
3250
+ const { transform, emptyText } = props
3247
3251
  const { treeExpandedMaps } = internalData
3248
3252
  const childrenField = computeChildrenField.value
3253
+ const emptySlot = slots.empty
3249
3254
  if (!treeList.length) {
3250
3255
  return [
3251
3256
  h('div', {
3252
3257
  class: 'vxe-tree--empty-placeholder'
3253
- }, getI18n('vxe.tree.searchEmpty'))
3258
+ }, emptySlot
3259
+ ? emptySlot({})
3260
+ : [
3261
+ h('div', {
3262
+ class: 'vxe-tree--empty-placeholder-content'
3263
+ }, getText(emptyText || getI18n('vxe.tree.searchEmpty')))
3264
+ ])
3254
3265
  ]
3255
3266
  }
3256
3267
  const nodeVNs: VNode[] = []
@@ -11,6 +11,18 @@
11
11
  --vxe-ui-button-current-margin-left: var(--vxe-ui-base-margin-gap-default);
12
12
  --vxe-ui-button-current-height: var(--vxe-ui-button-height-default);
13
13
  --vxe-ui-button-current-border-radius: var(--vxe-ui-button-round-border-radius-default);
14
+ &.size--xlarge {
15
+ --vxe-ui-button-current-font-size: var(--vxe-ui-font-size-xlarge);
16
+ --vxe-ui-button-current-margin-left: var(--vxe-ui-base-margin-gap-xlarge);
17
+ --vxe-ui-button-current-height: var(--vxe-ui-button-height-xlarge);
18
+ --vxe-ui-button-current-border-radius: var(--vxe-ui-button-round-border-radius-xlarge);
19
+ }
20
+ &.size--large {
21
+ --vxe-ui-button-current-font-size: var(--vxe-ui-font-size-large);
22
+ --vxe-ui-button-current-margin-left: var(--vxe-ui-base-margin-gap-large);
23
+ --vxe-ui-button-current-height: var(--vxe-ui-button-height-large);
24
+ --vxe-ui-button-current-border-radius: var(--vxe-ui-button-round-border-radius-large);
25
+ }
14
26
  &.size--medium {
15
27
  --vxe-ui-button-current-font-size: var(--vxe-ui-font-size-medium);
16
28
  --vxe-ui-button-current-margin-left: var(--vxe-ui-base-margin-gap-medium);
@@ -5,18 +5,18 @@
5
5
  .vxe-cascader,
6
6
  .vxe-cascader--panel {
7
7
  --vxe-ui-cascader-current-font-size: var(--vxe-ui-font-size-default);
8
- --vxe-ui-cascader-current-font-size: var(--vxe-ui-layout-padding-default);
8
+ --vxe-ui-cascader-current-padding: var(--vxe-ui-layout-padding-default);
9
9
  &.size--medium {
10
10
  --vxe-ui-cascader-current-font-size: var(--vxe-ui-font-size-medium);
11
- --vxe-ui-cascader-current-font-size: var(--vxe-ui-layout-padding-medium);
11
+ --vxe-ui-cascader-current-padding: var(--vxe-ui-layout-padding-medium);
12
12
  }
13
13
  &.size--small {
14
14
  --vxe-ui-cascader-current-font-size: var(--vxe-ui-font-size-small);
15
- --vxe-ui-cascader-current-font-size: var(--vxe-ui-layout-padding-small);
15
+ --vxe-ui-cascader-current-padding: var(--vxe-ui-layout-padding-small);
16
16
  }
17
17
  &.size--mini {
18
18
  --vxe-ui-cascader-current-font-size: var(--vxe-ui-font-size-mini);
19
- --vxe-ui-cascader-current-font-size: var(--vxe-ui-layout-padding-mini);
19
+ --vxe-ui-cascader-current-padding: var(--vxe-ui-layout-padding-mini);
20
20
  }
21
21
  }
22
22
 
@@ -83,8 +83,8 @@
83
83
 
84
84
  .vxe-cascader--panel-search {
85
85
  display: block;
86
- padding: var(--vxe-ui-cascader-current-font-size);
87
- width: calc(var(--vxe-ui-cascader-node-width) * var(--vxe-ui-cascader-chunk-size));
86
+ padding: var(--vxe-ui-cascader-current-padding);
87
+ width: 100%;
88
88
  .vxe-cascader-search--input {
89
89
  width: 100%;
90
90
  }
@@ -99,7 +99,7 @@
99
99
  min-height: 2em;
100
100
  }
101
101
  .vxe-cascader--total-btns {
102
- padding-left: var(--vxe-ui-cascader-current-font-size);
102
+ padding-left: var(--vxe-ui-cascader-current-padding);
103
103
  flex-grow: 1;
104
104
  }
105
105
  .vxe-cascader--total-btns,
@@ -166,7 +166,7 @@
166
166
  .vxe-cascader-chunk--item-wrapper {
167
167
  flex-shrink: 0;
168
168
  border-left: 1px solid var(--vxe-ui-base-popup-border-color);
169
- padding: var(--vxe-ui-cascader-current-font-size) 0;
169
+ padding: var(--vxe-ui-cascader-current-padding) 0;
170
170
  &:first-child {
171
171
  border-left: 0;
172
172
  }
@@ -190,7 +190,7 @@
190
190
  flex-direction: row;
191
191
  height: var(--vxe-ui-cascader-node-height);
192
192
  line-height: var(--vxe-ui-cascader-node-height);
193
- padding: 0 calc(var(--vxe-ui-cascader-current-font-size) + 18px) 0 var(--vxe-ui-cascader-current-font-size);
193
+ padding: 0 calc(var(--vxe-ui-cascader-current-padding) + 18px) 0 var(--vxe-ui-cascader-current-padding);
194
194
  cursor: pointer;
195
195
  &:hover {
196
196
  background-color: var(--vxe-ui-cascader-node-hover-background-color);
@@ -7,6 +7,12 @@
7
7
  // 局部变量
8
8
  .vxe-checkbox--button {
9
9
  --vxe-ui-checkbox--button-current-margin-left: var(--vxe-ui-base-margin-gap-default);
10
+ &.size--xlarge {
11
+ --vxe-ui-checkbox--button-current-margin-left: var(--vxe-ui-base-margin-gap-xlarge);
12
+ }
13
+ &.size--large {
14
+ --vxe-ui-checkbox--button-current-margin-left: var(--vxe-ui-base-margin-gap-large);
15
+ }
10
16
  &.size--medium {
11
17
  --vxe-ui-checkbox--button-current-margin-left: var(--vxe-ui-base-margin-gap-medium);
12
18
  }
@@ -4,6 +4,14 @@
4
4
  .vxe-checkbox {
5
5
  --vxe-ui-checkbox-current-font-size: var(--vxe-ui-font-size-default);
6
6
  --vxe-ui-checkbox-current-margin-right: var(--vxe-ui-base-margin-gap-default);
7
+ &.size--xlarge {
8
+ --vxe-ui-checkbox-current-font-size: var(--vxe-ui-font-size-xlarge);
9
+ --vxe-ui-checkbox-current-margin-right: var(--vxe-ui-base-margin-gap-xlarge);
10
+ }
11
+ &.size--large {
12
+ --vxe-ui-checkbox-current-font-size: var(--vxe-ui-font-size-large);
13
+ --vxe-ui-checkbox-current-margin-right: var(--vxe-ui-base-margin-gap-large);
14
+ }
7
15
  &.size--medium {
8
16
  --vxe-ui-checkbox-current-font-size: var(--vxe-ui-font-size-medium);
9
17
  --vxe-ui-checkbox-current-margin-right: var(--vxe-ui-base-margin-gap-medium);
@@ -23,6 +31,9 @@
23
31
  display: inline-flex;
24
32
  vertical-align: middle;
25
33
  line-height: 1;
34
+ &.type--button {
35
+ border-radius: var(--vxe-ui-base-border-radius);
36
+ }
26
37
  }
27
38
 
28
39
  .vxe-checkbox-slots {
@@ -10,6 +10,18 @@
10
10
  --vxe-ui-form-current-font-size: var(--vxe-ui-font-size-default);
11
11
  --vxe-ui-form-current-padding: var(--vxe-ui-form-item-padding-default);
12
12
  --vxe-ui-form-current-item-min-height: var(--vxe-ui-form-item-min-height-default);
13
+ &.size--xlarge {
14
+ --vxe-ui-form-current-font-size: var(--vxe-ui-font-size-xlarge);
15
+ --vxe-ui-form-current-padding: var(--vxe-ui-form-item-padding-xlarge);
16
+ --vxe-ui-form-current-item-min-height: var(--vxe-ui-form-item-min-height-xlarge);
17
+ --vxe-ui-form-current-button-height: var(--vxe-ui-button-height-xlarge)
18
+ }
19
+ &.size--large {
20
+ --vxe-ui-form-current-font-size: var(--vxe-ui-font-size-large);
21
+ --vxe-ui-form-current-padding: var(--vxe-ui-form-item-padding-large);
22
+ --vxe-ui-form-current-item-min-height: var(--vxe-ui-form-item-min-height-large);
23
+ --vxe-ui-form-current-button-height: var(--vxe-ui-button-height-large)
24
+ }
13
25
  &.size--medium {
14
26
  --vxe-ui-form-current-font-size: var(--vxe-ui-font-size-medium);
15
27
  --vxe-ui-form-current-padding: var(--vxe-ui-form-item-padding-medium);
@@ -83,6 +83,12 @@ $btnThemeList: (
83
83
  }
84
84
 
85
85
  .vxe-icon {
86
+ &.size--xlarge {
87
+ font-size: var(--vxe-ui-font-size-xlarge);
88
+ }
89
+ &.size--large {
90
+ font-size: var(--vxe-ui-font-size-large);
91
+ }
86
92
  &.size--medium {
87
93
  font-size: var(--vxe-ui-font-size-medium);
88
94
  }
@@ -1,5 +1,32 @@
1
1
  @use "sass:list";
2
2
 
3
+ // 局部变量
4
+ .vxe-input,
5
+ .vxe-input--panel {
6
+ --vxe-ui-input-current-font-size: var(--vxe-ui-font-size-default);
7
+ --vxe-ui-input-current-height-default: var(--vxe-ui-input-height-default);
8
+ &.size--xlarge {
9
+ --vxe-ui-input-current-font-size: var(--vxe-ui-font-size-xlarge);
10
+ --vxe-ui-input-current-height-default: var(--vxe-ui-input-height-xlarge);
11
+ }
12
+ &.size--large {
13
+ --vxe-ui-input-current-font-size: var(--vxe-ui-font-size-large);
14
+ --vxe-ui-input-current-height-default: var(--vxe-ui-input-height-large);
15
+ }
16
+ &.size--medium {
17
+ --vxe-ui-input-current-font-size: var(--vxe-ui-font-size-medium);
18
+ --vxe-ui-input-current-height-default: var(--vxe-ui-input-height-medium);
19
+ }
20
+ &.size--small {
21
+ --vxe-ui-input-current-font-size: var(--vxe-ui-font-size-small);
22
+ --vxe-ui-input-current-height-default: var(--vxe-ui-input-height-small);
23
+ }
24
+ &.size--mini {
25
+ --vxe-ui-input-current-font-size: var(--vxe-ui-font-size-mini);
26
+ --vxe-ui-input-current-height-default: var(--vxe-ui-input-height-mini);
27
+ }
28
+ }
29
+
3
30
  .vxe-input--readonly {
4
31
  color: var(--vxe-ui-font-color);
5
32
  display: inline-flex;
@@ -634,9 +661,9 @@
634
661
  }
635
662
 
636
663
  .vxe-input {
637
- font-size: var(--vxe-ui-font-size-default);
638
- height: var(--vxe-ui-input-height-default);
639
- line-height: var(--vxe-ui-input-height-default);
664
+ font-size: var(--vxe-ui-input-current-font-size);
665
+ height: var(--vxe-ui-input-current-height-default);
666
+ line-height: var(--vxe-ui-input-current-height-default);
640
667
  .vxe-input--inner {
641
668
  &[type="date"]::-webkit-inner-spin-button,
642
669
  &[type="month"]::-webkit-inner-spin-button,
@@ -651,9 +678,6 @@
651
678
  }
652
679
  }
653
680
  &.size--medium {
654
- font-size: var(--vxe-ui-font-size-medium);
655
- height: var(--vxe-ui-input-height-medium);
656
- line-height: var(--vxe-ui-input-height-medium);
657
681
  .vxe-input--inner {
658
682
  &[type="date"]::-webkit-inner-spin-button,
659
683
  &[type="month"]::-webkit-inner-spin-button,
@@ -663,9 +687,6 @@
663
687
  }
664
688
  }
665
689
  &.size--small {
666
- font-size: var(--vxe-ui-font-size-small);
667
- height: var(--vxe-ui-input-height-small);
668
- line-height: var(--vxe-ui-input-height-small);
669
690
  .vxe-input--inner {
670
691
  &[type="date"]::-webkit-inner-spin-button,
671
692
  &[type="month"]::-webkit-inner-spin-button,
@@ -675,9 +696,6 @@
675
696
  }
676
697
  }
677
698
  &.size--mini {
678
- font-size: var(--vxe-ui-font-size-mini);
679
- height: var(--vxe-ui-input-height-mini);
680
- line-height: var(--vxe-ui-input-height-mini);
681
699
  .vxe-input--inner {
682
700
  &[type="date"]::-webkit-inner-spin-button,
683
701
  &[type="month"]::-webkit-inner-spin-button,
@@ -689,11 +707,11 @@
689
707
  }
690
708
 
691
709
  @mixin getPanelStyle ($sizeIndex) {
692
- $fontSizeList: var(--vxe-ui-font-size-default), var(--vxe-ui-font-size-medium), var(--vxe-ui-font-size-small), var(--vxe-ui-font-size-mini);
693
- $timeWeekRowHeightList: var(--vxe-ui-input-date-time-week-row-height-default), var(--vxe-ui-input-date-time-week-row-height-medium), var(--vxe-ui-input-date-time-week-row-height-small), var(--vxe-ui-input-date-time-week-row-height-mini);
694
- $monthYearRowHeightList: var(--vxe-ui-input-date-month-year-row-height-default), var(--vxe-ui-input-date-month-year-row-height-medium), var(--vxe-ui-input-date-month-year-row-height-small), var(--vxe-ui-input-date-month-year-row-height-mini);
695
- $quarterRowHeightList: var(--vxe-ui-input-date-quarter-row-height-default), var(--vxe-ui-input-date-quarter-row-height-medium), var(--vxe-ui-input-date-quarter-row-height-small), var(--vxe-ui-input-date-quarter-row-height-mini);
696
- $titleRowHeightList: var(--vxe-ui-input-date-title-height-default), var(--vxe-ui-input-date-title-height-medium), var(--vxe-ui-input-date-title-height-small), var(--vxe-ui-input-date-title-height-mini);
710
+ $fontSizeList: var(--vxe-ui-font-size-xlarge), var(--vxe-ui-font-size-large), var(--vxe-ui-font-size-default), var(--vxe-ui-font-size-medium), var(--vxe-ui-font-size-small), var(--vxe-ui-font-size-mini);
711
+ $timeWeekRowHeightList: var(--vxe-ui-input-date-time-week-row-height-xlarge), var(--vxe-ui-input-date-time-week-row-height-large), var(--vxe-ui-input-date-time-week-row-height-default), var(--vxe-ui-input-date-time-week-row-height-medium), var(--vxe-ui-input-date-time-week-row-height-small), var(--vxe-ui-input-date-time-week-row-height-mini);
712
+ $monthYearRowHeightList: var(--vxe-ui-input-date-month-year-row-height-xlarge), var(--vxe-ui-input-date-month-year-row-height-large), var(--vxe-ui-input-date-month-year-row-height-default), var(--vxe-ui-input-date-month-year-row-height-medium), var(--vxe-ui-input-date-month-year-row-height-small), var(--vxe-ui-input-date-month-year-row-height-mini);
713
+ $quarterRowHeightList: var(--vxe-ui-input-date-quarter-row-height-xlarge), var(--vxe-ui-input-date-quarter-row-height-large), var(--vxe-ui-input-date-quarter-row-height-default), var(--vxe-ui-input-date-quarter-row-height-medium), var(--vxe-ui-input-date-quarter-row-height-small), var(--vxe-ui-input-date-quarter-row-height-mini);
714
+ $titleRowHeightList: var(--vxe-ui-input-date-title-height-xlarge), var(--vxe-ui-input-date-title-height-large), var(--vxe-ui-input-date-title-height-default), var(--vxe-ui-input-date-title-height-medium), var(--vxe-ui-input-date-title-height-small), var(--vxe-ui-input-date-title-height-mini);
697
715
 
698
716
  font-size: list.nth($fontSizeList, $sizeIndex);
699
717
  .vxe-input--panel-wrapper {
@@ -714,13 +732,13 @@
714
732
  &.type--quarter,
715
733
  &.type--year {
716
734
  .vxe-input--panel-wrapper {
717
- $widthList: 336px, 336px, 312px, 288px;
735
+ $widthList: 336px, 336px, 336px, 336px, 312px, 288px;
718
736
  width: list.nth($widthList, $sizeIndex);
719
737
  }
720
738
  }
721
739
  &.type--week {
722
740
  .vxe-input--panel-wrapper {
723
- $widthList: 380px, 380px, 354px, 326px;
741
+ $widthList: 380px, 380px, 380px, 380px, 354px, 326px;
724
742
  width: list.nth($widthList, $sizeIndex);
725
743
  }
726
744
  }
@@ -728,12 +746,12 @@
728
746
  .vxe-input--panel-wrapper {
729
747
  display: inline-flex;
730
748
  flex-direction: column;
731
- $widthList: 170px, 168px, 154px, 146px;
749
+ $widthList: 170px, 170px, 170px, 168px, 154px, 146px;
732
750
  }
733
751
  }
734
752
  &.type--datetime {
735
753
  .vxe-input--panel-left-wrapper {
736
- $widthList: 336px, 336px, 312px, 288px;
754
+ $widthList: 336px, 336px, 336px, 336px, 312px, 288px;
737
755
  width: list.nth($widthList, $sizeIndex);
738
756
  }
739
757
  .vxe-input--panel-left-wrapper,
@@ -773,7 +791,7 @@
773
791
  }
774
792
  .vxe-input--time-picker-header,
775
793
  .vxe-input--date-picker-header {
776
- $paddingBottomList: 8px, 7px, 6px, 5px;
794
+ $paddingBottomList: 10px, 9px, 8px, 7px, 6px, 5px;
777
795
  padding-bottom: list.nth($paddingBottomList, $sizeIndex);
778
796
  }
779
797
  .vxe-input--date-picker-body table,
@@ -781,12 +799,12 @@
781
799
  height: calc(list.nth($timeWeekRowHeightList, $sizeIndex) * 6 + list.nth($titleRowHeightList, $sizeIndex));
782
800
  }
783
801
  .vxe-input--time-picker-body {
784
- $ulWidthList: 48px, 48px, 44px, 42px;
802
+ $ulWidthList: 48px, 48px, 48px, 48px, 44px, 42px;
785
803
  & > ul {
786
804
  width: list.nth($ulWidthList, $sizeIndex);
787
805
  &:before,
788
806
  &:after {
789
- $heightList: 120px, 120px, 110px, 100px;
807
+ $heightList: 120px, 120px, 120px, 120px, 110px, 100px;
790
808
  height: list.nth($heightList, $sizeIndex);
791
809
  }
792
810
  & > li {
@@ -833,14 +851,20 @@
833
851
  }
834
852
 
835
853
  .vxe-input--panel {
836
- @include getPanelStyle(1);
837
- &.size--medium {
854
+ @include getPanelStyle(3);
855
+ &.size--xlarge {
856
+ @include getPanelStyle(1);
857
+ }
858
+ &.size--large {
838
859
  @include getPanelStyle(2);
839
860
  }
861
+ &.size--medium {
862
+ @include getPanelStyle(4);
863
+ }
840
864
  &.size--small {
841
- @include getPanelStyle(3);
865
+ @include getPanelStyle(5);
842
866
  }
843
867
  &.size--mini {
844
- @include getPanelStyle(4);
868
+ @include getPanelStyle(6);
845
869
  }
846
870
  }
@@ -5,6 +5,14 @@
5
5
  .vxe-menu--collapse-wrapper {
6
6
  --vxe-ui-menu-current-font-size: var(--vxe-ui-font-size-default);
7
7
  --vxe-ui-menu-current-item-height: var(--vxe-ui-menu-item-height-default);
8
+ &.size--xlarge {
9
+ --vxe-ui-menu-current-font-size: var(--vxe-ui-font-size-xlarge);
10
+ --vxe-ui-menu-current-item-height: var(--vxe-ui-menu-item-height-xlarge);
11
+ }
12
+ &.size--large {
13
+ --vxe-ui-menu-current-font-size: var(--vxe-ui-font-size-large);
14
+ --vxe-ui-menu-current-item-height: var(--vxe-ui-menu-item-height-large);
15
+ }
8
16
  &.size--medium {
9
17
  --vxe-ui-menu-current-font-size: var(--vxe-ui-font-size-medium);
10
18
  --vxe-ui-menu-current-item-height: var(--vxe-ui-menu-item-height-medium);
@@ -1,6 +1,32 @@
1
1
  @use "sass:list";
2
2
  @use '../helpers/baseMixin.scss';
3
3
 
4
+ // 局部变量
5
+ .vxe-number-input {
6
+ --vxe-ui-number-input-current-font-size: var(--vxe-ui-font-size-default);
7
+ --vxe-ui-number-input-current-height: var(--vxe-ui-input-height-default);
8
+ &.size--xlarge {
9
+ --vxe-ui-number-input-current-font-size: var(--vxe-ui-font-size-xlarge);
10
+ --vxe-ui-number-input-current-height: var(--vxe-ui-input-height-xlarge);
11
+ }
12
+ &.size--large {
13
+ --vxe-ui-number-input-current-font-size: var(--vxe-ui-font-size-large);
14
+ --vxe-ui-number-input-current-height: var(--vxe-ui-input-height-large);
15
+ }
16
+ &.size--medium {
17
+ --vxe-ui-number-input-current-font-size: var(--vxe-ui-font-size-medium);
18
+ --vxe-ui-number-input-current-height: var(--vxe-ui-input-height-medium);
19
+ }
20
+ &.size--small {
21
+ --vxe-ui-number-input-current-font-size: var(--vxe-ui-font-size-small);
22
+ --vxe-ui-number-input-current-height: var(--vxe-ui-input-height-small);
23
+ }
24
+ &.size--mini {
25
+ --vxe-ui-number-input-current-font-size: var(--vxe-ui-font-size-mini);
26
+ --vxe-ui-number-input-current-height: var(--vxe-ui-input-height-mini);
27
+ }
28
+ }
29
+
4
30
  .vxe-number-input--readonly {
5
31
  color: var(--vxe-ui-font-color);
6
32
  display: inline-flex;
@@ -257,27 +283,7 @@
257
283
  }
258
284
 
259
285
  .vxe-number-input {
260
- font-size: var(--vxe-ui-font-size-default);
261
- height: var(--vxe-ui-input-height-default);
262
- line-height: var(--vxe-ui-input-height-default);
263
- .vxe-number-input--input {
264
- &[type="number"]::-webkit-inner-spin-button {
265
- height: 24px;
266
- }
267
- }
268
- &.size--medium {
269
- font-size: var(--vxe-ui-font-size-medium);
270
- height: var(--vxe-ui-input-height-medium);
271
- line-height: var(--vxe-ui-input-height-medium);
272
- }
273
- &.size--small {
274
- font-size: var(--vxe-ui-font-size-small);
275
- height: var(--vxe-ui-input-height-small);
276
- line-height: var(--vxe-ui-input-height-small);
277
- }
278
- &.size--mini {
279
- font-size: var(--vxe-ui-font-size-mini);
280
- height: var(--vxe-ui-input-height-mini);
281
- line-height: var(--vxe-ui-input-height-mini);
282
- }
286
+ font-size: var(--vxe-ui-number-input-current-font-size);
287
+ height: var(--vxe-ui-number-input-current-height);
288
+ line-height: var(--vxe-ui-number-input-current-height);
283
289
  }