mirror of
https://gitee.com/dapppp/ruoyi-plus-vben5.git
synced 2026-04-04 16:33:23 +08:00
refactor(antd): 移除Popconfirm中已废弃的getVxePopupContainer属性
antd已支持滚动跟随,不再需要手动指定getVxePopupContainer属性。删除相关代码及工具函数,简化实现。
This commit is contained in:
@@ -17,6 +17,7 @@
|
|||||||
- 使用`version-polling`替代自带的版本检测更新 样式更新 在worker执行 不会阻塞主线程
|
- 使用`version-polling`替代自带的版本检测更新 样式更新 在worker执行 不会阻塞主线程
|
||||||
- 字典常量enum从`packages/@core/base/shared/src/constants`移动到`@vben/constants`下 需要移动文件位置(导入不需要更改)
|
- 字典常量enum从`packages/@core/base/shared/src/constants`移动到`@vben/constants`下 需要移动文件位置(导入不需要更改)
|
||||||
- Switch的value只能是boolean值 之前可以为 string/number/boolean (antd组件变化)
|
- Switch的value只能是boolean值 之前可以为 string/number/boolean (antd组件变化)
|
||||||
|
- Popconfirm不再需要 `:get-popup-container="getVxePopupContainer"` antd已经支持滚动跟随 故`getVxePopupContainer`已经移除
|
||||||
|
|
||||||
## 已知问题
|
## 已知问题
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ import type { LoginLog } from '#/api/monitor/logininfo/model';
|
|||||||
import { ref } from 'vue';
|
import { ref } from 'vue';
|
||||||
|
|
||||||
import { Page, useVbenModal } from '@vben/common-ui';
|
import { Page, useVbenModal } from '@vben/common-ui';
|
||||||
import { getVxePopupContainer } from '@vben/utils';
|
|
||||||
|
|
||||||
import { Modal, Popconfirm, Space } from 'antdv-next';
|
import { Modal, Popconfirm, Space } from 'antdv-next';
|
||||||
|
|
||||||
@@ -189,7 +188,6 @@ function handleDownloadExcel() {
|
|||||||
{{ $t('pages.common.info') }}
|
{{ $t('pages.common.info') }}
|
||||||
</ghost-button>
|
</ghost-button>
|
||||||
<Popconfirm
|
<Popconfirm
|
||||||
:get-popup-container="getVxePopupContainer"
|
|
||||||
placement="left"
|
placement="left"
|
||||||
title="确认删除?"
|
title="确认删除?"
|
||||||
@confirm="() => handleDelete(row)"
|
@confirm="() => handleDelete(row)"
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ import type { OnlineUser } from '#/api/monitor/online/model';
|
|||||||
import { ref } from 'vue';
|
import { ref } from 'vue';
|
||||||
|
|
||||||
import { Page } from '@vben/common-ui';
|
import { Page } from '@vben/common-ui';
|
||||||
import { getVxePopupContainer } from '@vben/utils';
|
|
||||||
|
|
||||||
import { Popconfirm } from 'antdv-next';
|
import { Popconfirm } from 'antdv-next';
|
||||||
import { slice } from 'lodash-es';
|
import { slice } from 'lodash-es';
|
||||||
@@ -82,14 +81,13 @@ async function handleForceOffline(row: OnlineUser) {
|
|||||||
<div class="mr-1 pl-1 text-[1rem]">
|
<div class="mr-1 pl-1 text-[1rem]">
|
||||||
<div>
|
<div>
|
||||||
在线用户列表 (共
|
在线用户列表 (共
|
||||||
<span class="text-primary font-bold">{{ onlineCount }}</span>
|
<span class="font-bold text-primary">{{ onlineCount }}</span>
|
||||||
人在线)
|
人在线)
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template #action="{ row }">
|
<template #action="{ row }">
|
||||||
<Popconfirm
|
<Popconfirm
|
||||||
:get-popup-container="getVxePopupContainer"
|
|
||||||
:title="`确认强制下线[${row.userName}]?`"
|
:title="`确认强制下线[${row.userName}]?`"
|
||||||
placement="left"
|
placement="left"
|
||||||
@confirm="handleForceOffline(row)"
|
@confirm="handleForceOffline(row)"
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import type { Client } from '#/api/system/client/model';
|
|||||||
|
|
||||||
import { useAccess } from '@vben/access';
|
import { useAccess } from '@vben/access';
|
||||||
import { Page, useVbenDrawer } from '@vben/common-ui';
|
import { Page, useVbenDrawer } from '@vben/common-ui';
|
||||||
import { getVxePopupContainer } from '@vben/utils';
|
|
||||||
|
|
||||||
import { Modal, Popconfirm, Space } from 'antdv-next';
|
import { Modal, Popconfirm, Space } from 'antdv-next';
|
||||||
|
|
||||||
@@ -160,7 +159,6 @@ const { hasAccessByCodes } = useAccess();
|
|||||||
</ghost-button>
|
</ghost-button>
|
||||||
<Popconfirm
|
<Popconfirm
|
||||||
:disabled="row.id === 1"
|
:disabled="row.id === 1"
|
||||||
:get-popup-container="getVxePopupContainer"
|
|
||||||
placement="left"
|
placement="left"
|
||||||
title="确认删除?"
|
title="确认删除?"
|
||||||
@confirm="handleDelete(row)"
|
@confirm="handleDelete(row)"
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import type { VxeGridProps } from '#/adapter/vxe-table';
|
|||||||
import type { SysConfig } from '#/api/system/config/model';
|
import type { SysConfig } from '#/api/system/config/model';
|
||||||
|
|
||||||
import { Page, useVbenModal } from '@vben/common-ui';
|
import { Page, useVbenModal } from '@vben/common-ui';
|
||||||
import { getVxePopupContainer } from '@vben/utils';
|
|
||||||
|
|
||||||
import { Modal, Popconfirm, Space } from 'antdv-next';
|
import { Modal, Popconfirm, Space } from 'antdv-next';
|
||||||
|
|
||||||
@@ -156,7 +155,6 @@ async function handleRefreshCache() {
|
|||||||
{{ $t('pages.common.edit') }}
|
{{ $t('pages.common.edit') }}
|
||||||
</ghost-button>
|
</ghost-button>
|
||||||
<Popconfirm
|
<Popconfirm
|
||||||
:get-popup-container="getVxePopupContainer"
|
|
||||||
placement="left"
|
placement="left"
|
||||||
title="确认删除?"
|
title="确认删除?"
|
||||||
@confirm="handleDelete(row)"
|
@confirm="handleDelete(row)"
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import type { Dept } from '#/api/system/dept/model';
|
|||||||
import { nextTick } from 'vue';
|
import { nextTick } from 'vue';
|
||||||
|
|
||||||
import { Page, useVbenDrawer } from '@vben/common-ui';
|
import { Page, useVbenDrawer } from '@vben/common-ui';
|
||||||
import { eachTree, getVxePopupContainer } from '@vben/utils';
|
import { eachTree } from '@vben/utils';
|
||||||
|
|
||||||
import { Popconfirm, Space } from 'antdv-next';
|
import { Popconfirm, Space } from 'antdv-next';
|
||||||
|
|
||||||
@@ -163,7 +163,6 @@ function setExpandOrCollapse(expand: boolean) {
|
|||||||
{{ $t('pages.common.add') }}
|
{{ $t('pages.common.add') }}
|
||||||
</ghost-button>
|
</ghost-button>
|
||||||
<Popconfirm
|
<Popconfirm
|
||||||
:get-popup-container="getVxePopupContainer"
|
|
||||||
placement="left"
|
placement="left"
|
||||||
title="确认删除?"
|
title="确认删除?"
|
||||||
@confirm="handleDelete(row)"
|
@confirm="handleDelete(row)"
|
||||||
|
|||||||
@@ -9,12 +9,7 @@ import { computed, ref } from 'vue';
|
|||||||
import { useAccess } from '@vben/access';
|
import { useAccess } from '@vben/access';
|
||||||
import { Fallback, Page, useVbenDrawer } from '@vben/common-ui';
|
import { Fallback, Page, useVbenDrawer } from '@vben/common-ui';
|
||||||
import { $t } from '@vben/locales';
|
import { $t } from '@vben/locales';
|
||||||
import {
|
import { eachTree, listToTree, treeToList } from '@vben/utils';
|
||||||
eachTree,
|
|
||||||
getVxePopupContainer,
|
|
||||||
listToTree,
|
|
||||||
treeToList,
|
|
||||||
} from '@vben/utils';
|
|
||||||
|
|
||||||
import { Popconfirm, Space, Switch, Tooltip } from 'antdv-next';
|
import { Popconfirm, Space, Switch, Tooltip } from 'antdv-next';
|
||||||
|
|
||||||
@@ -245,7 +240,6 @@ const isAdmin = computed(() => {
|
|||||||
{{ $t('pages.common.add') }}
|
{{ $t('pages.common.add') }}
|
||||||
</ghost-button>
|
</ghost-button>
|
||||||
<Popconfirm
|
<Popconfirm
|
||||||
:get-popup-container="getVxePopupContainer"
|
|
||||||
placement="left"
|
placement="left"
|
||||||
:title="removeConfirmTitle(row)"
|
:title="removeConfirmTitle(row)"
|
||||||
@confirm="handleDelete(row)"
|
@confirm="handleDelete(row)"
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import type { VxeGridProps } from '#/adapter/vxe-table';
|
|||||||
import type { Notice } from '#/api/system/notice/model';
|
import type { Notice } from '#/api/system/notice/model';
|
||||||
|
|
||||||
import { Page, useVbenModal } from '@vben/common-ui';
|
import { Page, useVbenModal } from '@vben/common-ui';
|
||||||
import { getVxePopupContainer } from '@vben/utils';
|
|
||||||
|
|
||||||
import { Modal, Popconfirm, Space } from 'antdv-next';
|
import { Modal, Popconfirm, Space } from 'antdv-next';
|
||||||
|
|
||||||
@@ -127,7 +126,6 @@ function handleMultiDelete() {
|
|||||||
{{ $t('pages.common.edit') }}
|
{{ $t('pages.common.edit') }}
|
||||||
</ghost-button>
|
</ghost-button>
|
||||||
<Popconfirm
|
<Popconfirm
|
||||||
:get-popup-container="getVxePopupContainer"
|
|
||||||
placement="left"
|
placement="left"
|
||||||
title="确认删除?"
|
title="确认删除?"
|
||||||
@confirm="handleDelete(row)"
|
@confirm="handleDelete(row)"
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import type { OssConfig } from '#/api/system/oss-config/model';
|
|||||||
|
|
||||||
import { useAccess } from '@vben/access';
|
import { useAccess } from '@vben/access';
|
||||||
import { Page, useVbenDrawer } from '@vben/common-ui';
|
import { Page, useVbenDrawer } from '@vben/common-ui';
|
||||||
import { getVxePopupContainer } from '@vben/utils';
|
|
||||||
|
|
||||||
import { Modal, Popconfirm, Space } from 'antdv-next';
|
import { Modal, Popconfirm, Space } from 'antdv-next';
|
||||||
|
|
||||||
@@ -145,7 +144,6 @@ const { hasAccessByCodes } = useAccess();
|
|||||||
{{ $t('pages.common.edit') }}
|
{{ $t('pages.common.edit') }}
|
||||||
</ghost-button>
|
</ghost-button>
|
||||||
<Popconfirm
|
<Popconfirm
|
||||||
:get-popup-container="getVxePopupContainer"
|
|
||||||
placement="left"
|
placement="left"
|
||||||
title="确认删除?"
|
title="确认删除?"
|
||||||
@confirm="handleDelete(row)"
|
@confirm="handleDelete(row)"
|
||||||
|
|||||||
@@ -13,7 +13,6 @@ import { useAppConfig } from '@vben/hooks';
|
|||||||
import { $t } from '@vben/locales';
|
import { $t } from '@vben/locales';
|
||||||
import { stringify } from '@vben/request';
|
import { stringify } from '@vben/request';
|
||||||
import { useAccessStore } from '@vben/stores';
|
import { useAccessStore } from '@vben/stores';
|
||||||
import { getVxePopupContainer } from '@vben/utils';
|
|
||||||
|
|
||||||
import {
|
import {
|
||||||
Image,
|
Image,
|
||||||
@@ -295,7 +294,6 @@ const [FileUploadModal, fileUploadApi] = useVbenModal({
|
|||||||
{{ $t('pages.common.download') }}
|
{{ $t('pages.common.download') }}
|
||||||
</ghost-button>
|
</ghost-button>
|
||||||
<Popconfirm
|
<Popconfirm
|
||||||
:get-popup-container="getVxePopupContainer"
|
|
||||||
placement="left"
|
placement="left"
|
||||||
title="确认删除?"
|
title="确认删除?"
|
||||||
@confirm="handleDelete(row)"
|
@confirm="handleDelete(row)"
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ import type { Post } from '#/api/system/post/model';
|
|||||||
import { ref } from 'vue';
|
import { ref } from 'vue';
|
||||||
|
|
||||||
import { Page, useVbenDrawer } from '@vben/common-ui';
|
import { Page, useVbenDrawer } from '@vben/common-ui';
|
||||||
import { getVxePopupContainer } from '@vben/utils';
|
|
||||||
|
|
||||||
import { Modal, Popconfirm, Space } from 'antdv-next';
|
import { Modal, Popconfirm, Space } from 'antdv-next';
|
||||||
|
|
||||||
@@ -169,7 +168,6 @@ function handleDownloadExcel() {
|
|||||||
{{ $t('pages.common.edit') }}
|
{{ $t('pages.common.edit') }}
|
||||||
</GhostButton>
|
</GhostButton>
|
||||||
<Popconfirm
|
<Popconfirm
|
||||||
:get-popup-container="getVxePopupContainer"
|
|
||||||
placement="left"
|
placement="left"
|
||||||
title="确认删除?"
|
title="确认删除?"
|
||||||
@confirm="handleDelete(row)"
|
@confirm="handleDelete(row)"
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ import type { User } from '#/api/system/user/model';
|
|||||||
import { useRoute } from 'vue-router';
|
import { useRoute } from 'vue-router';
|
||||||
|
|
||||||
import { Page, useVbenDrawer } from '@vben/common-ui';
|
import { Page, useVbenDrawer } from '@vben/common-ui';
|
||||||
import { getVxePopupContainer } from '@vben/utils';
|
|
||||||
|
|
||||||
import { Modal, Popconfirm, Space } from 'antdv-next';
|
import { Modal, Popconfirm, Space } from 'antdv-next';
|
||||||
|
|
||||||
@@ -132,7 +131,6 @@ function handleMultipleAuthCancel() {
|
|||||||
</template>
|
</template>
|
||||||
<template #action="{ row }">
|
<template #action="{ row }">
|
||||||
<Popconfirm
|
<Popconfirm
|
||||||
:get-popup-container="getVxePopupContainer"
|
|
||||||
:title="`是否取消授权用户[${row.userName} - ${row.nickName}]?`"
|
:title="`是否取消授权用户[${row.userName} - ${row.nickName}]?`"
|
||||||
placement="left"
|
placement="left"
|
||||||
@confirm="handleAuthCancel(row)"
|
@confirm="handleAuthCancel(row)"
|
||||||
|
|||||||
@@ -15,7 +15,6 @@ import {
|
|||||||
SUPERADMIN_ROLE_ID,
|
SUPERADMIN_ROLE_ID,
|
||||||
SUPERADMIN_ROLE_KEY,
|
SUPERADMIN_ROLE_KEY,
|
||||||
} from '@vben/constants';
|
} from '@vben/constants';
|
||||||
import { getVxePopupContainer } from '@vben/utils';
|
|
||||||
|
|
||||||
import { Modal, Popconfirm, Space } from 'antdv-next';
|
import { Modal, Popconfirm, Space } from 'antdv-next';
|
||||||
|
|
||||||
@@ -221,7 +220,6 @@ async function handleChangeStatus(checked: boolean, row: Role) {
|
|||||||
分配
|
分配
|
||||||
</ghost-button>
|
</ghost-button>
|
||||||
<Popconfirm
|
<Popconfirm
|
||||||
:get-popup-container="getVxePopupContainer"
|
|
||||||
placement="left"
|
placement="left"
|
||||||
title="确认删除?"
|
title="确认删除?"
|
||||||
@confirm="handleDelete(row)"
|
@confirm="handleDelete(row)"
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ import { computed } from 'vue';
|
|||||||
|
|
||||||
import { useAccess } from '@vben/access';
|
import { useAccess } from '@vben/access';
|
||||||
import { Fallback, Page, useVbenDrawer } from '@vben/common-ui';
|
import { Fallback, Page, useVbenDrawer } from '@vben/common-ui';
|
||||||
import { getVxePopupContainer } from '@vben/utils';
|
|
||||||
|
|
||||||
import { Modal, Popconfirm, Space } from 'antdv-next';
|
import { Modal, Popconfirm, Space } from 'antdv-next';
|
||||||
|
|
||||||
@@ -217,7 +216,6 @@ function handleSyncTenantConfig() {
|
|||||||
{{ $t('pages.common.edit') }}
|
{{ $t('pages.common.edit') }}
|
||||||
</ghost-button>
|
</ghost-button>
|
||||||
<Popconfirm
|
<Popconfirm
|
||||||
:get-popup-container="getVxePopupContainer"
|
|
||||||
:title="`确认同步[${row.companyName}]的套餐吗?`"
|
:title="`确认同步[${row.companyName}]的套餐吗?`"
|
||||||
placement="left"
|
placement="left"
|
||||||
@confirm="handleSync(row)"
|
@confirm="handleSync(row)"
|
||||||
@@ -231,7 +229,6 @@ function handleSyncTenantConfig() {
|
|||||||
</ghost-button>
|
</ghost-button>
|
||||||
</Popconfirm>
|
</Popconfirm>
|
||||||
<Popconfirm
|
<Popconfirm
|
||||||
:get-popup-container="getVxePopupContainer"
|
|
||||||
placement="left"
|
placement="left"
|
||||||
title="确认删除?"
|
title="确认删除?"
|
||||||
@confirm="handleDelete(row)"
|
@confirm="handleDelete(row)"
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ import { computed } from 'vue';
|
|||||||
|
|
||||||
import { useAccess } from '@vben/access';
|
import { useAccess } from '@vben/access';
|
||||||
import { Fallback, Page, useVbenDrawer } from '@vben/common-ui';
|
import { Fallback, Page, useVbenDrawer } from '@vben/common-ui';
|
||||||
import { getVxePopupContainer } from '@vben/utils';
|
|
||||||
|
|
||||||
import { Modal, Popconfirm, Space } from 'antdv-next';
|
import { Modal, Popconfirm, Space } from 'antdv-next';
|
||||||
|
|
||||||
@@ -169,7 +168,6 @@ const isSuperAdmin = computed(() => {
|
|||||||
{{ $t('pages.common.edit') }}
|
{{ $t('pages.common.edit') }}
|
||||||
</ghost-button>
|
</ghost-button>
|
||||||
<Popconfirm
|
<Popconfirm
|
||||||
:get-popup-container="getVxePopupContainer"
|
|
||||||
placement="left"
|
placement="left"
|
||||||
title="确认删除?"
|
title="确认删除?"
|
||||||
@confirm="handleDelete(row)"
|
@confirm="handleDelete(row)"
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ import { onMounted } from 'vue';
|
|||||||
import { useRouter } from 'vue-router';
|
import { useRouter } from 'vue-router';
|
||||||
|
|
||||||
import { Page, useVbenModal } from '@vben/common-ui';
|
import { Page, useVbenModal } from '@vben/common-ui';
|
||||||
import { getVxePopupContainer } from '@vben/utils';
|
|
||||||
|
|
||||||
import { Modal, Popconfirm, Space } from 'antdv-next';
|
import { Modal, Popconfirm, Space } from 'antdv-next';
|
||||||
import dayjs from 'dayjs';
|
import dayjs from 'dayjs';
|
||||||
@@ -245,7 +244,6 @@ function handleImport() {
|
|||||||
{{ $t('pages.common.edit') }}
|
{{ $t('pages.common.edit') }}
|
||||||
</a-button>
|
</a-button>
|
||||||
<Popconfirm
|
<Popconfirm
|
||||||
:get-popup-container="getVxePopupContainer"
|
|
||||||
:title="`确认同步[${row.tableName}]?`"
|
:title="`确认同步[${row.tableName}]?`"
|
||||||
placement="left"
|
placement="left"
|
||||||
@confirm="handleSync(row)"
|
@confirm="handleSync(row)"
|
||||||
@@ -268,7 +266,6 @@ function handleImport() {
|
|||||||
生成代码
|
生成代码
|
||||||
</a-button>
|
</a-button>
|
||||||
<Popconfirm
|
<Popconfirm
|
||||||
:get-popup-container="getVxePopupContainer"
|
|
||||||
:title="`确认删除[${row.tableName}]?`"
|
:title="`确认删除[${row.tableName}]?`"
|
||||||
placement="left"
|
placement="left"
|
||||||
@confirm="handleDelete(row)"
|
@confirm="handleDelete(row)"
|
||||||
|
|||||||
@@ -136,7 +136,7 @@ function collapseAll() {
|
|||||||
{{ $t('pages.common.add') }}
|
{{ $t('pages.common.add') }}
|
||||||
</ghost-button>
|
</ghost-button>
|
||||||
<Popconfirm
|
<Popconfirm
|
||||||
:get-popup-container="getVxePopupContainer"
|
|
||||||
placement="left"
|
placement="left"
|
||||||
title="确认删除?"
|
title="确认删除?"
|
||||||
@confirm="handleDelete(row)"
|
@confirm="handleDelete(row)"
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import type { LeaveForm } from './api/model';
|
|||||||
import type { VxeGridProps } from '#/adapter/vxe-table';
|
import type { VxeGridProps } from '#/adapter/vxe-table';
|
||||||
|
|
||||||
import { Page, useVbenDrawer, useVbenModal } from '@vben/common-ui';
|
import { Page, useVbenDrawer, useVbenModal } from '@vben/common-ui';
|
||||||
import { getVxePopupContainer } from '@vben/utils';
|
|
||||||
|
|
||||||
import { Modal, Popconfirm, Space } from 'antdv-next';
|
import { Modal, Popconfirm, Space } from 'antdv-next';
|
||||||
|
|
||||||
@@ -196,7 +195,6 @@ function handleInfo(row: Required<LeaveForm>) {
|
|||||||
{{ $t('pages.common.edit') }}
|
{{ $t('pages.common.edit') }}
|
||||||
</a-button>
|
</a-button>
|
||||||
<Popconfirm
|
<Popconfirm
|
||||||
:get-popup-container="getVxePopupContainer"
|
|
||||||
placement="left"
|
placement="left"
|
||||||
title="确认撤销?"
|
title="确认撤销?"
|
||||||
:disabled="!['waiting'].includes(row.status)"
|
:disabled="!['waiting'].includes(row.status)"
|
||||||
@@ -214,7 +212,6 @@ function handleInfo(row: Required<LeaveForm>) {
|
|||||||
</a-button>
|
</a-button>
|
||||||
</Popconfirm>
|
</Popconfirm>
|
||||||
<Popconfirm
|
<Popconfirm
|
||||||
:get-popup-container="getVxePopupContainer"
|
|
||||||
placement="left"
|
placement="left"
|
||||||
title="确认删除?"
|
title="确认删除?"
|
||||||
:disabled="!['draft', 'cancel', 'back'].includes(row.status)"
|
:disabled="!['draft', 'cancel', 'back'].includes(row.status)"
|
||||||
|
|||||||
@@ -12,7 +12,6 @@ import { useRouter } from 'vue-router';
|
|||||||
|
|
||||||
import { Page, useVbenModal } from '@vben/common-ui';
|
import { Page, useVbenModal } from '@vben/common-ui';
|
||||||
import { $t } from '@vben/locales';
|
import { $t } from '@vben/locales';
|
||||||
import { getVxePopupContainer } from '@vben/utils';
|
|
||||||
|
|
||||||
import { Modal, Popconfirm, RadioGroup, Space, Switch } from 'antdv-next';
|
import { Modal, Popconfirm, RadioGroup, Space, Switch } from 'antdv-next';
|
||||||
|
|
||||||
@@ -322,7 +321,6 @@ async function handleReload(type: 'add' | 'update') {
|
|||||||
编辑信息
|
编辑信息
|
||||||
</a-button>
|
</a-button>
|
||||||
<Popconfirm
|
<Popconfirm
|
||||||
:get-popup-container="getVxePopupContainer"
|
|
||||||
placement="left"
|
placement="left"
|
||||||
title="确认删除?"
|
title="确认删除?"
|
||||||
@confirm="handleDelete(row)"
|
@confirm="handleDelete(row)"
|
||||||
@@ -341,7 +339,6 @@ async function handleReload(type: 'add' | 'update') {
|
|||||||
{{ row.isPublish ? '查看流程' : '设计流程' }}
|
{{ row.isPublish ? '查看流程' : '设计流程' }}
|
||||||
</a-button>
|
</a-button>
|
||||||
<Popconfirm
|
<Popconfirm
|
||||||
:get-popup-container="getVxePopupContainer"
|
|
||||||
:title="`确认发布流程[${row.flowName}]?`"
|
:title="`确认发布流程[${row.flowName}]?`"
|
||||||
placement="left"
|
placement="left"
|
||||||
@confirm="handlePublish(row)"
|
@confirm="handlePublish(row)"
|
||||||
@@ -353,7 +350,6 @@ async function handleReload(type: 'add' | 'update') {
|
|||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<Popconfirm
|
<Popconfirm
|
||||||
:get-popup-container="getVxePopupContainer"
|
|
||||||
:title="`确认复制流程[${row.flowName}]?`"
|
:title="`确认复制流程[${row.flowName}]?`"
|
||||||
placement="left"
|
placement="left"
|
||||||
@confirm="handleCopy(row)"
|
@confirm="handleCopy(row)"
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ import { ref } from 'vue';
|
|||||||
|
|
||||||
import { Page, useVbenModal } from '@vben/common-ui';
|
import { Page, useVbenModal } from '@vben/common-ui';
|
||||||
import { $t } from '@vben/locales';
|
import { $t } from '@vben/locales';
|
||||||
import { getVxePopupContainer } from '@vben/utils';
|
|
||||||
|
|
||||||
import { Modal, Popconfirm, RadioGroup, Space } from 'antdv-next';
|
import { Modal, Popconfirm, RadioGroup, Space } from 'antdv-next';
|
||||||
|
|
||||||
@@ -208,7 +207,6 @@ function handleInfo(row: any) {
|
|||||||
作废流程
|
作废流程
|
||||||
</a-button>
|
</a-button>
|
||||||
<Popconfirm
|
<Popconfirm
|
||||||
:get-popup-container="getVxePopupContainer"
|
|
||||||
placement="left"
|
placement="left"
|
||||||
title="确认删除?"
|
title="确认删除?"
|
||||||
@confirm="handleDelete(row)"
|
@confirm="handleDelete(row)"
|
||||||
|
|||||||
@@ -5,12 +5,11 @@ import type { VxeGridProps } from '#/adapter/vxe-table';
|
|||||||
import type { Spel } from '#/api/workflow/spel/model';
|
import type { Spel } from '#/api/workflow/spel/model';
|
||||||
|
|
||||||
import { Page, useVbenDrawer } from '@vben/common-ui';
|
import { Page, useVbenDrawer } from '@vben/common-ui';
|
||||||
import { getVxePopupContainer } from '@vben/utils';
|
|
||||||
|
|
||||||
import { Modal, Popconfirm, Space } from 'antdv-next';
|
import { Modal, Popconfirm, Space } from 'antdv-next';
|
||||||
|
|
||||||
import { useVbenVxeGrid, vxeCheckboxChecked } from '#/adapter/vxe-table';
|
import { useVbenVxeGrid, vxeCheckboxChecked } from '#/adapter/vxe-table';
|
||||||
import { spelList,spelDelete } from '#/api/workflow/spel';
|
import { spelDelete, spelList } from '#/api/workflow/spel';
|
||||||
|
|
||||||
import { columns, querySchema } from './data';
|
import { columns, querySchema } from './data';
|
||||||
import spelDrawer from './spel-drawer.vue';
|
import spelDrawer from './spel-drawer.vue';
|
||||||
@@ -125,7 +124,6 @@ function handleMultiDelete() {
|
|||||||
{{ $t('pages.common.edit') }}
|
{{ $t('pages.common.edit') }}
|
||||||
</ghost-button>
|
</ghost-button>
|
||||||
<Popconfirm
|
<Popconfirm
|
||||||
:get-popup-container="getVxePopupContainer"
|
|
||||||
placement="left"
|
placement="left"
|
||||||
title="确认删除?"
|
title="确认删除?"
|
||||||
@confirm="handleDelete(row)"
|
@confirm="handleDelete(row)"
|
||||||
|
|||||||
@@ -8,59 +8,3 @@ export function getPopupContainer(node?: HTMLElement): HTMLElement {
|
|||||||
node?.closest('form') ?? (node?.parentNode as HTMLElement) ?? document.body
|
node?.closest('form') ?? (node?.parentNode as HTMLElement) ?? document.body
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* VxeTable专用弹窗层
|
|
||||||
* 解决问题: https://gitee.com/dapppp/ruoyi-plus-vben5/issues/IB1DM3
|
|
||||||
* @param node 触发的元素
|
|
||||||
* @param tableId 表格ID,用于区分不同表格(可选)
|
|
||||||
* @returns 挂载节点
|
|
||||||
*/
|
|
||||||
export function getVxePopupContainer(
|
|
||||||
node?: HTMLElement,
|
|
||||||
tableId?: string,
|
|
||||||
): HTMLElement {
|
|
||||||
if (!node) return document.body;
|
|
||||||
|
|
||||||
// 检查是否在固定列内
|
|
||||||
const isInFixedColumn =
|
|
||||||
node.closest('.vxe-table--fixed-wrapper') ||
|
|
||||||
node.closest('.vxe-table--fixed-left-wrapper') ||
|
|
||||||
node.closest('.vxe-table--fixed-right-wrapper');
|
|
||||||
|
|
||||||
// 如果在固定列内,则挂载到固定列容器
|
|
||||||
if (isInFixedColumn) {
|
|
||||||
// 优先查找表格容器及父级容器
|
|
||||||
const tableContainer =
|
|
||||||
// 查找通用固定列容器
|
|
||||||
node.closest('.vxe-table--fixed-wrapper') ||
|
|
||||||
// 查找固定列容器(左侧固定列)
|
|
||||||
node.closest('.vxe-table--fixed-left-wrapper') ||
|
|
||||||
// 查找固定列容器(右侧固定列)
|
|
||||||
node.closest('.vxe-table--fixed-right-wrapper');
|
|
||||||
|
|
||||||
// 如果指定了tableId,可以查找特定ID的表格
|
|
||||||
if (tableId && tableContainer) {
|
|
||||||
const specificTable = tableContainer.closest(
|
|
||||||
`[data-table-id="${tableId}"]`,
|
|
||||||
);
|
|
||||||
if (specificTable) {
|
|
||||||
return specificTable as HTMLElement;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return tableContainer as HTMLElement;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 设置行高度需要特殊处理
|
|
||||||
*/
|
|
||||||
const fixedHeightElement = node.closest('td.col--cs-height');
|
|
||||||
if (fixedHeightElement) {
|
|
||||||
// 默认为hidden 显示异常
|
|
||||||
(fixedHeightElement as HTMLTableCellElement).style.overflow = 'visible';
|
|
||||||
}
|
|
||||||
|
|
||||||
// 兜底方案:使用元素的父节点或文档体
|
|
||||||
return (node.parentNode as HTMLElement) || document.body;
|
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user