@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,81 @@
|
|
|
1
|
+
import { Button, Circle, Space } from "@fjyueke/bify-core"
|
|
2
|
+
import { useState } from "react"
|
|
3
|
+
import Block from "../../../components/block"
|
|
4
|
+
import Page from "../../../components/page"
|
|
5
|
+
import "./index.scss"
|
|
6
|
+
|
|
7
|
+
interface PercentProps {
|
|
8
|
+
percent?: number
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
function BasicCircle({ percent }: PercentProps) {
|
|
12
|
+
const [currentPercent, setCurrentPercent] = useState(0)
|
|
13
|
+
|
|
14
|
+
return (
|
|
15
|
+
<Circle percent={percent} onChange={setCurrentPercent}>
|
|
16
|
+
{currentPercent.toFixed(0)}%
|
|
17
|
+
</Circle>
|
|
18
|
+
)
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function CustomCircle({ percent }: PercentProps) {
|
|
22
|
+
return (
|
|
23
|
+
<Space>
|
|
24
|
+
<Circle strokeLinecap="square" percent={percent} strokeWidth={60}>
|
|
25
|
+
宽度定制 top
|
|
26
|
+
</Circle>
|
|
27
|
+
<Circle strokeLinecap="butt" startPosition="bottom" percent={percent} color="#ee0a24" layerColor="#ebedf0">
|
|
28
|
+
颜色定制 bottom
|
|
29
|
+
</Circle>
|
|
30
|
+
<Circle
|
|
31
|
+
startPosition="left"
|
|
32
|
+
percent={percent}
|
|
33
|
+
color={{
|
|
34
|
+
"0%": "#3fecff",
|
|
35
|
+
"100%": "#6149f6",
|
|
36
|
+
}}
|
|
37
|
+
>
|
|
38
|
+
渐变色 left
|
|
39
|
+
</Circle>
|
|
40
|
+
<Circle clockwise={false} startPosition="right" percent={percent} color="#07c160">
|
|
41
|
+
逆时针方向 right
|
|
42
|
+
</Circle>
|
|
43
|
+
<Circle percent={percent} size={120} color="#7232dd">
|
|
44
|
+
大小定制
|
|
45
|
+
</Circle>
|
|
46
|
+
</Space>
|
|
47
|
+
)
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export default function CircleDemo() {
|
|
51
|
+
const [percent, setPercent] = useState(70)
|
|
52
|
+
|
|
53
|
+
return (
|
|
54
|
+
<Page title="Circle 环形进度条" className="circle-demo">
|
|
55
|
+
<Block title="基础用法">
|
|
56
|
+
<BasicCircle percent={percent} />
|
|
57
|
+
</Block>
|
|
58
|
+
<Block title="样式定制">
|
|
59
|
+
<CustomCircle percent={percent} />
|
|
60
|
+
</Block>
|
|
61
|
+
<Block>
|
|
62
|
+
<Space>
|
|
63
|
+
<Button
|
|
64
|
+
color="primary"
|
|
65
|
+
size="small"
|
|
66
|
+
onClick={() => setPercent((prevPercent) => Math.min(prevPercent + 20, 100))}
|
|
67
|
+
>
|
|
68
|
+
增加
|
|
69
|
+
</Button>
|
|
70
|
+
<Button
|
|
71
|
+
color="danger"
|
|
72
|
+
size="small"
|
|
73
|
+
onClick={() => setPercent((prevPercent) => Math.max(prevPercent - 20, 0))}
|
|
74
|
+
>
|
|
75
|
+
减少
|
|
76
|
+
</Button>
|
|
77
|
+
</Space>
|
|
78
|
+
</Block>
|
|
79
|
+
</Page>
|
|
80
|
+
)
|
|
81
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
## API
|
|
2
|
+
|
|
3
|
+
### Collapse Props
|
|
4
|
+
|
|
5
|
+
| 参数 | 说明 | 类型 | 默认值 |
|
|
6
|
+
| --- | --- | --- | --- |
|
|
7
|
+
| defaultValue | 默认展开面板的 value | 手风琴模式:_number \| string_<br>非手风琴模式:_(number \| string)[]_ | - |
|
|
8
|
+
| value | 当前展开面板的 value | 手风琴模式:_number \| string_<br>非手风琴模式:_(number \| string)[]_ | - |
|
|
9
|
+
| accordion | 是否开启手风琴模式 | _boolean_ | `false` |
|
|
10
|
+
| bordered | 是否显示外边框 | _boolean_ | `true` |
|
|
11
|
+
|
|
12
|
+
### Collapse Events
|
|
13
|
+
|
|
14
|
+
| 事件名 | 说明 | 回调参数 |
|
|
15
|
+
| ------ | -------------- | ---------------------------------------- |
|
|
16
|
+
| onChange | 切换面板时触发 | _value: any_ |
|
|
17
|
+
|
|
18
|
+
### Collapse.Item Props
|
|
19
|
+
|
|
20
|
+
| 参数 | 说明 | 类型 | 默认值 |
|
|
21
|
+
| --- | --- | --- | --- |
|
|
22
|
+
| value | 唯一标识符,默认为索引值 | _number \| string_ | `index` |
|
|
23
|
+
| icon | 标题栏左侧[图标](/components/icon)或[图片](/components/image) | _ReactNode_ | - |
|
|
24
|
+
| expandIcon | 标题栏右侧[图标](/components/icon)或[图片](/components/image) | _ReactNode_ | - |
|
|
25
|
+
| size | 标题栏大小,可选值为 `large` | _string_ | - |
|
|
26
|
+
| title | 标题栏左侧内容 | _number \| string_ | - |
|
|
27
|
+
| extra | 标题栏右侧内容 | _number \| string_ | - |
|
|
28
|
+
| brief | 标题栏描述信息 | _number \| string_ | - |
|
|
29
|
+
| bordered | 是否显示内边框 | _boolean_ | `true` |
|
|
30
|
+
| clickable| 是否开启点击反馈 | _boolean_ | `true` |
|
|
31
|
+
| disabled | 是否禁用面板 | _boolean_ | `false` |
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
# Collapse 折叠面板
|
|
2
|
+
|
|
3
|
+
### 介绍
|
|
4
|
+
|
|
5
|
+
将一组内容放置在多个折叠面板中,点击面板的标题可以展开或收缩其内容。
|
|
6
|
+
|
|
7
|
+
### 引入
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
import { Collapse } from "@fjyueke/bify-core"
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## 代码演示
|
|
14
|
+
|
|
15
|
+
### 基础用法
|
|
16
|
+
|
|
17
|
+
通过 `value` 控制展开的面板列表,`value` 为数组格式。
|
|
18
|
+
|
|
19
|
+
```tsx
|
|
20
|
+
function BasicCollapse() {
|
|
21
|
+
const [value, setValue] = useState([0])
|
|
22
|
+
return (
|
|
23
|
+
<Collapse value={value} onChange={setValue}>
|
|
24
|
+
<Collapse.Item title="标题1">代码是写出来给人看的,附带能在机器上运行</Collapse.Item>
|
|
25
|
+
<Collapse.Item title="标题2">代码是写出来给人看的,附带能在机器上运行</Collapse.Item>
|
|
26
|
+
<Collapse.Item title="标题3">代码是写出来给人看的,附带能在机器上运行</Collapse.Item>
|
|
27
|
+
</Collapse>
|
|
28
|
+
)
|
|
29
|
+
}
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### 手风琴
|
|
33
|
+
|
|
34
|
+
通过 `accordion` 可以设置为手风琴模式,最多展开一个面板,此时 `value` 为字符串格式。
|
|
35
|
+
|
|
36
|
+
```tsx
|
|
37
|
+
function AccordionCollapse() {
|
|
38
|
+
const [value, setValue] = useState(0)
|
|
39
|
+
return (
|
|
40
|
+
<Collapse accordion value={value} onChange={setValue}>
|
|
41
|
+
<Collapse.Item title="标题1">代码是写出来给人看的,附带能在机器上运行</Collapse.Item>
|
|
42
|
+
<Collapse.Item title="标题2">代码是写出来给人看的,附带能在机器上运行</Collapse.Item>
|
|
43
|
+
<Collapse.Item title="标题3">代码是写出来给人看的,附带能在机器上运行</Collapse.Item>
|
|
44
|
+
</Collapse>
|
|
45
|
+
)
|
|
46
|
+
}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### 只读状态和禁用状态
|
|
50
|
+
|
|
51
|
+
通过 `clickable=false` 属性禁止显示反馈动画,通过 `disabled` 属性来禁用单个面板。
|
|
52
|
+
|
|
53
|
+
```tsx
|
|
54
|
+
function CollapseWithDisabledWithReadonly() {
|
|
55
|
+
return (
|
|
56
|
+
<Collapse defaultValue={[0]}>
|
|
57
|
+
<Collapse.Item title="正常状态">代码是写出来给人看的,附带能在机器上运行</Collapse.Item>
|
|
58
|
+
<Collapse.Item title="只读状态" clickable={false}>
|
|
59
|
+
代码是写出来给人看的,附带能在机器上运行
|
|
60
|
+
</Collapse.Item>
|
|
61
|
+
<Collapse.Item title="禁用状态" disabled>
|
|
62
|
+
代码是写出来给人看的,附带能在机器上运行
|
|
63
|
+
</Collapse.Item>
|
|
64
|
+
</Collapse>
|
|
65
|
+
)
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### 自定义标题内容
|
|
70
|
+
|
|
71
|
+
通过 `title` 属性可以自定义标题栏的内容。
|
|
72
|
+
|
|
73
|
+
```tsx
|
|
74
|
+
function CustomCollapse() {
|
|
75
|
+
return (
|
|
76
|
+
<Collapse defaultValue={[0]}>
|
|
77
|
+
<Collapse.Item
|
|
78
|
+
className="custom-collapse-item1"
|
|
79
|
+
title={
|
|
80
|
+
<>
|
|
81
|
+
标题1
|
|
82
|
+
<QuestionOutlined />
|
|
83
|
+
</>
|
|
84
|
+
}
|
|
85
|
+
>
|
|
86
|
+
代码是写出来给人看的,附带能在机器上运行
|
|
87
|
+
</Collapse.Item>
|
|
88
|
+
<Collapse.Item icon={<ShopOutlined />} title="标题2" extra="内容" clickable={false}>
|
|
89
|
+
代码是写出来给人看的,附带能在机器上运行
|
|
90
|
+
</Collapse.Item>
|
|
91
|
+
</Collapse>
|
|
92
|
+
)
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## API
|
|
97
|
+
|
|
98
|
+
### Collapse Props
|
|
99
|
+
|
|
100
|
+
| 参数 | 说明 | 类型 | 默认值 |
|
|
101
|
+
| --- | --- | --- | --- |
|
|
102
|
+
| defaultValue | 默认展开面板的 value | 手风琴模式:_number \| string_<br>非手风琴模式:_(number \| string)[]_ | - |
|
|
103
|
+
| value | 当前展开面板的 value | 手风琴模式:_number \| string_<br>非手风琴模式:_(number \| string)[]_ | - |
|
|
104
|
+
| accordion | 是否开启手风琴模式 | _boolean_ | `false` |
|
|
105
|
+
| bordered | 是否显示外边框 | _boolean_ | `true` |
|
|
106
|
+
|
|
107
|
+
### Collapse Events
|
|
108
|
+
|
|
109
|
+
| 事件名 | 说明 | 回调参数 |
|
|
110
|
+
| ------ | -------------- | ---------------------------------------- |
|
|
111
|
+
| onChange | 切换面板时触发 | _value: any_ |
|
|
112
|
+
|
|
113
|
+
### Collapse.Item Props
|
|
114
|
+
|
|
115
|
+
| 参数 | 说明 | 类型 | 默认值 |
|
|
116
|
+
| --- | --- | --- | --- |
|
|
117
|
+
| value | 唯一标识符,默认为索引值 | _number \| string_ | `index` |
|
|
118
|
+
| icon | 标题栏左侧[图标](/components/icon)或[图片](/components/image) | _ReactNode_ | - |
|
|
119
|
+
| expandIcon | 标题栏右侧[图标](/components/icon)或[图片](/components/image) | _ReactNode_ | - |
|
|
120
|
+
| size | 标题栏大小,可选值为 `large` | _string_ | - |
|
|
121
|
+
| title | 标题栏左侧内容 | _number \| string_ | - |
|
|
122
|
+
| extra | 标题栏右侧内容 | _number \| string_ | - |
|
|
123
|
+
| brief | 标题栏描述信息 | _number \| string_ | - |
|
|
124
|
+
| bordered | 是否显示内边框 | _boolean_ | `true` |
|
|
125
|
+
| clickable| 是否开启点击反馈 | _boolean_ | `true` |
|
|
126
|
+
| disabled | 是否禁用面板 | _boolean_ | `false` |
|
|
127
|
+
|
|
128
|
+
## 主题定制
|
|
129
|
+
|
|
130
|
+
### 样式变量
|
|
131
|
+
|
|
132
|
+
组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 [ConfigProvider](/components/config-provider/) 组件。
|
|
133
|
+
|
|
134
|
+
| 名称 | 默认值 | 描述 |
|
|
135
|
+
|------------------------------------------|---------------------------------------|-----|
|
|
136
|
+
| --collapse-item-title-disabled-color | _var(--gray-5)_ | - |
|
|
137
|
+
| --collapse-item-transition-duration | _var(--animation-duration-base)_ | - |
|
|
138
|
+
| --collapse-item-content-padding | _var(--padding-sm) var(--padding-md)_ | - |
|
|
139
|
+
| --collapse-item-content-font-size | _var(--font-size-md)_ | - |
|
|
140
|
+
| --collapse-item-content-line-height | _1.5_ | - |
|
|
141
|
+
| --collapse-item-content-color | _var(--gray-6)_ | - |
|
|
142
|
+
| --collapse-item-content-background-color | _var(--white)_ | - |
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { Collapse } from "@fjyueke/bify-core"
|
|
2
|
+
import { QuestionOutlined, ShopOutlined } from "@fjyueke/bify-icons"
|
|
3
|
+
import { useState } from "react"
|
|
4
|
+
import Block from "../../../components/block"
|
|
5
|
+
import Page from "../../../components/page"
|
|
6
|
+
import "./index.scss"
|
|
7
|
+
|
|
8
|
+
function BasicCollapse() {
|
|
9
|
+
const [value, setValue] = useState([0])
|
|
10
|
+
return (
|
|
11
|
+
<Collapse value={value} onChange={setValue}>
|
|
12
|
+
<Collapse.Item title="标题1">代码是写出来给人看的,附带能在机器上运行</Collapse.Item>
|
|
13
|
+
<Collapse.Item title="标题2">代码是写出来给人看的,附带能在机器上运行</Collapse.Item>
|
|
14
|
+
<Collapse.Item title="标题3">代码是写出来给人看的,附带能在机器上运行</Collapse.Item>
|
|
15
|
+
</Collapse>
|
|
16
|
+
)
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function AccordionCollapse() {
|
|
20
|
+
return (
|
|
21
|
+
<Collapse accordion defaultValue={0}>
|
|
22
|
+
<Collapse.Item title="标题1">代码是写出来给人看的,附带能在机器上运行</Collapse.Item>
|
|
23
|
+
<Collapse.Item title="标题2">代码是写出来给人看的,附带能在机器上运行</Collapse.Item>
|
|
24
|
+
<Collapse.Item title="标题3">代码是写出来给人看的,附带能在机器上运行</Collapse.Item>
|
|
25
|
+
</Collapse>
|
|
26
|
+
)
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
function CollapseWithDisabledWithReadonly() {
|
|
30
|
+
return (
|
|
31
|
+
<Collapse defaultValue={[0]}>
|
|
32
|
+
<Collapse.Item title="正常状态">代码是写出来给人看的,附带能在机器上运行</Collapse.Item>
|
|
33
|
+
<Collapse.Item title="只读状态" clickable={false}>
|
|
34
|
+
代码是写出来给人看的,附带能在机器上运行
|
|
35
|
+
</Collapse.Item>
|
|
36
|
+
<Collapse.Item title="禁用状态" disabled>
|
|
37
|
+
代码是写出来给人看的,附带能在机器上运行
|
|
38
|
+
</Collapse.Item>
|
|
39
|
+
</Collapse>
|
|
40
|
+
)
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function CustomCollapse() {
|
|
44
|
+
return (
|
|
45
|
+
<Collapse defaultValue={[0]}>
|
|
46
|
+
<Collapse.Item
|
|
47
|
+
className="custom-collapse-item1"
|
|
48
|
+
title={
|
|
49
|
+
<>
|
|
50
|
+
标题1
|
|
51
|
+
<QuestionOutlined />
|
|
52
|
+
</>
|
|
53
|
+
}
|
|
54
|
+
>
|
|
55
|
+
代码是写出来给人看的,附带能在机器上运行
|
|
56
|
+
</Collapse.Item>
|
|
57
|
+
<Collapse.Item icon={<ShopOutlined />} title="标题2" extra="内容" clickable={false}>
|
|
58
|
+
代码是写出来给人看的,附带能在机器上运行
|
|
59
|
+
</Collapse.Item>
|
|
60
|
+
</Collapse>
|
|
61
|
+
)
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export default function CollapseDemo() {
|
|
65
|
+
return (
|
|
66
|
+
<Page title="Collapse 折叠面板" className="collapse-demo">
|
|
67
|
+
<Block title="基础用法">
|
|
68
|
+
<BasicCollapse />
|
|
69
|
+
</Block>
|
|
70
|
+
<Block title="手风琴">
|
|
71
|
+
<AccordionCollapse />
|
|
72
|
+
</Block>
|
|
73
|
+
<Block title="只读状态和禁用状态">
|
|
74
|
+
<CollapseWithDisabledWithReadonly />
|
|
75
|
+
</Block>
|
|
76
|
+
<Block title="自定义标题内容">
|
|
77
|
+
<CustomCollapse />
|
|
78
|
+
</Block>
|
|
79
|
+
</Page>
|
|
80
|
+
)
|
|
81
|
+
}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
# ConfigProvider 全局配置
|
|
2
|
+
|
|
3
|
+
### 介绍
|
|
4
|
+
|
|
5
|
+
用于配置 Taroify 组件的主题样式。
|
|
6
|
+
|
|
7
|
+
### 引入
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
import { ConfigProvider } from "@fjyueke/bify-core";
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## 定制主题
|
|
14
|
+
|
|
15
|
+
### 介绍
|
|
16
|
+
|
|
17
|
+
Taroify 组件通过丰富的 [CSS 变量](https://developer.mozilla.org/zh-CN/docs/Web/CSS/Using_CSS_custom_properties) 来组织样式,通过覆盖这些 CSS
|
|
18
|
+
变量,可以实现**定制主题、动态切换主题**等效果。
|
|
19
|
+
|
|
20
|
+
#### 示例
|
|
21
|
+
|
|
22
|
+
以 Button 组件为例,查看组件的样式,可以看到 `.taroify-button--primary` 类名上存在以下变量:
|
|
23
|
+
|
|
24
|
+
```scss
|
|
25
|
+
.taroify-button--primary {
|
|
26
|
+
color: var(--button-primary-color);
|
|
27
|
+
background-color: var(--button-primary-background-color);
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### 自定义 CSS 变量
|
|
32
|
+
|
|
33
|
+
#### 通过 CSS 覆盖
|
|
34
|
+
|
|
35
|
+
你可以直接在代码中覆盖这些 CSS 变量,Button 组件的样式会随之发生改变:
|
|
36
|
+
|
|
37
|
+
```css
|
|
38
|
+
/* 添加这段样式后,Primary Button 会变成红色 */
|
|
39
|
+
:root {
|
|
40
|
+
--button-primary-background-color: red;
|
|
41
|
+
}
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
> 注意:小程序不存在 `:root` 元素,只能在 `page` 根元素里覆盖 CSS 变量。
|
|
45
|
+
|
|
46
|
+
#### 通过 ConfigProvider 覆盖
|
|
47
|
+
|
|
48
|
+
`ConfigProvider` 组件提供了覆盖 CSS 变量的能力,你需要在根节点包裹一个 `ConfigProvider` 组件,并通过 `theme` 属性来配置一些主题变量。
|
|
49
|
+
|
|
50
|
+
```tsx
|
|
51
|
+
function CustomThemeVars() {
|
|
52
|
+
const [rate, setRate] = useState(4)
|
|
53
|
+
const [slider, setSlider] = useState(50)
|
|
54
|
+
|
|
55
|
+
return (
|
|
56
|
+
<ConfigProvider
|
|
57
|
+
theme={{
|
|
58
|
+
rateIconFullColor: "#07c160",
|
|
59
|
+
sliderTrackHeight: "4px",
|
|
60
|
+
sliderButtonWidth: "20px",
|
|
61
|
+
sliderButtonHeight: "20px",
|
|
62
|
+
sliderActiveBackgroundColor: "#07c160",
|
|
63
|
+
buttonPrimaryBorderColor: "#07c160",
|
|
64
|
+
buttonPrimaryBackgroundColor: "#07c160",
|
|
65
|
+
}}
|
|
66
|
+
>
|
|
67
|
+
<Field label="评分">
|
|
68
|
+
<Rate allowHalf value={rate} onChange={setRate} />
|
|
69
|
+
</Field>
|
|
70
|
+
<Field label="滑块">
|
|
71
|
+
<Slider value={slider} onChange={setSlider} />
|
|
72
|
+
</Field>
|
|
73
|
+
<View style={{ margin: "16px" }}>
|
|
74
|
+
<Button shape="round" block color="primary">
|
|
75
|
+
提交
|
|
76
|
+
</Button>
|
|
77
|
+
</View>
|
|
78
|
+
</ConfigProvider>
|
|
79
|
+
)
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
> 注意:ConfigProvider 仅影响它的子组件的样式,不影响全局 root 节点。在小程序中 ConfigProvider 不能放置在 `app.ts` 文件里,因为 `app.ts` 文件不能渲染任何内容。
|
|
85
|
+
|
|
86
|
+
#### 在 TypeScript 中使用
|
|
87
|
+
|
|
88
|
+
在 TypeScript 中定义 themeVars 时,建议使用 Taroify 提供的 ConfigProviderThemeVars 类型,可以提供完善的类型提示:
|
|
89
|
+
|
|
90
|
+
```ts
|
|
91
|
+
import type { ConfigProviderThemeVars } from '@fjyueke/bify-core';
|
|
92
|
+
|
|
93
|
+
const themeVars: ConfigProviderThemeVars = {
|
|
94
|
+
rateIconFullColor: "#07c160",
|
|
95
|
+
sliderTrackHeight: "4px",
|
|
96
|
+
sliderActiveBackgroundColor: "#07c160",
|
|
97
|
+
buttonPrimaryBorderColor: "#07c160",
|
|
98
|
+
buttonPrimaryBackgroundColor: "#07c160",
|
|
99
|
+
};
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### 基础变量
|
|
103
|
+
|
|
104
|
+
Taroify 中的 CSS 变量分为 **基础变量** 和 **组件变量**。组件变量会继承基础变量,因此在修改基础变量后,会影响所有相关的组件。
|
|
105
|
+
|
|
106
|
+
#### 变量列表
|
|
107
|
+
|
|
108
|
+
下面是所有的基础变量:
|
|
109
|
+
|
|
110
|
+
```scss
|
|
111
|
+
// Color Palette
|
|
112
|
+
--black: #000;
|
|
113
|
+
--white: #fff;
|
|
114
|
+
--gray-1: #f7f8fa;
|
|
115
|
+
--gray-2: #f2f3f5;
|
|
116
|
+
--gray-3: #ebedf0;
|
|
117
|
+
--gray-4: #dcdee0;
|
|
118
|
+
--gray-5: #c8c9cc;
|
|
119
|
+
--gray-6: #969799;
|
|
120
|
+
--gray-7: #646566;
|
|
121
|
+
--gray-8: #323233;
|
|
122
|
+
--red: #ee0a24;
|
|
123
|
+
--blue: #1989fa;
|
|
124
|
+
--orange: #ff976a;
|
|
125
|
+
--orange-dark: #ed6a0c;
|
|
126
|
+
--orange-light: #fffbe8;
|
|
127
|
+
--green: #07c160;
|
|
128
|
+
|
|
129
|
+
// Gradient Colors
|
|
130
|
+
--gradient-red: linear-gradient(to right, #ff6034, #ee0a24);
|
|
131
|
+
--gradient-orange: linear-gradient(to right, #ffd01e, #ff8917);
|
|
132
|
+
|
|
133
|
+
// Component Colors
|
|
134
|
+
--primary-color: var(--blue);
|
|
135
|
+
--success-color: var(--green);
|
|
136
|
+
--danger-color: var(--red);
|
|
137
|
+
--warning-color: var(--orange);
|
|
138
|
+
--text-color: var(--gray-8);
|
|
139
|
+
--active-color: var(--gray-2);
|
|
140
|
+
--active-opacity: 0.7;
|
|
141
|
+
--disabled-opacity: 0.5;
|
|
142
|
+
--background-color: var(--gray-1);
|
|
143
|
+
--background-color-light: #fafafa;
|
|
144
|
+
--text-link-color: #576b95;
|
|
145
|
+
|
|
146
|
+
// Padding
|
|
147
|
+
--padding-base: 4px;
|
|
148
|
+
--padding-xs: 8px;
|
|
149
|
+
--padding-sm: 12px;
|
|
150
|
+
--padding-md: 16px;
|
|
151
|
+
--padding-lg: 24px;
|
|
152
|
+
--padding-xl: 32px;
|
|
153
|
+
|
|
154
|
+
// Font
|
|
155
|
+
--font-size-xs: 10px;
|
|
156
|
+
--font-size-sm: 12px;
|
|
157
|
+
--font-size-md: 14px;
|
|
158
|
+
--font-size-lg: 16px;
|
|
159
|
+
--font-weight-bold: 500;
|
|
160
|
+
--line-height-xs: 14px;
|
|
161
|
+
--line-height-sm: 18px;
|
|
162
|
+
--line-height-md: 20px;
|
|
163
|
+
--line-height-lg: 22px;
|
|
164
|
+
--base-font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue',
|
|
165
|
+
Helvetica, Segoe UI, Arial, Roboto, 'PingFang SC', 'miui', 'Hiragino Sans GB',
|
|
166
|
+
'Microsoft Yahei', sans-serif;
|
|
167
|
+
--price-integer-font-family: Avenir-Heavy, PingFang SC, Helvetica Neue,
|
|
168
|
+
Arial, sans-serif;
|
|
169
|
+
|
|
170
|
+
// Animation
|
|
171
|
+
--animation-duration-base: 0.3s;
|
|
172
|
+
--animation-duration-fast: 0.2s;
|
|
173
|
+
--animation-timing-function-enter: ease-out;
|
|
174
|
+
--animation-timing-function-leave: ease-in;
|
|
175
|
+
|
|
176
|
+
// Border
|
|
177
|
+
--border-color: var(--gray-3);
|
|
178
|
+
--border-width-base: 1px;
|
|
179
|
+
--border-radius-sm: 2px;
|
|
180
|
+
--border-radius-md: 4px;
|
|
181
|
+
--border-radius-lg: 8px;
|
|
182
|
+
--border-radius-max: 999px;
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
你可以在各个组件文档底部的表格中查看组件变量。
|
|
186
|
+
|
|
187
|
+
## API
|
|
188
|
+
|
|
189
|
+
### Props
|
|
190
|
+
|
|
191
|
+
| 参数 | 说明 | 类型 | 默认值 |
|
|
192
|
+
| --- | --- | --- | --- |
|
|
193
|
+
| theme| 自定义主题变量 | _object_ | - |
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Button, ConfigProvider, Field, Rate, Slider, ConfigProviderThemeVars } from "@fjyueke/bify-core"
|
|
2
|
+
import { View } from "@tarojs/components"
|
|
3
|
+
import { useState } from "react"
|
|
4
|
+
import Block from "../../../components/block"
|
|
5
|
+
import Page from "../../../components/page"
|
|
6
|
+
import "./index.scss"
|
|
7
|
+
|
|
8
|
+
const themeVars: ConfigProviderThemeVars ={
|
|
9
|
+
rateIconFullColor: "#07c160",
|
|
10
|
+
sliderTrackHeight: "4px",
|
|
11
|
+
sliderActiveBackgroundColor: "#07c160",
|
|
12
|
+
buttonPrimaryBorderColor: "#07c160",
|
|
13
|
+
buttonPrimaryBackgroundColor: "#07c160",
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export default function ConfigProviderDemo() {
|
|
17
|
+
const [rate, setRate] = useState(4)
|
|
18
|
+
const [slider, setSlider] = useState(50)
|
|
19
|
+
|
|
20
|
+
return (
|
|
21
|
+
<Page className="config-provider-demo" title="ConfigProvider 全局配置">
|
|
22
|
+
<Block title="默认主题">
|
|
23
|
+
<Field label="评分">
|
|
24
|
+
<Rate allowHalf value={rate} onChange={setRate} />
|
|
25
|
+
</Field>
|
|
26
|
+
<Field label="滑块">
|
|
27
|
+
<Slider value={slider} onChange={setSlider} />
|
|
28
|
+
</Field>
|
|
29
|
+
<View style={{ margin: "16px" }}>
|
|
30
|
+
<Button shape="round" block color="primary">
|
|
31
|
+
提交
|
|
32
|
+
</Button>
|
|
33
|
+
</View>
|
|
34
|
+
</Block>
|
|
35
|
+
<Block title="定制主题">
|
|
36
|
+
<ConfigProvider
|
|
37
|
+
theme={themeVars}
|
|
38
|
+
>
|
|
39
|
+
<Field label="评分">
|
|
40
|
+
<Rate allowHalf value={rate} onChange={setRate} />
|
|
41
|
+
</Field>
|
|
42
|
+
<Field label="滑块">
|
|
43
|
+
<Slider value={slider} onChange={setSlider} />
|
|
44
|
+
</Field>
|
|
45
|
+
<View style={{ margin: "16px" }}>
|
|
46
|
+
<Button shape="round" block color="primary">
|
|
47
|
+
提交
|
|
48
|
+
</Button>
|
|
49
|
+
</View>
|
|
50
|
+
</ConfigProvider>
|
|
51
|
+
</Block>
|
|
52
|
+
</Page>
|
|
53
|
+
)
|
|
54
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
## API
|
|
2
|
+
|
|
3
|
+
### Props
|
|
4
|
+
|
|
5
|
+
| 参数 | 说明 | 类型 | 默认值 |
|
|
6
|
+
|------------|--------------|--------------------------------------|------------|
|
|
7
|
+
| value | 倒计时时长,单位毫秒 | _number_ | `0` |
|
|
8
|
+
| format | 时间格式 | _string_ | `HH:mm:ss` |
|
|
9
|
+
| autostart | 是否自动开始倒计时 | _boolean_ | `true` |
|
|
10
|
+
| interval | 倒计时渲染间隔,单位毫秒 | _number_ | `1000` |
|
|
11
|
+
| onChange | 倒计时变化时触发 | _(currentTime: CurrentTime) => void_ | - |
|
|
12
|
+
| onComplete | 倒计时结束时触发 | _() => void_ | - |
|
|
13
|
+
|
|
14
|
+
### format 格式
|
|
15
|
+
|
|
16
|
+
| 格式 | 说明 |
|
|
17
|
+
|-----|---------|
|
|
18
|
+
| DD | 天数 |
|
|
19
|
+
| HH | 小时 |
|
|
20
|
+
| mm | 分钟 |
|
|
21
|
+
| ss | 秒数 |
|
|
22
|
+
| S | 毫秒(1 位) |
|
|
23
|
+
| SS | 毫秒(2 位) |
|
|
24
|
+
| SSS | 毫秒(3 位) |
|
|
25
|
+
|
|
26
|
+
### CurrentTime 格式
|
|
27
|
+
|
|
28
|
+
| 名称 | 说明 | 类型 |
|
|
29
|
+
|--------------|-------------|----------|
|
|
30
|
+
| total | 剩余总时间(单位毫秒) | _number_ |
|
|
31
|
+
| days | 剩余天数 | _number_ |
|
|
32
|
+
| hours | 剩余小时 | _number_ |
|
|
33
|
+
| minutes | 剩余分钟 | _number_ |
|
|
34
|
+
| seconds | 剩余秒数 | _number_ |
|
|
35
|
+
| milliseconds | 剩余毫秒 | _number_ |
|
|
36
|
+
|
|
37
|
+
### 方法
|
|
38
|
+
|
|
39
|
+
通过 ref 可以获取到 Countdown 实例并调用实例方法。
|
|
40
|
+
|
|
41
|
+
| 方法名 | 说明 | 参数 | 返回值 |
|
|
42
|
+
|---------|------------------------------------------|-----|-----|
|
|
43
|
+
| start | 开始倒计时 | - | - |
|
|
44
|
+
| pause | 暂停倒计时 | - | - |
|
|
45
|
+
| reset | 重设倒计时,若 `autostart` 为 `true`,重设后会自动开始倒计时 | - | - |
|
|
46
|
+
| restart | 重启倒计时 | - | - |
|