@a2simcode/ui 0.0.55 → 0.0.56

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 (315) hide show
  1. package/.cursor/skills/ui-component-helper/README.md +43 -43
  2. package/.cursor/skills/ui-component-helper/SKILL.md +81 -81
  3. package/LICENSE +53 -53
  4. package/README.md +156 -156
  5. package/dist/components/index.d.ts +2 -1
  6. package/dist/components/input-cards/index.d.ts +189 -0
  7. package/dist/components/input-cards/src/input-cards.vue.d.ts +142 -0
  8. package/dist/components/input-cards/src/interface.d.ts +29 -0
  9. package/dist/components/table/src/interface.d.ts +4 -0
  10. package/dist/simcode-ui.es.js +3523 -3304
  11. package/dist/simcode-ui.umd.js +2 -2
  12. package/dist/stats.html +1 -1
  13. package/dist/ui.css +1 -1
  14. package/docs/components/autocomplete.md +89 -89
  15. package/docs/components/barcode.md +101 -101
  16. package/docs/components/button-select.md +24 -24
  17. package/docs/components/button.md +117 -117
  18. package/docs/components/buttons.md +119 -119
  19. package/docs/components/cascader-select.md +114 -114
  20. package/docs/components/checkbox.md +114 -114
  21. package/docs/components/code-mirror.md +85 -85
  22. package/docs/components/collapse.md +26 -26
  23. package/docs/components/comp.md +71 -71
  24. package/docs/components/count-up.md +24 -24
  25. package/docs/components/count.md +24 -24
  26. package/docs/components/data-panel.md +24 -24
  27. package/docs/components/dialog-full.md +112 -112
  28. package/docs/components/dialog.md +127 -127
  29. package/docs/components/divider.md +24 -24
  30. package/docs/components/drawer.md +127 -127
  31. package/docs/components/dynamic-layer.md +118 -118
  32. package/docs/components/echarts.md +72 -72
  33. package/docs/components/editor.md +24 -24
  34. package/docs/components/form.md +27 -27
  35. package/docs/components/guid.md +39 -39
  36. package/docs/components/hpanel.md +24 -24
  37. package/docs/components/icon.md +56 -56
  38. package/docs/components/input-button.md +24 -24
  39. package/docs/components/input-cards.md +27 -0
  40. package/docs/components/input-code.md +24 -24
  41. package/docs/components/input-color.md +114 -114
  42. package/docs/components/input-layer.md +26 -26
  43. package/docs/components/input-rows.md +370 -370
  44. package/docs/components/input-tag.md +50 -50
  45. package/docs/components/input.md +129 -129
  46. package/docs/components/layer-form.md +61 -61
  47. package/docs/components/layer.md +127 -127
  48. package/docs/components/layout.md +132 -132
  49. package/docs/components/map.md +24 -24
  50. package/docs/components/menu.md +121 -121
  51. package/docs/components/meta/buttons.ts +56 -56
  52. package/docs/components/meta/comp.ts +224 -224
  53. package/docs/components/meta/dynamic-layer.ts +99 -99
  54. package/docs/components/meta/echarts.ts +64 -64
  55. package/docs/components/meta/form-item.ts +50 -50
  56. package/docs/components/meta/form.ts +160 -160
  57. package/docs/components/meta/guid.ts +42 -42
  58. package/docs/components/meta/input-cards.ts +112 -0
  59. package/docs/components/meta/input-color.ts +243 -243
  60. package/docs/components/meta/input-rows.ts +113 -113
  61. package/docs/components/meta/layer-form.ts +56 -56
  62. package/docs/components/meta/map.ts +68 -68
  63. package/docs/components/meta/number.ts +296 -296
  64. package/docs/components/meta/page.ts +67 -67
  65. package/docs/components/meta/panel.ts +83 -83
  66. package/docs/components/meta/radio.ts +55 -55
  67. package/docs/components/meta/slider.ts +270 -270
  68. package/docs/components/meta/table-panel.ts +154 -154
  69. package/docs/components/meta/table.ts +328 -328
  70. package/docs/components/meta/tabs.ts +136 -136
  71. package/docs/components/meta/workflow-viewer.ts +55 -55
  72. package/docs/components/meta/workflow.ts +113 -113
  73. package/docs/components/number.md +124 -124
  74. package/docs/components/page.md +42 -42
  75. package/docs/components/panel.md +37 -37
  76. package/docs/components/radio.md +87 -87
  77. package/docs/components/rate.md +71 -71
  78. package/docs/components/select.md +133 -133
  79. package/docs/components/slider-captcha.md +41 -41
  80. package/docs/components/slider.md +101 -101
  81. package/docs/components/switch.md +90 -90
  82. package/docs/components/table-panel.md +199 -199
  83. package/docs/components/table.md +202 -202
  84. package/docs/components/tabs.md +26 -26
  85. package/docs/components/title.md +24 -24
  86. package/docs/components/tree.md +207 -207
  87. package/docs/components/upload.md +117 -117
  88. package/docs/components/workflow-viewer.md +21 -21
  89. package/docs/components/workflow.md +21 -21
  90. package/docs/examples/autocomplete/advanced.vue +35 -35
  91. package/docs/examples/autocomplete/basic.vue +32 -32
  92. package/docs/examples/autocomplete/clearable.vue +33 -33
  93. package/docs/examples/autocomplete/custom-template.vue +49 -49
  94. package/docs/examples/autocomplete/disabled.vue +33 -33
  95. package/docs/examples/autocomplete/icon.vue +37 -37
  96. package/docs/examples/barcode/all-types.vue +380 -380
  97. package/docs/examples/barcode/basic.vue +14 -14
  98. package/docs/examples/barcode/props-appearance.vue +243 -243
  99. package/docs/examples/barcode/props-geometry.vue +143 -143
  100. package/docs/examples/barcode/props-logic.vue +216 -216
  101. package/docs/examples/barcode/props-symbology.vue +199 -199
  102. package/docs/examples/barcode/props-text.vue +268 -268
  103. package/docs/examples/button/basic.vue +7 -7
  104. package/docs/examples/button/danger-ghost.vue +17 -17
  105. package/docs/examples/button/disabled.vue +10 -10
  106. package/docs/examples/button/loading.vue +6 -6
  107. package/docs/examples/button/shape.vue +7 -7
  108. package/docs/examples/button/size.vue +14 -14
  109. package/docs/examples/button/type.vue +9 -9
  110. package/docs/examples/button-select/basic.vue +19 -19
  111. package/docs/examples/buttons/basic.vue +45 -45
  112. package/docs/examples/buttons/disabled.vue +36 -36
  113. package/docs/examples/buttons/dropdown.vue +63 -63
  114. package/docs/examples/buttons/group.vue +52 -52
  115. package/docs/examples/buttons/link.vue +47 -47
  116. package/docs/examples/buttons/popup.vue +39 -39
  117. package/docs/examples/buttons/size.vue +45 -45
  118. package/docs/examples/cascader-select/basic.vue +28 -28
  119. package/docs/examples/cascader-select/clearable.vue +34 -34
  120. package/docs/examples/cascader-select/disabled.vue +43 -43
  121. package/docs/examples/cascader-select/filterable.vue +37 -37
  122. package/docs/examples/cascader-select/methods.vue +84 -84
  123. package/docs/examples/cascader-select/multiple.vue +38 -38
  124. package/docs/examples/cascader-select/slot.vue +45 -45
  125. package/docs/examples/checkbox/basic.vue +18 -18
  126. package/docs/examples/checkbox/button.vue +19 -19
  127. package/docs/examples/checkbox/color.vue +25 -25
  128. package/docs/examples/checkbox/disabled.vue +17 -17
  129. package/docs/examples/checkbox/min-max.vue +20 -20
  130. package/docs/examples/checkbox/mixed.vue +56 -56
  131. package/docs/examples/checkbox/size.vue +28 -28
  132. package/docs/examples/code-mirror/basic.vue +11 -11
  133. package/docs/examples/code-mirror/events.vue +42 -42
  134. package/docs/examples/code-mirror/height.vue +25 -25
  135. package/docs/examples/code-mirror/mode.vue +33 -33
  136. package/docs/examples/code-mirror/readonly.vue +14 -14
  137. package/docs/examples/collapse/basic.vue +82 -82
  138. package/docs/examples/comp/basic.vue +7 -7
  139. package/docs/examples/comp/collapse.vue +38 -38
  140. package/docs/examples/comp/tabs.vue +38 -38
  141. package/docs/examples/count/basic.vue +54 -54
  142. package/docs/examples/count-up/basic.vue +89 -89
  143. package/docs/examples/data-panel/basic.vue +110 -110
  144. package/docs/examples/dialog/basic.vue +36 -36
  145. package/docs/examples/dialog/custom-buttons.vue +44 -44
  146. package/docs/examples/dialog/fullscreen.vue +23 -23
  147. package/docs/examples/dialog/no-mask.vue +17 -17
  148. package/docs/examples/dialog/size.vue +44 -44
  149. package/docs/examples/dialog/steps.vue +57 -57
  150. package/docs/examples/dialog-full/basic.vue +29 -29
  151. package/docs/examples/dialog-full/custom-buttons.vue +45 -45
  152. package/docs/examples/dialog-full/no-buttons.vue +18 -18
  153. package/docs/examples/dialog-full/no-header.vue +27 -27
  154. package/docs/examples/dialog-full/steps.vue +71 -71
  155. package/docs/examples/divider/basic.vue +52 -52
  156. package/docs/examples/drawer/basic.vue +35 -35
  157. package/docs/examples/drawer/custom-buttons.vue +34 -34
  158. package/docs/examples/drawer/direction.vue +47 -47
  159. package/docs/examples/drawer/mask.vue +36 -36
  160. package/docs/examples/drawer/no-buttons.vue +20 -20
  161. package/docs/examples/drawer/size.vue +28 -28
  162. package/docs/examples/dynamic-layer/basic.vue +33 -33
  163. package/docs/examples/dynamic-layer/custom-buttons.vue +43 -43
  164. package/docs/examples/dynamic-layer/form.vue +73 -73
  165. package/docs/examples/dynamic-layer/steps.vue +52 -52
  166. package/docs/examples/dynamic-layer/types.vue +40 -40
  167. package/docs/examples/echarts/basic.vue +31 -31
  168. package/docs/examples/echarts/dynamic.vue +43 -43
  169. package/docs/examples/echarts/line.vue +46 -46
  170. package/docs/examples/echarts/pie.vue +44 -44
  171. package/docs/examples/editor/basic.vue +15 -15
  172. package/docs/examples/form/basic.vue +242 -242
  173. package/docs/examples/guid/basic.vue +10 -10
  174. package/docs/examples/guid/size.vue +13 -13
  175. package/docs/examples/hpanel/basic.vue +79 -79
  176. package/docs/examples/icon/basic.vue +9 -9
  177. package/docs/examples/icon/rotate-flip.vue +9 -9
  178. package/docs/examples/icon/size.vue +7 -7
  179. package/docs/examples/input/basic.vue +10 -10
  180. package/docs/examples/input/clearable.vue +12 -12
  181. package/docs/examples/input/disabled.vue +6 -6
  182. package/docs/examples/input/icon.vue +23 -23
  183. package/docs/examples/input/password.vue +18 -18
  184. package/docs/examples/input/size.vue +13 -13
  185. package/docs/examples/input/textarea.vue +25 -25
  186. package/docs/examples/input/word-limit.vue +28 -28
  187. package/docs/examples/input-button/basic.vue +33 -33
  188. package/docs/examples/input-cards/basic.vue +82 -0
  189. package/docs/examples/input-code/basic.vue +29 -29
  190. package/docs/examples/input-color/basic.vue +10 -10
  191. package/docs/examples/input-color/disabled.vue +13 -13
  192. package/docs/examples/input-color/format.vue +17 -17
  193. package/docs/examples/input-color/no-alpha.vue +13 -13
  194. package/docs/examples/input-color/only-button.vue +15 -15
  195. package/docs/examples/input-color/predefine.vue +31 -31
  196. package/docs/examples/input-color/size.vue +15 -15
  197. package/docs/examples/input-layer/basic.vue +69 -69
  198. package/docs/examples/input-rows/basic.vue +73 -73
  199. package/docs/examples/input-rows/drag.vue +48 -48
  200. package/docs/examples/input-rows/layer-form.vue +85 -85
  201. package/docs/examples/input-rows/nested.vue +91 -91
  202. package/docs/examples/input-tag/basic.vue +27 -27
  203. package/docs/examples/input-tag/colors.vue +23 -23
  204. package/docs/examples/input-tag/readonly.vue +17 -17
  205. package/docs/examples/layer/basic.vue +43 -43
  206. package/docs/examples/layer/custom-buttons.vue +61 -61
  207. package/docs/examples/layer/drawer.vue +37 -37
  208. package/docs/examples/layer/full.vue +38 -38
  209. package/docs/examples/layer/modal.vue +34 -34
  210. package/docs/examples/layer/steps.vue +46 -46
  211. package/docs/examples/layer-form/basic.vue +76 -76
  212. package/docs/examples/layer-form/config.vue +82 -82
  213. package/docs/examples/layer-form/size.vue +72 -72
  214. package/docs/examples/layout/basic.vue +36 -36
  215. package/docs/examples/layout/custom-size.vue +50 -50
  216. package/docs/examples/layout/disable-move.vue +37 -37
  217. package/docs/examples/layout/hide-mid-when-narrow.vue +96 -96
  218. package/docs/examples/layout/min-size.vue +73 -73
  219. package/docs/examples/layout/percent-size.vue +80 -80
  220. package/docs/examples/layout/simple.vue +22 -22
  221. package/docs/examples/layout/top-side.vue +34 -34
  222. package/docs/examples/map/basic.vue +22 -22
  223. package/docs/examples/menu/basic.vue +58 -58
  224. package/docs/examples/menu/collapsed.vue +49 -49
  225. package/docs/examples/menu/horizontal.vue +44 -44
  226. package/docs/examples/menu/selection-test.vue +104 -104
  227. package/docs/examples/menu/theme.vue +46 -46
  228. package/docs/examples/menu/vertical.vue +46 -46
  229. package/docs/examples/number/advanced.vue +143 -143
  230. package/docs/examples/number/basic.vue +63 -63
  231. package/docs/examples/number/disabled.vue +49 -49
  232. package/docs/examples/number/size.vue +42 -42
  233. package/docs/examples/number/slots.vue +123 -123
  234. package/docs/examples/number/step-strictly.vue +41 -41
  235. package/docs/examples/number/step.vue +47 -47
  236. package/docs/examples/page/basic.vue +41 -41
  237. package/docs/examples/page/init.vue +87 -87
  238. package/docs/examples/panel/tool-buttons.vue +18 -18
  239. package/docs/examples/radio/basic.vue +17 -17
  240. package/docs/examples/radio/button.vue +17 -17
  241. package/docs/examples/radio/color.vue +18 -18
  242. package/docs/examples/radio/disabled.vue +17 -17
  243. package/docs/examples/radio/size.vue +29 -29
  244. package/docs/examples/rate/basic.vue +24 -24
  245. package/docs/examples/rate/half.vue +24 -24
  246. package/docs/examples/rate/readonly.vue +11 -11
  247. package/docs/examples/rate/text.vue +32 -32
  248. package/docs/examples/select/basic.vue +16 -16
  249. package/docs/examples/select/clearable.vue +22 -22
  250. package/docs/examples/select/disabled.vue +31 -31
  251. package/docs/examples/select/filterable.vue +24 -24
  252. package/docs/examples/select/group.vue +23 -23
  253. package/docs/examples/select/icon.vue +16 -16
  254. package/docs/examples/select/multiple.vue +18 -18
  255. package/docs/examples/select/size.vue +39 -39
  256. package/docs/examples/slider/basic.vue +42 -42
  257. package/docs/examples/slider/disabled.vue +17 -17
  258. package/docs/examples/slider/marks.vue +30 -30
  259. package/docs/examples/slider/size.vue +37 -37
  260. package/docs/examples/slider/tooltip.vue +36 -36
  261. package/docs/examples/slider/vertical.vue +26 -26
  262. package/docs/examples/slider-captcha/basic.vue +44 -44
  263. package/docs/examples/slider-captcha/custom.vue +48 -48
  264. package/docs/examples/switch/basic.vue +16 -16
  265. package/docs/examples/switch/disabled.vue +13 -13
  266. package/docs/examples/switch/loading.vue +13 -13
  267. package/docs/examples/switch/size.vue +15 -15
  268. package/docs/examples/switch/text.vue +13 -13
  269. package/docs/examples/table/actions.vue +116 -116
  270. package/docs/examples/table/add-row.vue +103 -103
  271. package/docs/examples/table/basic.vue +168 -168
  272. package/docs/examples/table/editable.vue +261 -261
  273. package/docs/examples/table/field-selection.vue +87 -87
  274. package/docs/examples/table/frozen-column.vue +140 -140
  275. package/docs/examples/table/height-mode.vue +99 -99
  276. package/docs/examples/table/multiple.vue +178 -178
  277. package/docs/examples/table/pagination.vue +151 -151
  278. package/docs/examples/table/single-selection.vue +64 -64
  279. package/docs/examples/table/tree-column.vue +119 -119
  280. package/docs/examples/table/tree-data.vue +141 -141
  281. package/docs/examples/table-panel/basic.vue +228 -228
  282. package/docs/examples/table-panel/batch-operations.vue +285 -285
  283. package/docs/examples/table-panel/filter.vue +209 -209
  284. package/docs/examples/table-panel/multiple-selection.vue +243 -243
  285. package/docs/examples/table-panel/pagination.vue +133 -133
  286. package/docs/examples/tabs/basic.vue +98 -98
  287. package/docs/examples/title/basic.vue +80 -80
  288. package/docs/examples/tree/accordion.vue +46 -46
  289. package/docs/examples/tree/basic.vue +50 -50
  290. package/docs/examples/tree/buttons.vue +53 -53
  291. package/docs/examples/tree/checkable.vue +52 -52
  292. package/docs/examples/tree/custom-keys.vue +39 -39
  293. package/docs/examples/tree/default-expanded.vue +52 -52
  294. package/docs/examples/tree/draggable.vue +29 -29
  295. package/docs/examples/tree/expand-on-click.vue +39 -39
  296. package/docs/examples/tree/flat-data.vue +20 -20
  297. package/docs/examples/tree/icon.vue +40 -40
  298. package/docs/examples/tree/load-data.vue +37 -37
  299. package/docs/examples/tree/methods.vue +74 -74
  300. package/docs/examples/tree/theme.vue +33 -33
  301. package/docs/examples/upload/accept.vue +31 -31
  302. package/docs/examples/upload/basic.vue +12 -12
  303. package/docs/examples/upload/drag.vue +11 -11
  304. package/docs/examples/upload/image.vue +17 -17
  305. package/docs/examples/upload/limit.vue +20 -20
  306. package/docs/examples/upload/multiple.vue +17 -17
  307. package/docs/examples/upload/readonly.vue +17 -17
  308. package/docs/examples/utils/cipher.vue +160 -160
  309. package/docs/examples/utils/common.vue +153 -153
  310. package/docs/examples/utils/date.vue +56 -56
  311. package/docs/examples/utils/dom.vue +52 -52
  312. package/docs/examples/utils/is.vue +70 -70
  313. package/docs/examples/workflow/basic.vue +265 -265
  314. package/docs/examples/workflow-viewer/basic.vue +248 -248
  315. package/package.json +23 -23
