diff --git a/apps/web-antd/package.json b/apps/web-antd/package.json
index d7e71449a..db404c466 100644
--- a/apps/web-antd/package.json
+++ b/apps/web-antd/package.json
@@ -43,6 +43,7 @@
"@vben/utils": "workspace:*",
"@vueuse/core": "catalog:",
"ant-design-vue": "catalog:",
+ "vxe-table": "catalog:",
"cropperjs": "catalog:",
"crypto-js": "catalog:",
"dayjs": "catalog:",
diff --git a/apps/web-antd/src/bootstrap.ts b/apps/web-antd/src/bootstrap.ts
index e4aaf4057..3cb24a1ad 100644
--- a/apps/web-antd/src/bootstrap.ts
+++ b/apps/web-antd/src/bootstrap.ts
@@ -6,6 +6,7 @@ import { preferences } from '@vben/preferences';
import { initStores } from '@vben/stores';
import '@vben/styles';
import '@vben/styles/antd';
+import 'vxe-table/styles/cssvar.scss';
import { useTitle } from '@vueuse/core';
diff --git a/apps/web-antd/src/components/content-wrap/content-wrap.vue b/apps/web-antd/src/components/content-wrap/content-wrap.vue
new file mode 100644
index 000000000..026d7d23f
--- /dev/null
+++ b/apps/web-antd/src/components/content-wrap/content-wrap.vue
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
diff --git a/apps/web-antd/src/components/content-wrap/index.ts b/apps/web-antd/src/components/content-wrap/index.ts
new file mode 100644
index 000000000..d4f95fddb
--- /dev/null
+++ b/apps/web-antd/src/components/content-wrap/index.ts
@@ -0,0 +1 @@
+export { default as ContentWrap } from './content-wrap.vue';
diff --git a/apps/web-antd/src/utils/dict.ts b/apps/web-antd/src/utils/dict.ts
index adef41445..59326210e 100644
--- a/apps/web-antd/src/utils/dict.ts
+++ b/apps/web-antd/src/utils/dict.ts
@@ -38,10 +38,7 @@ function getDictObj(dictType: string, value: any) {
* @param dictType 字典类型
* @returns 字典数组
*/
-function getDictOptions(
- dictType: string,
- valueType: 'boolean' | 'number' | 'string' = 'string',
-) {
+function getDictOptions(dictType: string, valueType: 'boolean' | 'number' | 'string' = 'string'): any[] {
const dictOpts = dictStore.getDictOptions(dictType);
const dictOptions: DefaultOptionType = [];
if (dictOpts.length > 0) {
diff --git a/apps/web-antd/src/views/infra/demo/general/demo01/index.vue b/apps/web-antd/src/views/infra/demo/general/demo01/index.vue
new file mode 100644
index 000000000..01a8b5fab
--- /dev/null
+++ b/apps/web-antd/src/views/infra/demo/general/demo01/index.vue
@@ -0,0 +1,223 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ formatDateTime(row.birthday) }}
+
+
+
+
+
+
+ {{ formatDateTime(row.createTime) }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/web-antd/src/views/infra/demo/general/demo01/modules/form.vue b/apps/web-antd/src/views/infra/demo/general/demo01/modules/form.vue
new file mode 100644
index 000000000..8f95c8044
--- /dev/null
+++ b/apps/web-antd/src/views/infra/demo/general/demo01/modules/form.vue
@@ -0,0 +1,121 @@
+
+
+
+
+
+
+
+
+
+
+ {{ dict.label }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/@core/base/icons/src/lucide.ts b/packages/@core/base/icons/src/lucide.ts
index d6747133b..c00f4d9a7 100644
--- a/packages/@core/base/icons/src/lucide.ts
+++ b/packages/@core/base/icons/src/lucide.ts
@@ -69,4 +69,5 @@ export {
Upload,
CloudUpload,
History,
+ RefreshCw,
} from 'lucide-vue-next';