@ray-js/smart-ui 2.13.2-beta-0 → 2.13.2-beta-1

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 (103) hide show
  1. package/es/@types/config-provider/index.d.ts +7 -2
  2. package/es/@types/config-provider/theme-vars.d.ts +1 -1
  3. package/es/action-sheet/README.md +613 -0
  4. package/es/battery/README.md +149 -0
  5. package/es/bottom-sheet/README.md +495 -0
  6. package/es/button/README.md +335 -0
  7. package/es/calendar/README.md +513 -0
  8. package/es/cascader/README.md +326 -0
  9. package/es/cell/README.md +317 -0
  10. package/es/checkbox/README.md +481 -0
  11. package/es/circle/README.md +132 -0
  12. package/es/col/README.md +162 -0
  13. package/es/collapse/README.md +127 -0
  14. package/es/config-provider/README.md +150 -0
  15. package/es/count-down/README.md +201 -0
  16. package/es/custom-keyboard/README.md +122 -0
  17. package/es/datetime-picker/README.md +438 -0
  18. package/es/dialog/README.md +451 -0
  19. package/es/divider/README.md +132 -0
  20. package/es/dropdown-menu/README.md +331 -0
  21. package/es/empty/README.md +119 -0
  22. package/es/field/README.md +455 -0
  23. package/es/grid/README.md +273 -0
  24. package/es/icon/README.md +178 -0
  25. package/es/image/README.md +225 -0
  26. package/es/index-bar/README.md +186 -0
  27. package/es/loading/README.md +120 -0
  28. package/es/nav-bar/README.md +410 -0
  29. package/es/notice-bar/README.md +274 -0
  30. package/es/notify/README.md +121 -0
  31. package/es/overlay/README.md +128 -0
  32. package/es/picker/README.md +412 -0
  33. package/es/popover/README.md +338 -0
  34. package/es/popup/README.md +272 -0
  35. package/es/progress/README.md +88 -0
  36. package/es/radio/README.md +423 -0
  37. package/es/rate/README.md +248 -0
  38. package/es/search/README.md +290 -0
  39. package/es/sidebar/README.md +176 -0
  40. package/es/skeleton/README.md +141 -0
  41. package/es/slider/README.md +444 -0
  42. package/es/stepper/README.md +231 -0
  43. package/es/sticky/README.md +91 -0
  44. package/es/swipe-cell/README.md +217 -0
  45. package/es/switch/README.md +316 -0
  46. package/es/tab/README.md +501 -0
  47. package/es/tabbar/README.md +397 -0
  48. package/es/tag/README.md +215 -0
  49. package/es/toast/README.md +293 -0
  50. package/es/transition/README.md +140 -0
  51. package/es/tree-select/README.md +348 -0
  52. package/lib/@types/config-provider/index.d.ts +7 -2
  53. package/lib/@types/config-provider/theme-vars.d.ts +1 -1
  54. package/lib/action-sheet/README.md +613 -0
  55. package/lib/battery/README.md +149 -0
  56. package/lib/bottom-sheet/README.md +495 -0
  57. package/lib/button/README.md +335 -0
  58. package/lib/calendar/README.md +513 -0
  59. package/lib/cascader/README.md +326 -0
  60. package/lib/cell/README.md +317 -0
  61. package/lib/checkbox/README.md +481 -0
  62. package/lib/circle/README.md +132 -0
  63. package/lib/col/README.md +162 -0
  64. package/lib/collapse/README.md +127 -0
  65. package/lib/config-provider/README.md +150 -0
  66. package/lib/count-down/README.md +201 -0
  67. package/lib/custom-keyboard/README.md +122 -0
  68. package/lib/datetime-picker/README.md +438 -0
  69. package/lib/dialog/README.md +451 -0
  70. package/lib/divider/README.md +132 -0
  71. package/lib/dropdown-menu/README.md +331 -0
  72. package/lib/empty/README.md +119 -0
  73. package/lib/field/README.md +455 -0
  74. package/lib/grid/README.md +273 -0
  75. package/lib/icon/README.md +178 -0
  76. package/lib/image/README.md +225 -0
  77. package/lib/index-bar/README.md +186 -0
  78. package/lib/loading/README.md +120 -0
  79. package/lib/nav-bar/README.md +410 -0
  80. package/lib/notice-bar/README.md +274 -0
  81. package/lib/notify/README.md +121 -0
  82. package/lib/overlay/README.md +128 -0
  83. package/lib/picker/README.md +412 -0
  84. package/lib/popover/README.md +338 -0
  85. package/lib/popup/README.md +272 -0
  86. package/lib/progress/README.md +88 -0
  87. package/lib/radio/README.md +423 -0
  88. package/lib/rate/README.md +248 -0
  89. package/lib/search/README.md +290 -0
  90. package/lib/sidebar/README.md +176 -0
  91. package/lib/skeleton/README.md +141 -0
  92. package/lib/slider/README.md +444 -0
  93. package/lib/stepper/README.md +231 -0
  94. package/lib/sticky/README.md +91 -0
  95. package/lib/swipe-cell/README.md +217 -0
  96. package/lib/switch/README.md +316 -0
  97. package/lib/tab/README.md +501 -0
  98. package/lib/tabbar/README.md +397 -0
  99. package/lib/tag/README.md +215 -0
  100. package/lib/toast/README.md +293 -0
  101. package/lib/transition/README.md +140 -0
  102. package/lib/tree-select/README.md +348 -0
  103. package/package.json +3 -3
