From 10514ec1b86c317a273121e4a65e7d4168b21d0d Mon Sep 17 00:00:00 2001 From: dhb52 Date: Wed, 23 Apr 2025 22:37:33 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E6=8C=89=20codereview=20=E6=84=8F?= =?UTF-8?q?=E8=A7=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web-antd/package.json | 1 - apps/web-antd/src/bootstrap.ts | 2 +- .../src/components/FormCreate/index.ts | 3 - .../components/FormCreate/src/config/index.ts | 6 -- .../components/FormCreate/src/utils/index.ts | 65 -------------- .../components/dict-select.vue} | 13 +-- .../components/use-api-select.tsx} | 2 +- .../components/use-images-upload.tsx} | 0 .../helpers.ts} | 84 +++++++++++++++++-- .../src/components/form-create/index.ts | 3 + .../rules/data.ts} | 0 .../src/components/form-create/rules/index.ts | 6 ++ .../rules/use-dict-select.ts} | 6 +- .../rules/use-editor-rule.ts} | 2 +- .../rules/use-select-rule.ts} | 6 +- .../rules/use-upload-file-rule.ts} | 2 +- .../rules/use-upload-image-rule.ts} | 4 +- .../rules/use-upload-images-rule.ts} | 4 +- .../type/index.ts => form-create/typing.ts} | 11 ++- .../{formCreate => form-create}/index.ts | 6 +- apps/web-antd/src/views/infra/build/index.vue | 2 +- pnpm-lock.yaml | 7 +- 22 files changed, 118 insertions(+), 117 deletions(-) delete mode 100644 apps/web-antd/src/components/FormCreate/index.ts delete mode 100644 apps/web-antd/src/components/FormCreate/src/config/index.ts delete mode 100644 apps/web-antd/src/components/FormCreate/src/utils/index.ts rename apps/web-antd/src/components/{FormCreate/src/components/DictSelect.vue => form-create/components/dict-select.vue} (79%) rename apps/web-antd/src/components/{FormCreate/src/components/useApiSelect.tsx => form-create/components/use-api-select.tsx} (99%) rename apps/web-antd/src/components/{FormCreate/src/components/useImagesUpload.tsx => form-create/components/use-images-upload.tsx} (100%) rename apps/web-antd/src/components/{FormCreate/src/useFormCreateDesigner.ts => form-create/helpers.ts} (56%) create mode 100644 apps/web-antd/src/components/form-create/index.ts rename apps/web-antd/src/components/{FormCreate/src/config/selectRule.ts => form-create/rules/data.ts} (100%) create mode 100644 apps/web-antd/src/components/form-create/rules/index.ts rename apps/web-antd/src/components/{FormCreate/src/config/useDictSelectRule.ts => form-create/rules/use-dict-select.ts} (89%) rename apps/web-antd/src/components/{FormCreate/src/config/useEditorRule.ts => form-create/rules/use-editor-rule.ts} (94%) rename apps/web-antd/src/components/{FormCreate/src/config/useSelectRule.ts => form-create/rules/use-select-rule.ts} (81%) rename apps/web-antd/src/components/{FormCreate/src/config/useUploadFileRule.ts => form-create/rules/use-upload-file-rule.ts} (97%) rename apps/web-antd/src/components/{FormCreate/src/config/useUploadImgRule.ts => form-create/rules/use-upload-image-rule.ts} (96%) rename apps/web-antd/src/components/{FormCreate/src/config/useUploadImgsRule.ts => form-create/rules/use-upload-images-rule.ts} (96%) rename apps/web-antd/src/components/{FormCreate/src/type/index.ts => form-create/typing.ts} (71%) rename apps/web-antd/src/plugins/{formCreate => form-create}/index.ts (84%) diff --git a/apps/web-antd/package.json b/apps/web-antd/package.json index 1d08d20dd..43b7d8e05 100644 --- a/apps/web-antd/package.json +++ b/apps/web-antd/package.json @@ -29,7 +29,6 @@ "@form-create/ant-design-vue": "catalog:", "@form-create/antd-designer": "catalog:", "@tinymce/tinymce-vue": "catalog:", - "@types/crypto-js": "catalog:", "@types/lodash.clonedeep": "catalog:", "@vben/access": "workspace:*", "@vben/common-ui": "workspace:*", diff --git a/apps/web-antd/src/bootstrap.ts b/apps/web-antd/src/bootstrap.ts index 62779d804..761e58ed2 100644 --- a/apps/web-antd/src/bootstrap.ts +++ b/apps/web-antd/src/bootstrap.ts @@ -11,7 +11,7 @@ import '@vben/styles/antd'; import { useTitle } from '@vueuse/core'; import { $t, setupI18n } from '#/locales'; -import { setupFormCreate } from '#/plugins/formCreate'; +import { setupFormCreate } from '#/plugins/form-create'; import { initComponentAdapter } from './adapter/component'; import App from './app.vue'; diff --git a/apps/web-antd/src/components/FormCreate/index.ts b/apps/web-antd/src/components/FormCreate/index.ts deleted file mode 100644 index 84b612db6..000000000 --- a/apps/web-antd/src/components/FormCreate/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export { useApiSelect } from './src/components/useApiSelect'; - -export { useFormCreateDesigner } from './src/useFormCreateDesigner'; diff --git a/apps/web-antd/src/components/FormCreate/src/config/index.ts b/apps/web-antd/src/components/FormCreate/src/config/index.ts deleted file mode 100644 index 49b9d3bda..000000000 --- a/apps/web-antd/src/components/FormCreate/src/config/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -export { useDictSelectRule } from './useDictSelectRule'; -export { useEditorRule } from './useEditorRule'; -export { useSelectRule } from './useSelectRule'; -export { useUploadFileRule } from './useUploadFileRule'; -export { useUploadImgRule } from './useUploadImgRule'; -export { useUploadImgsRule } from './useUploadImgsRule'; diff --git a/apps/web-antd/src/components/FormCreate/src/utils/index.ts b/apps/web-antd/src/components/FormCreate/src/utils/index.ts deleted file mode 100644 index 816a0f2a3..000000000 --- a/apps/web-antd/src/components/FormCreate/src/utils/index.ts +++ /dev/null @@ -1,65 +0,0 @@ -export function makeRequiredRule() { - return { - type: 'Required', - field: 'formCreate$required', - title: '是否必填', - }; -} - -export const localeProps = ( - t: (msg: string) => any, - prefix: string, - rules: any[], -) => { - return rules.map((rule: { field: string; title: any }) => { - if (rule.field === 'formCreate$required') { - rule.title = t('props.required') || rule.title; - } else if (rule.field && rule.field !== '_optionType') { - rule.title = t(`components.${prefix}.${rule.field}`) || rule.title; - } - return rule; - }); -}; - -/** - * 解析表单组件的 field, title 等字段(递归,如果组件包含子组件) - * - * @param rule 组件的生成规则 https://www.form-create.com/v3/guide/rule - * @param fields 解析后表单组件字段 - * @param parentTitle 如果是子表单,子表单的标题,默认为空 - */ -export const parseFormFields = ( - rule: Record, - fields: Array> = [], - parentTitle: string = '', -) => { - const { type, field, $required, title: tempTitle, children } = rule; - if (field && tempTitle) { - let title = tempTitle; - if (parentTitle) { - title = `${parentTitle}.${tempTitle}`; - } - let required = false; - if ($required) { - required = true; - } - fields.push({ - field, - title, - type, - required, - }); - // TODO 子表单 需要处理子表单字段 - // if (type === 'group' && rule.props?.rule && Array.isArray(rule.props.rule)) { - // // 解析子表单的字段 - // rule.props.rule.forEach((item) => { - // parseFields(item, fieldsPermission, title) - // }) - // } - } - if (children && Array.isArray(children)) { - children.forEach((rule) => { - parseFormFields(rule, fields); - }); - } -}; diff --git a/apps/web-antd/src/components/FormCreate/src/components/DictSelect.vue b/apps/web-antd/src/components/form-create/components/dict-select.vue similarity index 79% rename from apps/web-antd/src/components/FormCreate/src/components/DictSelect.vue rename to apps/web-antd/src/components/form-create/components/dict-select.vue index 339c4fb4b..b4c54fd0f 100644 --- a/apps/web-antd/src/components/FormCreate/src/components/DictSelect.vue +++ b/apps/web-antd/src/components/form-create/components/dict-select.vue @@ -1,5 +1,7 @@