vxe-pc-ui 3.14.5 → 3.14.7

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 (200) hide show
  1. package/es/checkbox/src/button.js +25 -4
  2. package/es/checkbox/src/checkbox.js +25 -4
  3. package/es/checkbox/src/group.js +25 -3
  4. package/es/checkbox/style.css +6 -3
  5. package/es/checkbox/style.min.css +1 -1
  6. package/es/language/ar-EG.js +4 -0
  7. package/es/language/de-DE.js +4 -0
  8. package/es/language/en-US.js +4 -0
  9. package/es/language/es-ES.js +4 -0
  10. package/es/language/fr-FR.js +4 -0
  11. package/es/language/hu-HU.js +4 -0
  12. package/es/language/hy-AM.js +4 -0
  13. package/es/language/id-ID.js +4 -0
  14. package/es/language/it-IT.js +4 -0
  15. package/es/language/ja-JP.js +4 -0
  16. package/es/language/ko-KR.js +4 -0
  17. package/es/language/ms-MY.js +4 -0
  18. package/es/language/nb-NO.js +4 -0
  19. package/es/language/pt-BR.js +4 -0
  20. package/es/language/ru-RU.js +4 -0
  21. package/es/language/th-TH.js +4 -0
  22. package/es/language/ug-CN.js +4 -0
  23. package/es/language/uk-UA.js +4 -0
  24. package/es/language/uz-UZ.js +4 -0
  25. package/es/language/vi-VN.js +4 -0
  26. package/es/language/zh-CHT.js +4 -0
  27. package/es/language/zh-CN.js +4 -0
  28. package/es/radio/src/button.js +26 -5
  29. package/es/radio/src/group.js +19 -2
  30. package/es/radio/src/radio.js +26 -5
  31. package/es/radio/style.css +5 -3
  32. package/es/radio/style.min.css +1 -1
  33. package/es/style.css +1 -1
  34. package/es/style.min.css +1 -1
  35. package/es/switch/src/switch.js +19 -11
  36. package/es/tree/src/tree.js +40 -5
  37. package/es/tree/style.css +11 -6
  38. package/es/tree/style.min.css +1 -1
  39. package/es/tree-select/src/tree-select.js +2 -0
  40. package/es/ui/index.js +1 -1
  41. package/es/ui/src/log.js +1 -1
  42. package/es/vxe-checkbox/style.css +6 -3
  43. package/es/vxe-checkbox/style.min.css +1 -1
  44. package/es/vxe-radio/style.css +5 -3
  45. package/es/vxe-radio/style.min.css +1 -1
  46. package/es/vxe-tree/style.css +11 -6
  47. package/es/vxe-tree/style.min.css +1 -1
  48. package/lib/checkbox/src/button.js +20 -3
  49. package/lib/checkbox/src/button.min.js +1 -1
  50. package/lib/checkbox/src/checkbox.js +20 -3
  51. package/lib/checkbox/src/checkbox.min.js +1 -1
  52. package/lib/checkbox/src/group.js +24 -2
  53. package/lib/checkbox/src/group.min.js +1 -1
  54. package/lib/checkbox/style/style.css +6 -3
  55. package/lib/checkbox/style/style.min.css +1 -1
  56. package/lib/index.umd.js +187 -34
  57. package/lib/index.umd.min.js +1 -1
  58. package/lib/language/ar-EG.js +4 -0
  59. package/lib/language/ar-EG.min.js +1 -1
  60. package/lib/language/ar-EG.umd.js +4 -0
  61. package/lib/language/de-DE.js +4 -0
  62. package/lib/language/de-DE.min.js +1 -1
  63. package/lib/language/de-DE.umd.js +4 -0
  64. package/lib/language/en-US.js +4 -0
  65. package/lib/language/en-US.min.js +1 -1
  66. package/lib/language/en-US.umd.js +4 -0
  67. package/lib/language/es-ES.js +4 -0
  68. package/lib/language/es-ES.min.js +1 -1
  69. package/lib/language/es-ES.umd.js +4 -0
  70. package/lib/language/fr-FR.js +4 -0
  71. package/lib/language/fr-FR.min.js +1 -1
  72. package/lib/language/fr-FR.umd.js +4 -0
  73. package/lib/language/hu-HU.js +4 -0
  74. package/lib/language/hu-HU.min.js +1 -1
  75. package/lib/language/hu-HU.umd.js +4 -0
  76. package/lib/language/hy-AM.js +4 -0
  77. package/lib/language/hy-AM.min.js +1 -1
  78. package/lib/language/hy-AM.umd.js +4 -0
  79. package/lib/language/id-ID.js +4 -0
  80. package/lib/language/id-ID.min.js +1 -1
  81. package/lib/language/id-ID.umd.js +4 -0
  82. package/lib/language/it-IT.js +4 -0
  83. package/lib/language/it-IT.min.js +1 -1
  84. package/lib/language/it-IT.umd.js +4 -0
  85. package/lib/language/ja-JP.js +4 -0
  86. package/lib/language/ja-JP.min.js +1 -1
  87. package/lib/language/ja-JP.umd.js +4 -0
  88. package/lib/language/ko-KR.js +4 -0
  89. package/lib/language/ko-KR.min.js +1 -1
  90. package/lib/language/ko-KR.umd.js +4 -0
  91. package/lib/language/ms-MY.js +4 -0
  92. package/lib/language/ms-MY.min.js +1 -1
  93. package/lib/language/ms-MY.umd.js +4 -0
  94. package/lib/language/nb-NO.js +4 -0
  95. package/lib/language/nb-NO.min.js +1 -1
  96. package/lib/language/nb-NO.umd.js +4 -0
  97. package/lib/language/pt-BR.js +4 -0
  98. package/lib/language/pt-BR.min.js +1 -1
  99. package/lib/language/pt-BR.umd.js +4 -0
  100. package/lib/language/ru-RU.js +4 -0
  101. package/lib/language/ru-RU.min.js +1 -1
  102. package/lib/language/ru-RU.umd.js +4 -0
  103. package/lib/language/th-TH.js +4 -0
  104. package/lib/language/th-TH.min.js +1 -1
  105. package/lib/language/th-TH.umd.js +4 -0
  106. package/lib/language/ug-CN.js +4 -0
  107. package/lib/language/ug-CN.min.js +1 -1
  108. package/lib/language/ug-CN.umd.js +4 -0
  109. package/lib/language/uk-UA.js +4 -0
  110. package/lib/language/uk-UA.min.js +1 -1
  111. package/lib/language/uk-UA.umd.js +4 -0
  112. package/lib/language/uz-UZ.js +4 -0
  113. package/lib/language/uz-UZ.min.js +1 -1
  114. package/lib/language/uz-UZ.umd.js +4 -0
  115. package/lib/language/vi-VN.js +4 -0
  116. package/lib/language/vi-VN.min.js +1 -1
  117. package/lib/language/vi-VN.umd.js +4 -0
  118. package/lib/language/zh-CHT.js +4 -0
  119. package/lib/language/zh-CHT.min.js +1 -1
  120. package/lib/language/zh-CHT.umd.js +4 -0
  121. package/lib/language/zh-CN.js +4 -0
  122. package/lib/language/zh-CN.min.js +1 -1
  123. package/lib/language/zh-CN.umd.js +4 -0
  124. package/lib/radio/src/button.js +20 -3
  125. package/lib/radio/src/button.min.js +1 -1
  126. package/lib/radio/src/group.js +18 -1
  127. package/lib/radio/src/group.min.js +1 -1
  128. package/lib/radio/src/radio.js +20 -3
  129. package/lib/radio/src/radio.min.js +1 -1
  130. package/lib/radio/style/style.css +5 -3
  131. package/lib/radio/style/style.min.css +1 -1
  132. package/lib/style.css +1 -1
  133. package/lib/style.min.css +1 -1
  134. package/lib/switch/src/switch.js +15 -10
  135. package/lib/switch/src/switch.min.js +1 -1
  136. package/lib/tree/src/tree.js +40 -5
  137. package/lib/tree/src/tree.min.js +1 -1
  138. package/lib/tree/style/style.css +11 -6
  139. package/lib/tree/style/style.min.css +1 -1
  140. package/lib/tree-select/src/tree-select.js +2 -0
  141. package/lib/tree-select/src/tree-select.min.js +1 -1
  142. package/lib/ui/index.js +1 -1
  143. package/lib/ui/index.min.js +1 -1
  144. package/lib/ui/src/log.js +1 -1
  145. package/lib/ui/src/log.min.js +1 -1
  146. package/lib/vxe-checkbox/style/style.css +6 -3
  147. package/lib/vxe-checkbox/style/style.min.css +1 -1
  148. package/lib/vxe-radio/style/style.css +5 -3
  149. package/lib/vxe-radio/style/style.min.css +1 -1
  150. package/lib/vxe-tree/style/style.css +11 -6
  151. package/lib/vxe-tree/style/style.min.css +1 -1
  152. package/package.json +2 -2
  153. package/packages/checkbox/src/button.ts +25 -4
  154. package/packages/checkbox/src/checkbox.ts +26 -4
  155. package/packages/checkbox/src/group.ts +25 -2
  156. package/packages/input/src/input.ts +1 -1
  157. package/packages/language/ar-EG.ts +4 -0
  158. package/packages/language/de-DE.ts +4 -0
  159. package/packages/language/en-US.ts +4 -0
  160. package/packages/language/es-ES.ts +4 -0
  161. package/packages/language/fr-FR.ts +4 -0
  162. package/packages/language/hu-HU.ts +4 -0
  163. package/packages/language/hy-AM.ts +4 -0
  164. package/packages/language/id-ID.ts +4 -0
  165. package/packages/language/it-IT.ts +4 -0
  166. package/packages/language/ja-JP.ts +4 -0
  167. package/packages/language/ko-KR.ts +4 -0
  168. package/packages/language/ms-MY.ts +4 -0
  169. package/packages/language/nb-NO.ts +4 -0
  170. package/packages/language/pt-BR.ts +4 -0
  171. package/packages/language/ru-RU.ts +4 -0
  172. package/packages/language/th-TH.ts +4 -0
  173. package/packages/language/ug-CN.ts +4 -0
  174. package/packages/language/uk-UA.ts +4 -0
  175. package/packages/language/uz-UZ.ts +4 -0
  176. package/packages/language/vi-VN.ts +4 -0
  177. package/packages/language/zh-CHT.ts +4 -0
  178. package/packages/language/zh-CN.ts +4 -0
  179. package/packages/radio/src/button.ts +26 -5
  180. package/packages/radio/src/group.ts +19 -1
  181. package/packages/radio/src/radio.ts +26 -5
  182. package/packages/switch/src/switch.ts +19 -11
  183. package/packages/tree/src/tree.ts +47 -5
  184. package/packages/tree-select/src/tree-select.ts +2 -0
  185. package/styles/helpers/baseMixin.scss +12 -3
  186. package/types/components/checkbox-group.d.ts +3 -0
  187. package/types/components/radio-group.d.ts +3 -0
  188. package/types/components/tree.d.ts +10 -0
  189. /package/es/icon/{iconfont.1778223321885.ttf → iconfont.1778465052628.ttf} +0 -0
  190. /package/es/icon/{iconfont.1778223321885.woff → iconfont.1778465052628.woff} +0 -0
  191. /package/es/icon/{iconfont.1778223321885.woff2 → iconfont.1778465052628.woff2} +0 -0
  192. /package/es/{iconfont.1778223321885.ttf → iconfont.1778465052628.ttf} +0 -0
  193. /package/es/{iconfont.1778223321885.woff → iconfont.1778465052628.woff} +0 -0
  194. /package/es/{iconfont.1778223321885.woff2 → iconfont.1778465052628.woff2} +0 -0
  195. /package/lib/icon/style/{iconfont.1778223321885.ttf → iconfont.1778465052628.ttf} +0 -0
  196. /package/lib/icon/style/{iconfont.1778223321885.woff → iconfont.1778465052628.woff} +0 -0
  197. /package/lib/icon/style/{iconfont.1778223321885.woff2 → iconfont.1778465052628.woff2} +0 -0
  198. /package/lib/{iconfont.1778223321885.ttf → iconfont.1778465052628.ttf} +0 -0
  199. /package/lib/{iconfont.1778223321885.woff → iconfont.1778465052628.woff} +0 -0
  200. /package/lib/{iconfont.1778223321885.woff2 → iconfont.1778465052628.woff2} +0 -0
