@fjyueke/bify-mcp 1.0.0
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/LICENSE +21 -0
- package/README.md +34 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +248 -0
- package/metaData/components/action-sheet/api.md +74 -0
- package/metaData/components/action-sheet/doc.md +243 -0
- package/metaData/components/action-sheet/example/index.tsx +116 -0
- package/metaData/components/area-picker/api.md +25 -0
- package/metaData/components/area-picker/doc.md +132 -0
- package/metaData/components/area-picker/example/index.tsx +60 -0
- package/metaData/components/avatar/api.md +19 -0
- package/metaData/components/avatar/doc.md +170 -0
- package/metaData/components/avatar/example/index.tsx +76 -0
- package/metaData/components/back-top/api.md +21 -0
- package/metaData/components/back-top/doc.md +142 -0
- package/metaData/components/back-top/example/index.tsx +96 -0
- package/metaData/components/backdrop/api.md +20 -0
- package/metaData/components/backdrop/doc.md +98 -0
- package/metaData/components/backdrop/example/index.tsx +33 -0
- package/metaData/components/badge/api.md +10 -0
- package/metaData/components/badge/doc.md +169 -0
- package/metaData/components/badge/example/index.tsx +81 -0
- package/metaData/components/button/api.md +31 -0
- package/metaData/components/button/doc.md +235 -0
- package/metaData/components/button/example/index.tsx +235 -0
- package/metaData/components/calendar/api.md +62 -0
- package/metaData/components/calendar/doc.md +516 -0
- package/metaData/components/calendar/example/index.tsx +501 -0
- package/metaData/components/cascader/api.md +55 -0
- package/metaData/components/cascader/doc.md +358 -0
- package/metaData/components/cascader/example/index.tsx +159 -0
- package/metaData/components/cell/api.md +37 -0
- package/metaData/components/cell/doc.md +158 -0
- package/metaData/components/cell/example/index.tsx +44 -0
- package/metaData/components/checkbox/api.md +35 -0
- package/metaData/components/checkbox/doc.md +203 -0
- package/metaData/components/checkbox/example/index.tsx +94 -0
- package/metaData/components/circle/api.md +17 -0
- package/metaData/components/circle/doc.md +123 -0
- package/metaData/components/circle/example/index.tsx +81 -0
- package/metaData/components/collapse/api.md +31 -0
- package/metaData/components/collapse/doc.md +142 -0
- package/metaData/components/collapse/example/index.tsx +81 -0
- package/metaData/components/config-provider/api.md +7 -0
- package/metaData/components/config-provider/doc.md +193 -0
- package/metaData/components/config-provider/example/index.tsx +54 -0
- package/metaData/components/countdown/api.md +46 -0
- package/metaData/components/countdown/doc.md +167 -0
- package/metaData/components/countdown/example/index.tsx +70 -0
- package/metaData/components/datetime-picker/api.md +25 -0
- package/metaData/components/datetime-picker/doc.md +317 -0
- package/metaData/components/datetime-picker/example/index.tsx +265 -0
- package/metaData/components/dialog/api.md +66 -0
- package/metaData/components/dialog/doc.md +292 -0
- package/metaData/components/dialog/example/index.tsx +138 -0
- package/metaData/components/divider/api.md +15 -0
- package/metaData/components/divider/doc.md +108 -0
- package/metaData/components/divider/example/index.tsx +45 -0
- package/metaData/components/dropdown-menu/api.md +37 -0
- package/metaData/components/dropdown-menu/doc.md +279 -0
- package/metaData/components/dropdown-menu/example/index.tsx +182 -0
- package/metaData/components/empty/api.md +20 -0
- package/metaData/components/empty/doc.md +126 -0
- package/metaData/components/empty/example/index.tsx +66 -0
- package/metaData/components/field/api.md +10 -0
- package/metaData/components/field/doc.md +274 -0
- package/metaData/components/field/example/index.tsx +203 -0
- package/metaData/components/fixed-nav/api.md +21 -0
- package/metaData/components/fixed-nav/doc.md +196 -0
- package/metaData/components/fixed-nav/example/index.tsx +80 -0
- package/metaData/components/fixed-view/api.md +10 -0
- package/metaData/components/fixed-view/doc.md +25 -0
- package/metaData/components/fixed-view/example/index.tsx +12 -0
- package/metaData/components/flex/api.md +18 -0
- package/metaData/components/flex/doc.md +103 -0
- package/metaData/components/flex/example/index.tsx +58 -0
- package/metaData/components/floating-bubble/api.md +18 -0
- package/metaData/components/floating-bubble/doc.md +94 -0
- package/metaData/components/floating-bubble/example/index.tsx +55 -0
- package/metaData/components/floating-panel/api.md +19 -0
- package/metaData/components/floating-panel/doc.md +174 -0
- package/metaData/components/floating-panel/example/index.tsx +131 -0
- package/metaData/components/form/api.md +124 -0
- package/metaData/components/form/doc.md +759 -0
- package/metaData/components/form/example/index.tsx +222 -0
- package/metaData/components/grid/api.md +28 -0
- package/metaData/components/grid/doc.md +167 -0
- package/metaData/components/grid/example/index.tsx +80 -0
- package/metaData/components/image/api.md +42 -0
- package/metaData/components/image/doc.md +117 -0
- package/metaData/components/image/example/index.tsx +76 -0
- package/metaData/components/index-list/api.md +39 -0
- package/metaData/components/index-list/doc.md +176 -0
- package/metaData/components/index-list/example/index.tsx +110 -0
- package/metaData/components/list/api.md +30 -0
- package/metaData/components/list/doc.md +317 -0
- package/metaData/components/list/example/index.tsx +218 -0
- package/metaData/components/loading/api.md +10 -0
- package/metaData/components/loading/doc.md +113 -0
- package/metaData/components/loading/example/index.tsx +47 -0
- package/metaData/components/navbar/api.md +26 -0
- package/metaData/components/navbar/doc.md +85 -0
- package/metaData/components/navbar/example/index.tsx +28 -0
- package/metaData/components/notice-bar/api.md +28 -0
- package/metaData/components/notice-bar/doc.md +154 -0
- package/metaData/components/notice-bar/example/index.tsx +107 -0
- package/metaData/components/notify/api.md +28 -0
- package/metaData/components/notify/doc.md +140 -0
- package/metaData/components/notify/example/index.tsx +89 -0
- package/metaData/components/number-keyboard/api.md +21 -0
- package/metaData/components/number-keyboard/doc.md +247 -0
- package/metaData/components/number-keyboard/example/index.tsx +201 -0
- package/metaData/components/pagination/api.md +18 -0
- package/metaData/components/pagination/doc.md +113 -0
- package/metaData/components/pagination/example/index.tsx +73 -0
- package/metaData/components/password-input/api.md +25 -0
- package/metaData/components/password-input/doc.md +126 -0
- package/metaData/components/password-input/example/index.tsx +124 -0
- package/metaData/components/picker/api.md +61 -0
- package/metaData/components/picker/doc.md +336 -0
- package/metaData/components/picker/example/index.tsx +232 -0
- package/metaData/components/popup/api.md +48 -0
- package/metaData/components/popup/doc.md +150 -0
- package/metaData/components/popup/example/index.tsx +214 -0
- package/metaData/components/progress/api.md +11 -0
- package/metaData/components/progress/doc.md +105 -0
- package/metaData/components/progress/example/index.tsx +58 -0
- package/metaData/components/pull-refresh/api.md +18 -0
- package/metaData/components/pull-refresh/doc.md +198 -0
- package/metaData/components/pull-refresh/example/index.tsx +153 -0
- package/metaData/components/radio/api.md +26 -0
- package/metaData/components/radio/doc.md +201 -0
- package/metaData/components/radio/example/index.tsx +103 -0
- package/metaData/components/rate/api.md +23 -0
- package/metaData/components/rate/doc.md +122 -0
- package/metaData/components/rate/example/index.tsx +36 -0
- package/metaData/components/rolling-text/api.md +23 -0
- package/metaData/components/rolling-text/doc.md +153 -0
- package/metaData/components/rolling-text/example/index.tsx +150 -0
- package/metaData/components/safe-area/api.md +8 -0
- package/metaData/components/safe-area/doc.md +30 -0
- package/metaData/components/safe-area/example/index.tsx +16 -0
- package/metaData/components/search/api.md +35 -0
- package/metaData/components/search/doc.md +185 -0
- package/metaData/components/search/example/index.tsx +101 -0
- package/metaData/components/share-sheet/api.md +48 -0
- package/metaData/components/share-sheet/doc.md +215 -0
- package/metaData/components/share-sheet/example/index.tsx +143 -0
- package/metaData/components/sidebar/api.md +28 -0
- package/metaData/components/sidebar/doc.md +122 -0
- package/metaData/components/sidebar/example/index.tsx +58 -0
- package/metaData/components/signature/api.md +19 -0
- package/metaData/components/signature/doc.md +115 -0
- package/metaData/components/signature/example/index.tsx +56 -0
- package/metaData/components/skeleton/api.md +45 -0
- package/metaData/components/skeleton/doc.md +131 -0
- package/metaData/components/skeleton/example/index.tsx +80 -0
- package/metaData/components/slider/api.md +28 -0
- package/metaData/components/slider/doc.md +151 -0
- package/metaData/components/slider/example/index.tsx +54 -0
- package/metaData/components/space/api.md +12 -0
- package/metaData/components/space/doc.md +125 -0
- package/metaData/components/space/example/index.tsx +75 -0
- package/metaData/components/stepper/api.md +37 -0
- package/metaData/components/stepper/doc.md +152 -0
- package/metaData/components/stepper/example/index.tsx +45 -0
- package/metaData/components/steps/api.md +9 -0
- package/metaData/components/steps/doc.md +143 -0
- package/metaData/components/steps/example/index.tsx +93 -0
- package/metaData/components/sticky/api.md +16 -0
- package/metaData/components/sticky/doc.md +87 -0
- package/metaData/components/sticky/example/index.tsx +62 -0
- package/metaData/components/swipe-cell/api.md +19 -0
- package/metaData/components/swipe-cell/doc.md +105 -0
- package/metaData/components/swipe-cell/example/index.tsx +62 -0
- package/metaData/components/swiper/api.md +22 -0
- package/metaData/components/swiper/doc.md +228 -0
- package/metaData/components/swiper/example/index.tsx +118 -0
- package/metaData/components/switch/api.md +17 -0
- package/metaData/components/switch/doc.md +110 -0
- package/metaData/components/switch/example/index.tsx +57 -0
- package/metaData/components/tabbar/api.md +27 -0
- package/metaData/components/tabbar/doc.md +160 -0
- package/metaData/components/tabbar/example/index.tsx +99 -0
- package/metaData/components/tabs/api.md +36 -0
- package/metaData/components/tabs/doc.md +307 -0
- package/metaData/components/tabs/example/index.tsx +231 -0
- package/metaData/components/tag/api.md +17 -0
- package/metaData/components/tag/doc.md +162 -0
- package/metaData/components/tag/example/index.tsx +84 -0
- package/metaData/components/text-ellipsis/api.md +26 -0
- package/metaData/components/text-ellipsis/doc.md +135 -0
- package/metaData/components/text-ellipsis/example/index.tsx +44 -0
- package/metaData/components/timeline/api.md +20 -0
- package/metaData/components/timeline/doc.md +210 -0
- package/metaData/components/timeline/example/index.tsx +145 -0
- package/metaData/components/toast/api.md +39 -0
- package/metaData/components/toast/doc.md +256 -0
- package/metaData/components/toast/example/index.tsx +136 -0
- package/metaData/components/tree-select/api.md +19 -0
- package/metaData/components/tree-select/doc.md +185 -0
- package/metaData/components/tree-select/example/index.tsx +112 -0
- package/metaData/components/uploader/api.md +32 -0
- package/metaData/components/uploader/doc.md +340 -0
- package/metaData/components/uploader/example/index.tsx +222 -0
- package/metaData/components/watermark/api.md +18 -0
- package/metaData/components/watermark/doc.md +97 -0
- package/metaData/components/watermark/example/index.tsx +62 -0
- package/metaData/components-index.json +274 -0
- package/package.json +56 -0
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
# Tabs 标签页
|
|
2
|
+
|
|
3
|
+
### 介绍
|
|
4
|
+
|
|
5
|
+
选项卡组件,用于在不同的内容区域之间进行切换。
|
|
6
|
+
|
|
7
|
+
### 引入
|
|
8
|
+
|
|
9
|
+
```ts
|
|
10
|
+
import { Tabs } from "@fjyueke/bify-core"
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## 代码演示
|
|
14
|
+
|
|
15
|
+
### 基础用法
|
|
16
|
+
|
|
17
|
+
通过 `value` 绑定当前激活标签对应的索引值,默认情况下启用第一个标签。
|
|
18
|
+
|
|
19
|
+
```tsx
|
|
20
|
+
import { Tabs } from "@fjyueke/bify-core"
|
|
21
|
+
|
|
22
|
+
function BasicTabs() {
|
|
23
|
+
const [value, setValue] = useState(0)
|
|
24
|
+
return (
|
|
25
|
+
<Tabs value={value} onChange={setValue}>
|
|
26
|
+
<Tabs.TabPanel title="标签 1">内容 1</Tabs.TabPanel>
|
|
27
|
+
<Tabs.TabPanel title="标签 2">内容 2</Tabs.TabPanel>
|
|
28
|
+
<Tabs.TabPanel title="标签 3">内容 3</Tabs.TabPanel>
|
|
29
|
+
<Tabs.TabPanel title="标签 4">内容 4</Tabs.TabPanel>
|
|
30
|
+
</Tabs>
|
|
31
|
+
)
|
|
32
|
+
}
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### 徽标用法
|
|
36
|
+
|
|
37
|
+
```tsx
|
|
38
|
+
import { Tabs } from "@fjyueke/bify-core"
|
|
39
|
+
|
|
40
|
+
function BadgeTabs() {
|
|
41
|
+
return (
|
|
42
|
+
<Tabs>
|
|
43
|
+
<Tabs.TabPanel title="标签 1" dot>
|
|
44
|
+
内容 1
|
|
45
|
+
</Tabs.TabPanel>
|
|
46
|
+
<Tabs.TabPanel title="标签 2" badge={8}>
|
|
47
|
+
内容 2
|
|
48
|
+
</Tabs.TabPanel>
|
|
49
|
+
<Tabs.TabPanel title="标签 3" badge="Hot">
|
|
50
|
+
内容 3
|
|
51
|
+
</Tabs.TabPanel>
|
|
52
|
+
<Tabs.TabPanel title="标签 4" badge={<Success className="badge-icon" />}>
|
|
53
|
+
内容 4
|
|
54
|
+
</Tabs.TabPanel>
|
|
55
|
+
</Tabs>
|
|
56
|
+
)
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
```scss
|
|
61
|
+
.badge-icon {
|
|
62
|
+
display: block;
|
|
63
|
+
margin-left: 0;
|
|
64
|
+
font-size: 10px * $hd;
|
|
65
|
+
line-height: 16px * $hd;
|
|
66
|
+
margin-right: 0;
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### 通过标识匹配
|
|
71
|
+
|
|
72
|
+
在 `Tabs.TabPanel` 标签指定 `value` 属性的情况下,`Tabs.defaultValue` 的值为当前标签的 `value`。
|
|
73
|
+
|
|
74
|
+
```tsx
|
|
75
|
+
<Tabs defaultValue="a">
|
|
76
|
+
<Tabs.TabPanel value="a" title="标签 1">
|
|
77
|
+
内容 1
|
|
78
|
+
</Tabs.TabPanel>
|
|
79
|
+
<Tabs.TabPanel value="b" title="标签 2">
|
|
80
|
+
内容 2
|
|
81
|
+
</Tabs.TabPanel>
|
|
82
|
+
<Tabs.TabPanel value="c" title="标签 3">
|
|
83
|
+
内容 3
|
|
84
|
+
</Tabs.TabPanel>
|
|
85
|
+
<Tabs.TabPanel value="d" title="标签 4">
|
|
86
|
+
内容 4
|
|
87
|
+
</Tabs.TabPanel>
|
|
88
|
+
</Tabs>
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### 标签栏滚动
|
|
92
|
+
|
|
93
|
+
标签数量超过 5 个时,标签栏可以在水平方向上滚动,切换时会自动将当前标签居中。
|
|
94
|
+
|
|
95
|
+
```tsx
|
|
96
|
+
<Tabs>
|
|
97
|
+
<Tabs.TabPanel title="标签 1">内容 1</Tabs.TabPanel>
|
|
98
|
+
<Tabs.TabPanel title="标签 2">内容 2</Tabs.TabPanel>
|
|
99
|
+
<Tabs.TabPanel title="标签 3">内容 3</Tabs.TabPanel>
|
|
100
|
+
<Tabs.TabPanel title="标签 4">内容 4</Tabs.TabPanel>
|
|
101
|
+
<Tabs.TabPanel title="标签 5">内容 5</Tabs.TabPanel>
|
|
102
|
+
<Tabs.TabPanel title="标签 6">内容 6</Tabs.TabPanel>
|
|
103
|
+
<Tabs.TabPanel title="标签 7">内容 7</Tabs.TabPanel>
|
|
104
|
+
</Tabs>
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### 禁用标签
|
|
108
|
+
|
|
109
|
+
设置 `disabled` 属性即可禁用标签,如果需要监听禁用标签的点击事件,可以在 `Tabs` 上监听`onClick` 事件。
|
|
110
|
+
|
|
111
|
+
```tsx
|
|
112
|
+
<Tabs>
|
|
113
|
+
<Tabs.TabPanel title="标签 1">内容 1</Tabs.TabPanel>
|
|
114
|
+
<Tabs.TabPanel title="标签 2" disabled>
|
|
115
|
+
内容 2
|
|
116
|
+
</Tabs.TabPanel>
|
|
117
|
+
<Tabs.TabPanel title="标签 3">内容 3</Tabs.TabPanel>
|
|
118
|
+
</Tabs>
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### 样式风格
|
|
122
|
+
|
|
123
|
+
`Tabs` 支持两种样式风格:`line` 和`card`,默认为 `line` 样式,可以通过 `theme` 属性切换样式风格。
|
|
124
|
+
|
|
125
|
+
```tsx
|
|
126
|
+
<Tabs theme="card">
|
|
127
|
+
<Tabs.TabPanel title="标签 1">内容 1</Tabs.TabPanel>
|
|
128
|
+
<Tabs.TabPanel title="标签 2">内容 2</Tabs.TabPanel>
|
|
129
|
+
<Tabs.TabPanel title="标签 3">内容 3</Tabs.TabPanel>
|
|
130
|
+
</Tabs>
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### 点击事件
|
|
134
|
+
|
|
135
|
+
可以在 `Tabs` 上绑定 `onTabClick` 事件,事件传参为标签对应的标识符和标题。
|
|
136
|
+
|
|
137
|
+
```tsx
|
|
138
|
+
import { Tabs, Toast } from "@fjyueke/bify-core"
|
|
139
|
+
|
|
140
|
+
function TabsWithTabClick() {
|
|
141
|
+
return (
|
|
142
|
+
<>
|
|
143
|
+
<Toast id="toast" />
|
|
144
|
+
<Tabs onTabClick={({ title }) => Toast.open(title)}>
|
|
145
|
+
<Tabs.TabPanel title="标签 1">内容 1</Tabs.TabPanel>
|
|
146
|
+
<Tabs.TabPanel title="标签 2">内容 2</Tabs.TabPanel>
|
|
147
|
+
<Tabs.TabPanel title="标签 3">内容 3</Tabs.TabPanel>
|
|
148
|
+
</Tabs>
|
|
149
|
+
<Toast id="toast" />
|
|
150
|
+
</>
|
|
151
|
+
)
|
|
152
|
+
}
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### 粘性布局
|
|
156
|
+
|
|
157
|
+
通过 `sticky` 属性可以开启粘性布局,粘性布局下,标签页滚动到顶部时会自动吸顶。
|
|
158
|
+
|
|
159
|
+
```tsx
|
|
160
|
+
<Tabs sticky>
|
|
161
|
+
<Tabs.TabPanel title="标签 1">内容 1</Tabs.TabPanel>
|
|
162
|
+
<Tabs.TabPanel title="标签 2">内容 2</Tabs.TabPanel>
|
|
163
|
+
<Tabs.TabPanel title="标签 3">内容 3</Tabs.TabPanel>
|
|
164
|
+
<Tabs.TabPanel title="标签 4">内容 4</Tabs.TabPanel>
|
|
165
|
+
</Tabs>
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### 自定义标签
|
|
169
|
+
|
|
170
|
+
通过 `title` 插槽可以自定义标签内容。
|
|
171
|
+
|
|
172
|
+
```tsx
|
|
173
|
+
import { Tabs } from "@fjyueke/bify-core"
|
|
174
|
+
import { MoreOutlined } from "@fjyueke/bify-icons"
|
|
175
|
+
|
|
176
|
+
function TabsWithCustomTitle() {
|
|
177
|
+
return (
|
|
178
|
+
<Tabs>
|
|
179
|
+
<Tabs.TabPanel
|
|
180
|
+
title={
|
|
181
|
+
<>
|
|
182
|
+
<MoreOutlined /> 标签 1
|
|
183
|
+
</>
|
|
184
|
+
}
|
|
185
|
+
>
|
|
186
|
+
内容 1
|
|
187
|
+
</Tabs.TabPanel>
|
|
188
|
+
<Tabs.TabPanel
|
|
189
|
+
title={
|
|
190
|
+
<>
|
|
191
|
+
<MoreOutlined /> 标签 2
|
|
192
|
+
</>
|
|
193
|
+
}
|
|
194
|
+
>
|
|
195
|
+
内容 2
|
|
196
|
+
</Tabs.TabPanel>
|
|
197
|
+
<Tabs.TabPanel
|
|
198
|
+
title={
|
|
199
|
+
<>
|
|
200
|
+
<MoreOutlined /> 标签 3
|
|
201
|
+
</>
|
|
202
|
+
}
|
|
203
|
+
>
|
|
204
|
+
内容 3
|
|
205
|
+
</Tabs.TabPanel>
|
|
206
|
+
</Tabs>
|
|
207
|
+
)
|
|
208
|
+
}
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
```scss
|
|
212
|
+
.taroify-icon {
|
|
213
|
+
margin-right: 5px * 2;
|
|
214
|
+
vertical-align: -2px * 2;
|
|
215
|
+
}
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
### 切换动画
|
|
219
|
+
|
|
220
|
+
通过 `animated` 属性可以开启切换标签内容时的转场动画。
|
|
221
|
+
|
|
222
|
+
```tsx
|
|
223
|
+
<Tabs animated>
|
|
224
|
+
<Tabs.TabPanel title="标签 1">内容 1</Tabs.TabPanel>
|
|
225
|
+
<Tabs.TabPanel title="标签 2">内容 2</Tabs.TabPanel>
|
|
226
|
+
<Tabs.TabPanel title="标签 3">内容 3</Tabs.TabPanel>
|
|
227
|
+
<Tabs.TabPanel title="标签 4">内容 4</Tabs.TabPanel>
|
|
228
|
+
</Tabs>
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
### 滑动切换
|
|
232
|
+
|
|
233
|
+
通过 `swipeable` 属性可以开启滑动切换标签页。
|
|
234
|
+
|
|
235
|
+
```tsx
|
|
236
|
+
<Tabs animated swipeable>
|
|
237
|
+
<Tabs.TabPanel title="标签 1">内容 1</Tabs.TabPanel>
|
|
238
|
+
<Tabs.TabPanel title="标签 2">内容 2</Tabs.TabPanel>
|
|
239
|
+
<Tabs.TabPanel title="标签 3">内容 3</Tabs.TabPanel>
|
|
240
|
+
<Tabs.TabPanel title="标签 4">内容 4</Tabs.TabPanel>
|
|
241
|
+
</Tabs>
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
## API
|
|
245
|
+
|
|
246
|
+
### Tabs Props
|
|
247
|
+
|
|
248
|
+
| 参数 | 说明 | 类型 | 默认值 |
|
|
249
|
+
| ----------------------------------- | -------------------------------------------------------------- | --------------------------------------------------- | ------- |
|
|
250
|
+
| defaultValue | 绑定默认选中标签的标识符 | _number \| string_ | `0` |
|
|
251
|
+
| value | 绑定当前选中标签的标识符 | _number \| string_ | `0` |
|
|
252
|
+
| theme | 样式风格类型,可选值为 `card` | _string_ | `line` |
|
|
253
|
+
| duration | 动画时间,单位毫秒 | _number \| string_ | `300` |
|
|
254
|
+
| animated | 是否开启切换标签内容时的转场动画 | _boolean_ | `false` |
|
|
255
|
+
| bordered | 是否显示标签栏外边框,仅在 `type="line"` 时有效 | _boolean_ | `false` |
|
|
256
|
+
| ellipsis | 是否省略过长的标题文字 | _boolean_ | `true` |
|
|
257
|
+
| sticky | 是否使用粘性定位布局 | _boolean \| { offsetTop }_ | `false` |
|
|
258
|
+
| shrink | 是否使用收缩布局 | _booleans_ | `false` |
|
|
259
|
+
| swipeable | 是否开启手势左右滑动切换 | _boolean_ | `false` |
|
|
260
|
+
| swipeThreshold <br>`v0.1.0-alpha.8` | 滚动阈值,标签数量超过阈值且总宽度超过标签栏宽度时开始横向滚动 | _number_ | `5` |
|
|
261
|
+
| lazyRender | 是否延迟渲染未展示的选项卡 | _boolean_ | `false` |
|
|
262
|
+
| dot <br>`v0.1.1-alpha.11` | 是否展示为小红点 | _boolean_ | `false` |
|
|
263
|
+
| badge <br>`v0.1.1-alpha.11` | 图标上徽标的内容 | _boolean \| number \| string \| Badge \| ReactNode_ | - |
|
|
264
|
+
|
|
265
|
+
### Tabs.Pane Props
|
|
266
|
+
|
|
267
|
+
| 参数 | 说明 | 类型 | 默认值 |
|
|
268
|
+
| -------- | -------------------- | ------------------ | ------------ |
|
|
269
|
+
| value | 标签值,作为匹配的值 | _number \| string_ | 标签的索引值 |
|
|
270
|
+
| title | 标题 | _ReactNode_ | - |
|
|
271
|
+
| disabled | 是否禁用标签 | _boolean_ | `false` |
|
|
272
|
+
| children | 标签面板内容 | _ReactNode_ | - |
|
|
273
|
+
|
|
274
|
+
### Tabs Events
|
|
275
|
+
|
|
276
|
+
| 事件名 | 说明 | 回调参数 |
|
|
277
|
+
| ---------- | ------------------------ | ----------------------------------- |
|
|
278
|
+
| onTabClick | 点击标签时触发 | _event : Tabs.TabEvent_ |
|
|
279
|
+
| onChange | 当前激活的标签改变时触发 | _value: any, event : Tabs.TabEvent_ |
|
|
280
|
+
|
|
281
|
+
## 主题定制
|
|
282
|
+
|
|
283
|
+
### 样式变量
|
|
284
|
+
|
|
285
|
+
组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 [ConfigProvider](/components/config-provider/) 组件。
|
|
286
|
+
|
|
287
|
+
| 名称 | 默认值 | 描述 |
|
|
288
|
+
| ---------------------------- | ----------------------------------------------- | ---- |
|
|
289
|
+
| --tabs-active-color | _var(--danger-color)_ | - |
|
|
290
|
+
| --tabs-wrap-height | _44px \* $hd_ | - |
|
|
291
|
+
| --tabs-card-height | _30px \* $hd_ | - |
|
|
292
|
+
| --tabs-card-margin | _0 var(--padding-md)_ | - |
|
|
293
|
+
| --tabs-card-border-width | _var(--border-width-base, $border-width-base))_ | - |
|
|
294
|
+
| --tabs-card-border-color | _var(--tabs-active-color)_ | - |
|
|
295
|
+
| --tabs-card-border-radius | _var(--border-radius-sm)_ | - |
|
|
296
|
+
| --tabs-nav-background-color | _var(--white)_ | - |
|
|
297
|
+
| --tabs-line-width | _40px \* $hd_ | - |
|
|
298
|
+
| --tabs-line-height | _3px \* $hd_ | - |
|
|
299
|
+
| --tabs-line-border-radius | _var(--tabs-line-height)_ | - |
|
|
300
|
+
| --tabs-line-background-color | _var(--tabs-active-color)_ | - |
|
|
301
|
+
| --tab-color | _var(--gray-7)_ | - |
|
|
302
|
+
| --tab-padding | _0 var(--padding-base)_ | - |
|
|
303
|
+
| --tab-font-size | _var(--font-size-md)_ | - |
|
|
304
|
+
| --tab-line-height | _var(--line-height-md)_ | - |
|
|
305
|
+
| --tab-active-color | _var(--text-color)_ | - |
|
|
306
|
+
| --tab-active-font-weight | _var(--font-weight-bold)_ | - |
|
|
307
|
+
| --tab-disabled-color | _var(--gray-5)_ | - |
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
import { Tabs, Toast } from "@fjyueke/bify-core"
|
|
2
|
+
import { MoreOutlined, Success } from "@fjyueke/bify-icons"
|
|
3
|
+
import Block from "../../../components/block"
|
|
4
|
+
import CustomWrapper from "../../../components/custom-wrapper"
|
|
5
|
+
import Page from "../../../components/page"
|
|
6
|
+
import "./index.scss"
|
|
7
|
+
|
|
8
|
+
function BasicTabs() {
|
|
9
|
+
return (
|
|
10
|
+
<Tabs>
|
|
11
|
+
<Tabs.TabPanel title="标签 1">内容 1</Tabs.TabPanel>
|
|
12
|
+
<Tabs.TabPanel title="标签 2">内容 2</Tabs.TabPanel>
|
|
13
|
+
<Tabs.TabPanel title="标签 3">内容 3</Tabs.TabPanel>
|
|
14
|
+
<Tabs.TabPanel title="标签 4">内容 4</Tabs.TabPanel>
|
|
15
|
+
</Tabs>
|
|
16
|
+
)
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function BadgeTabs() {
|
|
20
|
+
return (
|
|
21
|
+
<Tabs>
|
|
22
|
+
<Tabs.TabPanel title="标签 1" dot>内容 1</Tabs.TabPanel>
|
|
23
|
+
<Tabs.TabPanel title="标签 2" badge={8}>内容 2</Tabs.TabPanel>
|
|
24
|
+
<Tabs.TabPanel title="标签 3" badge="Hot">内容 3</Tabs.TabPanel>
|
|
25
|
+
<Tabs.TabPanel title="标签 4" badge={<Success className="badge-icon" />}>内容 4</Tabs.TabPanel>
|
|
26
|
+
</Tabs>
|
|
27
|
+
)
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function KeyedTabs() {
|
|
31
|
+
return (
|
|
32
|
+
<Tabs defaultValue="a">
|
|
33
|
+
<Tabs.TabPanel value="a" title="标签 1">
|
|
34
|
+
内容 1
|
|
35
|
+
</Tabs.TabPanel>
|
|
36
|
+
<Tabs.TabPanel value="b" title="标签 2">
|
|
37
|
+
内容 2
|
|
38
|
+
</Tabs.TabPanel>
|
|
39
|
+
<Tabs.TabPanel value="c" title="标签 3">
|
|
40
|
+
内容 3
|
|
41
|
+
</Tabs.TabPanel>
|
|
42
|
+
<Tabs.TabPanel value="d" title="标签 4">
|
|
43
|
+
内容 4
|
|
44
|
+
</Tabs.TabPanel>
|
|
45
|
+
</Tabs>
|
|
46
|
+
)
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
function ScrollTabs() {
|
|
50
|
+
return (
|
|
51
|
+
<Tabs>
|
|
52
|
+
<Tabs.TabPanel title="标签 1内容 1内容 1内容 1内容 1内容 1">内容 1</Tabs.TabPanel>
|
|
53
|
+
<Tabs.TabPanel title="标签 2">内容 2</Tabs.TabPanel>
|
|
54
|
+
<Tabs.TabPanel title="标签 3">内容 3</Tabs.TabPanel>
|
|
55
|
+
<Tabs.TabPanel title="标签 4">内容 4</Tabs.TabPanel>
|
|
56
|
+
<Tabs.TabPanel title="标签 5">内容 5</Tabs.TabPanel>
|
|
57
|
+
<Tabs.TabPanel title="标签 6">内容 6</Tabs.TabPanel>
|
|
58
|
+
<Tabs.TabPanel title="标签 7">内容 7</Tabs.TabPanel>
|
|
59
|
+
</Tabs>
|
|
60
|
+
)
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
function DisableTabs() {
|
|
64
|
+
return (
|
|
65
|
+
<Tabs>
|
|
66
|
+
<Tabs.TabPanel title="标签 1">内容 1</Tabs.TabPanel>
|
|
67
|
+
<Tabs.TabPanel title="标签 2" disabled>
|
|
68
|
+
内容 2
|
|
69
|
+
</Tabs.TabPanel>
|
|
70
|
+
<Tabs.TabPanel title="标签 3">内容 3</Tabs.TabPanel>
|
|
71
|
+
</Tabs>
|
|
72
|
+
)
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
function CardTabs() {
|
|
76
|
+
return (
|
|
77
|
+
<Tabs theme="card">
|
|
78
|
+
<Tabs.TabPanel title="标签 1">内容 1</Tabs.TabPanel>
|
|
79
|
+
<Tabs.TabPanel title="标签 2">内容 2</Tabs.TabPanel>
|
|
80
|
+
<Tabs.TabPanel title="标签 3">内容 3</Tabs.TabPanel>
|
|
81
|
+
</Tabs>
|
|
82
|
+
)
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
function TabsWithTabClick() {
|
|
86
|
+
return (
|
|
87
|
+
<>
|
|
88
|
+
<Toast id="toast" />
|
|
89
|
+
<Tabs onTabClick={({ title }) => Toast.open(title)}>
|
|
90
|
+
<Tabs.TabPanel title="标签 1">内容 1</Tabs.TabPanel>
|
|
91
|
+
<Tabs.TabPanel title="标签 2">内容 2</Tabs.TabPanel>
|
|
92
|
+
<Tabs.TabPanel title="标签 3">内容 3</Tabs.TabPanel>
|
|
93
|
+
</Tabs>
|
|
94
|
+
<Toast id="toast" />
|
|
95
|
+
</>
|
|
96
|
+
)
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
function StickyTabs() {
|
|
100
|
+
return (
|
|
101
|
+
<Tabs sticky>
|
|
102
|
+
<Tabs.TabPanel title="标签 1">内容 1</Tabs.TabPanel>
|
|
103
|
+
<Tabs.TabPanel title="标签 2">内容 2</Tabs.TabPanel>
|
|
104
|
+
<Tabs.TabPanel title="标签 3">内容 3</Tabs.TabPanel>
|
|
105
|
+
<Tabs.TabPanel title="标签 4">内容 4</Tabs.TabPanel>
|
|
106
|
+
</Tabs>
|
|
107
|
+
)
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
function ShrinkTabs() {
|
|
111
|
+
return (
|
|
112
|
+
<>
|
|
113
|
+
<Tabs shrink>
|
|
114
|
+
<Tabs.TabPanel title="标签 1">内容 1</Tabs.TabPanel>
|
|
115
|
+
<Tabs.TabPanel title="标签 2">内容 2</Tabs.TabPanel>
|
|
116
|
+
<Tabs.TabPanel title="标签 3">内容 3</Tabs.TabPanel>
|
|
117
|
+
<Tabs.TabPanel title="标签 4">内容 4</Tabs.TabPanel>
|
|
118
|
+
</Tabs>
|
|
119
|
+
<Tabs shrink theme="card">
|
|
120
|
+
<Tabs.TabPanel title="标签 1">内容 1</Tabs.TabPanel>
|
|
121
|
+
<Tabs.TabPanel title="标签 2">内容 2</Tabs.TabPanel>
|
|
122
|
+
<Tabs.TabPanel title="标签 3">内容 3</Tabs.TabPanel>
|
|
123
|
+
<Tabs.TabPanel title="标签 4">内容 4</Tabs.TabPanel>
|
|
124
|
+
</Tabs>
|
|
125
|
+
</>
|
|
126
|
+
)
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
function TabsWithCustomTitle() {
|
|
130
|
+
return (
|
|
131
|
+
<Tabs>
|
|
132
|
+
<Tabs.TabPanel
|
|
133
|
+
title={
|
|
134
|
+
<>
|
|
135
|
+
<MoreOutlined /> 标签 1
|
|
136
|
+
</>
|
|
137
|
+
}
|
|
138
|
+
>
|
|
139
|
+
内容 1
|
|
140
|
+
</Tabs.TabPanel>
|
|
141
|
+
<Tabs.TabPanel
|
|
142
|
+
title={
|
|
143
|
+
<>
|
|
144
|
+
<MoreOutlined /> 标签 2
|
|
145
|
+
</>
|
|
146
|
+
}
|
|
147
|
+
>
|
|
148
|
+
内容 2
|
|
149
|
+
</Tabs.TabPanel>
|
|
150
|
+
<Tabs.TabPanel
|
|
151
|
+
title={
|
|
152
|
+
<>
|
|
153
|
+
<MoreOutlined /> 标签 3
|
|
154
|
+
</>
|
|
155
|
+
}
|
|
156
|
+
>
|
|
157
|
+
内容 3
|
|
158
|
+
</Tabs.TabPanel>
|
|
159
|
+
</Tabs>
|
|
160
|
+
)
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
function AnimatedTabs() {
|
|
164
|
+
return (
|
|
165
|
+
<Tabs animated>
|
|
166
|
+
<Tabs.TabPanel title="标签 1">内容 1</Tabs.TabPanel>
|
|
167
|
+
<Tabs.TabPanel title="标签 2">内容 2</Tabs.TabPanel>
|
|
168
|
+
<Tabs.TabPanel title="标签 3">内容 3</Tabs.TabPanel>
|
|
169
|
+
<Tabs.TabPanel title="标签 4">内容 4</Tabs.TabPanel>
|
|
170
|
+
</Tabs>
|
|
171
|
+
)
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
function SwipeableTabs() {
|
|
175
|
+
return (
|
|
176
|
+
<Tabs animated swipeable>
|
|
177
|
+
<Tabs.TabPanel title="标签 1">内容 1</Tabs.TabPanel>
|
|
178
|
+
<Tabs.TabPanel title="标签 2">内容 2</Tabs.TabPanel>
|
|
179
|
+
<Tabs.TabPanel title="标签 3">内容 3</Tabs.TabPanel>
|
|
180
|
+
<Tabs.TabPanel title="标签 4">内容 4</Tabs.TabPanel>
|
|
181
|
+
</Tabs>
|
|
182
|
+
)
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
export default function TabsDemo() {
|
|
186
|
+
return (
|
|
187
|
+
<Page title="Tabs 标签页" className="tabs-demo">
|
|
188
|
+
<Block title="基础用法">
|
|
189
|
+
<BasicTabs />
|
|
190
|
+
</Block>
|
|
191
|
+
<Block title="徽标用法">
|
|
192
|
+
<BadgeTabs />
|
|
193
|
+
</Block>
|
|
194
|
+
<Block title="通过标识匹配">
|
|
195
|
+
<KeyedTabs />
|
|
196
|
+
</Block>
|
|
197
|
+
<Block title="标签栏滚动">
|
|
198
|
+
<ScrollTabs />
|
|
199
|
+
</Block>
|
|
200
|
+
<Block title="禁用标签">
|
|
201
|
+
<DisableTabs />
|
|
202
|
+
</Block>
|
|
203
|
+
|
|
204
|
+
<Block title="样式风格">
|
|
205
|
+
<CardTabs />
|
|
206
|
+
</Block>
|
|
207
|
+
<Block title="点击事件">
|
|
208
|
+
<TabsWithTabClick />
|
|
209
|
+
</Block>
|
|
210
|
+
<Block title="收缩布局">
|
|
211
|
+
<ShrinkTabs />
|
|
212
|
+
</Block>
|
|
213
|
+
<Block title="粘性布局">
|
|
214
|
+
<StickyTabs />
|
|
215
|
+
</Block>
|
|
216
|
+
<Block title="自定义标签">
|
|
217
|
+
<TabsWithCustomTitle />
|
|
218
|
+
</Block>
|
|
219
|
+
<Block title="切换动画">
|
|
220
|
+
<CustomWrapper>
|
|
221
|
+
<AnimatedTabs />
|
|
222
|
+
</CustomWrapper>
|
|
223
|
+
</Block>
|
|
224
|
+
<Block title="滑动切换">
|
|
225
|
+
<CustomWrapper>
|
|
226
|
+
<SwipeableTabs />
|
|
227
|
+
</CustomWrapper>
|
|
228
|
+
</Block>
|
|
229
|
+
</Page>
|
|
230
|
+
)
|
|
231
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
## API
|
|
2
|
+
|
|
3
|
+
### Props
|
|
4
|
+
|
|
5
|
+
| 参数 | 说明 | 类型 | 默认值 |
|
|
6
|
+
| --------- | ------------------------------------------------------------ | --------- | --------- |
|
|
7
|
+
| size | 大小,可选值为 `large` `medium` | _string_ | - |
|
|
8
|
+
| color | 类型,可选值为 `primary` `info` `success` `danger` `warning` | _string_ | `default` |
|
|
9
|
+
| shape | 形状,可选值为 `rounded` `roundedRight` `roundedLeft` | _string_ | `square` |
|
|
10
|
+
| closeable | 是否为可关闭标签 | _boolean_ | `false` |
|
|
11
|
+
|
|
12
|
+
### Events
|
|
13
|
+
|
|
14
|
+
| 事件名 | 说明 | 回调参数 |
|
|
15
|
+
| ------- | -------------- | -------------------- |
|
|
16
|
+
| onClick | 点击时触发 | _event: ITouchEvent_ |
|
|
17
|
+
| onClose | 关闭标签时触发 | _event: ITouchEvent_ |
|