huangxw 6 miesięcy temu
rodzic
commit
636916f89a
5 zmienionych plików z 21 dodań i 204 usunięć
  1. 0 200
      LOGIN_SYSTEM_SUMMARY.md
  2. 5 2
      src/pages.json
  3. 0 2
      src/types/auto-imports.d.ts
  4. 0 0
      stats.html
  5. 16 0
      vite.config.ts

+ 0 - 200
LOGIN_SYSTEM_SUMMARY.md

@@ -1,200 +0,0 @@
-# 登录系统实现总结
-
-## 🎯 已完成功能
-
-### 1. Store 模块完善
-- ✅ **auth.ts**: 认证相关状态管理
-  - 登录/登出功能
-  - Token 检查和刷新
-  - 登录状态管理
-  - 错误处理
-
-- ✅ **user.ts**: 用户信息管理
-  - 用户信息存储和更新
-  - 权限和角色检查
-  - 用户资料管理
-  - 头像上传功能
-
-### 2. 登录页面
-- ✅ **pages/login/login.vue**: 完整登录页面
-  - 美观的 UI 设计(渐变背景)
-  - 表单验证(用户名、密码)
-  - 验证码支持(可配置)
-  - 记住我功能
-  - 错误提示和加载状态
-  - 响应式设计
-
-### 3. 路由守卫系统
-- ✅ **utils/routeGuard.ts**: 路由权限控制
-  - 登录状态检查
-  - 自动登录功能
-  - 权限验证
-  - 页面跳转控制
-
-### 4. 工具函数库
-- ✅ **utils/loginHelper.ts**: 登录相关工具
-  - 快速登录
-  - 静默登录
-  - 安全登出
-  - 权限检查装饰器
-  - 用户信息格式化
-
-### 5. 配置系统
-- ✅ **config/loginConfig.ts**: 登录配置管理
-  - 登录行为配置
-  - 路由配置
-  - API 接口配置
-  - 存储键配置
-  - 错误消息配置
-
-### 6. 主页面集成
-- ✅ **pages/index/index.vue**: 更新主页面
-  - 用户信息显示
-  - 登录状态检查
-  - 登出功能
-  - 登录跳转
-
-### 7. 应用启动检查
-- ✅ **App.vue**: 应用级别的登录检查
-  - 启动时自动登录验证
-  - 全局登录状态管理
-
-## 🚀 核心功能特性
-
-### 认证流程
-1. **登录**: 用户名/密码验证 → Token 获取 → 用户信息存储
-2. **自动登录**: 应用启动时检查本地 Token → 验证有效性
-3. **登出**: 清除 Token → 清除用户信息 → 跳转登录页
-4. **Token 刷新**: 自动检测 Token 过期 → 后台刷新
-
-### 权限控制
-1. **页面级权限**: 路由守卫检查登录状态
-2. **功能级权限**: 基于用户角色/权限的功能控制
-3. **API 权限**: 请求头自动携带 Token
-
-### 数据缓存
-1. **Token 缓存**: 本地持久化存储
-2. **用户信息缓存**: Pinia + 本地存储双重缓存
-3. **配置缓存**: 登录相关配置本地化
-
-## 📁 文件结构
-
-```
-src/
-├── pages/
-│   ├── login/
-│   │   └── login.vue          # 登录页面
-│   └── index/
-│       └── index.vue          # 主页面(已集成登录状态)
-├── store/
-│   ├── index.ts               # Store 入口
-│   └── modules/
-│       ├── auth.ts           # 认证状态管理
-│       └── user.ts           # 用户信息管理
-├── utils/
-│   ├── routeGuard.ts         # 路由守卫
-│   └── loginHelper.ts        # 登录工具函数
-├── config/
-│   └── loginConfig.ts        # 登录配置
-├── App.vue                   # 应用入口(已集成自动登录)
-└── pages.json               # 页面路由配置
-```
-
-## 🎨 UI 特性
-
-### 登录页面设计
-- **渐变背景**: 现代化视觉效果
-- **卡片式表单**: 清晰的信息层级
-- **图标支持**: uni-icons 图标系统
-- **响应式布局**: 适配不同屏幕尺寸
-- **动画效果**: 按钮交互动画
-- **状态反馈**: 加载状态和错误提示
-
-### 主页面集成
-- **用户卡片**: 显示头像、昵称、角色
-- **状态指示**: 登录/未登录状态区分
-- **操作按钮**: 登录/登出快捷操作
-
-## ⚙️ 配置选项
-
-### 登录行为配置
-```typescript
-{
-  enableCaptcha: false,           // 是否启用验证码
-  enableRememberMe: true,         // 是否启用记住我
-  autoLoginTimeout: 5000,         // 自动登录超时
-  tokenRefreshInterval: 1800000,  // Token刷新间隔
-  maxLoginRetries: 3              // 最大重试次数
-}
-```
-
-### 路由配置
-```typescript
-{
-  loginPath: '/pages/login/login',
-  homePath: '/pages/index/index',
-  publicPages: [...],             // 无需登录页面
-  adminPages: [...]              // 管理员页面
-}
-```
-
-## 🔧 使用方法
-
-### 1. 登录
-```typescript
-import { useAuthStore } from '@/store/modules/auth';
-
-const authStore = useAuthStore();
-const success = await authStore.login({
-  username: 'admin',
-  password: '123456'
-});
-```
-
-### 2. 权限检查
-```typescript
-import { useUserStore } from '@/store/modules/user';
-
-const userStore = useUserStore();
-const hasPermission = userStore.hasPermission('user:create');
-const hasRole = userStore.hasRole('admin');
-```
-
-### 3. 路由守卫
-```typescript
-import { navigateWithAuth } from '@/utils/routeGuard';
-
-// 需要登录的页面跳转
-navigateWithAuth('/pages/profile/profile');
-```
-
-### 4. 工具函数
-```typescript
-import { quickLogin, getUserDisplayName } from '@/utils/loginHelper';
-
-// 快速登录
-await quickLogin('username', 'password');
-
-// 获取用户显示名称
-const displayName = getUserDisplayName();
-```
-
-## 🎯 下一步建议
-
-1. **验证码功能**: 实现真实的验证码获取和验证
-2. **密码重置**: 添加忘记密码和重置功能
-3. **注册功能**: 添加用户注册页面
-4. **多端登录**: 支持微信、支付宝等第三方登录
-5. **生物识别**: 添加指纹、面部识别登录
-6. **安全增强**: 添加设备绑定、异地登录提醒等功能
-
-## 📝 类型安全
-
-所有功能都已完全 TypeScript 化:
-- ✅ Store 状态类型定义
-- ✅ API 响应类型定义
-- ✅ 配置对象类型定义
-- ✅ 组件 Props 和 Emit 类型
-- ✅ 工具函数参数和返回值类型
-
-项目现在具备了完整的登录认证系统,支持现代化的用户体验和企业级的安全特性!

