@a2simcode/ui 0.0.130 → 0.0.132

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 (336) 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/src/input-layer.vue.d.ts +6 -0
  6. package/dist/simcode-ui.es.js +8593 -7739
  7. package/dist/simcode-ui.umd.js +2 -2
  8. package/dist/stats.html +1 -1
  9. package/dist/ui.css +1 -1
  10. package/docs/components/autocomplete.md +89 -89
  11. package/docs/components/barcode.md +101 -101
  12. package/docs/components/button-select.md +24 -24
  13. package/docs/components/button.md +117 -117
  14. package/docs/components/buttons.md +119 -119
  15. package/docs/components/cascader-select.md +114 -114
  16. package/docs/components/checkbox.md +114 -114
  17. package/docs/components/code-mirror.md +85 -85
  18. package/docs/components/collapse.md +26 -26
  19. package/docs/components/comp.md +71 -71
  20. package/docs/components/count-up.md +24 -24
  21. package/docs/components/count.md +24 -24
  22. package/docs/components/data-panel.md +24 -24
  23. package/docs/components/date.md +76 -76
  24. package/docs/components/dialog-full.md +112 -112
  25. package/docs/components/dialog.md +127 -127
  26. package/docs/components/divider.md +24 -24
  27. package/docs/components/drawer.md +127 -127
  28. package/docs/components/dynamic-layer.md +118 -118
  29. package/docs/components/echarts.md +72 -72
  30. package/docs/components/editor.md +24 -24
  31. package/docs/components/form.md +42 -42
  32. package/docs/components/guid.md +39 -39
  33. package/docs/components/hpanel.md +24 -24
  34. package/docs/components/icon.md +56 -56
  35. package/docs/components/input-button.md +24 -24
  36. package/docs/components/input-code.md +24 -24
  37. package/docs/components/input-color.md +114 -114
  38. package/docs/components/input-layer.md +26 -26
  39. package/docs/components/input-rows.md +370 -370
  40. package/docs/components/input-tag.md +50 -50
  41. package/docs/components/input.md +129 -129
  42. package/docs/components/layer-form.md +61 -61
  43. package/docs/components/layer.md +127 -127
  44. package/docs/components/layout.md +132 -132
  45. package/docs/components/map.md +24 -24
  46. package/docs/components/menu.md +121 -121
  47. package/docs/components/meta/buttons.ts +76 -76
  48. package/docs/components/meta/comp.ts +236 -236
  49. package/docs/components/meta/date.ts +267 -267
  50. package/docs/components/meta/echarts.ts +64 -64
  51. package/docs/components/meta/form-item.ts +50 -50
  52. package/docs/components/meta/form.ts +165 -165
  53. package/docs/components/meta/input-cards.ts +112 -112
  54. package/docs/components/meta/input-color.ts +243 -243
  55. package/docs/components/meta/input-layer.ts +30 -0
  56. package/docs/components/meta/input-rows.ts +113 -113
  57. package/docs/components/meta/layer-form.ts +56 -56
  58. package/docs/components/meta/map.ts +68 -68
  59. package/docs/components/meta/panel.ts +152 -152
  60. package/docs/components/meta/slider.ts +270 -270
  61. package/docs/components/meta/table-panel.ts +232 -232
  62. package/docs/components/meta/table.ts +391 -391
  63. package/docs/components/meta/tabs.ts +146 -146
  64. package/docs/components/meta/title.ts +91 -80
  65. package/docs/components/meta/tree-select.ts +199 -199
  66. package/docs/components/meta/workflow-viewer.ts +55 -55
  67. package/docs/components/number.md +124 -124
  68. package/docs/components/page.md +87 -87
  69. package/docs/components/panel.md +37 -37
  70. package/docs/components/radio.md +87 -87
  71. package/docs/components/rate.md +71 -71
  72. package/docs/components/select.md +133 -133
  73. package/docs/components/slider-captcha.md +41 -41
  74. package/docs/components/slider.md +101 -101
  75. package/docs/components/switch.md +90 -90
  76. package/docs/components/table-panel.md +236 -236
  77. package/docs/components/table.md +391 -391
  78. package/docs/components/tabs.md +26 -26
  79. package/docs/components/title.md +24 -24
  80. package/docs/components/tree.md +207 -207
  81. package/docs/components/upload.md +117 -117
  82. package/docs/components/workflow-viewer.md +21 -21
  83. package/docs/components/workflow.md +21 -21
  84. package/docs/examples/autocomplete/advanced.vue +35 -35
  85. package/docs/examples/autocomplete/basic.vue +32 -32
  86. package/docs/examples/autocomplete/clearable.vue +33 -33
  87. package/docs/examples/autocomplete/custom-template.vue +49 -49
  88. package/docs/examples/autocomplete/disabled.vue +33 -33
  89. package/docs/examples/autocomplete/icon.vue +37 -37
  90. package/docs/examples/barcode/all-types.vue +380 -380
  91. package/docs/examples/barcode/basic.vue +14 -14
  92. package/docs/examples/barcode/props-appearance.vue +243 -243
  93. package/docs/examples/barcode/props-geometry.vue +143 -143
  94. package/docs/examples/barcode/props-logic.vue +216 -216
  95. package/docs/examples/barcode/props-symbology.vue +199 -199
  96. package/docs/examples/barcode/props-text.vue +268 -268
  97. package/docs/examples/button/basic.vue +7 -7
  98. package/docs/examples/button/danger-ghost.vue +17 -17
  99. package/docs/examples/button/disabled.vue +10 -10
  100. package/docs/examples/button/loading.vue +6 -6
  101. package/docs/examples/button/shape.vue +7 -7
  102. package/docs/examples/button/size.vue +14 -14
  103. package/docs/examples/button/type.vue +9 -9
  104. package/docs/examples/button-select/basic.vue +19 -19
  105. package/docs/examples/buttons/basic.vue +45 -45
  106. package/docs/examples/buttons/disabled.vue +36 -36
  107. package/docs/examples/buttons/dropdown.vue +63 -63
  108. package/docs/examples/buttons/group.vue +52 -52
  109. package/docs/examples/buttons/link.vue +47 -47
  110. package/docs/examples/buttons/popup.vue +39 -39
  111. package/docs/examples/buttons/size.vue +45 -45
  112. package/docs/examples/cascader-select/basic.vue +28 -28
  113. package/docs/examples/cascader-select/clearable.vue +34 -34
  114. package/docs/examples/cascader-select/disabled.vue +43 -43
  115. package/docs/examples/cascader-select/filterable.vue +37 -37
  116. package/docs/examples/cascader-select/methods.vue +84 -84
  117. package/docs/examples/cascader-select/multiple.vue +38 -38
  118. package/docs/examples/cascader-select/slot.vue +45 -45
  119. package/docs/examples/checkbox/basic.vue +18 -18
  120. package/docs/examples/checkbox/button.vue +19 -19
  121. package/docs/examples/checkbox/color.vue +25 -25
  122. package/docs/examples/checkbox/disabled.vue +17 -17
  123. package/docs/examples/checkbox/min-max.vue +20 -20
  124. package/docs/examples/checkbox/mixed.vue +56 -56
  125. package/docs/examples/checkbox/size.vue +28 -28
  126. package/docs/examples/code-mirror/basic.vue +11 -11
  127. package/docs/examples/code-mirror/events.vue +42 -42
  128. package/docs/examples/code-mirror/height.vue +25 -25
  129. package/docs/examples/code-mirror/mode.vue +33 -33
  130. package/docs/examples/code-mirror/readonly.vue +14 -14
  131. package/docs/examples/collapse/basic.vue +82 -82
  132. package/docs/examples/comp/basic.vue +7 -7
  133. package/docs/examples/comp/collapse.vue +38 -38
  134. package/docs/examples/comp/tabs.vue +38 -38
  135. package/docs/examples/count/basic.vue +101 -101
  136. package/docs/examples/count-up/basic.vue +89 -89
  137. package/docs/examples/data-panel/basic.vue +110 -110
  138. package/docs/examples/date/basic.vue +73 -73
  139. package/docs/examples/date/default-value.vue +59 -59
  140. package/docs/examples/date/format.vue +75 -75
  141. package/docs/examples/date/range.vue +66 -66
  142. package/docs/examples/date/types.vue +79 -79
  143. package/docs/examples/decorated-title/basic.vue +31 -31
  144. package/docs/examples/dialog/basic.vue +36 -36
  145. package/docs/examples/dialog/custom-buttons.vue +44 -44
  146. package/docs/examples/dialog/fullscreen.vue +23 -23
  147. package/docs/examples/dialog/no-mask.vue +17 -17
  148. package/docs/examples/dialog/size.vue +44 -44
  149. package/docs/examples/dialog/steps.vue +57 -57
  150. package/docs/examples/dialog-full/basic.vue +29 -29
  151. package/docs/examples/dialog-full/custom-buttons.vue +45 -45
  152. package/docs/examples/dialog-full/no-buttons.vue +18 -18
  153. package/docs/examples/dialog-full/no-header.vue +27 -27
  154. package/docs/examples/dialog-full/steps.vue +71 -71
  155. package/docs/examples/divider/basic.vue +52 -52
  156. package/docs/examples/drawer/basic.vue +35 -35
  157. package/docs/examples/drawer/custom-buttons.vue +34 -34
  158. package/docs/examples/drawer/direction.vue +47 -47
  159. package/docs/examples/drawer/mask.vue +36 -36
  160. package/docs/examples/drawer/no-buttons.vue +20 -20
  161. package/docs/examples/drawer/size.vue +28 -28
  162. package/docs/examples/dynamic-layer/basic.vue +33 -33
  163. package/docs/examples/dynamic-layer/custom-buttons.vue +43 -43
  164. package/docs/examples/dynamic-layer/form.vue +73 -73
  165. package/docs/examples/dynamic-layer/steps.vue +52 -52
  166. package/docs/examples/dynamic-layer/types.vue +40 -40
  167. package/docs/examples/echarts/basic.vue +31 -31
  168. package/docs/examples/echarts/dynamic.vue +43 -43
  169. package/docs/examples/echarts/line.vue +46 -46
  170. package/docs/examples/echarts/pie.vue +44 -44
  171. package/docs/examples/editor/basic.vue +15 -15
  172. package/docs/examples/form/basic.vue +539 -539
  173. package/docs/examples/form/init.vue +76 -76
  174. package/docs/examples/guid/basic.vue +10 -10
  175. package/docs/examples/guid/size.vue +13 -13
  176. package/docs/examples/hpanel/basic.vue +79 -79
  177. package/docs/examples/icon/basic.vue +9 -9
  178. package/docs/examples/icon/rotate-flip.vue +9 -9
  179. package/docs/examples/icon/size.vue +7 -7
  180. package/docs/examples/input/basic.vue +10 -10
  181. package/docs/examples/input/clearable.vue +12 -12
  182. package/docs/examples/input/disabled.vue +6 -6
  183. package/docs/examples/input/icon.vue +23 -23
  184. package/docs/examples/input/password.vue +18 -18
  185. package/docs/examples/input/size.vue +13 -13
  186. package/docs/examples/input/textarea.vue +25 -25
  187. package/docs/examples/input/word-limit.vue +28 -28
  188. package/docs/examples/input-button/basic.vue +33 -33
  189. package/docs/examples/input-code/basic.vue +29 -29
  190. package/docs/examples/input-color/basic.vue +10 -10
  191. package/docs/examples/input-color/disabled.vue +13 -13
  192. package/docs/examples/input-color/format.vue +17 -17
  193. package/docs/examples/input-color/no-alpha.vue +13 -13
  194. package/docs/examples/input-color/only-button.vue +15 -15
  195. package/docs/examples/input-color/predefine.vue +31 -31
  196. package/docs/examples/input-color/size.vue +15 -15
  197. package/docs/examples/input-layer/basic.vue +86 -69
  198. package/docs/examples/input-rows/basic.vue +73 -73
  199. package/docs/examples/input-rows/drag.vue +48 -48
  200. package/docs/examples/input-rows/layer-form.vue +85 -85
  201. package/docs/examples/input-rows/nested.vue +91 -91
  202. package/docs/examples/input-tag/basic.vue +27 -27
  203. package/docs/examples/input-tag/colors.vue +23 -23
  204. package/docs/examples/input-tag/readonly.vue +17 -17
  205. package/docs/examples/layer/basic.vue +43 -43
  206. package/docs/examples/layer/custom-buttons.vue +61 -61
  207. package/docs/examples/layer/drawer.vue +37 -37
  208. package/docs/examples/layer/full.vue +38 -38
  209. package/docs/examples/layer/modal.vue +34 -34
  210. package/docs/examples/layer/steps.vue +46 -46
  211. package/docs/examples/layer-form/basic.vue +76 -76
  212. package/docs/examples/layer-form/config.vue +82 -82
  213. package/docs/examples/layer-form/size.vue +72 -72
  214. package/docs/examples/layout/basic.vue +36 -36
  215. package/docs/examples/layout/custom-size.vue +50 -50
  216. package/docs/examples/layout/disable-move.vue +37 -37
  217. package/docs/examples/layout/hide-mid-when-narrow.vue +96 -96
  218. package/docs/examples/layout/min-size.vue +73 -73
  219. package/docs/examples/layout/percent-size.vue +80 -80
  220. package/docs/examples/layout/simple.vue +22 -22
  221. package/docs/examples/layout/top-side.vue +34 -34
  222. package/docs/examples/map/basic.vue +22 -22
  223. package/docs/examples/menu/basic.vue +58 -58
  224. package/docs/examples/menu/collapsed.vue +49 -49
  225. package/docs/examples/menu/horizontal.vue +44 -44
  226. package/docs/examples/menu/selection-test.vue +104 -104
  227. package/docs/examples/menu/theme.vue +46 -46
  228. package/docs/examples/menu/vertical.vue +46 -46
  229. package/docs/examples/number/advanced.vue +143 -143
  230. package/docs/examples/number/basic.vue +63 -63
  231. package/docs/examples/number/disabled.vue +49 -49
  232. package/docs/examples/number/size.vue +42 -42
  233. package/docs/examples/number/slots.vue +123 -123
  234. package/docs/examples/number/step-strictly.vue +41 -41
  235. package/docs/examples/number/step.vue +47 -47
  236. package/docs/examples/page/basic.vue +41 -41
  237. package/docs/examples/page/dept-user-management.vue +211 -211
  238. package/docs/examples/page/init.vue +87 -87
  239. package/docs/examples/page/log.vue +453 -453
  240. package/docs/examples/page/user-management.vue +313 -313
  241. package/docs/examples/panel/tool-buttons.vue +18 -18
  242. package/docs/examples/radio/basic.vue +17 -17
  243. package/docs/examples/radio/button.vue +17 -17
  244. package/docs/examples/radio/color.vue +18 -18
  245. package/docs/examples/radio/disabled.vue +17 -17
  246. package/docs/examples/radio/size.vue +29 -29
  247. package/docs/examples/rate/basic.vue +24 -24
  248. package/docs/examples/rate/half.vue +24 -24
  249. package/docs/examples/rate/readonly.vue +11 -11
  250. package/docs/examples/rate/text.vue +37 -32
  251. package/docs/examples/select/basic.vue +16 -16
  252. package/docs/examples/select/clearable.vue +22 -22
  253. package/docs/examples/select/disabled.vue +31 -31
  254. package/docs/examples/select/filterable.vue +24 -24
  255. package/docs/examples/select/group.vue +23 -23
  256. package/docs/examples/select/icon.vue +16 -16
  257. package/docs/examples/select/multiple.vue +18 -18
  258. package/docs/examples/select/size.vue +39 -39
  259. package/docs/examples/slider/basic.vue +42 -42
  260. package/docs/examples/slider/disabled.vue +17 -17
  261. package/docs/examples/slider/marks.vue +30 -30
  262. package/docs/examples/slider/size.vue +37 -37
  263. package/docs/examples/slider/tooltip.vue +36 -36
  264. package/docs/examples/slider/vertical.vue +26 -26
  265. package/docs/examples/slider-captcha/basic.vue +44 -44
  266. package/docs/examples/slider-captcha/custom.vue +48 -48
  267. package/docs/examples/switch/basic.vue +16 -16
  268. package/docs/examples/switch/disabled.vue +13 -13
  269. package/docs/examples/switch/loading.vue +13 -13
  270. package/docs/examples/switch/size.vue +15 -15
  271. package/docs/examples/switch/text.vue +13 -13
  272. package/docs/examples/table/action-filter.vue +126 -126
  273. package/docs/examples/table/actions.vue +116 -116
  274. package/docs/examples/table/add-row.vue +103 -103
  275. package/docs/examples/table/basic.vue +168 -168
  276. package/docs/examples/table/checkbox-layout.vue +68 -68
  277. package/docs/examples/table/custom-layout.vue +115 -115
  278. package/docs/examples/table/dynamic-type.vue +73 -73
  279. package/docs/examples/table/editable.vue +262 -262
  280. package/docs/examples/table/field-selection.vue +87 -87
  281. package/docs/examples/table/frozen-column.vue +140 -140
  282. package/docs/examples/table/height-mode.vue +99 -99
  283. package/docs/examples/table/icon.vue +85 -85
  284. package/docs/examples/table/link.vue +66 -66
  285. package/docs/examples/table/multiple.vue +188 -188
  286. package/docs/examples/table/pagination.vue +151 -151
  287. package/docs/examples/table/single-selection.vue +64 -64
  288. package/docs/examples/table/sub-table-lazy.vue +97 -97
  289. package/docs/examples/table/sub-table.vue +103 -103
  290. package/docs/examples/table/tag.vue +43 -43
  291. package/docs/examples/table/tree-column.vue +119 -119
  292. package/docs/examples/table/tree-data.vue +141 -141
  293. package/docs/examples/table/tree-default-expand-all.vue +60 -60
  294. package/docs/examples/table/tree-lazy.vue +80 -80
  295. package/docs/examples/table/tree-set-selection.vue +75 -75
  296. package/docs/examples/table-panel/basic.vue +229 -228
  297. package/docs/examples/table-panel/batch-operations.vue +285 -285
  298. package/docs/examples/table-panel/button-visibility.vue +88 -88
  299. package/docs/examples/table-panel/filter.vue +219 -219
  300. package/docs/examples/table-panel/get-selection.vue +111 -111
  301. package/docs/examples/table-panel/multiple-selection.vue +243 -243
  302. package/docs/examples/table-panel/pagination.vue +133 -133
  303. package/docs/examples/table-panel/sub-table-lazy.vue +118 -118
  304. package/docs/examples/table-panel/tree-parent-key.vue +67 -67
  305. package/docs/examples/tabs/basic.vue +98 -98
  306. package/docs/examples/time/base.vue +67 -67
  307. package/docs/examples/title/basic.vue +87 -87
  308. package/docs/examples/tree/accordion.vue +46 -46
  309. package/docs/examples/tree/basic.vue +50 -50
  310. package/docs/examples/tree/buttons.vue +53 -53
  311. package/docs/examples/tree/checkable.vue +52 -52
  312. package/docs/examples/tree/custom-keys.vue +39 -39
  313. package/docs/examples/tree/default-expanded.vue +52 -52
  314. package/docs/examples/tree/draggable.vue +29 -29
  315. package/docs/examples/tree/expand-on-click.vue +39 -39
  316. package/docs/examples/tree/flat-data.vue +20 -20
  317. package/docs/examples/tree/icon.vue +40 -40
  318. package/docs/examples/tree/load-data.vue +37 -37
  319. package/docs/examples/tree/methods.vue +74 -74
  320. package/docs/examples/tree/theme.vue +33 -33
  321. package/docs/examples/tree-select/basic.vue +47 -47
  322. package/docs/examples/upload/accept.vue +31 -31
  323. package/docs/examples/upload/basic.vue +12 -12
  324. package/docs/examples/upload/drag.vue +11 -11
  325. package/docs/examples/upload/image.vue +17 -17
  326. package/docs/examples/upload/limit.vue +20 -20
  327. package/docs/examples/upload/multiple.vue +17 -17
  328. package/docs/examples/upload/readonly.vue +17 -17
  329. package/docs/examples/utils/cipher.vue +160 -160
  330. package/docs/examples/utils/common.vue +153 -153
  331. package/docs/examples/utils/date.vue +56 -56
  332. package/docs/examples/utils/dom.vue +52 -52
  333. package/docs/examples/utils/is.vue +70 -70
  334. package/docs/examples/workflow/basic.vue +265 -265
  335. package/docs/examples/workflow-viewer/basic.vue +248 -248
  336. package/package.json +23 -26
