@a2simcode/ui 0.0.269 → 0.0.271

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