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 @@