@@ -0,0 +1,423 @@
1
+ ---
2
+ category: 数据录入
3
+ ---
4
+
5
+ # Radio 单选框
6
+
7
+ ### 介绍
8
+
9
+ 在一组备选项中进行单选。
10
+
11
+ ### 引入
12
+
13
+ ```jsx
14
+ import { Radio, RadioGroup } from '@ray-js/smart-ui';
15
+ ```
16
+
17
+ ## 代码演示
18
+
19
+ ### 基础用法
20
+
21
+ 通过`value`绑定值当前选中项的 name 。
22
+
23
+ ```jsx
24
+ import { Radio, RadioGroup } from '@ray-js/smart-ui';
25
+ import React, { useState } from 'react';
26
+
27
+ export default function Demo() {
28
+ const [radio, setRadio] = useState('1');
29
+
30
+ const onChange = event => {
31
+ setRadio(event.detail);
32
+ };
33
+
34
+ return (
35
+ <RadioGroup value={radio} onChange={onChange}>
36
+ <Radio name="1" customClass="demo-radio-inline" />
37
+ <Radio name="2" customClass="demo-radio-inline" />
38
+ </RadioGroup>
39
+ );
40
+ }
41
+ ```
42
+
43
+ ```css
44
+ .demo-radio-inline {
45
+ margin: 10px 0 0 20px;
46
+ display: inline-block !important;
47
+ }
48
+ ```
49
+
50
+ ### 禁用状态
51
+
52
+ 通过`disabled`属性禁止选项切换,在`Radio`上设置`disabled`可以禁用单个选项。
53
+
54
+ ```jsx
55
+ import { Radio, RadioGroup } from '@ray-js/smart-ui';
56
+ import React, { useState } from 'react';
57
+
58
+ export default function Demo() {
59
+ const [radio, setRadio] = useState('1');
60
+
61
+ const onChange = event => {
62
+ setRadio(event.detail);
63
+ };
64
+
65
+ return (
66
+ <RadioGroup disabled value={radio} onChange={onChange}>
67
+ <Radio name="1" customClass="demo-radio-inline" />
68
+ <Radio name="2" customClass="demo-radio-inline" />
69
+ </RadioGroup>
70
+ );
71
+ }
72
+ ```
73
+
74
+ ### 自定义形状
75
+
76
+ 将`shape`属性设置为`square`,单选框的形状会变成方形。
77
+
78
+ ```jsx
79
+ import { Radio, RadioGroup } from '@ray-js/smart-ui';
80
+ import React, { useState } from 'react';
81
+
82
+ export default function Demo() {
83
+ const [radio, setRadio] = useState('1');
84
+
85
+ const onChange = event => {
86
+ setRadio(event.detail);
87
+ };
88
+
89
+ return (
90
+ <RadioGroup value={radio} onChange={onChange}>
91
+ <Radio name="1" shape="square" customClass="demo-radio-inline" />
92
+ <Radio name="2" shape="square" customClass="demo-radio-inline" />
93
+ </RadioGroup>
94
+ );
95
+ }
96
+ ```
97
+
98
+ ### 自定义颜色
99
+
100
+ 通过`checkedColor`属性设置选中状态的图标颜色。
101
+
102
+ ```jsx
103
+ import { Radio, RadioGroup } from '@ray-js/smart-ui';
104
+ import React, { useState } from 'react';
105
+
106
+ export default function Demo() {
107
+ const [radio, setRadio] = useState('1');
108
+
109
+ const onChange = event => {
110
+ setRadio(event.detail);
111
+ };
112
+
113
+ return (
114
+ <RadioGroup value={radio} onChange={onChange}>
115
+ <Radio name="1" customClass="demo-radio-inline" checkedColor="#10D0D0" />
116
+ <Radio name="2" customClass="demo-radio-inline" checkedColor="#10D0D0" />
117
+ </RadioGroup>
118
+ );
119
+ }
120
+ ```
121
+
122
+ ### 自定义大小
123
+
124
+ 通过`iconSize`属性可以自定义图标的大小。
125
+
126
+ ```jsx
127
+ import { Radio, RadioGroup } from '@ray-js/smart-ui';
128
+ import React, { useState } from 'react';
129
+
130
+ export default function Demo() {
131
+ const [radio, setRadio] = useState('1');
132
+
133
+ const onChange = event => {
134
+ setRadio(event.detail);
135
+ };
136
+
137
+ return (
138
+ <RadioGroup value={radio} onChange={onChange}>
139
+ <Radio name="1" iconSize="28px" customClass="demo-radio-inline" />
140
+ <Radio name="2" iconSize="28px" customClass="demo-radio-inline" />
141
+ </RadioGroup>
142
+ );
143
+ }
144
+ ```
145
+
146
+ ### 自定义文本
147
+
148
+ 通过 children 子节点可以自定义文本内容。
149
+
150
+ ```jsx
151
+ import { Radio, RadioGroup } from '@ray-js/smart-ui';
152
+ import React, { useState } from 'react';
153
+
154
+ export default function Demo() {
155
+ const [radio, setRadio] = useState('1');
156
+
157
+ const onChange = event => {
158
+ setRadio(event.detail);
159
+ };
160
+
161
+ return (
162
+ <RadioGroup value={radio} onChange={onChange}>
163
+ <Radio name="1">Radio 单选框 1</Radio>
164
+ <Radio name="2">Radio 单选框 2</Radio>
165
+ </RadioGroup>
166
+ );
167
+ }
168
+ ```
169
+
170
+ ### 水平排列
171
+
172
+ 将`direction`属性设置为`horizontal`后,单选框组会变成水平排列。
173
+
174
+ ```jsx
175
+ import { Radio, RadioGroup } from '@ray-js/smart-ui';
176
+ import React, { useState } from 'react';
177
+
178
+ export default function Demo() {
179
+ const [radio, setRadio] = useState('1');
180
+
181
+ const onChange = event => {
182
+ setRadio(event.detail);
183
+ };
184
+
185
+ return (
186
+ <RadioGroup value={radio} onChange={onChange} direction="horizontal">
187
+ <Radio name="1" customClass="demo-radio">单选框 1</Radio>
188
+ <Radio name="2" customClass="demo-radio">单选框 2</Radio>
189
+ </RadioGroup>
190
+ );
191
+ }
192
+ ```
193
+
194
+ ```css
195
+ .demo-radio {
196
+ margin: 10px 0 0 20px;
197
+ }
198
+ ```
199
+
200
+ ### 自定义图标
201
+
202
+ 通过`icon`插槽自定义图标,需要设置`useIconSlot`属性。
203
+
204
+ ```jsx
205
+ import { Radio, RadioGroup, Image } from '@ray-js/smart-ui';
206
+ import React, { useState } from 'react';
207
+
208
+ const icon = {
209
+ normal: 'https://images.tuyacn.com/content-platform/hestia/1729664215ebd89f13e54.png',
210
+ active: 'https://images.tuyacn.com/content-platform/hestia/1730877912e76cbdb7563.png',
211
+ };
212
+
213
+ export default function Demo() {
214
+ const [radio, setRadio] = useState('1');
215
+
216
+ const onChange = event => {
217
+ setRadio(event.detail);
218
+ };
219
+
220
+ return (
221
+ <RadioGroup value={radio} onChange={onChange}>
222
+ <Radio
223
+ name="1"
224
+ customClass="demo-radio"
225
+ useIconSlot
226
+ slot={{
227
+ icon: (
228
+ <Image
229
+ src={radio === '1' ? icon.active : icon.normal}
230
+ width="20px"
231
+ height="20px"
232
+ fit="cover"
233
+ />
234
+ ),
235
+ }}
236
+ >
237
+ 自定义 Icon
238
+ </Radio>
239
+ <Radio
240
+ name="2"
241
+ customClass="demo-radio"
242
+ useIconSlot
243
+ slot={{
244
+ icon: (
245
+ <Image
246
+ src={radio === '2' ? icon.active : icon.normal}
247
+ width="20px"
248
+ height="20px"
249
+ fit="cover"
250
+ />
251
+ ),
252
+ }}
253
+ >
254
+ 自定义 Icon
255
+ </Radio>
256
+ </RadioGroup>
257
+ );
258
+ }
259
+ ```
260
+
261
+ ### 禁用文本点击
262
+
263
+ 通过设置`labelDisabled`属性可以禁用单选框文本点击。
264
+
265
+ ```jsx
266
+ import { Radio, RadioGroup } from '@ray-js/smart-ui';
267
+ import React, { useState } from 'react';
268
+
269
+ export default function Demo() {
270
+ const [radioLabel, setRadio] = useState('1');
271
+
272
+ const onChange = event => {
273
+ setRadio(event.detail);
274
+ };
275
+
276
+ return (
277
+ <RadioGroup value={radioLabel} onChange={onChange}>
278
+ <Radio labelDisabled name="1">
279
+ 单选框 1
280
+ </Radio>
281
+ <Radio label-disabled name="2">
282
+ 单选框 2
283
+ </Radio>
284
+ </RadioGroup>
285
+ );
286
+ }
287
+ ```
288
+
289
+ ### 与Cell组件一起使用
290
+
291
+ 此时你需要再引入`Cell`和`CellGroup`组件。
292
+
293
+ ```jsx
294
+ import { Radio, RadioGroup, CellGroup, Cell } from '@ray-js/smart-ui';
295
+ import React, { useState } from 'react';
296
+
297
+ export default function Demo() {
298
+ const [radio, setRadio] = useState('1');
299
+
300
+ const onClick = event => {
301
+ const { name } = event.currentTarget.dataset;
302
+ setRadio(name);
303
+ };
304
+
305
+ return (
306
+ <RadioGroup value={radio}>
307
+ <CellGroup>
308
+ <Cell
309
+ title="Radio 1"
310
+ clickable
311
+ data-name="1"
312
+ slot={{ rightIcon: <Radio name="1" /> }}
313
+ onClick={onClick}
314
+ />
315
+ <Cell
316
+ title="Radio 2"
317
+ clickable
318
+ data-name="2"
319
+ slot={{ rightIcon: <Radio name="2" /> }}
320
+ onClick={onChange}
321
+ />
322
+ </CellGroup>
323
+ </RadioGroup>
324
+ );
325
+ }
326
+ ```
327
+
328
+
329
+ ### 阻止默认的UI更新行为
330
+
331
+ 假如你的 `UI更新` 需要在特定情况下才允许更新,如 确认框/接口行为等才允许更新,可以开启这个选项。
332
+
333
+ ```jsx
334
+ import { Radio, RadioGroup } from '@ray-js/smart-ui';
335
+ import React, { useState } from 'react';
336
+ import { showModal } from '@ray-js/ray';
337
+
338
+ export default function Demo() {
339
+ const [radio, setRadio] = useState('1');
340
+
341
+ const onPreventDefaultChange = event => {
342
+ const value = event.detail;
343
+ showModal({
344
+ content: `onChange name: ${value}`,
345
+ showCancel: true,
346
+ success: (res) => {
347
+ if (res.confirm) {
348
+ setRadioPreventDefault(value);
349
+ }
350
+ }
351
+ })
352
+ }
353
+
354
+ return (
355
+ <RadioGroup value={radio} preventDefault onChange={}>
356
+ <Radio name="1">Radio 单选框 1</Radio>
357
+ <Radio name="2">Radio 单选框 2</Radio>
358
+ </RadioGroup>
359
+ );
360
+ }
361
+ ```
362
+
363
+ ## API
364
+
365
+ ### RadioGroup Props
366
+
367
+ | 参数 | 说明 | 类型 | 默认值 |
368
+ | ------------------ | ------------------------------- | --------- | ---------- |
369
+ | direction | 排列方向,可选值为 `horizontal` | _string_ | `vertical` |
370
+ | disabled | 是否禁用所有单选框 | _boolean_ | `false` |
371
+ | name | 在表单内提交时的标识符 | _string_ | - |
372
+ | value | 当前选中项的标识符 | _any_ | - |
373
+ | preventDefault `v2.3.8` | 阻止默认的UI更新行为 | _boolean_ | `false` |
374
+
375
+ ### Radio Props
376
+
377
+ | 参数 | 说明 | 类型 | 默认值 |
378
+ | -------------- | ------------------------- | ------------------ | --------- |
379
+ | checkedColor | 选中状态颜色 | _string_ | `#1989fa` |
380
+ | disabled | 是否为禁用状态 | _boolean_ | `false` |
381
+ | iconSize | 图标大小,默认单位为`px` | _string \| number_ | `24px` |
382
+ | labelDisabled | 是否禁用文本内容点击 | _boolean_ | `false` |
383
+ | labelPosition | 文本位置,可选值为 `left` | _string_ | `right` |
384
+ | name | 标识符 | _string_ | - |
385
+ | shape | 形状,可选值为 `square` | _string_ | `round` |
386
+ | useIconSlot | 是否使用 icon 插槽 | _boolean_ | `false` |
387
+
388
+ ### Radio Event
389
+
390
+ | 事件名 | 说明 | 回调参数 |
391
+ | ----------- | ------------------------ | ----------------- |
392
+ | onChange | 当绑定值变化时触发的事件 | 当前选中项的 name |
393
+
394
+ ### Radio 外部样式类
395
+
396
+ | 类名 | 说明 |
397
+ | ------------ | -------------- |
398
+ | customClass | 根节点样式类 |
399
+ | iconClass | 图标样式类 |
400
+ | labelClass | 描述信息样式类 |
401
+
402
+ ### RadioGroup Event
403
+
404
+ | 事件名 | 说明 | 回调参数 |
405
+ | ----------- | ------------------------ | ----------------- |
406
+ | onChange | 当绑定值变化时触发的事件 | 当前选中项的 name |
407
+
408
+ ### 样式变量
409
+
410
+ 组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 [ConfigProvider 组件](/material/smartui?comId=config-provider)。
411
+
412
+ | 名称 | 默认值 | 描述 |
413
+ | ----------------------------- | -------------------------------------- | ---- |
414
+ | --radio-size | _24px_ | 单选框的大小 |
415
+ | --radio-border-color | _var(--app-B6-N6, rgba(0, 0, 0, 0.2))_ | 单选框的边框颜色 |
416
+ | --radio-border-radius | _4px_ | 单选框的边框圆角 |
417
+ | --radio-transition-duration | _0.2s_ | 单选框的过渡持续时间 |
418
+ | --radio-label-size | _12px_ | 单选框标签的字体大小 |
419
+ | --radio-label-margin | _10px_ | 单选框标签的外边距 |
420
+ | --radio-label-color | _var(--app-B6-N1, rgba(0, 0, 0, 1))_ | 单选框标签的字体颜色 |
421
+ | --radio-checked-icon-color | _var(--app-M4, #1989fa)_ | 单选框选中状态的图标颜色 |
422
+ | --radio-disabled-label-color | _var(--app-B6-N5, rgba(0, 0, 0, 0.3))_ | 单选框禁用状态的标签颜色 |
423
+ | --radio-disabled-opacity | _0.3_ | 单选框禁用状态的透明度 |
@@ -0,0 +1,248 @@
1
+ ---
2
+ category: 数据录入
3
+ ---
4
+
5
+ # Rate 评分
6
+
7
+ ### 介绍
8
+
9
+ 用于对事物进行评级操作。
10
+
11
+ ### 引入
12
+
13
+ ```jsx
14
+ import { Rate } from '@ray-js/smart-ui';
15
+ ```
16
+
17
+ ## 代码演示
18
+
19
+ ### 基础用法
20
+
21
+ ```jsx
22
+ import { showToast } from '@ray-js/ray';
23
+ import { Rate } from '@ray-js/smart-ui';
24
+ import React from 'react';
25
+
26
+ export default function Demo() {
27
+ const [value, setValue] = React.useState(3);
28
+ const onChange = event => {
29
+ setValue(event.detail);
30
+ showToast({
31
+ icon: 'none',
32
+ title: `当前值:${event.detail}`,
33
+ });
34
+ };
35
+
36
+ return <Rate value={value} onChange={onChange} />;
37
+ }
38
+ ```
39
+
40
+ ### 自定义图标
41
+
42
+ ```jsx
43
+ import { showToast } from '@ray-js/ray';
44
+ import { Rate } from '@ray-js/smart-ui';
45
+ import React, { useState } from 'react';
46
+
47
+ import IcloudIcon from '@tuya-miniapp/icons/dist/svg/Icloud';
48
+ import XmarkIcloudIcon from '@tuya-miniapp/icons/dist/svg/XmarkIcloud';
49
+
50
+ const icon = IcloudIcon;
51
+ const voidIcon = XmarkIcloudIcon;
52
+
53
+ export default function Demo() {
54
+ const [value, setValue] = useState(3);
55
+ const onChange = event => {
56
+ setValue(event.detail);
57
+ showToast({
58
+ icon: 'none',
59
+ title: `当前值:${event.detail}`,
60
+ });
61
+ };
62
+
63
+ return <Rate value={value} icon={icon} voidIcon={voidIcon} onChange={onChange} />;
64
+ }
65
+ ```
66
+
67
+ ### 自定义样式
68
+
69
+ ```jsx
70
+ import { showToast } from '@ray-js/ray';
71
+ import { Rate } from '@ray-js/smart-ui';
72
+ import React from 'react';
73
+
74
+ export default function Demo() {
75
+ const [value, setValue] = React.useState(3);
76
+ const onChange = event => {
77
+ setValue(event.detail);
78
+ showToast({
79
+ icon: 'none',
80
+ title: `当前值:${event.detail}`,
81
+ });
82
+ };
83
+
84
+ return <Rate value={value} size={25} color="#ffd21e" voidColor="#eee" onChange={onChange} />
85
+ }
86
+ ```
87
+
88
+ ### 半星
89
+
90
+ ```jsx
91
+ import { showToast } from '@ray-js/ray';
92
+ import { Rate } from '@ray-js/smart-ui';
93
+ import React, { useState } from 'react';
94
+
95
+ import IcloudIcon from '@tuya-miniapp/icons/dist/svg/Icloud';
96
+ import XmarkIcloudIcon from '@tuya-miniapp/icons/dist/svg/XmarkIcloud';
97
+
98
+ const icon = IcloudIcon;
99
+ const voidIcon = XmarkIcloudIcon;
100
+
101
+ export default function Demo() {
102
+ const [value, setValue] = useState(2.5);
103
+
104
+ const onChange = event => {
105
+ setValue(event.detail);
106
+ showToast({
107
+ icon: 'none',
108
+ title: `当前值:${event.detail}`,
109
+ });
110
+ };
111
+
112
+ return <Rate value={value} allowHalf voidIcon={voidIcon} voidColor="#eee" onChange={onChange} />;
113
+ }
114
+ ```
115
+
116
+ ### 自定义数量
117
+
118
+ ```jsx
119
+ import { showToast } from '@ray-js/ray';
120
+ import { Rate } from '@ray-js/smart-ui';
121
+ import React from 'react';
122
+
123
+ export default function Demo() {
124
+ const [value, setValue] = React.useState(3);
125
+ const onChange = event => {
126
+ setValue(event.detail);
127
+ showToast({
128
+ icon: 'none',
129
+ title: `当前值:${event.detail}`,
130
+ });
131
+ };
132
+
133
+ return <Rate value={value} count={6} onChange={onChange} />
134
+ }
135
+ ```
136
+
137
+ ### 禁用状态
138
+
139
+ ```jsx
140
+ import { showToast } from '@ray-js/ray';
141
+ import { Rate } from '@ray-js/smart-ui';
142
+ import React from 'react';
143
+
144
+ export default function Demo() {
145
+ const [value, setValue] = React.useState(3);
146
+ const onChange = event => {
147
+ setValue(event.detail);
148
+ showToast({
149
+ icon: 'none',
150
+ title: `当前值:${event.detail}`,
151
+ });
152
+ };
153
+
154
+ return <Rate disabled value={value} onChange={onChange} />
155
+ }
156
+ ```
157
+
158
+ ### 只读状态
159
+
160
+ ```jsx
161
+ import { showToast } from '@ray-js/ray';
162
+ import { Rate } from '@ray-js/smart-ui';
163
+ import React from 'react';
164
+
165
+ export default function Demo() {
166
+ const [value, setValue] = React.useState(3);
167
+ const onChange = event => {
168
+ setValue(event.detail);
169
+ showToast({
170
+ icon: 'none',
171
+ title: `当前值:${event.detail}`,
172
+ });
173
+ };
174
+
175
+ return <Rate readonly value={value} onChange={onChange} />
176
+ }
177
+ ```
178
+
179
+ ### 监听 change 事件
180
+
181
+ 评分变化时,会触发 `change` 事件。
182
+
183
+ ```jsx
184
+ import { showToast } from '@ray-js/ray';
185
+ import { Rate } from '@ray-js/smart-ui';
186
+ import React, { useState } from 'react';
187
+
188
+ export default function Demo() {
189
+ const [value, setValue] = useState(2);
190
+
191
+ const onChange = event => {
192
+ setValue(event.detail);
193
+ showToast({
194
+ icon: 'none',
195
+ title: `当前值:${event.detail}`,
196
+ });
197
+ };
198
+
199
+ return <Rate value={value} onChange={onChange} />;
200
+ }
201
+ ```
202
+
203
+ ## API
204
+
205
+ ### Props
206
+
207
+ | 参数 | 说明 | 类型 | 默认值 |
208
+ | -------------- | ---------------------------------------------------------- | ------------------ | --------------------- |
209
+ | allowHalf | 是否允许半选 | _boolean_ | `false` |
210
+ | color | 选中时的颜色 | _string_ | `#ffd21e` |
211
+ | count | 图标总数 | _number_ | `5` |
212
+ | disabled | 是否禁用评分 | _boolean_ | `false` |
213
+ | disabledColor | 禁用时的颜色 | _string_ | `#bdbdbd` |
214
+ | gutter | 图标间距,默认单位为 `px` | _string \| number_ | `4px` |
215
+ | icon | 选中时的图标svg值或图片链接,可选值见 [Icon 组件](/material/smartui?comId=icon) | _string_ | `CheckmarkCircle` |
216
+ | name | 在表单内提交时的标识符 | _string_ | - |
217
+ | readonly | 是否为只读状态 | _boolean_ | `false` |
218
+ | size | 图标大小,默认单位为 `px` | _string \| number_ | `20px` |
219
+ | touchable | 是否可以通过滑动手势选择评分 | _boolean_ | `true` |
220
+ | value | 当前分值 | _number_ | - |
221
+ | voidColor | 未选中时的颜色 | _string_ | `#c7c7c7` |
222
+ | voidIcon | 未选中时的图标svg值或图片链接,可选值见 [Icon 组件](/material/smartui?comId=icon) | _string_ | `CheckmarkCircleVoid` |
223
+
224
+ ### Events
225
+
226
+ | 事件名称 | 说明 | 回调参数 |
227
+ | ----------- | ------------------------ | --------------------- |
228
+ | onChange | 当前分值变化时触发的事件 | event.detail:当前分值 |
229
+
230
+ ### 外部样式类
231
+
232
+ | 类名 | 说明 |
233
+ | ------------ | ------------ |
234
+ | customClass | 根节点样式类 |
235
+ | iconClass | 图标样式类 |
236
+
237
+ ### 样式变量
238
+
239
+ 组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 [ConfigProvider 组件](/material/smartui?comId=config-provider)。
240
+
241
+ | 名称 | 默认值 | 描述 |
242
+ | ----------------------------- | -------------------------------------- | ---- |
243
+ | --rate-horizontal-padding | _2px_ | 评价图标水平内边距 |
244
+ | --rate-icon-size | _20px_ | 评价图标大小 |
245
+ | --rate-icon-void-color | _#c8c9cc_ | 空状态图标颜色 |
246
+ | --rate-icon-full-color | _#ee0a24_ | 满状态图标颜色 |
247
+ | --rate-icon-disabled-color | _#c8c9cc_ | 禁用状态图标颜色 |
248
+ | --rate-icon-gutter | _4px_ | 图标间距 |