@a2simcode/ui 0.0.152 → 0.0.153

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (342) hide show
  1. package/.cursor/skills/ui-component-helper/README.md +86 -86
  2. package/.cursor/skills/ui-component-helper/SKILL.md +115 -115
  3. package/LICENSE +53 -53
  4. package/README.md +156 -156
  5. package/dist/components/comp/src/interface.d.ts +7 -1
  6. package/dist/components/input-layer/index.d.ts +2 -2
  7. package/dist/components/input-layer/src/input-layer.vue.d.ts +2 -2
  8. package/dist/simcode-ui.es.js +4307 -4317
  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 +57 -57
  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 +26 -26
  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/buttons.ts +76 -76
  50. package/docs/components/meta/code-mirror.ts +108 -108
  51. package/docs/components/meta/comp.ts +236 -236
  52. package/docs/components/meta/date.ts +267 -267
  53. package/docs/components/meta/echarts.ts +64 -64
  54. package/docs/components/meta/form-item.ts +50 -50
  55. package/docs/components/meta/form.ts +181 -181
  56. package/docs/components/meta/input-cards.ts +112 -112
  57. package/docs/components/meta/input-color.ts +243 -243
  58. package/docs/components/meta/input-layer.ts +366 -366
  59. package/docs/components/meta/input-rows.ts +113 -113
  60. package/docs/components/meta/layer-form.ts +56 -56
  61. package/docs/components/meta/map.ts +68 -68
  62. package/docs/components/meta/panel.ts +152 -152
  63. package/docs/components/meta/slider.ts +270 -270
  64. package/docs/components/meta/table-panel.ts +232 -232
  65. package/docs/components/meta/table.ts +391 -391
  66. package/docs/components/meta/tabs.ts +146 -146
  67. package/docs/components/meta/title.ts +91 -91
  68. package/docs/components/meta/tree-select.ts +199 -199
  69. package/docs/components/meta/vpanel.ts +19 -19
  70. package/docs/components/meta/workflow-viewer.ts +55 -55
  71. package/docs/components/number.md +124 -124
  72. package/docs/components/page.md +102 -102
  73. package/docs/components/panel.md +37 -37
  74. package/docs/components/radio.md +87 -87
  75. package/docs/components/rate.md +71 -71
  76. package/docs/components/select.md +133 -133
  77. package/docs/components/slider-captcha.md +41 -41
  78. package/docs/components/slider.md +101 -101
  79. package/docs/components/switch.md +90 -90
  80. package/docs/components/table-panel.md +236 -236
  81. package/docs/components/table.md +391 -391
  82. package/docs/components/tabs.md +26 -26
  83. package/docs/components/title.md +24 -24
  84. package/docs/components/tree.md +207 -207
  85. package/docs/components/upload.md +117 -117
  86. package/docs/components/workflow-viewer.md +21 -21
  87. package/docs/components/workflow.md +21 -21
  88. package/docs/examples/autocomplete/advanced.vue +35 -35
  89. package/docs/examples/autocomplete/basic.vue +32 -32
  90. package/docs/examples/autocomplete/clearable.vue +33 -33
  91. package/docs/examples/autocomplete/custom-template.vue +49 -49
  92. package/docs/examples/autocomplete/disabled.vue +33 -33
  93. package/docs/examples/autocomplete/icon.vue +37 -37
  94. package/docs/examples/barcode/all-types.vue +380 -380
  95. package/docs/examples/barcode/basic.vue +14 -14
  96. package/docs/examples/barcode/props-appearance.vue +243 -243
  97. package/docs/examples/barcode/props-geometry.vue +143 -143
  98. package/docs/examples/barcode/props-logic.vue +216 -216
  99. package/docs/examples/barcode/props-symbology.vue +199 -199
  100. package/docs/examples/barcode/props-text.vue +268 -268
  101. package/docs/examples/button/basic.vue +7 -7
  102. package/docs/examples/button/danger-ghost.vue +17 -17
  103. package/docs/examples/button/disabled.vue +10 -10
  104. package/docs/examples/button/loading.vue +6 -6
  105. package/docs/examples/button/shape.vue +7 -7
  106. package/docs/examples/button/size.vue +14 -14
  107. package/docs/examples/button/type.vue +9 -9
  108. package/docs/examples/button-select/basic.vue +19 -19
  109. package/docs/examples/buttons/basic.vue +45 -45
  110. package/docs/examples/buttons/disabled.vue +36 -36
  111. package/docs/examples/buttons/dropdown.vue +63 -63
  112. package/docs/examples/buttons/group.vue +52 -52
  113. package/docs/examples/buttons/link.vue +47 -47
  114. package/docs/examples/buttons/popup.vue +39 -39
  115. package/docs/examples/buttons/size.vue +45 -45
  116. package/docs/examples/cascader-select/basic.vue +28 -28
  117. package/docs/examples/cascader-select/clearable.vue +34 -34
  118. package/docs/examples/cascader-select/disabled.vue +43 -43
  119. package/docs/examples/cascader-select/filterable.vue +37 -37
  120. package/docs/examples/cascader-select/methods.vue +84 -84
  121. package/docs/examples/cascader-select/multiple.vue +38 -38
  122. package/docs/examples/cascader-select/slot.vue +45 -45
  123. package/docs/examples/checkbox/basic.vue +18 -18
  124. package/docs/examples/checkbox/button.vue +19 -19
  125. package/docs/examples/checkbox/color.vue +25 -25
  126. package/docs/examples/checkbox/disabled.vue +17 -17
  127. package/docs/examples/checkbox/min-max.vue +20 -20
  128. package/docs/examples/checkbox/mixed.vue +56 -56
  129. package/docs/examples/checkbox/size.vue +28 -28
  130. package/docs/examples/code-mirror/basic.vue +11 -11
  131. package/docs/examples/code-mirror/events.vue +42 -42
  132. package/docs/examples/code-mirror/height.vue +25 -25
  133. package/docs/examples/code-mirror/mode.vue +33 -33
  134. package/docs/examples/code-mirror/readonly.vue +14 -14
  135. package/docs/examples/collapse/basic.vue +82 -82
  136. package/docs/examples/comp/basic.vue +7 -7
  137. package/docs/examples/comp/collapse.vue +38 -38
  138. package/docs/examples/comp/tabs.vue +38 -38
  139. package/docs/examples/count/basic.vue +101 -101
  140. package/docs/examples/count-up/basic.vue +89 -89
  141. package/docs/examples/data-panel/basic.vue +110 -110
  142. package/docs/examples/date/basic.vue +73 -73
  143. package/docs/examples/date/default-value.vue +59 -59
  144. package/docs/examples/date/format.vue +75 -75
  145. package/docs/examples/date/range.vue +66 -66
  146. package/docs/examples/date/types.vue +79 -79
  147. package/docs/examples/decorated-title/basic.vue +31 -31
  148. package/docs/examples/dialog/basic.vue +36 -36
  149. package/docs/examples/dialog/custom-buttons.vue +44 -44
  150. package/docs/examples/dialog/fullscreen.vue +23 -23
  151. package/docs/examples/dialog/no-mask.vue +17 -17
  152. package/docs/examples/dialog/size.vue +44 -44
  153. package/docs/examples/dialog/steps.vue +57 -57
  154. package/docs/examples/dialog-full/basic.vue +29 -29
  155. package/docs/examples/dialog-full/custom-buttons.vue +45 -45
  156. package/docs/examples/dialog-full/no-buttons.vue +18 -18
  157. package/docs/examples/dialog-full/no-header.vue +27 -27
  158. package/docs/examples/dialog-full/steps.vue +71 -71
  159. package/docs/examples/divider/basic.vue +52 -52
  160. package/docs/examples/drawer/basic.vue +35 -35
  161. package/docs/examples/drawer/custom-buttons.vue +34 -34
  162. package/docs/examples/drawer/direction.vue +47 -47
  163. package/docs/examples/drawer/mask.vue +36 -36
  164. package/docs/examples/drawer/no-buttons.vue +20 -20
  165. package/docs/examples/drawer/size.vue +28 -28
  166. package/docs/examples/dynamic-layer/basic.vue +33 -33
  167. package/docs/examples/dynamic-layer/custom-buttons.vue +43 -43
  168. package/docs/examples/dynamic-layer/form.vue +73 -73
  169. package/docs/examples/dynamic-layer/steps.vue +52 -52
  170. package/docs/examples/dynamic-layer/types.vue +40 -40
  171. package/docs/examples/echarts/basic.vue +31 -31
  172. package/docs/examples/echarts/dynamic.vue +43 -43
  173. package/docs/examples/echarts/line.vue +46 -46
  174. package/docs/examples/echarts/pie.vue +44 -44
  175. package/docs/examples/editor/basic.vue +15 -15
  176. package/docs/examples/form/basic.vue +545 -545
  177. package/docs/examples/form/init.vue +76 -76
  178. package/docs/examples/form/master-detail.vue +203 -203
  179. package/docs/examples/guid/basic.vue +10 -10
  180. package/docs/examples/guid/size.vue +13 -13
  181. package/docs/examples/hpanel/basic.vue +79 -79
  182. package/docs/examples/icon/basic.vue +9 -9
  183. package/docs/examples/icon/rotate-flip.vue +9 -9
  184. package/docs/examples/icon/size.vue +7 -7
  185. package/docs/examples/input/basic.vue +10 -10
  186. package/docs/examples/input/clearable.vue +12 -12
  187. package/docs/examples/input/disabled.vue +6 -6
  188. package/docs/examples/input/icon.vue +23 -23
  189. package/docs/examples/input/password.vue +18 -18
  190. package/docs/examples/input/size.vue +13 -13
  191. package/docs/examples/input/textarea.vue +25 -25
  192. package/docs/examples/input/word-limit.vue +28 -28
  193. package/docs/examples/input-button/basic.vue +33 -33
  194. package/docs/examples/input-code/basic.vue +29 -29
  195. package/docs/examples/input-color/basic.vue +10 -10
  196. package/docs/examples/input-color/disabled.vue +13 -13
  197. package/docs/examples/input-color/format.vue +17 -17
  198. package/docs/examples/input-color/no-alpha.vue +13 -13
  199. package/docs/examples/input-color/only-button.vue +15 -15
  200. package/docs/examples/input-color/predefine.vue +31 -31
  201. package/docs/examples/input-color/size.vue +15 -15
  202. package/docs/examples/input-layer/basic.vue +86 -86
  203. package/docs/examples/input-rows/basic.vue +73 -73
  204. package/docs/examples/input-rows/drag.vue +48 -48
  205. package/docs/examples/input-rows/layer-form.vue +85 -85
  206. package/docs/examples/input-rows/nested.vue +91 -91
  207. package/docs/examples/input-tag/basic.vue +27 -27
  208. package/docs/examples/input-tag/colors.vue +23 -23
  209. package/docs/examples/input-tag/readonly.vue +17 -17
  210. package/docs/examples/layer/basic.vue +43 -43
  211. package/docs/examples/layer/custom-buttons.vue +61 -61
  212. package/docs/examples/layer/drawer.vue +37 -37
  213. package/docs/examples/layer/full.vue +38 -38
  214. package/docs/examples/layer/modal.vue +34 -34
  215. package/docs/examples/layer/steps.vue +46 -46
  216. package/docs/examples/layer-form/basic.vue +76 -76
  217. package/docs/examples/layer-form/config.vue +82 -82
  218. package/docs/examples/layer-form/size.vue +72 -72
  219. package/docs/examples/layout/basic.vue +36 -36
  220. package/docs/examples/layout/custom-size.vue +50 -50
  221. package/docs/examples/layout/disable-move.vue +37 -37
  222. package/docs/examples/layout/hide-mid-when-narrow.vue +96 -96
  223. package/docs/examples/layout/min-size.vue +73 -73
  224. package/docs/examples/layout/percent-size.vue +80 -80
  225. package/docs/examples/layout/simple.vue +22 -22
  226. package/docs/examples/layout/top-side.vue +34 -34
  227. package/docs/examples/map/basic.vue +22 -22
  228. package/docs/examples/menu/basic.vue +58 -58
  229. package/docs/examples/menu/collapsed.vue +49 -49
  230. package/docs/examples/menu/horizontal.vue +44 -44
  231. package/docs/examples/menu/selection-test.vue +104 -104
  232. package/docs/examples/menu/theme.vue +46 -46
  233. package/docs/examples/menu/vertical.vue +46 -46
  234. package/docs/examples/number/advanced.vue +143 -143
  235. package/docs/examples/number/basic.vue +63 -63
  236. package/docs/examples/number/disabled.vue +49 -49
  237. package/docs/examples/number/size.vue +42 -42
  238. package/docs/examples/number/slots.vue +123 -123
  239. package/docs/examples/number/step-strictly.vue +41 -41
  240. package/docs/examples/number/step.vue +47 -47
  241. package/docs/examples/page/basic.vue +41 -41
  242. package/docs/examples/page/code-table-model.vue +428 -428
  243. package/docs/examples/page/dept-user-management.vue +211 -211
  244. package/docs/examples/page/init.vue +87 -87
  245. package/docs/examples/page/log.vue +453 -453
  246. package/docs/examples/page/user-management.vue +313 -313
  247. package/docs/examples/panel/tool-buttons.vue +18 -18
  248. package/docs/examples/radio/basic.vue +17 -17
  249. package/docs/examples/radio/button.vue +17 -17
  250. package/docs/examples/radio/color.vue +18 -18
  251. package/docs/examples/radio/disabled.vue +17 -17
  252. package/docs/examples/radio/size.vue +29 -29
  253. package/docs/examples/rate/basic.vue +24 -24
  254. package/docs/examples/rate/half.vue +24 -24
  255. package/docs/examples/rate/readonly.vue +11 -11
  256. package/docs/examples/rate/text.vue +37 -37
  257. package/docs/examples/select/basic.vue +16 -16
  258. package/docs/examples/select/clearable.vue +22 -22
  259. package/docs/examples/select/disabled.vue +31 -31
  260. package/docs/examples/select/filterable.vue +24 -24
  261. package/docs/examples/select/group.vue +23 -23
  262. package/docs/examples/select/icon.vue +16 -16
  263. package/docs/examples/select/multiple.vue +18 -18
  264. package/docs/examples/select/size.vue +39 -39
  265. package/docs/examples/slider/basic.vue +42 -42
  266. package/docs/examples/slider/disabled.vue +17 -17
  267. package/docs/examples/slider/marks.vue +30 -30
  268. package/docs/examples/slider/size.vue +37 -37
  269. package/docs/examples/slider/tooltip.vue +36 -36
  270. package/docs/examples/slider/vertical.vue +26 -26
  271. package/docs/examples/slider-captcha/basic.vue +44 -44
  272. package/docs/examples/slider-captcha/custom.vue +48 -48
  273. package/docs/examples/switch/basic.vue +16 -16
  274. package/docs/examples/switch/disabled.vue +13 -13
  275. package/docs/examples/switch/loading.vue +13 -13
  276. package/docs/examples/switch/size.vue +15 -15
  277. package/docs/examples/switch/text.vue +13 -13
  278. package/docs/examples/table/action-filter.vue +126 -126
  279. package/docs/examples/table/actions.vue +116 -116
  280. package/docs/examples/table/add-row.vue +103 -103
  281. package/docs/examples/table/basic.vue +168 -168
  282. package/docs/examples/table/checkbox-layout.vue +68 -68
  283. package/docs/examples/table/custom-layout.vue +115 -115
  284. package/docs/examples/table/dynamic-type.vue +73 -73
  285. package/docs/examples/table/editable.vue +262 -262
  286. package/docs/examples/table/field-selection.vue +87 -87
  287. package/docs/examples/table/frozen-column.vue +140 -140
  288. package/docs/examples/table/height-mode.vue +99 -99
  289. package/docs/examples/table/icon.vue +85 -85
  290. package/docs/examples/table/link.vue +66 -66
  291. package/docs/examples/table/multiple.vue +188 -188
  292. package/docs/examples/table/pagination.vue +151 -151
  293. package/docs/examples/table/single-selection.vue +64 -64
  294. package/docs/examples/table/sub-table-lazy.vue +97 -97
  295. package/docs/examples/table/sub-table.vue +103 -103
  296. package/docs/examples/table/tag.vue +43 -43
  297. package/docs/examples/table/tree-column.vue +119 -119
  298. package/docs/examples/table/tree-data.vue +141 -141
  299. package/docs/examples/table/tree-default-expand-all.vue +60 -60
  300. package/docs/examples/table/tree-lazy.vue +80 -80
  301. package/docs/examples/table/tree-set-selection.vue +75 -75
  302. package/docs/examples/table-panel/basic.vue +229 -229
  303. package/docs/examples/table-panel/batch-operations.vue +285 -285
  304. package/docs/examples/table-panel/button-visibility.vue +88 -88
  305. package/docs/examples/table-panel/filter.vue +219 -219
  306. package/docs/examples/table-panel/get-selection.vue +111 -111
  307. package/docs/examples/table-panel/multiple-selection.vue +243 -243
  308. package/docs/examples/table-panel/pagination.vue +133 -133
  309. package/docs/examples/table-panel/sub-table-lazy.vue +118 -118
  310. package/docs/examples/table-panel/tree-parent-key.vue +67 -67
  311. package/docs/examples/tabs/basic.vue +98 -98
  312. package/docs/examples/time/base.vue +67 -67
  313. package/docs/examples/title/basic.vue +87 -87
  314. package/docs/examples/tree/accordion.vue +46 -46
  315. package/docs/examples/tree/basic.vue +50 -50
  316. package/docs/examples/tree/buttons.vue +53 -53
  317. package/docs/examples/tree/checkable.vue +52 -52
  318. package/docs/examples/tree/custom-keys.vue +39 -39
  319. package/docs/examples/tree/default-expanded.vue +52 -52
  320. package/docs/examples/tree/draggable.vue +29 -29
  321. package/docs/examples/tree/expand-on-click.vue +39 -39
  322. package/docs/examples/tree/flat-data.vue +20 -20
  323. package/docs/examples/tree/icon.vue +40 -40
  324. package/docs/examples/tree/load-data.vue +37 -37
  325. package/docs/examples/tree/methods.vue +74 -74
  326. package/docs/examples/tree/theme.vue +33 -33
  327. package/docs/examples/tree-select/basic.vue +47 -47
  328. package/docs/examples/upload/accept.vue +31 -31
  329. package/docs/examples/upload/basic.vue +12 -12
  330. package/docs/examples/upload/drag.vue +11 -11
  331. package/docs/examples/upload/image.vue +17 -17
  332. package/docs/examples/upload/limit.vue +20 -20
  333. package/docs/examples/upload/multiple.vue +17 -17
  334. package/docs/examples/upload/readonly.vue +17 -17
  335. package/docs/examples/utils/cipher.vue +160 -160
  336. package/docs/examples/utils/common.vue +153 -153
  337. package/docs/examples/utils/date.vue +56 -56
  338. package/docs/examples/utils/dom.vue +52 -52
  339. package/docs/examples/utils/is.vue +70 -70
  340. package/docs/examples/workflow/basic.vue +265 -265
  341. package/docs/examples/workflow-viewer/basic.vue +248 -248
  342. package/package.json +23 -23
