# ruovea-omi-web **Repository Path**: mofees/ruovea-omi-web ## Basic Information - **Project Name**: ruovea-omi-web - **Description**: System 接口管理组件 ;用户、角色、菜单、机构、职位、权限管理 Web - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-08-18 - **Last Updated**: 2026-08-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RuoVea.Omi #### 介绍 RuoVea.Omi 是一套基于 .NET 的模块化后台管理系统,采用插件式架构设计,支持多数据库、多语言、细粒度权限控制。项目提供从用户管理、角色权限、系统配置到日志审计的完整后台解决方案。 - **仓库地址**: https://gitee.com/ruovea/ruovea-omi-web - **扩展组件**: https://gitee.com/ruovea/ruovea-extend #### 软件架构 **技术栈**:基于 .NET 8.0 / 10.0 构建,支持跨平台部署。 ``` RuoVea.Omi ├── RuoVea.OmiArticle # 文章分类与内容管理 ├── RuoVea.OmiConfig # 系统配置管理 ├── RuoVea.OmiDict # 数据字典管理 ├── RuoVea.OmiLog # 系统日志(操作/访问/异常/差异日志) ├── RuoVea.OmiLogin # 登录认证与鉴权 ├── RuoVea.OmiReports # 报表管理 ├── RuoVea.OmiSystem # 系统基础服务 ├── RuoVea.OmiUI # 前端 UI 组件库 ├── RuoVea.OmiUser # 用户管理 ├── RuoVea.OmiUserRole # 角色管理 ├── RuoVea.OmiUserRoleMenu # 菜单与权限管理 └── RuoVea.OmiTest # 集成测试与 Demo 站点 ``` **核心依赖**: - **ORM**: SqlSugar(支持 Sqlite、MySql、SqlServer、PostgreSQL 等) - **日志**: log4net - **序列化**: Newtonsoft.Json - **UI 框架**: Avue(前端响应式布局) **架构优势**: - **模块化设计**:各功能模块独立 NuGet 包,按需引用 - **跨平台支持**:可在 Windows、Linux、macOS 上运行 - **多数据库支持**:Sqlite / MySql / SqlServer / Oracle / PostgreSQL / 达梦 / 人大金仓 等 - **多语言国际化**:内置中、英、日、法、越南语等多语言资源 - **细粒度权限**:用户 → 角色 → 菜单三级权限控制 - **完整日志体系**:操作日志、访问日志、异常日志、差异日志 - **Docker 支持**:提供完整的 Docker 构建与部署方案 --- ## 📥 安装教程 ### 环境要求 - .NET 8.0 SDK 或 .NET 10.0 SDK - 支持的数据库(默认使用 Sqlite,无需额外安装) ### 本地开发运行 ```bash # 克隆仓库 git clone https://gitee.com/ruovea/ruovea-omi-web.git cd ruovea-omi-web # 还原依赖 dotnet restore RuoVea.Service.8.0.sln # 运行 Demo 站点 cd RuoVea.OmiTest/RuoVea.OmiTest.Web dotnet run ``` ### IIS 部署 1. 使用 `Dotnet Build.bat` 编译所有模块 2. 将编译输出部署到 IIS 站点目录 3. 配置应用程序池为"无托管代码" 4. 修改 `Config/DbConnstring.json` 配置数据库连接 ### Docker 部署 **方式一:docker run** ```bash docker run --name ruovea-omitest-container ^ -p 5056:80 ^ -e "ConnectionConfigs:0:DbType=Sqlite" ^ -e "ConnectionConfigs:0:ConnectionString=DataSource=./RuoVea.OmiTest.db" ^ -e "ConnectionConfigs:0:EnableUnderLine=false" ^ -e TZ=Asia/Shanghai ^ --restart=always ^ crpi-ued86xnwae548w9p.cn-shenzhen.personal.cr.aliyuncs.com/ruovea/RuoVea.OmiTest-img:latest ``` **方式二:docker-compose** ```yaml version: '3.9' services: RuoVea.OmiTest-img: image: 'RuoVea.OmiTest-img:latest' restart: always environment: - TZ=Asia/Shanghai - 'ConnectionConfigs:0:DbType=Sqlite' - 'ConnectionConfigs:0:ConnectionString=DataSource=./RuoVea.OmiTest.db' ports: - '5056:80' container_name: RuoVea.OmiTest-container ``` ```bash docker-compose up -d ``` **方式三:本地构建镜像** ```bash cd RuoVea.OmiTest # 执行构建脚本 Doc/Docker/docker build.bat # 或手动构建 docker build -f ./RuoVea.OmiTest.Web/Dockerfile --force-rm -t ruovea-omitest-img:latest . ``` --- ## 📋 配置说明 ### 数据库配置 (`Config/DbConnstring.json`) ```json { "ConnectionConfigs": [{ "DbType": "Sqlite", "ConnectionString": "DataSource=./db/RuoVea.OmiTest.db" }] } ``` 支持的数据库类型:`MySql`、`SqlServer`、`Sqlite`、`Oracle`、`PostgreSQL`、`Dm`(达梦)、`Kdbndp`(人大金仓)、`ClickHouse`、`GBase` 等。 ### 日志配置 (`Config/Exception.json` / `Config/Request.json`) ```json { "ExceptionLog": { "Enabled": true, "LogToFile": false, "LogMore": false }, "RequestLog": { "Enabled": true, "LogToFile": false, "LogMore": false, "IgnoreApis": "" } } ``` ### JWT 认证配置 (`Config/JwtConfig.json`) ```json { "Jwt": { "IssuerSigningKey": "", "ValidIssuer": "RuoVea.OmiTest", "ExpiredTime": 1440 } } ``` ### 密码加密配置 (`Config/PasswordConfig.json`) 支持多种加密算法:`Md5`、`HMACMD5`、`AES`、`DESC`、`RSA`、`SM2`、`SM3`、`SM4` 等。 ### 多语言配置 (`Config/LangConfig.json`) ```json { "Lang": { "Default": "zh-CN", "Cultures": ["en-US", "zh-CN", "zh-TW", "zh-HK", "ja-JP", "fr-FR", "vi-VN"] } } ``` ### Docker 环境变量 | 变量 | 说明 | 示例 | |------|------|------| | `ConnectionConfigs:0:DbType` | 数据库类型 | `Sqlite` | | `ConnectionConfigs:0:ConnectionString` | 连接字符串 | `DataSource=./RuoVea.OmiTest.db` | | `ConnectionConfigs:0:EnableUnderLine` | 驼峰转下划线 | `true` / `false` | | `ExceptionLog:Enabled` | 启用异常日志 | `true` / `false` | | `RequestLog:Enabled` | 启用请求日志 | `true` / `false` | | `TZ` | 时区 | `Asia/Shanghai` | --- ## 📖 使用说明 ### Demo 站点 启动后访问 `http://localhost:5000` 进入 RuoVea.OmiTest Demo 管理界面。 ### 默认账户 | 角色 | 账号 | 密码 | |------|------|------| | 管理员 | `admin` | `123456` | | 普通用户 | `ruovea` | `123456` | > **提示**:首次登录后建议立即修改默认密码。初始化密码可在 `PasswordConfig.json` 中配置。 ### 功能模块概览 - **用户管理**:用户增删改查、状态管理、密码重置 - **角色管理**:角色分配、权限绑定 - **菜单管理**:菜单树配置、按钮权限 - **系统配置**:站点标题、主题色、各项参数动态配置 - **系统日志**: - **操作日志**:记录用户增删改操作 - **访问日志**:记录登录/登出行为 - **异常日志**:记录系统运行时错误 - **差异日志**:记录数据变更历史(基于 SqlSugar 差异日志) ### 日志系统 项目使用 log4net 作为日志组件,按级别分文件存储: | 级别 | 文件 | |------|------| | ERROR | `log/yyyy-MM-dd/Error.log` | | WARN | `log/yyyy-MM-dd/Warn.log` | | INFO | `log/yyyy-MM-dd/Info.log` | | DEBUG | `log/yyyy-MM-dd/Debug.log` | ### 国际化 (i18n) 内置 8 种语言支持,基于 `.resx` 资源文件: - 简体中文 (zh-CN)、繁体中文-台湾 (zh-TW)、繁体中文-香港 (zh-HK) - 英语 (en-US)、日语 (ja-JP)、法语 (fr-FR)、越南语 (vi-VN) --- ## 📂 页面路径导航 > `{route}` 为路由前缀,通过 `Config/PrefixRoute.json` 配置,默认为空。当 `route` 为 `/reports` 时,实际访问路径为 `/reports/dataSource/index`。 ### 报表管理模块 | 页面 | 路径 | 说明 | |------|------|------| | 数据库管理 | `{route}/dataSource/index` | 管理报表数据库连接与数据源 | | SQL 管理 | `{route}/Definition/index` | 编辑和管理报表 SQL 脚本 | | 图表配置 | `{route}/chartConfig/index` | 配置图表类型、样式与数据源映射 | | 仪表盘配置 | `{route}/Dashboard/admin` | 配置和管理仪表盘布局与展示内容 | ### 仪表盘查看与报表查询 | 页面 | 路径 | 参数 | 说明 | |------|------|------|------| | 仪表盘查看 | `{route}/dashboard/index` | `?code={仪表盘编码}&name={名称}` | 用户端仪表盘展示页面 | | 报表数据查询 | `{route}/querybycode/index` | `?code={报表编码}&name={名称}` | 按编码查询报表数据,支持筛选/导出 | ### 示例 ```bash # 无路由前缀(默认) http://localhost:5000/dataSource/index # 有路由前缀 /reports http://localhost:5000/reports/dataSource/index # 查看指定仪表盘 http://localhost:5000/dashboard/index?code=sales_dashboard&name=销售仪表盘 # 查看指定报表数据 http://localhost:5000/querybycode/index?code=monthly_sales&name=月度销售报表 ``` --- ## 🔧 构建与打包 ### 一键构建 ```bash # 构建所有模块(8.0 + 10.0) Dotnet Build.bat # 仅构建 UI 模块 Dotnet Build UI.bat ``` ### 版本管理 版本号统一在 `Version.props` 中管理,各模块 csproj 通过 MSBuild 属性引用: ```xml $(OmiArticle_Version_8_0) ``` ### 项目结构说明 每个模块采用多版本 csproj 共享源代码的方式: ``` ModuleName/ ├── ModuleName/ # 主项目(共享源码) │ ├── ModuleName.8.0.csproj # .NET 8.0 编译文件 │ └── ModuleName.10.0.csproj # .NET 10.0 编译文件 └── ModuleName.Test/ # 测试项目 └── ModuleName.Test.8.0.csproj ``` --- ## 🤝 参与贡献 1. Fork 本仓库 2. 新建 `Feat_xxx` 分支 3. 提交代码 4. 新建 Pull Request --- ## 📄 许可证 - 项目主体使用 MIT 许可证 - RuoVea.OmiTest 模块使用 Apache License 2.0 - 请查看各模块目录下的 LICENSE 文件获取更多详情