@a2simcode/ui 0.0.45 → 0.0.47

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 (337) hide show
  1. package/.cursor/skills/ui-component-helper/README.md +43 -0
  2. package/.cursor/skills/ui-component-helper/SKILL.md +81 -0
  3. package/dist/components/index.d.ts +1 -1
  4. package/dist/components/workflow-viewer/index.d.ts +4 -4
  5. package/dist/simcode-ui.es.js +1 -1
  6. package/dist/simcode-ui.umd.js +1 -1
  7. package/dist/stats.html +1 -1
  8. package/docs/components/autocomplete.md +89 -0
  9. package/docs/components/barcode.md +101 -0
  10. package/docs/components/button-select.md +24 -0
  11. package/docs/components/button.md +117 -0
  12. package/docs/components/buttons.md +119 -0
  13. package/docs/components/cascader-select.md +114 -0
  14. package/docs/components/checkbox.md +114 -0
  15. package/docs/components/code-mirror.md +85 -0
  16. package/docs/components/collapse.md +26 -0
  17. package/docs/components/comp.md +71 -0
  18. package/docs/components/count-up.md +24 -0
  19. package/docs/components/count.md +24 -0
  20. package/docs/components/data-panel.md +24 -0
  21. package/docs/components/dialog-full.md +112 -0
  22. package/docs/components/dialog.md +127 -0
  23. package/docs/components/divider.md +24 -0
  24. package/docs/components/drawer.md +127 -0
  25. package/docs/components/dynamic-layer.md +118 -0
  26. package/docs/components/echarts.md +72 -0
  27. package/docs/components/editor.md +24 -0
  28. package/docs/components/form.md +27 -0
  29. package/docs/components/guid.md +39 -0
  30. package/docs/components/hpanel.md +24 -0
  31. package/docs/components/icon.md +56 -0
  32. package/docs/components/input-button.md +24 -0
  33. package/docs/components/input-code.md +24 -0
  34. package/docs/components/input-color.md +114 -0
  35. package/docs/components/input-layer.md +26 -0
  36. package/docs/components/input-rows.md +370 -0
  37. package/docs/components/input-tag.md +50 -0
  38. package/docs/components/input.md +129 -0
  39. package/docs/components/layer-form.md +61 -0
  40. package/docs/components/layer.md +127 -0
  41. package/docs/components/layout.md +132 -0
  42. package/docs/components/map.md +24 -0
  43. package/docs/components/menu.md +121 -0
  44. package/docs/components/meta/autocomplete.ts +335 -0
  45. package/docs/components/meta/barcode.ts +216 -0
  46. package/docs/components/meta/button-select.ts +94 -0
  47. package/docs/components/meta/button.ts +123 -0
  48. package/docs/components/meta/buttons.ts +56 -0
  49. package/docs/components/meta/cascader-select.ts +328 -0
  50. package/docs/components/meta/checkbox.ts +194 -0
  51. package/docs/components/meta/code-mirror.ts +108 -0
  52. package/docs/components/meta/collapse.ts +52 -0
  53. package/docs/components/meta/comp.ts +224 -0
  54. package/docs/components/meta/count-up.ts +126 -0
  55. package/docs/components/meta/count.ts +113 -0
  56. package/docs/components/meta/data-panel.ts +34 -0
  57. package/docs/components/meta/dialog-full.ts +133 -0
  58. package/docs/components/meta/dialog.ts +175 -0
  59. package/docs/components/meta/divider.ts +66 -0
  60. package/docs/components/meta/drawer.ts +158 -0
  61. package/docs/components/meta/dynamic-layer.ts +99 -0
  62. package/docs/components/meta/echarts.ts +64 -0
  63. package/docs/components/meta/editor.ts +67 -0
  64. package/docs/components/meta/form-item.ts +50 -0
  65. package/docs/components/meta/form.ts +160 -0
  66. package/docs/components/meta/guid.ts +42 -0
  67. package/docs/components/meta/hpanel.ts +20 -0
  68. package/docs/components/meta/icon.ts +68 -0
  69. package/docs/components/meta/input-button.ts +165 -0
  70. package/docs/components/meta/input-code.ts +151 -0
  71. package/docs/components/meta/input-color.ts +243 -0
  72. package/docs/components/meta/input-layer.ts +336 -0
  73. package/docs/components/meta/input-rows.ts +113 -0
  74. package/docs/components/meta/input-tag.ts +112 -0
  75. package/docs/components/meta/input.ts +411 -0
  76. package/docs/components/meta/layer-form.ts +56 -0
  77. package/docs/components/meta/layer.ts +122 -0
  78. package/docs/components/meta/layout.ts +101 -0
  79. package/docs/components/meta/map.ts +68 -0
  80. package/docs/components/meta/menu.ts +43 -0
  81. package/docs/components/meta/number.ts +296 -0
  82. package/docs/components/meta/page.ts +67 -0
  83. package/docs/components/meta/radio.ts +55 -0
  84. package/docs/components/meta/rate.ts +124 -0
  85. package/docs/components/meta/select.ts +279 -0
  86. package/docs/components/meta/slider-captcha.ts +70 -0
  87. package/docs/components/meta/slider.ts +270 -0
  88. package/docs/components/meta/switch.ts +272 -0
  89. package/docs/components/meta/table-panel.ts +154 -0
  90. package/docs/components/meta/table.ts +328 -0
  91. package/docs/components/meta/tabs.ts +136 -0
  92. package/docs/components/meta/title.ts +80 -0
  93. package/docs/components/meta/tree.ts +242 -0
  94. package/docs/components/meta/upload.ts +186 -0
  95. package/docs/components/meta/workflow-viewer.ts +55 -0
  96. package/docs/components/meta/workflow.ts +113 -0
  97. package/docs/components/number.md +124 -0
  98. package/docs/components/page.md +42 -0
  99. package/docs/components/radio.md +87 -0
  100. package/docs/components/rate.md +71 -0
  101. package/docs/components/select.md +133 -0
  102. package/docs/components/slider-captcha.md +41 -0
  103. package/docs/components/slider.md +101 -0
  104. package/docs/components/switch.md +90 -0
  105. package/docs/components/table-panel.md +199 -0
  106. package/docs/components/table.md +202 -0
  107. package/docs/components/tabs.md +26 -0
  108. package/docs/components/title.md +24 -0
  109. package/docs/components/tree.md +207 -0
  110. package/docs/components/upload.md +117 -0
  111. package/docs/components/workflow-viewer.md +21 -0
  112. package/docs/components/workflow.md +21 -0
  113. package/docs/examples/autocomplete/advanced.vue +35 -0
  114. package/docs/examples/autocomplete/basic.vue +32 -0
  115. package/docs/examples/autocomplete/clearable.vue +33 -0
  116. package/docs/examples/autocomplete/custom-template.vue +49 -0
  117. package/docs/examples/autocomplete/disabled.vue +33 -0
  118. package/docs/examples/autocomplete/icon.vue +37 -0
  119. package/docs/examples/barcode/all-types.vue +380 -0
  120. package/docs/examples/barcode/basic.vue +14 -0
  121. package/docs/examples/barcode/props-appearance.vue +243 -0
  122. package/docs/examples/barcode/props-geometry.vue +143 -0
  123. package/docs/examples/barcode/props-logic.vue +216 -0
  124. package/docs/examples/barcode/props-symbology.vue +199 -0
  125. package/docs/examples/barcode/props-text.vue +268 -0
  126. package/docs/examples/button/basic.vue +7 -0
  127. package/docs/examples/button/danger-ghost.vue +17 -0
  128. package/docs/examples/button/disabled.vue +10 -0
  129. package/docs/examples/button/loading.vue +6 -0
  130. package/docs/examples/button/shape.vue +7 -0
  131. package/docs/examples/button/size.vue +14 -0
  132. package/docs/examples/button/type.vue +9 -0
  133. package/docs/examples/button-select/basic.vue +19 -0
  134. package/docs/examples/buttons/basic.vue +45 -0
  135. package/docs/examples/buttons/disabled.vue +36 -0
  136. package/docs/examples/buttons/dropdown.vue +63 -0
  137. package/docs/examples/buttons/group.vue +52 -0
  138. package/docs/examples/buttons/link.vue +47 -0
  139. package/docs/examples/buttons/popup.vue +39 -0
  140. package/docs/examples/buttons/size.vue +45 -0
  141. package/docs/examples/cascader-select/basic.vue +28 -0
  142. package/docs/examples/cascader-select/clearable.vue +34 -0
  143. package/docs/examples/cascader-select/disabled.vue +43 -0
  144. package/docs/examples/cascader-select/filterable.vue +37 -0
  145. package/docs/examples/cascader-select/methods.vue +84 -0
  146. package/docs/examples/cascader-select/multiple.vue +38 -0
  147. package/docs/examples/cascader-select/slot.vue +45 -0
  148. package/docs/examples/checkbox/basic.vue +18 -0
  149. package/docs/examples/checkbox/button.vue +19 -0
  150. package/docs/examples/checkbox/color.vue +25 -0
  151. package/docs/examples/checkbox/disabled.vue +17 -0
  152. package/docs/examples/checkbox/min-max.vue +20 -0
  153. package/docs/examples/checkbox/mixed.vue +56 -0
  154. package/docs/examples/checkbox/size.vue +28 -0
  155. package/docs/examples/code-mirror/basic.vue +11 -0
  156. package/docs/examples/code-mirror/events.vue +42 -0
  157. package/docs/examples/code-mirror/height.vue +25 -0
  158. package/docs/examples/code-mirror/mode.vue +33 -0
  159. package/docs/examples/code-mirror/readonly.vue +14 -0
  160. package/docs/examples/collapse/basic.vue +82 -0
  161. package/docs/examples/comp/basic.vue +7 -0
  162. package/docs/examples/comp/collapse.vue +38 -0
  163. package/docs/examples/comp/tabs.vue +38 -0
  164. package/docs/examples/count/basic.vue +54 -0
  165. package/docs/examples/count-up/basic.vue +89 -0
  166. package/docs/examples/data-panel/basic.vue +110 -0
  167. package/docs/examples/dialog/basic.vue +36 -0
  168. package/docs/examples/dialog/custom-buttons.vue +44 -0
  169. package/docs/examples/dialog/fullscreen.vue +23 -0
  170. package/docs/examples/dialog/no-mask.vue +17 -0
  171. package/docs/examples/dialog/size.vue +44 -0
  172. package/docs/examples/dialog/steps.vue +57 -0
  173. package/docs/examples/dialog-full/basic.vue +29 -0
  174. package/docs/examples/dialog-full/custom-buttons.vue +45 -0
  175. package/docs/examples/dialog-full/no-buttons.vue +18 -0
  176. package/docs/examples/dialog-full/no-header.vue +27 -0
  177. package/docs/examples/dialog-full/steps.vue +71 -0
  178. package/docs/examples/divider/basic.vue +52 -0
  179. package/docs/examples/drawer/basic.vue +35 -0
  180. package/docs/examples/drawer/custom-buttons.vue +34 -0
  181. package/docs/examples/drawer/direction.vue +47 -0
  182. package/docs/examples/drawer/mask.vue +36 -0
  183. package/docs/examples/drawer/no-buttons.vue +20 -0
  184. package/docs/examples/drawer/size.vue +28 -0
  185. package/docs/examples/dynamic-layer/basic.vue +33 -0
  186. package/docs/examples/dynamic-layer/custom-buttons.vue +43 -0
  187. package/docs/examples/dynamic-layer/form.vue +73 -0
  188. package/docs/examples/dynamic-layer/steps.vue +52 -0
  189. package/docs/examples/dynamic-layer/types.vue +40 -0
  190. package/docs/examples/echarts/basic.vue +31 -0
  191. package/docs/examples/echarts/dynamic.vue +43 -0
  192. package/docs/examples/echarts/line.vue +46 -0
  193. package/docs/examples/echarts/pie.vue +44 -0
  194. package/docs/examples/editor/basic.vue +15 -0
  195. package/docs/examples/form/basic.vue +224 -0
  196. package/docs/examples/guid/basic.vue +10 -0
  197. package/docs/examples/guid/size.vue +13 -0
  198. package/docs/examples/hpanel/basic.vue +79 -0
  199. package/docs/examples/icon/basic.vue +9 -0
  200. package/docs/examples/icon/rotate-flip.vue +9 -0
  201. package/docs/examples/icon/size.vue +7 -0
  202. package/docs/examples/input/basic.vue +10 -0
  203. package/docs/examples/input/clearable.vue +12 -0
  204. package/docs/examples/input/disabled.vue +6 -0
  205. package/docs/examples/input/icon.vue +23 -0
  206. package/docs/examples/input/password.vue +18 -0
  207. package/docs/examples/input/size.vue +13 -0
  208. package/docs/examples/input/textarea.vue +25 -0
  209. package/docs/examples/input/word-limit.vue +28 -0
  210. package/docs/examples/input-button/basic.vue +33 -0
  211. package/docs/examples/input-code/basic.vue +29 -0
  212. package/docs/examples/input-color/basic.vue +10 -0
  213. package/docs/examples/input-color/disabled.vue +13 -0
  214. package/docs/examples/input-color/format.vue +17 -0
  215. package/docs/examples/input-color/no-alpha.vue +13 -0
  216. package/docs/examples/input-color/only-button.vue +15 -0
  217. package/docs/examples/input-color/predefine.vue +31 -0
  218. package/docs/examples/input-color/size.vue +15 -0
  219. package/docs/examples/input-layer/basic.vue +69 -0
  220. package/docs/examples/input-rows/basic.vue +73 -0
  221. package/docs/examples/input-rows/drag.vue +48 -0
  222. package/docs/examples/input-rows/layer-form.vue +85 -0
  223. package/docs/examples/input-rows/nested.vue +91 -0
  224. package/docs/examples/input-tag/basic.vue +27 -0
  225. package/docs/examples/input-tag/colors.vue +23 -0
  226. package/docs/examples/input-tag/readonly.vue +17 -0
  227. package/docs/examples/layer/basic.vue +43 -0
  228. package/docs/examples/layer/custom-buttons.vue +61 -0
  229. package/docs/examples/layer/drawer.vue +37 -0
  230. package/docs/examples/layer/full.vue +38 -0
  231. package/docs/examples/layer/modal.vue +34 -0
  232. package/docs/examples/layer/steps.vue +46 -0
  233. package/docs/examples/layer-form/basic.vue +76 -0
  234. package/docs/examples/layer-form/config.vue +82 -0
  235. package/docs/examples/layer-form/size.vue +72 -0
  236. package/docs/examples/layout/basic.vue +36 -0
  237. package/docs/examples/layout/custom-size.vue +50 -0
  238. package/docs/examples/layout/disable-move.vue +37 -0
  239. package/docs/examples/layout/hide-mid-when-narrow.vue +96 -0
  240. package/docs/examples/layout/min-size.vue +73 -0
  241. package/docs/examples/layout/percent-size.vue +80 -0
  242. package/docs/examples/layout/simple.vue +22 -0
  243. package/docs/examples/layout/top-side.vue +34 -0
  244. package/docs/examples/map/basic.vue +22 -0
  245. package/docs/examples/menu/basic.vue +58 -0
  246. package/docs/examples/menu/collapsed.vue +49 -0
  247. package/docs/examples/menu/horizontal.vue +44 -0
  248. package/docs/examples/menu/selection-test.vue +104 -0
  249. package/docs/examples/menu/theme.vue +46 -0
  250. package/docs/examples/menu/vertical.vue +46 -0
  251. package/docs/examples/number/advanced.vue +143 -0
  252. package/docs/examples/number/basic.vue +63 -0
  253. package/docs/examples/number/disabled.vue +49 -0
  254. package/docs/examples/number/size.vue +42 -0
  255. package/docs/examples/number/slots.vue +123 -0
  256. package/docs/examples/number/step-strictly.vue +41 -0
  257. package/docs/examples/number/step.vue +47 -0
  258. package/docs/examples/page/basic.vue +41 -0
  259. package/docs/examples/page/init.vue +87 -0
  260. package/docs/examples/radio/basic.vue +17 -0
  261. package/docs/examples/radio/button.vue +17 -0
  262. package/docs/examples/radio/color.vue +18 -0
  263. package/docs/examples/radio/disabled.vue +17 -0
  264. package/docs/examples/radio/size.vue +29 -0
  265. package/docs/examples/rate/basic.vue +24 -0
  266. package/docs/examples/rate/half.vue +24 -0
  267. package/docs/examples/rate/readonly.vue +11 -0
  268. package/docs/examples/rate/text.vue +32 -0
  269. package/docs/examples/select/basic.vue +16 -0
  270. package/docs/examples/select/clearable.vue +22 -0
  271. package/docs/examples/select/disabled.vue +31 -0
  272. package/docs/examples/select/filterable.vue +24 -0
  273. package/docs/examples/select/group.vue +23 -0
  274. package/docs/examples/select/icon.vue +16 -0
  275. package/docs/examples/select/multiple.vue +18 -0
  276. package/docs/examples/select/size.vue +39 -0
  277. package/docs/examples/slider/basic.vue +42 -0
  278. package/docs/examples/slider/disabled.vue +17 -0
  279. package/docs/examples/slider/marks.vue +30 -0
  280. package/docs/examples/slider/size.vue +37 -0
  281. package/docs/examples/slider/tooltip.vue +36 -0
  282. package/docs/examples/slider/vertical.vue +26 -0
  283. package/docs/examples/slider-captcha/basic.vue +44 -0
  284. package/docs/examples/slider-captcha/custom.vue +48 -0
  285. package/docs/examples/switch/basic.vue +16 -0
  286. package/docs/examples/switch/disabled.vue +13 -0
  287. package/docs/examples/switch/loading.vue +13 -0
  288. package/docs/examples/switch/size.vue +15 -0
  289. package/docs/examples/switch/text.vue +13 -0
  290. package/docs/examples/table/actions.vue +116 -0
  291. package/docs/examples/table/add-row.vue +103 -0
  292. package/docs/examples/table/basic.vue +168 -0
  293. package/docs/examples/table/editable.vue +261 -0
  294. package/docs/examples/table/field-selection.vue +87 -0
  295. package/docs/examples/table/frozen-column.vue +140 -0
  296. package/docs/examples/table/height-mode.vue +99 -0
  297. package/docs/examples/table/multiple.vue +178 -0
  298. package/docs/examples/table/pagination.vue +151 -0
  299. package/docs/examples/table/single-selection.vue +64 -0
  300. package/docs/examples/table/tree-column.vue +119 -0
  301. package/docs/examples/table/tree-data.vue +141 -0
  302. package/docs/examples/table-panel/basic.vue +228 -0
  303. package/docs/examples/table-panel/batch-operations.vue +285 -0
  304. package/docs/examples/table-panel/filter.vue +209 -0
  305. package/docs/examples/table-panel/multiple-selection.vue +243 -0
  306. package/docs/examples/table-panel/pagination.vue +133 -0
  307. package/docs/examples/tabs/basic.vue +98 -0
  308. package/docs/examples/title/basic.vue +80 -0
  309. package/docs/examples/tree/accordion.vue +46 -0
  310. package/docs/examples/tree/basic.vue +50 -0
  311. package/docs/examples/tree/buttons.vue +53 -0
  312. package/docs/examples/tree/checkable.vue +52 -0
  313. package/docs/examples/tree/custom-keys.vue +39 -0
  314. package/docs/examples/tree/default-expanded.vue +52 -0
  315. package/docs/examples/tree/draggable.vue +29 -0
  316. package/docs/examples/tree/expand-on-click.vue +39 -0
  317. package/docs/examples/tree/flat-data.vue +20 -0
  318. package/docs/examples/tree/icon.vue +40 -0
  319. package/docs/examples/tree/load-data.vue +37 -0
  320. package/docs/examples/tree/methods.vue +74 -0
  321. package/docs/examples/tree/theme.vue +33 -0
  322. package/docs/examples/upload/accept.vue +31 -0
  323. package/docs/examples/upload/basic.vue +12 -0
  324. package/docs/examples/upload/drag.vue +11 -0
  325. package/docs/examples/upload/image.vue +17 -0
  326. package/docs/examples/upload/limit.vue +20 -0
  327. package/docs/examples/upload/multiple.vue +17 -0
  328. package/docs/examples/upload/readonly.vue +17 -0
  329. package/docs/examples/utils/cipher.vue +160 -0
  330. package/docs/examples/utils/common.vue +153 -0
  331. package/docs/examples/utils/date.vue +56 -0
  332. package/docs/examples/utils/dom.vue +52 -0
  333. package/docs/examples/utils/is.vue +70 -0
  334. package/docs/examples/workflow/basic.vue +265 -0
  335. package/docs/examples/workflow-viewer/basic.vue +248 -0
  336. package/package.json +6 -2
  337. /package/dist/components/workflow-viewer/src/{j-workflow.vue.d.ts → workflow.vue.d.ts} +0 -0
