# 预算执行管理系统 基于 Vue3 + Element Plus 构建的预算执行管理前端系统。 ## 技术栈 - **Vue 3** - 渐进式 JavaScript 框架 - **Element Plus** - 基于 Vue 3 的组件库 - **Vue Router** - Vue.js 官方路由管理器 - **Vite** - 下一代前端构建工具 ## 项目结构 ``` czemc-budget-execution-frontend/ ├── src/ │ ├── config/ # 配置管理 │ │ └── index.js # 统一配置管理模块 │ ├── layout/ # 布局组件 │ │ └── MainLayout.vue # 主布局(包含 header、footer、nav 和主内容区) │ ├── utils/ # 工具类 │ │ ├── request.js # API 请求工具 │ │ └── api.js # API 接口定义 │ ├── views/ # 页面组件 │ │ ├── Login.vue # 登录页面(单页面,不使用布局) │ │ ├── Dashboard.vue # 工作台 │ │ ├── BudgetList.vue # 预算列表 │ │ ├── ExecutionList.vue # 执行列表 │ │ └── Report.vue # 报表统计 │ ├── router/ # 路由配置 │ │ └── index.js │ ├── App.vue # 根组件 │ └── main.js # 入口文件 ├── .env.development # 开发环境配置 ├── .env.staging # 预发布环境配置 ├── .env.production # 生产环境配置 ├── .env.example # 环境配置模板 ├── index.html # HTML 模板 ├── vite.config.js # Vite 配置 └── package.json # 项目配置 ``` ## 功能特性 ### 1. 登录页面 - 独立的登录页面,不使用主布局 - 表单验证功能 - 记住我功能 - 登录状态管理 ### 2. 主布局 - **Header**: 系统标题和用户信息下拉菜单 - **Sidebar**: 可折叠的侧边栏导航菜单 - **Main Content**: 主内容区域(使用 router-view 渲染页面) - **Footer**: 页脚信息 ### 3. 功能页面 - **工作台**: 数据统计和最近记录展示 - **预算列表**: 预算项目的增删改查 - **执行列表**: 预算执行记录管理 - **报表统计**: 数据统计和图表展示 ## 安装和运行 ### 1. 安装依赖 ```bash npm install ``` ### 2. 配置环境变量 复制 `.env.example` 文件并根据不同环境创建对应的配置文件: ```bash # 开发环境(已创建,可根据需要修改) .env.development # 预发布环境(已创建,可根据需要修改) .env.staging # 生产环境(已创建,可根据需要修改) .env.production ``` **重要提示**:所有环境变量必须以 `VITE_` 开头才能在客户端代码中访问。 ### 3. 启动开发服务器 ```bash npm run dev ``` 项目将在 `http://localhost:3000` 启动,自动使用 `.env.development` 配置 ### 4. 构建不同环境版本 不同环境的构建产物会输出到不同的目录,便于区分和管理: ```bash # 构建开发版本 -> 输出到 dist-dev/ npm run build:dev # 构建预发布版本 -> 输出到 dist-staging/ npm run build:staging # 构建生产版本 -> 输出到 dist-prod/ npm run build:prod # 或使用默认构建命令 npm run build ``` **构建输出目录说明:** - 开发环境:`dist-dev/` - 预发布环境:`dist-staging/` - 生产环境:`dist-prod/` 构建输出目录可在各环境的 `.env` 文件中通过 `VITE_BUILD_OUT_DIR` 配置项进行修改。 ### 5. 预览生产构建 ```bash npm run preview ``` ## 使用说明 1. **登录系统** - 访问系统后会自动跳转到登录页面 - 输入用户名和密码(无需真实后端验证) - 点击登录按钮即可进入系统 2. **导航菜单** - 左侧导航栏可以切换不同功能页面 - 点击折叠按钮可以收起/展开侧边栏 3. **功能操作** - 各页面提供了完整的增删改查功能示例 - 所有操作都有相应的提示信息 ## 多环境配置管理 项目支持多环境配置,无需修改代码即可切换不同环境。 ### 环境配置文件 - `.env.development` - 开发环境配置 - `.env.staging` - 预发布环境配置 - `.env.production` - 生产环境配置 - `.env.example` - 配置模板(供参考) ### 环境变量说明 每个环境配置文件包含以下配置项: - `VITE_APP_TITLE` - 应用标题 - `VITE_APP_ENV` - 环境标识 - `VITE_API_BASE_URL` - API 基础地址 - `VITE_API_TIMEOUT` - API 请求超时时间 - `VITE_ENABLE_MOCK` - 是否启用 Mock 数据 - `VITE_ENABLE_DEBUG` - 是否启用调试模式 - `VITE_BUILD_OUT_DIR` - 构建输出目录(用于区分不同环境的构建产物) ### 使用配置 在代码中使用统一配置模块: ```javascript import config from '@/config' // 访问 API 地址 const apiUrl = config.api.baseURL // 判断当前环境 if (config.isDevelopment) { console.log('开发环境') } // 访问功能开关 if (config.features.enableMock) { // 使用 Mock 数据 } ``` ### API 请求示例 项目已提供 API 请求工具类,自动使用配置中的 API 地址: ```javascript import { budgetAPI } from '@/utils/api' // 获取预算列表 const data = await budgetAPI.getBudgetList({ page: 1, pageSize: 10 }) ``` ## 开发说明 ### 路由配置 路由配置在 `src/router/index.js` 中,包含路由守卫用于登录验证。 ### 样式规范 - 使用 Element Plus 的组件样式 - 自定义样式使用 scoped 作用域 - 响应式设计,支持移动端和桌面端 ### 状态管理 当前使用 localStorage 存储登录状态,实际项目中可以集成 Vuex 或 Pinia。 ### 环境变量规范 - 所有环境变量必须以 `VITE_` 开头 - 环境变量在构建时会被注入到代码中 - 敏感信息不应存储在环境变量中(会被打包到客户端代码) ## 注意事项 - 登录功能为前端模拟,实际项目中需要对接后端 API - 所有数据为示例数据,实际使用时需要对接后端接口 - 图表功能预留了接口,可以集成 ECharts 或其他图表库 - `.env` 文件不应提交到版本控制,已配置在 `.gitignore` 中 - 修改环境变量后需要重启开发服务器才能生效 - 构建时环境变量会被静态注入,无法在运行时动态修改 - 不同环境的构建产物会输出到不同的目录(`dist-dev/`、`dist-staging/`、`dist-prod/`),便于区分和管理 ## 许可证 MIT License