@cicctencent/formily 0.0.0-stage → 0.0.1

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 (308) hide show
  1. package/.eslintrc.js +40 -0
  2. package/.prettierrc.js +28 -0
  3. package/.vscode/launch.json +23 -0
  4. package/CHANGELOG.md +8 -0
  5. package/README.md +22 -2
  6. package/babel.config.js +3 -0
  7. package/build/build.js +96 -0
  8. package/build/rollup.config.bundle.js +63 -0
  9. package/build/update.version.js +35 -0
  10. package/dist/index.css +2516 -0
  11. package/dist/index.js +8377 -0
  12. package/dist/schema-field/index.css +2466 -0
  13. package/dist/schema-field/index.js +8213 -0
  14. package/dist/transform/index.js +551 -0
  15. package/dist/validate/index.js +1104 -0
  16. package/dist/vue-form/index.css +2516 -0
  17. package/dist/vue-form/index.js +8359 -0
  18. package/docs/.vuepress/client.ts +15 -0
  19. package/docs/.vuepress/components/code-preview.vue +203 -0
  20. package/docs/.vuepress/components/highlight.ts +53 -0
  21. package/docs/.vuepress/config.ts +39 -0
  22. package/docs/.vuepress/util.ts +7 -0
  23. package/docs/README.md +30 -0
  24. package/docs/components/anyOf.md +26 -0
  25. package/docs/components/array-cards.md +12 -0
  26. package/docs/components/array-collapse.md +12 -0
  27. package/docs/components/array-items.md +12 -0
  28. package/docs/components/array-table.md +12 -0
  29. package/docs/components/array-tabs.md +16 -0
  30. package/docs/components/cascader.md +12 -0
  31. package/docs/components/checkbox.md +12 -0
  32. package/docs/components/event.md +27 -0
  33. package/docs/components/hotArea.md +25 -0
  34. package/docs/components/index.md +4 -0
  35. package/docs/components/input.md +30 -0
  36. package/docs/components/layout-group.md +19 -0
  37. package/docs/components/link.md +22 -0
  38. package/docs/components/oneOf.md +8 -0
  39. package/docs/components/radio.md +12 -0
  40. package/docs/components/rich-editor.md +21 -0
  41. package/docs/components/select.md +34 -0
  42. package/docs/components/space.md +11 -0
  43. package/docs/components/switch.md +20 -0
  44. package/docs/components/text.md +21 -0
  45. package/docs/components/time-picker.md +11 -0
  46. package/docs/components/transfer.md +14 -0
  47. package/docs/components/upload-button.md +28 -0
  48. package/docs/demos/any-of/index.vue +66 -0
  49. package/docs/demos/array-cards/index.vue +105 -0
  50. package/docs/demos/array-collapse/index.vue +155 -0
  51. package/docs/demos/array-items/index.vue +171 -0
  52. package/docs/demos/array-table/index.vue +115 -0
  53. package/docs/demos/array-tabs/index.vue +56 -0
  54. package/docs/demos/cascader/index.vue +297 -0
  55. package/docs/demos/checkbox/index.vue +39 -0
  56. package/docs/demos/event/index.vue +436 -0
  57. package/docs/demos/hotArea/index.vue +240 -0
  58. package/docs/demos/index.vue +36 -0
  59. package/docs/demos/input/index.vue +46 -0
  60. package/docs/demos/layout-group/index.vue +51 -0
  61. package/docs/demos/link/index.vue +32 -0
  62. package/docs/demos/radio/index.vue +36 -0
  63. package/docs/demos/rich-editor/index.vue +22 -0
  64. package/docs/demos/select/index.vue +76 -0
  65. package/docs/demos/space/index.vue +93 -0
  66. package/docs/demos/switch/index.vue +31 -0
  67. package/docs/demos/text/index.vue +38 -0
  68. package/docs/demos/time-picker/index.vue +39 -0
  69. package/docs/demos/transfer/index.vue +26 -0
  70. package/docs/demos/upload-button/index.vue +27 -0
  71. package/docs/demos/x-data/add-button-title.vue +101 -0
  72. package/docs/demos/x-data/send-message.vue +33 -0
  73. package/docs/demos/x-reactions/any-of.vue +40 -0
  74. package/docs/demos/x-reactions/x-reactions.vue +39 -0
  75. package/docs/guide/component-extend.md +23 -0
  76. package/docs/guide/extra-bury-report.md +64 -0
  77. package/docs/guide/schema.md +22 -0
  78. package/docs/guide/x-data.md +41 -0
  79. package/docs/guide/x-reactions.md +20 -0
  80. package/example/.browserslistrc +4 -0
  81. package/example/.eslintrc.js +20 -0
  82. package/example/README.md +24 -0
  83. package/example/index.html +15 -0
  84. package/example/jest.config.js +26 -0
  85. package/example/package.json +50 -0
  86. package/example/public/favicon.ico +0 -0
  87. package/example/public/index.html +17 -0
  88. package/example/src/App.vue +25 -0
  89. package/example/src/assets/logo.png +0 -0
  90. package/example/src/components/HelloWorld.vue +148 -0
  91. package/example/src/components/group/index.vue +16 -0
  92. package/example/src/components/uploadBtn/index.vue +44 -0
  93. package/example/src/components/uploadBtn/upload-icon.svg +6 -0
  94. package/example/src/layout/component/Aside.vue +39 -0
  95. package/example/src/layout/component/Main.vue +9 -0
  96. package/example/src/layout/index.vue +15 -0
  97. package/example/src/main.ts +17 -0
  98. package/example/src/router/index.ts +99 -0
  99. package/example/src/shims-vue.d.ts +6 -0
  100. package/example/src/store/index.ts +9 -0
  101. package/example/src/views/demo/any-of/data.ts +38 -0
  102. package/example/src/views/demo/any-of/index.vue +35 -0
  103. package/example/src/views/demo/array-cards/data.ts +65 -0
  104. package/example/src/views/demo/array-cards/index.vue +33 -0
  105. package/example/src/views/demo/array-items/data.ts +29 -0
  106. package/example/src/views/demo/array-items/index.vue +33 -0
  107. package/example/src/views/demo/cloud-button/data.ts +14 -0
  108. package/example/src/views/demo/cloud-button/index.vue +22 -0
  109. package/example/src/views/demo/color-group/data.ts +15 -0
  110. package/example/src/views/demo/color-group/index.vue +22 -0
  111. package/example/src/views/demo/color-picker/data.ts +21 -0
  112. package/example/src/views/demo/color-picker/index.vue +33 -0
  113. package/example/src/views/demo/datatime/data.ts +62 -0
  114. package/example/src/views/demo/datatime/index.vue +22 -0
  115. package/example/src/views/demo/event/data.ts +184 -0
  116. package/example/src/views/demo/event/index.vue +33 -0
  117. package/example/src/views/demo/hot-area/data.ts +196 -0
  118. package/example/src/views/demo/hot-area/index.vue +33 -0
  119. package/example/src/views/demo/input/data.ts +39 -0
  120. package/example/src/views/demo/input/index.vue +33 -0
  121. package/example/src/views/demo/link/data.ts +23 -0
  122. package/example/src/views/demo/link/index.vue +22 -0
  123. package/example/src/views/demo/one-of/data.ts +139 -0
  124. package/example/src/views/demo/one-of/index.vue +33 -0
  125. package/example/src/views/demo/rich-editor/data.ts +12 -0
  126. package/example/src/views/demo/rich-editor/index.vue +24 -0
  127. package/example/src/views/demo/select/data.ts +38 -0
  128. package/example/src/views/demo/select/index.vue +33 -0
  129. package/example/src/views/demo/upload-button/data1.ts +11 -0
  130. package/example/src/views/demo/upload-button/data2.ts +12 -0
  131. package/example/src/views/demo/upload-button/index.vue +42 -0
  132. package/example/tsconfig.json +32 -0
  133. package/example/vite.config.ts +12 -0
  134. package/jest.config.js +4 -0
  135. package/package.json +92 -4
  136. package/src/components/__builtins__/configs/index.ts +1 -0
  137. package/src/components/__builtins__/index.ts +2 -0
  138. package/src/components/__builtins__/shared/create-context.ts +54 -0
  139. package/src/components/__builtins__/shared/index.ts +7 -0
  140. package/src/components/__builtins__/shared/loading.ts +20 -0
  141. package/src/components/__builtins__/shared/portal.ts +43 -0
  142. package/src/components/__builtins__/shared/resolve-component.ts +22 -0
  143. package/src/components/__builtins__/shared/transform-component.ts +33 -0
  144. package/src/components/__builtins__/shared/types.ts +8 -0
  145. package/src/components/__builtins__/shared/utils.ts +35 -0
  146. package/src/components/__builtins__/styles/common.scss +22 -0
  147. package/src/components/__builtins__/styles/element-plus.scss +1094 -0
  148. package/src/components/any-of/index.ts +20 -0
  149. package/src/components/array-base/index.ts +413 -0
  150. package/src/components/array-base/style.scss +53 -0
  151. package/src/components/array-base/style.ts +2 -0
  152. package/src/components/array-cards/index.ts +253 -0
  153. package/src/components/array-cards/style.scss +33 -0
  154. package/src/components/array-cards/style.ts +7 -0
  155. package/src/components/array-collapse/index.ts +381 -0
  156. package/src/components/array-collapse/style.scss +38 -0
  157. package/src/components/array-collapse/style.ts +10 -0
  158. package/src/components/array-items/index.ts +213 -0
  159. package/src/components/array-items/style.scss +82 -0
  160. package/src/components/array-items/style.ts +4 -0
  161. package/src/components/array-table/index.ts +567 -0
  162. package/src/components/array-table/style.scss +84 -0
  163. package/src/components/array-table/style.ts +11 -0
  164. package/src/components/array-tabs/index.ts +141 -0
  165. package/src/components/array-tabs/style.scss +16 -0
  166. package/src/components/array-tabs/style.ts +5 -0
  167. package/src/components/base/AnyOf/index.ts +155 -0
  168. package/src/components/base/AnyOf/index.vue +111 -0
  169. package/src/components/base/CloudButton/index.ts +46 -0
  170. package/src/components/base/CloudButton/index.vue +128 -0
  171. package/src/components/base/ColorGroup/index.ts +57 -0
  172. package/src/components/base/ColorGroup/index.vue +30 -0
  173. package/src/components/base/ColorPicker/index.ts +45 -0
  174. package/src/components/base/ColorPicker/index.vue +50 -0
  175. package/src/components/base/Container/index.vue +39 -0
  176. package/src/components/base/HotArea/index.ts +698 -0
  177. package/src/components/base/HotArea/index.vue +565 -0
  178. package/src/components/base/HotArea/type.ts +18 -0
  179. package/src/components/base/Input/index.vue +150 -0
  180. package/src/components/base/LayoutGroup/index.vue +40 -0
  181. package/src/components/base/Link/index.vue +43 -0
  182. package/src/components/base/Middleware/index.ts +235 -0
  183. package/src/components/base/Middleware/index.vue +169 -0
  184. package/src/components/base/OneOf/index.ts +105 -0
  185. package/src/components/base/OneOf/index.vue +85 -0
  186. package/src/components/base/RichEditor/index.ts +13 -0
  187. package/src/components/base/RichEditor/index.vue +120 -0
  188. package/src/components/base/RichEditor/options.ts +24 -0
  189. package/src/components/base/Select/index.ts +106 -0
  190. package/src/components/base/Select/index.vue +161 -0
  191. package/src/components/base/Switch/index.vue +42 -0
  192. package/src/components/base/Text/index.vue +47 -0
  193. package/src/components/base/event/index.ts +226 -0
  194. package/src/components/base/event/index.vue +356 -0
  195. package/src/components/cascader/index.ts +48 -0
  196. package/src/components/cascader/style.ts +5 -0
  197. package/src/components/checkbox/index.ts +166 -0
  198. package/src/components/checkbox/style.ts +5 -0
  199. package/src/components/cloud-button/index.ts +21 -0
  200. package/src/components/color-group/index.ts +18 -0
  201. package/src/components/color-picker/index.ts +18 -0
  202. package/src/components/container/index.ts +18 -0
  203. package/src/components/data-time/index.ts +24 -0
  204. package/src/components/date-picker/index.ts +51 -0
  205. package/src/components/date-picker/style.ts +4 -0
  206. package/src/components/editable/index.ts +261 -0
  207. package/src/components/editable/style.scss +55 -0
  208. package/src/components/editable/style.ts +5 -0
  209. package/src/components/el-form-item/index.ts +21 -0
  210. package/src/components/el-form-item/style.ts +3 -0
  211. package/src/components/event/index.ts +16 -0
  212. package/src/components/form/index.ts +94 -0
  213. package/src/components/form/style.scss +0 -0
  214. package/src/components/form/style.ts +3 -0
  215. package/src/components/form-button-group/index.ts +74 -0
  216. package/src/components/form-button-group/style.scss +0 -0
  217. package/src/components/form-button-group/style.ts +4 -0
  218. package/src/components/form-collapse/index.ts +215 -0
  219. package/src/components/form-collapse/style.scss +6 -0
  220. package/src/components/form-collapse/style.ts +4 -0
  221. package/src/components/form-dialog/index.ts +433 -0
  222. package/src/components/form-dialog/style.ts +4 -0
  223. package/src/components/form-drawer/index.ts +424 -0
  224. package/src/components/form-drawer/style.scss +21 -0
  225. package/src/components/form-drawer/style.ts +4 -0
  226. package/src/components/form-grid/index.ts +181 -0
  227. package/src/components/form-grid/style.scss +5 -0
  228. package/src/components/form-grid/style.ts +1 -0
  229. package/src/components/form-item/animation.scss +72 -0
  230. package/src/components/form-item/grid.scss +171 -0
  231. package/src/components/form-item/index.ts +642 -0
  232. package/src/components/form-item/style.scss +521 -0
  233. package/src/components/form-item/style.ts +2 -0
  234. package/src/components/form-item/var.scss +17 -0
  235. package/src/components/form-layout/index.ts +161 -0
  236. package/src/components/form-layout/style.scss +6 -0
  237. package/src/components/form-layout/style.ts +1 -0
  238. package/src/components/form-layout/useResponsiveFormLayout.ts +118 -0
  239. package/src/components/form-step/index.ts +210 -0
  240. package/src/components/form-step/style.ts +2 -0
  241. package/src/components/form-tab/index.ts +172 -0
  242. package/src/components/form-tab/style.scss +6 -0
  243. package/src/components/form-tab/style.ts +4 -0
  244. package/src/components/hot-area/index.ts +20 -0
  245. package/src/components/index.ts +49 -0
  246. package/src/components/input/index.ts +35 -0
  247. package/src/components/input/style.ts +4 -0
  248. package/src/components/input-number/index.ts +36 -0
  249. package/src/components/input-number/style.ts +3 -0
  250. package/src/components/layout-group/index.ts +18 -0
  251. package/src/components/link/index.ts +18 -0
  252. package/src/components/middleware/index.ts +21 -0
  253. package/src/components/one-of/index.ts +20 -0
  254. package/src/components/placeholder-input/index.ts +21 -0
  255. package/src/components/placeholder-input/index.vue +87 -0
  256. package/src/components/preview-text/index.ts +303 -0
  257. package/src/components/preview-text/style.ts +9 -0
  258. package/src/components/radio/index.ts +109 -0
  259. package/src/components/radio/style.ts +3 -0
  260. package/src/components/reset/index.ts +52 -0
  261. package/src/components/reset/style.ts +1 -0
  262. package/src/components/rich-editor/index.ts +18 -0
  263. package/src/components/row/index.ts +20 -0
  264. package/src/components/row/index.vue +53 -0
  265. package/src/components/select/index.ts +19 -0
  266. package/src/components/select/style.ts +5 -0
  267. package/src/components/space/index.ts +98 -0
  268. package/src/components/space/style.scss +24 -0
  269. package/src/components/space/style.ts +1 -0
  270. package/src/components/submit/index.ts +59 -0
  271. package/src/components/submit/style.ts +1 -0
  272. package/src/components/switch/index.ts +9 -0
  273. package/src/components/switch/style.ts +1 -0
  274. package/src/components/text/index.ts +21 -0
  275. package/src/components/time-picker/index.ts +21 -0
  276. package/src/components/time-picker/style.ts +4 -0
  277. package/src/components/transfer/index.ts +12 -0
  278. package/src/components/transfer/style.ts +1 -0
  279. package/src/components/upload/index.ts +136 -0
  280. package/src/components/upload/style.ts +2 -0
  281. package/src/components/upload-button/index.ts +21 -0
  282. package/src/components/upload-button/index.vue +199 -0
  283. package/src/createScemaField.ts +14 -0
  284. package/src/index.ts +41 -0
  285. package/src/schema-field/index.ts +11 -0
  286. package/src/scope.ts +29 -0
  287. package/src/transform/core.ts +404 -0
  288. package/src/transform/index.ts +11 -0
  289. package/src/transform/transform.ts +59 -0
  290. package/src/transform/utils/constant.ts +79 -0
  291. package/src/transform/utils/func.ts +145 -0
  292. package/src/typings/common.ts +37 -0
  293. package/src/typings/vue-shim.d.ts +7 -0
  294. package/src/typings/vue-test-utils.d.ts +11 -0
  295. package/src/utils/anyof_utils.ts +95 -0
  296. package/src/utils/common.ts +15 -0
  297. package/src/validate/index.ts +648 -0
  298. package/src/validate/utils/constant.ts +2 -0
  299. package/src/vue-form/index.ts +18 -0
  300. package/src/vue-form/index.vue +106 -0
  301. package/src/vue-form/useForm.ts +112 -0
  302. package/tests/data/anyof.ts +40 -0
  303. package/tests/data/image.ts +472 -0
  304. package/tests/fixtures/validate.ts +63 -0
  305. package/tests/unit/transform.spec.ts +253 -0
  306. package/tests/unit/utils.spec.ts +10 -0
  307. package/tests/unit/validate.spec.ts +256 -0
  308. package/tsconfig.json +23 -0