@@ -556,6 +556,10 @@ export default {
556
556
  contextMenu: {
557
557
  loadingText: '加载中...'
558
558
  },
559
+ switch: {
560
+ onText: '打开',
561
+ offText: '关闭'
562
+ },
559
563
  gantt: {
560
564
  tFullFormat: {
561
565
  year: '{yyyy}年',
@@ -556,6 +556,10 @@ export default {
556
556
  contextMenu: {
557
557
  loadingText: '加载中...'
558
558
  },
559
+ switch: {
560
+ onText: '打开',
561
+ offText: '关闭'
562
+ },
559
563
  gantt: {
560
564
  tFullFormat: {
561
565
  year: '{yyyy}年',
@@ -556,6 +556,10 @@ export default {
556
556
  contextMenu: {
557
557
  loadingText: '加载中...'
558
558
  },
559
+ switch: {
560
+ onText: '打开',
561
+ offText: '关闭'
562
+ },
559
563
  gantt: {
560
564
  tFullFormat: {
561
565
  year: '{yyyy}年',
@@ -556,6 +556,10 @@ export default {
556
556
  contextMenu: {
557
557
  loadingText: '加载中...'
558
558
  },
559
+ switch: {
560
+ onText: '打开',
561
+ offText: '关闭'
562
+ },
559
563
  gantt: {
560
564
  tFullFormat: {
561
565
  year: '{yyyy}年',
@@ -556,6 +556,10 @@ export default {
556
556
  contextMenu: {
557
557
  loadingText: '加载中...'
558
558
  },
559
+ switch: {
560
+ onText: '打开',
561
+ offText: '关闭'
562
+ },
559
563
  gantt: {
560
564
  tFullFormat: {
561
565
  year: '{yyyy}年',
@@ -556,6 +556,10 @@ export default {
556
556
  contextMenu: {
557
557
  loadingText: '加载中...'
558
558
  },
559
+ switch: {
560
+ onText: '打开',
561
+ offText: '关闭'
562
+ },
559
563
  gantt: {
560
564
  tFullFormat: {
561
565
  year: '{yyyy}年',
@@ -556,6 +556,10 @@ export default {
556
556
  contextMenu: {
557
557
  loadingText: '加载中...'
558
558
  },
559
+ switch: {
560
+ onText: '打开',
561
+ offText: '关闭'
562
+ },
559
563
  gantt: {
560
564
  tFullFormat: {
561
565
  year: '{yyyy}年',
@@ -556,6 +556,10 @@ export default {
556
556
  contextMenu: {
557
557
  loadingText: '加载中...'
558
558
  },
559
+ switch: {
560
+ onText: '打开',
561
+ offText: '关闭'
562
+ },
559
563
  gantt: {
560
564
  tFullFormat: {
561
565
  year: '{yyyy}年',
@@ -2,7 +2,7 @@ import { PropType, CreateElement, VNode } from 'vue'
2
2
  import { defineVxeComponent } from '../../ui/src/comp'
3
3
  import XEUtils from 'xe-utils'
4
4
  import { getFuncText } from '../../ui/src/utils'
5
- import { getConfig, createEvent, globalMixins } from '../../ui'
5
+ import { getConfig, createEvent, globalMixins, renderEmptyElement } from '../../ui'
6
6
 
7
7
  import type { VxeRadioButtonPropTypes, RadioButtonReactData, RadioGroupPrivateComputed, VxeRadioGroupConstructor, ValueOf, VxeRadioButtonEmits, VxeRadioGroupPrivateMethods, VxeFormConstructor, VxeComponentPermissionInfo, VxeComponentSizeType, VxeFormPrivateMethods, VxeFormDefines } from '../../../types'
8
8
 
@@ -75,8 +75,9 @@ export default /* define-vxe-component start */ defineVxeComponent({
75
75
  const { disabled } = $xeRadioButton
76
76
  if (disabled === null) {
77
77
  if ($xeRadioGroup) {
78
- const isDisabled = $xeRadioGroup.computeIsDisabled
79
- return isDisabled
78
+ const isGroupDisabled = $xeRadioGroup.computeIsDisabled
79
+ const isGroupReadonly = $xeRadioGroup.computeIsReadonly
80
+ return isGroupDisabled || isGroupReadonly
80
81
  }
81
82
  }
82
83
  return disabled
@@ -176,14 +177,34 @@ export default /* define-vxe-component start */ defineVxeComponent({
176
177
  const $xeRadioButton = this
177
178
  const props = $xeRadioButton
178
179
  const slots = $xeRadioButton.$scopedSlots
180
+ const $xeRadioGroup = $xeRadioButton.$xeRadioGroup
179
181
 
180
- const { label, checkedValue } = props
182
+ const { label, content, checkedValue } = props
181
183
  const radioValue = XEUtils.isUndefined(checkedValue) ? label : checkedValue
182
184
  const vSize = $xeRadioButton.computeSize
183
185
  const isDisabled = $xeRadioButton.computeIsDisabled
184
186
  const name = $xeRadioButton.computeName
185
187
  const isChecked = $xeRadioButton.computeChecked
188
+ const defaultSlot = slots.default
186
189
 
190
+ if ($xeRadioGroup) {
191
+ const isGroupReadonly = $xeRadioGroup.computeIsReadonly
192
+ if (isGroupReadonly) {
193
+ if (isChecked) {
194
+ return h('label', {
195
+ class: ['vxe-radio vxe-radio--button-view', {
196
+ [`size--${vSize}`]: vSize,
197
+ 'is--readonly': isGroupReadonly
198
+ }]
199
+ }, [
200
+ h('span', {
201
+ class: 'vxe-checkbox--label'
202
+ }, defaultSlot ? defaultSlot({}) : getFuncText(content))
203
+ ])
204
+ }
205
+ return renderEmptyElement($xeRadioButton)
206
+ }
207
+ }
187
208
  return h('label', {
188
209
  key: radioValue,
189
210
  class: ['vxe-radio vxe-radio--button', {
@@ -211,7 +232,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
211
232
  }),
212
233
  h('span', {
213
234
  class: 'vxe-radio--label'
214
- }, slots.default ? slots.default({}) : getFuncText(props.content))
235
+ }, defaultSlot ? defaultSlot({}) : getFuncText(content))
215
236
  ])
216
237
  }
217
238
  },
@@ -25,6 +25,10 @@ export default /* define-vxe-component start */ defineVxeComponent({
25
25
  type: Boolean as PropType<VxeRadioGroupPropTypes.Disabled>,
26
26
  default: null
27
27
  },
28
+ readonly: {
29
+ type: Boolean as PropType<VxeRadioGroupPropTypes.Readonly>,
30
+ default: null
31
+ },
28
32
  type: String as PropType<VxeRadioGroupPropTypes.Type>,
29
33
  options: Array as PropType<VxeRadioGroupPropTypes.Options>,
30
34
  optionProps: Object as PropType<VxeRadioGroupPropTypes.OptionProps>,
@@ -71,6 +75,20 @@ export default /* define-vxe-component start */ defineVxeComponent({
71
75
  $xeForm(): (VxeFormConstructor & VxeFormPrivateMethods) | null
72
76
  formItemInfo(): VxeFormDefines.ProvideItemInfo | null
73
77
  }),
78
+ computeIsReadonly () {
79
+ const $xeRadioGroup = this
80
+ const props = $xeRadioGroup
81
+ const $xeForm = $xeRadioGroup.$xeForm
82
+
83
+ const { readonly } = props
84
+ if (readonly === null) {
85
+ if ($xeForm) {
86
+ return $xeForm.readonly
87
+ }
88
+ return false
89
+ }
90
+ return readonly
91
+ },
74
92
  computeIsDisabled () {
75
93
  const $xeRadioGroup = this
76
94
  const props = $xeRadioGroup
@@ -79,7 +97,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
79
97
  const { disabled } = props
80
98
  if (disabled === null) {
81
99
  if ($xeForm) {
82
- return $xeForm.readonly || $xeForm.disabled
100
+ return $xeForm.disabled
83
101
  }
84
102
  return false
85
103
  }
@@ -2,7 +2,7 @@ import { PropType, CreateElement, VNode } from 'vue'
2
2
  import { defineVxeComponent } from '../../ui/src/comp'
3
3
  import XEUtils from 'xe-utils'
4
4
  import { getFuncText } from '../../ui/src/utils'
5
- import { getConfig, createEvent, globalMixins, getIcon } from '../../ui'
5
+ import { getConfig, createEvent, globalMixins, getIcon, renderEmptyElement } from '../../ui'
6
6
 
7
7
  import type { VxeRadioPropTypes, RadioReactData, VxeRadioEmits, RadioGroupPrivateComputed, VxeRadioGroupConstructor, VxeRadioGroupPrivateMethods, VxeFormConstructor, VxeFormPrivateMethods, VxeComponentPermissionInfo, VxeComponentSizeType, VxeFormDefines, ValueOf } from '../../../types'
8
8
 
@@ -76,8 +76,9 @@ export default /* define-vxe-component start */ defineVxeComponent({
76
76
  const { disabled } = $xeRadio
77
77
  if (disabled === null) {
78
78
  if ($xeRadioGroup) {
79
- const isDisabled = $xeRadioGroup.computeIsDisabled
80
- return isDisabled
79
+ const isGroupDisabled = $xeRadioGroup.computeIsDisabled
80
+ const isGroupReadonly = $xeRadioGroup.computeIsReadonly
81
+ return isGroupDisabled || isGroupReadonly
81
82
  }
82
83
  }
83
84
  return disabled
@@ -178,15 +179,35 @@ export default /* define-vxe-component start */ defineVxeComponent({
178
179
  renderVN (h: CreateElement): VNode {
179
180
  const $xeRadio = this
180
181
  const props = $xeRadio
182
+ const $xeRadioGroup = $xeRadio.$xeRadioGroup
181
183
 
182
- const { label, checkedValue } = props
184
+ const { label, content, checkedValue } = props
183
185
  const radioValue = XEUtils.isUndefined(checkedValue) ? label : checkedValue
184
186
  const slots = $xeRadio.$scopedSlots
185
187
  const vSize = $xeRadio.computeSize
186
188
  const isDisabled = $xeRadio.computeIsDisabled
187
189
  const name = $xeRadio.computeName
188
190
  const isChecked = $xeRadio.computeChecked
191
+ const defaultSlot = slots.default
189
192
 
193
+ if ($xeRadioGroup) {
194
+ const isGroupReadonly = $xeRadioGroup.computeIsReadonly
195
+ if (isGroupReadonly) {
196
+ if (isChecked) {
197
+ return h('label', {
198
+ class: ['vxe-radio vxe-radio--view', {
199
+ [`size--${vSize}`]: vSize,
200
+ 'is--readonly': isGroupReadonly
201
+ }]
202
+ }, [
203
+ h('span', {
204
+ class: 'vxe-checkbox--label'
205
+ }, defaultSlot ? defaultSlot({}) : getFuncText(content))
206
+ ])
207
+ }
208
+ return renderEmptyElement($xeRadio)
209
+ }
210
+ }
190
211
  return h('label', {
191
212
  key: radioValue,
192
213
  class: ['vxe-radio vxe-radio--default', {
@@ -218,7 +239,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
218
239
  }),
219
240
  h('span', {
220
241
  class: 'vxe-radio--label'
221
- }, slots.default ? slots.default({}) : getFuncText(props.content))
242
+ }, defaultSlot ? defaultSlot({}) : getFuncText(content))
222
243
  ])
223
244
  }
224
245
  },
@@ -1,7 +1,7 @@
1
1
  import { PropType, CreateElement, VNode } from 'vue'
2
2
  import { defineVxeComponent } from '../../ui/src/comp'
3
3
  import XEUtils from 'xe-utils'
4
- import { getConfig, createEvent, globalMixins, renderEmptyElement } from '../../ui'
4
+ import { getConfig, getI18n, createEvent, globalMixins, renderEmptyElement } from '../../ui'
5
5
  import { getFuncText } from '../../ui/src/utils'
6
6
 
7
7
  import type { VxeSwitchPropTypes, VxeSwitchEmits, VxeFormConstructor, VxeFormPrivateMethods, VxeFormDefines, SwitchReactData, SwitchInternalData, VxeComponentPermissionInfo, VxeComponentSizeType, ValueOf } from '../../../types'
@@ -71,33 +71,33 @@ export default /* define-vxe-component start */ defineVxeComponent({
71
71
  $xeForm(): (VxeFormConstructor & VxeFormPrivateMethods) | null
72
72
  formItemInfo(): VxeFormDefines.ProvideItemInfo | null
73
73
  }),
74
- computeIsDisabled () {
74
+ computeIsReadonly () {
75
75
  const $xeSwitch = this
76
76
  const props = $xeSwitch
77
77
  const $xeForm = $xeSwitch.$xeForm
78
78
 
79
- const { disabled } = props
80
- if (disabled === null) {
79
+ const { readonly } = props
80
+ if (readonly === null) {
81
81
  if ($xeForm) {
82
- return $xeForm.readonly || $xeForm.disabled
82
+ return $xeForm.readonly
83
83
  }
84
84
  return false
85
85
  }
86
- return disabled
86
+ return readonly
87
87
  },
88
- computeIsReadonly () {
88
+ computeIsDisabled () {
89
89
  const $xeSwitch = this
90
90
  const props = $xeSwitch
91
91
  const $xeForm = $xeSwitch.$xeForm
92
92
 
93
- const { readonly } = props
94
- if (readonly === null) {
93
+ const { disabled } = props
94
+ if (disabled === null) {
95
95
  if ($xeForm) {
96
- return $xeForm.readonly || $xeForm.disabled
96
+ return $xeForm.disabled
97
97
  }
98
98
  return false
99
99
  }
100
- return readonly
100
+ return disabled
101
101
  },
102
102
  computeOnShowLabel () {
103
103
  const $xeSwitch = this
@@ -219,6 +219,14 @@ export default /* define-vxe-component start */ defineVxeComponent({
219
219
  const isDisabled = $xeSwitch.computeIsDisabled
220
220
  const isReadonly = $xeSwitch.computeIsReadonly
221
221
 
222
+ if (isReadonly) {
223
+ return h('div', {
224
+ class: ['vxe-switch', isChecked ? 'is--on' : 'is--off', {
225
+ [`size--${vSize}`]: vSize,
226
+ 'is--readonly': isReadonly
227
+ }]
228
+ }, isChecked ? (onShowLabel || getI18n('vxe.switch.onText')) : offShowLabel || getI18n('vxe.switch.offText'))
229
+ }
222
230
  return h('div', {
223
231
  class: ['vxe-switch', isChecked ? 'is--on' : 'is--off', {
224
232
  [`size--${vSize}`]: vSize,
@@ -649,6 +649,14 @@ export default /* define-vxe-component start */ defineVxeComponent({
649
649
  type: String as PropType<VxeTreePropTypes.IconLoaded>,
650
650
  default: () => getConfig().tree.iconLoaded
651
651
  },
652
+ rootParentValue: {
653
+ type: [String, Number] as PropType<VxeTreePropTypes.RootParentValue>,
654
+ default: () => getConfig().tree.rootParentValue
655
+ },
656
+ rootValues: {
657
+ type: Array as PropType<VxeTreePropTypes.RootValues>,
658
+ default: () => getConfig().tree.rootValues
659
+ },
652
660
  filterValue: [String, Number] as PropType<VxeTreePropTypes.FilterValue>,
653
661
  filterConfig: Object as PropType<VxeTreePropTypes.FilterConfig>,
654
662
  size: {
@@ -671,7 +679,10 @@ export default /* define-vxe-component start */ defineVxeComponent({
671
679
  xID,
672
680
  reactData,
673
681
  internalData,
674
- crossTreeDragNodeInfo: crossTreeDragNodeGlobal
682
+ crossTreeDragNodeInfo: crossTreeDragNodeGlobal,
683
+
684
+ hFlag: 0,
685
+ rootConf: 0
675
686
  }
676
687
  },
677
688
  computed: {
@@ -1286,12 +1297,20 @@ export default /* define-vxe-component start */ defineVxeComponent({
1286
1297
  const props = $xeTree
1287
1298
  const internalData = $xeTree.internalData
1288
1299
 
1289
- const { expandAll, expandNodeKeys, transform } = props
1300
+ const { expandAll, expandNodeKeys, transform, rootParentValue, rootValues } = props
1290
1301
  const { initialized, scrollYStore } = internalData
1291
1302
  const keyField = $xeTree.computeKeyField
1292
1303
  const parentField = $xeTree.computeParentField
1293
1304
  const childrenField = $xeTree.computeChildrenField
1294
- const fullData = transform ? XEUtils.toArrayTree(list, { key: keyField, parentKey: parentField, mapChildren: childrenField }) : list ? list.slice(0) : []
1305
+ const fullData = transform
1306
+ ? XEUtils.toArrayTree(list, {
1307
+ key: keyField,
1308
+ parentKey: parentField,
1309
+ mapChildren: childrenField,
1310
+ rootParentValue,
1311
+ rootValues
1312
+ })
1313
+ : list ? list.slice(0) : []
1295
1314
  internalData.treeFullData = fullData
1296
1315
  Object.assign(scrollYStore, {
1297
1316
  startIndex: 0,
@@ -3001,20 +3020,43 @@ export default /* define-vxe-component start */ defineVxeComponent({
3001
3020
 
3002
3021
  $xeTree.triggerSearchEvent(new Event('filter'))
3003
3022
  },
3023
+
3004
3024
  height () {
3005
3025
  const $xeTree = this
3006
3026
 
3007
- $xeTree.recalculate()
3027
+ $xeTree.hFlag++
3008
3028
  },
3009
3029
  minHeight () {
3010
3030
  const $xeTree = this
3011
3031
 
3012
- $xeTree.recalculate()
3032
+ $xeTree.hFlag++
3013
3033
  },
3014
3034
  maxHeight () {
3015
3035
  const $xeTree = this
3016
3036
 
3037
+ $xeTree.hFlag++
3038
+ },
3039
+ hFlag () {
3040
+ const $xeTree = this
3041
+
3017
3042
  $xeTree.recalculate()
3043
+ },
3044
+
3045
+ rootParentValue () {
3046
+ const $xeTree = this
3047
+
3048
+ $xeTree.rootConf++
3049
+ },
3050
+ rootValues () {
3051
+ const $xeTree = this
3052
+
3053
+ $xeTree.rootConf++
3054
+ },
3055
+ rootConf () {
3056
+ const $xeTree = this
3057
+ const props = $xeTree
3058
+
3059
+ $xeTree.loadData(props.data || [])
3018
3060
  }
3019
3061
  },
3020
3062
  created () {
@@ -1029,6 +1029,8 @@ export default /* define-vxe-component start */ defineVxeComponent({
1029
1029
  loadMethod: treeOpts.loadMethod,
1030
1030
  toggleMethod: treeOpts.toggleMethod,
1031
1031
  transform: treeOpts.transform,
1032
+ rootParentValue: treeOpts.rootParentValue,
1033
+ rootValues: treeOpts.rootValues,
1032
1034
  trigger: treeOpts.trigger,
1033
1035
  showIcon: treeOpts.showIcon,
1034
1036
  showLine: treeOpts.showLine,
@@ -3,6 +3,9 @@
3
3
  }
4
4
 
5
5
  @mixin createCheckboxIcon {
6
+ & {
7
+ cursor: pointer;
8
+ }
6
9
  .vxe-checkbox--icon {
7
10
  font-size: 1.22em;
8
11
  }
@@ -20,7 +23,6 @@
20
23
  }
21
24
  }
22
25
  &:not(.is--disabled) {
23
- cursor: pointer;
24
26
  &:hover {
25
27
  .vxe-checkbox--icon {
26
28
  color: var(--vxe-ui-font-primary-color);
@@ -30,6 +32,9 @@
30
32
  &.is--hidden {
31
33
  cursor: default;
32
34
  }
35
+ &.is--readonly {
36
+ cursor: auto;
37
+ }
33
38
  &.is--disabled {
34
39
  color: var(--vxe-ui-font-disabled-color);
35
40
  cursor: not-allowed;
@@ -44,7 +49,9 @@
44
49
  }
45
50
 
46
51
  @mixin createRadioIcon {
47
- cursor: pointer;
52
+ & {
53
+ cursor: pointer;
54
+ }
48
55
  .vxe-radio--icon {
49
56
  font-size: 1.26em;
50
57
  }
@@ -62,13 +69,15 @@
62
69
  }
63
70
  }
64
71
  &:not(.is--disabled) {
65
- cursor: pointer;
66
72
  &:hover {
67
73
  .vxe-radio--icon {
68
74
  color: var(--vxe-ui-font-primary-color);
69
75
  }
70
76
  }
71
77
  }
78
+ &.is--readonly {
79
+ cursor: auto;
80
+ }
72
81
  &.is--disabled {
73
82
  color: var(--vxe-ui-font-disabled-color);
74
83
  cursor: not-allowed;
@@ -32,6 +32,7 @@ export namespace VxeCheckboxGroupPropTypes {
32
32
  }
33
33
  export type Max = string | number
34
34
  export type Disabled = boolean
35
+ export type Readonly = boolean
35
36
  export interface DefaultConfig {
36
37
  /**
37
38
  * 默认选择模式,默认选中行为只会在初始化时触发一次
@@ -53,12 +54,14 @@ export interface VxeCheckboxGroupProps {
53
54
  * 是否禁用
54
55
  */
55
56
  disabled?: VxeCheckboxGroupPropTypes.Disabled
57
+ readonly?: VxeCheckboxGroupPropTypes.Readonly
56
58
  defaultConfig?: VxeCheckboxGroupPropTypes.DefaultConfig
57
59
  }
58
60
 
59
61
  export interface CheckboxGroupPrivateComputed {
60
62
  computeIsMaximize: boolean
61
63
  computeIsDisabled: boolean | undefined
64
+ computeIsReadonly: boolean | undefined
62
65
  }
63
66
  export interface VxeCheckboxGroupPrivateComputed extends CheckboxGroupPrivateComputed { }
64
67
 
@@ -34,6 +34,7 @@ export namespace VxeRadioGroupPropTypes {
34
34
  export type ModelValue = any
35
35
  export type Strict = boolean
36
36
  export type Disabled = boolean
37
+ export type Readonly = boolean
37
38
  export interface DefaultConfig {
38
39
  /**
39
40
  * 默认选择模式,默认选中行为只会在初始化时触发一次
@@ -53,11 +54,13 @@ export interface VxeRadioGroupProps {
53
54
  strict?: VxeRadioGroupPropTypes.Strict
54
55
  value?: VxeRadioGroupPropTypes.ModelValue
55
56
  disabled?: VxeRadioGroupPropTypes.Disabled
57
+ readonly?: VxeRadioGroupPropTypes.Readonly
56
58
  defaultConfig?: VxeRadioGroupPropTypes.DefaultConfig
57
59
  }
58
60
 
59
61
  export interface RadioGroupPrivateComputed {
60
62
  computeIsDisabled: boolean | undefined
63
+ computeIsReadonly: boolean | undefined
61
64
  }
62
65
  export interface VxeRadioGroupPrivateComputed extends RadioGroupPrivateComputed { }
63
66
 
@@ -43,6 +43,8 @@ export namespace VxeTreePropTypes {
43
43
  export type HasChildField = string
44
44
  export type MapChildrenField = string
45
45
  export type Transform = boolean
46
+ export type RootParentValue = string | number | null
47
+ export type RootValues = (string | number)[]
46
48
  export type Trigger = '' | 'default' | 'node'
47
49
  /**
48
50
  * 已废弃,请使用 nodeConfig.isCurrent
@@ -287,6 +289,14 @@ export interface VxeTreeProps<D = any> {
287
289
  */
288
290
  expandNodeKeys?: VxeTreePropTypes.ExpandNodeKeys
289
291
  transform?: VxeTreePropTypes.Transform
292
+ /**
293
+ * 用于 transform 模式,指定根节点的父级节点值
294
+ */
295
+ rootParentValue?: VxeTreePropTypes.RootParentValue
296
+ /**
297
+ * 用于 transform 模式,指定根节点的值
298
+ */
299
+ rootValues?: VxeTreePropTypes.RootValues
290
300
  trigger?: VxeTreePropTypes.Trigger
291
301
  /**
292
302
  * 已废弃,请使用 nodeConfig.isCurrent