@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,150 @@
|
|
|
1
|
+
import { useRef } from "react";
|
|
2
|
+
import { View } from "@tarojs/components"
|
|
3
|
+
import { RollingText, Button } from "@fjyueke/bify-core"
|
|
4
|
+
import type { RollingTextRef } from "@fjyueke/bify-core/rolling-text"
|
|
5
|
+
import Page from "../../../components/page"
|
|
6
|
+
import Block from "../../../components/block"
|
|
7
|
+
import "./index.scss"
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
function BasicRollingText() {
|
|
11
|
+
const ref = useRef<RollingTextRef>()
|
|
12
|
+
|
|
13
|
+
const onClick = () => {
|
|
14
|
+
ref.current?.start();
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
return (
|
|
18
|
+
<View>
|
|
19
|
+
<RollingText ref={ref} targetNum={123} autoStart={false} />
|
|
20
|
+
<View className="rolling-text-btn">
|
|
21
|
+
<Button color="primary" onClick={onClick}>向下翻滚</Button>
|
|
22
|
+
</View>
|
|
23
|
+
</View>
|
|
24
|
+
)
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
function SetDirectionRollingText() {
|
|
28
|
+
const ref = useRef<RollingTextRef>()
|
|
29
|
+
|
|
30
|
+
const onClick = () => {
|
|
31
|
+
ref.current?.start();
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return (
|
|
35
|
+
<View>
|
|
36
|
+
<RollingText ref={ref} targetNum={432} autoStart={false} direction="up" />
|
|
37
|
+
<View className="rolling-text-btn">
|
|
38
|
+
<Button color="primary" onClick={onClick}>向上翻滚</Button>
|
|
39
|
+
</View>
|
|
40
|
+
</View>
|
|
41
|
+
)
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
function StopOrderRollingText() {
|
|
45
|
+
const ref = useRef<RollingTextRef>()
|
|
46
|
+
|
|
47
|
+
const onClick = () => {
|
|
48
|
+
ref.current?.start();
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return (
|
|
52
|
+
<View>
|
|
53
|
+
<RollingText ref={ref} targetNum={54321} autoStart={false} stopOrder="rtl" />
|
|
54
|
+
<View className="rolling-text-btn">
|
|
55
|
+
<Button color="primary" onClick={onClick}>从个位停止</Button>
|
|
56
|
+
</View>
|
|
57
|
+
</View>
|
|
58
|
+
)
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
const textList = [
|
|
62
|
+
"aaaaa",
|
|
63
|
+
"bbbbb",
|
|
64
|
+
"ccccc",
|
|
65
|
+
"ddddd",
|
|
66
|
+
"eeeee",
|
|
67
|
+
"fffff",
|
|
68
|
+
"ggggg",
|
|
69
|
+
]
|
|
70
|
+
|
|
71
|
+
function TextListRollingText() {
|
|
72
|
+
const ref = useRef<RollingTextRef>()
|
|
73
|
+
|
|
74
|
+
const onClick = () => {
|
|
75
|
+
ref.current?.start();
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
return (
|
|
79
|
+
<View>
|
|
80
|
+
<RollingText ref={ref} textList={textList} duration={1} autoStart={false} />
|
|
81
|
+
<View className="rolling-text-btn">
|
|
82
|
+
<Button color="primary" onClick={onClick}>开始</Button>
|
|
83
|
+
</View>
|
|
84
|
+
</View>
|
|
85
|
+
)
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
function CustomerRollingText() {
|
|
89
|
+
const ref = useRef<RollingTextRef>()
|
|
90
|
+
|
|
91
|
+
const onClick = () => {
|
|
92
|
+
ref.current?.start();
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
return (
|
|
96
|
+
<View>
|
|
97
|
+
<RollingText ref={ref} className="my-rolling-text" height={54} startNum={12345} targetNum={54321} autoStart={false} />
|
|
98
|
+
<View className="rolling-text-btn">
|
|
99
|
+
<Button color="primary" onClick={onClick}>开始</Button>
|
|
100
|
+
</View>
|
|
101
|
+
</View>
|
|
102
|
+
)
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
function HandRollingText() {
|
|
106
|
+
const ref = useRef<RollingTextRef>()
|
|
107
|
+
|
|
108
|
+
const start = () => {
|
|
109
|
+
ref.current?.start();
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
const reset = () => {
|
|
113
|
+
ref.current?.reset();
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
return (
|
|
117
|
+
<View>
|
|
118
|
+
<RollingText ref={ref} className="my-rolling-text" height={54} startNum={0} targetNum={54321} autoStart={false} />
|
|
119
|
+
<View className="rolling-text-btn">
|
|
120
|
+
<Button color="primary" onClick={start}>开始</Button>
|
|
121
|
+
<Button color="primary" className="rolling-text-right" onClick={reset}>重置</Button>
|
|
122
|
+
</View>
|
|
123
|
+
</View>
|
|
124
|
+
)
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
export default function RollingTextDemo() {
|
|
128
|
+
return (
|
|
129
|
+
<Page title="RollingText 翻滚文本动效" className="rolling-text">
|
|
130
|
+
<Block title="基础用法">
|
|
131
|
+
<BasicRollingText />
|
|
132
|
+
</Block>
|
|
133
|
+
<Block title="设置翻滚方向">
|
|
134
|
+
<SetDirectionRollingText />
|
|
135
|
+
</Block>
|
|
136
|
+
<Block title="设置各数位停止顺序">
|
|
137
|
+
<StopOrderRollingText />
|
|
138
|
+
</Block>
|
|
139
|
+
<Block title="翻转非数字内容">
|
|
140
|
+
<TextListRollingText />
|
|
141
|
+
</Block>
|
|
142
|
+
<Block title="自定义样式">
|
|
143
|
+
<CustomerRollingText />
|
|
144
|
+
</Block>
|
|
145
|
+
<Block title="手动控制">
|
|
146
|
+
<HandRollingText />
|
|
147
|
+
</Block>
|
|
148
|
+
</Page>
|
|
149
|
+
)
|
|
150
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
## API
|
|
2
|
+
|
|
3
|
+
### SafeArea Props
|
|
4
|
+
|
|
5
|
+
| 参数 | 说明 | 类型 | 默认值 |
|
|
6
|
+
| ------------- | ------------------------------------- | --------- | ------- |
|
|
7
|
+
| position | 安全区的位置,可选值为 `top` `bottom` | _string_ | - |
|
|
8
|
+
| nativeSafeTop <br>`v0.5.1-alpha.0` | 是否启用顶部安全区域原生属性 | _boolean_ | `false` |
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# SafeArea 安全区
|
|
2
|
+
|
|
3
|
+
### 介绍
|
|
4
|
+
|
|
5
|
+
用于将其内容放置在视口的安全区域中。
|
|
6
|
+
|
|
7
|
+
### 引入
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
import { SafeArea } from "@fjyueke/bify-core"
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## 代码演示
|
|
14
|
+
|
|
15
|
+
### 基础用法
|
|
16
|
+
|
|
17
|
+
```tsx
|
|
18
|
+
<SafeArea position="top" />
|
|
19
|
+
<View>{lorem.generateParagraphs(10)}</View>
|
|
20
|
+
<SafeArea position="bottom" />
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## API
|
|
24
|
+
|
|
25
|
+
### SafeArea Props
|
|
26
|
+
|
|
27
|
+
| 参数 | 说明 | 类型 | 默认值 |
|
|
28
|
+
| ------------- | ------------------------------------- | --------- | ------- |
|
|
29
|
+
| position | 安全区的位置,可选值为 `top` `bottom` | _string_ | - |
|
|
30
|
+
| nativeSafeTop <br>`v0.5.1-alpha.0` | 是否启用顶部安全区域原生属性 | _boolean_ | `false` |
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { SafeArea } from "@fjyueke/bify-core"
|
|
2
|
+
import { View } from "@tarojs/components"
|
|
3
|
+
import Page from "../../../components/page"
|
|
4
|
+
import lorem from "../../../utils/lorem"
|
|
5
|
+
|
|
6
|
+
import "./index.scss"
|
|
7
|
+
|
|
8
|
+
export default function SafeAreaDemo() {
|
|
9
|
+
return (
|
|
10
|
+
<Page title="SafeArea 安全区域" className="safe-area-demo">
|
|
11
|
+
<SafeArea position="top" />
|
|
12
|
+
<View>{lorem.generateParagraphs(10)}</View>
|
|
13
|
+
<SafeArea position="bottom" />
|
|
14
|
+
</Page>
|
|
15
|
+
)
|
|
16
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
## API
|
|
2
|
+
|
|
3
|
+
### Props
|
|
4
|
+
|
|
5
|
+
| 参数 | 说明 | 类型 | 默认值 |
|
|
6
|
+
| --------------------------------- | --------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------ |
|
|
7
|
+
| label | 搜索框左侧文本 | _string_ | - |
|
|
8
|
+
| shape | 搜索框形状,可选值为 `square` `rounded` | _string_ | - |
|
|
9
|
+
| maxlength | 输入的最大字符数 | _number \| string_ | - |
|
|
10
|
+
| placeholder | 占位提示文字 | _string_ | - |
|
|
11
|
+
| autoFocus | 自动聚焦,iOS 系统不支持该属性 | _boolean_ | `false` |
|
|
12
|
+
| focus | 获取焦点 | _boolean_ | `false` |
|
|
13
|
+
| disabled | 是否禁用输入框 | _boolean_ | `false` |
|
|
14
|
+
| readonly | 是否将输入框设为只读状态,只读状态下无法输入内容 | _boolean_ | `false` |
|
|
15
|
+
| icon | 输入框左侧图标 | _ReactNode_ | `<Search />` |
|
|
16
|
+
| rightIcon | 输入框右侧图标 | _ReactNode_ | - |
|
|
17
|
+
| action | 是否在搜索框右侧显示取消按钮 | _boolean \| ReactNode_ | `false` |
|
|
18
|
+
| inputAlign | 输入框内容对齐方式,可选值为 `center` `right` | _string_ | `left` |
|
|
19
|
+
| inputColor | 输入框内容颜色,可选值为 `primary` `info` `success` `warning` `danger` | _string_ | - |
|
|
20
|
+
| clearable | 是否启用清除图标,点击清除图标后会清空输入框 | _boolean_ | `true` |
|
|
21
|
+
| clearIcon | 清除图标 | _string_ | `<Clear />` |
|
|
22
|
+
| clearTrigger | 显示清除图标的时机,`always` 表示输入框不为空时展示,<br>`focus` 表示输入框聚焦且不为空时展示 | _string_ | `focus` |
|
|
23
|
+
| feedback | 提示文案,为空时不展示 | _string \| [FormFeedbackProps](/components/form/#formfeedback-props) \| ReactElement_ | - |
|
|
24
|
+
| enableNative <br>`v0.4.0-alpha.0` | 使用原生键盘(仅支付宝小程序) | _boolean_ | `true` |
|
|
25
|
+
|
|
26
|
+
### Events
|
|
27
|
+
|
|
28
|
+
| 事件名 | 说明 | 回调参数 |
|
|
29
|
+
| -------- | -------------------- | -------------------------------------------------------- |
|
|
30
|
+
| onSearch | 确定搜索时触发 | _event: BaseEventOrig<InputProps.inputValueEventDetail>_ |
|
|
31
|
+
| onChange | 输入框内容变化时触发 | _event: BaseEventOrig<InputProps.inputEventDetail>_ |
|
|
32
|
+
| onFocus | 输入框获得焦点时触发 | _event: BaseEventOrig<InputProps.inputForceEventDetail>_ |
|
|
33
|
+
| onBlur | 输入框失去焦点时触发 | _event: BaseEventOrig<InputProps.inputForceEventDetail>_ |
|
|
34
|
+
| onClear | 点击清除按钮后触发 | _event: event: ITouchEvent_ |
|
|
35
|
+
| onCancel | 点击取消按钮时触发 | _event: event: ITouchEvent_ |
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
# Search 搜索
|
|
2
|
+
|
|
3
|
+
### 介绍
|
|
4
|
+
|
|
5
|
+
用于搜索场景的输入框组件。
|
|
6
|
+
|
|
7
|
+
### 引入
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
import { Search } from "@fjyueke/bify-core"
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## 代码演示
|
|
14
|
+
|
|
15
|
+
### 基础用法
|
|
16
|
+
|
|
17
|
+
`value` 用于控制搜索框中的文字,`onChange` 可以获得改变的值。
|
|
18
|
+
|
|
19
|
+
```tsx
|
|
20
|
+
function BasicSearch() {
|
|
21
|
+
const [value, setValue] = useState("")
|
|
22
|
+
return (
|
|
23
|
+
<Search
|
|
24
|
+
value={value}
|
|
25
|
+
placeholder="请输入搜索关键词"
|
|
26
|
+
onChange={(e) => setValue(e.detail.value)}
|
|
27
|
+
/>
|
|
28
|
+
)
|
|
29
|
+
}
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### 事件监听
|
|
33
|
+
|
|
34
|
+
Search 组件提供了 `onSearch` 和 `onCancel` 事件,`onSearch` 事件在点击键盘上的搜索/回车按钮后触发,`onCancel` 事件在点击搜索框右侧取消按钮时触发。
|
|
35
|
+
|
|
36
|
+
```tsx
|
|
37
|
+
function SearchWithEvents() {
|
|
38
|
+
const [value, setValue] = useState("")
|
|
39
|
+
const [open, setOpen] = useState(false)
|
|
40
|
+
|
|
41
|
+
return (
|
|
42
|
+
<>
|
|
43
|
+
<Toast open={open} onClose={() => setOpen(false)}>
|
|
44
|
+
取消
|
|
45
|
+
</Toast>
|
|
46
|
+
<Search
|
|
47
|
+
value={value}
|
|
48
|
+
placeholder="请输入搜索关键词"
|
|
49
|
+
action
|
|
50
|
+
onChange={(e) => setValue(e.detail.value)}
|
|
51
|
+
onCancel={() => setOpen(true)}
|
|
52
|
+
/>
|
|
53
|
+
</>
|
|
54
|
+
)
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### 搜索框内容对齐
|
|
59
|
+
|
|
60
|
+
通过 `inputAlign` 属性设置搜索框内容的对齐方式,可选值为 `center`、`right`。
|
|
61
|
+
|
|
62
|
+
```tsx
|
|
63
|
+
function InputCenterSearch() {
|
|
64
|
+
const [value, setValue] = useState("")
|
|
65
|
+
return (
|
|
66
|
+
<Search
|
|
67
|
+
value={value}
|
|
68
|
+
placeholder="请输入搜索关键词"
|
|
69
|
+
inputAlign="center"
|
|
70
|
+
onChange={(e) => setValue(e.detail.value)}
|
|
71
|
+
/>
|
|
72
|
+
)
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### 禁用搜索框
|
|
77
|
+
|
|
78
|
+
通过 `disabled` 属性禁用搜索框。
|
|
79
|
+
|
|
80
|
+
```tsx
|
|
81
|
+
<Search disabled placeholder="请输入搜索关键词" />
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### 自定义背景色
|
|
85
|
+
|
|
86
|
+
通过 `className` 属性可以设置搜索框外部的背景色,通过 `shape="rounded"` 属性设置搜索框的形状。
|
|
87
|
+
|
|
88
|
+
```tsx
|
|
89
|
+
<Search className="background" shape="rounded" disabled placeholder="请输入搜索关键词" />
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
```scss
|
|
93
|
+
.background {
|
|
94
|
+
--search-background-color: #4fc08d;
|
|
95
|
+
}
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### 自定义按钮
|
|
99
|
+
|
|
100
|
+
使用 `action` 插槽可以自定义右侧按钮的内容。使用插槽后,`cancel` 事件将不再触发。
|
|
101
|
+
|
|
102
|
+
```tsx
|
|
103
|
+
function CustomSearch() {
|
|
104
|
+
const [value, setValue] = useState("")
|
|
105
|
+
const [open, setOpen] = useState(false)
|
|
106
|
+
return (
|
|
107
|
+
<>
|
|
108
|
+
<Toast open={open} onClose={() => setOpen(false)}>
|
|
109
|
+
搜索
|
|
110
|
+
</Toast>
|
|
111
|
+
<Search
|
|
112
|
+
value={value}
|
|
113
|
+
label="地址"
|
|
114
|
+
placeholder="请输入搜索关键词"
|
|
115
|
+
action={<View onClick={() => setOpen(true)}>搜索</View>}
|
|
116
|
+
onChange={(e) => setValue(e.detail.value)}
|
|
117
|
+
/>
|
|
118
|
+
</>
|
|
119
|
+
)
|
|
120
|
+
}
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## API
|
|
124
|
+
|
|
125
|
+
### Props
|
|
126
|
+
|
|
127
|
+
| 参数 | 说明 | 类型 | 默认值 |
|
|
128
|
+
| --------------------------------- | --------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------ |
|
|
129
|
+
| label | 搜索框左侧文本 | _string_ | - |
|
|
130
|
+
| shape | 搜索框形状,可选值为 `square` `rounded` | _string_ | - |
|
|
131
|
+
| maxlength | 输入的最大字符数 | _number \| string_ | - |
|
|
132
|
+
| placeholder | 占位提示文字 | _string_ | - |
|
|
133
|
+
| autoFocus | 自动聚焦,iOS 系统不支持该属性 | _boolean_ | `false` |
|
|
134
|
+
| focus | 获取焦点 | _boolean_ | `false` |
|
|
135
|
+
| disabled | 是否禁用输入框 | _boolean_ | `false` |
|
|
136
|
+
| readonly | 是否将输入框设为只读状态,只读状态下无法输入内容 | _boolean_ | `false` |
|
|
137
|
+
| icon | 输入框左侧图标 | _ReactNode_ | `<Search />` |
|
|
138
|
+
| rightIcon | 输入框右侧图标 | _ReactNode_ | - |
|
|
139
|
+
| action | 是否在搜索框右侧显示取消按钮 | _boolean \| ReactNode_ | `false` |
|
|
140
|
+
| inputAlign | 输入框内容对齐方式,可选值为 `center` `right` | _string_ | `left` |
|
|
141
|
+
| inputColor | 输入框内容颜色,可选值为 `primary` `info` `success` `warning` `danger` | _string_ | - |
|
|
142
|
+
| clearable | 是否启用清除图标,点击清除图标后会清空输入框 | _boolean_ | `true` |
|
|
143
|
+
| clearIcon | 清除图标 | _string_ | `<Clear />` |
|
|
144
|
+
| clearTrigger | 显示清除图标的时机,`always` 表示输入框不为空时展示,<br>`focus` 表示输入框聚焦且不为空时展示 | _string_ | `focus` |
|
|
145
|
+
| feedback | 提示文案,为空时不展示 | _string \| [FormFeedbackProps](/components/form/#formfeedback-props) \| ReactElement_ | - |
|
|
146
|
+
| enableNative <br>`v0.4.0-alpha.0` | 使用原生键盘(仅支付宝小程序) | _boolean_ | `true` |
|
|
147
|
+
|
|
148
|
+
### Events
|
|
149
|
+
|
|
150
|
+
| 事件名 | 说明 | 回调参数 |
|
|
151
|
+
| -------- | -------------------- | -------------------------------------------------------- |
|
|
152
|
+
| onSearch | 确定搜索时触发 | _event: BaseEventOrig<InputProps.inputValueEventDetail>_ |
|
|
153
|
+
| onChange | 输入框内容变化时触发 | _event: BaseEventOrig<InputProps.inputEventDetail>_ |
|
|
154
|
+
| onFocus | 输入框获得焦点时触发 | _event: BaseEventOrig<InputProps.inputForceEventDetail>_ |
|
|
155
|
+
| onBlur | 输入框失去焦点时触发 | _event: BaseEventOrig<InputProps.inputForceEventDetail>_ |
|
|
156
|
+
| onClear | 点击清除按钮后触发 | _event: event: ITouchEvent_ |
|
|
157
|
+
| onCancel | 点击取消按钮时触发 | _event: event: ITouchEvent_ |
|
|
158
|
+
|
|
159
|
+
## 主题定制
|
|
160
|
+
|
|
161
|
+
### 样式变量
|
|
162
|
+
|
|
163
|
+
组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 [ConfigProvider](/components/config-provider/) 组件。
|
|
164
|
+
|
|
165
|
+
| 名称 | 默认值 | 描述 |
|
|
166
|
+
| --------------------------------------- | ----------------------------------------- | ---- |
|
|
167
|
+
| --search-padding | _10px \* $hd var(--padding-sm)_ | - |
|
|
168
|
+
| --search-background-color | _var(--white)_ | - |
|
|
169
|
+
| --search-content-padding-left | _var(--padding-sm)_ | - |
|
|
170
|
+
| --search-content-background-color | _var(--gray-1)_ | - |
|
|
171
|
+
| --search-content-border-radius | _var(--border-radius-sm)_ | - |
|
|
172
|
+
| --search-content-square-border-radius | _0_ | - |
|
|
173
|
+
| --search-content-rounded-border-radius | _var(--border-radius-max)_ | - |
|
|
174
|
+
| --search-input-height | _34px \* $hd_ | - |
|
|
175
|
+
| --search-label-padding | _0 5px \* $hd_ | - |
|
|
176
|
+
| --search-label-color | _var(--text-color)_ | - |
|
|
177
|
+
| --search-label-font-size | _var(--font-size-md)_ | - |
|
|
178
|
+
| --search-label-line-height | _var(--search-input-height)_ | - |
|
|
179
|
+
| --search-field-padding | _5px * $hd var(--padding-xs) 5px * $hd 0_ | - |
|
|
180
|
+
| --search-left-icon-color | _var(--gray-6)_ | - |
|
|
181
|
+
| --search-action-padding | _0 var(--padding-xs)_ | - |
|
|
182
|
+
| --search-action-color | _var(--text-color)_ | - |
|
|
183
|
+
| --search-action-line-height | _var(--search-input-height)_ | - |
|
|
184
|
+
| --search-action-font-size | _var(--font-size-md)_ | - |
|
|
185
|
+
| --search-action-active-background-color | _var(--active-color)_ | - |
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { Search, Toast } 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
|
+
function BasicSearch() {
|
|
9
|
+
const [value, setValue] = useState("")
|
|
10
|
+
return (
|
|
11
|
+
<Search
|
|
12
|
+
value={value}
|
|
13
|
+
placeholder="请输入搜索关键词"
|
|
14
|
+
onChange={(e) => setValue(e.detail.value)}
|
|
15
|
+
/>
|
|
16
|
+
)
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function SearchWithEvents() {
|
|
20
|
+
const [value, setValue] = useState("")
|
|
21
|
+
const [open, setOpen] = useState(false)
|
|
22
|
+
|
|
23
|
+
return (
|
|
24
|
+
<>
|
|
25
|
+
<Toast open={open} onClose={() => setOpen(false)}>
|
|
26
|
+
取消
|
|
27
|
+
</Toast>
|
|
28
|
+
<Search
|
|
29
|
+
value={value}
|
|
30
|
+
placeholder="请输入搜索关键词"
|
|
31
|
+
action
|
|
32
|
+
onChange={(e) => setValue(e.detail.value)}
|
|
33
|
+
onCancel={() => setOpen(true)}
|
|
34
|
+
/>
|
|
35
|
+
</>
|
|
36
|
+
)
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
function InputCenterSearch() {
|
|
40
|
+
const [value, setValue] = useState("")
|
|
41
|
+
return (
|
|
42
|
+
<Search
|
|
43
|
+
value={value}
|
|
44
|
+
placeholder="请输入搜索关键词"
|
|
45
|
+
inputAlign="center"
|
|
46
|
+
onChange={(e) => setValue(e.detail.value)}
|
|
47
|
+
/>
|
|
48
|
+
)
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function DisabledSearch() {
|
|
52
|
+
return <Search disabled placeholder="请输入搜索关键词" />
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
function BackgroundSearch() {
|
|
56
|
+
return <Search className="background" shape="rounded" placeholder="请输入搜索关键词" />
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
function CustomSearch() {
|
|
60
|
+
const [value, setValue] = useState("")
|
|
61
|
+
const [open, setOpen] = useState(false)
|
|
62
|
+
return (
|
|
63
|
+
<>
|
|
64
|
+
<Toast open={open} onClose={() => setOpen(false)}>
|
|
65
|
+
搜索
|
|
66
|
+
</Toast>
|
|
67
|
+
<Search
|
|
68
|
+
value={value}
|
|
69
|
+
label="地址"
|
|
70
|
+
placeholder="请输入搜索关键词"
|
|
71
|
+
action={<View onClick={() => setOpen(true)}>搜索</View>}
|
|
72
|
+
onChange={(e) => setValue(e.detail.value)}
|
|
73
|
+
/>
|
|
74
|
+
</>
|
|
75
|
+
)
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export default function SearchDemo() {
|
|
79
|
+
return (
|
|
80
|
+
<Page title="Search 搜索" className="search-demo">
|
|
81
|
+
<Block title="基础用法">
|
|
82
|
+
<BasicSearch />
|
|
83
|
+
</Block>
|
|
84
|
+
<Block title="事件监听">
|
|
85
|
+
<SearchWithEvents />
|
|
86
|
+
</Block>
|
|
87
|
+
<Block title="搜索框内容对齐">
|
|
88
|
+
<InputCenterSearch />
|
|
89
|
+
</Block>
|
|
90
|
+
<Block title="禁用搜索框">
|
|
91
|
+
<DisabledSearch />
|
|
92
|
+
</Block>
|
|
93
|
+
<Block title="自定义背景色">
|
|
94
|
+
<BackgroundSearch />
|
|
95
|
+
</Block>
|
|
96
|
+
<Block title="自定义按钮">
|
|
97
|
+
<CustomSearch />
|
|
98
|
+
</Block>
|
|
99
|
+
</Page>
|
|
100
|
+
)
|
|
101
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
## API
|
|
2
|
+
|
|
3
|
+
### ShareSheet Props
|
|
4
|
+
|
|
5
|
+
| 参数 | 说明 | 类型 | 默认值 |
|
|
6
|
+
|-------------|------------|-----------------|---------|
|
|
7
|
+
| defaultOpen | 默认是否显示动作面板 | _boolean_ | `false` |
|
|
8
|
+
| open | 是否显示动作面板 | _boolean_ | `false` |
|
|
9
|
+
| className | 样式类名 | _string_ | - |
|
|
10
|
+
| style | 样式对象 | _CSSProperties_ | - |
|
|
11
|
+
| rounded | 是否为圆角 | _string_ | - |
|
|
12
|
+
|
|
13
|
+
### ShareSheet.Backdrop Props
|
|
14
|
+
|
|
15
|
+
| 参数 | 说明 | 类型 | 默认值 |
|
|
16
|
+
| --- | --- | --- | --- |
|
|
17
|
+
| className | 样式类名 | _string_ | - |
|
|
18
|
+
| style | 样式对象 | _CSSProperties_ | - |
|
|
19
|
+
| duration | 动画时长,单位毫秒 | _number \| string_ | `300` |
|
|
20
|
+
| closeable | 点击是否可以关闭 | _boolean_ | `true` |
|
|
21
|
+
|
|
22
|
+
### ShareSheet.Header Props
|
|
23
|
+
|
|
24
|
+
| 参数 | 说明 | 类型 | 默认值 |
|
|
25
|
+
|-----------|------|-----------------|-----|
|
|
26
|
+
| className | 样式类名 | _string_ | - |
|
|
27
|
+
| style | 样式对象 | _CSSProperties_ | - |
|
|
28
|
+
| title | 标题 | _string_ | - |
|
|
29
|
+
| children | 描述信息 | _string_ | - |
|
|
30
|
+
|
|
31
|
+
### ShareSheet.Option Props
|
|
32
|
+
|
|
33
|
+
| 参数 | 说明 | 类型 | 默认值 |
|
|
34
|
+
| ----------- | --- | --- | --- |
|
|
35
|
+
| className | 分享选项类名 | _string_ | - |
|
|
36
|
+
| name | 分享渠道名称 | _string_ | - |
|
|
37
|
+
| value | 选项值 | _string_ | - |
|
|
38
|
+
| description | 分享选项描述 | _string_ | - |
|
|
39
|
+
| icon | 图标,可选值为 `wechat` `weibo` `qq` `link` `qrcode` `poster`<br/>`weapp-qrcode` `wechat-moments`,支持传入 Image 组件 | _string_ | - |
|
|
40
|
+
| openType | 微信开放能力,可选值为 `contact` `contactShare` `share`<br/>`getRealnameAuthInfo` `getAuthorize` `getPhoneNumber`<br/>`getUserInfo` `lifestyle` `launchApp` `openSetting` `feedback` | _string_ | - |
|
|
41
|
+
|
|
42
|
+
### Events
|
|
43
|
+
|
|
44
|
+
| 事件名 | 说明 | 回调参数 |
|
|
45
|
+
|----------|-----------|---------------------------------|
|
|
46
|
+
| onSelect | 点击分享选项时触发 | _event: ShareSheet.OptionEvent_ |
|
|
47
|
+
| onCancel | 点击取消按钮时触发 | - |
|
|
48
|
+
| onClose | 关闭面板时触发 | - |
|