@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.
Files changed (210) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +34 -0
  3. package/dist/index.d.ts +1 -0
  4. package/dist/index.js +248 -0
  5. package/metaData/components/action-sheet/api.md +74 -0
  6. package/metaData/components/action-sheet/doc.md +243 -0
  7. package/metaData/components/action-sheet/example/index.tsx +116 -0
  8. package/metaData/components/area-picker/api.md +25 -0
  9. package/metaData/components/area-picker/doc.md +132 -0
  10. package/metaData/components/area-picker/example/index.tsx +60 -0
  11. package/metaData/components/avatar/api.md +19 -0
  12. package/metaData/components/avatar/doc.md +170 -0
  13. package/metaData/components/avatar/example/index.tsx +76 -0
  14. package/metaData/components/back-top/api.md +21 -0
  15. package/metaData/components/back-top/doc.md +142 -0
  16. package/metaData/components/back-top/example/index.tsx +96 -0
  17. package/metaData/components/backdrop/api.md +20 -0
  18. package/metaData/components/backdrop/doc.md +98 -0
  19. package/metaData/components/backdrop/example/index.tsx +33 -0
  20. package/metaData/components/badge/api.md +10 -0
  21. package/metaData/components/badge/doc.md +169 -0
  22. package/metaData/components/badge/example/index.tsx +81 -0
  23. package/metaData/components/button/api.md +31 -0
  24. package/metaData/components/button/doc.md +235 -0
  25. package/metaData/components/button/example/index.tsx +235 -0
  26. package/metaData/components/calendar/api.md +62 -0
  27. package/metaData/components/calendar/doc.md +516 -0
  28. package/metaData/components/calendar/example/index.tsx +501 -0
  29. package/metaData/components/cascader/api.md +55 -0
  30. package/metaData/components/cascader/doc.md +358 -0
  31. package/metaData/components/cascader/example/index.tsx +159 -0
  32. package/metaData/components/cell/api.md +37 -0
  33. package/metaData/components/cell/doc.md +158 -0
  34. package/metaData/components/cell/example/index.tsx +44 -0
  35. package/metaData/components/checkbox/api.md +35 -0
  36. package/metaData/components/checkbox/doc.md +203 -0
  37. package/metaData/components/checkbox/example/index.tsx +94 -0
  38. package/metaData/components/circle/api.md +17 -0
  39. package/metaData/components/circle/doc.md +123 -0
  40. package/metaData/components/circle/example/index.tsx +81 -0
  41. package/metaData/components/collapse/api.md +31 -0
  42. package/metaData/components/collapse/doc.md +142 -0
  43. package/metaData/components/collapse/example/index.tsx +81 -0
  44. package/metaData/components/config-provider/api.md +7 -0
  45. package/metaData/components/config-provider/doc.md +193 -0
  46. package/metaData/components/config-provider/example/index.tsx +54 -0
  47. package/metaData/components/countdown/api.md +46 -0
  48. package/metaData/components/countdown/doc.md +167 -0
  49. package/metaData/components/countdown/example/index.tsx +70 -0
  50. package/metaData/components/datetime-picker/api.md +25 -0
  51. package/metaData/components/datetime-picker/doc.md +317 -0
  52. package/metaData/components/datetime-picker/example/index.tsx +265 -0
  53. package/metaData/components/dialog/api.md +66 -0
  54. package/metaData/components/dialog/doc.md +292 -0
  55. package/metaData/components/dialog/example/index.tsx +138 -0
  56. package/metaData/components/divider/api.md +15 -0
  57. package/metaData/components/divider/doc.md +108 -0
  58. package/metaData/components/divider/example/index.tsx +45 -0
  59. package/metaData/components/dropdown-menu/api.md +37 -0
  60. package/metaData/components/dropdown-menu/doc.md +279 -0
  61. package/metaData/components/dropdown-menu/example/index.tsx +182 -0
  62. package/metaData/components/empty/api.md +20 -0
  63. package/metaData/components/empty/doc.md +126 -0
  64. package/metaData/components/empty/example/index.tsx +66 -0
  65. package/metaData/components/field/api.md +10 -0
  66. package/metaData/components/field/doc.md +274 -0
  67. package/metaData/components/field/example/index.tsx +203 -0
  68. package/metaData/components/fixed-nav/api.md +21 -0
  69. package/metaData/components/fixed-nav/doc.md +196 -0
  70. package/metaData/components/fixed-nav/example/index.tsx +80 -0
  71. package/metaData/components/fixed-view/api.md +10 -0
  72. package/metaData/components/fixed-view/doc.md +25 -0
  73. package/metaData/components/fixed-view/example/index.tsx +12 -0
  74. package/metaData/components/flex/api.md +18 -0
  75. package/metaData/components/flex/doc.md +103 -0
  76. package/metaData/components/flex/example/index.tsx +58 -0
  77. package/metaData/components/floating-bubble/api.md +18 -0
  78. package/metaData/components/floating-bubble/doc.md +94 -0
  79. package/metaData/components/floating-bubble/example/index.tsx +55 -0
  80. package/metaData/components/floating-panel/api.md +19 -0
  81. package/metaData/components/floating-panel/doc.md +174 -0
  82. package/metaData/components/floating-panel/example/index.tsx +131 -0
  83. package/metaData/components/form/api.md +124 -0
  84. package/metaData/components/form/doc.md +759 -0
  85. package/metaData/components/form/example/index.tsx +222 -0
  86. package/metaData/components/grid/api.md +28 -0
  87. package/metaData/components/grid/doc.md +167 -0
  88. package/metaData/components/grid/example/index.tsx +80 -0
  89. package/metaData/components/image/api.md +42 -0
  90. package/metaData/components/image/doc.md +117 -0
  91. package/metaData/components/image/example/index.tsx +76 -0
  92. package/metaData/components/index-list/api.md +39 -0
  93. package/metaData/components/index-list/doc.md +176 -0
  94. package/metaData/components/index-list/example/index.tsx +110 -0
  95. package/metaData/components/list/api.md +30 -0
  96. package/metaData/components/list/doc.md +317 -0
  97. package/metaData/components/list/example/index.tsx +218 -0
  98. package/metaData/components/loading/api.md +10 -0
  99. package/metaData/components/loading/doc.md +113 -0
  100. package/metaData/components/loading/example/index.tsx +47 -0
  101. package/metaData/components/navbar/api.md +26 -0
  102. package/metaData/components/navbar/doc.md +85 -0
  103. package/metaData/components/navbar/example/index.tsx +28 -0
  104. package/metaData/components/notice-bar/api.md +28 -0
  105. package/metaData/components/notice-bar/doc.md +154 -0
  106. package/metaData/components/notice-bar/example/index.tsx +107 -0
  107. package/metaData/components/notify/api.md +28 -0
  108. package/metaData/components/notify/doc.md +140 -0
  109. package/metaData/components/notify/example/index.tsx +89 -0
  110. package/metaData/components/number-keyboard/api.md +21 -0
  111. package/metaData/components/number-keyboard/doc.md +247 -0
  112. package/metaData/components/number-keyboard/example/index.tsx +201 -0
  113. package/metaData/components/pagination/api.md +18 -0
  114. package/metaData/components/pagination/doc.md +113 -0
  115. package/metaData/components/pagination/example/index.tsx +73 -0
  116. package/metaData/components/password-input/api.md +25 -0
  117. package/metaData/components/password-input/doc.md +126 -0
  118. package/metaData/components/password-input/example/index.tsx +124 -0
  119. package/metaData/components/picker/api.md +61 -0
  120. package/metaData/components/picker/doc.md +336 -0
  121. package/metaData/components/picker/example/index.tsx +232 -0
  122. package/metaData/components/popup/api.md +48 -0
  123. package/metaData/components/popup/doc.md +150 -0
  124. package/metaData/components/popup/example/index.tsx +214 -0
  125. package/metaData/components/progress/api.md +11 -0
  126. package/metaData/components/progress/doc.md +105 -0
  127. package/metaData/components/progress/example/index.tsx +58 -0
  128. package/metaData/components/pull-refresh/api.md +18 -0
  129. package/metaData/components/pull-refresh/doc.md +198 -0
  130. package/metaData/components/pull-refresh/example/index.tsx +153 -0
  131. package/metaData/components/radio/api.md +26 -0
  132. package/metaData/components/radio/doc.md +201 -0
  133. package/metaData/components/radio/example/index.tsx +103 -0
  134. package/metaData/components/rate/api.md +23 -0
  135. package/metaData/components/rate/doc.md +122 -0
  136. package/metaData/components/rate/example/index.tsx +36 -0
  137. package/metaData/components/rolling-text/api.md +23 -0
  138. package/metaData/components/rolling-text/doc.md +153 -0
  139. package/metaData/components/rolling-text/example/index.tsx +150 -0
  140. package/metaData/components/safe-area/api.md +8 -0
  141. package/metaData/components/safe-area/doc.md +30 -0
  142. package/metaData/components/safe-area/example/index.tsx +16 -0
  143. package/metaData/components/search/api.md +35 -0
  144. package/metaData/components/search/doc.md +185 -0
  145. package/metaData/components/search/example/index.tsx +101 -0
  146. package/metaData/components/share-sheet/api.md +48 -0
  147. package/metaData/components/share-sheet/doc.md +215 -0
  148. package/metaData/components/share-sheet/example/index.tsx +143 -0
  149. package/metaData/components/sidebar/api.md +28 -0
  150. package/metaData/components/sidebar/doc.md +122 -0
  151. package/metaData/components/sidebar/example/index.tsx +58 -0
  152. package/metaData/components/signature/api.md +19 -0
  153. package/metaData/components/signature/doc.md +115 -0
  154. package/metaData/components/signature/example/index.tsx +56 -0
  155. package/metaData/components/skeleton/api.md +45 -0
  156. package/metaData/components/skeleton/doc.md +131 -0
  157. package/metaData/components/skeleton/example/index.tsx +80 -0
  158. package/metaData/components/slider/api.md +28 -0
  159. package/metaData/components/slider/doc.md +151 -0
  160. package/metaData/components/slider/example/index.tsx +54 -0
  161. package/metaData/components/space/api.md +12 -0
  162. package/metaData/components/space/doc.md +125 -0
  163. package/metaData/components/space/example/index.tsx +75 -0
  164. package/metaData/components/stepper/api.md +37 -0
  165. package/metaData/components/stepper/doc.md +152 -0
  166. package/metaData/components/stepper/example/index.tsx +45 -0
  167. package/metaData/components/steps/api.md +9 -0
  168. package/metaData/components/steps/doc.md +143 -0
  169. package/metaData/components/steps/example/index.tsx +93 -0
  170. package/metaData/components/sticky/api.md +16 -0
  171. package/metaData/components/sticky/doc.md +87 -0
  172. package/metaData/components/sticky/example/index.tsx +62 -0
  173. package/metaData/components/swipe-cell/api.md +19 -0
  174. package/metaData/components/swipe-cell/doc.md +105 -0
  175. package/metaData/components/swipe-cell/example/index.tsx +62 -0
  176. package/metaData/components/swiper/api.md +22 -0
  177. package/metaData/components/swiper/doc.md +228 -0
  178. package/metaData/components/swiper/example/index.tsx +118 -0
  179. package/metaData/components/switch/api.md +17 -0
  180. package/metaData/components/switch/doc.md +110 -0
  181. package/metaData/components/switch/example/index.tsx +57 -0
  182. package/metaData/components/tabbar/api.md +27 -0
  183. package/metaData/components/tabbar/doc.md +160 -0
  184. package/metaData/components/tabbar/example/index.tsx +99 -0
  185. package/metaData/components/tabs/api.md +36 -0
  186. package/metaData/components/tabs/doc.md +307 -0
  187. package/metaData/components/tabs/example/index.tsx +231 -0
  188. package/metaData/components/tag/api.md +17 -0
  189. package/metaData/components/tag/doc.md +162 -0
  190. package/metaData/components/tag/example/index.tsx +84 -0
  191. package/metaData/components/text-ellipsis/api.md +26 -0
  192. package/metaData/components/text-ellipsis/doc.md +135 -0
  193. package/metaData/components/text-ellipsis/example/index.tsx +44 -0
  194. package/metaData/components/timeline/api.md +20 -0
  195. package/metaData/components/timeline/doc.md +210 -0
  196. package/metaData/components/timeline/example/index.tsx +145 -0
  197. package/metaData/components/toast/api.md +39 -0
  198. package/metaData/components/toast/doc.md +256 -0
  199. package/metaData/components/toast/example/index.tsx +136 -0
  200. package/metaData/components/tree-select/api.md +19 -0
  201. package/metaData/components/tree-select/doc.md +185 -0
  202. package/metaData/components/tree-select/example/index.tsx +112 -0
  203. package/metaData/components/uploader/api.md +32 -0
  204. package/metaData/components/uploader/doc.md +340 -0
  205. package/metaData/components/uploader/example/index.tsx +222 -0
  206. package/metaData/components/watermark/api.md +18 -0
  207. package/metaData/components/watermark/doc.md +97 -0
  208. package/metaData/components/watermark/example/index.tsx +62 -0
  209. package/metaData/components-index.json +274 -0
  210. package/package.json +56 -0