@@ -1,124 +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>
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>
@@ -1,42 +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>
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>
@@ -1,37 +1,37 @@
1
- # Panel 面板
2
-
3
- 通用的内容面板。
4
-
5
- ## 基础用法
6
-
7
- <Demo :source-code="panelBasicCode">
8
- <template #source>
9
- <panel-basic />
10
- </template>
11
- <template #description>
12
- 最简单的 Panel 用法。
13
- </template>
14
- </Demo>
15
-
16
- ## 操作按钮
17
-
18
- <Demo :source-code="panelToolButtonsCode">
19
- <template #source>
20
- <panel-tool-buttons />
21
- </template>
22
- <template #description>
23
- 通过 `toolBtns` 属性可以在面板头部添加操作按钮。
24
- </template>
25
- </Demo>
26
-
27
- ## API
28
-
29
- <ApiTable :data="panelApi" componentName="panel" />
30
-
31
- <script setup>
32
- import PanelBasic from '../examples/panel/basic.vue'
33
- import panelBasicCode from '../examples/panel/basic.vue?raw'
34
- import panelToolButtons from '../examples/panel/tool-buttons.vue'
35
- import panelToolButtonsCode from '../examples/panel/tool-buttons.vue?raw'
36
- import panelApi from './meta/panel'
37
- </script>
1
+ # Panel 面板
2
+
3
+ 通用的内容面板。
4
+
5
+ ## 基础用法
6
+
7
+ <Demo :source-code="panelBasicCode">
8
+ <template #source>
9
+ <panel-basic />
10
+ </template>
11
+ <template #description>
12
+ 最简单的 Panel 用法。
13
+ </template>
14
+ </Demo>
15
+
16
+ ## 操作按钮
17
+
18
+ <Demo :source-code="panelToolButtonsCode">
19
+ <template #source>
20
+ <panel-tool-buttons />
21
+ </template>
22
+ <template #description>
23
+ 通过 `toolBtns` 属性可以在面板头部添加操作按钮。
24
+ </template>
25
+ </Demo>
26
+
27
+ ## API
28
+
29
+ <ApiTable :data="panelApi" componentName="panel" />
30
+
31
+ <script setup>
32
+ import PanelBasic from '../examples/panel/basic.vue'
33
+ import panelBasicCode from '../examples/panel/basic.vue?raw'
34
+ import panelToolButtons from '../examples/panel/tool-buttons.vue'
35
+ import panelToolButtonsCode from '../examples/panel/tool-buttons.vue?raw'
36
+ import panelApi from './meta/panel'
37
+ </script>
@@ -1,87 +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>
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>