@a2simcode/ui 0.0.46 → 0.0.48

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 (335) 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 -0
  4. package/dist/simcode-ui.es.js +222 -195
  5. package/dist/simcode-ui.umd.js +2 -2
  6. package/dist/stats.html +1 -1
  7. package/docs/components/autocomplete.md +89 -0
  8. package/docs/components/barcode.md +101 -0
  9. package/docs/components/button-select.md +24 -0
  10. package/docs/components/button.md +117 -0
  11. package/docs/components/buttons.md +119 -0
  12. package/docs/components/cascader-select.md +114 -0
  13. package/docs/components/checkbox.md +114 -0
  14. package/docs/components/code-mirror.md +85 -0
  15. package/docs/components/collapse.md +26 -0
  16. package/docs/components/comp.md +71 -0
  17. package/docs/components/count-up.md +24 -0
  18. package/docs/components/count.md +24 -0
  19. package/docs/components/data-panel.md +24 -0
  20. package/docs/components/dialog-full.md +112 -0
  21. package/docs/components/dialog.md +127 -0
  22. package/docs/components/divider.md +24 -0
  23. package/docs/components/drawer.md +127 -0
  24. package/docs/components/dynamic-layer.md +118 -0
  25. package/docs/components/echarts.md +72 -0
  26. package/docs/components/editor.md +24 -0
  27. package/docs/components/form.md +27 -0
  28. package/docs/components/guid.md +39 -0
  29. package/docs/components/hpanel.md +24 -0
  30. package/docs/components/icon.md +56 -0
  31. package/docs/components/input-button.md +24 -0
  32. package/docs/components/input-code.md +24 -0
  33. package/docs/components/input-color.md +114 -0
  34. package/docs/components/input-layer.md +26 -0
  35. package/docs/components/input-rows.md +370 -0
  36. package/docs/components/input-tag.md +50 -0
  37. package/docs/components/input.md +129 -0
  38. package/docs/components/layer-form.md +61 -0
  39. package/docs/components/layer.md +127 -0
  40. package/docs/components/layout.md +132 -0
  41. package/docs/components/map.md +24 -0
  42. package/docs/components/menu.md +121 -0
  43. package/docs/components/meta/autocomplete.ts +335 -0
  44. package/docs/components/meta/barcode.ts +216 -0
  45. package/docs/components/meta/button-select.ts +94 -0
  46. package/docs/components/meta/button.ts +123 -0
  47. package/docs/components/meta/buttons.ts +56 -0
  48. package/docs/components/meta/cascader-select.ts +328 -0
  49. package/docs/components/meta/checkbox.ts +194 -0
  50. package/docs/components/meta/code-mirror.ts +108 -0
  51. package/docs/components/meta/collapse.ts +52 -0
  52. package/docs/components/meta/comp.ts +224 -0
  53. package/docs/components/meta/count-up.ts +126 -0
  54. package/docs/components/meta/count.ts +113 -0
  55. package/docs/components/meta/data-panel.ts +34 -0
  56. package/docs/components/meta/dialog-full.ts +133 -0
  57. package/docs/components/meta/dialog.ts +175 -0
  58. package/docs/components/meta/divider.ts +66 -0
  59. package/docs/components/meta/drawer.ts +158 -0
  60. package/docs/components/meta/dynamic-layer.ts +99 -0
  61. package/docs/components/meta/echarts.ts +64 -0
  62. package/docs/components/meta/editor.ts +67 -0
  63. package/docs/components/meta/form-item.ts +50 -0
  64. package/docs/components/meta/form.ts +160 -0
  65. package/docs/components/meta/guid.ts +42 -0
  66. package/docs/components/meta/hpanel.ts +20 -0
  67. package/docs/components/meta/icon.ts +68 -0
  68. package/docs/components/meta/input-button.ts +165 -0
  69. package/docs/components/meta/input-code.ts +151 -0
  70. package/docs/components/meta/input-color.ts +243 -0
  71. package/docs/components/meta/input-layer.ts +336 -0
  72. package/docs/components/meta/input-rows.ts +113 -0
  73. package/docs/components/meta/input-tag.ts +112 -0
  74. package/docs/components/meta/input.ts +411 -0
  75. package/docs/components/meta/layer-form.ts +56 -0
  76. package/docs/components/meta/layer.ts +122 -0
  77. package/docs/components/meta/layout.ts +101 -0
  78. package/docs/components/meta/map.ts +68 -0
  79. package/docs/components/meta/menu.ts +43 -0
  80. package/docs/components/meta/number.ts +296 -0
  81. package/docs/components/meta/page.ts +67 -0
  82. package/docs/components/meta/radio.ts +55 -0
  83. package/docs/components/meta/rate.ts +124 -0
  84. package/docs/components/meta/select.ts +279 -0
  85. package/docs/components/meta/slider-captcha.ts +70 -0
  86. package/docs/components/meta/slider.ts +270 -0
  87. package/docs/components/meta/switch.ts +272 -0
  88. package/docs/components/meta/table-panel.ts +154 -0
  89. package/docs/components/meta/table.ts +328 -0
  90. package/docs/components/meta/tabs.ts +136 -0
  91. package/docs/components/meta/title.ts +80 -0
  92. package/docs/components/meta/tree.ts +242 -0
  93. package/docs/components/meta/upload.ts +186 -0
  94. package/docs/components/meta/workflow-viewer.ts +55 -0
  95. package/docs/components/meta/workflow.ts +113 -0
  96. package/docs/components/number.md +124 -0
  97. package/docs/components/page.md +42 -0
  98. package/docs/components/radio.md +87 -0
  99. package/docs/components/rate.md +71 -0
  100. package/docs/components/select.md +133 -0
  101. package/docs/components/slider-captcha.md +41 -0
  102. package/docs/components/slider.md +101 -0
  103. package/docs/components/switch.md +90 -0
  104. package/docs/components/table-panel.md +199 -0
  105. package/docs/components/table.md +202 -0
  106. package/docs/components/tabs.md +26 -0
  107. package/docs/components/title.md +24 -0
  108. package/docs/components/tree.md +207 -0
  109. package/docs/components/upload.md +117 -0
  110. package/docs/components/workflow-viewer.md +21 -0
  111. package/docs/components/workflow.md +21 -0
  112. package/docs/examples/autocomplete/advanced.vue +35 -0
  113. package/docs/examples/autocomplete/basic.vue +32 -0
  114. package/docs/examples/autocomplete/clearable.vue +33 -0
  115. package/docs/examples/autocomplete/custom-template.vue +49 -0
  116. package/docs/examples/autocomplete/disabled.vue +33 -0
  117. package/docs/examples/autocomplete/icon.vue +37 -0
  118. package/docs/examples/barcode/all-types.vue +380 -0
  119. package/docs/examples/barcode/basic.vue +14 -0
  120. package/docs/examples/barcode/props-appearance.vue +243 -0
  121. package/docs/examples/barcode/props-geometry.vue +143 -0
  122. package/docs/examples/barcode/props-logic.vue +216 -0
  123. package/docs/examples/barcode/props-symbology.vue +199 -0
  124. package/docs/examples/barcode/props-text.vue +268 -0
  125. package/docs/examples/button/basic.vue +7 -0
  126. package/docs/examples/button/danger-ghost.vue +17 -0
  127. package/docs/examples/button/disabled.vue +10 -0
  128. package/docs/examples/button/loading.vue +6 -0
  129. package/docs/examples/button/shape.vue +7 -0
  130. package/docs/examples/button/size.vue +14 -0
  131. package/docs/examples/button/type.vue +9 -0
  132. package/docs/examples/button-select/basic.vue +19 -0
  133. package/docs/examples/buttons/basic.vue +45 -0
  134. package/docs/examples/buttons/disabled.vue +36 -0
  135. package/docs/examples/buttons/dropdown.vue +63 -0
  136. package/docs/examples/buttons/group.vue +52 -0
  137. package/docs/examples/buttons/link.vue +47 -0
  138. package/docs/examples/buttons/popup.vue +39 -0
  139. package/docs/examples/buttons/size.vue +45 -0
  140. package/docs/examples/cascader-select/basic.vue +28 -0
  141. package/docs/examples/cascader-select/clearable.vue +34 -0
  142. package/docs/examples/cascader-select/disabled.vue +43 -0
  143. package/docs/examples/cascader-select/filterable.vue +37 -0
  144. package/docs/examples/cascader-select/methods.vue +84 -0
  145. package/docs/examples/cascader-select/multiple.vue +38 -0
  146. package/docs/examples/cascader-select/slot.vue +45 -0
  147. package/docs/examples/checkbox/basic.vue +18 -0
  148. package/docs/examples/checkbox/button.vue +19 -0
  149. package/docs/examples/checkbox/color.vue +25 -0
  150. package/docs/examples/checkbox/disabled.vue +17 -0
  151. package/docs/examples/checkbox/min-max.vue +20 -0
  152. package/docs/examples/checkbox/mixed.vue +56 -0
  153. package/docs/examples/checkbox/size.vue +28 -0
  154. package/docs/examples/code-mirror/basic.vue +11 -0
  155. package/docs/examples/code-mirror/events.vue +42 -0
  156. package/docs/examples/code-mirror/height.vue +25 -0
  157. package/docs/examples/code-mirror/mode.vue +33 -0
  158. package/docs/examples/code-mirror/readonly.vue +14 -0
  159. package/docs/examples/collapse/basic.vue +82 -0
  160. package/docs/examples/comp/basic.vue +7 -0
  161. package/docs/examples/comp/collapse.vue +38 -0
  162. package/docs/examples/comp/tabs.vue +38 -0
  163. package/docs/examples/count/basic.vue +54 -0
  164. package/docs/examples/count-up/basic.vue +89 -0
  165. package/docs/examples/data-panel/basic.vue +110 -0
  166. package/docs/examples/dialog/basic.vue +36 -0
  167. package/docs/examples/dialog/custom-buttons.vue +44 -0
  168. package/docs/examples/dialog/fullscreen.vue +23 -0
  169. package/docs/examples/dialog/no-mask.vue +17 -0
  170. package/docs/examples/dialog/size.vue +44 -0
  171. package/docs/examples/dialog/steps.vue +57 -0
  172. package/docs/examples/dialog-full/basic.vue +29 -0
  173. package/docs/examples/dialog-full/custom-buttons.vue +45 -0
  174. package/docs/examples/dialog-full/no-buttons.vue +18 -0
  175. package/docs/examples/dialog-full/no-header.vue +27 -0
  176. package/docs/examples/dialog-full/steps.vue +71 -0
  177. package/docs/examples/divider/basic.vue +52 -0
  178. package/docs/examples/drawer/basic.vue +35 -0
  179. package/docs/examples/drawer/custom-buttons.vue +34 -0
  180. package/docs/examples/drawer/direction.vue +47 -0
  181. package/docs/examples/drawer/mask.vue +36 -0
  182. package/docs/examples/drawer/no-buttons.vue +20 -0
  183. package/docs/examples/drawer/size.vue +28 -0
  184. package/docs/examples/dynamic-layer/basic.vue +33 -0
  185. package/docs/examples/dynamic-layer/custom-buttons.vue +43 -0
  186. package/docs/examples/dynamic-layer/form.vue +73 -0
  187. package/docs/examples/dynamic-layer/steps.vue +52 -0
  188. package/docs/examples/dynamic-layer/types.vue +40 -0
  189. package/docs/examples/echarts/basic.vue +31 -0
  190. package/docs/examples/echarts/dynamic.vue +43 -0
  191. package/docs/examples/echarts/line.vue +46 -0
  192. package/docs/examples/echarts/pie.vue +44 -0
  193. package/docs/examples/editor/basic.vue +15 -0
  194. package/docs/examples/form/basic.vue +224 -0
  195. package/docs/examples/guid/basic.vue +10 -0
  196. package/docs/examples/guid/size.vue +13 -0
  197. package/docs/examples/hpanel/basic.vue +79 -0
  198. package/docs/examples/icon/basic.vue +9 -0
  199. package/docs/examples/icon/rotate-flip.vue +9 -0
  200. package/docs/examples/icon/size.vue +7 -0
  201. package/docs/examples/input/basic.vue +10 -0
  202. package/docs/examples/input/clearable.vue +12 -0
  203. package/docs/examples/input/disabled.vue +6 -0
  204. package/docs/examples/input/icon.vue +23 -0
  205. package/docs/examples/input/password.vue +18 -0
  206. package/docs/examples/input/size.vue +13 -0
  207. package/docs/examples/input/textarea.vue +25 -0
  208. package/docs/examples/input/word-limit.vue +28 -0
  209. package/docs/examples/input-button/basic.vue +33 -0
  210. package/docs/examples/input-code/basic.vue +29 -0
  211. package/docs/examples/input-color/basic.vue +10 -0
  212. package/docs/examples/input-color/disabled.vue +13 -0
  213. package/docs/examples/input-color/format.vue +17 -0
  214. package/docs/examples/input-color/no-alpha.vue +13 -0
  215. package/docs/examples/input-color/only-button.vue +15 -0
  216. package/docs/examples/input-color/predefine.vue +31 -0
  217. package/docs/examples/input-color/size.vue +15 -0
  218. package/docs/examples/input-layer/basic.vue +69 -0
  219. package/docs/examples/input-rows/basic.vue +73 -0
  220. package/docs/examples/input-rows/drag.vue +48 -0
  221. package/docs/examples/input-rows/layer-form.vue +85 -0
  222. package/docs/examples/input-rows/nested.vue +91 -0
  223. package/docs/examples/input-tag/basic.vue +27 -0
  224. package/docs/examples/input-tag/colors.vue +23 -0
  225. package/docs/examples/input-tag/readonly.vue +17 -0
  226. package/docs/examples/layer/basic.vue +43 -0
  227. package/docs/examples/layer/custom-buttons.vue +61 -0
  228. package/docs/examples/layer/drawer.vue +37 -0
  229. package/docs/examples/layer/full.vue +38 -0
  230. package/docs/examples/layer/modal.vue +34 -0
  231. package/docs/examples/layer/steps.vue +46 -0
  232. package/docs/examples/layer-form/basic.vue +76 -0
  233. package/docs/examples/layer-form/config.vue +82 -0
  234. package/docs/examples/layer-form/size.vue +72 -0
  235. package/docs/examples/layout/basic.vue +36 -0
  236. package/docs/examples/layout/custom-size.vue +50 -0
  237. package/docs/examples/layout/disable-move.vue +37 -0
  238. package/docs/examples/layout/hide-mid-when-narrow.vue +96 -0
  239. package/docs/examples/layout/min-size.vue +73 -0
  240. package/docs/examples/layout/percent-size.vue +80 -0
  241. package/docs/examples/layout/simple.vue +22 -0
  242. package/docs/examples/layout/top-side.vue +34 -0
  243. package/docs/examples/map/basic.vue +22 -0
  244. package/docs/examples/menu/basic.vue +58 -0
  245. package/docs/examples/menu/collapsed.vue +49 -0
  246. package/docs/examples/menu/horizontal.vue +44 -0
  247. package/docs/examples/menu/selection-test.vue +104 -0
  248. package/docs/examples/menu/theme.vue +46 -0
  249. package/docs/examples/menu/vertical.vue +46 -0
  250. package/docs/examples/number/advanced.vue +143 -0
  251. package/docs/examples/number/basic.vue +63 -0
  252. package/docs/examples/number/disabled.vue +49 -0
  253. package/docs/examples/number/size.vue +42 -0
  254. package/docs/examples/number/slots.vue +123 -0
  255. package/docs/examples/number/step-strictly.vue +41 -0
  256. package/docs/examples/number/step.vue +47 -0
  257. package/docs/examples/page/basic.vue +41 -0
  258. package/docs/examples/page/init.vue +87 -0
  259. package/docs/examples/radio/basic.vue +17 -0
  260. package/docs/examples/radio/button.vue +17 -0
  261. package/docs/examples/radio/color.vue +18 -0
  262. package/docs/examples/radio/disabled.vue +17 -0
  263. package/docs/examples/radio/size.vue +29 -0
  264. package/docs/examples/rate/basic.vue +24 -0
  265. package/docs/examples/rate/half.vue +24 -0
  266. package/docs/examples/rate/readonly.vue +11 -0
  267. package/docs/examples/rate/text.vue +32 -0
  268. package/docs/examples/select/basic.vue +16 -0
  269. package/docs/examples/select/clearable.vue +22 -0
  270. package/docs/examples/select/disabled.vue +31 -0
  271. package/docs/examples/select/filterable.vue +24 -0
  272. package/docs/examples/select/group.vue +23 -0
  273. package/docs/examples/select/icon.vue +16 -0
  274. package/docs/examples/select/multiple.vue +18 -0
  275. package/docs/examples/select/size.vue +39 -0
  276. package/docs/examples/slider/basic.vue +42 -0
  277. package/docs/examples/slider/disabled.vue +17 -0
  278. package/docs/examples/slider/marks.vue +30 -0
  279. package/docs/examples/slider/size.vue +37 -0
  280. package/docs/examples/slider/tooltip.vue +36 -0
  281. package/docs/examples/slider/vertical.vue +26 -0
  282. package/docs/examples/slider-captcha/basic.vue +44 -0
  283. package/docs/examples/slider-captcha/custom.vue +48 -0
  284. package/docs/examples/switch/basic.vue +16 -0
  285. package/docs/examples/switch/disabled.vue +13 -0
  286. package/docs/examples/switch/loading.vue +13 -0
  287. package/docs/examples/switch/size.vue +15 -0
  288. package/docs/examples/switch/text.vue +13 -0
  289. package/docs/examples/table/actions.vue +116 -0
  290. package/docs/examples/table/add-row.vue +103 -0
  291. package/docs/examples/table/basic.vue +168 -0
  292. package/docs/examples/table/editable.vue +261 -0
  293. package/docs/examples/table/field-selection.vue +87 -0
  294. package/docs/examples/table/frozen-column.vue +140 -0
  295. package/docs/examples/table/height-mode.vue +99 -0
  296. package/docs/examples/table/multiple.vue +178 -0
  297. package/docs/examples/table/pagination.vue +151 -0
  298. package/docs/examples/table/single-selection.vue +64 -0
  299. package/docs/examples/table/tree-column.vue +119 -0
  300. package/docs/examples/table/tree-data.vue +141 -0
  301. package/docs/examples/table-panel/basic.vue +228 -0
  302. package/docs/examples/table-panel/batch-operations.vue +285 -0
  303. package/docs/examples/table-panel/filter.vue +209 -0
  304. package/docs/examples/table-panel/multiple-selection.vue +243 -0
  305. package/docs/examples/table-panel/pagination.vue +133 -0
  306. package/docs/examples/tabs/basic.vue +98 -0
  307. package/docs/examples/title/basic.vue +80 -0
  308. package/docs/examples/tree/accordion.vue +46 -0
  309. package/docs/examples/tree/basic.vue +50 -0
  310. package/docs/examples/tree/buttons.vue +53 -0
  311. package/docs/examples/tree/checkable.vue +52 -0
  312. package/docs/examples/tree/custom-keys.vue +39 -0
  313. package/docs/examples/tree/default-expanded.vue +52 -0
  314. package/docs/examples/tree/draggable.vue +29 -0
  315. package/docs/examples/tree/expand-on-click.vue +39 -0
  316. package/docs/examples/tree/flat-data.vue +20 -0
  317. package/docs/examples/tree/icon.vue +40 -0
  318. package/docs/examples/tree/load-data.vue +37 -0
  319. package/docs/examples/tree/methods.vue +74 -0
  320. package/docs/examples/tree/theme.vue +33 -0
  321. package/docs/examples/upload/accept.vue +31 -0
  322. package/docs/examples/upload/basic.vue +12 -0
  323. package/docs/examples/upload/drag.vue +11 -0
  324. package/docs/examples/upload/image.vue +17 -0
  325. package/docs/examples/upload/limit.vue +20 -0
  326. package/docs/examples/upload/multiple.vue +17 -0
  327. package/docs/examples/upload/readonly.vue +17 -0
  328. package/docs/examples/utils/cipher.vue +160 -0
  329. package/docs/examples/utils/common.vue +153 -0
  330. package/docs/examples/utils/date.vue +56 -0
  331. package/docs/examples/utils/dom.vue +52 -0
  332. package/docs/examples/utils/is.vue +70 -0
  333. package/docs/examples/workflow/basic.vue +265 -0
  334. package/docs/examples/workflow-viewer/basic.vue +248 -0
  335. package/package.json +6 -2
