-
-
+ :items="steps.map((step) => ({ title: step.title }))"
+ />
diff --git a/apps/web-antdv-next/src/views/infra/codegen/modules/preview-code.vue b/apps/web-antdv-next/src/views/infra/codegen/modules/preview-code.vue
index 0f2fe7d4c..c798a25b9 100644
--- a/apps/web-antdv-next/src/views/infra/codegen/modules/preview-code.vue
+++ b/apps/web-antdv-next/src/views/infra/codegen/modules/preview-code.vue
@@ -8,7 +8,7 @@ import { IconifyIcon } from '@vben/icons';
import { CodeEditor } from '@vben/plugins/code-editor';
import { useClipboard } from '@vueuse/core';
-import { Button, DirectoryTree, message, Tabs } from 'antdv-next';
+import { Button, DirectoryTree, message, TabPane, Tabs } from 'antdv-next';
import { previewCodegen } from '#/api/infra/codegen';
diff --git a/apps/web-antdv-next/src/views/infra/demo/demo03/erp/index.vue b/apps/web-antdv-next/src/views/infra/demo/demo03/erp/index.vue
index 3ae13fb00..5b52ddad9 100644
--- a/apps/web-antdv-next/src/views/infra/demo/demo03/erp/index.vue
+++ b/apps/web-antdv-next/src/views/infra/demo/demo03/erp/index.vue
@@ -7,7 +7,7 @@ import { ref } from 'vue';
import { confirm, Page, useVbenModal } from '@vben/common-ui';
import { downloadFileFromBlobPart, isEmpty } from '@vben/utils';
-import { message, Tabs } from 'antdv-next';
+import { message, TabPane, Tabs } from 'antdv-next';
import { ACTION_ICON, TableAction, useVbenVxeGrid } from '#/adapter/vxe-table';
import {
diff --git a/apps/web-antdv-next/src/views/infra/demo/demo03/inner/index.vue b/apps/web-antdv-next/src/views/infra/demo/demo03/inner/index.vue
index 124cc243d..1e19a2568 100644
--- a/apps/web-antdv-next/src/views/infra/demo/demo03/inner/index.vue
+++ b/apps/web-antdv-next/src/views/infra/demo/demo03/inner/index.vue
@@ -7,7 +7,7 @@ import { ref } from 'vue';
import { confirm, Page, useVbenModal } from '@vben/common-ui';
import { downloadFileFromBlobPart, isEmpty } from '@vben/utils';
-import { message, Tabs } from 'antdv-next';
+import { message, TabPane, Tabs } from 'antdv-next';
import { ACTION_ICON, TableAction, useVbenVxeGrid } from '#/adapter/vxe-table';
import {
diff --git a/apps/web-antdv-next/src/views/infra/demo/demo03/inner/modules/form.vue b/apps/web-antdv-next/src/views/infra/demo/demo03/inner/modules/form.vue
index 7cf323177..3caf46b5c 100644
--- a/apps/web-antdv-next/src/views/infra/demo/demo03/inner/modules/form.vue
+++ b/apps/web-antdv-next/src/views/infra/demo/demo03/inner/modules/form.vue
@@ -5,7 +5,7 @@ import { computed, ref } from 'vue';
import { useVbenModal } from '@vben/common-ui';
-import { message, Tabs } from 'antdv-next';
+import { message, TabPane, Tabs } from 'antdv-next';
import { useVbenForm } from '#/adapter/form';
import {
diff --git a/apps/web-antdv-next/src/views/infra/demo/demo03/normal/modules/form.vue b/apps/web-antdv-next/src/views/infra/demo/demo03/normal/modules/form.vue
index 13fe93923..1c6c498e6 100644
--- a/apps/web-antdv-next/src/views/infra/demo/demo03/normal/modules/form.vue
+++ b/apps/web-antdv-next/src/views/infra/demo/demo03/normal/modules/form.vue
@@ -5,7 +5,7 @@ import { computed, ref } from 'vue';
import { useVbenModal } from '@vben/common-ui';
-import { message, Tabs } from 'antdv-next';
+import { message, TabPane, Tabs } from 'antdv-next';
import { useVbenForm } from '#/adapter/form';
import {
diff --git a/apps/web-antdv-next/src/views/infra/job/data.ts b/apps/web-antdv-next/src/views/infra/job/data.ts
index 9c9c527cd..d517e0785 100644
--- a/apps/web-antdv-next/src/views/infra/job/data.ts
+++ b/apps/web-antdv-next/src/views/infra/job/data.ts
@@ -8,7 +8,7 @@ import { DICT_TYPE } from '@vben/constants';
import { getDictOptions } from '@vben/hooks';
import { formatDateTime } from '@vben/utils';
-import { Timeline } from 'antdv-next';
+import { Timeline, TimelineItem } from 'antdv-next';
import { CronTab } from '#/components/cron-tab';
import { DictTag } from '#/components/dict-tag';
diff --git a/apps/web-antdv-next/src/views/iot/device/device/detail/index.vue b/apps/web-antdv-next/src/views/iot/device/device/detail/index.vue
index aad25f37b..824e2473e 100644
--- a/apps/web-antdv-next/src/views/iot/device/device/detail/index.vue
+++ b/apps/web-antdv-next/src/views/iot/device/device/detail/index.vue
@@ -9,7 +9,7 @@ import { useRoute, useRouter } from 'vue-router';
import { Page } from '@vben/common-ui';
import { DeviceTypeEnum } from '@vben/constants';
-import { message, Tabs } from 'antdv-next';
+import { message, TabPane, Tabs } from 'antdv-next';
import { getDevice } from '#/api/iot/device/device';
import { getProduct, ProtocolTypeEnum } from '#/api/iot/product/product';
diff --git a/apps/web-antdv-next/src/views/iot/device/device/detail/modules/thing-model.vue b/apps/web-antdv-next/src/views/iot/device/device/detail/modules/thing-model.vue
index 47ce0714b..62c8a2af8 100644
--- a/apps/web-antdv-next/src/views/iot/device/device/detail/modules/thing-model.vue
+++ b/apps/web-antdv-next/src/views/iot/device/device/detail/modules/thing-model.vue
@@ -6,7 +6,7 @@ import { ref } from 'vue';
import { ContentWrap } from '@vben/common-ui';
-import { Tabs } from 'antdv-next';
+import { TabPane, Tabs } from 'antdv-next';
import DeviceDetailsThingModelEvent from './thing-model-event.vue';
import DeviceDetailsThingModelProperty from './thing-model-property.vue';
diff --git a/apps/web-antdv-next/src/views/iot/product/product/detail/index.vue b/apps/web-antdv-next/src/views/iot/product/product/detail/index.vue
index 76e2cbb3c..8425e44ba 100644
--- a/apps/web-antdv-next/src/views/iot/product/product/detail/index.vue
+++ b/apps/web-antdv-next/src/views/iot/product/product/detail/index.vue
@@ -6,7 +6,7 @@ import { useRoute, useRouter } from 'vue-router';
import { Page } from '@vben/common-ui';
-import { message, Tabs } from 'antdv-next';
+import { message, TabPane, Tabs } from 'antdv-next';
import { getDeviceCount } from '#/api/iot/device/device';
import { getProduct } from '#/api/iot/product/product';
diff --git a/apps/web-antdv-next/src/views/mall/product/spu/index.vue b/apps/web-antdv-next/src/views/mall/product/spu/index.vue
index 11112e99e..0cb69a42f 100644
--- a/apps/web-antdv-next/src/views/mall/product/spu/index.vue
+++ b/apps/web-antdv-next/src/views/mall/product/spu/index.vue
@@ -9,7 +9,7 @@ import { confirm, DocAlert, Page } from '@vben/common-ui';
import { ProductSpuStatusEnum } from '@vben/constants';
import { downloadFileFromBlobPart } from '@vben/utils';
-import { message, Tabs } from 'antdv-next';
+import { message, TabPane, Tabs } from 'antdv-next';
import { ACTION_ICON, TableAction, useVbenVxeGrid } from '#/adapter/vxe-table';
import {
diff --git a/apps/web-antdv-next/src/views/mall/trade/afterSale/index.vue b/apps/web-antdv-next/src/views/mall/trade/afterSale/index.vue
index 2db934416..995d73965 100644
--- a/apps/web-antdv-next/src/views/mall/trade/afterSale/index.vue
+++ b/apps/web-antdv-next/src/views/mall/trade/afterSale/index.vue
@@ -9,7 +9,7 @@ import { DocAlert, Page } from '@vben/common-ui';
import { DICT_TYPE } from '@vben/constants';
import { getDictOptions } from '@vben/hooks';
-import { Button, Image, Tabs, Tag } from 'antdv-next';
+import { Button, Image, TabPane, Tabs, Tag } from 'antdv-next';
import { TableAction, useVbenVxeGrid } from '#/adapter/vxe-table';
import { getAfterSalePage } from '#/api/mall/trade/afterSale';
diff --git a/apps/web-antdv-next/src/views/mall/trade/config/index.vue b/apps/web-antdv-next/src/views/mall/trade/config/index.vue
index 8c80cd8d5..13182f830 100644
--- a/apps/web-antdv-next/src/views/mall/trade/config/index.vue
+++ b/apps/web-antdv-next/src/views/mall/trade/config/index.vue
@@ -6,7 +6,7 @@ import { onMounted, ref } from 'vue';
import { DocAlert, Page } from '@vben/common-ui';
import { fenToYuan, yuanToFen } from '@vben/utils';
-import { Card, message, Tabs } from 'antdv-next';
+import { Card, message, TabPane, Tabs } from 'antdv-next';
import { useVbenForm } from '#/adapter/form';
import { getTradeConfig, saveTradeConfig } from '#/api/mall/trade/config';
diff --git a/apps/web-antdv-next/src/views/member/user/detail/modules/after-sale-list.vue b/apps/web-antdv-next/src/views/member/user/detail/modules/after-sale-list.vue
index a5ab23400..d56cdf6ce 100644
--- a/apps/web-antdv-next/src/views/member/user/detail/modules/after-sale-list.vue
+++ b/apps/web-antdv-next/src/views/member/user/detail/modules/after-sale-list.vue
@@ -8,7 +8,7 @@ import { useRouter } from 'vue-router';
import { DICT_TYPE } from '@vben/constants';
import { getDictOptions } from '@vben/hooks';
-import { Button, Image, Tabs, Tag } from 'antdv-next';
+import { Button, Image, TabPane, Tabs, Tag } from 'antdv-next';
import { TableAction, useVbenVxeGrid } from '#/adapter/vxe-table';
import { getAfterSalePage } from '#/api/mall/trade/afterSale';
diff --git a/apps/web-antdv-next/src/views/mp/autoReply/index.vue b/apps/web-antdv-next/src/views/mp/autoReply/index.vue
index a89017118..3faf4a9e5 100644
--- a/apps/web-antdv-next/src/views/mp/autoReply/index.vue
+++ b/apps/web-antdv-next/src/views/mp/autoReply/index.vue
@@ -8,7 +8,7 @@ import { DocAlert, Page, useVbenModal } from '@vben/common-ui';
import { AutoReplyMsgType } from '@vben/constants';
import { IconifyIcon } from '@vben/icons';
-import { message, Row, Tabs } from 'antdv-next';
+import { message, Row, TabPane, Tabs } from 'antdv-next';
import { ACTION_ICON, TableAction, useVbenVxeGrid } from '#/adapter/vxe-table';
import {
diff --git a/apps/web-antdv-next/src/views/mp/components/wx-reply/wx-reply.vue b/apps/web-antdv-next/src/views/mp/components/wx-reply/wx-reply.vue
index 02b84da8d..3a4f4a4ff 100644
--- a/apps/web-antdv-next/src/views/mp/components/wx-reply/wx-reply.vue
+++ b/apps/web-antdv-next/src/views/mp/components/wx-reply/wx-reply.vue
@@ -6,7 +6,7 @@ import { computed, ref, unref, watch } from 'vue';
import { NewsType, ReplyType } from '@vben/constants';
import { IconifyIcon } from '@vben/icons';
-import { Row, Tabs } from 'antdv-next';
+import { Row, TabPane, Tabs } from 'antdv-next';
import TabImage from './tab-image.vue';
import TabMusic from './tab-music.vue';
diff --git a/apps/web-antdv-next/src/views/mp/material/index.vue b/apps/web-antdv-next/src/views/mp/material/index.vue
index e66ce8a36..a416aaa2f 100644
--- a/apps/web-antdv-next/src/views/mp/material/index.vue
+++ b/apps/web-antdv-next/src/views/mp/material/index.vue
@@ -9,7 +9,7 @@ import { confirm, DocAlert, Page } from '@vben/common-ui';
import { IconifyIcon } from '@vben/icons';
import { $t } from '@vben/locales';
-import { Button, message, Tabs } from 'antdv-next';
+import { Button, message, TabPane, Tabs } from 'antdv-next';
import { ACTION_ICON, TableAction, useVbenVxeGrid } from '#/adapter/vxe-table';
import { deletePermanentMaterial, getMaterialPage } from '#/api/mp/material';