diff --git a/packages/design/package.json b/packages/design/package.json
index fa18abf3..7c901e25 100644
--- a/packages/design/package.json
+++ b/packages/design/package.json
@@ -36,6 +36,9 @@
"vue3",
"typescript"
],
+ "dependencies": {
+ "@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7"
+ },
"devDependencies": {
"@types/node": "^18.19.0",
"@vitejs/plugin-vue": "^5.1.1",
diff --git a/packages/design/src/Popover.vue b/packages/design/src/Popover.vue
index 3fdec213..7c6d66a5 100644
--- a/packages/design/src/Popover.vue
+++ b/packages/design/src/Popover.vue
@@ -1,28 +1,253 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/packages/design/src/types.ts b/packages/design/src/types.ts
index 8e358193..e447bb5f 100644
--- a/packages/design/src/types.ts
+++ b/packages/design/src/types.ts
@@ -1,4 +1,5 @@
import { ComputedRef, DefineComponent, Directive, Ref } from 'vue';
+import type { Placement } from '@popperjs/core';
export type FieldSize = 'large' | 'default' | 'small';
@@ -223,15 +224,12 @@ export interface PaginationProps {
}
export interface PopoverProps {
- placement?: string;
+ placement?: Placement;
width?: string | number;
- title?: string;
- trigger?: string;
- effect?: string;
- content?: string;
+ trigger?: 'hover' | 'click';
disabled?: boolean;
- popperClass?: string;
visible?: boolean;
+ popperClass?: string;
}
export interface RadioProps {
@@ -570,11 +568,6 @@ export interface Components {
props: (props: PaginationProps) => PaginationProps;
};
- popover: {
- component: DefineComponent | string;
- props: (props: PopoverProps) => PopoverProps;
- };
-
radio: {
component: DefineComponent | string;
props: (props: RadioProps) => RadioProps;
diff --git a/packages/editor/src/theme/page-bar.scss b/packages/editor/src/theme/page-bar.scss
index 590eeba1..fa018056 100644
--- a/packages/editor/src/theme/page-bar.scss
+++ b/packages/editor/src/theme/page-bar.scss
@@ -81,8 +81,8 @@
}
.page-bar-popover {
- &.el-popper.el-popover {
- padding: 10px 0;
+ &.tmagic-design-popper {
+ padding: 4px 0;
}
.menu-item {
diff --git a/packages/element-plus-adapter/package.json b/packages/element-plus-adapter/package.json
index da5f5776..45044bee 100644
--- a/packages/element-plus-adapter/package.json
+++ b/packages/element-plus-adapter/package.json
@@ -43,7 +43,7 @@
},
"peerDependencies": {
"@tmagic/design": "workspace:*",
- "element-plus": ">=2.7.8",
+ "element-plus": ">=2.8.0",
"typescript": "*"
},
"peerDependenciesMeta": {
diff --git a/packages/element-plus-adapter/src/index.ts b/packages/element-plus-adapter/src/index.ts
index 29c05606..25e4b353 100644
--- a/packages/element-plus-adapter/src/index.ts
+++ b/packages/element-plus-adapter/src/index.ts
@@ -27,7 +27,6 @@ import {
ElOption,
ElOptionGroup,
ElPagination,
- ElPopover,
ElRadio,
ElRadioButton,
ElRadioGroup,
@@ -76,7 +75,6 @@ import type {
OptionProps,
PaginationProps,
PluginOptions,
- PopoverProps,
RadioButtonProps,
RadioGroupProps,
RadioProps,
@@ -230,11 +228,6 @@ const adapter: PluginOptions = {
props: (props: PaginationProps) => props,
},
- popover: {
- component: ElPopover as any,
- props: (props: PopoverProps) => props,
- },
-
radio: {
component: ElRadio as any,
props: (props: RadioProps) => props,
diff --git a/packages/table/src/schema.ts b/packages/table/src/schema.ts
index cfc6a257..8857f1bf 100644
--- a/packages/table/src/schema.ts
+++ b/packages/table/src/schema.ts
@@ -50,9 +50,24 @@ export interface ColumnConfig {
table?: ColumnConfig[];
formatter?: 'datetime' | ((item: any, row: T) => any);
popover?: {
- placement: string;
- width: string;
- trigger: string;
+ placement:
+ | 'auto'
+ | 'auto-start'
+ | 'auto-end'
+ | 'left'
+ | 'right'
+ | 'top'
+ | 'bottom'
+ | 'top-start'
+ | 'top-end'
+ | 'bottom-start'
+ | 'bottom-end'
+ | 'right-start'
+ | 'right-end'
+ | 'left-start'
+ | 'left-end';
+ width: string | number;
+ trigger: 'hover' | 'click';
tableEmbed: boolean;
};
sortable?: boolean | 'custom';
diff --git a/packages/tdesign-vue-next-adapter/src/Popover.vue b/packages/tdesign-vue-next-adapter/src/Popover.vue
deleted file mode 100644
index 744337f6..00000000
--- a/packages/tdesign-vue-next-adapter/src/Popover.vue
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
diff --git a/packages/tdesign-vue-next-adapter/src/index.ts b/packages/tdesign-vue-next-adapter/src/index.ts
index db9585d3..e3df5e99 100644
--- a/packages/tdesign-vue-next-adapter/src/index.ts
+++ b/packages/tdesign-vue-next-adapter/src/index.ts
@@ -64,7 +64,6 @@ import type {
OptionGroupProps,
OptionProps,
PaginationProps,
- PopoverProps,
RadioButtonProps,
RadioGroupProps,
RadioProps,
@@ -85,7 +84,6 @@ import type {
import DatePicker from './DatePicker.vue';
import Icon from './Icon.vue';
import Input from './Input.vue';
-import Popover from './Popover.vue';
import Scrollbar from './Scrollbar.vue';
import TableColumn from './TableColumn.vue';
@@ -348,11 +346,6 @@ const adapter: any = {
}),
},
- popover: {
- component: Popover,
- props: (props: PopoverProps) => props,
- },
-
radio: {
component: TRadio,
props: (props: RadioProps) => ({