@a2simcode/ui 0.0.82 → 0.0.84

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