@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,127 +1,127 @@
1
- # Layer 层
2
-
3
- 统一的弹层组件,支持弹窗、全屏、抽屉三种展示形式。
4
-
5
- ## 基础用法
6
-
7
- Layer 组件支持三种展示形式:弹窗(modal)、全屏(full)、抽屉(drawer)。
8
-
9
- <Demo :source-code="layerBasicCode">
10
- <template #source>
11
- <layer-basic />
12
- </template>
13
- <template #description>
14
- 通过 `open` 方法的第二个参数指定展示形式,默认为 `modal`。使用 `ref` 调用组件方法来控制显示隐藏。
15
- </template>
16
- </Demo>
17
-
18
- ## 弹窗模式
19
-
20
- 弹窗模式支持拖拽、缩放等功能。
21
-
22
- <Demo :source-code="layerModalCode">
23
- <template #source>
24
- <layer-modal />
25
- </template>
26
- <template #description>
27
- 弹窗模式下,可以通过 `width` 和 `height` 属性设置弹窗大小。支持拖拽和缩放功能。
28
- </template>
29
- </Demo>
30
-
31
- ## 全屏模式
32
-
33
- 全屏模式会占据整个浏览器窗口。
34
-
35
- <Demo :source-code="layerFullCode">
36
- <template #source>
37
- <layer-full />
38
- </template>
39
- <template #description>
40
- 使用 `open` 方法的第二个参数传入 `'full'` 即可开启全屏模式。适用于需要大量展示内容的场景。
41
- </template>
42
- </Demo>
43
-
44
- ## 抽屉模式
45
-
46
- 抽屉从右侧滑出,适合展示详情或表单。
47
-
48
- <Demo :source-code="layerDrawerCode">
49
- <template #source>
50
- <layer-drawer />
51
- </template>
52
- <template #description>
53
- 使用 `open` 方法的第二个参数传入 `'drawer'` 即可开启抽屉模式。
54
- </template>
55
- </Demo>
56
-
57
- ## 步骤弹窗
58
-
59
- 通过 `isStep` 属性可以创建带步骤条的弹窗。
60
-
61
- <Demo :source-code="layerStepsCode">
62
- <template #source>
63
- <layer-steps />
64
- </template>
65
- <template #description>
66
- 适用于分步骤的表单或流程,支持步骤校验。使用 `isStep` 开启步骤模式,使用 `steps` 设置步骤列表,使用 `validateSteps` 进行步骤校验。
67
- </template>
68
- </Demo>
69
-
70
- ## 自定义按钮
71
-
72
- 通过 `buttons` 属性可以自定义底部按钮。
73
-
74
- <Demo :source-code="layerCustomButtonsCode">
75
- <template #source>
76
- <layer-custom-buttons />
77
- </template>
78
- <template #description>
79
- 使用 `buttons` 属性配置自定义按钮,支持设置按钮类型、样式、图标、点击事件等。设置 `hasSaveBtn` 为 `false` 可隐藏默认的保存按钮。
80
- </template>
81
- </Demo>
82
-
83
- ## API
84
-
85
- ### 属性
86
-
87
- <ApiTable :data="layerApi" componentName="layer" />
88
-
89
- ### 事件
90
-
91
- | 事件名 | 说明 | 回调参数 |
92
- | ------ | ---------------------- | ------------------------------------------------ |
93
- | ok | 点击确定按钮时触发 | `(showLoading: Function, hideLoading: Function)` |
94
- | cancel | 点击取消按钮时触发 | - |
95
- | closed | 弹窗关闭动画结束后触发 | - |
96
-
97
- ### 插槽
98
-
99
- | 插槽名 | 说明 |
100
- | ------- | ------------ |
101
- | default | 弹层内容区域 |
102
-
103
- ### 方法
104
-
105
- | 方法名 | 说明 | 参数 |
106
- | ----------- | ------------ | ----------------------------------------------------------------------- |
107
- | open | 打开弹层 | `(title: string, type?: 'modal' \| 'full' \| 'drawer', subtitle?: any)` |
108
- | close | 关闭弹层 | - |
109
- | showLoading | 显示加载状态 | `(text?: string)` |
110
- | hideLoading | 隐藏加载状态 | - |
111
-
112
- <script setup>
113
- import LayerBasic from '../examples/layer/basic.vue'
114
- import LayerModal from '../examples/layer/modal.vue'
115
- import LayerFull from '../examples/layer/full.vue'
116
- import LayerDrawer from '../examples/layer/drawer.vue'
117
- import LayerSteps from '../examples/layer/steps.vue'
118
- import LayerCustomButtons from '../examples/layer/custom-buttons.vue'
119
- import layerApi from './meta/layer'
120
-
121
- import layerBasicCode from '../examples/layer/basic.vue?raw'
122
- import layerModalCode from '../examples/layer/modal.vue?raw'
123
- import layerFullCode from '../examples/layer/full.vue?raw'
124
- import layerDrawerCode from '../examples/layer/drawer.vue?raw'
125
- import layerStepsCode from '../examples/layer/steps.vue?raw'
126
- import layerCustomButtonsCode from '../examples/layer/custom-buttons.vue?raw'
127
- </script>
1
+ # Layer 层
2
+
3
+ 统一的弹层组件,支持弹窗、全屏、抽屉三种展示形式。
4
+
5
+ ## 基础用法
6
+
7
+ Layer 组件支持三种展示形式:弹窗(modal)、全屏(full)、抽屉(drawer)。
8
+
9
+ <Demo :source-code="layerBasicCode">
10
+ <template #source>
11
+ <layer-basic />
12
+ </template>
13
+ <template #description>
14
+ 通过 `open` 方法的第二个参数指定展示形式,默认为 `modal`。使用 `ref` 调用组件方法来控制显示隐藏。
15
+ </template>
16
+ </Demo>
17
+
18
+ ## 弹窗模式
19
+
20
+ 弹窗模式支持拖拽、缩放等功能。
21
+
22
+ <Demo :source-code="layerModalCode">
23
+ <template #source>
24
+ <layer-modal />
25
+ </template>
26
+ <template #description>
27
+ 弹窗模式下,可以通过 `width` 和 `height` 属性设置弹窗大小。支持拖拽和缩放功能。
28
+ </template>
29
+ </Demo>
30
+
31
+ ## 全屏模式
32
+
33
+ 全屏模式会占据整个浏览器窗口。
34
+
35
+ <Demo :source-code="layerFullCode">
36
+ <template #source>
37
+ <layer-full />
38
+ </template>
39
+ <template #description>
40
+ 使用 `open` 方法的第二个参数传入 `'full'` 即可开启全屏模式。适用于需要大量展示内容的场景。
41
+ </template>
42
+ </Demo>
43
+
44
+ ## 抽屉模式
45
+
46
+ 抽屉从右侧滑出,适合展示详情或表单。
47
+
48
+ <Demo :source-code="layerDrawerCode">
49
+ <template #source>
50
+ <layer-drawer />
51
+ </template>
52
+ <template #description>
53
+ 使用 `open` 方法的第二个参数传入 `'drawer'` 即可开启抽屉模式。
54
+ </template>
55
+ </Demo>
56
+
57
+ ## 步骤弹窗
58
+
59
+ 通过 `isStep` 属性可以创建带步骤条的弹窗。
60
+
61
+ <Demo :source-code="layerStepsCode">
62
+ <template #source>
63
+ <layer-steps />
64
+ </template>
65
+ <template #description>
66
+ 适用于分步骤的表单或流程,支持步骤校验。使用 `isStep` 开启步骤模式,使用 `steps` 设置步骤列表,使用 `validateSteps` 进行步骤校验。
67
+ </template>
68
+ </Demo>
69
+
70
+ ## 自定义按钮
71
+
72
+ 通过 `buttons` 属性可以自定义底部按钮。
73
+
74
+ <Demo :source-code="layerCustomButtonsCode">
75
+ <template #source>
76
+ <layer-custom-buttons />
77
+ </template>
78
+ <template #description>
79
+ 使用 `buttons` 属性配置自定义按钮,支持设置按钮类型、样式、图标、点击事件等。设置 `hasSaveBtn` 为 `false` 可隐藏默认的保存按钮。
80
+ </template>
81
+ </Demo>
82
+
83
+ ## API
84
+
85
+ ### 属性
86
+
87
+ <ApiTable :data="layerApi" componentName="layer" />
88
+
89
+ ### 事件
90
+
91
+ | 事件名 | 说明 | 回调参数 |
92
+ | ------ | ---------------------- | ------------------------------------------------ |
93
+ | ok | 点击确定按钮时触发 | `(showLoading: Function, hideLoading: Function)` |
94
+ | cancel | 点击取消按钮时触发 | - |
95
+ | closed | 弹窗关闭动画结束后触发 | - |
96
+
97
+ ### 插槽
98
+
99
+ | 插槽名 | 说明 |
100
+ | ------- | ------------ |
101
+ | default | 弹层内容区域 |
102
+
103
+ ### 方法
104
+
105
+ | 方法名 | 说明 | 参数 |
106
+ | ----------- | ------------ | ----------------------------------------------------------------------- |
107
+ | open | 打开弹层 | `(title: string, type?: 'modal' \| 'full' \| 'drawer', subtitle?: any)` |
108
+ | close | 关闭弹层 | - |
109
+ | showLoading | 显示加载状态 | `(text?: string)` |
110
+ | hideLoading | 隐藏加载状态 | - |
111
+
112
+ <script setup>
113
+ import LayerBasic from '../examples/layer/basic.vue'
114
+ import LayerModal from '../examples/layer/modal.vue'
115
+ import LayerFull from '../examples/layer/full.vue'
116
+ import LayerDrawer from '../examples/layer/drawer.vue'
117
+ import LayerSteps from '../examples/layer/steps.vue'
118
+ import LayerCustomButtons from '../examples/layer/custom-buttons.vue'
119
+ import layerApi from './meta/layer'
120
+
121
+ import layerBasicCode from '../examples/layer/basic.vue?raw'
122
+ import layerModalCode from '../examples/layer/modal.vue?raw'
123
+ import layerFullCode from '../examples/layer/full.vue?raw'
124
+ import layerDrawerCode from '../examples/layer/drawer.vue?raw'
125
+ import layerStepsCode from '../examples/layer/steps.vue?raw'
126
+ import layerCustomButtonsCode from '../examples/layer/custom-buttons.vue?raw'
127
+ </script>
@@ -1,132 +1,132 @@
1
- # Layout 布局
2
-
3
- 用于页面的整体布局,支持上下左右四个区域的组合布局。
4
-
5
- ## 基础用法
6
-
7
- 最基础的布局示例,包含上下左右和中间主体区域。
8
-
9
- <Demo :source-code="layoutBasicCode">
10
- <template #source>
11
- <layout-basic />
12
- </template>
13
- <template #description>
14
- Layout 组件提供了五个插槽:left(左侧)、right(右侧)、top(顶部)、bottom(底部)和 default(中间主体)。每个区域都可以通过拖拽分隔线来调整大小。
15
- </template>
16
- </Demo>
17
-
18
- ## 简单布局
19
-
20
- 左右布局的简单示例,常用于后台管理系统。
21
-
22
- <Demo :source-code="layoutSimpleCode">
23
- <template #source>
24
- <layout-simple />
25
- </template>
26
- <template #description>
27
- 只使用左侧和中间区域,构建经典的侧边栏布局。左侧通常用于导航菜单,中间区域展示主要内容。
28
- </template>
29
- </Demo>
30
-
31
- ## 顶部导航布局
32
-
33
- 经典的顶部导航布局样式。
34
-
35
- <Demo :source-code="layoutTopSideCode">
36
- <template #source>
37
- <layout-top-side />
38
- </template>
39
- <template #description>
40
- 只使用顶部和中间区域,构建顶部导航布局。适用于首页、官网等场景。
41
- </template>
42
- </Demo>
43
-
44
- ## 自定义尺寸
45
-
46
- 通过 props 自定义各个区域的初始尺寸。
47
-
48
- <Demo :source-code="layoutCustomSizeCode">
49
- <template #source>
50
- <layout-custom-size />
51
- </template>
52
- <template #description>
53
- 可以通过 left、right、top、bottom 属性设置各个区域的初始宽度或高度。支持数字(像素)和字符串(百分比)两种方式。
54
- </template>
55
- </Demo>
56
-
57
- ## 百分比布局
58
-
59
- 使用百分比设置区域大小,实现响应式布局。
60
-
61
- <Demo :source-code="layoutPercentSizeCode">
62
- <template #source>
63
- <layout-percent-size />
64
- </template>
65
- <template #description>
66
- 支持使用百分比(如 "20%")设置区域大小,布局会随容器大小自动调整。拖动调整大小后,会自动转换为像素值以保持拖动后的尺寸。
67
- </template>
68
- </Demo>
69
-
70
- ## 禁用拖拽
71
-
72
- 禁用区域的拖拽调整功能。
73
-
74
- <Demo :source-code="layoutDisableMoveCode">
75
- <template #source>
76
- <layout-disable-move />
77
- </template>
78
- <template #description>
79
- 通过 leftMove、rightMove、topMove、bottomMove 属性可以控制各个区域是否允许拖拽调整大小。设置为 false 即可禁用拖拽功能。
80
- </template>
81
- </Demo>
82
-
83
- ## 限制最小尺寸
84
-
85
- 为中间区域设置最小宽度和高度,防止被过度压缩。
86
-
87
- <Demo :source-code="layoutMinSizeCode">
88
- <template #source>
89
- <layout-min-size />
90
- </template>
91
- <template #description>
92
- 通过 midMinWidth 和 midMinHeight 属性可以设置中间区域的最小宽度和高度。当拖动四周区域时,中间区域始终保持不小于设置的最小尺寸,确保内容区域有足够的显示空间。
93
- </template>
94
- </Demo>
95
-
96
- ## 自动隐藏中间区域
97
-
98
- 当整体宽度小于设置的最小中间宽度时自动隐藏中间区域,左右区域平分剩余宽度。
99
-
100
- <Demo :source-code="layoutHideMidWhenNarrowCode">
101
- <template #source>
102
- <layout-hide-mid-when-narrow />
103
- </template>
104
- <template #description>
105
- 通过设置 hideMidWhenNarrow 属性为 true,当容器宽度小于「左侧宽度 + 右侧宽度 + mid最小宽度」时,中间区域会自动隐藏。如果同时存在左侧和右侧区域,它们会平分剩余宽度(各占50%);如果只有一侧,则该侧占据100%宽度。这在响应式布局中非常有用。
106
- </template>
107
- </Demo>
108
-
109
- ## API
110
-
111
- <ApiTable :data="layoutApi" componentName="layout" />
112
-
113
- <script setup>
114
- import LayoutBasic from '../examples/layout/basic.vue'
115
- import LayoutSimple from '../examples/layout/simple.vue'
116
- import LayoutTopSide from '../examples/layout/top-side.vue'
117
- import LayoutCustomSize from '../examples/layout/custom-size.vue'
118
- import LayoutPercentSize from '../examples/layout/percent-size.vue'
119
- import LayoutDisableMove from '../examples/layout/disable-move.vue'
120
- import LayoutMinSize from '../examples/layout/min-size.vue'
121
- import LayoutHideMidWhenNarrow from '../examples/layout/hide-mid-when-narrow.vue'
122
- import layoutApi from './meta/layout'
123
-
124
- import layoutBasicCode from '../examples/layout/basic.vue?raw'
125
- import layoutSimpleCode from '../examples/layout/simple.vue?raw'
126
- import layoutTopSideCode from '../examples/layout/top-side.vue?raw'
127
- import layoutCustomSizeCode from '../examples/layout/custom-size.vue?raw'
128
- import layoutPercentSizeCode from '../examples/layout/percent-size.vue?raw'
129
- import layoutDisableMoveCode from '../examples/layout/disable-move.vue?raw'
130
- import layoutMinSizeCode from '../examples/layout/min-size.vue?raw'
131
- import layoutHideMidWhenNarrowCode from '../examples/layout/hide-mid-when-narrow.vue?raw'
132
- </script>
1
+ # Layout 布局
2
+
3
+ 用于页面的整体布局,支持上下左右四个区域的组合布局。
4
+
5
+ ## 基础用法
6
+
7
+ 最基础的布局示例,包含上下左右和中间主体区域。
8
+
9
+ <Demo :source-code="layoutBasicCode">
10
+ <template #source>
11
+ <layout-basic />
12
+ </template>
13
+ <template #description>
14
+ Layout 组件提供了五个插槽:left(左侧)、right(右侧)、top(顶部)、bottom(底部)和 default(中间主体)。每个区域都可以通过拖拽分隔线来调整大小。
15
+ </template>
16
+ </Demo>
17
+
18
+ ## 简单布局
19
+
20
+ 左右布局的简单示例,常用于后台管理系统。
21
+
22
+ <Demo :source-code="layoutSimpleCode">
23
+ <template #source>
24
+ <layout-simple />
25
+ </template>
26
+ <template #description>
27
+ 只使用左侧和中间区域,构建经典的侧边栏布局。左侧通常用于导航菜单,中间区域展示主要内容。
28
+ </template>
29
+ </Demo>
30
+
31
+ ## 顶部导航布局
32
+
33
+ 经典的顶部导航布局样式。
34
+
35
+ <Demo :source-code="layoutTopSideCode">
36
+ <template #source>
37
+ <layout-top-side />
38
+ </template>
39
+ <template #description>
40
+ 只使用顶部和中间区域,构建顶部导航布局。适用于首页、官网等场景。
41
+ </template>
42
+ </Demo>
43
+
44
+ ## 自定义尺寸
45
+
46
+ 通过 props 自定义各个区域的初始尺寸。
47
+
48
+ <Demo :source-code="layoutCustomSizeCode">
49
+ <template #source>
50
+ <layout-custom-size />
51
+ </template>
52
+ <template #description>
53
+ 可以通过 left、right、top、bottom 属性设置各个区域的初始宽度或高度。支持数字(像素)和字符串(百分比)两种方式。
54
+ </template>
55
+ </Demo>
56
+
57
+ ## 百分比布局
58
+
59
+ 使用百分比设置区域大小,实现响应式布局。
60
+
61
+ <Demo :source-code="layoutPercentSizeCode">
62
+ <template #source>
63
+ <layout-percent-size />
64
+ </template>
65
+ <template #description>
66
+ 支持使用百分比(如 "20%")设置区域大小,布局会随容器大小自动调整。拖动调整大小后,会自动转换为像素值以保持拖动后的尺寸。
67
+ </template>
68
+ </Demo>
69
+
70
+ ## 禁用拖拽
71
+
72
+ 禁用区域的拖拽调整功能。
73
+
74
+ <Demo :source-code="layoutDisableMoveCode">
75
+ <template #source>
76
+ <layout-disable-move />
77
+ </template>
78
+ <template #description>
79
+ 通过 leftMove、rightMove、topMove、bottomMove 属性可以控制各个区域是否允许拖拽调整大小。设置为 false 即可禁用拖拽功能。
80
+ </template>
81
+ </Demo>
82
+
83
+ ## 限制最小尺寸
84
+
85
+ 为中间区域设置最小宽度和高度,防止被过度压缩。
86
+
87
+ <Demo :source-code="layoutMinSizeCode">
88
+ <template #source>
89
+ <layout-min-size />
90
+ </template>
91
+ <template #description>
92
+ 通过 midMinWidth 和 midMinHeight 属性可以设置中间区域的最小宽度和高度。当拖动四周区域时,中间区域始终保持不小于设置的最小尺寸,确保内容区域有足够的显示空间。
93
+ </template>
94
+ </Demo>
95
+
96
+ ## 自动隐藏中间区域
97
+
98
+ 当整体宽度小于设置的最小中间宽度时自动隐藏中间区域,左右区域平分剩余宽度。
99
+
100
+ <Demo :source-code="layoutHideMidWhenNarrowCode">
101
+ <template #source>
102
+ <layout-hide-mid-when-narrow />
103
+ </template>
104
+ <template #description>
105
+ 通过设置 hideMidWhenNarrow 属性为 true,当容器宽度小于「左侧宽度 + 右侧宽度 + mid最小宽度」时,中间区域会自动隐藏。如果同时存在左侧和右侧区域,它们会平分剩余宽度(各占50%);如果只有一侧,则该侧占据100%宽度。这在响应式布局中非常有用。
106
+ </template>
107
+ </Demo>
108
+
109
+ ## API
110
+
111
+ <ApiTable :data="layoutApi" componentName="layout" />
112
+
113
+ <script setup>
114
+ import LayoutBasic from '../examples/layout/basic.vue'
115
+ import LayoutSimple from '../examples/layout/simple.vue'
116
+ import LayoutTopSide from '../examples/layout/top-side.vue'
117
+ import LayoutCustomSize from '../examples/layout/custom-size.vue'
118
+ import LayoutPercentSize from '../examples/layout/percent-size.vue'
119
+ import LayoutDisableMove from '../examples/layout/disable-move.vue'
120
+ import LayoutMinSize from '../examples/layout/min-size.vue'
121
+ import LayoutHideMidWhenNarrow from '../examples/layout/hide-mid-when-narrow.vue'
122
+ import layoutApi from './meta/layout'
123
+
124
+ import layoutBasicCode from '../examples/layout/basic.vue?raw'
125
+ import layoutSimpleCode from '../examples/layout/simple.vue?raw'
126
+ import layoutTopSideCode from '../examples/layout/top-side.vue?raw'
127
+ import layoutCustomSizeCode from '../examples/layout/custom-size.vue?raw'
128
+ import layoutPercentSizeCode from '../examples/layout/percent-size.vue?raw'
129
+ import layoutDisableMoveCode from '../examples/layout/disable-move.vue?raw'
130
+ import layoutMinSizeCode from '../examples/layout/min-size.vue?raw'
131
+ import layoutHideMidWhenNarrowCode from '../examples/layout/hide-mid-when-narrow.vue?raw'
132
+ </script>
@@ -1,24 +1,24 @@
1
- # Map 地图
2
-
3
- 百度地图组件,用于选择地址和坐标。
4
-
5
- ## 基础用法
6
-
7
- <Demo :source-code="mapBasicCode">
8
- <template #source>
9
- <map-basic />
10
- </template>
11
- <template #description>
12
- 使用 v-model 绑定地址和坐标。
13
- </template>
14
- </Demo>
15
-
16
- ## API
17
-
18
- <ApiTable :data="mapApi" componentName="map" />
19
-
20
- <script setup>
21
- import MapBasic from '../examples/map/basic.vue'
22
- import mapApi from './meta/map'
23
- import mapBasicCode from '../examples/map/basic.vue?raw'
24
- </script>
1
+ # Map 地图
2
+
3
+ 百度地图组件,用于选择地址和坐标。
4
+
5
+ ## 基础用法
6
+
7
+ <Demo :source-code="mapBasicCode">
8
+ <template #source>
9
+ <map-basic />
10
+ </template>
11
+ <template #description>
12
+ 使用 v-model 绑定地址和坐标。
13
+ </template>
14
+ </Demo>
15
+
16
+ ## API
17
+
18
+ <ApiTable :data="mapApi" componentName="map" />
19
+
20
+ <script setup>
21
+ import MapBasic from '../examples/map/basic.vue'
22
+ import mapApi from './meta/map'
23
+ import mapBasicCode from '../examples/map/basic.vue?raw'
24
+ </script>