@@ -0,0 +1,124 @@
1
+ # Number 计数器
2
+
3
+ 仅允许输入标准的数字值,可定义范围和步长。
4
+
5
+ ## 基础用法
6
+
7
+ <Demo :source-code="numberBasicCode">
8
+ <template #source>
9
+ <number-basic />
10
+ </template>
11
+ <template #description>
12
+ 使用 v-model 实现双向数据绑定。
13
+ </template>
14
+ </Demo>
15
+
16
+ ## 不同尺寸
17
+
18
+ Number 组件提供三种尺寸。
19
+
20
+ <Demo :source-code="numberSizeCode">
21
+ <template #source>
22
+ <number-size />
23
+ </template>
24
+ <template #description>
25
+ 使用 size 属性改变计数器大小。除了默认大小外,还有另外两个选项: large, small。
26
+ </template>
27
+ </Demo>
28
+
29
+ ## 步长
30
+
31
+ 使用 `step` 属性定义计数器的步长。
32
+
33
+ <Demo :source-code="numberStepCode">
34
+ <template #source>
35
+ <number-step />
36
+ </template>
37
+ <template #description>
38
+ 通过 step 属性设置计数器的步长。
39
+ </template>
40
+ </Demo>
41
+
42
+ ## 严格步长
43
+
44
+ 使用 `step-strictly` 属性确保输入值只能是 step 的倍数。
45
+
46
+ <Demo :source-code="numberStepStrictlyCode">
47
+ <template #source>
48
+ <number-step-strictly />
49
+ </template>
50
+ <template #description>
51
+ 设置 `step-strictly` 属性为 `true` 时,输入值必须是 step 的倍数。
52
+ </template>
53
+ </Demo>
54
+
55
+ ## 禁用
56
+
57
+ 通过 `disabled` 和 `readonly` 属性指定计数器的状态。
58
+
59
+ <Demo :source-code="numberDisabledCode">
60
+ <template #source>
61
+ <number-disabled />
62
+ </template>
63
+ <template #description>
64
+ 通过 disabled 属性指定是否禁用 number 组件,通过 readonly 属性指定是否只读。
65
+ </template>
66
+ </Demo>
67
+
68
+ ## 图标、前后缀
69
+
70
+ 可自定义计数器的前缀、后缀和按钮图标。Number 组件支持多种自定义方式:
71
+
72
+ - **插槽方式**:使用 `prefix` 和 `suffix` 插槽可以插入复杂内容
73
+ - **属性方式**:使用 `prefix`、`suffix`、`decrease-icon`、`increase-icon` 属性可以设置简单内容(支持字符串形式的图标名称)
74
+ - **控制按钮位置**:使用 `controls-position` 属性可以调整按钮位置
75
+
76
+ <Demo :source-code="numberSlotsCode">
77
+ <template #source>
78
+ <number-slots />
79
+ </template>
80
+ <template #description>
81
+ 通过 `prefix` 和 `suffix` 插槽添加前缀/后缀内容,通过 `decrease-icon` 和 `increase-icon` 属性自定义按钮图标。
82
+ </template>
83
+ </Demo>
84
+
85
+ ## 高级用法
86
+
87
+ Number 组件还提供了以下高级功能,满足更多定制化需求:
88
+
89
+ - **精度控制**:使用 `precision` 属性精确控制数值的小数位数
90
+ - **控制按钮**:使用 `controls` 属性控制是否显示增加/减少按钮
91
+ - **文本对齐**:使用 `align` 属性设置输入框内文本的对齐方式
92
+ - **禁用科学计数法**:使用 `disabled-scientific` 属性防止用户输入科学计数法
93
+ - **其他属性**:包括 `placeholder`、`aria-label`、`inputmode`、`value-on-clear` 等
94
+
95
+ <Demo :source-code="numberAdvancedCode">
96
+ <template #source>
97
+ <number-advanced />
98
+ </template>
99
+ <template #description>
100
+ 展示了 `precision`、`controls`、`align`、`disabled-scientific` 等高级属性的用法。
101
+ </template>
102
+ </Demo>
103
+
104
+ ## API
105
+
106
+ <ApiTable :data="numberApi" componentName="number" />
107
+
108
+ <script setup>
109
+ import NumberBasic from '../examples/number/basic.vue'
110
+ import NumberSize from '../examples/number/size.vue'
111
+ import NumberStep from '../examples/number/step.vue'
112
+ import NumberStepStrictly from '../examples/number/step-strictly.vue'
113
+ import NumberDisabled from '../examples/number/disabled.vue'
114
+ import NumberSlots from '../examples/number/slots.vue'
115
+ import NumberAdvanced from '../examples/number/advanced.vue'
116
+ import numberApi from './meta/number'
117
+ import numberBasicCode from '../examples/number/basic.vue?raw'
118
+ import numberSizeCode from '../examples/number/size.vue?raw'
119
+ import numberStepCode from '../examples/number/step.vue?raw'
120
+ import numberStepStrictlyCode from '../examples/number/step-strictly.vue?raw'
121
+ import numberDisabledCode from '../examples/number/disabled.vue?raw'
122
+ import numberSlotsCode from '../examples/number/slots.vue?raw'
123
+ import numberAdvancedCode from '../examples/number/advanced.vue?raw'
124
+ </script>
@@ -0,0 +1,42 @@
1
+ # Page 页面
2
+
3
+ 基于 Schema 的页面渲染组件,通过 JSON 配置动态渲染组件树。
4
+
5
+ ## 基础用法
6
+
7
+ 通过 Schema 配置渲染页面组件。
8
+
9
+ <Demo :source-code="pageBasicCode">
10
+ <template #source>
11
+ <page-basic />
12
+ </template>
13
+ <template #description>
14
+ 通过 `schema` 属性配置组件树,支持嵌套子组件,动态渲染整个页面结构。
15
+ </template>
16
+ </Demo>
17
+
18
+ ## 使用 init 方法初始化
19
+
20
+ 通过组件实例的 `init` 方法动态初始化 Schema。
21
+
22
+ <Demo :source-code="pageInitCode">
23
+ <template #source>
24
+ <page-init />
25
+ </template>
26
+ <template #description>
27
+ 通过 `ref` 获取组件实例,调用 `init` 方法可以动态设置或更新页面的 Schema 配置。
28
+ </template>
29
+ </Demo>
30
+
31
+ ## API
32
+
33
+ <ApiTable :data="pageApi" componentName="page" />
34
+
35
+ <script setup>
36
+ import PageBasic from '../examples/page/basic.vue'
37
+ import PageInit from '../examples/page/init.vue'
38
+ import pageApi from './meta/page'
39
+
40
+ import pageBasicCode from '../examples/page/basic.vue?raw'
41
+ import pageInitCode from '../examples/page/init.vue?raw'
42
+ </script>
@@ -0,0 +1,87 @@
1
+ # Radio 单选框
2
+
3
+ 在一组备选项中进行单选。
4
+
5
+ ## 基础用法
6
+
7
+ 使用 `v-model` 实现双向数据绑定。
8
+
9
+ <Demo :source-code="radioBasicCode">
10
+ <template #source>
11
+ <radio-basic />
12
+ </template>
13
+ <template #description>
14
+ 使用 v-model 实现双向数据绑定。
15
+ </template>
16
+ </Demo>
17
+
18
+ ## 按钮样式
19
+
20
+ 通过 `isButton` 属性可以将单选框设置为按钮样式。
21
+
22
+ <Demo :source-code="radioButtonCode">
23
+ <template #source>
24
+ <radio-button />
25
+ </template>
26
+ <template #description>
27
+ 设置 `isButton` 属性为 `true` 即可显示为按钮样式。
28
+ </template>
29
+ </Demo>
30
+
31
+ ## 颜色标签
32
+
33
+ 通过 `isColor` 属性可以为选项添加颜色标签。
34
+
35
+ <Demo :source-code="radioColorCode">
36
+ <template #source>
37
+ <radio-color />
38
+ </template>
39
+ <template #description>
40
+ 设置 `isColor` 属性为 `true` 即可显示颜色标签。可以通过 `colors` 属性或选项中的 `color` 属性设置颜色。
41
+ </template>
42
+ </Demo>
43
+
44
+ ## 不同尺寸
45
+
46
+ Radio 组件提供三种尺寸。
47
+
48
+ <Demo :source-code="radioSizeCode">
49
+ <template #source>
50
+ <radio-size />
51
+ </template>
52
+ <template #description>
53
+ 使用 `size` 属性配置尺寸,可选值为 `large`、`default` 和 `small`。
54
+ </template>
55
+ </Demo>
56
+
57
+ ## 禁用状态
58
+
59
+ 使用 `readonly` 属性来定义单选框是否被禁用。
60
+
61
+ <Demo :source-code="radioDisabledCode">
62
+ <template #source>
63
+ <radio-disabled />
64
+ </template>
65
+ <template #description>
66
+ 你可以使用 `readonly` 属性来定义单选框是否可用。
67
+ </template>
68
+ </Demo>
69
+
70
+ ## API
71
+
72
+ <ApiTable :data="radioApi" componentName="radio" />
73
+
74
+ <script setup>
75
+ import RadioBasic from '../examples/radio/basic.vue'
76
+ import RadioButton from '../examples/radio/button.vue'
77
+ import RadioColor from '../examples/radio/color.vue'
78
+ import RadioSize from '../examples/radio/size.vue'
79
+ import RadioDisabled from '../examples/radio/disabled.vue'
80
+ import radioApi from './meta/radio'
81
+
82
+ import radioBasicCode from '../examples/radio/basic.vue?raw'
83
+ import radioButtonCode from '../examples/radio/button.vue?raw'
84
+ import radioColorCode from '../examples/radio/color.vue?raw'
85
+ import radioSizeCode from '../examples/radio/size.vue?raw'
86
+ import radioDisabledCode from '../examples/radio/disabled.vue?raw'
87
+ </script>
@@ -0,0 +1,71 @@
1
+ # Rate 评分
2
+
3
+ 评分组件,用于对事物进行等级评价。
4
+
5
+ ## 基础用法
6
+
7
+ 最基础的评分用法。
8
+
9
+ <Demo :source-code="rateBasicCode">
10
+ <template #source>
11
+ <rate-basic />
12
+ </template>
13
+ <template #description>
14
+ 使用 v-model 实现双向绑定。
15
+ </template>
16
+ </Demo>
17
+
18
+ ## 允许半选
19
+
20
+ 可以允许选择半颗星。
21
+
22
+ <Demo :source-code="rateHalfCode">
23
+ <template #source>
24
+ <rate-half />
25
+ </template>
26
+ <template #description>
27
+ 设置 `allow-half` 属性可以实现半选。
28
+ </template>
29
+ </Demo>
30
+
31
+ ## 辅助文字与分数
32
+
33
+ 可以显示辅助文字或当前分数。
34
+
35
+ <Demo :source-code="rateTextCode">
36
+ <template #source>
37
+ <rate-text />
38
+ </template>
39
+ <template #description>
40
+ 使用 `show-text` 显示辅助文字,使用 `show-score` 显示当前分数。
41
+ </template>
42
+ </Demo>
43
+
44
+ ## 只读
45
+
46
+ 只读状态下无法交互。
47
+
48
+ <Demo :source-code="rateReadonlyCode">
49
+ <template #source>
50
+ <rate-readonly />
51
+ </template>
52
+ <template #description>
53
+ 通过 `readonly` 属性指定是否只读。
54
+ </template>
55
+ </Demo>
56
+
57
+ ## API
58
+
59
+ <ApiTable :data="rateApi" componentName="rate" />
60
+
61
+ <script setup>
62
+ import RateBasic from '../examples/rate/basic.vue'
63
+ import RateHalf from '../examples/rate/half.vue'
64
+ import RateText from '../examples/rate/text.vue'
65
+ import RateReadonly from '../examples/rate/readonly.vue'
66
+ import rateApi from './meta/rate'
67
+ import rateBasicCode from '../examples/rate/basic.vue?raw'
68
+ import rateHalfCode from '../examples/rate/half.vue?raw'
69
+ import rateTextCode from '../examples/rate/text.vue?raw'
70
+ import rateReadonlyCode from '../examples/rate/readonly.vue?raw'
71
+ </script>
@@ -0,0 +1,133 @@
1
+ # Select 选择器
2
+
3
+ 当选项过多时,使用下拉菜单展示并选择内容。
4
+
5
+ ## 基础用法
6
+
7
+ <Demo :source-code="selectBasicCode">
8
+ <template #source>
9
+ <select-basic />
10
+ </template>
11
+ <template #description>
12
+ 使用 v-model 实现双向数据绑定。
13
+ </template>
14
+ </Demo>
15
+
16
+ ## 不同尺寸
17
+
18
+ Select 组件提供三种尺寸。
19
+
20
+ <Demo :source-code="selectSizeCode">
21
+ <template #source>
22
+ <select-size />
23
+ </template>
24
+ <template #description>
25
+ 使用 size 属性改变选择器大小。除了默认大小外,还有另外两个选项: large, small。
26
+ </template>
27
+ </Demo>
28
+
29
+ ## 禁用和只读
30
+
31
+ 通过 `disabled` 和 `readonly` 属性指定选择器的状态。
32
+
33
+ <Demo :source-code="selectDisabledCode">
34
+ <template #source>
35
+ <select-disabled />
36
+ </template>
37
+ <template #description>
38
+ 通过 disabled 属性指定是否禁用 select 组件,通过 readonly 属性指定是否只读。
39
+ </template>
40
+ </Demo>
41
+
42
+ ## 可清除
43
+
44
+ 使用 `clearable` 属性即可得到一个可清除的选择器。
45
+
46
+ <Demo :source-code="selectClearableCode">
47
+ <template #source>
48
+ <select-clearable />
49
+ </template>
50
+ <template #description>
51
+ 设置 `clearable` 属性为 `true` 即可显示清除按钮。
52
+ </template>
53
+ </Demo>
54
+
55
+ ## 多选
56
+
57
+ 使用 `multiple` 属性即可启用多选模式。
58
+
59
+ ::: tip 注意
60
+ 在多选模式下,绑定值(v-model)将以逗号分隔的字符串形式返回,例如:`"1,2,3"`。
61
+ :::
62
+
63
+ <Demo :source-code="selectMultipleCode">
64
+ <template #source>
65
+ <select-multiple />
66
+ </template>
67
+ <template #description>
68
+ 设置 `multiple` 属性为 `true` 即可启用多选模式。
69
+ </template>
70
+ </Demo>
71
+
72
+ ## 可搜索
73
+
74
+ 使用 `filterable` 属性即可启用搜索功能。
75
+
76
+ <Demo :source-code="selectFilterableCode">
77
+ <template #source>
78
+ <select-filterable />
79
+ </template>
80
+ <template #description>
81
+ 设置 `filterable` 属性为 `true` 即可启用搜索功能。
82
+ </template>
83
+ </Demo>
84
+
85
+ ## 分组
86
+
87
+ 使用 `is-group` 和 `group-key` 属性即可实现选项分组。
88
+
89
+ <Demo :source-code="selectGroupCode">
90
+ <template #source>
91
+ <select-group />
92
+ </template>
93
+ <template #description>
94
+ 设置 `is-group` 属性为 `true` 并指定 `group-key` 即可实现选项分组。
95
+ </template>
96
+ </Demo>
97
+
98
+ ## 带图标
99
+
100
+ 选项可以包含图标。
101
+
102
+ <Demo :source-code="selectIconCode">
103
+ <template #source>
104
+ <select-icon />
105
+ </template>
106
+ <template #description>
107
+ 在选项数据中添加 `icon` 属性即可显示图标。
108
+ </template>
109
+ </Demo>
110
+
111
+ ## API
112
+
113
+ <ApiTable :data="selectApi" componentName="select" />
114
+
115
+ <script setup>
116
+ import SelectBasic from '../examples/select/basic.vue'
117
+ import SelectSize from '../examples/select/size.vue'
118
+ import SelectDisabled from '../examples/select/disabled.vue'
119
+ import SelectClearable from '../examples/select/clearable.vue'
120
+ import SelectMultiple from '../examples/select/multiple.vue'
121
+ import SelectFilterable from '../examples/select/filterable.vue'
122
+ import SelectGroup from '../examples/select/group.vue'
123
+ import SelectIcon from '../examples/select/icon.vue'
124
+ import selectApi from './meta/select'
125
+ import selectBasicCode from '../examples/select/basic.vue?raw'
126
+ import selectSizeCode from '../examples/select/size.vue?raw'
127
+ import selectDisabledCode from '../examples/select/disabled.vue?raw'
128
+ import selectClearableCode from '../examples/select/clearable.vue?raw'
129
+ import selectMultipleCode from '../examples/select/multiple.vue?raw'
130
+ import selectFilterableCode from '../examples/select/filterable.vue?raw'
131
+ import selectGroupCode from '../examples/select/group.vue?raw'
132
+ import selectIconCode from '../examples/select/icon.vue?raw'
133
+ </script>
@@ -0,0 +1,41 @@
1
+ # SliderCaptcha 滑块验证
2
+
3
+ 通过拖动滑块进行人机验证。
4
+
5
+ ## 基础用法
6
+
7
+ 最简单的滑块验证码使用方式。
8
+
9
+ <Demo :source-code="sliderCaptchaBasicCode">
10
+ <template #source>
11
+ <slider-captcha-basic />
12
+ </template>
13
+ <template #description>
14
+ 使用 v-model 绑定验证状态,可以通过 text 和 success-text 自定义提示文字。
15
+ </template>
16
+ </Demo>
17
+
18
+ ## 自定义样式
19
+
20
+ 可以通过样式属性自定义滑块验证码的外观。
21
+
22
+ <Demo :source-code="sliderCaptchaCustomCode">
23
+ <template #source>
24
+ <slider-captcha-custom />
25
+ </template>
26
+ <template #description>
27
+ 通过 wrapper-style、bar-style、action-style 和 content-style 属性可以自定义组件各部分的样式。
28
+ </template>
29
+ </Demo>
30
+
31
+ ## API
32
+
33
+ <ApiTable :data="sliderCaptchaApi" componentName="slider-captcha" />
34
+
35
+ <script setup>
36
+ import SliderCaptchaBasic from '../examples/slider-captcha/basic.vue'
37
+ import SliderCaptchaCustom from '../examples/slider-captcha/custom.vue'
38
+ import sliderCaptchaApi from './meta/slider-captcha'
39
+ import sliderCaptchaBasicCode from '../examples/slider-captcha/basic.vue?raw'
40
+ import sliderCaptchaCustomCode from '../examples/slider-captcha/custom.vue?raw'
41
+ </script>
@@ -0,0 +1,101 @@
1
+ # Slider 滑块
2
+
3
+ 通过拖动滑块在一个固定区间内进行选择。
4
+
5
+ ## 基础用法
6
+
7
+ 在自定义间距内选择一个数值。
8
+
9
+ <Demo :source-code="sliderBasicCode">
10
+ <template #source>
11
+ <slider-basic />
12
+ </template>
13
+ <template #description>
14
+ 展示了基础用法、间断点、带有输入框以及范围选择。
15
+ </template>
16
+ </Demo>
17
+
18
+ ## 禁用状态
19
+
20
+ 通过设置 `readonly` 属性禁用滑块。
21
+
22
+ <Demo :source-code="sliderDisabledCode">
23
+ <template #source>
24
+ <slider-disabled />
25
+ </template>
26
+ <template #description>
27
+ 禁用状态下滑块不可拖动。
28
+ </template>
29
+ </Demo>
30
+
31
+ ## 自定义提示
32
+
33
+ 可以自定义提示信息的格式或隐藏提示。
34
+
35
+ <Demo :source-code="sliderTooltipCode">
36
+ <template #source>
37
+ <slider-tooltip />
38
+ </template>
39
+ <template #description>
40
+ 使用 `format-tooltip` 自定义提示内容,使用 `show-tooltip` 控制提示的显示。
41
+ </template>
42
+ </Demo>
43
+
44
+ ## 垂直模式
45
+
46
+ 设置 `vertical` 属性为 true 可以启用垂直模式。
47
+
48
+ <Demo :source-code="sliderVerticalCode">
49
+ <template #source>
50
+ <slider-vertical />
51
+ </template>
52
+ <template #description>
53
+ 垂直模式下必须设置高度 `height` 属性。
54
+ </template>
55
+ </Demo>
56
+
57
+ ## 显示标记
58
+
59
+ 使用 `marks` 属性标注关键节点。
60
+
61
+ <Demo :source-code="sliderMarksCode">
62
+ <template #source>
63
+ <slider-marks />
64
+ </template>
65
+ <template #description>
66
+ 通过 `marks` 对象可以在滑块上显示标记,key 为位置,value 为标记内容。
67
+ </template>
68
+ </Demo>
69
+
70
+ ## 不同尺寸
71
+
72
+ Slider 组件提供三种尺寸。
73
+
74
+ <Demo :source-code="sliderSizeCode">
75
+ <template #source>
76
+ <slider-size />
77
+ </template>
78
+ <template #description>
79
+ 通过 `size` 属性设置不同的尺寸:large、default、small。
80
+ </template>
81
+ </Demo>
82
+
83
+ ## API
84
+
85
+ <ApiTable :data="sliderApi" componentName="slider" />
86
+
87
+ <script setup>
88
+ import SliderBasic from '../examples/slider/basic.vue'
89
+ import SliderDisabled from '../examples/slider/disabled.vue'
90
+ import SliderTooltip from '../examples/slider/tooltip.vue'
91
+ import SliderVertical from '../examples/slider/vertical.vue'
92
+ import SliderMarks from '../examples/slider/marks.vue'
93
+ import SliderSize from '../examples/slider/size.vue'
94
+ import sliderApi from './meta/slider'
95
+ import sliderBasicCode from '../examples/slider/basic.vue?raw'
96
+ import sliderDisabledCode from '../examples/slider/disabled.vue?raw'
97
+ import sliderTooltipCode from '../examples/slider/tooltip.vue?raw'
98
+ import sliderVerticalCode from '../examples/slider/vertical.vue?raw'
99
+ import sliderMarksCode from '../examples/slider/marks.vue?raw'
100
+ import sliderSizeCode from '../examples/slider/size.vue?raw'
101
+ </script>
@@ -0,0 +1,90 @@
1
+ # Switch 开关
2
+
3
+ 在两种状态之间切换。
4
+
5
+ ## 基础用法
6
+
7
+ 绑定 v-model 到一个 Boolean 类型的变量。
8
+
9
+ <Demo :source-code="basicCode">
10
+ <template #source>
11
+ <basic />
12
+ </template>
13
+ <template #description>
14
+ 最基本的用法。
15
+ </template>
16
+ </Demo>
17
+
18
+ ## 尺寸
19
+
20
+ 提供三种不同尺寸。
21
+
22
+ <Demo :source-code="sizeCode">
23
+ <template #source>
24
+ <size />
25
+ </template>
26
+ <template #description>
27
+ 通过 `size` 属性设置尺寸,可选值为 `large`、`default`、`small`。
28
+ </template>
29
+ </Demo>
30
+
31
+ ## 文字描述
32
+
33
+ 你可以添加 `active-text` 和 `inactive-text` 属性来显示文字描述。
34
+
35
+ <Demo :source-code="textCode">
36
+ <template #source>
37
+ <text />
38
+ </template>
39
+ <template #description>
40
+ 使用 `active-text` 和 `inactive-text` 属性来显示开关状态的文字描述。
41
+ </template>
42
+ </Demo>
43
+
44
+ ## 禁用状态
45
+
46
+ 设置 `disabled` 属性来禁用开关。
47
+
48
+ <Demo :source-code="disabledCode">
49
+ <template #source>
50
+ <disabled />
51
+ </template>
52
+ <template #description>
53
+ 使用 `disabled` 属性来设置开关为禁用状态。
54
+ </template>
55
+ </Demo>
56
+
57
+ ## 加载状态
58
+
59
+ 设置 `loading` 属性来显示加载状态。
60
+
61
+ <Demo :source-code="loadingCode">
62
+ <template #source>
63
+ <loading />
64
+ </template>
65
+ <template #description>
66
+ 使用 `loading` 属性来显示开关的加载状态。
67
+ </template>
68
+ </Demo>
69
+
70
+ ## API
71
+
72
+ ### 属性
73
+
74
+ <ApiTable :data="switchApi" componentName="switch" />
75
+
76
+ <script setup>
77
+ import basicCode from '../examples/switch/basic.vue?raw'
78
+ import sizeCode from '../examples/switch/size.vue?raw'
79
+ import textCode from '../examples/switch/text.vue?raw'
80
+ import disabledCode from '../examples/switch/disabled.vue?raw'
81
+ import loadingCode from '../examples/switch/loading.vue?raw'
82
+
83
+ import Basic from '../examples/switch/basic.vue'
84
+ import Size from '../examples/switch/size.vue'
85
+ import Text from '../examples/switch/text.vue'
86
+ import Disabled from '../examples/switch/disabled.vue'
87
+ import Loading from '../examples/switch/loading.vue'
88
+
89
+ import switchApi from '../components/meta/switch'
90
+ </script>