# EIMSNext-Services **Repository Path**: eimsnext/EIMSNext-Services ## Basic Information - **Project Name**: EIMSNext-Services - **Description**: EIMSNext(又名东风低代码)是一款开源企业级信息管理解决方案,以低代码技术为核心,提供 “前端 + 后端” 全栈支持。前端基于 Vue 3 与 TypeScript 构建,采用模块化设计,后端涵盖身份认证、数据管理、工作流引擎等核心模块,支持灵活 API 交互与数据持久化。项目适配企业内部管理、流程审批、动态表单等多种场景,助力企业降低信息化建设成本、提升管理效率。 - **Primary Language**: C# - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://www.eimsnext.com - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2025-09-14 - **Last Updated**: 2026-02-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: 动态表单, 工作流, EIMSNext, 数据流, 东风低代码 ## README # EIMSNext - 东风代码应用平台 ## 项目简介 EIMSNext(又名东风低代码)是一款开源企业级信息管理解决方案,以低代码技术为核心,提供 “前端 + 后端” 全栈支持。前端基于 Vue 3 与 TypeScript 构建,采用模块化设计,后端涵盖身份认证、数据管理、工作流引擎等核心模块,支持灵活 API 交互与数据持久化。项目适配企业内部管理、流程审批、动态表单等多种场景,助力企业降低信息化建设成本、提升管理效率。 官方网站: [www.eimsnext.com](https://www.eimsnext.com) 示例网站: [work.eimsnext.com](https://work.eimsnext.com) ## 主要功能模块 ### 1. 身份验证模块 (Auth) - 提供基于 IdentityServer 的身份验证服务。 - 支持多种授权方式,包括密码验证、验证码、单点登录 (SSO) 和集成授权。 - 包含客户端、资源、作用域、用户等实体的管理功能。 - 提供持久化授权令牌的存储与管理。 ### 2. API 客户端模块 (ApiClient) - 提供统一的 API 客户端抽象类,支持 RESTful API 调用。 - 封装了重试策略、请求构建、响应处理等通用逻辑。 - 提供针对流程服务的客户端实现,支持审批、状态查询、启动流程、加载定义、运行数据流等操作。 ### 3. 数据访问模块 (Core) - 提供基于 MongoDB 的数据访问层,支持动态查询、过滤、排序、分页等功能。 - 包含缓存客户端实现,支持分布式缓存和内存缓存。 - 提供脚本引擎支持,用于执行动态表达式和公式计算。 ### 4. 流程引擎模块 (Flow) - 实现了数据流和工作流的执行引擎。 - 支持多种节点类型,包括审批、复制、插入、更新、删除、查询、打印等。 - 提供流程定义解析器,支持从 JSON 配置中构建流程。 - 支持流程执行日志、待办事项、审批记录等流程相关数据的管理。 ### 5. 服务模块 (Service) - 提供统一的业务服务接口和实现,支持对各类实体的增删改查操作。 - 包括表单、应用、用户、部门、审批流程等业务实体的服务实现。 - 支持基于 OData 的查询接口,提供灵活的数据访问能力。 ### 6. 文件上传模块 (FileUpload) - 提供文件上传服务,支持文件存储、访问控制、缓存管理等功能。 - 包含上传控制器,支持通过 HTTP 接口上传文件。 ### 7. API 接口模块 (ApiHost) - 提供多个 API 服务接口,包括身份验证、文件上传、流程控制、数据服务等。 - 支持基于 JWT 的身份认证和权限控制。 - 提供 OpenAPI/Swagger 接口文档支持。 ## 技术架构 - **后端技术栈**: - C# / .NET 8 - MongoDB 作为主要数据存储 - IdentityServer4 实现身份认证与授权 - Autofac 实现依赖注入 - OData 实现灵活的数据查询接口 - ClearScript V8 实现 JavaScript 表达式解析与执行 - **核心组件**: - **ApiClient**:封装 REST API 调用逻辑 - **Core**:核心数据访问与缓存组件 - **Scripting**:脚本执行引擎 - **Flow**:流程引擎,支持工作流与数据流 - **Service**:业务服务层,提供统一的业务逻辑封装 - **ApiHost**:API 接口层,提供 Web API 接口 ## 使用说明 ### 1. 启动服务 - 确保 MongoDB 已安装并运行。 - 配置 `appsettings.json` 中的数据库连接信息。 - 启动各个 API 服务(AuthApi、FileUploadApi、FlowApi、ServiceApi ://gitee.com/eimsnext/EIMSNext-Services)。 ### 2. 身份验证 - 使用 `/auth/sendcode` 接口发送验证码。 - 使用标准 OAuth2 接口获取访问令牌。 - 支持多种授权方式,包括密码、验证码、单点登录、集成授权等。 ### 3. 数据服务 - 使用 OData 接口进行数据查询,支持动态过滤、排序、分页。 - 支持通过 API 对表单、应用、用户、部门等实体进行增删改查操作。 ### 4. 流程服务 - 通过 `/api/v1/workflow/start` 启动流程。 - 通过 `/api/v1/workflow/approve` 提交审批。 - 通过 `/api/v1/dataflow/run` 触发数据流操作。 ### 5. 文件上传 - 使用 `/api/v1/upload` 接口上传文件。 - 支持文件存储路径配置、访问控制、缓存管理。 ## 开发与测试 - 使用 `dotnet test` 运行单元测试。 - 使用 `MongoTransactionScope` 管理事务。 - 使用 `V8ScriptEngine` 执行动态表达式。 - 使用 `MongoDB.AspNetCore.OData` 实现普通表单的查询与数据提交 - 使用 `DynamicFindOptions` 实现灵活的动态数据查询逻辑。 ### 捐助 如果您觉得我们的开源软件对你有所帮助,请扫下方二维码打赏我们一杯咖啡。 1. 点击链接[Paypal](https://www.paypal.com/ncp/payment/VF39PBVWQ7VVS)或扫描二维码通过Paypal打赏 ![Paypal打赏](https://foruda.gitee.com/images/1764387152456008244/97ecd31c_12828486.png "paypal200.png") 2. 扫描二维码通过微信打赏 ![微信打赏](https://foruda.gitee.com/images/1763474049128942966/bada62bb_12828486.jpeg "wxpay200.jpg") ## 许可证 本项目采用 Apache 2.0 许可证。详情请参阅 [LICENSE](LICENSE) 文件。 ## 贡献指南 欢迎贡献代码和文档。请遵循以下步骤: 1. Fork `https://gitee.com/eimsnext/EIMSNext-Services`。 2. 创建新分支。 3. 提交更改。 4. 创建 Pull Request。 ## 联系方式 如有问题或建议,请提交 Issue 或联系项目维护者。