Commit bae44b4541c42c952569fa11ad9f089d03d5d3f8
1 parent
d207b95b
feat: 引入表单构造器
Showing
5 changed files
with
191 additions
and
5 deletions
yudao-ui-admin-vue3/package.json
| ... | ... | @@ -24,6 +24,8 @@ |
| 24 | 24 | "lint:pretty": "pretty-quick --staged" |
| 25 | 25 | }, |
| 26 | 26 | "dependencies": { |
| 27 | + "@form-create/designer": "^3.1.0", | |
| 28 | + "@form-create/element-ui": "^3.1.17", | |
| 27 | 29 | "@iconify/iconify": "^3.0.1", |
| 28 | 30 | "@vueuse/core": "^9.11.0", |
| 29 | 31 | "@wangeditor/editor": "^5.1.23", | ... | ... |
yudao-ui-admin-vue3/pnpm-lock.yaml
| ... | ... | @@ -3,6 +3,8 @@ lockfileVersion: 5.4 |
| 3 | 3 | specifiers: |
| 4 | 4 | '@commitlint/cli': ^17.4.2 |
| 5 | 5 | '@commitlint/config-conventional': ^17.4.2 |
| 6 | + '@form-create/designer': ^3.1.0 | |
| 7 | + '@form-create/element-ui': ^3.1.17 | |
| 6 | 8 | '@iconify/iconify': ^3.0.1 |
| 7 | 9 | '@iconify/json': ^2.2.8 |
| 8 | 10 | '@intlify/unplugin-vue-i18n': ^0.8.1 |
| ... | ... | @@ -85,6 +87,8 @@ specifiers: |
| 85 | 87 | xe-utils: ^3.5.7 |
| 86 | 88 | |
| 87 | 89 | dependencies: |
| 90 | + '@form-create/designer': 3.1.0_vue@3.2.45 | |
| 91 | + '@form-create/element-ui': 3.1.17_vue@3.2.45 | |
| 88 | 92 | '@iconify/iconify': 3.0.1 |
| 89 | 93 | '@vueuse/core': 9.11.0_vue@3.2.45 |
| 90 | 94 | '@wangeditor/editor': 5.1.23 |
| ... | ... | @@ -436,6 +440,14 @@ packages: |
| 436 | 440 | - supports-color |
| 437 | 441 | dev: true |
| 438 | 442 | |
| 443 | + /@babel/runtime-corejs3/7.20.7: | |
| 444 | + resolution: {integrity: sha512-jr9lCZ4RbRQmCR28Q8U8Fu49zvFqLxTY9AMOUz+iyMohMoAgpEcVxY+wJNay99oXOpOcCTODkk70NDN2aaJEeg==} | |
| 445 | + engines: {node: '>=6.9.0'} | |
| 446 | + dependencies: | |
| 447 | + core-js-pure: 3.27.2 | |
| 448 | + regenerator-runtime: 0.13.11 | |
| 449 | + dev: false | |
| 450 | + | |
| 439 | 451 | /@babel/runtime/7.20.1: |
| 440 | 452 | resolution: {integrity: sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg==} |
| 441 | 453 | engines: {node: '>=6.9.0'} |
| ... | ... | @@ -934,6 +946,100 @@ packages: |
| 934 | 946 | '@floating-ui/core': 1.0.2 |
| 935 | 947 | dev: false |
| 936 | 948 | |
| 949 | + /@form-create/component-elm-checkbox/3.1.15: | |
| 950 | + resolution: {integrity: sha512-bAl3k0p76wwMX0OxeR8KAEiUl2RP1Jl1kAqbjD762EcSXGgaXgP94v9ag1JhUoiwZkSKWl6IF+e/utjEonRSFw==} | |
| 951 | + dependencies: | |
| 952 | + '@form-create/utils': 3.1.15 | |
| 953 | + dev: false | |
| 954 | + | |
| 955 | + /@form-create/component-elm-frame/3.1.15: | |
| 956 | + resolution: {integrity: sha512-78WbMpMLTYwTo3QP7Fa+N2VF/u1vmRuwDmiobtBtVg9EE7m6//bQV96ibnLNXX27MD41gIg+o1GUJtx/qxZ8Ew==} | |
| 957 | + dependencies: | |
| 958 | + '@form-create/utils': 3.1.15 | |
| 959 | + dev: false | |
| 960 | + | |
| 961 | + /@form-create/component-elm-group/3.1.15: | |
| 962 | + resolution: {integrity: sha512-V/oVxHf9rHqqMHRV0XRVED9EYFCVZ8Tv/EbbIN/4rORruHtzdQOH8I0QHQ9T4vZO9Q4eblApzcJb8Y7bbHX23Q==} | |
| 963 | + dependencies: | |
| 964 | + '@form-create/utils': 3.1.15 | |
| 965 | + dev: false | |
| 966 | + | |
| 967 | + /@form-create/component-elm-radio/3.1.15: | |
| 968 | + resolution: {integrity: sha512-qAf1VlhrUvMlgzkz6BYLRn0UOLahkTI/cbzt8nkp5PL1oGoSXp5xqIOtHMjbnGEkEXW57kjRKI5Q7UjzIhYmvQ==} | |
| 969 | + dependencies: | |
| 970 | + '@form-create/utils': 3.1.15 | |
| 971 | + dev: false | |
| 972 | + | |
| 973 | + /@form-create/component-elm-select/3.1.15: | |
| 974 | + resolution: {integrity: sha512-ZnvPn/TGqgFDed7bKabjRvlwlQ8RYq5WCG9Iy63d2igC8577tv5QTI2rNvfGfxxH/254MPwgNlA94JukxzEOTw==} | |
| 975 | + dependencies: | |
| 976 | + '@form-create/utils': 3.1.15 | |
| 977 | + dev: false | |
| 978 | + | |
| 979 | + /@form-create/component-elm-tree/3.1.15: | |
| 980 | + resolution: {integrity: sha512-4VPN406A8Mvannn8P/2DvStqDYFfDHZ+ILG/0JndOyfe+GdYdSA5SwD3LfC4zD6AhpGrkOJXbd4YYXlBUtzt8g==} | |
| 981 | + dependencies: | |
| 982 | + '@form-create/utils': 3.1.15 | |
| 983 | + dev: false | |
| 984 | + | |
| 985 | + /@form-create/component-elm-upload/3.1.17: | |
| 986 | + resolution: {integrity: sha512-9FToAS1rQAS1KBq5YK473i3EpGGwHAerqjuoiKiH4wlaGsJma+nGtRui1SSAF4r4QfWGKuSGZJmPtT6EMP4w8Q==} | |
| 987 | + dependencies: | |
| 988 | + '@form-create/utils': 3.1.15 | |
| 989 | + dev: false | |
| 990 | + | |
| 991 | + /@form-create/component-subform/3.1.5: | |
| 992 | + resolution: {integrity: sha512-JHNEFGuwpnjGvCJ0I0GCqPL5al0qXoN4ymnRBpm+oL+6MMo5bz1kUyoqMX1MutuC96gHTqpeqc67hssi8g2mIw==} | |
| 993 | + dev: false | |
| 994 | + | |
| 995 | + /@form-create/component-wangeditor/3.1.12: | |
| 996 | + resolution: {integrity: sha512-ncsHFCiBY4veyD0yj0kWz+hqEjvY8VGTCJYpYL/b7/8dnPAEaSn9fwOKc32eyZbb8YJXwt3BivvFBx3aMj0cTg==} | |
| 997 | + dependencies: | |
| 998 | + wangeditor: 4.7.15 | |
| 999 | + dev: false | |
| 1000 | + | |
| 1001 | + /@form-create/core/3.1.17_vue@3.2.45: | |
| 1002 | + resolution: {integrity: sha512-XGsrmUR5nQEvDvxhB035df62iunSA91oQ77XbGvfaoi8Sz/EBos7xbVdIXNfACxdLMedy33+LBVGIrEHU8UNjw==} | |
| 1003 | + peerDependencies: | |
| 1004 | + vue: ^3.1.0 | |
| 1005 | + dependencies: | |
| 1006 | + '@form-create/utils': 3.1.15 | |
| 1007 | + vue: 3.2.45 | |
| 1008 | + dev: false | |
| 1009 | + | |
| 1010 | + /@form-create/designer/3.1.0_vue@3.2.45: | |
| 1011 | + resolution: {integrity: sha512-+YH/MkInTyL1bNqX6BSeixPlNUxyeqMvy5zrC97nzf+m87SuBny+qFECEkMWhtQ4GTAIy91DjxQM2KJ6QTlB4w==} | |
| 1012 | + dependencies: | |
| 1013 | + '@form-create/component-wangeditor': 3.1.12 | |
| 1014 | + '@form-create/element-ui': 3.1.17_vue@3.2.45 | |
| 1015 | + '@form-create/utils': 3.1.15 | |
| 1016 | + vuedraggable: 4.1.0_vue@3.2.45 | |
| 1017 | + transitivePeerDependencies: | |
| 1018 | + - vue | |
| 1019 | + dev: false | |
| 1020 | + | |
| 1021 | + /@form-create/element-ui/3.1.17_vue@3.2.45: | |
| 1022 | + resolution: {integrity: sha512-MQ/ozkH8Ckx1rgzUcrQmqqfg3SCOBb6AYIOn6YcF/H+iid7xbq16qJjPa0sAKNlO3WC6ak3ucF6KuWu4R7uChw==} | |
| 1023 | + peerDependencies: | |
| 1024 | + vue: ^3.1.0 | |
| 1025 | + dependencies: | |
| 1026 | + '@form-create/component-elm-checkbox': 3.1.15 | |
| 1027 | + '@form-create/component-elm-frame': 3.1.15 | |
| 1028 | + '@form-create/component-elm-group': 3.1.15 | |
| 1029 | + '@form-create/component-elm-radio': 3.1.15 | |
| 1030 | + '@form-create/component-elm-select': 3.1.15 | |
| 1031 | + '@form-create/component-elm-tree': 3.1.15 | |
| 1032 | + '@form-create/component-elm-upload': 3.1.17 | |
| 1033 | + '@form-create/component-subform': 3.1.5 | |
| 1034 | + '@form-create/core': 3.1.17_vue@3.2.45 | |
| 1035 | + '@form-create/utils': 3.1.15 | |
| 1036 | + vue: 3.2.45 | |
| 1037 | + dev: false | |
| 1038 | + | |
| 1039 | + /@form-create/utils/3.1.15: | |
| 1040 | + resolution: {integrity: sha512-tP6Z/c2XC6OYrI8D9/XWvJc2h6apsyMFTy051sY+tCcxppqyR7dBEEXmgfWOrAr980N7k10g27kwJ9TdVn+bfw==} | |
| 1041 | + dev: false | |
| 1042 | + | |
| 937 | 1043 | /@humanwhocodes/config-array/0.11.8: |
| 938 | 1044 | resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==} |
| 939 | 1045 | engines: {node: '>=10.10.0'} |
| ... | ... | @@ -2470,6 +2576,11 @@ packages: |
| 2470 | 2576 | engines: {node: '>=0.10.0'} |
| 2471 | 2577 | dev: true |
| 2472 | 2578 | |
| 2579 | + /core-js-pure/3.27.2: | |
| 2580 | + resolution: {integrity: sha512-Cf2jqAbXgWH3VVzjyaaFkY1EBazxugUepGymDoeteyYr9ByX51kD2jdHZlsEF/xnJMyN3Prua7mQuzwMg6Zc9A==} | |
| 2581 | + requiresBuild: true | |
| 2582 | + dev: false | |
| 2583 | + | |
| 2473 | 2584 | /core-js/3.26.1: |
| 2474 | 2585 | resolution: {integrity: sha512-21491RRQVzUn0GGM9Z1Jrpr6PNPxPi+Za8OM9q4tksTSnlbXXGKK1nXNg/QvwFYettXvSX6zWKCtHHfjN4puyA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/core-js/-/core-js-3.26.1.tgz} |
| 2475 | 2586 | requiresBuild: true |
| ... | ... | @@ -5369,6 +5480,10 @@ packages: |
| 5369 | 5480 | - supports-color |
| 5370 | 5481 | dev: true |
| 5371 | 5482 | |
| 5483 | + /sortablejs/1.14.0: | |
| 5484 | + resolution: {integrity: sha512-pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w==} | |
| 5485 | + dev: false | |
| 5486 | + | |
| 5372 | 5487 | /source-map-js/1.0.2: |
| 5373 | 5488 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} |
| 5374 | 5489 | engines: {node: '>=0.10.0'} |
| ... | ... | @@ -5857,7 +5972,6 @@ packages: |
| 5857 | 5972 | |
| 5858 | 5973 | /tslib/2.4.1: |
| 5859 | 5974 | resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==} |
| 5860 | - dev: true | |
| 5861 | 5975 | |
| 5862 | 5976 | /tsutils/3.21.0_typescript@4.9.4: |
| 5863 | 5977 | resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} |
| ... | ... | @@ -6342,6 +6456,15 @@ packages: |
| 6342 | 6456 | '@vue/server-renderer': 3.2.45_vue@3.2.45 |
| 6343 | 6457 | '@vue/shared': 3.2.45 |
| 6344 | 6458 | |
| 6459 | + /vuedraggable/4.1.0_vue@3.2.45: | |
| 6460 | + resolution: {integrity: sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww==} | |
| 6461 | + peerDependencies: | |
| 6462 | + vue: ^3.0.1 | |
| 6463 | + dependencies: | |
| 6464 | + sortablejs: 1.14.0 | |
| 6465 | + vue: 3.2.45 | |
| 6466 | + dev: false | |
| 6467 | + | |
| 6345 | 6468 | /vxe-table/4.3.9_vue@3.2.45+xe-utils@3.5.7: |
| 6346 | 6469 | resolution: {integrity: sha512-Ns7Ooa7lOHBpks90i0k0BMNyxfMpUo39ryxTgKE41X3xVnI9tGQs2U6+klfDlsuqYfmG3ibyzHN3OCrWbbKo4Q==} |
| 6347 | 6470 | peerDependencies: |
| ... | ... | @@ -6352,6 +6475,14 @@ packages: |
| 6352 | 6475 | xe-utils: 3.5.7 |
| 6353 | 6476 | dev: false |
| 6354 | 6477 | |
| 6478 | + /wangeditor/4.7.15: | |
| 6479 | + resolution: {integrity: sha512-aPTdREd8BxXVyJ5MI+LU83FQ7u1EPd341iXIorRNYSOvoimNoZ4nPg+yn3FGbB93/owEa6buLw8wdhYnMCJQLg==} | |
| 6480 | + dependencies: | |
| 6481 | + '@babel/runtime': 7.20.1 | |
| 6482 | + '@babel/runtime-corejs3': 7.20.7 | |
| 6483 | + tslib: 2.4.1 | |
| 6484 | + dev: false | |
| 6485 | + | |
| 6355 | 6486 | /web-storage-cache/1.1.1: |
| 6356 | 6487 | resolution: {integrity: sha512-D0MieGooOs8RpsrK+vnejXnvh4OOv/+lTFB35JRkJJQt+uOjPE08XpaE0QBLMTRu47B1KGT/Nq3Gbag3Orinzw==} |
| 6357 | 6488 | dev: false | ... | ... |
yudao-ui-admin-vue3/src/main.ts
| ... | ... | @@ -13,12 +13,15 @@ import { setupStore } from '@/store' |
| 13 | 13 | // 全局组件 |
| 14 | 14 | import { setupGlobCom } from '@/components' |
| 15 | 15 | |
| 16 | -// 引入element-plus | |
| 16 | +// 引入 element-plus | |
| 17 | 17 | import { setupElementPlus } from '@/plugins/elementPlus' |
| 18 | 18 | |
| 19 | -// 引入vxe-table | |
| 19 | +// 引入 vxe-table | |
| 20 | 20 | import { setupVxeTable } from '@/plugins/vxeTable' |
| 21 | 21 | |
| 22 | +// 引入 form-create | |
| 23 | +import { setupFormCreate } from '@/plugins/formCreate' | |
| 24 | + | |
| 22 | 25 | // 引入全局样式 |
| 23 | 26 | import '@/styles/index.scss' |
| 24 | 27 | |
| ... | ... | @@ -39,6 +42,7 @@ import './permission' |
| 39 | 42 | |
| 40 | 43 | import { isDevMode } from '@/utils/env' |
| 41 | 44 | |
| 45 | +// 本地开发模式 全局引入 element-plus 样式,加快第一次进入速度 | |
| 42 | 46 | if (isDevMode()) { |
| 43 | 47 | console.info(isDevMode()) |
| 44 | 48 | import('element-plus/dist/index.css') |
| ... | ... | @@ -58,6 +62,8 @@ const setupAll = async () => { |
| 58 | 62 | |
| 59 | 63 | setupVxeTable(app) |
| 60 | 64 | |
| 65 | + setupFormCreate(app) | |
| 66 | + | |
| 61 | 67 | setupRouter(app) |
| 62 | 68 | |
| 63 | 69 | setupAuth(app) | ... | ... |
yudao-ui-admin-vue3/src/plugins/formCreate/index.ts
0 → 100644
| 1 | +import type { App } from 'vue' | |
| 2 | +// 👇使用 form-create 需额外全局引入 element plus 组件 | |
| 3 | +import { | |
| 4 | + ElAside, | |
| 5 | + ElPopconfirm, | |
| 6 | + ElHeader, | |
| 7 | + ElMain, | |
| 8 | + ElContainer, | |
| 9 | + ElDivider, | |
| 10 | + ElTransfer, | |
| 11 | + ElAlert, | |
| 12 | + ElTabs, | |
| 13 | + ElTabPane | |
| 14 | +} from 'element-plus' | |
| 15 | + | |
| 16 | +import formCreate from '@form-create/element-ui' | |
| 17 | +import install from '@form-create/element-ui/auto-import' | |
| 18 | +import FcDesigner from '@form-create/designer' | |
| 19 | + | |
| 20 | +const components = [ | |
| 21 | + ElAside, | |
| 22 | + ElPopconfirm, | |
| 23 | + ElHeader, | |
| 24 | + ElMain, | |
| 25 | + ElContainer, | |
| 26 | + ElDivider, | |
| 27 | + ElTransfer, | |
| 28 | + ElAlert, | |
| 29 | + ElTabs, | |
| 30 | + ElTabPane | |
| 31 | +] | |
| 32 | + | |
| 33 | +export const setupFormCreate = (app: App<Element>) => { | |
| 34 | + components.forEach((component) => { | |
| 35 | + app.component(component.name, component) | |
| 36 | + }) | |
| 37 | + | |
| 38 | + formCreate.use(install) | |
| 39 | + | |
| 40 | + app.use(formCreate) | |
| 41 | + | |
| 42 | + app.use(FcDesigner) | |
| 43 | +} | ... | ... |
yudao-ui-admin-vue3/src/views/infra/build/index.vue