diff --git a/.gitignore b/.gitignore
index 3399f39..a4b2189 100644
--- a/.gitignore
+++ b/.gitignore
@@ -24,6 +24,12 @@ package-lock.json
**/backend-mock/data
# local env files
+.env
+.env.*
+apps/*/.env
+apps/*/.env.*
+!.env.example
+!apps/*/.env.example
.env.local
.env.*.local
.eslintcache
diff --git a/apps/web-antdv-next/.env b/apps/web-antdv-next/.env
deleted file mode 100644
index 40b046d..0000000
--- a/apps/web-antdv-next/.env
+++ /dev/null
@@ -1,8 +0,0 @@
-# 应用标题
-VITE_APP_TITLE=Vben Admin Antdv Next
-
-# 应用命名空间,用于缓存、store等功能的前缀,确保隔离
-VITE_APP_NAMESPACE=vben-web-antdv-next
-
-# 对store进行加密的密钥,在将store持久化到localStorage时会使用该密钥进行加密
-VITE_APP_STORE_SECURE_KEY=please-replace-me-with-your-own-key
diff --git a/apps/web-antdv-next/.env.analyze b/apps/web-antdv-next/.env.analyze
deleted file mode 100644
index ffafa8d..0000000
--- a/apps/web-antdv-next/.env.analyze
+++ /dev/null
@@ -1,7 +0,0 @@
-# public path
-VITE_BASE=/
-
-# Basic interface address SPA
-VITE_GLOB_API_URL=/api
-
-VITE_VISUALIZER=true
diff --git a/apps/web-antdv-next/.env.development b/apps/web-antdv-next/.env.development
deleted file mode 100644
index 3b8df81..0000000
--- a/apps/web-antdv-next/.env.development
+++ /dev/null
@@ -1,17 +0,0 @@
-# 端口号
-VITE_PORT=5999
-
-VITE_BASE=/
-VITE_ROUTER_HISTORY=hash
-
-# 接口地址
-VITE_GLOB_API_URL=/api
-
-# 是否开启 Nitro Mock服务,true 为开启,false 为关闭
-VITE_NITRO_MOCK=false
-
-# 是否打开 devtools,true 为打开,false 为关闭
-VITE_DEVTOOLS=false
-
-# 是否注入全局loading
-VITE_INJECT_APP_LOADING=true
diff --git a/apps/web-antdv-next/.env.example b/apps/web-antdv-next/.env.example
new file mode 100644
index 0000000..9e80c19
--- /dev/null
+++ b/apps/web-antdv-next/.env.example
@@ -0,0 +1,41 @@
+# 应用标题
+VITE_APP_TITLE=Vben Admin Antdv Next
+
+# 应用命名空间,用于缓存、store 等功能的前缀,确保隔离
+VITE_APP_NAMESPACE=vben-web-antdv-next
+
+# 本地开发端口
+VITE_PORT=5999
+
+# 基础路径
+VITE_BASE=/
+
+# 后端 API 前缀
+VITE_GLOB_API_URL=/api
+
+# vue-router 模式,可选 hash / html5
+VITE_ROUTER_HISTORY=hash
+
+# 是否开启 Nitro Mock 服务
+VITE_NITRO_MOCK=false
+
+# 是否打开 devtools
+VITE_DEVTOOLS=false
+
+# 是否注入全局 loading
+VITE_INJECT_APP_LOADING=true
+
+# 是否开启压缩,可以设置为 none, brotli, gzip
+VITE_COMPRESS=none
+
+# 是否开启 PWA
+VITE_PWA=false
+
+# 打包后是否生成 dist.zip
+VITE_ARCHIVER=true
+
+# 构建分析开关
+VITE_VISUALIZER=false
+
+# store 持久化加密密钥;真实值仅写入本地 .env,不提交仓库
+VITE_APP_STORE_SECURE_KEY=
diff --git a/apps/web-antdv-next/.env.production b/apps/web-antdv-next/.env.production
deleted file mode 100644
index c1a6a11..0000000
--- a/apps/web-antdv-next/.env.production
+++ /dev/null
@@ -1,19 +0,0 @@
-VITE_BASE=/
-
-# 接口地址
-VITE_GLOB_API_URL=/api
-
-# 是否开启压缩,可以设置为 none, brotli, gzip
-VITE_COMPRESS=none
-
-# 是否开启 PWA
-VITE_PWA=false
-
-# vue-router 的模式
-VITE_ROUTER_HISTORY=hash
-
-# 是否注入全局loading
-VITE_INJECT_APP_LOADING=true
-
-# 打包后是否生成dist.zip
-VITE_ARCHIVER=true
diff --git a/apps/web-antdv-next/src/views/_core/authentication/code-login.vue b/apps/web-antdv-next/src/views/_core/authentication/code-login.vue
index 428c606..6b17f5f 100644
--- a/apps/web-antdv-next/src/views/_core/authentication/code-login.vue
+++ b/apps/web-antdv-next/src/views/_core/authentication/code-login.vue
@@ -1,6 +1,5 @@
diff --git a/apps/web-antdv-next/src/views/_core/authentication/forget-password.vue b/apps/web-antdv-next/src/views/_core/authentication/forget-password.vue
index 3449111..a08c149 100644
--- a/apps/web-antdv-next/src/views/_core/authentication/forget-password.vue
+++ b/apps/web-antdv-next/src/views/_core/authentication/forget-password.vue
@@ -27,9 +27,9 @@ const formSchema = computed((): VbenFormSchema[] => {
];
});
-function handleSubmit(value: Record) {
- // eslint-disable-next-line no-console
- console.log('reset email:', value);
+function handleSubmit() {
+ loading.value = true;
+ loading.value = false;
}
diff --git a/apps/web-antdv-next/src/views/_core/authentication/login.vue b/apps/web-antdv-next/src/views/_core/authentication/login.vue
index 162398e..25838d8 100644
--- a/apps/web-antdv-next/src/views/_core/authentication/login.vue
+++ b/apps/web-antdv-next/src/views/_core/authentication/login.vue
@@ -32,23 +32,6 @@ const formSchema = computed((): VbenFormSchema[] => {
return [
{
component: 'VbenSelect',
- // componentProps(_values, form) {
- // return {
- // 'onUpdate:modelValue': (value: string) => {
- // const findItem = MOCK_USER_OPTIONS.find(
- // (item) => item.value === value,
- // );
- // if (findItem) {
- // form.setValues({
- // password: '123456',
- // username: findItem.label,
- // });
- // }
- // },
- // options: MOCK_USER_OPTIONS,
- // placeholder: $t('authentication.selectAccount'),
- // };
- // },
componentProps: {
options: MOCK_USER_OPTIONS,
placeholder: $t('authentication.selectAccount'),
@@ -74,7 +57,6 @@ const formSchema = computed((): VbenFormSchema[] => {
);
if (findUser) {
form.setValues({
- password: '123456',
username: findUser.value,
});
}
diff --git a/apps/web-antdv-next/src/views/_core/authentication/register.vue b/apps/web-antdv-next/src/views/_core/authentication/register.vue
index b1a5de7..6c56868 100644
--- a/apps/web-antdv-next/src/views/_core/authentication/register.vue
+++ b/apps/web-antdv-next/src/views/_core/authentication/register.vue
@@ -1,6 +1,5 @@