+ 5 - 2
src/pages.json

@@ -6,7 +6,7 @@
 			"^up-(.*)": "uview-plus/components/u-$1/u-$1.vue",
 			"^u-([^-].*)": "uview-plus/components/u-$1/u-$1.vue",
 			"^ut-(.*)": "@/src/components/ut-$1/ut-$1.vue",
-			 "^(?!z-paging-refresh|z-paging-load-more)z-paging(.*)": "z-paging/components/z-paging$1/z-paging$1.vue"
+			"^(?!z-paging-refresh|z-paging-load-more)z-paging(.*)": "z-paging/components/z-paging$1/z-paging$1.vue"
 		}
 	},
 	"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
@@ -31,6 +31,9 @@
 		"navigationBarTextStyle": "black",
 		"navigationBarTitleText": "uni-app",
 		"navigationBarBackgroundColor": "#F8F8F8",
-		"backgroundColor": "#F8F8F8"
+		"backgroundColor": "#F8F8F8",
+		"rpxCalcMaxDeviceWidth": 1920,
+		"rpxCalcBaseDeviceWidth": 375,
+		"rpxCalcIncludeWidth": 750
 	}
 }

+ 0 - 2
src/types/auto-imports.d.ts

@@ -6,8 +6,6 @@
 // biome-ignore lint: disable
 export {}
 declare global {
-  const EffectScope: typeof import('vue')['EffectScope']
-  const ElMessage: typeof import('element-plus')['ElMessage']
   const computed: typeof import('vue')['computed']
   const createApp: typeof import('vue')['createApp']
   const customRef: typeof import('vue')['customRef']

Plik diff jest za duży
+ 0 - 0
stats.html


+ 16 - 0
vite.config.ts

@@ -36,5 +36,21 @@ export default async () => {
                 '@': path.resolve(__dirname, 'src'),
             },
         },
+        server: {
+            proxy: {
+                '/subpackage': {
+                    target: 'https://yunnan.yujin.yunyaozhuisu.com',
+                    changeOrigin: true,
+                    rewrite: (path) => path.replace(/^\/subpackage/, '/subpackage'),
+                },
+                '/pyapi': {
+                    target: 'https://yunnan.yujin.yunyaozhuisu.com',
+                    changeOrigin: true,
+                    rewrite: (path) => path.replace(/^\/pyapi/, '/pyapi'),
+                },
+            },
+            // 启动端口
+            port: 9090,
+        },
     });
 };

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików