# AgileBoot-Front-End **Repository Path**: lp8608/AgileBoot-Front-End ## Basic Information - **Project Name**: AgileBoot-Front-End - **Description**: 基于Ruoyi的改良版前端基础开发框架。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 88 - **Created**: 2025-03-14 - **Last Updated**: 2025-06-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

Vue Element Plus License

考勤系统前端

基于Vue3 + ElementPlus + Vite的前端项目

## 📚 项目介绍 本项目是考勤系统的前端部分,基于 AgileBoot 快速开发脚手架开发而成。采用现代化前端技术栈,为企业提供高效、易用的考勤管理解决方案。 ### 技术栈 - **核心框架**:[Vue 3](https://v3.cn.vuejs.org) (Composition API) - **UI 组件库**:[Element Plus](https://element-plus.org/zh-CN) - **构建工具**:[Vite](https://cn.vitejs.dev) - **状态管理**:[Pinia](https://pinia.vuejs.org/) - **路由管理**:[Vue Router 4](https://router.vuejs.org/zh/) - **HTTP 客户端**:Axios - **CSS 预处理器**:SCSS ### 项目特性 - 基于 Vue3 Composition API - 标签页多页签设计 - 响应式布局,支持 PC 端各种尺寸 - 统一的错误处理和权限管理 - 封装常用业务组件 ## 🚀 安装运行 ### 环境要求 - Node.js: 16.0+ - pnpm: 7.x (推荐 7.30.5) ### 安装步骤 1. **安装 pnpm**(如果尚未安装) ```bash npm install -g pnpm ``` 2. **克隆项目** ```bash git clone [项目仓库地址] cd AgileBoot-Front-End ``` 3. **安装依赖** ```bash pnpm install ``` 4. **启动开发服务器** ```bash pnpm run dev pnpm run dev:filtered ##过滤saas相关警告 ``` 5. **构建生产版本** ```bash pnpm run build ``` ### 切换 npm 源 如遇下载缓慢,可切换至国内 npm 源: ```bash npm config set registry https://registry.npmmirror.com ``` ## 📂 目录结构 ``` AgileBoot-Front-End/ ├── public/ # 静态资源 ├── src/ │ ├── api/ # API请求模块 │ ├── assets/ # 项目资源文件 │ ├── components/ # 公共组件 │ ├── config/ # 全局配置 │ ├── directives/ # 自定义指令 │ ├── layout/ # 布局组件 │ ├── router/ # 路由配置 │ ├── store/ # Pinia状态管理 │ ├── styles/ # 全局样式 │ ├── types/ # TypeScript类型定义 │ ├── utils/ # 工具函数 │ ├── views/ # 页面视图组件 │ ├── App.vue # 根组件 │ └── main.ts # 应用入口 ├── .env.* # 环境变量配置 ├── tsconfig.json # TypeScript配置 ├── vite.config.ts # Vite配置 └── package.json # 项目依赖 ``` ## 💼 内置功能 🔑 系统基础功能: | 功能 | 描述 | | -------- | -------------------------------------- | | 用户管理 | 系统用户配置、添加、编辑、删除 | | 部门管理 | 组织机构管理,树结构展现,支持数据权限 | | 岗位管理 | 配置系统用户所属担任职务 | | 菜单管理 | 配置系统菜单、操作权限、按钮权限标识 | | 角色管理 | 角色菜单权限分配、数据范围权限划分 | | 参数管理 | 系统动态配置参数管理 | | 通知公告 | 系统通知公告信息发布维护 | | 操作日志 | 系统操作日志记录和查询 | | 登录日志 | 系统登录日志记录查询 | | 在线用户 | 当前系统活跃用户状态监控 | | 系统接口 | 自动生成 API 接口文档 | | 服务监控 | 监控系统 CPU、内存、磁盘等信息 | ## 🔥 考勤业务功能 本项目实现了完整的企业考勤管理功能,主要包括: ### 项目管理 - 项目创建与维护 - 项目基本信息配置 - 项目人员分配 ### 订单管理 - 订单创建、修改、查询 - 订单详情查看 - 订单导出 - 关联人员管理 ### 结算管理 - 结算周期配置 - 结算单生成 - 结算审批流程 - 结算报表导出 ### 考勤记录 - 考勤打卡 - 异常考勤处理 - 考勤汇总统计 - 考勤规则设置 ## 🛠️ 二次开发指南 ### 开发规范 - 遵循 Vue3 Composition API 风格 - 使用 TypeScript 进行类型检查 - 组件命名采用 PascalCase - 使用 SCSS 进行样式开发,遵循 BEM 命名规范 - API 请求统一管理,按业务模块划分 ### 组件开发 - 公共组件放置在`src/components`目录 - 业务组件放置在对应业务模块的`components`目录 - 组件应当职责单一,避免过度复杂 ### 路由配置 - 路由配置位于`src/router/modules`目录 - 按业务模块组织路由 - 支持路由元信息配置(权限、图标等) ## 📋 标签页导航工具方法使用指南 ### 基本介绍 `tag-utils.ts` 提供了一套用于在多标签页环境中打开新标签页的工具方法,封装了路由解析、标签创建和导航逻辑,简化多标签页应用中的页面跳转操作。 ### 主要功能 - 通过路由名称打开新标签页 - `openTagByName` - 通过路径打开新标签页 - `openTagByPath` - 自动处理路由解析和错误情况 - 确保标签页与路由同步 - 提供友好的错误提示 ### 使用方法 #### 1. 通过路由名称打开新标签页 ```typescript import { openTagByName } from "@/utils/tag-utils"; import { useRouter } from "vue-router"; // 在组件中使用 const router = useRouter(); // 打开新标签页 openTagByName( router, // Vue Router实例 "AttendanceOrderDetail", // 路由名称 "订单详情-标题", // 标签标题 { id: 123 }, // 路由参数 { // 额外元信息 activeMenu: "/attendance/order", dynamicLevel: 3 // 允许同时打开标签数量 } ); ``` #### 2. 通过路径打开新标签页 ```typescript import { openTagByPath } from "@/utils/tag-utils"; import { useRouter } from "vue-router"; // 在组件中使用 const router = useRouter(); // 打开新标签页 openTagByPath( router, // Vue Router实例 "/attendance/order/123", // 路由路径 "订单详情-标题", // 标签标题 { tab: "basic" }, // 查询参数 { // 额外元信息 keepAlive: true, icon: "ep:document" } ); ``` ### 实际应用示例 订单管理中查看详情按钮实现: ```typescript // 查看订单详情 const handleView = (row: OrderVO) => { // 使用工具方法打开新标签页 openTagByName( router, "AttendanceOrderDetail", `订单详情-${row.orderCode}`, { id: row.orderId }, { activeMenu: "/attendance/order", dynamicLevel: 3 } ); }; ``` ### 注意事项 1. 确保路由名称或路径在路由配置中已正确定义 2. 传递的参数需与路由定义匹配 3. 如遇标签未激活问题,请检查路由路径与标签 path 是否一致 4. 路由参数(params)仅在 name 方式导航时有效,path 方式导航请使用查询参数(query) ## 🔐 许可证 本项目使用 MIT 许可证。原则上不收取任何费用及版权,可商用,不过如需二次开源请联系作者获取许可。