@a2simcode/ui 0.0.164 → 0.0.166

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