主要变更: 1. 重构API目录结构,采用模块化设计,适配5.x后端接口规范 2. 优化布局组件,提升用户界面体验 3. 增强国际化支持,完善多语言配置 4. 新增权限控制功能,支持前端路由权限管理 5. 优化认证流程,支持JWT认证机制 6. 新增中间件和插件,提升系统扩展性 7. 优化状态管理,采用更清晰的模块化设计 8. 新增搜索框、广告等组件,丰富页面功能 9. 更改包管理工具从npm到pnpm,提升依赖管理效率 10. 完善配置系统,支持多环境配置 适配5.x后端特性: - 采用新的API接口规范 - 支持JWT认证机制 - 适配后端权限控制体系 - 支持后端国际化接口 - 优化数据交互方式
7.2 KiB
7.2 KiB
AI 架构上下文
项目概览
这是一个基于 Nuxt 4 和 Element Plus 的现代化管理系统前端项目,使用 TypeScript 开发,旨在提供高效、美观、可扩展的管理界面。
技术栈
- 前端框架:Nuxt 4
- UI 库:Element Plus
- 开发语言:TypeScript
- 状态管理:Pinia
- 国际化:Vue I18n
- 样式方案:SCSS + UnoCSS
- 图标库:Nuxt Icons
- 构建工具:Vite
目录结构
web/
├── app/ # 主应用目录
│ ├── api/ # API 接口定义
│ ├── apps/ # 功能模块目录
│ │ └── cms/ # CMS 功能模块
│ ├── assets/ # 静态资源
│ │ ├── icons/ # 图标文件
│ │ ├── images/ # 图片文件
│ │ └── scss/ # SCSS 样式文件
│ ├── components/ # Vue 组件
│ ├── composables/ # 组合式函数
│ ├── lang/ # 国际化语言文件
│ ├── layouts/ # 布局组件
│ ├── pages/ # 页面组件
│ ├── plugins/ # 插件
│ ├── stores/ # Pinia 状态管理
│ ├── types/ # TypeScript 类型定义
│ ├── utils/ # 工具函数
│ ├── app.vue # 根组件
│ └── router.options.ts # 路由配置
├── public/ # 公共静态资源
├── .gitignore # Git 忽略文件
├── nuxt.config.ts # Nuxt 配置
├── package.json # 项目依赖和脚本
├── tsconfig.json # TypeScript 配置
└── uno.config.ts # UnoCSS 配置
核心功能
认证系统
- 登录/注册:完整的用户认证流程
- 验证码:集成短信验证码和图形验证码
- 路由守卫:保护需要认证的路由
会员中心
- 个人资料:用户信息管理和编辑
- 专属布局:独立的会员中心布局
国际化
- 多语言支持:内置中文和英文
- 动态切换:实时语言切换功能
主题系统
- 深色模式:支持浅色/深色主题切换
- 主题定制:基于 SCSS 的灵活主题配置
路由系统
- 动态路由:从功能模块自动加载路由
- 布局路由:基于路由元信息的智能布局切换
技术架构
前端架构
- MVVM 模式:基于 Vue 3 的响应式数据绑定
- 组件化开发:模块化、可复用的组件设计
- 组合式 API:使用 Vue 3 的组合式 API 进行状态管理和逻辑复用
- 路由管理:基于 Vue Router 的完整路由系统
- 状态管理:使用 Pinia 进行高效的全局状态管理
构建系统
- Vite:现代化的开发服务器和构建工具
- ESLint:确保代码质量和一致性
- TypeScript:提供类型安全保障
- SCSS:强大的 CSS 预处理器
- UnoCSS:高性能的原子化 CSS 框架
部署方案
- Docker:支持容器化部署
- Nitro:Nuxt 的服务器引擎,支持 SSR/SSG 等多种渲染模式
核心 API 和服务
API 接口
- 认证接口:
app/api/auth.ts- 处理登录、注册等认证相关请求 - 会员接口:
app/api/member.ts- 处理会员相关请求 - 系统接口:
app/api/system.ts- 处理系统相关请求
工具函数
- 请求工具:
app/utils/request.ts- 封装 HTTP 请求 - 存储工具:
app/utils/storage.ts- 封装本地存储 - 路由工具:
app/utils/router.ts- 路由相关工具函数 - 验证工具:
app/utils/validate.ts- 表单验证工具 - 语言工具:
app/utils/language.ts- 语言相关工具函数 - 通用工具:
app/utils/common.ts- 通用工具函数 - 深色模式工具:
app/utils/dark.ts- 深色模式相关工具函数
状态管理
- 应用状态:
app/stores/app.ts- 应用全局状态 - 配置状态:
app/stores/config.ts- 系统配置状态 - 全局状态:
app/stores/globals.ts- 全局共享状态 - 会员状态:
app/stores/member.ts- 会员相关状态 - 个人中心状态:
app/stores/personal-center.ts- 个人中心相关状态 - 系统状态:
app/stores/system.ts- 系统相关状态
配置信息
Nuxt 配置
- 模块集成:Element Plus、Pinia、VueUse、UnoCSS 等
- CSS 配置:SCSS 和 UnoCSS
- 路由配置:自定义路由,支持动态加载功能模块路由
- 服务器代理:配置 API 代理,解决跨域问题
依赖管理
- 包管理工具:pnpm
- 核心依赖:Element Plus、Vue I18n、Pinia、NProgress 等
- 开发依赖:TypeScript、ESLint、Sass 等
关键文件和模块
路由配置
app/router.options.ts:自定义路由配置,支持从功能模块自动加载路由app/pages/routes.ts:主应用路由定义app/apps/cms/pages/routes.ts:CMS 功能模块路由定义
布局组件
app/layouts/default.vue:默认布局app/layouts/member.vue:会员中心布局app/layouts/container.vue:容器布局
页面组件
app/pages/index.vue:首页app/pages/member/profile.vue:会员个人资料页app/apps/cms/pages/index.vue:CMS 首页
核心组件
app/components/login-dialog/:登录/注册对话框app/components/sms-code/:短信验证码组件app/components/icon.vue:图标组件
组合式函数
app/composables/login.ts:登录相关逻辑app/composables/captcha.ts:验证码相关逻辑app/composables/lang.ts:语言相关逻辑app/composables/send-sms.ts:发送短信相关逻辑
开发规范
代码风格
- 使用 TypeScript 进行类型检查
- 使用 ESLint 进行代码质量检查
- 遵循 Vue 3 的最佳实践
命名规范
- 组件名:使用 PascalCase(如
LoginDialog) - 文件名:使用 kebab-case(如
login-dialog.vue) - 变量名:使用 camelCase(如
userInfo) - 常量名:使用 UPPER_CASE(如
API_BASE_URL)
目录结构规范
- 功能模块放在
app/apps/目录下 - 通用组件放在
app/components/目录下 - 页面组件放在
app/pages/目录下 - 工具函数放在
app/utils/目录下
未来扩展
功能扩展
- 支持更多功能模块的集成
- 增强国际化支持,添加更多语言
- 提供更多主题选项和自定义能力
性能优化
- 实现更细粒度的代码分割和懒加载
- 优化静态资源加载
- 进一步优化构建流程
安全增强
- 加强认证和授权机制
- 防止 XSS 和 CSRF 攻击
- 实现敏感数据加密
总结
本项目是一个现代化的前端应用,基于 Nuxt 4 和 Element Plus 构建,使用 TypeScript 确保类型安全,采用组件化、模块化的开发方式。项目支持国际化、深色模式等现代前端特性,结构清晰,代码组织合理,具有良好的可扩展性和可维护性。
通过使用 Nuxt 4 的强大功能和 Element Plus 的丰富组件,项目能够快速构建出美观、高效的管理系统界面,同时为未来的功能扩展和性能优化提供了坚实的基础。项目使用 pnpm 作为包管理工具,提高了依赖安装和管理的效率。