@@ -1,33 +1,33 @@
1
- <template>
2
- <div>
3
- <j-button label="打开动态组件" @click="openLayer" />
4
- <j-dynamic-layer ref="layerRef" />
5
- </div>
6
- </template>
7
-
8
- <script setup lang="ts">
9
- import { ref, h } from 'vue'
10
-
11
- const layerRef = ref()
12
-
13
- // 动态组件示例
14
- const DemoComponent = {
15
- setup() {
16
- return () =>
17
- h('div', { style: 'padding: 16px' }, [
18
- h('p', '这是一个动态加载的组件'),
19
- h('p', '可以是任何 Vue 组件'),
20
- ])
21
- },
22
- }
23
-
24
- const openLayer = () => {
25
- layerRef.value.open({
26
- title: '动态组件示例',
27
- name: DemoComponent,
28
- type: 'modal',
29
- width: 600,
30
- height: 400,
31
- })
32
- }
33
- </script>
1
+ <template>
2
+ <div>
3
+ <j-button label="打开动态组件" @click="openLayer" />
4
+ <j-dynamic-layer ref="layerRef" />
5
+ </div>
6
+ </template>
7
+
8
+ <script setup lang="ts">
9
+ import { ref, h } from 'vue'
10
+
11
+ const layerRef = ref()
12
+
13
+ // 动态组件示例
14
+ const DemoComponent = {
15
+ setup() {
16
+ return () =>
17
+ h('div', { style: 'padding: 16px' }, [
18
+ h('p', '这是一个动态加载的组件'),
19
+ h('p', '可以是任何 Vue 组件'),
20
+ ])
21
+ },
22
+ }
23
+
24
+ const openLayer = () => {
25
+ layerRef.value.open({
26
+ title: '动态组件示例',
27
+ name: DemoComponent,
28
+ type: 'modal',
29
+ width: 600,
30
+ height: 400,
31
+ })
32
+ }
33
+ </script>
@@ -1,43 +1,43 @@
1
- <template>
2
- <div>
3
- <j-button label="自定义按钮" @click="openLayer" />
4
- <j-dynamic-layer ref="layerRef" />
5
- </div>
6
- </template>
7
-
8
- <script setup lang="ts">
9
- import { ref, h } from 'vue'
10
-
11
- const layerRef = ref()
12
-
13
- const CustomComponent = {
14
- setup(props: any, { expose }: any) {
15
- const getConfig = () => {
16
- return {
17
- buttons: [
18
- {
19
- label: '自定义操作',
20
- type: 'primary',
21
- onClick: () => {
22
- alert('执行自定义操作')
23
- },
24
- },
25
- ],
26
- }
27
- }
28
-
29
- expose({ getConfig })
30
-
31
- return () => h('div', { style: 'padding: 16px' }, [h('p', '这个弹层有自定义按钮')])
32
- },
33
- }
34
-
35
- const openLayer = () => {
36
- layerRef.value.open({
37
- title: '自定义按钮示例',
38
- name: CustomComponent,
39
- type: 'modal',
40
- hasSaveBtn: false,
41
- })
42
- }
43
- </script>
1
+ <template>
2
+ <div>
3
+ <j-button label="自定义按钮" @click="openLayer" />
4
+ <j-dynamic-layer ref="layerRef" />
5
+ </div>
6
+ </template>
7
+
8
+ <script setup lang="ts">
9
+ import { ref, h } from 'vue'
10
+
11
+ const layerRef = ref()
12
+
13
+ const CustomComponent = {
14
+ setup(props: any, { expose }: any) {
15
+ const getConfig = () => {
16
+ return {
17
+ buttons: [
18
+ {
19
+ label: '自定义操作',
20
+ type: 'primary',
21
+ onClick: () => {
22
+ alert('执行自定义操作')
23
+ },
24
+ },
25
+ ],
26
+ }
27
+ }
28
+
29
+ expose({ getConfig })
30
+
31
+ return () => h('div', { style: 'padding: 16px' }, [h('p', '这个弹层有自定义按钮')])
32
+ },
33
+ }
34
+
35
+ const openLayer = () => {
36
+ layerRef.value.open({
37
+ title: '自定义按钮示例',
38
+ name: CustomComponent,
39
+ type: 'modal',
40
+ hasSaveBtn: false,
41
+ })
42
+ }
43
+ </script>
@@ -1,73 +1,73 @@
1
- <template>
2
- <div>
3
- <j-button label="打开表单组件" @click="openFormLayer" />
4
- <j-dynamic-layer ref="layerRef" />
5
- </div>
6
- </template>
7
-
8
- <script setup lang="ts">
9
- import { ref, h } from 'vue'
10
-
11
- const layerRef = ref()
12
-
13
- // 表单组件示例
14
- const FormComponent = {
15
- setup(props: any, { expose }: any) {
16
- const formData = ref({
17
- name: '',
18
- email: '',
19
- })
20
-
21
- // 提供给外层调用的方法
22
- const open = (param: any) => {
23
- console.log('接收参数:', param)
24
- return Promise.resolve()
25
- }
26
-
27
- const ok = () => {
28
- if (!formData.value.name) {
29
- alert('请输入姓名')
30
- return Promise.resolve(false)
31
- }
32
- console.log('提交数据:', formData.value)
33
- return Promise.resolve(true)
34
- }
35
-
36
- expose({ open, ok })
37
-
38
- return () =>
39
- h('div', { style: 'padding: 16px' }, [
40
- h('div', { style: 'margin-bottom: 16px' }, [
41
- h('label', '姓名: '),
42
- h('input', {
43
- value: formData.value.name,
44
- onInput: (e: any) => (formData.value.name = e.target.value),
45
- style: 'margin-left: 8px; padding: 4px 8px',
46
- }),
47
- ]),
48
- h('div', [
49
- h('label', '邮箱: '),
50
- h('input', {
51
- value: formData.value.email,
52
- onInput: (e: any) => (formData.value.email = e.target.value),
53
- style: 'margin-left: 8px; padding: 4px 8px',
54
- }),
55
- ]),
56
- ])
57
- },
58
- }
59
-
60
- const openFormLayer = () => {
61
- layerRef.value.open({
62
- title: '表单示例',
63
- name: FormComponent,
64
- type: 'modal',
65
- width: 500,
66
- height: 300,
67
- param: { id: 123 },
68
- afterOk: (data: any) => {
69
- console.log('保存成功回调:', data)
70
- },
71
- })
72
- }
73
- </script>
1
+ <template>
2
+ <div>
3
+ <j-button label="打开表单组件" @click="openFormLayer" />
4
+ <j-dynamic-layer ref="layerRef" />
5
+ </div>
6
+ </template>
7
+
8
+ <script setup lang="ts">
9
+ import { ref, h } from 'vue'
10
+
11
+ const layerRef = ref()
12
+
13
+ // 表单组件示例
14
+ const FormComponent = {
15
+ setup(props: any, { expose }: any) {
16
+ const formData = ref({
17
+ name: '',
18
+ email: '',
19
+ })
20
+
21
+ // 提供给外层调用的方法
22
+ const open = (param: any) => {
23
+ console.log('接收参数:', param)
24
+ return Promise.resolve()
25
+ }
26
+
27
+ const ok = () => {
28
+ if (!formData.value.name) {
29
+ alert('请输入姓名')
30
+ return Promise.resolve(false)
31
+ }
32
+ console.log('提交数据:', formData.value)
33
+ return Promise.resolve(true)
34
+ }
35
+
36
+ expose({ open, ok })
37
+
38
+ return () =>
39
+ h('div', { style: 'padding: 16px' }, [
40
+ h('div', { style: 'margin-bottom: 16px' }, [
41
+ h('label', '姓名: '),
42
+ h('input', {
43
+ value: formData.value.name,
44
+ onInput: (e: any) => (formData.value.name = e.target.value),
45
+ style: 'margin-left: 8px; padding: 4px 8px',
46
+ }),
47
+ ]),
48
+ h('div', [
49
+ h('label', '邮箱: '),
50
+ h('input', {
51
+ value: formData.value.email,
52
+ onInput: (e: any) => (formData.value.email = e.target.value),
53
+ style: 'margin-left: 8px; padding: 4px 8px',
54
+ }),
55
+ ]),
56
+ ])
57
+ },
58
+ }
59
+
60
+ const openFormLayer = () => {
61
+ layerRef.value.open({
62
+ title: '表单示例',
63
+ name: FormComponent,
64
+ type: 'modal',
65
+ width: 500,
66
+ height: 300,
67
+ param: { id: 123 },
68
+ afterOk: (data: any) => {
69
+ console.log('保存成功回调:', data)
70
+ },
71
+ })
72
+ }
73
+ </script>
@@ -1,52 +1,52 @@
1
- <template>
2
- <div>
3
- <j-button label="打开步骤弹窗" @click="openStepLayer" />
4
- <j-dynamic-layer ref="layerRef" />
5
- </div>
6
- </template>
7
-
8
- <script setup lang="ts">
9
- import { ref, h } from 'vue'
10
-
11
- const layerRef = ref()
12
- const currentStep = ref(0)
13
-
14
- const StepComponent = {
15
- setup(props: any, { expose }: any) {
16
- const getConfig = () => {
17
- return {
18
- isStep: true,
19
- steps: ['基本信息', '详细信息', '确认提交'],
20
- }
21
- }
22
-
23
- const validateSteps = (stepActive: number) => {
24
- console.log('校验步骤:', stepActive)
25
- if (stepActive === 0 && !confirm('是否继续下一步?')) {
26
- return Promise.resolve(false)
27
- }
28
- currentStep.value = stepActive
29
- return Promise.resolve(true)
30
- }
31
-
32
- expose({ getConfig, validateSteps })
33
-
34
- return () =>
35
- h('div', { style: 'padding: 16px' }, [
36
- h('h3', `当前步骤: ${currentStep.value + 1}`),
37
- h('p', '步骤条示例'),
38
- ])
39
- },
40
- }
41
-
42
- const openStepLayer = () => {
43
- currentStep.value = 0
44
- layerRef.value.open({
45
- title: '步骤弹窗',
46
- name: StepComponent,
47
- type: 'modal',
48
- width: 700,
49
- height: 400,
50
- })
51
- }
52
- </script>
1
+ <template>
2
+ <div>
3
+ <j-button label="打开步骤弹窗" @click="openStepLayer" />
4
+ <j-dynamic-layer ref="layerRef" />
5
+ </div>
6
+ </template>
7
+
8
+ <script setup lang="ts">
9
+ import { ref, h } from 'vue'
10
+
11
+ const layerRef = ref()
12
+ const currentStep = ref(0)
13
+
14
+ const StepComponent = {
15
+ setup(props: any, { expose }: any) {
16
+ const getConfig = () => {
17
+ return {
18
+ isStep: true,
19
+ steps: ['基本信息', '详细信息', '确认提交'],
20
+ }
21
+ }
22
+
23
+ const validateSteps = (stepActive: number) => {
24
+ console.log('校验步骤:', stepActive)
25
+ if (stepActive === 0 && !confirm('是否继续下一步?')) {
26
+ return Promise.resolve(false)
27
+ }
28
+ currentStep.value = stepActive
29
+ return Promise.resolve(true)
30
+ }
31
+
32
+ expose({ getConfig, validateSteps })
33
+
34
+ return () =>
35
+ h('div', { style: 'padding: 16px' }, [
36
+ h('h3', `当前步骤: ${currentStep.value + 1}`),
37
+ h('p', '步骤条示例'),
38
+ ])
39
+ },
40
+ }
41
+
42
+ const openStepLayer = () => {
43
+ currentStep.value = 0
44
+ layerRef.value.open({
45
+ title: '步骤弹窗',
46
+ name: StepComponent,
47
+ type: 'modal',
48
+ width: 700,
49
+ height: 400,
50
+ })
51
+ }
52
+ </script>
@@ -1,40 +1,40 @@
1
- <template>
2
- <div>
3
- <j-button label="打开抽屉" style="margin-right: 8px" @click="openDrawer" />
4
- <j-button label="打开全屏" @click="openFull" />
5
- <j-dynamic-layer ref="layerRef" />
6
- </div>
7
- </template>
8
-
9
- <script setup lang="ts">
10
- import { ref, h } from 'vue'
11
-
12
- const layerRef = ref()
13
-
14
- const ContentComponent = {
15
- setup() {
16
- return () =>
17
- h('div', { style: 'padding: 16px' }, [
18
- h('h3', '不同类型的弹层'),
19
- h('p', '支持 modal、drawer、full 三种类型'),
20
- ])
21
- },
22
- }
23
-
24
- const openDrawer = () => {
25
- layerRef.value.open({
26
- title: '抽屉模式',
27
- name: ContentComponent,
28
- type: 'drawer',
29
- width: 600,
30
- })
31
- }
32
-
33
- const openFull = () => {
34
- layerRef.value.open({
35
- title: '全屏模式',
36
- name: ContentComponent,
37
- type: 'full',
38
- })
39
- }
40
- </script>
1
+ <template>
2
+ <div>
3
+ <j-button label="打开抽屉" style="margin-right: 8px" @click="openDrawer" />
4
+ <j-button label="打开全屏" @click="openFull" />
5
+ <j-dynamic-layer ref="layerRef" />
6
+ </div>
7
+ </template>
8
+
9
+ <script setup lang="ts">
10
+ import { ref, h } from 'vue'
11
+
12
+ const layerRef = ref()
13
+
14
+ const ContentComponent = {
15
+ setup() {
16
+ return () =>
17
+ h('div', { style: 'padding: 16px' }, [
18
+ h('h3', '不同类型的弹层'),
19
+ h('p', '支持 modal、drawer、full 三种类型'),
20
+ ])
21
+ },
22
+ }
23
+
24
+ const openDrawer = () => {
25
+ layerRef.value.open({
26
+ title: '抽屉模式',
27
+ name: ContentComponent,
28
+ type: 'drawer',
29
+ width: 600,
30
+ })
31
+ }
32
+
33
+ const openFull = () => {
34
+ layerRef.value.open({
35
+ title: '全屏模式',
36
+ name: ContentComponent,
37
+ type: 'full',
38
+ })
39
+ }
40
+ </script>
@@ -1,31 +1,31 @@
1
- <template>
2
- <div style="width: 100%; height: 400px">
3
- <j-echarts :option="option" @click="handleClick" />
4
- </div>
5
- </template>
6
-
7
- <script lang="ts" setup>
8
- import { ref } from 'vue'
9
-
10
- const option = ref({
11
- title: {
12
- text: 'ECharts 基础示例',
13
- },
14
- tooltip: {},
15
- xAxis: {
16
- data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子'],
17
- },
18
- yAxis: {},
19
- series: [
20
- {
21
- name: '销量',
22
- type: 'bar',
23
- data: [5, 20, 36, 10, 10, 20],
24
- },
25
- ],
26
- })
27
-
28
- const handleClick = (params: any) => {
29
- console.log('点击了图表', params)
30
- }
31
- </script>
1
+ <template>
2
+ <div style="width: 100%; height: 400px">
3
+ <j-echarts :option="option" @click="handleClick" />
4
+ </div>
5
+ </template>
6
+
7
+ <script lang="ts" setup>
8
+ import { ref } from 'vue'
9
+
10
+ const option = ref({
11
+ title: {
12
+ text: 'ECharts 基础示例',
13
+ },
14
+ tooltip: {},
15
+ xAxis: {
16
+ data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子'],
17
+ },
18
+ yAxis: {},
19
+ series: [
20
+ {
21
+ name: '销量',
22
+ type: 'bar',
23
+ data: [5, 20, 36, 10, 10, 20],
24
+ },
25
+ ],
26
+ })
27
+
28
+ const handleClick = (params: any) => {
29
+ console.log('点击了图表', params)
30
+ }
31
+ </script>
@@ -1,43 +1,43 @@
1
- <template>
2
- <div>
3
- <j-button label="更新数据" style="margin-bottom: 16px" @click="updateData" />
4
- <div style="width: 100%; height: 400px">
5
- <j-echarts :option="option" />
6
- </div>
7
- </div>
8
- </template>
9
-
10
- <script lang="ts" setup>
11
- import { ref } from 'vue'
12
-
13
- const option = ref({
14
- title: {
15
- text: '动态数据更新',
16
- },
17
- tooltip: {},
18
- xAxis: {
19
- data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子'],
20
- },
21
- yAxis: {},
22
- series: [
23
- {
24
- name: '销量',
25
- type: 'bar',
26
- data: [5, 20, 36, 10, 10, 20],
27
- },
28
- ],
29
- })
30
-
31
- const updateData = () => {
32
- option.value = {
33
- ...option.value,
34
- series: [
35
- {
36
- name: '销量',
37
- type: 'bar',
38
- data: option.value.series[0].data.map(() => Math.floor(Math.random() * 100)),
39
- },
40
- ],
41
- }
42
- }
43
- </script>
1
+ <template>
2
+ <div>
3
+ <j-button label="更新数据" style="margin-bottom: 16px" @click="updateData" />
4
+ <div style="width: 100%; height: 400px">
5
+ <j-echarts :option="option" />
6
+ </div>
7
+ </div>
8
+ </template>
9
+
10
+ <script lang="ts" setup>
11
+ import { ref } from 'vue'
12
+
13
+ const option = ref({
14
+ title: {
15
+ text: '动态数据更新',
16
+ },
17
+ tooltip: {},
18
+ xAxis: {
19
+ data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子'],
20
+ },
21
+ yAxis: {},
22
+ series: [
23
+ {
24
+ name: '销量',
25
+ type: 'bar',
26
+ data: [5, 20, 36, 10, 10, 20],
27
+ },
28
+ ],
29
+ })
30
+
31
+ const updateData = () => {
32
+ option.value = {
33
+ ...option.value,
34
+ series: [
35
+ {
36
+ name: '销量',
37
+ type: 'bar',
38
+ data: option.value.series[0].data.map(() => Math.floor(Math.random() * 100)),
39
+ },
40
+ ],
41
+ }
42
+ }
43
+ </script>