From a20803453929b28406e205d659d038a26e1be0c9 Mon Sep 17 00:00:00 2001 From: dap <15891557205@163.com> Date: Thu, 8 Jan 2026 20:56:07 +0800 Subject: [PATCH] init: antdv-next --- README.zh-CN.md | 4 +- apps/web-antd/package.json | 2 +- apps/web-antd/src/adapter/component/index.ts | 71 +++++++++++-------- apps/web-antd/src/adapter/vxe-table.ts | 2 +- apps/web-antd/src/api/helper.ts | 2 +- apps/web-antd/src/api/request.ts | 2 +- apps/web-antd/src/app.vue | 4 +- .../components/cropper/src/cropper-avatar.vue | 4 +- .../components/cropper/src/cropper-modal.vue | 2 +- .../description/src/description.vue | 6 +- .../src/components/description/src/typing.ts | 2 +- .../web-antd/src/components/dict/src/data.tsx | 2 +- .../src/components/dict/src/index.vue | 2 +- apps/web-antd/src/components/global/button.ts | 13 ++-- apps/web-antd/src/components/global/index.ts | 4 +- .../src/components/table/src/options-tag.vue | 2 +- .../src/components/table/src/table-switch.vue | 2 +- .../components/tenant-toggle/src/index.vue | 6 +- .../src/components/tinymce/src/editor.vue | 2 +- .../src/components/tree/src/helper.tsx | 2 +- .../web-antd/src/components/tree/src/hook.tsx | 4 +- .../components/tree/src/menu-select-table.vue | 4 +- .../components/tree/src/tree-select-panel.vue | 6 +- .../components/upload-old/src/file-upload.vue | 6 +- .../upload-old/src/image-upload.vue | 6 +- .../src/components/upload/src/file-upload.vue | 4 +- .../src/components/upload/src/helper.ts | 2 +- .../src/components/upload/src/hook.ts | 8 +-- .../components/upload/src/image-upload.vue | 4 +- .../src/components/upload/src/props.d.ts | 6 +- apps/web-antd/src/layouts/basic.vue | 2 +- apps/web-antd/src/locales/index.ts | 6 +- apps/web-antd/src/router/access.ts | 2 +- apps/web-antd/src/store/auth.ts | 2 +- apps/web-antd/src/store/notify.ts | 2 +- apps/web-antd/src/upload-tip.ts | 2 +- apps/web-antd/src/utils/file/download.ts | 2 +- apps/web-antd/src/utils/modal.tsx | 6 +- apps/web-antd/src/utils/popup.ts | 2 +- apps/web-antd/src/utils/render.tsx | 2 +- .../views/_core/authentication/code-login.vue | 2 +- .../_core/authentication/input-captcha.vue | 2 +- .../src/views/_core/authentication/login.vue | 2 +- .../_core/authentication/oauth-login.vue | 2 +- .../_core/profile/components/account-bind.vue | 2 +- .../profile/components/online-device.vue | 2 +- .../profile/components/secure-setting.vue | 2 +- .../views/_core/profile/password-setting.vue | 2 +- .../src/views/_core/profile/profile-panel.vue | 2 +- .../src/views/_core/profile/setting-panel.vue | 2 +- .../src/views/_core/social-callback/index.vue | 2 +- apps/web-antd/src/views/demo/demo/index.vue | 2 +- apps/web-antd/src/views/demo/tree/index.vue | 2 +- .../cache/components/redis-description.vue | 2 +- .../src/views/monitor/cache/index.vue | 2 +- .../src/views/monitor/logininfor/index.vue | 2 +- .../monitor/logininfor/login-info-modal.vue | 2 +- .../src/views/monitor/online/index.vue | 2 +- .../src/views/monitor/operlog/index.vue | 2 +- .../operlog/operation-preview-drawer.vue | 2 +- .../src/views/system/client/index.vue | 2 +- .../src/views/system/client/secret-input.vue | 2 +- .../src/views/system/config/index.vue | 2 +- apps/web-antd/src/views/system/dept/index.vue | 2 +- .../src/views/system/dict/data/index.vue | 2 +- .../system/dict/data/tag-style-picker.vue | 4 +- .../views/system/dict/type/index-refactor.vue | 2 +- .../src/views/system/dict/type/index.vue | 2 +- apps/web-antd/src/views/system/menu/index.vue | 2 +- .../src/views/system/menu/menu-drawer.vue | 2 +- .../src/views/system/notice/index.vue | 2 +- .../src/views/system/notice/notice-modal.vue | 4 +- .../src/views/system/oss-config/data.tsx | 2 +- .../src/views/system/oss-config/index.vue | 2 +- .../system/oss-config/oss-config-drawer.vue | 2 +- apps/web-antd/src/views/system/oss/index.vue | 2 +- apps/web-antd/src/views/system/post/index.vue | 2 +- .../src/views/system/role-assign/index.vue | 2 +- apps/web-antd/src/views/system/role/data.tsx | 2 +- apps/web-antd/src/views/system/role/index.vue | 2 +- .../src/views/system/tenant/index.vue | 2 +- .../src/views/system/tenant/tenant-drawer.vue | 2 +- .../src/views/system/tenantPackage/index.vue | 2 +- .../src/views/system/user/dept-tree.vue | 6 +- apps/web-antd/src/views/system/user/index.vue | 2 +- .../src/views/system/user/user-drawer.vue | 2 +- .../views/system/user/user-import-modal.vue | 6 +- .../src/views/system/user/user-info-modal.vue | 46 ++++++------ .../system/user/user-reset-pwd-modal.vue | 2 +- .../src/views/tool/gen/code-preview-modal.vue | 4 +- apps/web-antd/src/views/tool/gen/edit-gen.vue | 2 +- .../tool/gen/edit-steps/basic-setting.vue | 2 +- .../views/tool/gen/edit-steps/gen-data.tsx | 2 +- apps/web-antd/src/views/tool/gen/index.vue | 2 +- .../src/views/workflow/category/index.vue | 2 +- .../components/actions/flow-actions.vue | 2 +- .../workflow/components/approval-card.vue | 2 +- .../workflow/components/approval-content.vue | 2 +- .../workflow/components/approval-details.vue | 2 +- .../workflow/components/approval-modal.vue | 2 +- .../workflow/components/approval-panel.vue | 2 +- .../components/approval-timeline-item.vue | 2 +- .../workflow/components/approval-timeline.vue | 2 +- .../workflow/components/copy-component.vue | 2 +- .../workflow/components/flow-info-modal.vue | 2 +- .../components/flow-interfere-modal.vue | 2 +- .../src/views/workflow/components/helper.tsx | 2 +- .../src/views/workflow/leave/index.vue | 2 +- .../workflow/leave/leave-description.vue | 2 +- .../src/views/workflow/leave/leave-form.vue | 2 +- .../src/views/workflow/leave/leaveEdit.vue | 2 +- .../processDefinition/category-tree.vue | 2 +- .../workflow/processDefinition/index.vue | 4 +- .../process-definition-deploy-modal.vue | 4 +- .../views/workflow/processInstance/index.vue | 4 +- .../instance-variable-modal.vue | 2 +- .../src/views/workflow/spel/index.vue | 2 +- .../views/workflow/task/allTaskWaiting.vue | 2 +- .../src/views/workflow/task/myDocument.vue | 2 +- .../src/views/workflow/task/taskCopyList.vue | 2 +- .../src/views/workflow/task/taskFinish.vue | 2 +- .../src/views/workflow/task/taskWaiting.vue | 2 +- .../演示使用自行删除/changelog/index.vue | 2 +- .../src/views/演示使用自行删除/dict/index.vue | 2 +- .../views/演示使用自行删除/other/encrypt.vue | 2 +- .../src/views/演示使用自行删除/sse/index.vue | 2 +- .../views/演示使用自行删除/tinymce/index.vue | 2 +- .../views/演示使用自行删除/upload/index.vue | 4 +- .../演示使用自行删除/upload/upload-modal.vue | 2 +- .../views/演示使用自行删除/visit/index.vue | 2 +- .../views/演示使用自行删除/vxe/edit-table.vue | 2 +- .../src/views/演示使用自行删除/vxe/index.vue | 2 +- .../views/演示使用自行删除/wechat/index.vue | 2 +- apps/web-antd/types/global-components.d.ts | 2 +- docs/package.json | 2 +- docs/src/_env/adapter/component.ts | 2 +- docs/src/_env/adapter/vxe-table.ts | 2 +- .../common-ui/vben-api-component.md | 2 +- docs/src/components/common-ui/vben-form.md | 42 +++++------ .../components/common-ui/vben-vxe-table.md | 2 +- docs/src/demos/vben-alert/alert/index.vue | 2 +- docs/src/demos/vben-alert/confirm/index.vue | 2 +- docs/src/demos/vben-alert/prompt/index.vue | 2 +- .../vben-api-component/cascader/index.vue | 2 +- docs/src/demos/vben-form/api/index.vue | 2 +- docs/src/demos/vben-form/basic/index.vue | 2 +- docs/src/demos/vben-form/custom/index.vue | 2 +- docs/src/demos/vben-form/dynamic/index.vue | 2 +- docs/src/demos/vben-form/query/index.vue | 2 +- docs/src/demos/vben-form/rules/index.vue | 2 +- docs/src/demos/vben-vxe-table/basic/index.vue | 2 +- .../vben-vxe-table/custom-cell/index.vue | 2 +- .../demos/vben-vxe-table/edit-row/index.vue | 2 +- docs/src/demos/vben-vxe-table/fixed/index.vue | 2 +- docs/src/demos/vben-vxe-table/form/index.vue | 2 +- .../src/demos/vben-vxe-table/remote/index.vue | 2 +- docs/src/demos/vben-vxe-table/tree/index.vue | 2 +- .../en/guide/essentials/external-module.md | 10 +-- docs/src/en/guide/essentials/server.md | 2 +- docs/src/en/guide/other/faq.md | 2 +- docs/src/guide/essentials/external-module.md | 10 +-- docs/src/guide/essentials/server.md | 2 +- docs/src/guide/in-depth/check-updates.md | 2 +- docs/src/guide/other/faq.md | 2 +- .../tailwind-config/src/postcss.config.ts | 2 +- .../default-loading-antd.html | 2 +- .../inject-app-loading/default-loading.html | 2 +- .../effects/plugins/src/vxe-table/init.ts | 2 +- packages/styles/src/antd/index.css | 2 +- playground/package.json | 2 +- playground/src/adapter/component/index.ts | 52 +++++++------- playground/src/adapter/vxe-table.ts | 2 +- playground/src/api/request.ts | 2 +- playground/src/app.vue | 2 +- playground/src/locales/index.ts | 6 +- playground/src/router/access.ts | 2 +- playground/src/store/auth.ts | 2 +- .../views/_core/authentication/code-login.vue | 2 +- .../views/_core/profile/password-setting.vue | 2 +- .../src/views/demos/access/button-control.vue | 2 +- playground/src/views/demos/access/index.vue | 2 +- playground/src/views/demos/badge/index.vue | 2 +- .../views/demos/breadcrumb/lateral-detail.vue | 2 +- .../src/views/demos/breadcrumb/lateral.vue | 2 +- .../views/demos/features/clipboard/index.vue | 2 +- .../demos/features/file-download/index.vue | 2 +- .../demos/features/full-screen/index.vue | 2 +- .../src/views/demos/features/icons/index.vue | 2 +- .../demos/features/json-bigint/index.vue | 2 +- .../demos/features/login-expired/index.vue | 2 +- .../request-params-serializer/index.vue | 2 +- .../src/views/demos/features/tabs/index.vue | 2 +- .../views/demos/features/vue-query/index.vue | 2 +- .../features/vue-query/infinite-queries.vue | 2 +- .../features/vue-query/paginated-queries.vue | 2 +- .../features/vue-query/query-retries.vue | 2 +- .../views/demos/features/watermark/index.vue | 2 +- .../src/views/examples/button-group/index.vue | 2 +- .../captcha/point-selection-captcha.vue | 2 +- .../views/examples/captcha/slider-captcha.vue | 2 +- .../captcha/slider-rotate-captcha.vue | 2 +- .../captcha/slider-translate-captcha.vue | 2 +- .../src/views/examples/context-menu/index.vue | 2 +- .../src/views/examples/count-to/index.vue | 2 +- playground/src/views/examples/doc-button.vue | 2 +- .../examples/drawer/auto-height-demo.vue | 2 +- .../src/views/examples/drawer/base-demo.vue | 2 +- .../views/examples/drawer/dynamic-demo.vue | 2 +- .../views/examples/drawer/in-content-demo.vue | 2 +- .../src/views/examples/drawer/index.vue | 2 +- .../examples/drawer/shared-data-demo.vue | 2 +- .../src/views/examples/ellipsis/index.vue | 2 +- playground/src/views/examples/form/api.vue | 4 +- playground/src/views/examples/form/basic.vue | 4 +- .../src/views/examples/form/custom-layout.vue | 2 +- playground/src/views/examples/form/custom.vue | 2 +- .../src/views/examples/form/dynamic.vue | 2 +- playground/src/views/examples/form/merge.vue | 2 +- .../examples/form/modules/two-fields.vue | 2 +- playground/src/views/examples/form/query.vue | 2 +- playground/src/views/examples/form/rules.vue | 2 +- .../examples/form/scroll-to-error-test.vue | 2 +- .../src/views/examples/json-viewer/index.vue | 2 +- .../src/views/examples/layout/col-page.vue | 2 +- .../src/views/examples/loading/index.vue | 2 +- .../views/examples/modal/auto-height-demo.vue | 2 +- .../src/views/examples/modal/base-demo.vue | 2 +- .../src/views/examples/modal/blur-demo.vue | 2 +- .../src/views/examples/modal/drag-demo.vue | 2 +- .../src/views/examples/modal/dynamic-demo.vue | 2 +- .../views/examples/modal/form-modal-demo.vue | 2 +- .../views/examples/modal/in-content-demo.vue | 2 +- playground/src/views/examples/modal/index.vue | 2 +- .../src/views/examples/modal/nested-demo.vue | 2 +- .../views/examples/modal/shared-data-demo.vue | 2 +- .../src/views/examples/motion/index.vue | 2 +- playground/src/views/examples/tippy/index.vue | 2 +- .../src/views/examples/vxe-table/basic.vue | 2 +- .../views/examples/vxe-table/custom-cell.vue | 2 +- .../src/views/examples/vxe-table/edit-row.vue | 2 +- .../src/views/examples/vxe-table/fixed.vue | 2 +- .../src/views/examples/vxe-table/form.vue | 2 +- .../src/views/examples/vxe-table/remote.vue | 2 +- .../src/views/examples/vxe-table/tree.vue | 2 +- playground/src/views/system/dept/list.vue | 2 +- .../src/views/system/dept/modules/form.vue | 2 +- playground/src/views/system/menu/list.vue | 2 +- .../src/views/system/menu/modules/form.vue | 2 +- playground/src/views/system/role/list.vue | 2 +- .../src/views/system/role/modules/form.vue | 4 +- pnpm-workspace.yaml | 2 +- 251 files changed, 417 insertions(+), 401 deletions(-) diff --git a/README.zh-CN.md b/README.zh-CN.md index 2fd05a22..d655fa0b 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -14,12 +14,12 @@ V1.2.0版本对接warmflow工作流 ## 简介 -基于 [vben5 & ant-design-vue](https://github.com/vbenjs/vue-vben-admin) 的 RuoYi-Vue-Plus 前端项目 +基于 [vben5 & antdv-next](https://github.com/vbenjs/vue-vben-admin) 的 RuoYi-Vue-Plus 前端项目 | 组件/框架 | 版本 | | :------------- | :----- | | vben | 5.5.9 | -| ant-design-vue | 4.2.6 | +| antdv-next | 4.2.6 | | vue | 3.5.13 | 对应后端项目: **(分布式 5.X 分支 微服务 2.分支)** diff --git a/apps/web-antd/package.json b/apps/web-antd/package.json index c8df8b2e..3595f5c7 100644 --- a/apps/web-antd/package.json +++ b/apps/web-antd/package.json @@ -44,7 +44,7 @@ "@vben/types": "workspace:*", "@vben/utils": "workspace:*", "@vueuse/core": "catalog:", - "ant-design-vue": "catalog:", + "antdv-next": "catalog:", "cropperjs": "^1.6.2", "dayjs": "catalog:", "echarts": "^5.5.1", diff --git a/apps/web-antd/src/adapter/component/index.ts b/apps/web-antd/src/adapter/component/index.ts index 90ff7a45..99ff7e49 100644 --- a/apps/web-antd/src/adapter/component/index.ts +++ b/apps/web-antd/src/adapter/component/index.ts @@ -13,7 +13,7 @@ import { computed, defineAsyncComponent, defineComponent, h, ref } from 'vue'; import { ApiComponent, globalShareState, IconPicker } from '@vben/common-ui'; import { $t } from '@vben/locales'; -import { notification } from 'ant-design-vue'; +import { notification } from 'antdv-next'; import { FileUploadOld, ImageUploadOld } from '#/components/upload-old'; @@ -29,57 +29,68 @@ const ImageUpload = defineAsyncComponent(() => import('#/components/upload').then((res) => res.ImageUpload), ); -const AutoComplete = defineAsyncComponent( - () => import('ant-design-vue/es/auto-complete'), +const Button = defineAsyncComponent( + () => import('antdv-next/dist/button/index'), ); -const Button = defineAsyncComponent(() => import('ant-design-vue/es/button')); const Cascader = defineAsyncComponent( - () => import('ant-design-vue/es/cascader'), + () => import('antdv-next/dist/cascader/index'), ); const Checkbox = defineAsyncComponent( - () => import('ant-design-vue/es/checkbox'), + () => import('antdv-next/dist/checkbox/index'), ); -const CheckboxGroup = defineAsyncComponent(() => - import('ant-design-vue/es/checkbox').then((res) => res.CheckboxGroup), +const CheckboxGroup = defineAsyncComponent( + () => import('antdv-next/dist/checkbox/Group'), ); const DatePicker = defineAsyncComponent( - () => import('ant-design-vue/es/date-picker'), + () => import('antdv-next/dist/date-picker/index'), ); -const Divider = defineAsyncComponent(() => import('ant-design-vue/es/divider')); -const Input = defineAsyncComponent(() => import('ant-design-vue/es/input')); +const Divider = defineAsyncComponent( + () => import('antdv-next/dist/divider/index'), +); +const Input = defineAsyncComponent(() => import('antdv-next/dist/input/index')); const InputNumber = defineAsyncComponent( - () => import('ant-design-vue/es/input-number'), + () => import('antdv-next/dist/input-number/index'), ); -const InputPassword = defineAsyncComponent(() => - import('ant-design-vue/es/input').then((res) => res.InputPassword), +const InputPassword = defineAsyncComponent( + () => import('antdv-next/dist/input/Password'), ); const Mentions = defineAsyncComponent( - () => import('ant-design-vue/es/mentions'), + () => import('antdv-next/dist/mentions/index'), ); -const Radio = defineAsyncComponent(() => import('ant-design-vue/es/radio')); +const Radio = defineAsyncComponent(() => import('antdv-next/dist/radio/index')); const RadioGroup = defineAsyncComponent(() => - import('ant-design-vue/es/radio').then((res) => res.RadioGroup), + import('antdv-next/dist/radio/index').then((res) => res.RadioGroup), ); const RangePicker = defineAsyncComponent(() => - import('ant-design-vue/es/date-picker').then((res) => res.RangePicker), + import('antdv-next/dist/date-picker/index').then( + (res) => res.DateRangePicker, + ), ); -const Rate = defineAsyncComponent(() => import('ant-design-vue/es/rate')); -const Select = defineAsyncComponent(() => import('ant-design-vue/es/select')); -const Space = defineAsyncComponent(() => import('ant-design-vue/es/space')); -const Switch = defineAsyncComponent(() => import('ant-design-vue/es/switch')); -const Textarea = defineAsyncComponent(() => - import('ant-design-vue/es/input').then((res) => res.Textarea), +const Rate = defineAsyncComponent(() => import('antdv-next/dist/rate/index')); +const Select = defineAsyncComponent( + () => import('antdv-next/dist/select/index'), +); +const Space = defineAsyncComponent(() => import('antdv-next/dist/space/index')); +const Switch = defineAsyncComponent( + () => import('antdv-next/dist/switch/index'), +); +const Textarea = defineAsyncComponent( + () => import('antdv-next/dist/input/TextArea'), ); const TimePicker = defineAsyncComponent( - () => import('ant-design-vue/es/time-picker'), + () => import('antdv-next/dist/time-picker/index'), ); const TimeRangePicker = defineAsyncComponent(() => - import('ant-design-vue/es/time-picker').then((res) => res.TimeRangePicker), + import('antdv-next/dist/time-picker/index').then( + (res) => res.TimeRangePicker, + ), ); const TreeSelect = defineAsyncComponent( - () => import('ant-design-vue/es/tree-select'), + () => import('antdv-next/dist/tree-select/index'), +); +const Upload = defineAsyncComponent( + () => import('antdv-next/dist/upload/Upload'), ); -const Upload = defineAsyncComponent(() => import('ant-design-vue/es/upload')); const withDefaultPlaceholder = ( component: T, @@ -118,6 +129,7 @@ const withDefaultPlaceholder = ( ...props, ...attrs, ref: innerRef, + variant: 'outlined', }, slots, ); @@ -202,7 +214,6 @@ async function initComponentAdapter() { visibleEvent: 'onVisibleChange', }, ), - AutoComplete, Cascader: withDefaultPlaceholder(Cascader, 'select'), Checkbox, CheckboxGroup, @@ -253,7 +264,7 @@ async function initComponentAdapter() { copyPreferencesSuccess: (title, content) => { notification.success({ description: content, - message: title, + title, placement: 'bottomRight', }); }, diff --git a/apps/web-antd/src/adapter/vxe-table.ts b/apps/web-antd/src/adapter/vxe-table.ts index 6ad12af1..3e759b8b 100644 --- a/apps/web-antd/src/adapter/vxe-table.ts +++ b/apps/web-antd/src/adapter/vxe-table.ts @@ -4,7 +4,7 @@ import { h } from 'vue'; import { setupVbenVxeTable, useVbenVxeGrid } from '@vben/plugins/vxe-table'; -import { Button, Image } from 'ant-design-vue'; +import { Button, Image } from 'antdv-next'; import { useVbenForm } from './form'; diff --git a/apps/web-antd/src/api/helper.ts b/apps/web-antd/src/api/helper.ts index 55174d1c..0e977751 100644 --- a/apps/web-antd/src/api/helper.ts +++ b/apps/web-antd/src/api/helper.ts @@ -1,6 +1,6 @@ import { $t } from '@vben/locales'; -import { message, Modal } from 'ant-design-vue'; +import { message, Modal } from 'antdv-next'; import { useAuthStore } from '#/store'; diff --git a/apps/web-antd/src/api/request.ts b/apps/web-antd/src/api/request.ts index da719815..ae86227e 100644 --- a/apps/web-antd/src/api/request.ts +++ b/apps/web-antd/src/api/request.ts @@ -27,7 +27,7 @@ import { RsaEncryption, } from '@vben/utils'; -import { message, Modal } from 'ant-design-vue'; +import { message, Modal } from 'antdv-next'; import { isEmpty, isNull } from 'lodash-es'; import { useAuthStore } from '#/store'; diff --git a/apps/web-antd/src/app.vue b/apps/web-antd/src/app.vue index 8fb23900..4921d77d 100644 --- a/apps/web-antd/src/app.vue +++ b/apps/web-antd/src/app.vue @@ -4,7 +4,7 @@ import { computed } from 'vue'; import { useAntdDesignTokens } from '@vben/hooks'; import { preferences, usePreferences } from '@vben/preferences'; -import { App, ConfigProvider, theme } from 'ant-design-vue'; +import { App, ConfigProvider, theme } from 'antdv-next'; import { antdLocale } from '#/locales'; @@ -35,7 +35,7 @@ useUploadTip();