系统简介
命名含义
cf_Ghbf 是项目沿用的品牌标识,其中 cf 代表晨风;项目英文名称为 Go High-performance Framework(高性能框架)。
项目定位
cf_Ghbf 是一套前后端分离的插件化基础框架,覆盖服务端、管理端与用户端三端:后端基于 Go(Gin + GORM + MySQL + Redis + JWT),管理端基于 Vue 3(TypeScript + Vite + Element Plus + Pinia),用户端(C 端)基于 uni-app(Vue 3 + TypeScript + Vite)一套代码多端发布。管理端 API 与用户端 API 拥有独立的服务入口与路由,可按业务规模分别部署。
框架的目标不是“快速拼一个后台”,而是让基础能力保持稳定、让业务模块可以独立开发、独立发行、按需安装,并逐步形成可持续的插件生态。
核心能力
| 能力 | 说明 |
|---|---|
| 双端服务 | service admin(管理端,默认 :8001)与 service api(用户端,默认 :8002)独立启动、独立路由 |
| 登录鉴权 | JWT + Redis 登录态,支持主动退出、改密失效、管理员踢下线、账号禁用即失效 |
| RBAC 权限 | 菜单、页面、按钮绑定接口(METHOD:/route),后端权限中间件为最终安全边界 |
| 动态路由 | 后端菜单驱动前端路由,页面路径与 src/views 目录一一对应 |
| 操作审计 | 管理端写操作自动记录日志,敏感参数脱敏,日志查询不产生新日志 |
| 文件存储 | 本地 / 阿里云 OSS / 腾讯云 COS / 七牛 Kodo / MinIO,业务表只存相对路径 |
| 渠道配置 | 短信、微信、支付、平台品牌配置模块开箱即用 |
| 会员体系 | C 端会员:验证码注册登录、单会话令牌、用户编号 sn、管理端启停与脱敏展示 |
| 多端用户端 | uni-app 一套代码发布 H5、App 与微信 / 支付宝 / 百度 / 抖音 / 鸿蒙小程序,请求统一携带平台来源与版本号,令牌失效自动跳登录 |
| 插件体系 | 源码级插件 + 编译期注册,安装器负责校验、迁移、菜单与注册文件生成;用户端插件页面随插件以分包形式下发(如 user_client/src/plugins/news) |
技术栈
服务端:Go、Gin、GORM、MySQL、Redis、JWT、Cobra(CLI)、bcrypt(密码加密)
管理端:Vue 3 Composition API、TypeScript、Vite、Element Plus、Pinia、Vue Router、Axios、ECharts
用户端(C 端):uni-app(Vue 3 + TypeScript + Vite)、wot-design-uni(UI 组件库)、图鸟 UI 与项目自定义(UI组件库)、Pinia、UnoCSS(@uni-helper/unocss-preset-uni + 图标预设)、mp-html(资讯正文与协议富文本渲染)、@uni-helper 文件路由 / 布局 / 组件按需引入 / manifest 配置、@uni-ku/bundle-optimizer 小程序分包优化、unplugin-auto-import 自动导入;请求层基于 uni.request 自封装 src/utils/request.ts,统一注入令牌与 X-Platform-Source、X-App-Version 请求头,令牌失效自动跳登录页。一套代码编译发布到 H5、App(Android / iOS)与微信小程序、支付宝、百度、抖音、鸿蒙小程序等端(manifest.config.ts 中维护各端配置)。
用户端工程要点:
| 项 | 说明 |
|---|---|
| 工程目录 | user_client,页面位于 src/pages,分包位于 src/subpackages(插件页面可独立成包,如 src/plugins/news) |
| 路由与配置 | 由 @uni-helper/vite-plugin-uni-pages 依据文件生成 src/pages.json,pages.config.ts 定义全局样式 |
| 环境变量 | .env.development / .env.staging / .env.production 提供 VITE_API_BASE_URL(用户端 API 默认 http://127.0.0.1:8002)、VITE_APP_VERSION、VITE_ENV_NAME |
| 平台来源 | src/composables/constants/platform 解析平台来源,与服务端 X-Platform-Source 枚举(1微信小程序 2微信公众号 3iOS 4Android)一致 |
| 富文本与协议 | src/uni_modules/mp-html 渲染资讯正文与协议内容,页面位于 src/subpackages/agreement、src/subpackages/webview |
| 工程规范 | TypeScript 严格检查(vue-tsc)、ESLint 9(@uni-helper/eslint-config)、husky + commitlint(Conventional Commits)、standard-version 发版 |
适用场景
- 企业管理后台与内部运营平台
- SaaS 管理端与多业务控制台
- 内容、资讯、知识库与门户系统
- 商城、会员、营销和支付类业务
- 需要一套代码同时交付 H5、小程序与 App 的 C 端业务
- 需要沉淀自有插件库的开发团队
快速开始
- 初始化数据库:向空库导入
server_api/sql/0.0.1/full.sql,无需执行历史增量。 - 创建配置:
cp config.example.yaml config.yaml,修改 MySQL / Redis / JWT 配置(version必填)。 - 启动服务:
go run . service admin -c config.yaml # 管理端 API
go run . service api -c config.yaml # 用户端 API- 启动管理端:
cd admin_client
pnpm install
pnpm dev- 启动用户端(C 端):
cd user_client
pnpm install
pnpm dev # H5
pnpm dev:mp-weixin # 微信小程序(用微信开发者工具打开 dist/dev/mp-weixin)
pnpm dev:app # App(HBuilderX / 自定义运行基座)用户端通过 .env.* 的 VITE_API_BASE_URL 指向用户端 API(默认 http://127.0.0.1:8002),VITE_APP_VERSION 对应客户端版本号,两者缺失会在请求发起时直接抛错。
默认演示账号:admin / 123456(正式环境务必修改)。