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
@@ -1,7 +1,7 @@
1
1
  import { defineVxeComponent } from '../../ui/src/comp';
2
2
  import XEUtils from 'xe-utils';
3
3
  import { getFuncText } from '../../ui/src/utils';
4
- import { getConfig, createEvent, globalMixins } from '../../ui';
4
+ import { getConfig, createEvent, globalMixins, renderEmptyElement } from '../../ui';
5
5
  export default {
6
6
  name: 'VxeCheckboxButton',
7
7
  mixins: [
@@ -70,8 +70,9 @@ export default {
70
70
  if (disabled === null) {
71
71
  if ($xeCheckboxGroup) {
72
72
  const isGroupDisabled = $xeCheckboxGroup.computeIsDisabled;
73
+ const isGroupReadonly = $xeCheckboxGroup.computeIsReadonly;
73
74
  const isGroupMaximize = $xeCheckboxGroup.computeIsMaximize;
74
- return isGroupDisabled || (isGroupMaximize && !isChecked);
75
+ return isGroupDisabled || isGroupReadonly || (isGroupMaximize && !isChecked);
75
76
  }
76
77
  }
77
78
  return disabled;
@@ -127,10 +128,30 @@ export default {
127
128
  const $xeCheckboxButton = this;
128
129
  const props = $xeCheckboxButton;
129
130
  const slots = $xeCheckboxButton.$scopedSlots;
130
- const { label } = props;
131
+ const $xeCheckboxGroup = $xeCheckboxButton.$xeCheckboxGroup;
132
+ const { label, content } = props;
131
133
  const vSize = $xeCheckboxButton.computeSize;
132
134
  const isDisabled = $xeCheckboxButton.computeIsDisabled;
133
135
  const isChecked = $xeCheckboxButton.computeIsChecked;
136
+ const defaultSlot = slots.default;
137
+ if ($xeCheckboxGroup) {
138
+ const isGroupReadonly = $xeCheckboxGroup.computeIsReadonly;
139
+ if (isGroupReadonly) {
140
+ if (isChecked) {
141
+ return h('label', {
142
+ class: ['vxe-checkbox vxe-checkbox--button-view', {
143
+ [`size--${vSize}`]: vSize,
144
+ 'is--readonly': isGroupReadonly
145
+ }]
146
+ }, [
147
+ h('span', {
148
+ class: 'vxe-checkbox--label'
149
+ }, defaultSlot ? defaultSlot({}) : getFuncText(content))
150
+ ]);
151
+ }
152
+ return renderEmptyElement($xeCheckboxButton);
153
+ }
154
+ }
134
155
  return h('label', {
135
156
  key: label,
136
157
  class: ['vxe-checkbox vxe-checkbox--button', {
@@ -156,7 +177,7 @@ export default {
156
177
  }),
157
178
  h('span', {
158
179
  class: 'vxe-checkbox--label'
159
- }, slots.default ? slots.default({}) : getFuncText(props.content))
180
+ }, defaultSlot ? defaultSlot({}) : getFuncText(props.content))
160
181
  ]);
161
182
  }
162
183
  },
@@ -1,7 +1,7 @@
1
1
  import { defineVxeComponent } from '../../ui/src/comp';
2
2
  import XEUtils from 'xe-utils';
3
3
  import { getFuncText } from '../../ui/src/utils';
4
- import { getConfig, createEvent, globalMixins, getIcon } from '../../ui';
4
+ import { getConfig, createEvent, globalMixins, getIcon, renderEmptyElement } from '../../ui';
5
5
  export default {
6
6
  name: 'VxeCheckbox',
7
7
  mixins: [
@@ -70,8 +70,9 @@ export default {
70
70
  if (disabled === null) {
71
71
  if ($xeCheckboxGroup) {
72
72
  const isGroupDisabled = $xeCheckboxGroup.computeIsDisabled;
73
+ const isGroupReadonly = $xeCheckboxGroup.computeIsReadonly;
73
74
  const isGroupMaximize = $xeCheckboxGroup.computeIsMaximize;
74
- return isGroupDisabled || (isGroupMaximize && !isChecked);
75
+ return isGroupDisabled || isGroupReadonly || (isGroupMaximize && !isChecked);
75
76
  }
76
77
  }
77
78
  return disabled;
@@ -127,11 +128,31 @@ export default {
127
128
  const $xeCheckbox = this;
128
129
  const props = $xeCheckbox;
129
130
  const slots = $xeCheckbox.$scopedSlots;
130
- const { label } = props;
131
+ const $xeCheckboxGroup = $xeCheckbox.$xeCheckboxGroup;
132
+ const { label, content } = props;
131
133
  const vSize = $xeCheckbox.computeSize;
132
134
  const isDisabled = $xeCheckbox.computeIsDisabled;
133
135
  const isChecked = $xeCheckbox.computeIsChecked;
134
136
  const indeterminate = !isChecked && props.indeterminate;
137
+ const defaultSlot = slots.default;
138
+ if ($xeCheckboxGroup) {
139
+ const isGroupReadonly = $xeCheckboxGroup.computeIsReadonly;
140
+ if (isGroupReadonly) {
141
+ if (isChecked) {
142
+ return h('label', {
143
+ class: ['vxe-checkbox vxe-checkbox--view', {
144
+ [`size--${vSize}`]: vSize,
145
+ 'is--readonly': isGroupReadonly
146
+ }]
147
+ }, [
148
+ h('span', {
149
+ class: 'vxe-checkbox--label'
150
+ }, defaultSlot ? defaultSlot({}) : getFuncText(content))
151
+ ]);
152
+ }
153
+ return renderEmptyElement($xeCheckbox);
154
+ }
155
+ }
135
156
  return h('label', {
136
157
  key: label,
137
158
  class: ['vxe-checkbox vxe-checkbox--default', {
@@ -162,7 +183,7 @@ export default {
162
183
  }),
163
184
  h('span', {
164
185
  class: 'vxe-checkbox--label'
165
- }, slots.default ? slots.default({}) : getFuncText(props.content))
186
+ }, defaultSlot ? defaultSlot({}) : getFuncText(content))
166
187
  ]);
167
188
  }
168
189
  },
@@ -16,6 +16,10 @@ export default {
16
16
  value: Array,
17
17
  options: Array,
18
18
  optionProps: Object,
19
+ readonly: {
20
+ type: Boolean,
21
+ default: null
22
+ },
19
23
  disabled: {
20
24
  type: Boolean,
21
25
  default: null
@@ -54,14 +58,27 @@ export default {
54
58
  internalData
55
59
  };
56
60
  },
57
- computed: Object.assign(Object.assign({}, {}), { computeIsDisabled() {
61
+ computed: Object.assign(Object.assign({}, {}), { computeIsReadonly() {
62
+ const $xeCheckboxGroup = this;
63
+ const props = $xeCheckboxGroup;
64
+ const $xeForm = $xeCheckboxGroup.$xeForm;
65
+ const { readonly } = props;
66
+ if (readonly === null) {
67
+ if ($xeForm) {
68
+ return $xeForm.readonly;
69
+ }
70
+ return false;
71
+ }
72
+ return readonly;
73
+ },
74
+ computeIsDisabled() {
58
75
  const $xeCheckboxGroup = this;
59
76
  const props = $xeCheckboxGroup;
60
77
  const $xeForm = $xeCheckboxGroup.$xeForm;
61
78
  const { disabled } = props;
62
79
  if (disabled === null) {
63
80
  if ($xeForm) {
64
- return $xeForm.readonly || $xeForm.disabled;
81
+ return $xeForm.disabled;
65
82
  }
66
83
  return false;
67
84
  }
@@ -190,8 +207,13 @@ export default {
190
207
  const valueField = $xeCheckboxGroup.computeValueField;
191
208
  const labelField = $xeCheckboxGroup.computeLabelField;
192
209
  const disabledField = $xeCheckboxGroup.computeDisabledField;
210
+ const isReadonly = $xeCheckboxGroup.computeIsReadonly;
211
+ const isDisabled = $xeCheckboxGroup.computeIsDisabled;
193
212
  return h('div', {
194
- class: 'vxe-checkbox-group'
213
+ class: ['vxe-checkbox-group', {
214
+ 'is--readonly': isReadonly,
215
+ 'is--disabled': isDisabled
216
+ }]
195
217
  }, defaultSlot
196
218
  ? defaultSlot({})
197
219
  : (options
@@ -21,6 +21,9 @@
21
21
  white-space: nowrap;
22
22
  line-height: 1;
23
23
  }
24
+ .vxe-checkbox {
25
+ cursor: pointer;
26
+ }
24
27
  .vxe-checkbox .vxe-checkbox--icon {
25
28
  font-size: 1.22em;
26
29
  }
@@ -39,15 +42,15 @@
39
42
  .vxe-checkbox.is--checked .vxe-checkbox--icon, .vxe-checkbox.is--indeterminate .vxe-checkbox--icon {
40
43
  color: var(--vxe-ui-font-primary-color);
41
44
  }
42
- .vxe-checkbox:not(.is--disabled) {
43
- cursor: pointer;
44
- }
45
45
  .vxe-checkbox:not(.is--disabled):hover .vxe-checkbox--icon {
46
46
  color: var(--vxe-ui-font-primary-color);
47
47
  }
48
48
  .vxe-checkbox.is--hidden {
49
49
  cursor: default;
50
50
  }
51
+ .vxe-checkbox.is--readonly {
52
+ cursor: auto;
53
+ }
51
54
  .vxe-checkbox.is--disabled {
52
55
  color: var(--vxe-ui-font-disabled-color);
53
56
  cursor: not-allowed;
@@ -1 +1 @@
1
- .vxe-checkbox-group{display:inline-flex;vertical-align:middle;line-height:1}.vxe-checkbox-slots{display:none}.vxe-checkbox--readonly{color:var(--vxe-ui-font-color);display:inline-flex}.vxe-checkbox{display:inline-flex;vertical-align:middle;white-space:nowrap;line-height:1}.vxe-checkbox .vxe-checkbox--icon{font-size:1.22em}.vxe-checkbox .vxe-checkbox--icon{color:var(--vxe-ui-input-border-color);vertical-align:middle;font-weight:700;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vxe-checkbox.is--checked,.vxe-checkbox.is--indeterminate{color:var(--vxe-ui-font-primary-color)}.vxe-checkbox.is--checked .vxe-checkbox--icon,.vxe-checkbox.is--indeterminate .vxe-checkbox--icon{color:var(--vxe-ui-font-primary-color)}.vxe-checkbox:not(.is--disabled){cursor:pointer}.vxe-checkbox:not(.is--disabled):hover .vxe-checkbox--icon{color:var(--vxe-ui-font-primary-color)}.vxe-checkbox.is--hidden{cursor:default}.vxe-checkbox.is--disabled{color:var(--vxe-ui-font-disabled-color);cursor:not-allowed}.vxe-checkbox.is--disabled .vxe-checkbox--icon{color:var(--vxe-ui-input-disabled-color)}.vxe-checkbox .vxe-checkbox--label{padding-left:.5em;vertical-align:middle}.vxe-checkbox>input[type=checkbox]{position:absolute;width:0;height:0;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.vxe-checkbox:not(.is--disabled)>input:focus+.vxe-checkbox--icon{color:var(--vxe-ui-font-primary-darken-color)}.vxe-checkbox .vxe-checkbox--label{padding-left:.5em;vertical-align:middle;display:inline-block;max-width:50em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-checkbox{font-size:var(--vxe-ui-font-size-default)}.vxe-checkbox.size--medium{font-size:var(--vxe-ui-font-size-medium)}.vxe-checkbox.size--small{font-size:var(--vxe-ui-font-size-small)}.vxe-checkbox.size--mini{font-size:var(--vxe-ui-font-size-mini)}.vxe-checkbox--default,.vxe-checkbox-group{margin-right:var(--vxe-ui-base-margin-gap-default)}.vxe-checkbox--default.size--medium,.vxe-checkbox-group.size--medium{margin-right:var(--vxe-ui-base-margin-gap-medium)}.vxe-checkbox--default.size--small,.vxe-checkbox-group.size--small{margin-right:var(--vxe-ui-base-margin-gap-small)}.vxe-checkbox--default.size--mini,.vxe-checkbox-group.size--mini{margin-right:var(--vxe-ui-base-margin-gap-mini)}.vxe-checkbox--default:last-of-type,.vxe-checkbox-group:last-of-type{margin-right:0}
1
+ .vxe-checkbox-group{display:inline-flex;vertical-align:middle;line-height:1}.vxe-checkbox-slots{display:none}.vxe-checkbox--readonly{color:var(--vxe-ui-font-color);display:inline-flex}.vxe-checkbox{display:inline-flex;vertical-align:middle;white-space:nowrap;line-height:1}.vxe-checkbox{cursor:pointer}.vxe-checkbox .vxe-checkbox--icon{font-size:1.22em}.vxe-checkbox .vxe-checkbox--icon{color:var(--vxe-ui-input-border-color);vertical-align:middle;font-weight:700;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vxe-checkbox.is--checked,.vxe-checkbox.is--indeterminate{color:var(--vxe-ui-font-primary-color)}.vxe-checkbox.is--checked .vxe-checkbox--icon,.vxe-checkbox.is--indeterminate .vxe-checkbox--icon{color:var(--vxe-ui-font-primary-color)}.vxe-checkbox:not(.is--disabled):hover .vxe-checkbox--icon{color:var(--vxe-ui-font-primary-color)}.vxe-checkbox.is--hidden{cursor:default}.vxe-checkbox.is--readonly{cursor:auto}.vxe-checkbox.is--disabled{color:var(--vxe-ui-font-disabled-color);cursor:not-allowed}.vxe-checkbox.is--disabled .vxe-checkbox--icon{color:var(--vxe-ui-input-disabled-color)}.vxe-checkbox .vxe-checkbox--label{padding-left:.5em;vertical-align:middle}.vxe-checkbox>input[type=checkbox]{position:absolute;width:0;height:0;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.vxe-checkbox:not(.is--disabled)>input:focus+.vxe-checkbox--icon{color:var(--vxe-ui-font-primary-darken-color)}.vxe-checkbox .vxe-checkbox--label{padding-left:.5em;vertical-align:middle;display:inline-block;max-width:50em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-checkbox{font-size:var(--vxe-ui-font-size-default)}.vxe-checkbox.size--medium{font-size:var(--vxe-ui-font-size-medium)}.vxe-checkbox.size--small{font-size:var(--vxe-ui-font-size-small)}.vxe-checkbox.size--mini{font-size:var(--vxe-ui-font-size-mini)}.vxe-checkbox--default,.vxe-checkbox-group{margin-right:var(--vxe-ui-base-margin-gap-default)}.vxe-checkbox--default.size--medium,.vxe-checkbox-group.size--medium{margin-right:var(--vxe-ui-base-margin-gap-medium)}.vxe-checkbox--default.size--small,.vxe-checkbox-group.size--small{margin-right:var(--vxe-ui-base-margin-gap-small)}.vxe-checkbox--default.size--mini,.vxe-checkbox-group.size--mini{margin-right:var(--vxe-ui-base-margin-gap-mini)}.vxe-checkbox--default:last-of-type,.vxe-checkbox-group:last-of-type{margin-right: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: 'Loading'
558
558
  },
559
+ switch: {
560
+ onText: 'On',
561
+ offText: 'Off'
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}年',
@@ -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}年',
@@ -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}年',
@@ -1,7 +1,7 @@
1
1
  import { defineVxeComponent } from '../../ui/src/comp';
2
2
  import XEUtils from 'xe-utils';
3
3
  import { getFuncText } from '../../ui/src/utils';
4
- import { getConfig, createEvent, globalMixins } from '../../ui';
4
+ import { getConfig, createEvent, globalMixins, renderEmptyElement } from '../../ui';
5
5
  export default {
6
6
  name: 'VxeRadioButton',
7
7
  mixins: [
@@ -61,8 +61,9 @@ export default {
61
61
  const { disabled } = $xeRadioButton;
62
62
  if (disabled === null) {
63
63
  if ($xeRadioGroup) {
64
- const isDisabled = $xeRadioGroup.computeIsDisabled;
65
- return isDisabled;
64
+ const isGroupDisabled = $xeRadioGroup.computeIsDisabled;
65
+ const isGroupReadonly = $xeRadioGroup.computeIsReadonly;
66
+ return isGroupDisabled || isGroupReadonly;
66
67
  }
67
68
  }
68
69
  return disabled;
@@ -155,12 +156,32 @@ export default {
155
156
  const $xeRadioButton = this;
156
157
  const props = $xeRadioButton;
157
158
  const slots = $xeRadioButton.$scopedSlots;
158
- const { label, checkedValue } = props;
159
+ const $xeRadioGroup = $xeRadioButton.$xeRadioGroup;
160
+ const { label, content, checkedValue } = props;
159
161
  const radioValue = XEUtils.isUndefined(checkedValue) ? label : checkedValue;
160
162
  const vSize = $xeRadioButton.computeSize;
161
163
  const isDisabled = $xeRadioButton.computeIsDisabled;
162
164
  const name = $xeRadioButton.computeName;
163
165
  const isChecked = $xeRadioButton.computeChecked;
166
+ const defaultSlot = slots.default;
167
+ if ($xeRadioGroup) {
168
+ const isGroupReadonly = $xeRadioGroup.computeIsReadonly;
169
+ if (isGroupReadonly) {
170
+ if (isChecked) {
171
+ return h('label', {
172
+ class: ['vxe-radio vxe-radio--button-view', {
173
+ [`size--${vSize}`]: vSize,
174
+ 'is--readonly': isGroupReadonly
175
+ }]
176
+ }, [
177
+ h('span', {
178
+ class: 'vxe-checkbox--label'
179
+ }, defaultSlot ? defaultSlot({}) : getFuncText(content))
180
+ ]);
181
+ }
182
+ return renderEmptyElement($xeRadioButton);
183
+ }
184
+ }
164
185
  return h('label', {
165
186
  key: radioValue,
166
187
  class: ['vxe-radio vxe-radio--button', {
@@ -188,7 +209,7 @@ export default {
188
209
  }),
189
210
  h('span', {
190
211
  class: 'vxe-radio--label'
191
- }, slots.default ? slots.default({}) : getFuncText(props.content))
212
+ }, defaultSlot ? defaultSlot({}) : getFuncText(content))
192
213
  ]);
193
214
  }
194
215
  },
@@ -20,6 +20,10 @@ export default {
20
20
  type: Boolean,
21
21
  default: null
22
22
  },
23
+ readonly: {
24
+ type: Boolean,
25
+ default: null
26
+ },
23
27
  type: String,
24
28
  options: Array,
25
29
  optionProps: Object,
@@ -58,14 +62,27 @@ export default {
58
62
  internalData
59
63
  };
60
64
  },
61
- computed: Object.assign(Object.assign({}, {}), { computeIsDisabled() {
65
+ computed: Object.assign(Object.assign({}, {}), { computeIsReadonly() {
66
+ const $xeRadioGroup = this;
67
+ const props = $xeRadioGroup;
68
+ const $xeForm = $xeRadioGroup.$xeForm;
69
+ const { readonly } = props;
70
+ if (readonly === null) {
71
+ if ($xeForm) {
72
+ return $xeForm.readonly;
73
+ }
74
+ return false;
75
+ }
76
+ return readonly;
77
+ },
78
+ computeIsDisabled() {
62
79
  const $xeRadioGroup = this;
63
80
  const props = $xeRadioGroup;
64
81
  const $xeForm = $xeRadioGroup.$xeForm;
65
82
  const { disabled } = props;
66
83
  if (disabled === null) {
67
84
  if ($xeForm) {
68
- return $xeForm.readonly || $xeForm.disabled;
85
+ return $xeForm.disabled;
69
86
  }
70
87
  return false;
71
88
  }
@@ -1,7 +1,7 @@
1
1
  import { defineVxeComponent } from '../../ui/src/comp';
2
2
  import XEUtils from 'xe-utils';
3
3
  import { getFuncText } from '../../ui/src/utils';
4
- import { getConfig, createEvent, globalMixins, getIcon } from '../../ui';
4
+ import { getConfig, createEvent, globalMixins, getIcon, renderEmptyElement } from '../../ui';
5
5
  export default {
6
6
  name: 'VxeRadio',
7
7
  mixins: [
@@ -62,8 +62,9 @@ export default {
62
62
  const { disabled } = $xeRadio;
63
63
  if (disabled === null) {
64
64
  if ($xeRadioGroup) {
65
- const isDisabled = $xeRadioGroup.computeIsDisabled;
66
- return isDisabled;
65
+ const isGroupDisabled = $xeRadioGroup.computeIsDisabled;
66
+ const isGroupReadonly = $xeRadioGroup.computeIsReadonly;
67
+ return isGroupDisabled || isGroupReadonly;
67
68
  }
68
69
  }
69
70
  return disabled;
@@ -157,13 +158,33 @@ export default {
157
158
  renderVN(h) {
158
159
  const $xeRadio = this;
159
160
  const props = $xeRadio;
160
- const { label, checkedValue } = props;
161
+ const $xeRadioGroup = $xeRadio.$xeRadioGroup;
162
+ const { label, content, checkedValue } = props;
161
163
  const radioValue = XEUtils.isUndefined(checkedValue) ? label : checkedValue;
162
164
  const slots = $xeRadio.$scopedSlots;
163
165
  const vSize = $xeRadio.computeSize;
164
166
  const isDisabled = $xeRadio.computeIsDisabled;
165
167
  const name = $xeRadio.computeName;
166
168
  const isChecked = $xeRadio.computeChecked;
169
+ const defaultSlot = slots.default;
170
+ if ($xeRadioGroup) {
171
+ const isGroupReadonly = $xeRadioGroup.computeIsReadonly;
172
+ if (isGroupReadonly) {
173
+ if (isChecked) {
174
+ return h('label', {
175
+ class: ['vxe-radio vxe-radio--view', {
176
+ [`size--${vSize}`]: vSize,
177
+ 'is--readonly': isGroupReadonly
178
+ }]
179
+ }, [
180
+ h('span', {
181
+ class: 'vxe-checkbox--label'
182
+ }, defaultSlot ? defaultSlot({}) : getFuncText(content))
183
+ ]);
184
+ }
185
+ return renderEmptyElement($xeRadio);
186
+ }
187
+ }
167
188
  return h('label', {
168
189
  key: radioValue,
169
190
  class: ['vxe-radio vxe-radio--default', {
@@ -195,7 +216,7 @@ export default {
195
216
  }),
196
217
  h('span', {
197
218
  class: 'vxe-radio--label'
198
- }, slots.default ? slots.default({}) : getFuncText(props.content))
219
+ }, defaultSlot ? defaultSlot({}) : getFuncText(content))
199
220
  ]);
200
221
  }
201
222
  },