From 1f643874a97d21d7b61182b7fdba7cf85038c7f6 Mon Sep 17 00:00:00 2001 From: dap <15891557205@163.com> Date: Fri, 16 Jan 2026 11:21:23 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E7=A7=BB=E9=99=A4=20Modal=20?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E7=9B=B4=E6=8E=A5=E5=AF=BC=E5=85=A5=EF=BC=8C?= =?UTF-8?q?=E7=BB=9F=E4=B8=80=E4=BD=BF=E7=94=A8=20window.modal=20=E8=B0=83?= =?UTF-8?q?=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将项目中直接导入的 antdv-next Modal 组件替换为通过 window.modal 调用,提升代码一致性 删除不再使用的 table-switch.vue 组件 --- apps/web-antd/src/api/helper.ts | 4 +- apps/web-antd/src/api/request.ts | 5 +- .../src/components/global/api-switch.vue | 4 +- apps/web-antd/src/components/table/index.ts | 1 - .../src/components/table/src/table-switch.vue | 134 ------------------ .../src/components/upload/src/hook.ts | 3 +- apps/web-antd/src/store/notify.ts | 4 +- apps/web-antd/src/utils/modal.tsx | 4 +- apps/web-antd/src/utils/popup.ts | 3 +- .../_core/profile/components/account-bind.vue | 4 +- .../profile/components/secure-setting.vue | 3 +- apps/web-antd/src/views/demo/demo/index.vue | 4 +- .../src/views/monitor/logininfor/index.vue | 4 +- .../src/views/monitor/operlog/index.vue | 4 +- .../src/views/system/client/index.vue | 4 +- .../src/views/system/config/index.vue | 4 +- .../src/views/system/dict/data/index.vue | 4 +- .../views/system/dict/type/index-refactor.vue | 13 +- .../src/views/system/dict/type/index.vue | 4 +- .../src/views/system/notice/index.vue | 4 +- .../src/views/system/oss-config/index.vue | 4 +- apps/web-antd/src/views/system/oss/index.vue | 12 +- apps/web-antd/src/views/system/post/index.vue | 4 +- .../src/views/system/role-assign/index.vue | 4 +- apps/web-antd/src/views/system/role/index.vue | 4 +- .../src/views/system/tenant/index.vue | 4 +- .../src/views/system/tenantPackage/index.vue | 4 +- apps/web-antd/src/views/system/user/index.vue | 4 +- .../views/system/user/user-import-modal.vue | 6 +- apps/web-antd/src/views/tool/gen/index.vue | 4 +- .../components/actions/flow-actions.vue | 14 +- .../components/flow-interfere-modal.vue | 10 +- .../src/views/workflow/components/helper.tsx | 3 +- .../src/views/workflow/leave/index.vue | 4 +- .../workflow/processDefinition/index.vue | 4 +- .../views/workflow/processInstance/index.vue | 4 +- .../instance-variable-modal.vue | 4 +- .../src/views/workflow/spel/index.vue | 4 +- .../views/演示使用自行删除/upload/index.vue | 4 +- .../演示使用自行删除/upload/upload-modal.vue | 4 +- .../views/演示使用自行删除/vxe/edit-table.vue | 4 +- playground/src/views/system/role/list.vue | 4 +- 42 files changed, 85 insertions(+), 242 deletions(-) delete mode 100644 apps/web-antd/src/components/table/src/table-switch.vue diff --git a/apps/web-antd/src/api/helper.ts b/apps/web-antd/src/api/helper.ts index 29256177..a95da5d9 100644 --- a/apps/web-antd/src/api/helper.ts +++ b/apps/web-antd/src/api/helper.ts @@ -1,7 +1,5 @@ import { $t } from '@vben/locales'; -import { Modal } from 'antdv-next'; - import { useAuthStore } from '#/store'; import { requestClient } from './request'; @@ -83,7 +81,7 @@ export function handleUnauthorizedLogout() { if (error instanceof ImpossibleReturn401Exception) { lockLogoutRequest = true; if (import.meta.env.DEV) { - Modal.error({ + window.modal.error({ title: '提示', centered: true, content: diff --git a/apps/web-antd/src/api/request.ts b/apps/web-antd/src/api/request.ts index 4df3e16d..e8939cb9 100644 --- a/apps/web-antd/src/api/request.ts +++ b/apps/web-antd/src/api/request.ts @@ -27,7 +27,6 @@ import { RsaEncryption, } from '@vben/utils'; -import { Modal } from 'antdv-next'; import { isEmpty, isNull } from 'lodash-es'; import { useAuthStore } from '#/store'; @@ -253,7 +252,7 @@ function createRequestClient(baseURL: string) { } if (response.config.successMessageMode === 'modal') { - Modal.success({ + window.modal.success({ content: successMsg, title: $t('http.successTip'), }); @@ -288,7 +287,7 @@ function createRequestClient(baseURL: string) { // errorMessageMode='modal'的时候会显示modal错误弹窗,而不是消息提示,用于一些比较重要的错误 // errorMessageMode='none' 一般是调用时明确表示不希望自动弹出错误提示 if (response.config.errorMessageMode === 'modal') { - Modal.error({ + window.modal.error({ content: timeoutMsg, title: $t('http.errorTip'), }); diff --git a/apps/web-antd/src/components/global/api-switch.vue b/apps/web-antd/src/components/global/api-switch.vue index 93df0b8f..20df8c34 100644 --- a/apps/web-antd/src/components/global/api-switch.vue +++ b/apps/web-antd/src/components/global/api-switch.vue @@ -3,7 +3,7 @@ import { computed, ref } from 'vue'; import { $t } from '@vben/locales'; -import { Modal, Switch } from 'antdv-next'; +import { Switch } from 'antdv-next'; import { isFunction } from 'lodash-es'; interface Props { @@ -64,7 +64,7 @@ function confirmUpdate(checked: boolean, lastStatus: boolean) { ? props.confirmText(checked) : `确认要更新状态吗?`; - Modal.confirm({ + window.modal.confirm({ title: '提示', content, centered: true, diff --git a/apps/web-antd/src/components/table/index.ts b/apps/web-antd/src/components/table/index.ts index 03a735c8..3cb0057e 100644 --- a/apps/web-antd/src/components/table/index.ts +++ b/apps/web-antd/src/components/table/index.ts @@ -1,2 +1 @@ export { default as OptionsTag } from './src/options-tag.vue'; -export { default as TableSwitch } from './src/table-switch.vue'; diff --git a/apps/web-antd/src/components/table/src/table-switch.vue b/apps/web-antd/src/components/table/src/table-switch.vue deleted file mode 100644 index c683da04..00000000 --- a/apps/web-antd/src/components/table/src/table-switch.vue +++ /dev/null @@ -1,134 +0,0 @@ - - - diff --git a/apps/web-antd/src/components/upload/src/hook.ts b/apps/web-antd/src/components/upload/src/hook.ts index 80b2ceb0..111954d9 100644 --- a/apps/web-antd/src/components/upload/src/hook.ts +++ b/apps/web-antd/src/components/upload/src/hook.ts @@ -22,7 +22,6 @@ import { computed, onUnmounted, ref, watch } from 'vue'; import { $t } from '@vben/locales'; -import { Modal } from 'antdv-next'; import { isFunction, isString } from 'lodash-es'; import { ossInfo } from '#/api/system/oss'; @@ -245,7 +244,7 @@ export function useUpload( } return new Promise((resolve) => { - Modal.confirm({ + window.modal.confirm({ title: $t('pages.common.tip'), content: $t('component.upload.confirmDelete', [currentFile.name]), okButtonProps: { danger: true }, diff --git a/apps/web-antd/src/store/notify.ts b/apps/web-antd/src/store/notify.ts index 52a9429f..2a5460a5 100644 --- a/apps/web-antd/src/store/notify.ts +++ b/apps/web-antd/src/store/notify.ts @@ -7,7 +7,7 @@ import { $t } from '@vben/locales'; import { useUserStore } from '@vben/stores'; import { buildUUID } from '@vben/utils'; -import { Modal, notification } from 'antdv-next'; +import { notification } from 'antdv-next'; import dayjs from 'dayjs'; import { defineStore } from 'pinia'; @@ -93,7 +93,7 @@ export const useNotifyStore = defineStore( function setRead(item: NotificationItem) { !item.isRead && (item.isRead = true); // 显示信息 - Modal.info({ + window.modal.info({ title: item.title, content: item.message, }); diff --git a/apps/web-antd/src/utils/modal.tsx b/apps/web-antd/src/utils/modal.tsx index fbdb3af7..58a5d769 100644 --- a/apps/web-antd/src/utils/modal.tsx +++ b/apps/web-antd/src/utils/modal.tsx @@ -3,7 +3,7 @@ import type { Rule } from 'antdv-next/es/form'; import { reactive } from 'vue'; -import { Alert, Form, Input, Modal } from 'antdv-next'; +import { Alert, Form, Input } from 'antdv-next'; import { isFunction } from 'lodash-es'; export interface ConfirmModalProps extends Omit { @@ -37,7 +37,7 @@ export function confirmDeleteModal(props: ConfirmModalProps) { const useForm = Form.useForm; const { validate, validateInfos } = useForm(formValue, rulesRef); - Modal.confirm({ + window.modal.confirm({ ...props, centered: true, content: ( diff --git a/apps/web-antd/src/utils/popup.ts b/apps/web-antd/src/utils/popup.ts index 3ba85f36..2ae0c3f7 100644 --- a/apps/web-antd/src/utils/popup.ts +++ b/apps/web-antd/src/utils/popup.ts @@ -5,7 +5,6 @@ import { ref } from 'vue'; import { $t } from '@vben/locales'; -import { Modal } from 'antdv-next'; import { isFunction } from 'lodash-es'; interface BeforeCloseDiffProps { @@ -86,7 +85,7 @@ export function useBeforeCloseDiff(props: BeforeCloseDiffProps) { // 数据有变化,显示确认对话框 return new Promise((resolve) => { - Modal.confirm({ + window.modal.confirm({ title: $t('pages.common.tip'), content: $t('pages.common.beforeCloseTip'), centered: true, diff --git a/apps/web-antd/src/views/_core/profile/components/account-bind.vue b/apps/web-antd/src/views/_core/profile/components/account-bind.vue index 0328e80e..b9176d43 100644 --- a/apps/web-antd/src/views/_core/profile/components/account-bind.vue +++ b/apps/web-antd/src/views/_core/profile/components/account-bind.vue @@ -5,7 +5,7 @@ import type { SocialInfo } from '#/api/system/social/model'; import { onMounted, ref } from 'vue'; -import { Alert, Avatar, Card, Empty, Modal, Tooltip } from 'antdv-next'; +import { Alert, Avatar, Card, Empty, Tooltip } from 'antdv-next'; import { authUnbinding } from '#/api'; import { socialList } from '#/api/system/social'; @@ -50,7 +50,7 @@ function handleUnbind(record: BindItemWithInfo) { if (!record.info) { return; } - Modal.confirm({ + window.modal.confirm({ content: `确定解绑[${record.source}]平台的[${record.info.userName}]账号吗?`, async onOk() { await authUnbinding(record.info!.id); diff --git a/apps/web-antd/src/views/_core/profile/components/secure-setting.vue b/apps/web-antd/src/views/_core/profile/components/secure-setting.vue index fabbc439..f87a2567 100644 --- a/apps/web-antd/src/views/_core/profile/components/secure-setting.vue +++ b/apps/web-antd/src/views/_core/profile/components/secure-setting.vue @@ -1,7 +1,6 @@