@@ -1,76 +1,76 @@
1
- <template>
2
- <div>
3
- <j-form ref="formRef" :config="formConfig" />
4
- <div style="margin-top: 16px; padding-left: 100px">
5
- <j-button type="primary" label="init 精简表单" @click="handleInitSimple"></j-button>
6
- <j-button style="margin-left: 8px" label="init 完整表单" @click="handleInitFull"></j-button>
7
- <j-button style="margin-left: 8px" label="获取数据" @click="handleGetFormData"></j-button>
8
- </div>
9
- </div>
10
- </template>
11
-
12
- <script setup>
13
- import { ref, reactive } from 'vue'
14
-
15
- const formRef = ref()
16
-
17
- const formConfig = reactive({
18
- labelWidth: 100,
19
- labelPosition: 'right',
20
- size: 'default',
21
- gutter: 16,
22
- span: 24,
23
- })
24
-
25
- const simpleSchema = [
26
- {
27
- type: 'j-input',
28
- config: {
29
- label: '用户名',
30
- field: 'username',
31
- placeholder: '请输入用户名',
32
- rule: [{ required: true, message: '请输入用户名' }],
33
- },
34
- },
35
- {
36
- type: 'j-number',
37
- config: {
38
- label: '年龄',
39
- field: 'age',
40
- placeholder: '请输入年龄',
41
- min: 0,
42
- max: 150,
43
- },
44
- },
45
- ]
46
-
47
- const fullSchema = [
48
- ...simpleSchema,
49
- {
50
- type: 'j-select',
51
- config: {
52
- label: '状态',
53
- field: 'status',
54
- placeholder: '请选择',
55
- options: [
56
- { label: '启用', value: 1 },
57
- { label: '停用', value: 0 },
58
- ],
59
- },
60
- },
61
- ]
62
-
63
- const schema = fullSchema
64
-
65
- const handleInitSimple = async () => {
66
- await formRef.value.init(simpleSchema, { username: '张三', age: 18 })
67
- }
68
-
69
- const handleInitFull = async () => {
70
- await formRef.value.init(fullSchema, { username: '李四', age: 28, status: 1 })
71
- }
72
-
73
- const handleGetFormData = () => {
74
- console.log(formRef.value.getFormData(), 'getFormData')
75
- }
76
- </script>
1
+ <template>
2
+ <div>
3
+ <j-form ref="formRef" :config="formConfig" />
4
+ <div style="margin-top: 16px; padding-left: 100px">
5
+ <j-button type="primary" label="init 精简表单" @click="handleInitSimple"></j-button>
6
+ <j-button style="margin-left: 8px" label="init 完整表单" @click="handleInitFull"></j-button>
7
+ <j-button style="margin-left: 8px" label="获取数据" @click="handleGetFormData"></j-button>
8
+ </div>
9
+ </div>
10
+ </template>
11
+
12
+ <script setup>
13
+ import { ref, reactive } from 'vue'
14
+
15
+ const formRef = ref()
16
+
17
+ const formConfig = reactive({
18
+ labelWidth: 100,
19
+ labelPosition: 'right',
20
+ size: 'default',
21
+ gutter: 16,
22
+ span: 24,
23
+ })
24
+
25
+ const simpleSchema = [
26
+ {
27
+ type: 'j-input',
28
+ config: {
29
+ label: '用户名',
30
+ field: 'username',
31
+ placeholder: '请输入用户名',
32
+ rule: [{ required: true, message: '请输入用户名' }],
33
+ },
34
+ },
35
+ {
36
+ type: 'j-number',
37
+ config: {
38
+ label: '年龄',
39
+ field: 'age',
40
+ placeholder: '请输入年龄',
41
+ min: 0,
42
+ max: 150,
43
+ },
44
+ },
45
+ ]
46
+
47
+ const fullSchema = [
48
+ ...simpleSchema,
49
+ {
50
+ type: 'j-select',
51
+ config: {
52
+ label: '状态',
53
+ field: 'status',
54
+ placeholder: '请选择',
55
+ options: [
56
+ { label: '启用', value: 1 },
57
+ { label: '停用', value: 0 },
58
+ ],
59
+ },
60
+ },
61
+ ]
62
+
63
+ const schema = fullSchema
64
+
65
+ const handleInitSimple = async () => {
66
+ await formRef.value.init(simpleSchema, { username: '张三', age: 18 })
67
+ }
68
+
69
+ const handleInitFull = async () => {
70
+ await formRef.value.init(fullSchema, { username: '李四', age: 28, status: 1 })
71
+ }
72
+
73
+ const handleGetFormData = () => {
74
+ console.log(formRef.value.getFormData(), 'getFormData')
75
+ }
76
+ </script>
@@ -1,10 +1,10 @@
1
- <template>
2
- <j-guid v-model="value" />
3
- <p v-if="value" style="margin-top: 12px; color: #606266">生成的 UUID: {{ value }}</p>
4
- </template>
5
-
6
- <script setup lang="ts">
7
- import { ref } from 'vue'
8
-
9
- const value = ref('')
10
- </script>
1
+ <template>
2
+ <j-guid v-model="value" />
3
+ <p v-if="value" style="margin-top: 12px; color: #606266">生成的 UUID: {{ value }}</p>
4
+ </template>
5
+
6
+ <script setup lang="ts">
7
+ import { ref } from 'vue'
8
+
9
+ const value = ref('')
10
+ </script>
@@ -1,13 +1,13 @@
1
- <template>
2
- <div style="display: flex; flex-direction: column; gap: 12px">
3
- <j-guid v-model="value" size="large" style="width: 300px" />
4
- <j-guid v-model="value" style="width: 300px" />
5
- <j-guid v-model="value" size="small" style="width: 300px" />
6
- </div>
7
- </template>
8
-
9
- <script setup lang="ts">
10
- import { ref } from 'vue'
11
-
12
- const value = ref('')
13
- </script>
1
+ <template>
2
+ <div style="display: flex; flex-direction: column; gap: 12px">
3
+ <j-guid v-model="value" size="large" style="width: 300px" />
4
+ <j-guid v-model="value" style="width: 300px" />
5
+ <j-guid v-model="value" size="small" style="width: 300px" />
6
+ </div>
7
+ </template>
8
+
9
+ <script setup lang="ts">
10
+ import { ref } from 'vue'
11
+
12
+ const value = ref('')
13
+ </script>
@@ -1,79 +1,79 @@
1
- <template>
2
- <div class="hpanel-demo">
3
- <div class="demo-item">
4
- <p>基础用法</p>
5
- <j-hpanel class="custom-panel">
6
- <template #left>
7
- <div class="side-content">Left Slot</div>
8
- </template>
9
- <div class="main-content">Default Slot (Main Content)</div>
10
- <template #right>
11
- <div class="side-content">Right Slot</div>
12
- </template>
13
- </j-hpanel>
14
- </div>
15
-
16
- <div class="demo-item">
17
- <p>仅左侧和内容</p>
18
- <j-hpanel class="custom-panel">
19
- <template #left>
20
- <div class="side-content">Left</div>
21
- </template>
22
- <div class="main-content">Main Content</div>
23
- </j-hpanel>
24
- </div>
25
-
26
- <div class="demo-item">
27
- <p>仅内容和右侧</p>
28
- <j-hpanel class="custom-panel">
29
- <div class="main-content">Main Content</div>
30
- <template #right>
31
- <div class="side-content">Right</div>
32
- </template>
33
- </j-hpanel>
34
- </div>
35
- </div>
36
- </template>
37
-
38
- <script setup lang="ts">
39
- // 示例代码无需额外逻辑
40
- </script>
41
-
42
- <style scoped>
43
- .hpanel-demo {
44
- display: flex;
45
- flex-direction: column;
46
- gap: 24px;
47
- }
48
-
49
- .demo-item p {
50
- margin: 0 0 12px;
51
- font-size: 14px;
52
- color: var(--j-color-text-2);
53
- font-weight: 500;
54
- }
55
-
56
- .custom-panel {
57
- border: 1px solid var(--j-color-border);
58
- border-radius: 4px;
59
- overflow: hidden;
60
- }
61
-
62
- .side-content {
63
- background-color: var(--j-color-fill-2);
64
- padding: 12px 20px;
65
- display: flex;
66
- align-items: center;
67
- justify-content: center;
68
- min-width: 100px;
69
- }
70
-
71
- .main-content {
72
- background-color: var(--j-color-bg-2);
73
- padding: 12px 20px;
74
- height: 60px;
75
- display: flex;
76
- align-items: center;
77
- justify-content: center;
78
- }
79
- </style>
1
+ <template>
2
+ <div class="hpanel-demo">
3
+ <div class="demo-item">
4
+ <p>基础用法</p>
5
+ <j-hpanel class="custom-panel">
6
+ <template #left>
7
+ <div class="side-content">Left Slot</div>
8
+ </template>
9
+ <div class="main-content">Default Slot (Main Content)</div>
10
+ <template #right>
11
+ <div class="side-content">Right Slot</div>
12
+ </template>
13
+ </j-hpanel>
14
+ </div>
15
+
16
+ <div class="demo-item">
17
+ <p>仅左侧和内容</p>
18
+ <j-hpanel class="custom-panel">
19
+ <template #left>
20
+ <div class="side-content">Left</div>
21
+ </template>
22
+ <div class="main-content">Main Content</div>
23
+ </j-hpanel>
24
+ </div>
25
+
26
+ <div class="demo-item">
27
+ <p>仅内容和右侧</p>
28
+ <j-hpanel class="custom-panel">
29
+ <div class="main-content">Main Content</div>
30
+ <template #right>
31
+ <div class="side-content">Right</div>
32
+ </template>
33
+ </j-hpanel>
34
+ </div>
35
+ </div>
36
+ </template>
37
+
38
+ <script setup lang="ts">
39
+ // 示例代码无需额外逻辑
40
+ </script>
41
+
42
+ <style scoped>
43
+ .hpanel-demo {
44
+ display: flex;
45
+ flex-direction: column;
46
+ gap: 24px;
47
+ }
48
+
49
+ .demo-item p {
50
+ margin: 0 0 12px;
51
+ font-size: 14px;
52
+ color: var(--j-color-text-2);
53
+ font-weight: 500;
54
+ }
55
+
56
+ .custom-panel {
57
+ border: 1px solid var(--j-color-border);
58
+ border-radius: 4px;
59
+ overflow: hidden;
60
+ }
61
+
62
+ .side-content {
63
+ background-color: var(--j-color-fill-2);
64
+ padding: 12px 20px;
65
+ display: flex;
66
+ align-items: center;
67
+ justify-content: center;
68
+ min-width: 100px;
69
+ }
70
+
71
+ .main-content {
72
+ background-color: var(--j-color-bg-2);
73
+ padding: 12px 20px;
74
+ height: 60px;
75
+ display: flex;
76
+ align-items: center;
77
+ justify-content: center;
78
+ }
79
+ </style>
@@ -1,9 +1,9 @@
1
- <template>
2
- <div style="display: flex; gap: 20px; align-items: center">
3
- <j-icon icon="mdi:home" />
4
- <j-icon icon="mdi:account" color="#409eff" />
5
- <j-icon icon="mdi:check-circle" color="#67c23a" />
6
- <j-icon icon="mdi:alert-circle" color="#f56c6c" />
7
- <j-icon icon="mdi:information" color="#909399" />
8
- </div>
9
- </template>
1
+ <template>
2
+ <div style="display: flex; gap: 20px; align-items: center">
3
+ <j-icon icon="mdi:home" />
4
+ <j-icon icon="mdi:account" color="#409eff" />
5
+ <j-icon icon="mdi:check-circle" color="#67c23a" />
6
+ <j-icon icon="mdi:alert-circle" color="#f56c6c" />
7
+ <j-icon icon="mdi:information" color="#909399" />
8
+ </div>
9
+ </template>
@@ -1,9 +1,9 @@
1
- <template>
2
- <div style="display: flex; gap: 20px; align-items: center; font-size: 24px">
3
- <j-icon icon="mdi:send" :rotate="45" />
4
- <j-icon icon="mdi:send" :rotate="90" />
5
- <j-icon icon="mdi:send" :rotate="180" />
6
- <j-icon icon="mdi:send" flip="horizontal" />
7
- <j-icon icon="mdi:send" flip="vertical" />
8
- </div>
9
- </template>
1
+ <template>
2
+ <div style="display: flex; gap: 20px; align-items: center; font-size: 24px">
3
+ <j-icon icon="mdi:send" :rotate="45" />
4
+ <j-icon icon="mdi:send" :rotate="90" />
5
+ <j-icon icon="mdi:send" :rotate="180" />
6
+ <j-icon icon="mdi:send" flip="horizontal" />
7
+ <j-icon icon="mdi:send" flip="vertical" />
8
+ </div>
9
+ </template>
@@ -1,7 +1,7 @@
1
- <template>
2
- <div style="display: flex; gap: 20px; align-items: center">
3
- <j-icon icon="mdi:home" :size="16" />
4
- <j-icon icon="mdi:home" :size="24" />
5
- <j-icon icon="mdi:home" :size="32" />
6
- </div>
7
- </template>
1
+ <template>
2
+ <div style="display: flex; gap: 20px; align-items: center">
3
+ <j-icon icon="mdi:home" :size="16" />
4
+ <j-icon icon="mdi:home" :size="24" />
5
+ <j-icon icon="mdi:home" :size="32" />
6
+ </div>
7
+ </template>
@@ -1,10 +1,10 @@
1
- <template>
2
- <j-input v-model="value" placeholder="请输入内容" style="width: 300px" />
3
- <p v-if="value" style="margin-top: 12px; color: #606266">输入的内容: {{ value }}</p>
4
- </template>
5
-
6
- <script setup lang="ts">
7
- import { ref } from 'vue'
8
-
9
- const value = ref('')
10
- </script>
1
+ <template>
2
+ <j-input v-model="value" placeholder="请输入内容" style="width: 300px" />
3
+ <p v-if="value" style="margin-top: 12px; color: #606266">输入的内容: {{ value }}</p>
4
+ </template>
5
+
6
+ <script setup lang="ts">
7
+ import { ref } from 'vue'
8
+
9
+ const value = ref('')
10
+ </script>
@@ -1,12 +1,12 @@
1
- <template>
2
- <div style="display: flex; flex-direction: column; gap: 12px">
3
- <j-input v-model="value1" clearable placeholder="可清除的输入框" style="width: 300px" />
4
- <p v-if="value1" style="color: #606266">输入的内容: {{ value1 }}</p>
5
- </div>
6
- </template>
7
-
8
- <script setup lang="ts">
9
- import { ref } from 'vue'
10
-
11
- const value1 = ref('')
12
- </script>
1
+ <template>
2
+ <div style="display: flex; flex-direction: column; gap: 12px">
3
+ <j-input v-model="value1" clearable placeholder="可清除的输入框" style="width: 300px" />
4
+ <p v-if="value1" style="color: #606266">输入的内容: {{ value1 }}</p>
5
+ </div>
6
+ </template>
7
+
8
+ <script setup lang="ts">
9
+ import { ref } from 'vue'
10
+
11
+ const value1 = ref('')
12
+ </script>
@@ -1,6 +1,6 @@
1
- <template>
2
- <div style="display: flex; flex-direction: column; gap: 12px">
3
- <j-input disabled placeholder="禁用状态" style="width: 300px" />
4
- <j-input readonly model-value="只读内容" style="width: 300px" />
5
- </div>
6
- </template>
1
+ <template>
2
+ <div style="display: flex; flex-direction: column; gap: 12px">
3
+ <j-input disabled placeholder="禁用状态" style="width: 300px" />
4
+ <j-input readonly model-value="只读内容" style="width: 300px" />
5
+ </div>
6
+ </template>
@@ -1,23 +1,23 @@
1
- <template>
2
- <div style="display: flex; flex-direction: column; gap: 12px">
3
- <j-input
4
- v-model="value1"
5
- prefix-icon="mdi:search"
6
- placeholder="带前缀图标的输入框"
7
- style="width: 300px"
8
- />
9
- <j-input
10
- v-model="value2"
11
- suffix-icon="mdi:calendar"
12
- placeholder="带后缀图标的输入框"
13
- style="width: 300px"
14
- />
15
- </div>
16
- </template>
17
-
18
- <script setup lang="ts">
19
- import { ref } from 'vue'
20
-
21
- const value1 = ref('')
22
- const value2 = ref('')
23
- </script>
1
+ <template>
2
+ <div style="display: flex; flex-direction: column; gap: 12px">
3
+ <j-input
4
+ v-model="value1"
5
+ prefix-icon="mdi:search"
6
+ placeholder="带前缀图标的输入框"
7
+ style="width: 300px"
8
+ />
9
+ <j-input
10
+ v-model="value2"
11
+ suffix-icon="mdi:calendar"
12
+ placeholder="带后缀图标的输入框"
13
+ style="width: 300px"
14
+ />
15
+ </div>
16
+ </template>
17
+
18
+ <script setup lang="ts">
19
+ import { ref } from 'vue'
20
+
21
+ const value1 = ref('')
22
+ const value2 = ref('')
23
+ </script>
@@ -1,18 +1,18 @@
1
- <template>
2
- <div style="display: flex; flex-direction: column; gap: 12px">
3
- <j-input
4
- v-model="password"
5
- type="password"
6
- show-password
7
- placeholder="请输入密码"
8
- style="width: 300px"
9
- />
10
- <p v-if="password" style="color: #606266">密码: {{ password }}</p>
11
- </div>
12
- </template>
13
-
14
- <script setup lang="ts">
15
- import { ref } from 'vue'
16
-
17
- const password = ref('')
18
- </script>
1
+ <template>
2
+ <div style="display: flex; flex-direction: column; gap: 12px">
3
+ <j-input
4
+ v-model="password"
5
+ type="password"
6
+ show-password
7
+ placeholder="请输入密码"
8
+ style="width: 300px"
9
+ />
10
+ <p v-if="password" style="color: #606266">密码: {{ password }}</p>
11
+ </div>
12
+ </template>
13
+
14
+ <script setup lang="ts">
15
+ import { ref } from 'vue'
16
+
17
+ const password = ref('')
18
+ </script>
@@ -1,13 +1,13 @@
1
- <template>
2
- <div style="display: flex; flex-direction: column; gap: 12px">
3
- <j-input v-model="value" size="large" placeholder="大型输入框" style="width: 300px" />
4
- <j-input v-model="value" placeholder="默认输入框" style="width: 300px" />
5
- <j-input v-model="value" size="small" placeholder="小型输入框" style="width: 300px" />
6
- </div>
7
- </template>
8
-
9
- <script setup lang="ts">
10
- import { ref } from 'vue'
11
-
12
- const value = ref('')
13
- </script>
1
+ <template>
2
+ <div style="display: flex; flex-direction: column; gap: 12px">
3
+ <j-input v-model="value" size="large" placeholder="大型输入框" style="width: 300px" />
4
+ <j-input v-model="value" placeholder="默认输入框" style="width: 300px" />
5
+ <j-input v-model="value" size="small" placeholder="小型输入框" style="width: 300px" />
6
+ </div>
7
+ </template>
8
+
9
+ <script setup lang="ts">
10
+ import { ref } from 'vue'
11
+
12
+ const value = ref('')
13
+ </script>
@@ -1,25 +1,25 @@
1
- <template>
2
- <div style="display: flex; flex-direction: column; gap: 12px">
3
- <j-input
4
- v-model="value1"
5
- type="textarea"
6
- :rows="4"
7
- placeholder="固定行数的文本域"
8
- style="width: 300px"
9
- />
10
- <j-input
11
- v-model="value2"
12
- type="textarea"
13
- :autosize="{ minRows: 2, maxRows: 6 }"
14
- placeholder="自适应高度的文本域"
15
- style="width: 300px"
16
- />
17
- </div>
18
- </template>
19
-
20
- <script setup lang="ts">
21
- import { ref } from 'vue'
22
-
23
- const value1 = ref('')
24
- const value2 = ref('')
25
- </script>
1
+ <template>
2
+ <div style="display: flex; flex-direction: column; gap: 12px">
3
+ <j-input
4
+ v-model="value1"
5
+ type="textarea"
6
+ :rows="4"
7
+ placeholder="固定行数的文本域"
8
+ style="width: 300px"
9
+ />
10
+ <j-input
11
+ v-model="value2"
12
+ type="textarea"
13
+ :autosize="{ minRows: 2, maxRows: 6 }"
14
+ placeholder="自适应高度的文本域"
15
+ style="width: 300px"
16
+ />
17
+ </div>
18
+ </template>
19
+
20
+ <script setup lang="ts">
21
+ import { ref } from 'vue'
22
+
23
+ const value1 = ref('')
24
+ const value2 = ref('')
25
+ </script>