@ray-js/smart-ui 2.13.2-beta-0 → 2.13.2-beta-2
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 +6 -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 +6 -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,410 @@
|
|
|
1
|
+
---
|
|
2
|
+
category: 导航
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# NavBar 导航栏
|
|
6
|
+
|
|
7
|
+
### 介绍
|
|
8
|
+
|
|
9
|
+
为页面提供导航功能,常用于页面顶部。
|
|
10
|
+
|
|
11
|
+
### 引入
|
|
12
|
+
|
|
13
|
+
```jsx
|
|
14
|
+
import { NavBar } from '@ray-js/smart-ui';
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## 代码演示
|
|
18
|
+
|
|
19
|
+
### 首页
|
|
20
|
+
|
|
21
|
+
首页的文本样式默认左对齐并加粗,点击左侧文本时触发事件;background `v2.7.0` 属性可以设置 nav-bar 的背景色。
|
|
22
|
+
通过 `slot="left"` 可在左侧区域插入自定义内容(如图标),插入的内容使用 `margin-left: auto` 可在不脱离文档流的情况下在左侧容器内居右排列 `v2.12.0`。
|
|
23
|
+
|
|
24
|
+
```jsx
|
|
25
|
+
import { showToast } from '@ray-js/ray';
|
|
26
|
+
import { Icon, NavBar } from '@ray-js/smart-ui';
|
|
27
|
+
import React from 'react';
|
|
28
|
+
|
|
29
|
+
export default function Demo() {
|
|
30
|
+
const onClickLeftText = React.useCallback(event => {
|
|
31
|
+
showToast({ title: '点击左侧文本', icon: 'none' });
|
|
32
|
+
}, []);
|
|
33
|
+
|
|
34
|
+
return (
|
|
35
|
+
<>
|
|
36
|
+
<NavBar leftText="Home" leftTextType="home" onClickLeftText={onClickLeftText} />
|
|
37
|
+
<NavBar
|
|
38
|
+
background="#E4EDFF"
|
|
39
|
+
customClass="demo-nav-bar"
|
|
40
|
+
leftText="HomeHomeHomeHomeHome"
|
|
41
|
+
leftTextType="home"
|
|
42
|
+
onClickLeftText={onClickLeftText}
|
|
43
|
+
/>
|
|
44
|
+
<NavBar
|
|
45
|
+
background="#E4EDFF"
|
|
46
|
+
customClass="demo-nav-bar"
|
|
47
|
+
leftText="HomeHomeHomeHomeHome"
|
|
48
|
+
leftTextType="home"
|
|
49
|
+
onClickLeftText={onClickLeftText}
|
|
50
|
+
slot={{
|
|
51
|
+
left: (
|
|
52
|
+
<Icon
|
|
53
|
+
style={{ marginLeft: 'auto', paddingLeft: '16px' }}
|
|
54
|
+
name="https://images.tuyacn.com/content-platform/hestia/1729664215ebd89f13e54.png"
|
|
55
|
+
size="24px"
|
|
56
|
+
/>
|
|
57
|
+
),
|
|
58
|
+
}}
|
|
59
|
+
/>
|
|
60
|
+
</>
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### 二级页面-单图标
|
|
66
|
+
|
|
67
|
+
当中间标题内容比较长,且两侧内容较少时可以设置 `v2.7.3` `sideWidth` 为 `min`。
|
|
68
|
+
|
|
69
|
+
```jsx
|
|
70
|
+
import { showToast } from '@ray-js/ray';
|
|
71
|
+
import { NavBar } from '@ray-js/smart-ui';
|
|
72
|
+
import React from 'react';
|
|
73
|
+
import iconMore from '@tuya-miniapp/icons/dist/svg/More';
|
|
74
|
+
|
|
75
|
+
export default function Demo() {
|
|
76
|
+
const onClickLeft = React.useCallback(event => {
|
|
77
|
+
showToast({ title: '点击返回', icon: 'none' });
|
|
78
|
+
}, []);
|
|
79
|
+
|
|
80
|
+
const onClickTitle = React.useCallback(event => {
|
|
81
|
+
showToast({ title: '点击中央文本', icon: 'none' });
|
|
82
|
+
}, []);
|
|
83
|
+
|
|
84
|
+
const onClickRight = React.useCallback(event => {
|
|
85
|
+
showToast({ title: '点击右侧', icon: 'none' });
|
|
86
|
+
}, []);
|
|
87
|
+
|
|
88
|
+
return (
|
|
89
|
+
<NavBar
|
|
90
|
+
title="ScheduleScheduleScheduleSchedule"
|
|
91
|
+
leftArrow
|
|
92
|
+
rightIcon={iconMore}
|
|
93
|
+
sideWidth="min"
|
|
94
|
+
rightIconSize="24px"
|
|
95
|
+
onClickRight={onClickRight}
|
|
96
|
+
onClickLeft={onClickLeft}
|
|
97
|
+
onClickTitle={onClickTitle}
|
|
98
|
+
/>
|
|
99
|
+
);
|
|
100
|
+
}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### 二级页面-常见场景
|
|
104
|
+
|
|
105
|
+
展示二级页面的常见使用场景,包括使用插槽自定义右侧内容、左右文本按钮等。
|
|
106
|
+
|
|
107
|
+
```jsx
|
|
108
|
+
import { showToast } from '@ray-js/ray';
|
|
109
|
+
import { Icon, NavBar } from '@ray-js/smart-ui';
|
|
110
|
+
import React from 'react';
|
|
111
|
+
import iconMore from '@tuya-miniapp/icons/dist/svg/More';
|
|
112
|
+
import iconHouse from '@tuya-miniapp/icons/dist/svg/House';
|
|
113
|
+
|
|
114
|
+
export default function Demo() {
|
|
115
|
+
const onClickLeft = React.useCallback(event => {
|
|
116
|
+
showToast({ title: '点击返回', icon: 'none' });
|
|
117
|
+
}, []);
|
|
118
|
+
|
|
119
|
+
const onClickTitle = React.useCallback(event => {
|
|
120
|
+
showToast({ title: '点击中央文本', icon: 'none' });
|
|
121
|
+
}, []);
|
|
122
|
+
|
|
123
|
+
const onClickRight = React.useCallback(event => {
|
|
124
|
+
showToast({ title: '点击右侧', icon: 'none' });
|
|
125
|
+
}, []);
|
|
126
|
+
|
|
127
|
+
const onClickRightText = React.useCallback(event => {
|
|
128
|
+
showToast({ title: '点击右侧文本', icon: 'none' });
|
|
129
|
+
}, []);
|
|
130
|
+
|
|
131
|
+
const onClickLeftText = React.useCallback(event => {
|
|
132
|
+
showToast({ title: '点击左侧文本', icon: 'none' });
|
|
133
|
+
}, []);
|
|
134
|
+
|
|
135
|
+
return (
|
|
136
|
+
<>
|
|
137
|
+
<NavBar
|
|
138
|
+
title="ScheduleScheduleScheduleSchedule"
|
|
139
|
+
leftArrow
|
|
140
|
+
rightIcon={iconMore}
|
|
141
|
+
rightIconSize="24px"
|
|
142
|
+
sideWidth="mid"
|
|
143
|
+
onClickRight={onClickRight}
|
|
144
|
+
onClickLeft={onClickLeft}
|
|
145
|
+
onClickTitle={onClickTitle}
|
|
146
|
+
slot={{
|
|
147
|
+
right: <Icon size="24px" customStyle={{ marginRight: '16px' }} name={iconHouse} />,
|
|
148
|
+
}}
|
|
149
|
+
/>
|
|
150
|
+
<NavBar
|
|
151
|
+
title="ScheduleScheduleScheduleSchedule"
|
|
152
|
+
rightText="Confirm"
|
|
153
|
+
leftText="Cancel"
|
|
154
|
+
sideWidth="mid"
|
|
155
|
+
customClass="demo-nav-bar"
|
|
156
|
+
rightTextColor="#F04C4C"
|
|
157
|
+
onClickRightText={onClickRightText}
|
|
158
|
+
onClickLeftText={onClickLeftText}
|
|
159
|
+
onClickTitle={onClickTitle}
|
|
160
|
+
/>
|
|
161
|
+
<NavBar
|
|
162
|
+
title="ScheduleScheduleScheduleSchedule"
|
|
163
|
+
leftArrow
|
|
164
|
+
rightText="Confirm"
|
|
165
|
+
sideWidth="mid"
|
|
166
|
+
customClass="demo-nav-bar"
|
|
167
|
+
rightTextColor="#F04C4C"
|
|
168
|
+
onClickRightText={onClickRightText}
|
|
169
|
+
onClickLeft={onClickLeft}
|
|
170
|
+
onClickTitle={onClickTitle}
|
|
171
|
+
/>
|
|
172
|
+
</>
|
|
173
|
+
);
|
|
174
|
+
}
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### 二级页面-短标题
|
|
178
|
+
|
|
179
|
+
当两侧操作内容较多时可以设置 `sideWidth` `v2.7.3` 为 `max`,减小中间标题区域的大小。
|
|
180
|
+
|
|
181
|
+
```jsx
|
|
182
|
+
import { showToast } from '@ray-js/ray';
|
|
183
|
+
import { NavBar } from '@ray-js/smart-ui';
|
|
184
|
+
import React from 'react';
|
|
185
|
+
|
|
186
|
+
export default function Demo() {
|
|
187
|
+
const onClickLeft = React.useCallback(event => {
|
|
188
|
+
showToast({ title: '点击返回', icon: 'none' });
|
|
189
|
+
}, []);
|
|
190
|
+
|
|
191
|
+
const onClickTitle = React.useCallback(event => {
|
|
192
|
+
showToast({ title: '点击中央文本', icon: 'none' });
|
|
193
|
+
}, []);
|
|
194
|
+
|
|
195
|
+
const onClickRightText = React.useCallback(event => {
|
|
196
|
+
showToast({ title: '点击右侧文本', icon: 'none' });
|
|
197
|
+
}, []);
|
|
198
|
+
|
|
199
|
+
const onClickLeftText = React.useCallback(event => {
|
|
200
|
+
showToast({ title: '点击左侧文本', icon: 'none' });
|
|
201
|
+
}, []);
|
|
202
|
+
|
|
203
|
+
return (
|
|
204
|
+
<>
|
|
205
|
+
<NavBar
|
|
206
|
+
title="ScheduleSchedule"
|
|
207
|
+
leftArrow
|
|
208
|
+
sideWidth="max"
|
|
209
|
+
onClickLeft={onClickLeft}
|
|
210
|
+
onClickTitle={onClickTitle}
|
|
211
|
+
/>
|
|
212
|
+
<NavBar
|
|
213
|
+
title="ScheduleSchedule"
|
|
214
|
+
leftText="Abbrechen"
|
|
215
|
+
rightText="Speichern"
|
|
216
|
+
customClass="demo-nav-bar"
|
|
217
|
+
rightTextColor="#F04C4C"
|
|
218
|
+
sideWidth="max"
|
|
219
|
+
onClickLeftText={onClickLeftText}
|
|
220
|
+
onClickTitle={onClickTitle}
|
|
221
|
+
onClickRightText={onClickRightText}
|
|
222
|
+
/>
|
|
223
|
+
<NavBar
|
|
224
|
+
title="ScheduleSchedule"
|
|
225
|
+
leftArrow
|
|
226
|
+
rightText="Speichern"
|
|
227
|
+
rightTextColor="#F04C4C"
|
|
228
|
+
sideWidth="max"
|
|
229
|
+
customClass="demo-nav-bar"
|
|
230
|
+
onClickLeft={onClickLeft}
|
|
231
|
+
onClickTitle={onClickTitle}
|
|
232
|
+
onClickRightText={onClickRightText}
|
|
233
|
+
/>
|
|
234
|
+
</>
|
|
235
|
+
);
|
|
236
|
+
}
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
### 自定义宽度
|
|
240
|
+
|
|
241
|
+
`sideWidth` 也支持传如 `100`、`'100px'`、`'100rpx'` 去自定义两边的宽度。
|
|
242
|
+
|
|
243
|
+
```jsx
|
|
244
|
+
import { showToast } from '@ray-js/ray';
|
|
245
|
+
import { NavBar } from '@ray-js/smart-ui';
|
|
246
|
+
import React from 'react';
|
|
247
|
+
import iconMore from '@tuya-miniapp/icons/dist/svg/More';
|
|
248
|
+
|
|
249
|
+
export default function Demo() {
|
|
250
|
+
const onClickLeft = React.useCallback(event => {
|
|
251
|
+
showToast({ title: '点击返回', icon: 'none' });
|
|
252
|
+
}, []);
|
|
253
|
+
|
|
254
|
+
const onClickTitle = React.useCallback(event => {
|
|
255
|
+
showToast({ title: '点击中央文本', icon: 'none' });
|
|
256
|
+
}, []);
|
|
257
|
+
|
|
258
|
+
const onClickRight = React.useCallback(event => {
|
|
259
|
+
showToast({ title: '点击右侧', icon: 'none' });
|
|
260
|
+
}, []);
|
|
261
|
+
|
|
262
|
+
return (
|
|
263
|
+
<NavBar
|
|
264
|
+
title="ScheduleScheduleScheduleSchedule"
|
|
265
|
+
leftArrow
|
|
266
|
+
sideWidth="100px"
|
|
267
|
+
rightIcon={iconMore}
|
|
268
|
+
rightIconSize="24px"
|
|
269
|
+
onClickRight={onClickRight}
|
|
270
|
+
onClickLeft={onClickLeft}
|
|
271
|
+
onClickTitle={onClickTitle}
|
|
272
|
+
/>
|
|
273
|
+
);
|
|
274
|
+
}
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
### 左标题
|
|
278
|
+
|
|
279
|
+
部分二级页面标题位于左侧,或同时附带 icon。
|
|
280
|
+
|
|
281
|
+
```jsx
|
|
282
|
+
import { showToast } from '@ray-js/ray';
|
|
283
|
+
import { NavBar } from '@ray-js/smart-ui';
|
|
284
|
+
import React from 'react';
|
|
285
|
+
|
|
286
|
+
export default function Demo() {
|
|
287
|
+
const onClickLeft = React.useCallback(event => {
|
|
288
|
+
showToast({ title: '点击返回', icon: 'none' });
|
|
289
|
+
}, []);
|
|
290
|
+
|
|
291
|
+
const onClickLeftIcon = React.useCallback(event => {
|
|
292
|
+
showToast({ title: '点击左侧图标', icon: 'none' });
|
|
293
|
+
}, []);
|
|
294
|
+
|
|
295
|
+
const onClickLeftText = React.useCallback(event => {
|
|
296
|
+
showToast({ title: '点击左侧文本', icon: 'none' });
|
|
297
|
+
}, []);
|
|
298
|
+
|
|
299
|
+
const onClickRight = React.useCallback(event => {
|
|
300
|
+
showToast({ title: '点击右侧', icon: 'none' });
|
|
301
|
+
}, []);
|
|
302
|
+
|
|
303
|
+
return (
|
|
304
|
+
<NavBar
|
|
305
|
+
leftText="Home"
|
|
306
|
+
leftTextType="title"
|
|
307
|
+
leftIcon="https://images.tuyacn.com/content-platform/hestia/1729664215ebd89f13e54.png"
|
|
308
|
+
onClickLeft={onClickLeft}
|
|
309
|
+
onClickLeftIcon={onClickLeftIcon}
|
|
310
|
+
onClickLeftText={onClickLeftText}
|
|
311
|
+
onClickRight={onClickRight}
|
|
312
|
+
/>
|
|
313
|
+
);
|
|
314
|
+
}
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
## API
|
|
318
|
+
|
|
319
|
+
### Props
|
|
320
|
+
|
|
321
|
+
| 参数 | 说明 | 类型 | 默认值 |
|
|
322
|
+
| ------------------- | ---------------------------------- | --------- | ------- |
|
|
323
|
+
| border | 是否显示下边框 | _boolean_ | `true` `v2.0.0` `false` `v2.7.0` |
|
|
324
|
+
| customStyle | 根节点自定义样式 | _React.CSSProperties_ | - |
|
|
325
|
+
| fixed | 是否固定在顶部 | _boolean_ | `false` |
|
|
326
|
+
| leftArrow | 是否显示左侧箭头 | _boolean_ | `false` |
|
|
327
|
+
| leftArrowAriaLabel `v2.13.0` | 左侧返回箭头的无障碍读屏文案 | _string_ | - |
|
|
328
|
+
| leftText | 左侧文案 | _string_ | `''` |
|
|
329
|
+
| leftTextType `v2.0.0` | 左侧文本的样式类型,范围为 `home`、`title`、`back` | _string_ | `back` |
|
|
330
|
+
| leftIcon `v2.0.0` | 左侧 Icon | _string_ | `''` |
|
|
331
|
+
| leftIconAriaLabel `v2.13.0` | 左侧图标按钮的无障碍读屏文案 | _string_ | - |
|
|
332
|
+
| leftIconSize `v2.0.0` | 左侧 Icon 大小,默认为 32 | _string \| number_ | `32` |
|
|
333
|
+
| round `v2.1.0` | 是否显示圆角 | _boolean_ | `false` |
|
|
334
|
+
| placeholder | 固定在顶部时是否开启占位 | _boolean_ | `false` |
|
|
335
|
+
| rightText | 右侧文案 | _string_ | `''` |
|
|
336
|
+
| safeAreaInsetTop | 是否留出顶部安全距离(状态栏高度) | _boolean_ | `true` |
|
|
337
|
+
| title | 标题 | _string_ | `''` |
|
|
338
|
+
| zIndex | 元素 z-index | _number_ | `1` |
|
|
339
|
+
| rightTextColor `v2.7.0` | 右侧文案的颜色 | _string_ | - |
|
|
340
|
+
| rightIcon `v2.7.0` | 右侧图标 | _string_ | - |
|
|
341
|
+
| rightIconAriaLabel `v2.13.0` | 右侧图标按钮的无障碍读屏文案 | _string_ | - |
|
|
342
|
+
| rightIconColor `v2.7.0` | 右侧图标颜色 | _string_ | - |
|
|
343
|
+
| rightIconSize `v2.7.0` | 右侧图标大小 | _number_ | `32px` |
|
|
344
|
+
| leftIconColor `v2.7.0` | 左侧图标颜色 (非返回 icon) | _string_ | - |
|
|
345
|
+
| background `v2.7.0` | 整体背景色 | _string_ | - |
|
|
346
|
+
| sideWidth `v2.7.3` | 两边控制栏的宽度, 提供 `min`、`mid`、`max`三档内置值;也可以传具体宽度值 | _string\/number\/`min`\/`mid`\/`max`_ | `mid` `v2.7.3` `max` `v2.9.0` |
|
|
347
|
+
|
|
348
|
+
### Slot
|
|
349
|
+
|
|
350
|
+
| 名称 | 说明 |
|
|
351
|
+
| ----- | ------------------ |
|
|
352
|
+
| left | 自定义左侧区域内容 |
|
|
353
|
+
| right | 自定义右侧区域内容 |
|
|
354
|
+
| title | 自定义标题 |
|
|
355
|
+
|
|
356
|
+
### Events
|
|
357
|
+
|
|
358
|
+
| 事件名 | 说明 | 参数 |
|
|
359
|
+
| ---------------- | ------------------ | ---- |
|
|
360
|
+
| onClickLeft | 点击左侧返回 icon 时触发 | - |
|
|
361
|
+
| onClickRight | 点击右侧按钮时触发 | - |
|
|
362
|
+
| onClickTitle `v2.0.0` | 点击中央标题时触发 | - |
|
|
363
|
+
| onClickLeftIcon `v2.0.0` | 点击左侧 icon 时触发(非返回 icon) | - |
|
|
364
|
+
| onClickLeftText `v2.0.0` | 点击左侧文本时触发 | - |
|
|
365
|
+
| onClickRightIcon `v2.7.0` | 点击右侧图标时触发 | - |
|
|
366
|
+
| onClickRightText `v2.7.0` | 点击右侧文本时触发 | - |
|
|
367
|
+
|
|
368
|
+
### 外部样式类
|
|
369
|
+
|
|
370
|
+
| 类名 | 说明 |
|
|
371
|
+
| ------------ | ------------ |
|
|
372
|
+
| customClass | 根节点样式类 |
|
|
373
|
+
| titleClass | 标题样式类 |
|
|
374
|
+
| leftIconClass `v2.0.0` | 左侧图标样式类 |
|
|
375
|
+
| rightTextClass `v2.1.0` | 右侧文字样式类 |
|
|
376
|
+
| rightIconClass `v2.7.0` | 右侧图标样式类 |
|
|
377
|
+
| leftTextClass `v2.7.0` | 左侧文字样式类 |
|
|
378
|
+
|
|
379
|
+
### 样式变量
|
|
380
|
+
|
|
381
|
+
组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 [ConfigProvider 组件](/material/smartui?comId=config-provider)。
|
|
382
|
+
|
|
383
|
+
| 名称 | 默认值 | 描述 |
|
|
384
|
+
| ----------------------------- | -------------------------------------- | ---- |
|
|
385
|
+
| --nav-bar-height | _var(--app-device-navbar-height, 46px)_ | 导航栏高度 |
|
|
386
|
+
| --nav-bar-round-min-height `v2.1.0` | _56px_ | 导航栏圆角存在时的最小高度 |
|
|
387
|
+
| --nav-bar-round-border-radius `v2.1.0` | _16px 16px 0px 0px_ | 是否显示导航栏圆角 |
|
|
388
|
+
| --nav-bar-background-color | _var(--app-B2, #ffffff)_ | 导航栏背景色 |
|
|
389
|
+
| --nav-bar-arrow-color | _var(--app-B2-N1, rgba(0, 0, 0, 1))_ | 导航栏箭头颜色 |
|
|
390
|
+
| --nav-bar-icon-size `@deprecated v2.7.0` | _32px_ | 导航栏图标大小 |
|
|
391
|
+
| --nav-bar-icon-color | _var(--app-B2-N1, rgba(0, 0, 0, 1))_ | 导航栏图标颜色 |
|
|
392
|
+
| --nav-bar-icon-margin `@deprecated v2.7.0` | _0_ | 导航栏图标外边距 |
|
|
393
|
+
| --nav-bar-text-font-size `v2.1.0` | _16px_ `v2.1.0` _17px_ `v2.7.3` | 导航栏侧边文字大小 |
|
|
394
|
+
| --nav-bar-text-font-weight `v2.7.0` | _600_ `v2.7.0` _normal_ `v2.7.3` | 导航栏侧边文字字体字重 |
|
|
395
|
+
| --nav-bar-text-color | _var(--app-B2-N2, rgba(0, 0, 0, 1))_ | 导航栏文字颜色 |
|
|
396
|
+
| --nav-bar-title-font-size | _17px_ | 导航栏标题文字大小 |
|
|
397
|
+
| --nav-bar-title-font-weight | _600_ | 导航栏标题字重 |
|
|
398
|
+
| --nav-bar-title-text-color | _var(--app-B2-N1, rgba(0, 0, 0, 1))_ | 导航栏标题文字颜色 |
|
|
399
|
+
| --nav-bar-home-font-size | _22px_ | 导航栏首页文字大小 |
|
|
400
|
+
| --nav-bar-home-font-weight | _600_ | 导航栏首页字重 |
|
|
401
|
+
| --nav-bar-home-text-color | _var(--app-B2-N1, rgba(0, 0, 0, 1))_ | 导航栏首页文字颜色 |
|
|
402
|
+
| --nav-bar-right-text-color `v2.5.1` | _var(--app-B2-N1, rgba(0, 0, 0, 1))_ | 导航栏右侧文字颜色 |
|
|
403
|
+
| --nav-bar-title-max-width `v2.6.0` | _56%_ `v2.6.0` _calc(100% - 98px - 16px)_ `v2.7.0` | 导航栏标题的宽度 |
|
|
404
|
+
| --nav-bar-side-width `v2.7.0` | _98px_ `v2.7.0` _80px_ `v2.7.3` | 两边默认宽度 |
|
|
405
|
+
| --nav-bar-text-padding `v2.7.0` | _20px_ `v2.7.0` _16px_ `v2.7.3` | 两边文字内边距 |
|
|
406
|
+
| --nav-bar-icon-padding `v2.7.0` | _16px_ | 两边图标内边距 |
|
|
407
|
+
| --nav-bar-title-margin `v2.7.0` | _16px_ | 标题外边距 |
|
|
408
|
+
| --nav-bar-home-max-width `v2.7.0` | _calc(100% - 98px - 16px)_ | 小程序首页时左侧标题最大宽度 |
|
|
409
|
+
| --nav-bar-side-width-min `v2.7.3` | _40px_ | 侧边min时宽度 |
|
|
410
|
+
| --nav-bar-side-width-max `v2.7.3` | _105px_ | 侧边max时宽度 |
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
---
|
|
2
|
+
category: 展示
|
|
3
|
+
assets: NoticeBar
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# NoticeBar 通知栏
|
|
7
|
+
|
|
8
|
+
> v2.0.0 开始加入
|
|
9
|
+
|
|
10
|
+
### 介绍
|
|
11
|
+
|
|
12
|
+
用于循环播放展示一组消息通知。
|
|
13
|
+
|
|
14
|
+
### 引入
|
|
15
|
+
|
|
16
|
+
```jsx
|
|
17
|
+
import { NoticeBar } from '@ray-js/smart-ui';
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## 代码演示
|
|
21
|
+
|
|
22
|
+
### 基础用法
|
|
23
|
+
|
|
24
|
+
文字较长时,可以通过设置 `wrapable` 属性来开启多行展示。`type` 可以设置通知的类型。
|
|
25
|
+
|
|
26
|
+
```tsx
|
|
27
|
+
import { NoticeBar } from '@ray-js/smart-ui';
|
|
28
|
+
import React from 'react';
|
|
29
|
+
import Warning from '@tuya-miniapp/icons/dist/svg/Warning';
|
|
30
|
+
|
|
31
|
+
export default function Demo() {
|
|
32
|
+
return (<>
|
|
33
|
+
<NoticeBar
|
|
34
|
+
wrapable
|
|
35
|
+
type="info"
|
|
36
|
+
left-icon={Warning}
|
|
37
|
+
custom-style="margin-bottom: 10px;"
|
|
38
|
+
text="如果是家中常住成员,建议您将他设为家庭成员,共享家中所有设备和智能场景。"
|
|
39
|
+
btnText="家庭设置"
|
|
40
|
+
/>
|
|
41
|
+
<NoticeBar
|
|
42
|
+
wrapable
|
|
43
|
+
type="warning"
|
|
44
|
+
left-icon={Warning}
|
|
45
|
+
custom-style="margin-bottom: 10px;"
|
|
46
|
+
text="如果是家中常住成员,建议您将他设为家庭成员,共享家中所有设备和智能场景。"
|
|
47
|
+
btnText="家庭设置"
|
|
48
|
+
/>
|
|
49
|
+
<NoticeBar
|
|
50
|
+
wrapable
|
|
51
|
+
type="error"
|
|
52
|
+
left-icon={Warning}
|
|
53
|
+
custom-style="margin-bottom: 10px;"
|
|
54
|
+
text="如果是家中常住成员,建议您将他设为家庭成员,共享家中所有设备和智能场景。"
|
|
55
|
+
btnText="家庭设置"
|
|
56
|
+
/>
|
|
57
|
+
</>)
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
### 关闭
|
|
61
|
+
|
|
62
|
+
`mode` 设置为 `closeable` 则可以将此通知关闭,页面刷新后还会再次出现。
|
|
63
|
+
|
|
64
|
+
```tsx
|
|
65
|
+
import { NoticeBar } from '@ray-js/smart-ui';
|
|
66
|
+
import React from 'react';
|
|
67
|
+
import Warning from '@tuya-miniapp/icons/dist/svg/Warning';
|
|
68
|
+
|
|
69
|
+
export default function Demo() {
|
|
70
|
+
return (
|
|
71
|
+
<NoticeBar
|
|
72
|
+
wrapable
|
|
73
|
+
mode="closeable"
|
|
74
|
+
left-icon={Warning}
|
|
75
|
+
text="如果是家中常住成员,建议您将他设为家庭成员,共享家中所有设备和智能场景。"
|
|
76
|
+
btnText="家庭设置"
|
|
77
|
+
/>
|
|
78
|
+
)
|
|
79
|
+
}
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### 溢出文本自动滚动
|
|
83
|
+
|
|
84
|
+
通知栏的内容长度溢出时会自动开启滚动播放,通过 `scrollable` 属性可以控制该行为。`speed` 可以控制滚动的速度。
|
|
85
|
+
|
|
86
|
+
```tsx
|
|
87
|
+
import { NoticeBar } from '@ray-js/smart-ui';
|
|
88
|
+
import React from 'react';
|
|
89
|
+
import Warning from '@tuya-miniapp/icons/dist/svg/Warning';
|
|
90
|
+
|
|
91
|
+
export default function Demo() {
|
|
92
|
+
return (
|
|
93
|
+
<>
|
|
94
|
+
{/* 文字较短时,通过设置 scrollable 属性开启滚动播放 */}
|
|
95
|
+
<NoticeBar
|
|
96
|
+
speed={100}
|
|
97
|
+
scrollable
|
|
98
|
+
text="技术是开发它的人的共同灵魂。"
|
|
99
|
+
/>
|
|
100
|
+
{/* 文字较长时,通过禁用 scrollable 属性关闭滚动播放 */}
|
|
101
|
+
<NoticeBar
|
|
102
|
+
scrollable={false}
|
|
103
|
+
text="如果是家中常住成员,建议您将他设为家庭成员。"
|
|
104
|
+
/>
|
|
105
|
+
</>
|
|
106
|
+
)
|
|
107
|
+
}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### 自定义样式
|
|
111
|
+
|
|
112
|
+
```tsx
|
|
113
|
+
import { NoticeBar } from '@ray-js/smart-ui';
|
|
114
|
+
import React from 'react';
|
|
115
|
+
import Warning from '@tuya-miniapp/icons/dist/svg/Warning';
|
|
116
|
+
|
|
117
|
+
export default function Demo() {
|
|
118
|
+
return (
|
|
119
|
+
<NoticeBar
|
|
120
|
+
wrapable
|
|
121
|
+
left-icon={Warning}
|
|
122
|
+
text="如果是家中常住成员,建议您将他设为家庭成员,共享家中所有设备和智能场景。"
|
|
123
|
+
btnText="家庭设置"
|
|
124
|
+
background="rgba(25, 137, 250, 0.1)"
|
|
125
|
+
color="#1989FA"
|
|
126
|
+
leftIconColor="#0009FA"
|
|
127
|
+
btnTextColor="#0009FA"
|
|
128
|
+
/>
|
|
129
|
+
)
|
|
130
|
+
}
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### 链接模式
|
|
134
|
+
|
|
135
|
+
设置 `mode`为`link`组件会自动在右侧出现一个箭头图标,点击组件也会增加`hover`样式。点击后会跳转到对应的`url` 路由导航地址。
|
|
136
|
+
|
|
137
|
+
```tsx
|
|
138
|
+
import { NoticeBar } from '@ray-js/smart-ui';
|
|
139
|
+
import React from 'react';
|
|
140
|
+
import Warning from '@tuya-miniapp/icons/dist/svg/Warning';
|
|
141
|
+
|
|
142
|
+
export default function Demo() {
|
|
143
|
+
return (
|
|
144
|
+
<NoticeBar
|
|
145
|
+
scrollable={false}
|
|
146
|
+
mode="link"
|
|
147
|
+
openType="navigateTo"
|
|
148
|
+
url="/pages/cell/index"
|
|
149
|
+
left-icon={Warning}
|
|
150
|
+
text="如果是家中常住成员,建议您将他设为家庭成员,共享家中所有设备和智能场景。"
|
|
151
|
+
/>
|
|
152
|
+
)
|
|
153
|
+
}
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### 使用插槽
|
|
157
|
+
|
|
158
|
+
组件内部的所有部分都可以通过插槽插入来自定义内容。
|
|
159
|
+
|
|
160
|
+
```tsx
|
|
161
|
+
import { NoticeBar, Icon } from '@ray-js/smart-ui';
|
|
162
|
+
import React from 'react';
|
|
163
|
+
import Warning from '@tuya-miniapp/icons/dist/svg/Warning';
|
|
164
|
+
import SpeakerWaveLoud from '@tuya-miniapp/icons/dist/svg/SpeakerWaveLoud';
|
|
165
|
+
import { Text } from '@ray-js/ray';
|
|
166
|
+
|
|
167
|
+
export default function Demo() {
|
|
168
|
+
return (
|
|
169
|
+
<NoticeBar
|
|
170
|
+
wrapable
|
|
171
|
+
slot={{
|
|
172
|
+
leftIcon: (
|
|
173
|
+
<Icon
|
|
174
|
+
size="16"
|
|
175
|
+
color="#1989FA"
|
|
176
|
+
customStyle={{
|
|
177
|
+
marginRight: '8px',
|
|
178
|
+
}}
|
|
179
|
+
name={SpeakerWaveLoud}
|
|
180
|
+
/>
|
|
181
|
+
),
|
|
182
|
+
rightIcon: (
|
|
183
|
+
<Icon
|
|
184
|
+
size="16"
|
|
185
|
+
color="#1989FA"
|
|
186
|
+
customStyle={{
|
|
187
|
+
marginLeft: '8px',
|
|
188
|
+
}}
|
|
189
|
+
name={Warning}
|
|
190
|
+
/>
|
|
191
|
+
),
|
|
192
|
+
}}>
|
|
193
|
+
<Text>如果是家中常住成员,建议您将他设为家庭成员,共享家中所有设备和智能场景。</Text>
|
|
194
|
+
<Text style={{ color: '#1989FA' }}>家庭设置</Text>
|
|
195
|
+
</NoticeBar>
|
|
196
|
+
)
|
|
197
|
+
}
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
## API
|
|
201
|
+
|
|
202
|
+
### Props
|
|
203
|
+
|
|
204
|
+
| 参数 | 说明 | 类型 | 默认值 |
|
|
205
|
+
| ---------- | ---------------------------------------- | --------- | ---------- |
|
|
206
|
+
| text | 通知文本内容 | _string_ | `''` |
|
|
207
|
+
| btnText | 按钮文本内容 | _string_ | `''` |
|
|
208
|
+
| btnTextColor | 按钮文本颜色 | _string_ | `''` |
|
|
209
|
+
| type | 通知类型,可选值为 `info` `warning` `error` | _string_ | `'info'` |
|
|
210
|
+
| background | 滚动条背景 | _string_ | `rgba(25, 137, 250, 0.1)` |
|
|
211
|
+
| closeIconAriaLabel `v2.13.0` | 关闭按钮的无障碍读屏文案,透传至关闭图标的 `ariaLabel` | _string_ | - |
|
|
212
|
+
| color | 通知文本颜色 | _string_ | `#1989fa` |
|
|
213
|
+
| delay | 动画延迟时间 (ms) | _number_ | `1` |
|
|
214
|
+
| leftIcon | 左侧[图标](/material/smartui?comId=icon)或图片链接 | _string_ | - |
|
|
215
|
+
| leftIconColor | 左侧[图标](/material/smartui?comId=icon)颜色 | _string_ | - |
|
|
216
|
+
| rightIconColor | 右侧[图标](/material/smartui?comId=icon)颜色 | _string_ | - |
|
|
217
|
+
| leftIconStyle | 左侧[图标](/material/smartui?comId=icon)样式 | _React.CSSProperties_ | - |
|
|
218
|
+
| rightIconStyle | 左侧[图标](/material/smartui?comId=icon)样式 | _React.CSSProperties_ | - |
|
|
219
|
+
| mode | 通知栏模式,可选值为 `closeable` `link` | _string_ | `''` |
|
|
220
|
+
| openType | `link`模式时,路由跳转方法名称 | _string_ | `navigateTo` |
|
|
221
|
+
| url | `link`模式时,路由跳转地址 | _string_ | `''` |
|
|
222
|
+
| scrollable | 是否开启滚动播放,内容长度溢出时默认开启 | _boolean_ | - |
|
|
223
|
+
| speed | 滚动速率 (px/s) | _number_ | `60` |
|
|
224
|
+
| wrapable | 是否开启文本换行,只在禁用滚动时生效 | _boolean_ | `false` |
|
|
225
|
+
| customStyle | 跟节点样式 | _React.CSSProperties_ | - |
|
|
226
|
+
| customHoverClass | 跟节点点击样式类 | _string_ | `''` |
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
### Events
|
|
230
|
+
|
|
231
|
+
| 事件名 | 说明 | 参数 |
|
|
232
|
+
| ---------- | ---------------- | -------------- |
|
|
233
|
+
| onClick | 点击通知栏时触发 | _event: Event_ |
|
|
234
|
+
| onClose | 关闭通知栏时触发 | _event: Event_ |
|
|
235
|
+
| onBtnClick `v2.7.0` | 按钮文案点击时触发 | _event: Event_ |
|
|
236
|
+
|
|
237
|
+
|
|
238
|
+
### Slot
|
|
239
|
+
|
|
240
|
+
| 名称 | 说明 |
|
|
241
|
+
| ---------- | ---------------------------------------- |
|
|
242
|
+
| - | 通知文本内容,仅在 `text` 属性为空时有效 |
|
|
243
|
+
| leftIcon | 自定义左侧图标 |
|
|
244
|
+
| rightIcon | 自定义右侧图标 |
|
|
245
|
+
|
|
246
|
+
### 外部样式类
|
|
247
|
+
|
|
248
|
+
| 类名 | 说明 |
|
|
249
|
+
| ------------ | ------------ |
|
|
250
|
+
| customClass | 根节点样式类 |
|
|
251
|
+
|
|
252
|
+
### 样式变量
|
|
253
|
+
|
|
254
|
+
组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 [ConfigProvider 组件](/material/smartui?comId=config-provider)。
|
|
255
|
+
|
|
256
|
+
| 名称 | 默认值 | 描述 |
|
|
257
|
+
| ----------------------------- | -------------------------------------- | ---- |
|
|
258
|
+
| --notice-bar-font-size | _14px_ | 内部字体大小 |
|
|
259
|
+
| --notice-bar-height | _40px_ | 单行时高度 |
|
|
260
|
+
| --notice-bar-icon-size | _16px_ | icon大小 |
|
|
261
|
+
| --notice-bar-line-height | _14px_ | 内部字体行高大小 |
|
|
262
|
+
| --notice-bar-padding | _0 var(--smart-padding-md)_ | 单行模式外部盒子边距 |
|
|
263
|
+
| --notice-bar-text-color | _var(--app-B6-N3, rgba(0, 0, 0, 0.5))_ `v2.0.0` _rgba(0, 0, 0, 0.5)_ `v2.8.0` | 内部字体颜色 |
|
|
264
|
+
| --notice-bar-wrapable-padding | _var(--padding-xs) var(--padding-md)_ | 多行模式外部盒子边距 |
|
|
265
|
+
| --notice-bar-background-color | _#E7F3FE_ | info类型背景色 |
|
|
266
|
+
| --notice-bar-background-warning-color | _#FFF5E5_ | warning类型背景色 |
|
|
267
|
+
| --notice-bar-background-error-color | _#FDEDED_ | error类型背景色 |
|
|
268
|
+
| --notice-bar-info-color | _#1989fa_ | 左侧图标 info 类型颜色 |
|
|
269
|
+
| --notice-bar-warning-color | _#ffa000_ | 左侧图标 warning 类型颜色 |
|
|
270
|
+
| --notice-bar-error-color | _#f04c4c_ | 左侧图标 error 类型颜色 |
|
|
271
|
+
| --notice-bar-left-icon-margin-right | _8px_ | 左侧图标右侧外边距 |
|
|
272
|
+
| --notice-bar-right-icon-color `v2.1.7` | _rgba(0, 0, 0, 0.2)_ | 右侧图标颜色 |
|
|
273
|
+
| --notice-bar-right-icon-margin-left | _8px_ | 右侧图标左侧外边距 |
|
|
274
|
+
| --notice-bar-btn-color | _var(--app-M4, #1989fa)_ | 按钮文案颜色 |
|