@ray-js/smart-ui 2.13.1 → 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.
- package/es/@types/config-provider/index.d.ts +7 -2
- package/es/@types/config-provider/theme-vars.d.ts +1 -1
- package/es/action-sheet/README.md +613 -0
- package/es/battery/README.md +149 -0
- package/es/bottom-sheet/README.md +495 -0
- package/es/button/README.md +335 -0
- package/es/calendar/README.md +513 -0
- package/es/cascader/README.md +326 -0
- package/es/cell/README.md +317 -0
- package/es/checkbox/README.md +481 -0
- package/es/circle/README.md +132 -0
- package/es/col/README.md +162 -0
- package/es/collapse/README.md +127 -0
- package/es/config-provider/README.md +150 -0
- package/es/count-down/README.md +201 -0
- package/es/custom-keyboard/README.md +122 -0
- package/es/datetime-picker/README.md +438 -0
- package/es/dialog/README.md +451 -0
- package/es/divider/README.md +132 -0
- package/es/dropdown-menu/README.md +331 -0
- package/es/empty/README.md +119 -0
- package/es/field/README.md +455 -0
- package/es/grid/README.md +273 -0
- package/es/icon/README.md +178 -0
- package/es/image/README.md +225 -0
- package/es/index-bar/README.md +186 -0
- package/es/loading/README.md +120 -0
- package/es/nav-bar/README.md +410 -0
- package/es/notice-bar/README.md +274 -0
- package/es/notify/README.md +121 -0
- package/es/overlay/README.md +128 -0
- package/es/picker/README.md +412 -0
- package/es/popover/README.md +338 -0
- package/es/popup/README.md +272 -0
- package/es/progress/README.md +88 -0
- package/es/radio/README.md +423 -0
- package/es/rate/README.md +248 -0
- package/es/search/README.md +290 -0
- package/es/sidebar/README.md +176 -0
- package/es/skeleton/README.md +141 -0
- package/es/slider/README.md +444 -0
- package/es/stepper/README.md +231 -0
- package/es/sticky/README.md +91 -0
- package/es/swipe-cell/README.md +217 -0
- package/es/switch/README.md +316 -0
- package/es/tab/README.md +501 -0
- package/es/tabbar/README.md +397 -0
- package/es/tag/README.md +215 -0
- package/es/toast/README.md +293 -0
- package/es/transition/README.md +140 -0
- package/es/tree-select/README.md +348 -0
- package/lib/@types/config-provider/index.d.ts +7 -2
- package/lib/@types/config-provider/theme-vars.d.ts +1 -1
- package/lib/action-sheet/README.md +613 -0
- package/lib/battery/README.md +149 -0
- package/lib/bottom-sheet/README.md +495 -0
- package/lib/button/README.md +335 -0
- package/lib/calendar/README.md +513 -0
- package/lib/cascader/README.md +326 -0
- package/lib/cell/README.md +317 -0
- package/lib/checkbox/README.md +481 -0
- package/lib/circle/README.md +132 -0
- package/lib/col/README.md +162 -0
- package/lib/collapse/README.md +127 -0
- package/lib/config-provider/README.md +150 -0
- package/lib/count-down/README.md +201 -0
- package/lib/custom-keyboard/README.md +122 -0
- package/lib/datetime-picker/README.md +438 -0
- package/lib/dialog/README.md +451 -0
- package/lib/divider/README.md +132 -0
- package/lib/dropdown-menu/README.md +331 -0
- package/lib/empty/README.md +119 -0
- package/lib/field/README.md +455 -0
- package/lib/grid/README.md +273 -0
- package/lib/icon/README.md +178 -0
- package/lib/image/README.md +225 -0
- package/lib/index-bar/README.md +186 -0
- package/lib/loading/README.md +120 -0
- package/lib/nav-bar/README.md +410 -0
- package/lib/notice-bar/README.md +274 -0
- package/lib/notify/README.md +121 -0
- package/lib/overlay/README.md +128 -0
- package/lib/picker/README.md +412 -0
- package/lib/popover/README.md +338 -0
- package/lib/popup/README.md +272 -0
- package/lib/progress/README.md +88 -0
- package/lib/radio/README.md +423 -0
- package/lib/rate/README.md +248 -0
- package/lib/search/README.md +290 -0
- package/lib/sidebar/README.md +176 -0
- package/lib/skeleton/README.md +141 -0
- package/lib/slider/README.md +444 -0
- package/lib/stepper/README.md +231 -0
- package/lib/sticky/README.md +91 -0
- package/lib/swipe-cell/README.md +217 -0
- package/lib/switch/README.md +316 -0
- package/lib/tab/README.md +501 -0
- package/lib/tabbar/README.md +397 -0
- package/lib/tag/README.md +215 -0
- package/lib/toast/README.md +293 -0
- package/lib/transition/README.md +140 -0
- package/lib/tree-select/README.md +348 -0
- package/package.json +3 -3
|
@@ -0,0 +1,326 @@
|
|
|
1
|
+
---
|
|
2
|
+
category: 数据录入
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
# Cascader 级联选择
|
|
7
|
+
|
|
8
|
+
### 介绍
|
|
9
|
+
|
|
10
|
+
级联选择框,用于多层级数据的选择,典型场景为省市区选择。
|
|
11
|
+
|
|
12
|
+
### 引入
|
|
13
|
+
|
|
14
|
+
```jsx
|
|
15
|
+
import { Cascader } from '@ray-js/smart-ui';
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## 代码演示
|
|
19
|
+
|
|
20
|
+
### 基础用法
|
|
21
|
+
|
|
22
|
+
级联选择组件可以搭配 Field 和 BottomSheet 组件使用,示例如下:
|
|
23
|
+
|
|
24
|
+
```jsx
|
|
25
|
+
import { Cascader, Field, Popup } from '@ray-js/smart-ui';
|
|
26
|
+
import React, { useCallback, useState } from 'react';
|
|
27
|
+
|
|
28
|
+
const options = [
|
|
29
|
+
{
|
|
30
|
+
text: '浙江省',
|
|
31
|
+
value: '330000',
|
|
32
|
+
className: 'test',
|
|
33
|
+
options: [
|
|
34
|
+
{
|
|
35
|
+
text: '杭州市',
|
|
36
|
+
value: '330100',
|
|
37
|
+
options: [
|
|
38
|
+
{
|
|
39
|
+
text: '上城区',
|
|
40
|
+
value: '330102',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
text: '下城区',
|
|
44
|
+
value: '330103',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
text: '江干区',
|
|
48
|
+
value: '330104',
|
|
49
|
+
},
|
|
50
|
+
],
|
|
51
|
+
},
|
|
52
|
+
],
|
|
53
|
+
},
|
|
54
|
+
];
|
|
55
|
+
|
|
56
|
+
export default function Demo() {
|
|
57
|
+
const [visible, setVisible] = useState(false);
|
|
58
|
+
const [result, setResult] = useState('');
|
|
59
|
+
const [value, setValue] = useState('');
|
|
60
|
+
const showArea = useCallback(() => {
|
|
61
|
+
setVisible(true);
|
|
62
|
+
}, []);
|
|
63
|
+
const onClose = useCallback(() => {
|
|
64
|
+
setVisible(false);
|
|
65
|
+
}, []);
|
|
66
|
+
const onFinish = useCallback(() => {
|
|
67
|
+
const { selectedOptions, value } = e.detail;
|
|
68
|
+
const result = selectedOptions.map(option => option.text).join('/');
|
|
69
|
+
setValue(value);
|
|
70
|
+
setResult(result);
|
|
71
|
+
setVisible(false);
|
|
72
|
+
}, []);
|
|
73
|
+
return (
|
|
74
|
+
<>
|
|
75
|
+
<Field
|
|
76
|
+
value={result}
|
|
77
|
+
isLink
|
|
78
|
+
readonly
|
|
79
|
+
label="地区"
|
|
80
|
+
placeholder="请选择地区"
|
|
81
|
+
onTap={showArea}
|
|
82
|
+
/>
|
|
83
|
+
<BottomSheet show={visible} maxHeight="100%">
|
|
84
|
+
{visible && (
|
|
85
|
+
<Cascader
|
|
86
|
+
value={value}
|
|
87
|
+
title="请选择地区"
|
|
88
|
+
options={options}
|
|
89
|
+
onClose={onClose}
|
|
90
|
+
onFinish={onFinish}
|
|
91
|
+
/>
|
|
92
|
+
)}
|
|
93
|
+
</BottomSheet>
|
|
94
|
+
</>
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### 自定义颜色
|
|
100
|
+
|
|
101
|
+
通过 `active-color` 属性来设置选中状态的高亮颜色。
|
|
102
|
+
|
|
103
|
+
```jsx
|
|
104
|
+
import { Cascader, Field, BottomSheet } from '@ray-js/smart-ui';
|
|
105
|
+
import React, { useCallback, useState } from 'react';
|
|
106
|
+
|
|
107
|
+
const options = [
|
|
108
|
+
{
|
|
109
|
+
text: '浙江省',
|
|
110
|
+
value: '330000',
|
|
111
|
+
className: 'test',
|
|
112
|
+
options: [
|
|
113
|
+
{
|
|
114
|
+
text: '杭州市',
|
|
115
|
+
value: '330100',
|
|
116
|
+
options: [
|
|
117
|
+
{
|
|
118
|
+
text: '上城区',
|
|
119
|
+
value: '330102',
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
text: '下城区',
|
|
123
|
+
value: '330103',
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
text: '江干区',
|
|
127
|
+
value: '330104',
|
|
128
|
+
},
|
|
129
|
+
],
|
|
130
|
+
},
|
|
131
|
+
],
|
|
132
|
+
},
|
|
133
|
+
];
|
|
134
|
+
|
|
135
|
+
export default function Demo() {
|
|
136
|
+
const [visible, setVisible] = useState(false);
|
|
137
|
+
const [result, setResult] = useState('');
|
|
138
|
+
const [value, setValue] = useState('');
|
|
139
|
+
const showArea = useCallback(() => {
|
|
140
|
+
setVisible(true);
|
|
141
|
+
}, []);
|
|
142
|
+
const onClose = useCallback(() => {
|
|
143
|
+
setVisible(false);
|
|
144
|
+
}, []);
|
|
145
|
+
const onFinish = useCallback(() => {
|
|
146
|
+
const { selectedOptions, value } = e.detail;
|
|
147
|
+
const result = selectedOptions.map(option => option.text).join('/');
|
|
148
|
+
setValue(value);
|
|
149
|
+
setResult(result);
|
|
150
|
+
setVisible(false);
|
|
151
|
+
}, []);
|
|
152
|
+
return (
|
|
153
|
+
<>
|
|
154
|
+
<Field
|
|
155
|
+
value={result}
|
|
156
|
+
isLink
|
|
157
|
+
readonly
|
|
158
|
+
label="地区"
|
|
159
|
+
placeholder="请选择地区"
|
|
160
|
+
onTap={showArea}
|
|
161
|
+
/>
|
|
162
|
+
<BottomSheet show={visible} maxHeight="100%">
|
|
163
|
+
{visible && (
|
|
164
|
+
<Cascader
|
|
165
|
+
activeColor="#ee0a24"
|
|
166
|
+
value={value}
|
|
167
|
+
title="请选择地区"
|
|
168
|
+
options={options}
|
|
169
|
+
onClose={onClose}
|
|
170
|
+
onFinish={onFinish}
|
|
171
|
+
/>
|
|
172
|
+
)}
|
|
173
|
+
</BottomSheet>
|
|
174
|
+
</>
|
|
175
|
+
);
|
|
176
|
+
}
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
### 异步加载选项
|
|
180
|
+
|
|
181
|
+
可以监听 `change` 事件并动态设置 `options`,实现异步加载选项。
|
|
182
|
+
|
|
183
|
+
```jsx
|
|
184
|
+
import { Cascader, Field, BottomSheet } from '@ray-js/smart-ui';
|
|
185
|
+
import React, { useCallback, useState } from 'react';
|
|
186
|
+
|
|
187
|
+
const asyncOptions2 = [
|
|
188
|
+
{ text: '杭州市', value: '330100' },
|
|
189
|
+
{ text: '宁波市', value: '330200' },
|
|
190
|
+
];
|
|
191
|
+
|
|
192
|
+
export default function Demo() {
|
|
193
|
+
const [visible, setVisible] = useState(false);
|
|
194
|
+
const [result, setResult] = useState('');
|
|
195
|
+
const [value, setValue] = useState('');
|
|
196
|
+
const [options, setOptions] = useState([
|
|
197
|
+
{
|
|
198
|
+
text: '浙江省',
|
|
199
|
+
value: '330000',
|
|
200
|
+
options: [],
|
|
201
|
+
},
|
|
202
|
+
]);
|
|
203
|
+
const showArea = useCallback(() => {
|
|
204
|
+
setVisible(true);
|
|
205
|
+
}, []);
|
|
206
|
+
const onClose = useCallback(() => {
|
|
207
|
+
setVisible(false);
|
|
208
|
+
}, []);
|
|
209
|
+
const onFinish = useCallback(() => {
|
|
210
|
+
const { selectedOptions, value } = e.detail;
|
|
211
|
+
const result = selectedOptions.map(option => option.text).join('/');
|
|
212
|
+
setValue(value);
|
|
213
|
+
setResult(result);
|
|
214
|
+
setVisible(false);
|
|
215
|
+
}, []);
|
|
216
|
+
|
|
217
|
+
const loadDynamicOptions = useCallback(
|
|
218
|
+
e => {
|
|
219
|
+
const { value } = e.detail;
|
|
220
|
+
if (value === '330000') {
|
|
221
|
+
const data = [...options];
|
|
222
|
+
data[0].options = asyncOptions2;
|
|
223
|
+
setTimeout(() => {
|
|
224
|
+
setOptions(data);
|
|
225
|
+
}, 500);
|
|
226
|
+
}
|
|
227
|
+
},
|
|
228
|
+
[options]
|
|
229
|
+
);
|
|
230
|
+
return (
|
|
231
|
+
<>
|
|
232
|
+
<Field
|
|
233
|
+
value={result}
|
|
234
|
+
isLink
|
|
235
|
+
readonly
|
|
236
|
+
label="地区"
|
|
237
|
+
placeholder="请选择地区"
|
|
238
|
+
onTap={showArea}
|
|
239
|
+
/>
|
|
240
|
+
<BottomSheet show={visible} maxHeight="100%">
|
|
241
|
+
{visible && (
|
|
242
|
+
<Cascader
|
|
243
|
+
value={value}
|
|
244
|
+
options={options}
|
|
245
|
+
title="请选择地区"
|
|
246
|
+
onClose={onClose}
|
|
247
|
+
onFinish={onFinish}
|
|
248
|
+
onChange={loadDynamicOptions}
|
|
249
|
+
/>
|
|
250
|
+
)}
|
|
251
|
+
</BottomSheet>
|
|
252
|
+
</>
|
|
253
|
+
);
|
|
254
|
+
}
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
## API
|
|
258
|
+
|
|
259
|
+
### Props
|
|
260
|
+
|
|
261
|
+
| 参数 | 说明 | 类型 | 默认值 |
|
|
262
|
+
| --------------- | -------------------------------------------------------------- | ------------------ | --------- |
|
|
263
|
+
| activeColor | 选中状态的高亮颜色 | _string_ | `#1989fa` |
|
|
264
|
+
| closeIcon | 关闭图标svg值或图片链接,等同于 Icon 组件的 [name 属性](/material/smartui?comId=icon) | _string_ | `cross` |
|
|
265
|
+
| closeIconAriaLabel `v2.13.0` | 关闭按钮的无障碍读屏文案,透传至内部 `smart-icon` 的 `aria-label` | _string_ | - |
|
|
266
|
+
| closeable | 是否显示关闭图标 | _boolean_ | `true` |
|
|
267
|
+
| ellipsis | 是否省略过长的标题文字, 关闭后文字过长会出现横向滚动 | _boolean_ | `true` |
|
|
268
|
+
| options | 可选项数据源 | _CascaderOption[]_ | `[]` |
|
|
269
|
+
| placeholder | 未选中时的提示文案 | _string_ | `请选择` |
|
|
270
|
+
| showHeader | 是否展示标题栏 | _boolean_ | `true` |
|
|
271
|
+
| swipeThreshold | 滚动阈值,标签数量超过阈值且总宽度超过标签栏宽度时开始横向滚动 | _number_ | `5` |
|
|
272
|
+
| swipeable | 是否开启手势左右滑动切换 | _boolean_ | `false` |
|
|
273
|
+
| title | 顶部标题 | _string_ | - |
|
|
274
|
+
| useTitleSlot | 是否使用自定义标题的插槽 | _boolean_ | `false` |
|
|
275
|
+
| value | 选中项的值 | _string \| number_ | - |
|
|
276
|
+
|
|
277
|
+
### CascaderOption 数据结构
|
|
278
|
+
|
|
279
|
+
`options` 属性是一个由对象构成的数组,数组中的每个对象配置一个可选项,对象可以包含以下值:
|
|
280
|
+
|
|
281
|
+
| 键名 | 说明 | 类型 |
|
|
282
|
+
| --------- | ------------------------ | --------------------------- |
|
|
283
|
+
| className | 为对应列添加额外的 class | _string \| Array \| object_ |
|
|
284
|
+
| color | 选项文字颜色 | _string_ |
|
|
285
|
+
| disabled | 是否禁用选项 | _boolean_ |
|
|
286
|
+
| options | 子选项列表 | _CascaderOption[]_ |
|
|
287
|
+
| text | 选项文字(必填) | _string_ |
|
|
288
|
+
| value | 选项对应的值(必填) | _string \| number_ |
|
|
289
|
+
|
|
290
|
+
### Events
|
|
291
|
+
|
|
292
|
+
| 事件 | 说明 | 回调参数 |
|
|
293
|
+
| -------------- | ---------------------- | ------------------------------------------------------------------------------------------------ |
|
|
294
|
+
| onChange | 选中项变化时触发 | event.detail:_{ value: string \| number, selectedOptions: CascaderOption[], tabIndex: number }_ |
|
|
295
|
+
| onClickTab | 点击标签时触发 | event.detail:_{ tabIndex: number, title: string }_ |
|
|
296
|
+
| onClose | 点击关闭图标时触发 | - |
|
|
297
|
+
| onFinish | 全部选项选择完成后触发 | event.detail:_{ value: string \| number, selectedOptions: CascaderOption[], tabIndex: number }_ |
|
|
298
|
+
|
|
299
|
+
### Slots
|
|
300
|
+
|
|
301
|
+
| 名称 | 说明 | 参数 |
|
|
302
|
+
| ----- | -------------- | ---- |
|
|
303
|
+
| title | 自定义顶部标题 | - |
|
|
304
|
+
|
|
305
|
+
### 样式变量
|
|
306
|
+
|
|
307
|
+
组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 [ConfigProvider 组件](/material/smartui?comId=config-provider)。
|
|
308
|
+
|
|
309
|
+
| 名称 | 默认值 | 描述 |
|
|
310
|
+
| ------------------------------------- | ---------------------------------------- | ---------------------------------------- |
|
|
311
|
+
| --cascader-header-height | _48px_ | 级联选择器头部高度 |
|
|
312
|
+
| --cascader-header-padding | _0 16px_ | 级联选择器头部内边距 |
|
|
313
|
+
| --cascader-title-font-size | _16px_ | 级联选择器标题字体大小 |
|
|
314
|
+
| --cascader-title-line-height | _20px_ | 级联选择器标题行高 |
|
|
315
|
+
| --cascader-close-icon-size | _22px_ | 级联选择器关闭图标大小 |
|
|
316
|
+
| --cascader-close-icon-color | _#c8c9cc_ | 级联选择器关闭图标颜色 |
|
|
317
|
+
| --cascader-selected-icon-size | _18px_ | 级联选择器选中图标大小 |
|
|
318
|
+
| --cascader-tabs-height | _48px_ | 级联选择器标签栏高度 |
|
|
319
|
+
| --cascader-active-color | _#1989fa_ | 级联选择器激活项颜色 |
|
|
320
|
+
| --cascader-options-height | _384px_ | 级联选择器选项高度 |
|
|
321
|
+
| --cascader-option-disabled-color | _#c8c9cc_ | 级联选择器禁用选项颜色 |
|
|
322
|
+
| --cascader-tab-color | _var(--app-B6-N1, rgba(0, 0, 0, 1))_ | 级联选择器标签颜色 |
|
|
323
|
+
| --cascader-unselected-tab-color | _#969799_ | 级联选择器未选中标签颜色 |
|
|
324
|
+
| --cascader-tab-inactive-color | _var(--app-B6-N5, rgba(0, 0, 0, 0.3))_ | 级联选择器标签未激活颜色 |
|
|
325
|
+
| --cascader-text-color | _var(--app-B6-N5, rgba(0, 0, 0, 0.3))_ | 级联选择器文本颜色 |
|
|
326
|
+
| --cascader-active-background-color `v2.8.0` | _var(--app-B1, #f6f7fb)_ | 级联选择器列点击时背景色 |
|
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
---
|
|
2
|
+
category: 展示
|
|
3
|
+
assets: DragList,RecycleView,SelectDevice
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Cell 单元格
|
|
7
|
+
|
|
8
|
+
### 介绍
|
|
9
|
+
|
|
10
|
+
单元格为列表中的单个展示项。
|
|
11
|
+
|
|
12
|
+
### 引入
|
|
13
|
+
|
|
14
|
+
```jsx
|
|
15
|
+
import { Cell, CellGroup } from '@ray-js/smart-ui';
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## 代码演示
|
|
19
|
+
|
|
20
|
+
### 基础用法
|
|
21
|
+
|
|
22
|
+
`Cell`可以单独使用,也可以与`CellGroup`搭配使用。`CellGroup`可以为`Cell`提供上下外边框。
|
|
23
|
+
|
|
24
|
+
```jsx
|
|
25
|
+
import { Cell, CellGroup } from '@ray-js/smart-ui';
|
|
26
|
+
import React from 'react';
|
|
27
|
+
|
|
28
|
+
export default function Demo() {
|
|
29
|
+
return (
|
|
30
|
+
<CellGroup>
|
|
31
|
+
<Cell title="单元格" value="内容" isLink />
|
|
32
|
+
<Cell title="单元格" value="内容" label="描述信息" isLink />
|
|
33
|
+
</CellGroup>
|
|
34
|
+
);
|
|
35
|
+
}
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### 卡片风格
|
|
39
|
+
|
|
40
|
+
通过 `CellGroup` 的 `inset` `v1.7.2` 属性,可以将单元格转换为圆角卡片风格, `insetBorderRadius` `v2.6.2` 可以设置圆角的值。
|
|
41
|
+
|
|
42
|
+
```jsx
|
|
43
|
+
import { Cell, CellGroup } from '@ray-js/smart-ui';
|
|
44
|
+
import React from 'react';
|
|
45
|
+
|
|
46
|
+
export default function Demo() {
|
|
47
|
+
return (
|
|
48
|
+
<CellGroup inset insetBorderRadius={12}>
|
|
49
|
+
<Cell title="单元格" value="内容" isLink />
|
|
50
|
+
<Cell title="单元格" value="内容" label="描述信息" isLink />
|
|
51
|
+
</CellGroup>
|
|
52
|
+
);
|
|
53
|
+
}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### 单元格大小
|
|
57
|
+
|
|
58
|
+
通过`size`属性可以控制单元格的大小。
|
|
59
|
+
|
|
60
|
+
```jsx
|
|
61
|
+
import { Cell, CellGroup } from '@ray-js/smart-ui';
|
|
62
|
+
import React from 'react';
|
|
63
|
+
|
|
64
|
+
export default function Demo() {
|
|
65
|
+
return (
|
|
66
|
+
<CellGroup inset>
|
|
67
|
+
<Cell title="单元格" value="内容" size="large" />
|
|
68
|
+
<Cell title="单元格" value="内容" size="large" label="描述信息" />
|
|
69
|
+
</CellGroup>
|
|
70
|
+
);
|
|
71
|
+
}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### 展示图标
|
|
75
|
+
|
|
76
|
+
通过`icon`属性在标题左侧展示图标。
|
|
77
|
+
|
|
78
|
+
```jsx
|
|
79
|
+
import { Cell, CellGroup } from '@ray-js/smart-ui';
|
|
80
|
+
import React from 'react';
|
|
81
|
+
import SunIcon from '@tuya-miniapp/icons/dist/svg/Sun';
|
|
82
|
+
|
|
83
|
+
export default function Demo() {
|
|
84
|
+
return (
|
|
85
|
+
<CellGroup inset>
|
|
86
|
+
<Cell title="单元格" icon={SunIcon} />
|
|
87
|
+
</CellGroup>
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### 其他展示
|
|
93
|
+
|
|
94
|
+
设置`isLink`属性后会在单元格右侧显示箭头,并且可以通过`arrowDirection`属性控制箭头方向。
|
|
95
|
+
|
|
96
|
+
```jsx
|
|
97
|
+
import { Cell, CellGroup } from '@ray-js/smart-ui';
|
|
98
|
+
import React from 'react';
|
|
99
|
+
|
|
100
|
+
export default function Demo() {
|
|
101
|
+
return (
|
|
102
|
+
<CellGroup inset>
|
|
103
|
+
<Cell title="单元格" isLink />
|
|
104
|
+
<Cell title="单元格" isLink value="内容" />
|
|
105
|
+
<Cell title="单元格" isLink value="内容" arrowDirection="down" />
|
|
106
|
+
</CellGroup>
|
|
107
|
+
);
|
|
108
|
+
}
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### 页面跳转
|
|
112
|
+
|
|
113
|
+
可以通过`url`属性进行页面跳转,通过`linkType`属性控制跳转类型。
|
|
114
|
+
|
|
115
|
+
```jsx
|
|
116
|
+
import { Cell, CellGroup } from '@ray-js/smart-ui';
|
|
117
|
+
import React from 'react';
|
|
118
|
+
|
|
119
|
+
export default function Demo() {
|
|
120
|
+
return (
|
|
121
|
+
<CellGroup inset>
|
|
122
|
+
<Cell isLink title="单元格" linkType="navigateTo" url="/pages/home/index" />
|
|
123
|
+
</CellGroup>
|
|
124
|
+
);
|
|
125
|
+
}
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### 分组标题
|
|
129
|
+
|
|
130
|
+
通过`CellGroup`的`title`属性可以指定分组标题。
|
|
131
|
+
|
|
132
|
+
```jsx
|
|
133
|
+
import { Cell, CellGroup } from '@ray-js/smart-ui';
|
|
134
|
+
import React from 'react';
|
|
135
|
+
|
|
136
|
+
export default function Demo() {
|
|
137
|
+
return (
|
|
138
|
+
<>
|
|
139
|
+
<CellGroup title="分组 1">
|
|
140
|
+
<Cell title="单元格" isLink />
|
|
141
|
+
</CellGroup>
|
|
142
|
+
<CellGroup title="分组 2">
|
|
143
|
+
<Cell title="单元格" isLink />
|
|
144
|
+
</CellGroup>
|
|
145
|
+
</>
|
|
146
|
+
);
|
|
147
|
+
}
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### 其他类型
|
|
151
|
+
|
|
152
|
+
也可配合其他组件进行展示
|
|
153
|
+
|
|
154
|
+
```jsx
|
|
155
|
+
import { Cell, Checkbox, Icon, Switch } from '@ray-js/smart-ui';
|
|
156
|
+
import React from 'react';
|
|
157
|
+
import Checkmark from '@tuya-miniapp/icons/dist/svg/Checkmark';
|
|
158
|
+
|
|
159
|
+
export default function Demo() {
|
|
160
|
+
return (
|
|
161
|
+
<CellGroup>
|
|
162
|
+
<Cell title="Title">
|
|
163
|
+
<Switch checked size="24px" />
|
|
164
|
+
</Cell>
|
|
165
|
+
<Cell title="Title">
|
|
166
|
+
<Icon name={Checkmark} color="#3678E3" size="28px" />
|
|
167
|
+
</Cell>
|
|
168
|
+
<Cell title="Title">
|
|
169
|
+
<Checkbox value={false} shape="square" />
|
|
170
|
+
</Cell>
|
|
171
|
+
<Cell title="Title">
|
|
172
|
+
<Checkbox value={false} />
|
|
173
|
+
</Cell>
|
|
174
|
+
<Cell
|
|
175
|
+
title="Title"
|
|
176
|
+
label="Bedroom"
|
|
177
|
+
isLink
|
|
178
|
+
slot={{
|
|
179
|
+
icon: (
|
|
180
|
+
<Icon
|
|
181
|
+
className="demo-cell-icon"
|
|
182
|
+
name="https://static1.tuyacn.com/static/tuya-miniapp-doc/_next/static/images/logo-small.png"
|
|
183
|
+
size="50px"
|
|
184
|
+
/>
|
|
185
|
+
),
|
|
186
|
+
}}
|
|
187
|
+
/>
|
|
188
|
+
</CellGroup>
|
|
189
|
+
);
|
|
190
|
+
}
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### 使用插槽
|
|
194
|
+
|
|
195
|
+
如以上用法不能满足你的需求,可以使用插槽来自定义内容。
|
|
196
|
+
|
|
197
|
+
```jsx
|
|
198
|
+
import { Cell, Icon, Tag } from '@ray-js/smart-ui';
|
|
199
|
+
import React from 'react';
|
|
200
|
+
import ASunmaxfill from '@tuya-miniapp/icons/dist/svg/ASunmaxfill';
|
|
201
|
+
import { View } from '@ray-js/ray';
|
|
202
|
+
|
|
203
|
+
export default function Demo() {
|
|
204
|
+
return (
|
|
205
|
+
<CellGroup>
|
|
206
|
+
<Cell
|
|
207
|
+
value="内容"
|
|
208
|
+
icon={ASunmaxfill}
|
|
209
|
+
isLink
|
|
210
|
+
slot={{
|
|
211
|
+
title: (
|
|
212
|
+
<View>
|
|
213
|
+
<View className="demo-cell-title">单元格</View>
|
|
214
|
+
<Tag type="danger">标签</Tag>
|
|
215
|
+
</View>
|
|
216
|
+
),
|
|
217
|
+
}}
|
|
218
|
+
/>
|
|
219
|
+
<Cell title="单元格" slot={{ rightIcon: <Icon name={ASunmaxfill} /> }} />
|
|
220
|
+
</CellGroup>
|
|
221
|
+
);
|
|
222
|
+
}
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
## API
|
|
226
|
+
|
|
227
|
+
### CellGroup Props
|
|
228
|
+
|
|
229
|
+
| 参数 | 说明 | 类型 | 默认值 |
|
|
230
|
+
| ---------------------------- | ---------------------- | ------------------ | ------- |
|
|
231
|
+
| border | 是否显示外边框 | _boolean_ | `true` |
|
|
232
|
+
| inset | 是否展示为圆角卡片风格 | _boolean_ | `false` |
|
|
233
|
+
| title | 分组标题 | _string_ | `-` |
|
|
234
|
+
| insetBorderRadius `v2.6.2` | 圆角卡片风格时的圆角值 | _string \| number_ | `-` |
|
|
235
|
+
|
|
236
|
+
### CellGroup 外部样式类
|
|
237
|
+
|
|
238
|
+
| 类名 | 说明 |
|
|
239
|
+
| ------------ | ------------ |
|
|
240
|
+
| customClass | 根节点样式类 |
|
|
241
|
+
|
|
242
|
+
### Cell Props
|
|
243
|
+
|
|
244
|
+
| 参数 | 说明 | 类型 | 默认值 |
|
|
245
|
+
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------ | ------------ |
|
|
246
|
+
| arrowDirection | 箭头方向,可选值为 `left` `up` `down` | _string_ | - |
|
|
247
|
+
| border | 是否显示下边框 | _boolean_ | `true` |
|
|
248
|
+
| clickable | 是否开启点击反馈 | _boolean_ | `false` |
|
|
249
|
+
| icon | 左侧图标 svg 值或图片链接,可选值见 [Icon 组件](/material/smartui?comId=icon) | _string_ | - |
|
|
250
|
+
| isLink | 是否展示右侧箭头并开启点击反馈 | _boolean_ | `false` |
|
|
251
|
+
| label | 标题下方的描述信息 | _string_ | - |
|
|
252
|
+
| linkType | 链接跳转类型,可选值为 `redirectTo` [`switchTab`](https://developers.weixin.qq.com/miniprogram/dev/api/route/wx.switchTab.html) `reLaunch` | _string_ | `navigateTo` |
|
|
253
|
+
| required | 是否显示表单必填星号 | _boolean_ | `false` |
|
|
254
|
+
| title | 左侧标题 | _string \| number_ | - |
|
|
255
|
+
| titleStyle | 标题样式 | _React.CSSProperties_ | - |
|
|
256
|
+
| titleWidth | 标题宽度,须包含单位 | _string_ | - |
|
|
257
|
+
| url | 点击后跳转的链接地址 | _string_ | - |
|
|
258
|
+
| useLabelSlot | 是否使用 label slot | _boolean_ | `false` |
|
|
259
|
+
| value | 右侧内容 | _string \| number_ | - |
|
|
260
|
+
|
|
261
|
+
### Cell Event
|
|
262
|
+
|
|
263
|
+
| 事件名 | 说明 | 参数 |
|
|
264
|
+
| ---------- | ---------------- | ---- |
|
|
265
|
+
| onClick | 点击单元格时触发 | - |
|
|
266
|
+
|
|
267
|
+
### Cell Slot
|
|
268
|
+
|
|
269
|
+
| 名称 | 说明 |
|
|
270
|
+
| ---------- | -------------------------------------------------------------- |
|
|
271
|
+
| - | 自定义`value`显示内容,如果设置了`value`属性则不生效 |
|
|
272
|
+
| icon | 自定义`icon`显示内容,如果设置了`icon`属性则不生效 |
|
|
273
|
+
| label | 自定义`label`显示内容,需要设置 `use-label-slot`属性 |
|
|
274
|
+
| rightIcon | 自定义右侧按钮,默认是`arrow`,如果设置了`is-link`属性则不生效 |
|
|
275
|
+
| title | 自定义`title`显示内容,如果设置了`title`属性则不生效 |
|
|
276
|
+
|
|
277
|
+
### Cell 外部样式类
|
|
278
|
+
|
|
279
|
+
| 类名 | 说明 |
|
|
280
|
+
| ------------ | -------------- |
|
|
281
|
+
| customClass | 根节点样式类 |
|
|
282
|
+
| labelClass | 描述信息样式类 |
|
|
283
|
+
| titleClass | 标题样式类 |
|
|
284
|
+
| valueClass | 右侧内容样式类 |
|
|
285
|
+
|
|
286
|
+
### 样式变量
|
|
287
|
+
|
|
288
|
+
组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 [ConfigProvider 组件](/material/smartui?comId=config-provider)。
|
|
289
|
+
|
|
290
|
+
| 名称 | 默认值 | 描述 |
|
|
291
|
+
| ------------------------------------- | ------------------------------------------------- | ------------------------ |
|
|
292
|
+
| --cell-font-size | _16px_ | 单元格字体大小 |
|
|
293
|
+
| --cell-line-height | _24px_ | 单元格行高 |
|
|
294
|
+
| --cell-vertical-padding | _16px_ | 单元格垂直内边距 |
|
|
295
|
+
| --cell-horizontal-padding | _16px_ | 单元格水平内边距 |
|
|
296
|
+
| --cell-text-color | _var(--app-B6-N1, rgba(0, 0, 0, 1))_ | 单元格文字颜色 |
|
|
297
|
+
| --cell-background-color | _var(--app-B6, #fff)_ | 单元格背景颜色 |
|
|
298
|
+
| --cell-active-color | _var(--app-B1, #f6f7fb)_ | 单元格激活颜色 |
|
|
299
|
+
| --cell-required-color | _var(--app-M2, #f04c4c)_ | 单元格必填项颜色 |
|
|
300
|
+
| --cell-label-color | _var(--app-B6-N3, rgba(0, 0, 0, 0.5))_ | 单元格标签文字颜色 |
|
|
301
|
+
| --cell-label-font-size | _14px_ | 单元格标签字体大小 |
|
|
302
|
+
| --cell-label-line-height | _18px_ | 单元格标签行高 |
|
|
303
|
+
| --cell-label-margin-top | _3px_ | 单元格标签上边距 |
|
|
304
|
+
| --cell-value-color | _var(--app-B6-N3, rgba(0, 0, 0, 0.5))_ | 单元格值文字颜色 |
|
|
305
|
+
| --cell-icon-size | _24px_ | 单元格图标大小 |
|
|
306
|
+
| --cell-right-icon-color | _var(--app-B6-N6, rgba(0, 0, 0, 0.2))_ | 单元格右侧图标颜色 |
|
|
307
|
+
| --cell-border-color `v2.1.4` | _var(--app-B6-N7, rgba(0, 0, 0, 0.1))_ | 单元格边框颜色 |
|
|
308
|
+
| --cell-border-left-position `v2.1.4` | _16px_ | 单元格左边框位置 |
|
|
309
|
+
| --cell-border-right-position `v2.1.4` | _16px_ | 单元格右边框位置 |
|
|
310
|
+
| --cell-group-background-color | _var(--app-B6, #fff)_ | 单元格组背景颜色 |
|
|
311
|
+
| --cell-group-title-color | _var(--app-B6-N3, rgba(0, 0, 0, 0.5))_ | 单元格组标题颜色 |
|
|
312
|
+
| --cell-group-title-padding | _@padding-md @padding-md @padding-xs_ | 单元格组标题内边距 |
|
|
313
|
+
| --cell-group-title-font-size | _16px_ | 单元格组标题字体大小 |
|
|
314
|
+
| --cell-group-title-line-height | _16px_ | 单元格组标题行高 |
|
|
315
|
+
| --cell-group-inset-padding | _0 @padding-md_ | 单元格组嵌入内边距 |
|
|
316
|
+
| --cell-group-inset-border-radius | _16px_ | 单元格组嵌入边框圆角半径 |
|
|
317
|
+
| --cell-group-inset-title-padding | _@padding-md @padding-md @padding-xs @padding-xl_ | 单元格组嵌入标题内边距 |
|