本文档为 Claude Code (claude.ai/code) 在此仓库中处理代码时提供指导。
RuoYi-Vue 3.9.0 —— 一个 Vue 3 企业级后台管理系统(若依管理系统)。此为前端项目;通过 Vite 代理 REST API 连接到 Java Spring Boot 后端。
npm run dev —— 启动开发服务器(端口 80,将 /dev-api 代理到 http://localhost:8081)npm run build:prod —— 生产环境构建(输出目录:dist/)npm run build:stage —— 预发布环境构建npm run preview —— 预览生产构建产物未配置任何测试框架。
Vue 3.5 + Vite 6 + Pinia 3 + Vue Router 4 + Element Plus 2.10 + Axios。使用 unplugin-auto-import,因此无需手动导入 Vue/Pinia API(如 ref、computed、defineStore 等)。
@ → ./src~ → 项目根目录src/api/ —— 按后端领域组织的 API 模块(system/、monitor/、tool/)src/views/ —— 页面组件,与 API 模块结构对应src/store/modules/ —— Pinia 存储:user、permission、app、settings、tagsView、dictsrc/layout/ —— 外壳布局(侧边栏、导航栏、标签视图、主内容区)src/components/ —— 全局组件,在 main.js 中注册(Pagination、DictTag、Editor、FileUpload、ImageUpload、ImagePreview、RightToolbar)src/plugins/ —— 插件系统:auth、cache、modal、tab、downloadsrc/directive/ —— 自定义 Vue 指令(基于权限的元素可见性)src/utils/ —— 共享工具函数(request.js、auth.js、ruoyi.js、validate.js、dict.js)vite/ —— Vite 插件配置(auto-import、svg-icons、compression、setup-extend)路由是从后端动态加载的(GET /getRouters)。系统包含两种路由类型:
src/router/index.js 中的 constantRoutes —— 公共路由(登录、注册、404、401、首页)src/store/modules/permission.js 中的 filterAsyncRouter() 转换为 Vue Router 路由组件解析使用 import.meta.glob('./../../views/**/*.vue'),将后端返回的路由组件字符串(如 "system/user/index")映射到实际的 Vue 组件。
三种特殊组件类型:Layout(主外壳)、ParentView(嵌套路由包装器)、InnerLink(iframe 嵌入)。
路由 meta 选项:hidden、alwaysShow、noCache、title、icon、breadcrumb、activeMenu、roles、permissions。
Admin-Token)src/permission.js —— 全局路由守卫,每次导航时检查令牌/getInfo),生成动态路由Authorization: Bearer {token} 头部注入*:*:* = 全部权限,admin = 超级管理员角色模块:实体:操作 模式(例如 system:user:edit)src/utils/request.js)VITE_APP_BASE_APIdownload() 导出方法,处理带 blob 验证的文件下载.env.development —— VITE_APP_BASE_API = '/dev-api'.env.production —— VITE_APP_BASE_API = '/prod-api'.env.staging —— 预发布环境配置vite.config.js 中配置(baseUrl 变量)this. 或 getCurrentInstance() 访问)useDict、download、parseTime、resetForm、handleTree、addDateRange、getConfigKey、selectDictLabel、selectDictLabels
将 SVG 文件放在 src/assets/icons/svg/ 目录下。它们会通过 vite-plugin-svg-icons 自动注册,使用时用 <svg-icon icon-class="名称" />。
listUser、getUser、addUser、updateUser、delUser)useDict() 组合式函数加载,并使用 <dict-tag> 组件显示size)中,默认值为 'default'src/settings.js 中可配置(侧边栏主题、标签视图、顶部导航、固定头部、Logo、页脚)