@@ -0,0 +1,115 @@
1
+ <template>
2
+ <div>
3
+ <VueForm :schema="schema" v-model="formData"></VueForm>
4
+ </div>
5
+ </template>
6
+
7
+ <script setup lang="ts">
8
+ import { ref } from 'vue'
9
+ const formData = ref({});
10
+ const schema = {
11
+ type: 'object',
12
+ properties: {
13
+ array: {
14
+ type: 'array',
15
+ 'x-decorator': 'FormItem',
16
+ 'x-component': 'ArrayTable',
17
+ items: {
18
+ type: 'object',
19
+ properties: {
20
+ column1: {
21
+ type: 'void',
22
+ 'x-component': 'ArrayTable.Column',
23
+ 'x-component-props': {
24
+ width: 80,
25
+ title: 'Index',
26
+ align: 'center',
27
+ },
28
+ properties: {
29
+ index: {
30
+ type: 'void',
31
+ 'x-component': 'ArrayTable.Index',
32
+ },
33
+ },
34
+ },
35
+ column2: {
36
+ type: 'void',
37
+ 'x-component': 'ArrayTable.Column',
38
+ 'x-component-props': { width: 200, title: 'A1' },
39
+ properties: {
40
+ a1: {
41
+ type: 'string',
42
+ 'x-decorator': 'Editable',
43
+ 'x-component': 'Input',
44
+ },
45
+ },
46
+ },
47
+ column3: {
48
+ type: 'void',
49
+ 'x-component': 'ArrayTable.Column',
50
+ 'x-component-props': { width: 200, title: 'A2' },
51
+ properties: {
52
+ a2: {
53
+ type: 'string',
54
+ 'x-decorator': 'FormItem',
55
+ 'x-component': 'Input',
56
+ },
57
+ },
58
+ },
59
+ column4: {
60
+ type: 'void',
61
+ 'x-component': 'ArrayTable.Column',
62
+ 'x-component-props': { title: 'A3' },
63
+ properties: {
64
+ a3: {
65
+ type: 'string',
66
+ 'x-decorator': 'FormItem',
67
+ 'x-component': 'Input',
68
+ },
69
+ },
70
+ },
71
+ column5: {
72
+ type: 'void',
73
+ 'x-component': 'ArrayTable.Column',
74
+ 'x-component-props': {
75
+ title: 'Operations',
76
+ prop: 'operations',
77
+ width: 200,
78
+ fixed: 'right',
79
+ },
80
+ properties: {
81
+ item: {
82
+ type: 'void',
83
+ 'x-component': 'FormItem',
84
+ properties: {
85
+ remove: {
86
+ type: 'void',
87
+ 'x-component': 'ArrayTable.Remove',
88
+ },
89
+ moveDown: {
90
+ type: 'void',
91
+ 'x-component': 'ArrayTable.MoveDown',
92
+ },
93
+ moveUp: {
94
+ type: 'void',
95
+ 'x-component': 'ArrayTable.MoveUp',
96
+ },
97
+ },
98
+ },
99
+ },
100
+ },
101
+ },
102
+ },
103
+ properties: {
104
+ add: {
105
+ type: 'void',
106
+ 'x-component': 'ArrayTable.Addition',
107
+ title: '添加条目',
108
+ },
109
+ },
110
+ },
111
+ },
112
+ }
113
+ </script>
114
+ <style scoped>
115
+ </style>
@@ -0,0 +1,56 @@
1
+ <template>
2
+ <div>
3
+ <VueForm :schema="schema" v-model="formData"></VueForm>
4
+ </div>
5
+ </template>
6
+
7
+ <script setup lang="ts">
8
+ import { ref } from 'vue';
9
+ const formData = ref({});
10
+ const schema = {
11
+ type: 'object',
12
+ properties: {
13
+ string_array: {
14
+ type: 'array',
15
+ title: '字符串数组',
16
+ 'x-decorator': 'FormItem',
17
+ maxItems: 3,
18
+ 'x-component': 'ArrayTabs',
19
+ items: {
20
+ type: 'string',
21
+ 'x-decorator': 'FormItem',
22
+ required: true,
23
+ 'x-component': 'Input',
24
+ },
25
+ },
26
+ array: {
27
+ type: 'array',
28
+ title: '对象数组',
29
+ 'x-decorator': 'FormItem',
30
+ maxItems: 3,
31
+ 'x-component': 'ArrayTabs',
32
+ items: {
33
+ type: 'object',
34
+ properties: {
35
+ aaa: {
36
+ type: 'string',
37
+ 'x-decorator': 'FormItem',
38
+ title: 'AAA',
39
+ required: true,
40
+ 'x-component': 'Input',
41
+ },
42
+ bbb: {
43
+ type: 'string',
44
+ 'x-decorator': 'FormItem',
45
+ title: 'BBB',
46
+ required: true,
47
+ 'x-component': 'Input',
48
+ },
49
+ },
50
+ },
51
+ },
52
+ },
53
+ };
54
+ </script>
55
+ <style scoped>
56
+ </style>
@@ -0,0 +1,297 @@
1
+ <template>
2
+ <div>
3
+ <VueForm :schema="schema" v-model="formData"></VueForm>
4
+ </div>
5
+ </template>
6
+
7
+ <script setup lang="ts">
8
+ import { ref } from 'vue';
9
+ const formData = ref({});
10
+
11
+ const schema = {
12
+ type: 'object',
13
+ properties: {
14
+ cascader: {
15
+ type: 'string',
16
+ title: '级联选择',
17
+ 'x-decorator': 'FormItem',
18
+ 'x-component': 'Cascader',
19
+ 'x-component-props': {
20
+ style: {
21
+ width: '240px',
22
+ },
23
+ options: [
24
+ {
25
+ value: 'guide',
26
+ label: 'Guide',
27
+ children: [
28
+ {
29
+ value: 'disciplines',
30
+ label: 'Disciplines',
31
+ children: [
32
+ {
33
+ value: 'consistency',
34
+ label: 'Consistency',
35
+ },
36
+ {
37
+ value: 'feedback',
38
+ label: 'Feedback',
39
+ },
40
+ {
41
+ value: 'efficiency',
42
+ label: 'Efficiency',
43
+ },
44
+ {
45
+ value: 'controllability',
46
+ label: 'Controllability',
47
+ },
48
+ ],
49
+ },
50
+ {
51
+ value: 'navigation',
52
+ label: 'Navigation',
53
+ children: [
54
+ {
55
+ value: 'side nav',
56
+ label: 'Side Navigation',
57
+ },
58
+ {
59
+ value: 'top nav',
60
+ label: 'Top Navigation',
61
+ },
62
+ ],
63
+ },
64
+ ],
65
+ },
66
+ {
67
+ value: 'component',
68
+ label: 'Component',
69
+ children: [
70
+ {
71
+ value: 'basic',
72
+ label: 'Basic',
73
+ children: [
74
+ {
75
+ value: 'layout',
76
+ label: 'Layout',
77
+ },
78
+ {
79
+ value: 'color',
80
+ label: 'Color',
81
+ },
82
+ {
83
+ value: 'typography',
84
+ label: 'Typography',
85
+ },
86
+ {
87
+ value: 'icon',
88
+ label: 'Icon',
89
+ },
90
+ {
91
+ value: 'button',
92
+ label: 'Button',
93
+ },
94
+ ],
95
+ },
96
+ {
97
+ value: 'form',
98
+ label: 'Form',
99
+ children: [
100
+ {
101
+ value: 'radio',
102
+ label: 'Radio',
103
+ },
104
+ {
105
+ value: 'checkbox',
106
+ label: 'Checkbox',
107
+ },
108
+ {
109
+ value: 'input',
110
+ label: 'Input',
111
+ },
112
+ {
113
+ value: 'input-number',
114
+ label: 'InputNumber',
115
+ },
116
+ {
117
+ value: 'select',
118
+ label: 'Select',
119
+ },
120
+ {
121
+ value: 'cascader',
122
+ label: 'Cascader',
123
+ },
124
+ {
125
+ value: 'switch',
126
+ label: 'Switch',
127
+ },
128
+ {
129
+ value: 'slider',
130
+ label: 'Slider',
131
+ },
132
+ {
133
+ value: 'time-picker',
134
+ label: 'TimePicker',
135
+ },
136
+ {
137
+ value: 'date-picker',
138
+ label: 'DatePicker',
139
+ },
140
+ {
141
+ value: 'datetime-picker',
142
+ label: 'DateTimePicker',
143
+ },
144
+ {
145
+ value: 'upload',
146
+ label: 'Upload',
147
+ },
148
+ {
149
+ value: 'rate',
150
+ label: 'Rate',
151
+ },
152
+ {
153
+ value: 'form',
154
+ label: 'Form',
155
+ },
156
+ ],
157
+ },
158
+ {
159
+ value: 'data',
160
+ label: 'Data',
161
+ children: [
162
+ {
163
+ value: 'table',
164
+ label: 'Table',
165
+ },
166
+ {
167
+ value: 'tag',
168
+ label: 'Tag',
169
+ },
170
+ {
171
+ value: 'progress',
172
+ label: 'Progress',
173
+ },
174
+ {
175
+ value: 'tree',
176
+ label: 'Tree',
177
+ },
178
+ {
179
+ value: 'pagination',
180
+ label: 'Pagination',
181
+ },
182
+ {
183
+ value: 'badge',
184
+ label: 'Badge',
185
+ },
186
+ ],
187
+ },
188
+ {
189
+ value: 'notice',
190
+ label: 'Notice',
191
+ children: [
192
+ {
193
+ value: 'alert',
194
+ label: 'Alert',
195
+ },
196
+ {
197
+ value: 'loading',
198
+ label: 'Loading',
199
+ },
200
+ {
201
+ value: 'message',
202
+ label: 'Message',
203
+ },
204
+ {
205
+ value: 'message-box',
206
+ label: 'MessageBox',
207
+ },
208
+ {
209
+ value: 'notification',
210
+ label: 'Notification',
211
+ },
212
+ ],
213
+ },
214
+ {
215
+ value: 'navigation',
216
+ label: 'Navigation',
217
+ children: [
218
+ {
219
+ value: 'menu',
220
+ label: 'Menu',
221
+ },
222
+ {
223
+ value: 'tabs',
224
+ label: 'Tabs',
225
+ },
226
+ {
227
+ value: 'breadcrumb',
228
+ label: 'Breadcrumb',
229
+ },
230
+ {
231
+ value: 'dropdown',
232
+ label: 'Dropdown',
233
+ },
234
+ {
235
+ value: 'steps',
236
+ label: 'Steps',
237
+ },
238
+ ],
239
+ },
240
+ {
241
+ value: 'others',
242
+ label: 'Others',
243
+ children: [
244
+ {
245
+ value: 'dialog',
246
+ label: 'Dialog',
247
+ },
248
+ {
249
+ value: 'tooltip',
250
+ label: 'Tooltip',
251
+ },
252
+ {
253
+ value: 'popover',
254
+ label: 'Popover',
255
+ },
256
+ {
257
+ value: 'card',
258
+ label: 'Card',
259
+ },
260
+ {
261
+ value: 'carousel',
262
+ label: 'Carousel',
263
+ },
264
+ {
265
+ value: 'collapse',
266
+ label: 'Collapse',
267
+ },
268
+ ],
269
+ },
270
+ ],
271
+ },
272
+ {
273
+ value: 'resource',
274
+ label: 'Resource',
275
+ children: [
276
+ {
277
+ value: 'axure',
278
+ label: 'Axure Components',
279
+ },
280
+ {
281
+ value: 'sketch',
282
+ label: 'Sketch Templates',
283
+ },
284
+ {
285
+ value: 'docs',
286
+ label: 'Design Documentation',
287
+ },
288
+ ],
289
+ },
290
+ ],
291
+ },
292
+ },
293
+ },
294
+ };
295
+ </script>
296
+ <style scoped>
297
+ </style>
@@ -0,0 +1,39 @@
1
+ <template>
2
+ <div>
3
+ <VueForm :schema="schema" v-model="formData"></VueForm>
4
+ </div>
5
+ </template>
6
+
7
+ <script setup lang="ts">
8
+ import { ref } from 'vue';
9
+ const formData = ref({});
10
+ const schema = {
11
+ type: 'object',
12
+ properties: {
13
+ checkbox: {
14
+ type: 'number',
15
+ title: '是否确认',
16
+ 'x-decorator': 'FormItem',
17
+ 'x-component': 'Checkbox',
18
+ },
19
+ checkboxGroup: {
20
+ type: 'array',
21
+ title: '复选',
22
+ 'x-decorator': 'FormItem',
23
+ 'x-component': 'Checkbox.Group',
24
+ enum: [
25
+ {
26
+ label: '选项1',
27
+ value: 1,
28
+ },
29
+ {
30
+ label: '选项2',
31
+ value: 2,
32
+ },
33
+ ],
34
+ },
35
+ },
36
+ };
37
+ </script>
38
+ <style scoped>
39
+ </style>