diff --git a/packages/design/src/Popconfirm.vue b/packages/design/src/Popconfirm.vue
new file mode 100644
index 00000000..9d4aaf5f
--- /dev/null
+++ b/packages/design/src/Popconfirm.vue
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
diff --git a/packages/design/src/index.ts b/packages/design/src/index.ts
index 088e2802..fa6b56a7 100644
--- a/packages/design/src/index.ts
+++ b/packages/design/src/index.ts
@@ -52,6 +52,7 @@ export { default as TMagicTag } from './Tag.vue';
export { default as TMagicTimePicker } from './TimePicker.vue';
export { default as TMagicTooltip } from './Tooltip.vue';
export { default as TMagicUpload } from './Upload.vue';
+export { default as TMagicPopconfirm } from './Popconfirm.vue';
export const tMagicMessage = {
error: (msg: string) => {
diff --git a/packages/design/src/types.ts b/packages/design/src/types.ts
index 773d0e7c..6aa27c69 100644
--- a/packages/design/src/types.ts
+++ b/packages/design/src/types.ts
@@ -227,6 +227,23 @@ export interface PaginationProps {
total?: number;
}
+export interface PopconfirmProps {
+ title?: string;
+ placement?:
+ | 'top'
+ | 'left'
+ | 'right'
+ | 'bottom'
+ | 'top-left'
+ | 'top-right'
+ | 'bottom-left'
+ | 'bottom-right'
+ | 'left-top'
+ | 'left-bottom'
+ | 'right-top'
+ | 'right-bottom';
+}
+
export interface PopoverProps {
placement?: Placement;
width?: string | number;
@@ -677,6 +694,11 @@ export interface Components {
| string;
props: (props: UploadProps) => UploadProps;
};
+
+ popconfirm: {
+ component: DefineComponent | string;
+ props: (props: PopconfirmProps) => PopconfirmProps;
+ };
}
export interface DesignPluginOptions {
diff --git a/packages/element-plus-adapter/src/index.ts b/packages/element-plus-adapter/src/index.ts
index 9f3262c6..d98f1c65 100644
--- a/packages/element-plus-adapter/src/index.ts
+++ b/packages/element-plus-adapter/src/index.ts
@@ -27,6 +27,7 @@ import {
ElOption,
ElOptionGroup,
ElPagination,
+ ElPopconfirm,
ElRadio,
ElRadioButton,
ElRadioGroup,
@@ -72,6 +73,7 @@ import type {
OptionGroupProps,
OptionProps,
PaginationProps,
+ PopconfirmProps,
RadioButtonProps,
RadioGroupProps,
RadioProps,
@@ -305,6 +307,11 @@ const adapter: DesignPluginOptions = {
component: ElUpload as any,
props: (props: UploadProps) => props,
},
+
+ popconfirm: {
+ component: ElPopconfirm as any,
+ props: (props: PopconfirmProps) => props,
+ },
},
loading: ElLoading.directive,
};
diff --git a/packages/tdesign-vue-next-adapter/src/Popconfirm.vue b/packages/tdesign-vue-next-adapter/src/Popconfirm.vue
new file mode 100644
index 00000000..6fafc9c6
--- /dev/null
+++ b/packages/tdesign-vue-next-adapter/src/Popconfirm.vue
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+