做企业后台这些年,最耗人的从来不是业务逻辑本身。
-
一个能用的后台管理系统,业务代码通常只占 20%,剩下 80% 全是公共设施:数据表怎么建模、表单怎么做校验和联动、RBAC 怎么拼、数据范围和按钮权限怎么控、审批流怎么接、统一登录怎么对接 OAuth2/OIDC/CAS/LDAP、门户和知识库是不是还得再搭一套。每开一个新项目,这套东西就要重新来一遍;用现成脚手架,要么捆绑一堆用不上的中间件,要么版本陈旧、二次改造成本比自研还高。
-
YuanQi(UIEIP 远齐低代码开发平台)就是为解决这件事开源的:把上面这些公共设施做成平台能力,业务侧只写模型 + 页面 + 服务端 JavaScript。 项目以 MIT 协议开源,v1.0 发布于 2026-10-06,主仓库在 Gitee。
一、项目定位
|
你原本要做的
|
在 YuanQi 里
|
|
设计表结构、写建表 SQL、写 CRUD 接口
|
可视化建模,自动生成表与通用增删改查接口
|
|
手写表单校验、联动、外键下拉
|
20+ 内置字段组件,模板或拖拽搭建
|
|
自己拼 RBAC、数据范围、按钮权限
|
组织/部门/岗位/人员/角色/菜单/操作标识多层权限
|
|
接入或自研审批流
|
可视化流程设计器 + 会签/或签/比例通过/退回/代审
|
|
对接 OAuth2 / OIDC / CAS / LDAP
|
内置统一认证中心与兼容协议
|
|
另外搭官网和知识库
|
内置门户 CMS 与 AI 知识库(DeepSeek / Ollama + Milvus)
|
二、技术架构
┌──────────────────────────────────────────────────────────┐
│ 浏览器 / 移动端 │
│ YQWIN-Plus(Vue3 + TypeScript + Element Plus)/ HTML │
└───────────────────────────┬──────────────────────────────┘
│ HTTP / JSON / 文件请求
┌───────────────────────────▼──────────────────────────────┐
│ uieip 服务(Go 单文件可执行) │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 路由/静态 │ │ 模板与脚本│ │ 数据引擎 │ │ 权限/SSO │ │
│ │ 服务 │ │ 引擎(ES5.1)│ │ 通用接口 │ │ 引擎 │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 文件服务 │ │ 流程引擎 │ │ 缓存/会话 │ │ 日志/监控 │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
└───────────┬───────────────────────────────┬──────────────┘
│ │
┌─────────────────────┐ ┌────────────────┐
│ SQLite(本包) │ │ 本地文件柜 │
│ data/yqbase.sqlite │ │ files/ │
└─────────────────────┘ └────────────────┘
-
技术栈本身没什么花活,重点在「收敛」:
-
服务端:Golang,单文件发布,无外部运行时依赖,不用装 Go、Node.js、数据库、Web 服务器
-
脚本层:服务端 JavaScript(ECMAScript 5.1),页面里 <script runat="server"> 直接执行,内置 request / response / http / data / session / cache / resource 等对象
-
前端:YQWIN-Plus(Vue 3 + TypeScript + Element Plus)自有组件库,含表单、数据表格、树、弹窗、图表(ECharts / D3 / GoJS)、看板、甘特图
-
存储:本发布包为 SQLite;正式版支持 PostgreSQL、KingbaseES 等
-
可选组件:Redis(缓存/会话)、NSQ(消息队列)、Nginx(生产反代)、Milvus(AI 知识库向量库)
三、核心能力
|
能力
|
说明
|
|
数据引擎(建模)
|
实体、字段、枚举、外键、关系图建模,自动生成表与通用接口;支持树形、排序、视图、表内文件
|
|
表单引擎
|
|
|
权限引擎
|
组织、部门、岗位、人员、角色、菜单、操作标识,控制 UI 入口、数据范围与业务操作
|
|
流程引擎
|
开始/退回/执行/判断/程序/结束/取消/注释节点;会签、或签、比例通过、代审、待办已办
|
|
单点登录
|
OAuth2、OIDC、CAS 2.0、SAML2、LDAP、远齐 SSO 兼容协议、微信登录
|
|
门户 / CMS
|
站点、栏目、导航、文章、模板管理,访问/点赞/收藏/评论统计
|
|
知识库与 AI
|
接入 DeepSeek、Ollama 等模型,Milvus 向量库,火山引擎/Ollama Embedding,问答结合业务数据
|
|
文件服务
|
数据库存储与本地文件柜,图片缩放、裁剪、水印、分片上传、文件指纹
|
|
运维管理
|
缓存、系统监控、统计、DNS、Nginx、NSQ、参数等管理能力
|
四、三行跑起来
git clone https://gitee.com/uieip/yuanqi-open.git D:\Spring\yuanqi-open
cd D:\Spring\yuanqi-open; .\uieip-windows.exe
start http://127.0.0.1:8011/adp/ # 账号 spring / 密码 uieip.123
⚠️ 路径必须是 D:\Spring\yuanqi-open:随包 config.json 使用绝对路径,换目录需先改 webpath、db.yqbase.connStr 等配置。也可以直接下载 Release 压缩包,解压后双击 uieip-windows.exe。
|
入口
|
地址
|
|
管理后台
|
http://127.0.0.1:8011/adp/
|
|
站点首页
|
http://127.0.0.1:8011/
|
|
组件库示例
|
http://127.0.0.1:8011/yqvue/
|
五、目录结构
yuanqi-open/
├─ uieip-windows.exe # Windows x64 服务主程序(单文件)
├─ config.json # 主配置(端口、站点、数据库、日志、AI、SSO)
├─ yqdns.json # 内置 DNS 服务配置
├─ data/yqbase.sqlite # 系统数据库(模型、菜单、用户、权限、流程、CMS)
├─ files/ # 文件柜:元数据 + 按年月归档的文件
└─ web/ # 站点根目录
├─ adp/ # 管理后台
├─ api/ # API 接口(请求 .json,程序为同名 .html)
├─ cms/ # 门户模板与页面
├─ login/ account/ # 登录、个人中心
├─ yqvue/ # YQWIN-Plus 组件库与示例
├─ svrfunc/ # 服务端功能程序
└─ document/ # 产品与开发文档(Markdown)
六、边界说明(重要,请先读这一段)
-
v1.0 只发布 Windows x64 运行包,数据库是 SQLite。Linux / macOS、PostgreSQL / KingbaseES 等属于正式版能力,不在这份开源包里。
-
服务端脚本是 ES5.1,没有 ES6+ 的模块、Promise、箭头函数。这是刻意的取舍(老代码兼容 + 引擎轻量),写业务前需要知道。
-
GoJS、TinyMCE 等组件需要商业授权,由使用者自行向权利人申请购买,项目不代为申请也不承担费用。其余第三方组件(Vue、Element Plus、ECharts、D3、Marked 等)遵循各自许可证。
-
开源包定位是学习体验、原型验证、中小企业轻量应用;生产环境、国产化环境、多数据库属于正式版,按授权提供。
-
v1.0 只提供社区支持,没有 SLA。默认账号 spring / uieip.123 首次部署后请立即修改;config.json 里的示例密钥仅用于本地演示,不能进生产。
-
微信登录、短信、邮件、大模型与 Embedding、Milvus、对象存储等第三方服务,都需要自行注册开通并承担费用与合规责任。
七、开源信息
-
许可证:MIT,可免费用于商业项目
-
仓库:Gitee 主仓库 https://gitee.com/uieip/yuanqi-open ,GitHub 镜像 https://github.com/uieip/yuanqi-open (Issue、PR、发行版在 Gitee 维护)
-
文档:仓库 docs/ 基于 MkDocs,pip install -r requirements-docs.txt && mkdocs serve 本地预览;发布包内详细文档在 web/document/
-
参与共建:欢迎 Issue、文档修订、模板与组件贡献。提问时请附操作系统版本、config.json 中脱敏后的相关配置、控制台日志,能省掉大量来回
-
官网:http://www.uieip.com/
八、写在最后