@a2simcode/ui 0.0.214 → 0.0.216

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