@@ -0,0 +1,85 @@
1
+ # CodeMirror 代码编辑器
2
+
3
+ 强大的代码编辑器组件,支持多种编程语言的语法高亮和代码折叠。
4
+
5
+ ## 基础用法
6
+
7
+ <Demo :source-code="codeMirrorBasicCode">
8
+ <template #source>
9
+ <code-mirror-basic />
10
+ </template>
11
+ <template #description>
12
+ 使用 value 绑定,通过 mode 属性指定语言模式。
13
+ </template>
14
+ </Demo>
15
+
16
+ ## 只读模式
17
+
18
+ 通过 `readonly` 属性将编辑器设置为只读状态。
19
+
20
+ <Demo :source-code="codeMirrorReadonlyCode">
21
+ <template #source>
22
+ <code-mirror-readonly />
23
+ </template>
24
+ <template #description>
25
+ 设置 `readonly` 属性为 `true` 即可启用只读模式,用户无法编辑内容。
26
+ </template>
27
+ </Demo>
28
+
29
+ ## 语言模式切换
30
+
31
+ 支持多种编程语言的语法高亮。
32
+
33
+ <Demo :source-code="codeMirrorModeCode">
34
+ <template #source>
35
+ <code-mirror-mode />
36
+ </template>
37
+ <template #description>
38
+ 通过 `mode` 属性指定语言模式,如 `application/javascript`、`text/x-sql` 等。
39
+ </template>
40
+ </Demo>
41
+
42
+ ## 自定义高度
43
+
44
+ 使用 `height` 属性自定义编辑器高度。
45
+
46
+ <Demo :source-code="codeMirrorHeightCode">
47
+ <template #source>
48
+ <code-mirror-height />
49
+ </template>
50
+ <template #description>
51
+ 通过 `height` 属性设置编辑器的高度(单位:像素)。
52
+ </template>
53
+ </Demo>
54
+
55
+ ## 事件监听
56
+
57
+ 监听代码变化事件并执行相应操作。
58
+
59
+ <Demo :source-code="codeMirrorEventsCode">
60
+ <template #source>
61
+ <code-mirror-events />
62
+ </template>
63
+ <template #description>
64
+ 通过 `@change` 事件监听代码内容的变化,获取实时更新的代码值。
65
+ </template>
66
+ </Demo>
67
+
68
+ ## API
69
+
70
+ <ApiTable :data="codeMirrorApi" componentName="code-mirror" />
71
+
72
+ <script setup>
73
+ import CodeMirrorBasic from '../examples/code-mirror/basic.vue'
74
+ import CodeMirrorReadonly from '../examples/code-mirror/readonly.vue'
75
+ import CodeMirrorMode from '../examples/code-mirror/mode.vue'
76
+ import CodeMirrorHeight from '../examples/code-mirror/height.vue'
77
+ import CodeMirrorEvents from '../examples/code-mirror/events.vue'
78
+ import codeMirrorApi from './meta/code-mirror'
79
+
80
+ import codeMirrorBasicCode from '../examples/code-mirror/basic.vue?raw'
81
+ import codeMirrorReadonlyCode from '../examples/code-mirror/readonly.vue?raw'
82
+ import codeMirrorModeCode from '../examples/code-mirror/mode.vue?raw'
83
+ import codeMirrorHeightCode from '../examples/code-mirror/height.vue?raw'
84
+ import codeMirrorEventsCode from '../examples/code-mirror/events.vue?raw'
85
+ </script>
@@ -0,0 +1,26 @@
1
+ # Collapse 折叠面板
2
+
3
+ 通过折叠面板收纳内容区域。
4
+
5
+ ## 基础用法
6
+
7
+ 可以折叠/展开的内容区域。
8
+
9
+ <Demo :source-code="collapseBasicCode">
10
+ <template #source>
11
+ <collapse-basic />
12
+ </template>
13
+ <template #description>
14
+ 通过 `v-model` 绑定当前激活的面板,使用 `el-collapse-item` 定义面板内容。支持 `accordion` 属性开启手风琴模式。
15
+ </template>
16
+ </Demo>
17
+
18
+ ## API
19
+
20
+ <ApiTable :data="collapseApi" componentName="collapse" />
21
+
22
+ <script setup>
23
+ import CollapseBasic from '../examples/collapse/basic.vue'
24
+ import collapseApi from './meta/collapse'
25
+ import collapseBasicCode from '../examples/collapse/basic.vue?raw'
26
+ </script>
@@ -0,0 +1,71 @@
1
+ # Comp 动态组件
2
+
3
+ `j-comp` 是一个通用的动态组件渲染器,它可以根据配置渲染不同类型的组件,并支持递归渲染子组件。
4
+
5
+ ## 基础用法
6
+
7
+ 通过 `type` 属性指定组件类型,`config` 属性传递组件配置。
8
+
9
+ <Demo :source-code="basicCode">
10
+ <template #source>
11
+ <basic />
12
+ </template>
13
+ <template #description>
14
+ 使用 `j-comp` 渲染一个简单的按钮组件。
15
+ </template>
16
+ </Demo>
17
+
18
+ ## Tabs 示例
19
+
20
+ 当 `type` 为 `j-tabs` 时:
21
+
22
+ 1. 子组件会自动添加 `name` 属性(`_tab` + index)。
23
+ 2. 组件会自动开启输入模式(`v-model` 生效)。
24
+ 3. 默认值规则:
25
+ - 优先使用 `config.defaultValue`。
26
+ - 其次查找子组件中配置了 `active: true` 的项,使用其对应的 `_tab` + index。
27
+ - 默认值为 `_tab0`。
28
+
29
+ <Demo :source-code="tabsCode">
30
+ <template #source>
31
+ <tabs />
32
+ </template>
33
+ <template #description>
34
+ 使用 `j-comp` 渲染 `j-tabs` 组件,子组件会自动获得 `name` 属性。
35
+ </template>
36
+ </Demo>
37
+
38
+ ## Collapse 示例
39
+
40
+ 当 `type` 为 `j-collapse` 时:
41
+
42
+ 1. 子组件会自动添加 `name` 属性(`_collapse` + index)。
43
+ 2. 组件会自动开启输入模式(`v-model` 生效)。
44
+ 3. 默认值规则:
45
+ - 优先使用 `config.defaultValue`。
46
+ - 其次查找子组件中配置了 `active: true` 的项,使用其对应的 `_collapse` + index。
47
+ - 默认值为 `[]`(非手风琴模式)或 `''`(手风琴模式)。
48
+
49
+ <Demo :source-code="collapseCode">
50
+ <template #source>
51
+ <collapse />
52
+ </template>
53
+ <template #description>
54
+ 使用 `j-comp` 渲染 `j-collapse` 组件,子组件会自动获得 `name` 属性。
55
+ </template>
56
+ </Demo>
57
+
58
+ ## API
59
+
60
+ <ApiTable :data="compApi" componentName="comp" />
61
+
62
+ <script setup>
63
+ import Basic from '../examples/comp/basic.vue'
64
+ import Tabs from '../examples/comp/tabs.vue'
65
+ import Collapse from '../examples/comp/collapse.vue'
66
+ import compApi from './meta/comp'
67
+
68
+ import basicCode from '../examples/comp/basic.vue?raw'
69
+ import tabsCode from '../examples/comp/tabs.vue?raw'
70
+ import collapseCode from '../examples/comp/collapse.vue?raw'
71
+ </script>
@@ -0,0 +1,24 @@
1
+ # CountUp 数字滚动动画组件
2
+
3
+ 使用数字滚动效果展示数值的变化,常用于数据统计展示和数值动画效果。
4
+
5
+ ## 基础用法
6
+
7
+ <Demo :source-code="countUpBasicCode">
8
+ <template #source>
9
+ <count-up-basic />
10
+ </template>
11
+ <template #description>
12
+ 通过 `end-value` 传入要显示的最终值。支持自定义动画时长、小数位数、起始值等功能。
13
+ </template>
14
+ </Demo>
15
+
16
+ ## API
17
+
18
+ <ApiTable :data="countUpApi" componentName="count-up" />
19
+
20
+ <script setup>
21
+ import CountUpBasic from '../examples/count-up/basic.vue'
22
+ import countUpApi from './meta/count-up'
23
+ import countUpBasicCode from '../examples/count-up/basic.vue?raw'
24
+ </script>
@@ -0,0 +1,24 @@
1
+ # Count 计算组件
2
+
3
+ 用于根据公式自动计算数值。
4
+
5
+ ## 基础用法
6
+
7
+ <Demo :source-code="countBasicCode">
8
+ <template #source>
9
+ <count-basic />
10
+ </template>
11
+ <template #description>
12
+ 通过 `format-json` 传入计算公式。支持千分位分隔、大写转换、小数精度控制等功能。
13
+ </template>
14
+ </Demo>
15
+
16
+ ## API
17
+
18
+ <ApiTable :data="countApi" componentName="count" />
19
+
20
+ <script setup>
21
+ import CountBasic from '../examples/count/basic.vue'
22
+ import countApi from './meta/count'
23
+ import countBasicCode from '../examples/count/basic.vue?raw'
24
+ </script>
@@ -0,0 +1,24 @@
1
+ # DataPanel 数据面板组件
2
+
3
+ 用于展示和组织数据内容的面板容器组件,提供标题、插槽等功能支持。
4
+
5
+ ## 基础用法
6
+
7
+ <Demo :source-code="dataPanelBasicCode">
8
+ <template #source>
9
+ <data-panel-basic />
10
+ </template>
11
+ <template #description>
12
+ 通过 `title` 属性设置面板标题。支持 `titleRight` 插槽在标题右侧添加额外内容。
13
+ </template>
14
+ </Demo>
15
+
16
+ ## API
17
+
18
+ <ApiTable :data="dataPanelApi" componentName="data-panel" />
19
+
20
+ <script setup>
21
+ import DataPanelBasic from '../examples/data-panel/basic.vue'
22
+ import dataPanelApi from './meta/data-panel'
23
+ import dataPanelBasicCode from '../examples/data-panel/basic.vue?raw'
24
+ </script>
@@ -0,0 +1,112 @@
1
+ # DialogFull 全屏弹窗
2
+
3
+ 全屏模态对话框,在整个屏幕中显示内容,适用于复杂表单或大量内容展示的场景。
4
+
5
+ ## 基础用法
6
+
7
+ 最简单的用法。
8
+
9
+ <Demo :source-code="dialogFullBasicCode">
10
+ <template #source>
11
+ <dialog-full-basic />
12
+ </template>
13
+ <template #description>
14
+ 基础的全屏弹窗,占据整个屏幕。使用 `v-model:visible` 控制显示隐藏。
15
+ </template>
16
+ </Demo>
17
+
18
+ ## 无按钮
19
+
20
+ 设置 `hasBtns` 为 `false` 可以隐藏所有操作按钮。
21
+
22
+ <Demo :source-code="dialogFullNoButtonsCode">
23
+ <template #source>
24
+ <dialog-full-no-buttons />
25
+ </template>
26
+ <template #description>
27
+ 隐藏所有操作按钮,适用于只展示内容不需要操作的场景。
28
+ </template>
29
+ </Demo>
30
+
31
+ ## 无表头
32
+
33
+ 通过隐藏按钮和关闭按钮可以实现无表头效果。
34
+
35
+ <Demo :source-code="dialogFullNoHeaderCode">
36
+ <template #source>
37
+ <dialog-full-no-header />
38
+ </template>
39
+ <template #description>
40
+ 设置 `hasBtns` 和 `showCloseBtn` 为 `false` 可以隐藏表头区域,适用于需要完全自定义布局的场景。
41
+ </template>
42
+ </Demo>
43
+
44
+ ## 自定义按钮
45
+
46
+ 通过 `buttons` 属性可以自定义顶部操作按钮。
47
+
48
+ <Demo :source-code="dialogFullCustomButtonsCode">
49
+ <template #source>
50
+ <dialog-full-custom-buttons />
51
+ </template>
52
+ <template #description>
53
+ 使用 `buttons` 属性配置自定义按钮,支持设置按钮类型、样式、图标、点击事件等。
54
+ </template>
55
+ </Demo>
56
+
57
+ ## 步骤弹窗
58
+
59
+ 通过 `isStep` 属性可以创建带步骤条的弹窗。
60
+
61
+ <Demo :source-code="dialogFullStepsCode">
62
+ <template #source>
63
+ <dialog-full-steps />
64
+ </template>
65
+ <template #description>
66
+ 适用于分步骤的表单或流程,支持步骤校验。使用 `v-model:stepActive` 控制当前步骤,使用 `validateSteps` 进行步骤校验。
67
+ </template>
68
+ </Demo>
69
+
70
+ ## API
71
+
72
+ ### 属性
73
+
74
+ <ApiTable :data="dialogFullApi" componentName="dialog-full" />
75
+
76
+ ### 事件
77
+
78
+ | 事件名 | 说明 | 回调参数 |
79
+ | ----------------- | ---------------------- | ------------------------------------------------ |
80
+ | update:visible | 弹窗显示状态变化时触发 | `(visible: boolean)` |
81
+ | update:stepActive | 步骤变化时触发 | `(stepActive: number)` |
82
+ | cancel | 点击关闭按钮时触发 | - |
83
+ | ok | 点击确定按钮时触发 | `(showLoading: Function, hideLoading: Function)` |
84
+ | closed | 弹窗关闭动画结束后触发 | - |
85
+
86
+ ### 插槽
87
+
88
+ | 插槽名 | 说明 |
89
+ | ------- | ------------ |
90
+ | default | 弹窗内容区域 |
91
+
92
+ ### 方法
93
+
94
+ | 方法名 | 说明 | 参数 |
95
+ | ----------- | ------------ | ----------------- |
96
+ | showLoading | 显示加载状态 | `(text?: string)` |
97
+ | hideLoading | 隐藏加载状态 | - |
98
+
99
+ <script setup>
100
+ import DialogFullBasic from '../examples/dialog-full/basic.vue'
101
+ import DialogFullNoHeader from '../examples/dialog-full/no-header.vue'
102
+ import DialogFullCustomButtons from '../examples/dialog-full/custom-buttons.vue'
103
+ import DialogFullSteps from '../examples/dialog-full/steps.vue'
104
+ import DialogFullNoButtons from '../examples/dialog-full/no-buttons.vue'
105
+ import dialogFullApi from './meta/dialog-full'
106
+
107
+ import dialogFullBasicCode from '../examples/dialog-full/basic.vue?raw'
108
+ import dialogFullNoHeaderCode from '../examples/dialog-full/no-header.vue?raw'
109
+ import dialogFullCustomButtonsCode from '../examples/dialog-full/custom-buttons.vue?raw'
110
+ import dialogFullStepsCode from '../examples/dialog-full/steps.vue?raw'
111
+ import dialogFullNoButtonsCode from '../examples/dialog-full/no-buttons.vue?raw'
112
+ </script>
@@ -0,0 +1,127 @@
1
+ # Dialog 弹窗
2
+
3
+ 模态对话框,在浮层中显示内容,支持拖拽、缩放等功能。
4
+
5
+ ## 基础用法
6
+
7
+ 最简单的用法。
8
+
9
+ <Demo :source-code="dialogBasicCode">
10
+ <template #source>
11
+ <dialog-basic />
12
+ </template>
13
+ <template #description>
14
+ 基础的弹窗,支持拖拽、缩放等功能。使用 `v-model:visible` 控制显示隐藏。
15
+ </template>
16
+ </Demo>
17
+
18
+ ## 不同尺寸
19
+
20
+ 通过 `width` 和 `height` 属性可以设置弹窗的尺寸。
21
+
22
+ <Demo :source-code="dialogSizeCode">
23
+ <template #source>
24
+ <dialog-size />
25
+ </template>
26
+ <template #description>
27
+ 支持自定义弹窗的宽度和高度,单位为像素。设置 `minWidth` 和 `minHeight` 可限制最小尺寸。
28
+ </template>
29
+ </Demo>
30
+
31
+ ## 全屏显示
32
+
33
+ 使用全屏显示弹窗。
34
+
35
+ <Demo :source-code="dialogFullscreenCode">
36
+ <template #source>
37
+ <dialog-fullscreen />
38
+ </template>
39
+ <template #description>
40
+ 可以通过缩放控制实现全屏显示效果。
41
+ </template>
42
+ </Demo>
43
+
44
+ ## 自定义按钮
45
+
46
+ 通过 `buttons` 属性可以自定义底部按钮。
47
+
48
+ <Demo :source-code="dialogCustomButtonsCode">
49
+ <template #source>
50
+ <dialog-custom-buttons />
51
+ </template>
52
+ <template #description>
53
+ 使用 `buttons` 属性配置自定义按钮,支持设置按钮类型、样式、图标、点击事件等。设置 `hasBtns` 为 `false` 可隐藏整个按钮区域。
54
+ </template>
55
+ </Demo>
56
+
57
+ ## 步骤弹窗
58
+
59
+ 通过 `isStep` 属性可以创建带步骤条的弹窗。
60
+
61
+ <Demo :source-code="dialogStepsCode">
62
+ <template #source>
63
+ <dialog-steps />
64
+ </template>
65
+ <template #description>
66
+ 适用于分步骤的表单或流程,支持步骤校验。使用 `v-model:stepActive` 控制当前步骤,使用 `validateSteps` 进行步骤校验。
67
+ </template>
68
+ </Demo>
69
+
70
+ ## 无遮罩层
71
+
72
+ 设置 `mask` 为 `false` 可以取消遮罩层。
73
+
74
+ <Demo :source-code="dialogNoMaskCode">
75
+ <template #source>
76
+ <dialog-no-mask />
77
+ </template>
78
+ <template #description>
79
+ 无遮罩层的弹窗允许用户与页面其他内容进行交互。
80
+ </template>
81
+ </Demo>
82
+
83
+ ## API
84
+
85
+ ### 属性
86
+
87
+ <ApiTable :data="dialogApi" componentName="dialog" />
88
+
89
+ ### 事件
90
+
91
+ | 事件名 | 说明 | 回调参数 |
92
+ | ----------------- | ---------------------------- | ------------------------------------------------ |
93
+ | update:visible | 弹窗显示状态变化时触发 | `(visible: boolean)` |
94
+ | update:stepActive | 步骤变化时触发 | `(stepActive: number)` |
95
+ | cancel | 点击取消按钮或关闭按钮时触发 | - |
96
+ | ok | 点击确定按钮时触发 | `(showLoading: Function, hideLoading: Function)` |
97
+ | closed | 弹窗关闭动画结束后触发 | - |
98
+
99
+ ### 插槽
100
+
101
+ | 插槽名 | 说明 |
102
+ | ------- | ------------ |
103
+ | default | 弹窗内容区域 |
104
+
105
+ ### 方法
106
+
107
+ | 方法名 | 说明 | 参数 |
108
+ | ----------- | ------------ | ----------------- |
109
+ | showLoading | 显示加载状态 | `(text?: string)` |
110
+ | hideLoading | 隐藏加载状态 | - |
111
+
112
+ <script setup>
113
+ import DialogBasic from '../examples/dialog/basic.vue'
114
+ import DialogSize from '../examples/dialog/size.vue'
115
+ import DialogFullscreen from '../examples/dialog/fullscreen.vue'
116
+ import DialogCustomButtons from '../examples/dialog/custom-buttons.vue'
117
+ import DialogSteps from '../examples/dialog/steps.vue'
118
+ import DialogNoMask from '../examples/dialog/no-mask.vue'
119
+ import dialogApi from './meta/dialog'
120
+
121
+ import dialogBasicCode from '../examples/dialog/basic.vue?raw'
122
+ import dialogSizeCode from '../examples/dialog/size.vue?raw'
123
+ import dialogFullscreenCode from '../examples/dialog/fullscreen.vue?raw'
124
+ import dialogCustomButtonsCode from '../examples/dialog/custom-buttons.vue?raw'
125
+ import dialogStepsCode from '../examples/dialog/steps.vue?raw'
126
+ import dialogNoMaskCode from '../examples/dialog/no-mask.vue?raw'
127
+ </script>
@@ -0,0 +1,24 @@
1
+ # Divider 分隔符
2
+
3
+ 用于分隔不同的内容区域。支持自定义文本、颜色、大小和样式等功能。
4
+
5
+ ## 基础用法
6
+
7
+ <Demo :source-code="dividerBasicCode">
8
+ <template #source>
9
+ <divider-basic />
10
+ </template>
11
+ <template #description>
12
+ 通过 `content` 属性添加文本,`contentPosition` 属性控制文本对齐方式。
13
+ </template>
14
+ </Demo>
15
+
16
+ ## API
17
+
18
+ <ApiTable :data="dividerApi" componentName="divider" />
19
+
20
+ <script setup>
21
+ import DividerBasic from '../examples/divider/basic.vue'
22
+ import dividerApi from './meta/divider'
23
+ import dividerBasicCode from '../examples/divider/basic.vue?raw'
24
+ </script>
@@ -0,0 +1,127 @@
1
+ # Drawer 抽屉
2
+
3
+ 抽屉组件,从屏幕边缘滑出的浮层面板。
4
+
5
+ ## 基础用法
6
+
7
+ 最简单的用法。
8
+
9
+ <Demo :source-code="drawerBasicCode">
10
+ <template #source>
11
+ <drawer-basic />
12
+ </template>
13
+ <template #description>
14
+ 基础的抽屉,默认从右侧滑出。使用 `v-model:visible` 控制显示隐藏。
15
+ </template>
16
+ </Demo>
17
+
18
+ ## 打开方向
19
+
20
+ 抽屉可以从四个方向打开。
21
+
22
+ <Demo :source-code="drawerDirectionCode">
23
+ <template #source>
24
+ <drawer-direction />
25
+ </template>
26
+ <template #description>
27
+ 通过 `direction` 属性可以设置抽屉的打开方向,支持 `rtl`(右到左)、`ltr`(左到右)、`ttb`(上到下)、`btt`(下到上)。
28
+ </template>
29
+ </Demo>
30
+
31
+ ## 不同尺寸
32
+
33
+ 通过 `width` 和 `height` 属性可以设置抽屉的尺寸。
34
+
35
+ <Demo :source-code="drawerSizeCode">
36
+ <template #source>
37
+ <drawer-size />
38
+ </template>
39
+ <template #description>
40
+ 支持自定义抽屉的尺寸。左右打开时使用 `width` 属性(单位:像素),上下打开时使用 `height` 属性(单位:像素)。
41
+ </template>
42
+ </Demo>
43
+
44
+ ## 自定义按钮
45
+
46
+ 通过 `buttons` 属性可以自定义底部按钮。
47
+
48
+ <Demo :source-code="drawerCustomButtonsCode">
49
+ <template #source>
50
+ <drawer-custom-buttons />
51
+ </template>
52
+ <template #description>
53
+ 使用 `buttons` 属性配置自定义按钮,支持设置按钮类型、样式、图标、点击事件等。
54
+ </template>
55
+ </Demo>
56
+
57
+ ## 无底部按钮
58
+
59
+ 设置 `hasBtns` 为 `false` 可以隐藏底部按钮。
60
+
61
+ <Demo :source-code="drawerNoButtonsCode">
62
+ <template #source>
63
+ <drawer-no-buttons />
64
+ </template>
65
+ <template #description>
66
+ 适用于只展示信息,不需要操作按钮的场景。
67
+ </template>
68
+ </Demo>
69
+
70
+ ## 遮罩层配置
71
+
72
+ 可以配置遮罩层的显示。
73
+
74
+ <Demo :source-code="drawerMaskCode">
75
+ <template #source>
76
+ <drawer-mask />
77
+ </template>
78
+ <template #description>
79
+ 设置 `mask` 为 `false` 可以取消遮罩层。
80
+ </template>
81
+ </Demo>
82
+
83
+ ## API
84
+
85
+ ### 属性
86
+
87
+ <ApiTable :data="drawerApi" componentName="drawer" />
88
+
89
+ ### 事件
90
+
91
+ | 事件名 | 说明 | 回调参数 |
92
+ | ----------------- | ---------------------------- | ------------------------------------------------ |
93
+ | update:visible | 抽屉显示状态变化时触发 | `(visible: boolean)` |
94
+ | update:stepActive | 步骤变化时触发 | `(stepActive: number)` |
95
+ | cancel | 点击取消按钮或关闭按钮时触发 | - |
96
+ | ok | 点击确定按钮时触发 | `(showLoading: Function, hideLoading: Function)` |
97
+ | closed | 抽屉关闭动画结束后触发 | - |
98
+
99
+ ### 插槽
100
+
101
+ | 插槽名 | 说明 |
102
+ | ------- | ------------ |
103
+ | default | 抽屉内容区域 |
104
+
105
+ ### 方法
106
+
107
+ | 方法名 | 说明 | 参数 |
108
+ | ----------- | ------------ | ----------------- |
109
+ | showLoading | 显示加载状态 | `(text?: string)` |
110
+ | hideLoading | 隐藏加载状态 | - |
111
+
112
+ <script setup>
113
+ import DrawerBasic from '../examples/drawer/basic.vue'
114
+ import DrawerDirection from '../examples/drawer/direction.vue'
115
+ import DrawerSize from '../examples/drawer/size.vue'
116
+ import DrawerCustomButtons from '../examples/drawer/custom-buttons.vue'
117
+ import DrawerNoButtons from '../examples/drawer/no-buttons.vue'
118
+ import DrawerMask from '../examples/drawer/mask.vue'
119
+ import drawerApi from './meta/drawer'
120
+
121
+ import drawerBasicCode from '../examples/drawer/basic.vue?raw'
122
+ import drawerDirectionCode from '../examples/drawer/direction.vue?raw'
123
+ import drawerSizeCode from '../examples/drawer/size.vue?raw'
124
+ import drawerCustomButtonsCode from '../examples/drawer/custom-buttons.vue?raw'
125
+ import drawerNoButtonsCode from '../examples/drawer/no-buttons.vue?raw'
126
+ import drawerMaskCode from '../examples/drawer/mask.vue?raw'
127
+ </script>