@a2simcode/ui 0.0.154 → 0.0.155

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 (342) 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/components/input-layer/index.d.ts +2 -2
  6. package/dist/components/input-layer/src/input-layer.vue.d.ts +2 -2
  7. package/dist/simcode-ui.es.js +4361 -4349
  8. package/dist/simcode-ui.umd.js +2 -2
  9. package/dist/stats.html +1 -1
  10. package/dist/ui.css +1 -1
  11. package/docs/components/autocomplete.md +89 -89
  12. package/docs/components/barcode.md +101 -101
  13. package/docs/components/button-select.md +24 -24
  14. package/docs/components/button.md +117 -117
  15. package/docs/components/buttons.md +119 -119
  16. package/docs/components/cascader-select.md +114 -114
  17. package/docs/components/checkbox.md +114 -114
  18. package/docs/components/code-mirror.md +85 -85
  19. package/docs/components/collapse.md +26 -26
  20. package/docs/components/comp.md +71 -71
  21. package/docs/components/count-up.md +24 -24
  22. package/docs/components/count.md +24 -24
  23. package/docs/components/data-panel.md +24 -24
  24. package/docs/components/date.md +76 -76
  25. package/docs/components/dialog-full.md +112 -112
  26. package/docs/components/dialog.md +127 -127
  27. package/docs/components/divider.md +24 -24
  28. package/docs/components/drawer.md +127 -127
  29. package/docs/components/dynamic-layer.md +118 -118
  30. package/docs/components/echarts.md +72 -72
  31. package/docs/components/editor.md +24 -24
  32. package/docs/components/form.md +72 -57
  33. package/docs/components/guid.md +39 -39
  34. package/docs/components/hpanel.md +24 -24
  35. package/docs/components/icon.md +56 -56
  36. package/docs/components/input-button.md +24 -24
  37. package/docs/components/input-code.md +24 -24
  38. package/docs/components/input-color.md +114 -114
  39. package/docs/components/input-layer.md +26 -26
  40. package/docs/components/input-rows.md +370 -370
  41. package/docs/components/input-tag.md +50 -50
  42. package/docs/components/input.md +129 -129
  43. package/docs/components/layer-form.md +61 -61
  44. package/docs/components/layer.md +127 -127
  45. package/docs/components/layout.md +132 -132
  46. package/docs/components/map.md +24 -24
  47. package/docs/components/menu.md +121 -121
  48. package/docs/components/meta/buttons.ts +76 -76
  49. package/docs/components/meta/code-mirror.ts +108 -108
  50. package/docs/components/meta/comp.ts +236 -236
  51. package/docs/components/meta/date.ts +267 -267
  52. package/docs/components/meta/echarts.ts +64 -64
  53. package/docs/components/meta/form-item.ts +50 -50
  54. package/docs/components/meta/form.ts +181 -181
  55. package/docs/components/meta/input-cards.ts +112 -112
  56. package/docs/components/meta/input-color.ts +243 -243
  57. package/docs/components/meta/input-layer.ts +366 -366
  58. package/docs/components/meta/input-rows.ts +113 -113
  59. package/docs/components/meta/layer-form.ts +56 -56
  60. package/docs/components/meta/map.ts +68 -68
  61. package/docs/components/meta/panel.ts +152 -152
  62. package/docs/components/meta/slider.ts +270 -270
  63. package/docs/components/meta/table-panel.ts +232 -232
  64. package/docs/components/meta/table.ts +391 -391
  65. package/docs/components/meta/tabs.ts +146 -146
  66. package/docs/components/meta/title.ts +91 -91
  67. package/docs/components/meta/tree-select.ts +199 -199
  68. package/docs/components/meta/vpanel.ts +19 -19
  69. package/docs/components/meta/workflow-viewer.ts +55 -55
  70. package/docs/components/number.md +124 -124
  71. package/docs/components/page.md +102 -102
  72. package/docs/components/panel.md +37 -37
  73. package/docs/components/radio.md +87 -87
  74. package/docs/components/rate.md +71 -71
  75. package/docs/components/select.md +133 -133
  76. package/docs/components/slider-captcha.md +41 -41
  77. package/docs/components/slider.md +101 -101
  78. package/docs/components/switch.md +90 -90
  79. package/docs/components/table-panel.md +236 -236
  80. package/docs/components/table.md +391 -391
  81. package/docs/components/tabs.md +26 -26
  82. package/docs/components/title.md +24 -24
  83. package/docs/components/tree.md +207 -207
  84. package/docs/components/upload.md +117 -117
  85. package/docs/components/workflow-viewer.md +21 -21
  86. package/docs/components/workflow.md +21 -21
  87. package/docs/examples/autocomplete/advanced.vue +35 -35
  88. package/docs/examples/autocomplete/basic.vue +32 -32
  89. package/docs/examples/autocomplete/clearable.vue +33 -33
  90. package/docs/examples/autocomplete/custom-template.vue +49 -49
  91. package/docs/examples/autocomplete/disabled.vue +33 -33
  92. package/docs/examples/autocomplete/icon.vue +37 -37
  93. package/docs/examples/barcode/all-types.vue +380 -380
  94. package/docs/examples/barcode/basic.vue +14 -14
  95. package/docs/examples/barcode/props-appearance.vue +243 -243
  96. package/docs/examples/barcode/props-geometry.vue +143 -143
  97. package/docs/examples/barcode/props-logic.vue +216 -216
  98. package/docs/examples/barcode/props-symbology.vue +199 -199
  99. package/docs/examples/barcode/props-text.vue +268 -268
  100. package/docs/examples/button/basic.vue +7 -7
  101. package/docs/examples/button/danger-ghost.vue +17 -17
  102. package/docs/examples/button/disabled.vue +10 -10
  103. package/docs/examples/button/loading.vue +6 -6
  104. package/docs/examples/button/shape.vue +7 -7
  105. package/docs/examples/button/size.vue +14 -14
  106. package/docs/examples/button/type.vue +9 -9
  107. package/docs/examples/button-select/basic.vue +19 -19
  108. package/docs/examples/buttons/basic.vue +45 -45
  109. package/docs/examples/buttons/disabled.vue +36 -36
  110. package/docs/examples/buttons/dropdown.vue +63 -63
  111. package/docs/examples/buttons/group.vue +52 -52
  112. package/docs/examples/buttons/link.vue +47 -47
  113. package/docs/examples/buttons/popup.vue +39 -39
  114. package/docs/examples/buttons/size.vue +45 -45
  115. package/docs/examples/cascader-select/basic.vue +28 -28
  116. package/docs/examples/cascader-select/clearable.vue +34 -34
  117. package/docs/examples/cascader-select/disabled.vue +43 -43
  118. package/docs/examples/cascader-select/filterable.vue +37 -37
  119. package/docs/examples/cascader-select/methods.vue +84 -84
  120. package/docs/examples/cascader-select/multiple.vue +38 -38
  121. package/docs/examples/cascader-select/slot.vue +45 -45
  122. package/docs/examples/checkbox/basic.vue +18 -18
  123. package/docs/examples/checkbox/button.vue +19 -19
  124. package/docs/examples/checkbox/color.vue +25 -25
  125. package/docs/examples/checkbox/disabled.vue +17 -17
  126. package/docs/examples/checkbox/min-max.vue +20 -20
  127. package/docs/examples/checkbox/mixed.vue +56 -56
  128. package/docs/examples/checkbox/size.vue +28 -28
  129. package/docs/examples/code-mirror/basic.vue +11 -11
  130. package/docs/examples/code-mirror/events.vue +42 -42
  131. package/docs/examples/code-mirror/height.vue +25 -25
  132. package/docs/examples/code-mirror/mode.vue +33 -33
  133. package/docs/examples/code-mirror/readonly.vue +14 -14
  134. package/docs/examples/collapse/basic.vue +82 -82
  135. package/docs/examples/comp/basic.vue +7 -7
  136. package/docs/examples/comp/collapse.vue +38 -38
  137. package/docs/examples/comp/tabs.vue +38 -38
  138. package/docs/examples/count/basic.vue +101 -101
  139. package/docs/examples/count-up/basic.vue +89 -89
  140. package/docs/examples/data-panel/basic.vue +110 -110
  141. package/docs/examples/date/basic.vue +73 -73
  142. package/docs/examples/date/default-value.vue +59 -59
  143. package/docs/examples/date/format.vue +75 -75
  144. package/docs/examples/date/range.vue +66 -66
  145. package/docs/examples/date/types.vue +79 -79
  146. package/docs/examples/decorated-title/basic.vue +31 -31
  147. package/docs/examples/dialog/basic.vue +36 -36
  148. package/docs/examples/dialog/custom-buttons.vue +44 -44
  149. package/docs/examples/dialog/fullscreen.vue +23 -23
  150. package/docs/examples/dialog/no-mask.vue +17 -17
  151. package/docs/examples/dialog/size.vue +44 -44
  152. package/docs/examples/dialog/steps.vue +57 -57
  153. package/docs/examples/dialog-full/basic.vue +29 -29
  154. package/docs/examples/dialog-full/custom-buttons.vue +45 -45
  155. package/docs/examples/dialog-full/no-buttons.vue +18 -18
  156. package/docs/examples/dialog-full/no-header.vue +27 -27
  157. package/docs/examples/dialog-full/steps.vue +71 -71
  158. package/docs/examples/divider/basic.vue +52 -52
  159. package/docs/examples/drawer/basic.vue +35 -35
  160. package/docs/examples/drawer/custom-buttons.vue +34 -34
  161. package/docs/examples/drawer/direction.vue +47 -47
  162. package/docs/examples/drawer/mask.vue +36 -36
  163. package/docs/examples/drawer/no-buttons.vue +20 -20
  164. package/docs/examples/drawer/size.vue +28 -28
  165. package/docs/examples/dynamic-layer/basic.vue +33 -33
  166. package/docs/examples/dynamic-layer/custom-buttons.vue +43 -43
  167. package/docs/examples/dynamic-layer/form.vue +73 -73
  168. package/docs/examples/dynamic-layer/steps.vue +52 -52
  169. package/docs/examples/dynamic-layer/types.vue +40 -40
  170. package/docs/examples/echarts/basic.vue +31 -31
  171. package/docs/examples/echarts/dynamic.vue +43 -43
  172. package/docs/examples/echarts/line.vue +46 -46
  173. package/docs/examples/echarts/pie.vue +44 -44
  174. package/docs/examples/editor/basic.vue +15 -15
  175. package/docs/examples/form/basic.vue +545 -545
  176. package/docs/examples/form/init.vue +76 -76
  177. package/docs/examples/form/master-detail.vue +203 -203
  178. package/docs/examples/form/rule-format.vue +142 -0
  179. package/docs/examples/guid/basic.vue +10 -10
  180. package/docs/examples/guid/size.vue +13 -13
  181. package/docs/examples/hpanel/basic.vue +79 -79
  182. package/docs/examples/icon/basic.vue +9 -9
  183. package/docs/examples/icon/rotate-flip.vue +9 -9
  184. package/docs/examples/icon/size.vue +7 -7
  185. package/docs/examples/input/basic.vue +10 -10
  186. package/docs/examples/input/clearable.vue +12 -12
  187. package/docs/examples/input/disabled.vue +6 -6
  188. package/docs/examples/input/icon.vue +23 -23
  189. package/docs/examples/input/password.vue +18 -18
  190. package/docs/examples/input/size.vue +13 -13
  191. package/docs/examples/input/textarea.vue +25 -25
  192. package/docs/examples/input/word-limit.vue +28 -28
  193. package/docs/examples/input-button/basic.vue +33 -33
  194. package/docs/examples/input-code/basic.vue +29 -29
  195. package/docs/examples/input-color/basic.vue +10 -10
  196. package/docs/examples/input-color/disabled.vue +13 -13
  197. package/docs/examples/input-color/format.vue +17 -17
  198. package/docs/examples/input-color/no-alpha.vue +13 -13
  199. package/docs/examples/input-color/only-button.vue +15 -15
  200. package/docs/examples/input-color/predefine.vue +31 -31
  201. package/docs/examples/input-color/size.vue +15 -15
  202. package/docs/examples/input-layer/basic.vue +86 -86
  203. package/docs/examples/input-rows/basic.vue +73 -73
  204. package/docs/examples/input-rows/drag.vue +48 -48
  205. package/docs/examples/input-rows/layer-form.vue +85 -85
  206. package/docs/examples/input-rows/nested.vue +91 -91
  207. package/docs/examples/input-tag/basic.vue +27 -27
  208. package/docs/examples/input-tag/colors.vue +23 -23
  209. package/docs/examples/input-tag/readonly.vue +17 -17
  210. package/docs/examples/layer/basic.vue +43 -43
  211. package/docs/examples/layer/custom-buttons.vue +61 -61
  212. package/docs/examples/layer/drawer.vue +37 -37
  213. package/docs/examples/layer/full.vue +38 -38
  214. package/docs/examples/layer/modal.vue +34 -34
  215. package/docs/examples/layer/steps.vue +46 -46
  216. package/docs/examples/layer-form/basic.vue +76 -76
  217. package/docs/examples/layer-form/config.vue +82 -82
  218. package/docs/examples/layer-form/size.vue +72 -72
  219. package/docs/examples/layout/basic.vue +36 -36
  220. package/docs/examples/layout/custom-size.vue +50 -50
  221. package/docs/examples/layout/disable-move.vue +37 -37
  222. package/docs/examples/layout/hide-mid-when-narrow.vue +96 -96
  223. package/docs/examples/layout/min-size.vue +73 -73
  224. package/docs/examples/layout/percent-size.vue +80 -80
  225. package/docs/examples/layout/simple.vue +22 -22
  226. package/docs/examples/layout/top-side.vue +34 -34
  227. package/docs/examples/map/basic.vue +22 -22
  228. package/docs/examples/menu/basic.vue +58 -58
  229. package/docs/examples/menu/collapsed.vue +49 -49
  230. package/docs/examples/menu/horizontal.vue +44 -44
  231. package/docs/examples/menu/selection-test.vue +104 -104
  232. package/docs/examples/menu/theme.vue +46 -46
  233. package/docs/examples/menu/vertical.vue +46 -46
  234. package/docs/examples/number/advanced.vue +143 -143
  235. package/docs/examples/number/basic.vue +63 -63
  236. package/docs/examples/number/disabled.vue +49 -49
  237. package/docs/examples/number/size.vue +42 -42
  238. package/docs/examples/number/slots.vue +123 -123
  239. package/docs/examples/number/step-strictly.vue +41 -41
  240. package/docs/examples/number/step.vue +47 -47
  241. package/docs/examples/page/basic.vue +41 -41
  242. package/docs/examples/page/code-table-model.vue +428 -428
  243. package/docs/examples/page/dept-user-management.vue +211 -211
  244. package/docs/examples/page/init.vue +87 -87
  245. package/docs/examples/page/log.vue +453 -453
  246. package/docs/examples/page/user-management.vue +313 -313
  247. package/docs/examples/panel/tool-buttons.vue +18 -18
  248. package/docs/examples/radio/basic.vue +17 -17
  249. package/docs/examples/radio/button.vue +17 -17
  250. package/docs/examples/radio/color.vue +18 -18
  251. package/docs/examples/radio/disabled.vue +17 -17
  252. package/docs/examples/radio/size.vue +29 -29
  253. package/docs/examples/rate/basic.vue +24 -24
  254. package/docs/examples/rate/half.vue +24 -24
  255. package/docs/examples/rate/readonly.vue +11 -11
  256. package/docs/examples/rate/text.vue +37 -37
  257. package/docs/examples/select/basic.vue +16 -16
  258. package/docs/examples/select/clearable.vue +22 -22
  259. package/docs/examples/select/disabled.vue +31 -31
  260. package/docs/examples/select/filterable.vue +24 -24
  261. package/docs/examples/select/group.vue +23 -23
  262. package/docs/examples/select/icon.vue +16 -16
  263. package/docs/examples/select/multiple.vue +18 -18
  264. package/docs/examples/select/size.vue +39 -39
  265. package/docs/examples/slider/basic.vue +42 -42
  266. package/docs/examples/slider/disabled.vue +17 -17
  267. package/docs/examples/slider/marks.vue +30 -30
  268. package/docs/examples/slider/size.vue +37 -37
  269. package/docs/examples/slider/tooltip.vue +36 -36
  270. package/docs/examples/slider/vertical.vue +26 -26
  271. package/docs/examples/slider-captcha/basic.vue +44 -44
  272. package/docs/examples/slider-captcha/custom.vue +48 -48
  273. package/docs/examples/switch/basic.vue +16 -16
  274. package/docs/examples/switch/disabled.vue +13 -13
  275. package/docs/examples/switch/loading.vue +13 -13
  276. package/docs/examples/switch/size.vue +15 -15
  277. package/docs/examples/switch/text.vue +13 -13
  278. package/docs/examples/table/action-filter.vue +126 -126
  279. package/docs/examples/table/actions.vue +116 -116
  280. package/docs/examples/table/add-row.vue +103 -103
  281. package/docs/examples/table/basic.vue +168 -168
  282. package/docs/examples/table/checkbox-layout.vue +68 -68
  283. package/docs/examples/table/custom-layout.vue +115 -115
  284. package/docs/examples/table/dynamic-type.vue +73 -73
  285. package/docs/examples/table/editable.vue +262 -262
  286. package/docs/examples/table/field-selection.vue +87 -87
  287. package/docs/examples/table/frozen-column.vue +140 -140
  288. package/docs/examples/table/height-mode.vue +99 -99
  289. package/docs/examples/table/icon.vue +85 -85
  290. package/docs/examples/table/link.vue +66 -66
  291. package/docs/examples/table/multiple.vue +188 -188
  292. package/docs/examples/table/pagination.vue +151 -151
  293. package/docs/examples/table/single-selection.vue +64 -64
  294. package/docs/examples/table/sub-table-lazy.vue +97 -97
  295. package/docs/examples/table/sub-table.vue +103 -103
  296. package/docs/examples/table/tag.vue +43 -43
  297. package/docs/examples/table/tree-column.vue +119 -119
  298. package/docs/examples/table/tree-data.vue +141 -141
  299. package/docs/examples/table/tree-default-expand-all.vue +60 -60
  300. package/docs/examples/table/tree-lazy.vue +80 -80
  301. package/docs/examples/table/tree-set-selection.vue +75 -75
  302. package/docs/examples/table-panel/basic.vue +229 -229
  303. package/docs/examples/table-panel/batch-operations.vue +285 -285
  304. package/docs/examples/table-panel/button-visibility.vue +88 -88
  305. package/docs/examples/table-panel/filter.vue +219 -219
  306. package/docs/examples/table-panel/get-selection.vue +111 -111
  307. package/docs/examples/table-panel/multiple-selection.vue +243 -243
  308. package/docs/examples/table-panel/pagination.vue +133 -133
  309. package/docs/examples/table-panel/sub-table-lazy.vue +118 -118
  310. package/docs/examples/table-panel/tree-parent-key.vue +67 -67
  311. package/docs/examples/tabs/basic.vue +98 -98
  312. package/docs/examples/time/base.vue +67 -67
  313. package/docs/examples/title/basic.vue +87 -87
  314. package/docs/examples/tree/accordion.vue +46 -46
  315. package/docs/examples/tree/basic.vue +50 -50
  316. package/docs/examples/tree/buttons.vue +53 -53
  317. package/docs/examples/tree/checkable.vue +52 -52
  318. package/docs/examples/tree/custom-keys.vue +39 -39
  319. package/docs/examples/tree/default-expanded.vue +52 -52
  320. package/docs/examples/tree/draggable.vue +29 -29
  321. package/docs/examples/tree/expand-on-click.vue +39 -39
  322. package/docs/examples/tree/flat-data.vue +20 -20
  323. package/docs/examples/tree/icon.vue +40 -40
  324. package/docs/examples/tree/load-data.vue +37 -37
  325. package/docs/examples/tree/methods.vue +74 -74
  326. package/docs/examples/tree/theme.vue +33 -33
  327. package/docs/examples/tree-select/basic.vue +47 -47
  328. package/docs/examples/upload/accept.vue +31 -31
  329. package/docs/examples/upload/basic.vue +12 -12
  330. package/docs/examples/upload/drag.vue +11 -11
  331. package/docs/examples/upload/image.vue +17 -17
  332. package/docs/examples/upload/limit.vue +20 -20
  333. package/docs/examples/upload/multiple.vue +17 -17
  334. package/docs/examples/upload/readonly.vue +17 -17
  335. package/docs/examples/utils/cipher.vue +160 -160
  336. package/docs/examples/utils/common.vue +153 -153
  337. package/docs/examples/utils/date.vue +56 -56
  338. package/docs/examples/utils/dom.vue +52 -52
  339. package/docs/examples/utils/is.vue +70 -70
  340. package/docs/examples/workflow/basic.vue +265 -265
  341. package/docs/examples/workflow-viewer/basic.vue +248 -248
  342. package/package.json +23 -23
