@a2simcode/ui 0.0.163 → 0.0.164

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