# yimi-doc **Repository Path**: uublue/yimi-doc ## Basic Information - **Project Name**: yimi-doc - **Description**: Yimi文档 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2024-12-07 - **Last Updated**: 2025-12-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Yimi Yimi是一个后台管理系统快速开发框架。基于Spring + Vue的前后端分离开发模式。一套代码架构,同时支持单体应用和微服务应用的开发。 ### 技术栈 当前最新版本的技术栈如下: > 后端 - `Spring Boot 2.x.x`(Java8 和 Java17) - `Spring Security` / `JWT` / `Token + Redis` - `Spring Cloud Alibaba` - `Spring Data JPA` / `Mybatis` / `Mybatis-Plus` - `MySQL` - `Ehcache` / `Redis` - `Swagger` > 前端 - `Vue 3` + `Element Plus` + `Vue Router 4` + `Pinia` + `Axios` 有旧版本的前端([网址](https://gitee.com/uublue/yimi-element-admin)),已经不再维护,技术栈如下: - `Vue 2` + `Element UI` + `Vue Router 3` + `Vuex` + `Axios` ## 功能亮点 ### 访问控制 - 能基于代码,自动初始化受限访问的资源,即前端菜单和后端操作接口; - 资源分配方式多样,能直接在资源树把资源分配给用户或角色,也能间接的,管理权限与角色的关联关系,以及用户与角色和权限的关联关系; - 权限编码的定义,支持通配符。例如,管理员用于`system:*:*`权限,也就拥有系统管理模块下的所有权限; ![user-resource-tree](./assets/features/access/user-resource-tree.png) > 关于访问控制的[更多详情](./features/access.md) ### 配置管理 用于管理系统运行中用到的变量。 - 配置项的值类型可以是多样的,不同的值类型,前端页面会自动提供不同的编辑控件。比如布尔类型会使用下拉选择框,数值类型,会使用数值输入框。 - 支持自定义类型的配置项,一个类中可以包含多个字段。这样就可以在一个配置项中管理一组相关的配置。 ![init-complex-ui](./assets/features/sys-config/init-complex-ui.png) > 关于配置管理的[更多详情](./features/sys-config.md) ### 接口管理 只需按照Yimi的约定,将每个页面中用到的后端接口(具体的,是接口的url和method,是前端本来就要配置的信息),配置到当前页面默认的导出项中,Yimi便可自动扫描获取以下信息: - 每个页面用到了哪些接口,这些接口对应后端的哪个控制类的哪个`method`; - 每个接口对应的操作名称,比如`新增用户`的接口; - 每个接口的访问限制,需要什么角色或者权限。 这些数据也是上面`访问控制`中构建资源树时需要用到的信息。 > 关于接口管理的[更多详情](./features/page-api.md) ### 菜单管理 - 系统的初始状态,后端存储无菜单数据,此时,每个用户的菜单树数据由前端路由(vue-router)配置信息根据当前用户的权限过滤后所得; - 基于前端路由(vue-router)的配置代码,可以一键初始化一套菜单数据到后端; - 后端存储有菜单数据后,每个用户的菜单树数据由查询后端接口得到,此时可以通过菜单管理对菜单树结构和每个菜单项的名称等进行编辑。 ![sample-code--vue-router-menu](./assets/features/menu/sample-code--vue-router-menu.png) 这些数据也是上面`访问控制`中构建资源树时需要用到的信息。 > 关于菜单管理的[更多详情](./features/menu.md) ### 操作日志 - 只需给一个后端接口加上自定义的注解,Yimi就会自动记录该接口的调用日志 - 日志信息包含:被调用接口的信息,调用时间、调用人、以及Http请求的数据和结果 - 自定义注解支持对Http请求参数进行过滤,排除掉无用的数据 ![sys-log-example-init-menu](./assets/features/sys-log/sys-log-example-init-menu.png) > 关于日志管理的[更多详情](./features/op-log.md) ## 其它工具 ### 脚手架 使用Yimi脚手架,你可以根据自己的需求,构建一套自己的项目代码。比如可以定制以下内容: - 项目目录、前端包名、前端是否使用Typescript等; - 后端包名、Maven的groupId、artifactId; - 后端选择SpringBoot单体应用还是SpringCloud微服务应用; - 其它选择项。 ![spring-part](./assets/features/scaffold/spring-part.png) > 关于脚手架的[更多详情](./features/scaffold.md) ### 前端组件 Yimi对前端代码中经常重复出现的代码片段,进行了提取,形成了一些功能增强的组件,使用这些组件,可以大大减少开发工作量,提升开发效率。 > 代码示例(表格) ![sample-code--api](./assets/yep/table/sample-code--api.png)
> 关于前端组件的[更多详情](./yimi-element-plus/README.md) ### 代码生成 一款CRUD代码生成工具,IDEA插件,支持自定义模板与变量,已经为`Yimi`准备了配套的模板。 ![role-permisstion](./assets/features/code-gen/plugin/design/global.png) > 关于代码生成的[更多详情](./features/CrudGenerator/README.md)