@@ -1,23 +1,23 @@
1
- <template>
2
- <div>
3
- <j-button label="可全屏弹窗" @click="visible = true" />
4
- <j-dialog
5
- v-model:visible="visible"
6
- title="全屏弹窗"
7
- :show-full-screen-btn="true"
8
- :width="600"
9
- :height="400"
10
- >
11
- <div style="padding: 16px">
12
- <p>点击右上角的全屏按钮可以切换全屏显示。</p>
13
- <p>全屏状态下可以再次点击退出全屏。</p>
14
- </div>
15
- </j-dialog>
16
- </div>
17
- </template>
18
-
19
- <script setup lang="ts">
20
- import { ref } from 'vue'
21
-
22
- const visible = ref(false)
23
- </script>
1
+ <template>
2
+ <div>
3
+ <j-button label="可全屏弹窗" @click="visible = true" />
4
+ <j-dialog
5
+ v-model:visible="visible"
6
+ title="全屏弹窗"
7
+ :show-full-screen-btn="true"
8
+ :width="600"
9
+ :height="400"
10
+ >
11
+ <div style="padding: 16px">
12
+ <p>点击右上角的全屏按钮可以切换全屏显示。</p>
13
+ <p>全屏状态下可以再次点击退出全屏。</p>
14
+ </div>
15
+ </j-dialog>
16
+ </div>
17
+ </template>
18
+
19
+ <script setup lang="ts">
20
+ import { ref } from 'vue'
21
+
22
+ const visible = ref(false)
23
+ </script>
@@ -1,17 +1,17 @@
1
- <template>
2
- <div>
3
- <j-button label="无遮罩弹窗" @click="visible = true" />
4
- <j-dialog v-model:visible="visible" title="无遮罩弹窗" :width="500" :height="350" :mask="false">
5
- <div style="padding: 16px">
6
- <p>这个弹窗没有遮罩层。</p>
7
- <p>你可以与页面其他内容进行交互。</p>
8
- </div>
9
- </j-dialog>
10
- </div>
11
- </template>
12
-
13
- <script setup lang="ts">
14
- import { ref } from 'vue'
15
-
16
- const visible = ref(false)
17
- </script>
1
+ <template>
2
+ <div>
3
+ <j-button label="无遮罩弹窗" @click="visible = true" />
4
+ <j-dialog v-model:visible="visible" title="无遮罩弹窗" :width="500" :height="350" :mask="false">
5
+ <div style="padding: 16px">
6
+ <p>这个弹窗没有遮罩层。</p>
7
+ <p>你可以与页面其他内容进行交互。</p>
8
+ </div>
9
+ </j-dialog>
10
+ </div>
11
+ </template>
12
+
13
+ <script setup lang="ts">
14
+ import { ref } from 'vue'
15
+
16
+ const visible = ref(false)
17
+ </script>
@@ -1,44 +1,44 @@
1
- <template>
2
- <div style="display: flex; gap: 8px">
3
- <j-button label="小弹窗" @click="showDialog('small')" />
4
- <j-button label="中等弹窗" @click="showDialog('medium')" />
5
- <j-button label="大弹窗" @click="showDialog('large')" />
6
- <j-dialog v-model:visible="visible" :title="title" :width="width" :height="height">
7
- <div style="padding: 16px">
8
- <p>当前弹窗尺寸:{{ title }}</p>
9
- <p>宽度:{{ width }}px</p>
10
- <p>高度:{{ height }}px</p>
11
- </div>
12
- </j-dialog>
13
- </div>
14
- </template>
15
-
16
- <script setup lang="ts">
17
- import { ref } from 'vue'
18
-
19
- const visible = ref(false)
20
- const title = ref('')
21
- const width = ref(600)
22
- const height = ref(400)
23
-
24
- const showDialog = (size: string) => {
25
- switch (size) {
26
- case 'small':
27
- title.value = '小弹窗'
28
- width.value = 400
29
- height.value = 300
30
- break
31
- case 'medium':
32
- title.value = '中等弹窗'
33
- width.value = 600
34
- height.value = 400
35
- break
36
- case 'large':
37
- title.value = '大弹窗'
38
- width.value = 900
39
- height.value = 600
40
- break
41
- }
42
- visible.value = true
43
- }
44
- </script>
1
+ <template>
2
+ <div style="display: flex; gap: 8px">
3
+ <j-button label="小弹窗" @click="showDialog('small')" />
4
+ <j-button label="中等弹窗" @click="showDialog('medium')" />
5
+ <j-button label="大弹窗" @click="showDialog('large')" />
6
+ <j-dialog v-model:visible="visible" :title="title" :width="width" :height="height">
7
+ <div style="padding: 16px">
8
+ <p>当前弹窗尺寸:{{ title }}</p>
9
+ <p>宽度:{{ width }}px</p>
10
+ <p>高度:{{ height }}px</p>
11
+ </div>
12
+ </j-dialog>
13
+ </div>
14
+ </template>
15
+
16
+ <script setup lang="ts">
17
+ import { ref } from 'vue'
18
+
19
+ const visible = ref(false)
20
+ const title = ref('')
21
+ const width = ref(600)
22
+ const height = ref(400)
23
+
24
+ const showDialog = (size: string) => {
25
+ switch (size) {
26
+ case 'small':
27
+ title.value = '小弹窗'
28
+ width.value = 400
29
+ height.value = 300
30
+ break
31
+ case 'medium':
32
+ title.value = '中等弹窗'
33
+ width.value = 600
34
+ height.value = 400
35
+ break
36
+ case 'large':
37
+ title.value = '大弹窗'
38
+ width.value = 900
39
+ height.value = 600
40
+ break
41
+ }
42
+ visible.value = true
43
+ }
44
+ </script>
@@ -1,57 +1,57 @@
1
- <template>
2
- <div>
3
- <j-button label="步骤弹窗" @click="visible = true" />
4
- <j-dialog
5
- v-model:visible="visible"
6
- v-model:step-active="stepActive"
7
- title="分步骤表单"
8
- :width="700"
9
- :height="450"
10
- :is-step="true"
11
- :steps="steps"
12
- :validate-steps="validateSteps"
13
- @ok="handleOk"
14
- >
15
- <div style="padding: 16px">
16
- <div v-if="stepActive === 0">
17
- <h3>步骤一:基本信息</h3>
18
- <p>请填写基本信息...</p>
19
- </div>
20
- <div v-if="stepActive === 1">
21
- <h3>步骤二:详细配置</h3>
22
- <p>请完成详细配置...</p>
23
- </div>
24
- <div v-if="stepActive === 2">
25
- <h3>步骤三:确认提交</h3>
26
- <p>请确认信息后提交...</p>
27
- </div>
28
- </div>
29
- </j-dialog>
30
- </div>
31
- </template>
32
-
33
- <script setup lang="ts">
34
- import { ref } from 'vue'
35
- import { ElMessage } from 'element-plus'
36
-
37
- const visible = ref(false)
38
- const stepActive = ref(0)
39
- const steps = ['基本信息', '详细配置', '确认提交']
40
-
41
- const validateSteps = async (step: number) => {
42
- // 模拟校验
43
- await new Promise((resolve) => setTimeout(resolve, 500))
44
- ElMessage.success(`步骤 ${step + 1} 校验通过`)
45
- return true
46
- }
47
-
48
- const handleOk = (showLoading: any, hideLoading: any) => {
49
- showLoading('提交中...')
50
- setTimeout(() => {
51
- hideLoading()
52
- ElMessage.success('提交成功')
53
- visible.value = false
54
- stepActive.value = 0
55
- }, 1000)
56
- }
57
- </script>
1
+ <template>
2
+ <div>
3
+ <j-button label="步骤弹窗" @click="visible = true" />
4
+ <j-dialog
5
+ v-model:visible="visible"
6
+ v-model:step-active="stepActive"
7
+ title="分步骤表单"
8
+ :width="700"
9
+ :height="450"
10
+ :is-step="true"
11
+ :steps="steps"
12
+ :validate-steps="validateSteps"
13
+ @ok="handleOk"
14
+ >
15
+ <div style="padding: 16px">
16
+ <div v-if="stepActive === 0">
17
+ <h3>步骤一:基本信息</h3>
18
+ <p>请填写基本信息...</p>
19
+ </div>
20
+ <div v-if="stepActive === 1">
21
+ <h3>步骤二:详细配置</h3>
22
+ <p>请完成详细配置...</p>
23
+ </div>
24
+ <div v-if="stepActive === 2">
25
+ <h3>步骤三:确认提交</h3>
26
+ <p>请确认信息后提交...</p>
27
+ </div>
28
+ </div>
29
+ </j-dialog>
30
+ </div>
31
+ </template>
32
+
33
+ <script setup lang="ts">
34
+ import { ref } from 'vue'
35
+ import { ElMessage } from 'element-plus'
36
+
37
+ const visible = ref(false)
38
+ const stepActive = ref(0)
39
+ const steps = ['基本信息', '详细配置', '确认提交']
40
+
41
+ const validateSteps = async (step: number) => {
42
+ // 模拟校验
43
+ await new Promise((resolve) => setTimeout(resolve, 500))
44
+ ElMessage.success(`步骤 ${step + 1} 校验通过`)
45
+ return true
46
+ }
47
+
48
+ const handleOk = (showLoading: any, hideLoading: any) => {
49
+ showLoading('提交中...')
50
+ setTimeout(() => {
51
+ hideLoading()
52
+ ElMessage.success('提交成功')
53
+ visible.value = false
54
+ stepActive.value = 0
55
+ }, 1000)
56
+ }
57
+ </script>
@@ -1,29 +1,29 @@
1
- <template>
2
- <div>
3
- <j-button label="打开全屏弹窗" @click="visible = true" />
4
- <j-dialog-full v-model:visible="visible" title="全屏弹窗" @ok="handleOk" @cancel="handleCancel">
5
- <div style="padding: 24px">
6
- <p>这是一个全屏弹窗示例。</p>
7
- <p>全屏弹窗占据整个屏幕,适用于复杂的表单或大量内容展示。</p>
8
- </div>
9
- </j-dialog-full>
10
- </div>
11
- </template>
12
-
13
- <script setup lang="ts">
14
- import { ref } from 'vue'
15
-
16
- const visible = ref(false)
17
-
18
- const handleOk = (showLoading: any, hideLoading: any) => {
19
- showLoading('保存中...')
20
- setTimeout(() => {
21
- hideLoading()
22
- visible.value = false
23
- }, 1000)
24
- }
25
-
26
- const handleCancel = () => {
27
- visible.value = false
28
- }
29
- </script>
1
+ <template>
2
+ <div>
3
+ <j-button label="打开全屏弹窗" @click="visible = true" />
4
+ <j-dialog-full v-model:visible="visible" title="全屏弹窗" @ok="handleOk" @cancel="handleCancel">
5
+ <div style="padding: 24px">
6
+ <p>这是一个全屏弹窗示例。</p>
7
+ <p>全屏弹窗占据整个屏幕,适用于复杂的表单或大量内容展示。</p>
8
+ </div>
9
+ </j-dialog-full>
10
+ </div>
11
+ </template>
12
+
13
+ <script setup lang="ts">
14
+ import { ref } from 'vue'
15
+
16
+ const visible = ref(false)
17
+
18
+ const handleOk = (showLoading: any, hideLoading: any) => {
19
+ showLoading('保存中...')
20
+ setTimeout(() => {
21
+ hideLoading()
22
+ visible.value = false
23
+ }, 1000)
24
+ }
25
+
26
+ const handleCancel = () => {
27
+ visible.value = false
28
+ }
29
+ </script>
@@ -1,45 +1,45 @@
1
- <template>
2
- <div>
3
- <j-button label="打开自定义按钮弹窗" @click="visible = true" />
4
- <j-dialog-full v-model:visible="visible" title="自定义按钮" :buttons="buttons" @ok="handleOk">
5
- <div style="padding: 24px">
6
- <p>通过 buttons 属性可以自定义顶部操作按钮。</p>
7
- <p>支持设置按钮类型、样式、图标、点击事件等。</p>
8
- </div>
9
- </j-dialog-full>
10
- </div>
11
- </template>
12
-
13
- <script setup lang="ts">
14
- import { ref } from 'vue'
15
- import { ElMessage } from 'element-plus'
16
-
17
- const visible = ref(false)
18
-
19
- const buttons = [
20
- {
21
- prop: 'refresh',
22
- label: '刷新',
23
- icon: 'material-symbols-light:refresh',
24
- click: () => {
25
- ElMessage.success('刷新成功')
26
- },
27
- },
28
- {
29
- prop: 'export',
30
- label: '导出',
31
- icon: 'material-symbols-light:download',
32
- click: () => {
33
- ElMessage.success('导出成功')
34
- },
35
- },
36
- ]
37
-
38
- const handleOk = (showLoading: any, hideLoading: any) => {
39
- showLoading('保存中...')
40
- setTimeout(() => {
41
- hideLoading()
42
- visible.value = false
43
- }, 1000)
44
- }
45
- </script>
1
+ <template>
2
+ <div>
3
+ <j-button label="打开自定义按钮弹窗" @click="visible = true" />
4
+ <j-dialog-full v-model:visible="visible" title="自定义按钮" :buttons="buttons" @ok="handleOk">
5
+ <div style="padding: 24px">
6
+ <p>通过 buttons 属性可以自定义顶部操作按钮。</p>
7
+ <p>支持设置按钮类型、样式、图标、点击事件等。</p>
8
+ </div>
9
+ </j-dialog-full>
10
+ </div>
11
+ </template>
12
+
13
+ <script setup lang="ts">
14
+ import { ref } from 'vue'
15
+ import { ElMessage } from 'element-plus'
16
+
17
+ const visible = ref(false)
18
+
19
+ const buttons = [
20
+ {
21
+ prop: 'refresh',
22
+ label: '刷新',
23
+ icon: 'material-symbols-light:refresh',
24
+ click: () => {
25
+ ElMessage.success('刷新成功')
26
+ },
27
+ },
28
+ {
29
+ prop: 'export',
30
+ label: '导出',
31
+ icon: 'material-symbols-light:download',
32
+ click: () => {
33
+ ElMessage.success('导出成功')
34
+ },
35
+ },
36
+ ]
37
+
38
+ const handleOk = (showLoading: any, hideLoading: any) => {
39
+ showLoading('保存中...')
40
+ setTimeout(() => {
41
+ hideLoading()
42
+ visible.value = false
43
+ }, 1000)
44
+ }
45
+ </script>
@@ -1,18 +1,18 @@
1
- <template>
2
- <div>
3
- <j-button label="打开无按钮弹窗" @click="visible = true" />
4
- <j-dialog-full v-model:visible="visible" title="无按钮弹窗" :has-btns="false">
5
- <div style="padding: 24px">
6
- <p>设置 has-btns 为 false 可以隐藏所有按钮。</p>
7
- <p>适用于只展示内容不需要操作的场景。</p>
8
- <p>可以按 ESC 键关闭弹窗,需要设置 keyboard 为 true。</p>
9
- </div>
10
- </j-dialog-full>
11
- </div>
12
- </template>
13
-
14
- <script setup lang="ts">
15
- import { ref } from 'vue'
16
-
17
- const visible = ref(false)
18
- </script>
1
+ <template>
2
+ <div>
3
+ <j-button label="打开无按钮弹窗" @click="visible = true" />
4
+ <j-dialog-full v-model:visible="visible" title="无按钮弹窗" :has-btns="false">
5
+ <div style="padding: 24px">
6
+ <p>设置 has-btns 为 false 可以隐藏所有按钮。</p>
7
+ <p>适用于只展示内容不需要操作的场景。</p>
8
+ <p>可以按 ESC 键关闭弹窗,需要设置 keyboard 为 true。</p>
9
+ </div>
10
+ </j-dialog-full>
11
+ </div>
12
+ </template>
13
+
14
+ <script setup lang="ts">
15
+ import { ref } from 'vue'
16
+
17
+ const visible = ref(false)
18
+ </script>
@@ -1,27 +1,27 @@
1
- <template>
2
- <div>
3
- <j-button label="打开无表头弹窗" @click="visible = true" />
4
- <j-dialog-full v-model:visible="visible" :has-header="false">
5
- <div
6
- style="
7
- padding: 24px;
8
- height: 100%;
9
- display: flex;
10
- align-items: center;
11
- justify-content: center;
12
- flex-direction: column;
13
- "
14
- >
15
- <h2>无表头弹窗</h2>
16
- <p>设置 has-header 为 false 可以隐藏表头区域。</p>
17
- <j-button label="关闭" style="margin-top: 20px" @click="visible = false" />
18
- </div>
19
- </j-dialog-full>
20
- </div>
21
- </template>
22
-
23
- <script setup lang="ts">
24
- import { ref } from 'vue'
25
-
26
- const visible = ref(false)
27
- </script>
1
+ <template>
2
+ <div>
3
+ <j-button label="打开无表头弹窗" @click="visible = true" />
4
+ <j-dialog-full v-model:visible="visible" :has-header="false">
5
+ <div
6
+ style="
7
+ padding: 24px;
8
+ height: 100%;
9
+ display: flex;
10
+ align-items: center;
11
+ justify-content: center;
12
+ flex-direction: column;
13
+ "
14
+ >
15
+ <h2>无表头弹窗</h2>
16
+ <p>设置 has-header 为 false 可以隐藏表头区域。</p>
17
+ <j-button label="关闭" style="margin-top: 20px" @click="visible = false" />
18
+ </div>
19
+ </j-dialog-full>
20
+ </div>
21
+ </template>
22
+
23
+ <script setup lang="ts">
24
+ import { ref } from 'vue'
25
+
26
+ const visible = ref(false)
27
+ </script>