@@ -0,0 +1,76 @@
1
+ import { Flex, Image } from "@fjyueke/bify-core"
2
+ import { ImageMode } from "@fjyueke/bify-core/image"
3
+ import { Photo, PhotoFail } from "@fjyueke/bify-icons"
4
+ import { Text } from "@tarojs/components"
5
+ import Block from "../../../components/block"
6
+ import Page from "../../../components/page"
7
+ import "./index.scss"
8
+
9
+ export default function ImageDemo() {
10
+ const imageUrl = "https://img01.yzcdn.cn/vant/cat.jpeg"
11
+
12
+ const modes: ImageMode[] = [
13
+ "scaleToFill",
14
+ "aspectFit",
15
+ "aspectFill",
16
+ "widthFix",
17
+ "heightFix",
18
+ // "top",
19
+ // "bottom",
20
+ // "center",
21
+ // "left",
22
+ // "right",
23
+ // "topLeft",
24
+ // "topRight",
25
+ // "bottomLeft",
26
+ // "bottomRight",
27
+ ]
28
+
29
+ return (
30
+ <Page title="Image 图片" className="image-demo">
31
+ <Block title="基础用法">
32
+ <Image width={200} height={200} src={imageUrl} />
33
+ </Block>
34
+ <Block title="填充模式">
35
+ <Flex wrap="wrap" gutter={20}>
36
+ {modes.map((mode) => (
37
+ <Flex.Item span={8} key={mode}>
38
+ <Image width={200} height={200} mode={mode} src={imageUrl} />
39
+ <Text className="text">{mode}</Text>
40
+ </Flex.Item>
41
+ ))}
42
+ </Flex>
43
+ </Block>
44
+ <Block title="圆形图片">
45
+ <Flex wrap="wrap" gutter={20}>
46
+ {modes.map((mode) => (
47
+ <Flex.Item span={8} key={mode}>
48
+ <Image width={200} height={200} mode={mode} src={imageUrl} round />
49
+ <Text className="text">{mode}</Text>
50
+ </Flex.Item>
51
+ ))}
52
+ </Flex>
53
+ </Block>
54
+ <Block title="加载中,加载失败提示">
55
+ <Flex wrap="wrap" gutter={20}>
56
+ <Flex.Item span={8}>
57
+ <Image width={200} height={200} placeholder={<Photo />} />
58
+ <Text className="text">加载提示</Text>
59
+ </Flex.Item>
60
+ <Flex.Item span={8}>
61
+ <Image width={200} height={200} placeholder="加载中..." />
62
+ <Text className="text">加载提示</Text>
63
+ </Flex.Item>
64
+ <Flex.Item span={8}>
65
+ <Image width={200} height={200} src="error" fallback={<PhotoFail />} />
66
+ <Text className="text">失败提示</Text>
67
+ </Flex.Item>
68
+ <Flex.Item span={8}>
69
+ <Image width={200} height={200} src="error" fallback="加载失败" />
70
+ <Text className="text">失败提示</Text>
71
+ </Flex.Item>
72
+ </Flex>
73
+ </Block>
74
+ </Page>
75
+ )
76
+ }
@@ -0,0 +1,39 @@
1
+ ## API
2
+
3
+ ### IndexList Props
4
+
5
+ | 参数 | 说明 | 类型 | 默认值 |
6
+ | -------------------------------- | --------------------------------------------------- | ------------------ | -------------------------------------------- |
7
+ | sticky | 是否开启锚点自动吸顶 | _boolean_ | `true` |
8
+ | stickyOffsetTop | 锚点自动吸顶时与顶部的距离 | _number \| string_ | `0` |
9
+ | inner <br>`v0.2.0-alpha.0` | 是否是底部弹窗内使用 | _boolean_ | `false` |
10
+ | delay <br>`v0.2.0-alpha.0` | inner 为 `true`,并且自定义了弹窗弹出动画时长时设置 | _number_ | inner 为 true 时候是 `300`,false 时候是 `0` |
11
+ | showSidebar <br>`v0.2.1-alpha.0` | 是否显示索引 | _boolean_ | `true` |
12
+
13
+ ### IndexList Events
14
+
15
+ | 事件名 | 说明 | 回调参数 |
16
+ | ----------------------------- | ---------------- | ------------------------------------------- |
17
+ | onChange <br>`v0.2.1-alpha.0` | 索引位变化时触发 | _current: number, anchor: number \| string_ |
18
+
19
+ ### IndexList Method
20
+
21
+ 通过 `ref` 可以获取到 IndexList 实例并调用实例方法
22
+
23
+ | 方法名 | 说明 | 参数 | 返回值 |
24
+ | :---------------------------- | ------------ | ----- | ------ |
25
+ | scrollTo <br>`v0.2.1-alpha.0` | 跳转指定位置 | index | - |
26
+
27
+ ### IndexList.Anchor Props
28
+
29
+ | 参数 | 说明 | 类型 | 默认值 |
30
+ | -------- | -------- | ------------------ | ------ |
31
+ | index | 索引字符 | _number \| string_ | - |
32
+ | children | 索引内容 | _ReactNode_ | - |
33
+
34
+ ### IndexList Events
35
+
36
+ | 事件名 | 说明 | 回调参数 |
37
+ | -------- | ---------------------------- | ------------------------- |
38
+ | onSelect | 点击索引栏的字符时触发 | _index: number \| string_ |
39
+ | onChange | 当前高亮的索引字符变化时触发 | _index: number \| string_ |
@@ -0,0 +1,176 @@
1
+ # IndexList 索引栏
2
+
3
+ ### 介绍
4
+
5
+ 用于列表的索引分类显示和快速定位。
6
+
7
+ ### 引入
8
+
9
+ ```tsx
10
+ import { IndexList } from "@fjyueke/bify-core"
11
+ ```
12
+
13
+ ## 代码演示
14
+
15
+ ### 基础用法
16
+
17
+ 点击索引栏时,会自动跳转到对应的 `IndexList.Anchor` 锚点位置。
18
+
19
+ ```tsx
20
+ function BasicIndexList() {
21
+ const indexList: string[] = []
22
+ const charCodeOfA = "A".charCodeAt(0)
23
+
24
+ for (let i = 0; i < 26; i++) {
25
+ indexList.push(String.fromCharCode(charCodeOfA + i))
26
+ }
27
+
28
+ return (
29
+ <IndexList>
30
+ {_.map(indexList, (index) => {
31
+ return (
32
+ <Fragment key={index}>
33
+ <IndexList.Anchor index={index} />
34
+ <Cell title="文本" />
35
+ <Cell title="文本" />
36
+ <Cell title="文本" />
37
+ </Fragment>
38
+ )
39
+ })}
40
+ </IndexList>
41
+ )
42
+ }
43
+ ```
44
+
45
+ ### 自定义索引列表
46
+
47
+ ```tsx
48
+ function CustomIndexList() {
49
+ const customIndexList = [1, 2, 3, 4, 5, 6, 8, 9, 10]
50
+
51
+ return (
52
+ <IndexList>
53
+ {_.map(customIndexList, (index) => {
54
+ return (
55
+ <Fragment key={index}>
56
+ <IndexList.Anchor index={index}>标题{index}</IndexList.Anchor>
57
+ <Cell title="文本" />
58
+ <Cell title="文本" />
59
+ <Cell title="文本" />
60
+ </Fragment>
61
+ )
62
+ })}
63
+ </IndexList>
64
+ )
65
+ }
66
+ ```
67
+
68
+ ### 配合弹窗使用
69
+
70
+ 当在弹窗内使用时,请传入 `inner` 属性以便于组件知道是在底部弹窗内,用于启用 `ScrollView`。如果自定义了弹窗弹出动画时间,请手动设置 `delay` 属性,值为动画时长。
71
+
72
+ ```tsx
73
+ function PopupIndexBar() {
74
+ const [open, setOpen] = useState(false)
75
+
76
+ const indexList: string[] = []
77
+ const charCodeOfA = "A".charCodeAt(0)
78
+
79
+ for (let i = 0; i < 26; i++) {
80
+ indexList.push(String.fromCharCode(charCodeOfA + i))
81
+ }
82
+
83
+ return (
84
+ <>
85
+ <Button onClick={() => setOpen(true)}>打开弹窗</Button>
86
+ <Popup
87
+ open={open}
88
+ style={{ height: "80%" }}
89
+ placement="bottom"
90
+ rounded
91
+ onClose={() => setOpen(false)}
92
+ >
93
+ <Popup.Close />
94
+ <View className="index-list-demo_wrap">
95
+ <IndexList inner delay={300}>
96
+ {_.map(indexList, (index) => {
97
+ return (
98
+ <Fragment key={index}>
99
+ <IndexList.Anchor index={index} />
100
+ <Cell title="文本" />
101
+ <Cell title="文本" />
102
+ <Cell title="文本" />
103
+ </Fragment>
104
+ )
105
+ })}
106
+ </IndexList>
107
+ </View>
108
+ </Popup>
109
+ </>
110
+ )
111
+ }
112
+ ```
113
+
114
+ ## API
115
+
116
+ ### IndexList Props
117
+
118
+ | 参数 | 说明 | 类型 | 默认值 |
119
+ | -------------------------------- | --------------------------------------------------- | ------------------ | -------------------------------------------- |
120
+ | sticky | 是否开启锚点自动吸顶 | _boolean_ | `true` |
121
+ | stickyOffsetTop | 锚点自动吸顶时与顶部的距离 | _number \| string_ | `0` |
122
+ | inner <br>`v0.2.0-alpha.0` | 是否是底部弹窗内使用 | _boolean_ | `false` |
123
+ | delay <br>`v0.2.0-alpha.0` | inner 为 `true`,并且自定义了弹窗弹出动画时长时设置 | _number_ | inner 为 true 时候是 `300`,false 时候是 `0` |
124
+ | showSidebar <br>`v0.2.1-alpha.0` | 是否显示索引 | _boolean_ | `true` |
125
+
126
+ ### IndexList Events
127
+
128
+ | 事件名 | 说明 | 回调参数 |
129
+ | ----------------------------- | ---------------- | ------------------------------------------- |
130
+ | onChange <br>`v0.2.1-alpha.0` | 索引位变化时触发 | _current: number, anchor: number \| string_ |
131
+
132
+ ### IndexList Method
133
+
134
+ 通过 `ref` 可以获取到 IndexList 实例并调用实例方法
135
+
136
+ | 方法名 | 说明 | 参数 | 返回值 |
137
+ | :---------------------------- | ------------ | ----- | ------ |
138
+ | scrollTo <br>`v0.2.1-alpha.0` | 跳转指定位置 | index | - |
139
+
140
+ ### IndexList.Anchor Props
141
+
142
+ | 参数 | 说明 | 类型 | 默认值 |
143
+ | -------- | -------- | ------------------ | ------ |
144
+ | index | 索引字符 | _number \| string_ | - |
145
+ | children | 索引内容 | _ReactNode_ | - |
146
+
147
+ ### IndexList Events
148
+
149
+ | 事件名 | 说明 | 回调参数 |
150
+ | -------- | ---------------------------- | ------------------------- |
151
+ | onSelect | 点击索引栏的字符时触发 | _index: number \| string_ |
152
+ | onChange | 当前高亮的索引字符变化时触发 | _index: number \| string_ |
153
+
154
+ ## 主题定制
155
+
156
+ ### 样式变量
157
+
158
+ 组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 [ConfigProvider](/components/config-provider/) 组件。
159
+
160
+ | 名称 | 默认值 | 描述 |
161
+ | -------------------------------------- | ---------------------------------------- | ---- |
162
+ | --index-list-sidebar-z-index | _2_ | - |
163
+ | --index-list-index-font-size | _var(--font-size-xs)_ | - |
164
+ | --index-list-index-line-height | _var(--line-height-xs)_ | - |
165
+ | --index-list-index-font-weight | _var(--font-weight-bold)_ | - |
166
+ | --index-list-index-padding | _0 var(--padding-xs 0 var(--padding-md)_ | - |
167
+ | --index-list-index-active-color | _var(--danger-color)_ | - |
168
+ | --index-anchor-z-index | _1_ | - |
169
+ | --index-anchor-padding | _0 var(--padding-md)_ | - |
170
+ | --index-anchor-color | _var(--text-color)_ | - |
171
+ | --index-anchor-font-weight | _var(--font-weight-bold)_ | - |
172
+ | --index-anchor-font-size | _var(--font-size-md)_ | - |
173
+ | --index-anchor-line-height | _32px \* $hd_ | - |
174
+ | --index-anchor-background-color | _transparent_ | - |
175
+ | --index-anchor-sticky-color | _var(--danger-color)_ | - |
176
+ | --index-anchor-sticky-background-color | _var(--white)_ | - |
@@ -0,0 +1,110 @@
1
+ import { Cell, IndexList, Tabs, Popup, Button } from "@fjyueke/bify-core"
2
+ import * as _ from "lodash"
3
+ import { Fragment, useState } from "react"
4
+ import { View } from "@tarojs/components"
5
+ import Page from "../../../components/page"
6
+ import "./index.scss"
7
+
8
+ function BasicIndexBar() {
9
+ const indexList: string[] = []
10
+ const charCodeOfA = "A".charCodeAt(0)
11
+
12
+ for (let i = 0; i < 26; i++) {
13
+ indexList.push(String.fromCharCode(charCodeOfA + i))
14
+ }
15
+
16
+ return (
17
+ <IndexList>
18
+ {_.map(indexList, (index) => {
19
+ return (
20
+ <Fragment key={index}>
21
+ <IndexList.Anchor index={index} />
22
+ <Cell title="文本" />
23
+ <Cell title="文本" />
24
+ <Cell title="文本" />
25
+ </Fragment>
26
+ )
27
+ })}
28
+ </IndexList>
29
+ )
30
+ }
31
+
32
+ function CustomIndexBar() {
33
+ const customIndexList = [1, 2, 3, 4, 5, 6, 8, 9, 10]
34
+
35
+ return (
36
+ <IndexList>
37
+ {_.map(customIndexList, (index) => {
38
+ return (
39
+ <Fragment key={index}>
40
+ <IndexList.Anchor index={index}>标题{index}</IndexList.Anchor>
41
+ <Cell title="文本" />
42
+ <Cell title="文本" />
43
+ <Cell title="文本" />
44
+ </Fragment>
45
+ )
46
+ })}
47
+ </IndexList>
48
+ )
49
+ }
50
+
51
+ function PopupIndexBar() {
52
+ const [open, setOpen] = useState(false)
53
+
54
+ const indexList: string[] = []
55
+ const charCodeOfA = "A".charCodeAt(0)
56
+
57
+ for (let i = 0; i < 26; i++) {
58
+ indexList.push(String.fromCharCode(charCodeOfA + i))
59
+ }
60
+
61
+ return (
62
+ <>
63
+ <Button block color="primary" className="index-list-demo_btn" onClick={() => setOpen(true)}>
64
+ 打开弹窗
65
+ </Button>
66
+ <Popup
67
+ open={open}
68
+ style={{ height: "80%" }}
69
+ placement="bottom"
70
+ rounded
71
+ onClose={() => setOpen(false)}
72
+ >
73
+ <Popup.Close />
74
+ <View className="index-list-demo_wrap">
75
+ <IndexList inner delay={300} sticky={false}>
76
+ {_.map(indexList, (index) => {
77
+ return (
78
+ <Fragment key={index}>
79
+ <IndexList.Anchor index={index} />
80
+ <Cell title="文本" />
81
+ <Cell title="文本" />
82
+ <Cell title="文本" />
83
+ </Fragment>
84
+ )
85
+ })}
86
+ </IndexList>
87
+ </View>
88
+ </Popup>
89
+ </>
90
+ )
91
+ }
92
+
93
+ export default function IndexBarDemo() {
94
+ const [tab, setTab] = useState(0)
95
+ return (
96
+ <Page title="IndexList 索引栏" className="index-list-demo">
97
+ <Tabs value={tab} onChange={setTab}>
98
+ <Tabs.TabPane title="基础用法">
99
+ <BasicIndexBar />
100
+ </Tabs.TabPane>
101
+ <Tabs.TabPane title="自定义索引列表">
102
+ <CustomIndexBar />
103
+ </Tabs.TabPane>
104
+ <Tabs.TabPane title="配合弹窗使用">
105
+ <PopupIndexBar />
106
+ </Tabs.TabPane>
107
+ </Tabs>
108
+ </Page>
109
+ )
110
+ }
@@ -0,0 +1,30 @@
1
+ ## API
2
+
3
+ ### Props
4
+
5
+ | 参数 | 说明 | 类型 | 默认值 |
6
+ | ----------------------------------------------------------------------- | ------------------------------------------------ | --------- | ------- |
7
+ | fixedHeight <br>`v0.1.1-alpha.2` | 是否固定高度 | _boolean_ | `false` |
8
+ | loading | 是否处于加载状态,加载过程中不触发 `onLoad` 事件 | _boolean_ | `false` |
9
+ | hasMore | 是否已加载完成,加载完成后不再触发 `onLoad` 事件 | _boolean_ | `false` |
10
+ | offset | 滚动条与底部距离小于 offset 时触发 `onLoad` 事件 | _number_ | `100` |
11
+ | immediateCheck <br>`v0.1.1-alpha.2` | 是否在初始化时立即执行滚动位置检查 | _boolean_ | `true` |
12
+ | disabled <br>`v0.1.1-alpha.2` | 是否禁用滚动加载 | _boolean_ | `false` |
13
+ | direction | 滚动触发加载的方向,可选值为 `up` | _string_ | `down` |
14
+ | <span style="color: red">~~scrollTop~~ <br>`v0.1.1-alpha.2 移除`</span> | 距离顶部的滚动距离 | _number_ | `0` |
15
+
16
+ ### Events
17
+
18
+ | 事件名 | 说明 | 回调参数 |
19
+ | ---------------------------------------------------------------------- | ---------------------------------- | -------- |
20
+ | onLoad | 滚动条与底部距离小于 offset 时触发 | - |
21
+ | <span style="color: red">~~onLoading~~ <br>`v0.1.1-alpha.2移除`</span> | 内部 loading 改变时触发 | - |
22
+ | onScroll | 滚动时触发 | e |
23
+
24
+ ### 方法
25
+
26
+ 通过 ref 可以获取到 List 实例并调用实例方法
27
+
28
+ | 方法名 | 说明 | 参数 | 返回值 |
29
+ | ---------------------- | ------------------------------------------------------ | ---- | ------ |
30
+ | check `v0.1.1-alpha.2` | 检查当前的滚动位置,若已滚动至底部,则会触发 load 事件 | - | - |