Smart-API 工单系统是基于 Go 语言开发的后台管理系统,前后端分离,采用 Gin 框架作为后端,Vue.js 和 Element UI 作为前端。系统旨在实现对工单管理的高效处理,支持任务分配、执行监控、实时更新等功能。
简体中文|English
基于Gin + Vue + Element UI OR Arco Design OR Ant Design的前后端分离权限管理系统,系统初始化极度简单,只需要配置文件中,修改数据库连接,系统支持多指令操作,迁移指令可以让初始化数据库信息变得更简单,服务指令可以很简单的启动api服务
默认登录账户:
admin/123456
遵循 RESTful API 设计规范
基于 GIN WEB API 框架,提供了丰富的中间件支持(用户认证、跨域、访问日志、追踪ID等)
基于Casbin的 RBAC 访问控制模型
JWT 认证
支持 Swagger 文档(基于swaggo)
基于 GORM 的数据库存储,可扩展多种类型数据库
配置文件简单的模型映射,快速能够得到想要的配置
代码生成工具
表单构建工具
多指令模式
多租户的支持
TODO: 单元测试
克隆项目:
git clone https://github.com/sunwenbo/smart-api.git
cd smart-api
安装依赖:
go mod tidy
配置数据库连接信息:
cp config/settings.full.yml config/settings.yml
⚠️:修改 config/settings.yml 中的数据库连接信息确保数据库配置正确,在执行初始化数据库前要先手动创建数据库。
配置文件中修改数据库信息
注意: settings.database 下对应的配置数据
确认log路径
编译
go build -o smart-api main.go
初始化数据库:
# 首次配置需要初始化数据库资源信息
# macOS or linux 下使用
$ ./smart-api migrate -c config/settings.yml
# ⚠️注意:windows 下使用
$ smart-api.exe migrate -c config/settings.yml
# 启动项目,也可以用IDE进行调试
# macOS or linux 下使用
$ ./smart-api server -c config/settings.yml
# ⚠️注意:windows 下使用
$ smart-api.exe server -c config/settings.yml
sys_api 表的数据如何添加
# 在项目启动时,使用`-a true` 系统会自动添加缺少的接口数据
./smart-api server -c config/settings.yml -a true
更新Swagger文档生成
go generate
启动服务:
./smart-api server -c config/settings.yml
本地开发数据库迁移
生成迁移文件 go run main.go migrate -g true -c config/settings.yml 生成迁移文件--系统相关 go run main.go migrate -g true -a true -c config/settings.yml 修改完迁移文件后,执行下面命令开始变更 go run main.go migrate -c config/settings.yml 接口管理生成 go run main.go server -c config/settings.yml -a false
常用命令示例 go run main.go migrate -h # 帮助 go run main.go migrate -g true -a true -c config/settings.yml # 生成smart-api系统预置 迁移文件 go run main.go migrate -g true -c config/settings.yml # 生成 自定义功能 迁移文件 自己开发新功能用这个功能 go run main.go migrate -c config/settings.yml # 执行迁移命令 迁移 未迁移过的 文件 参数说明: -h # 帮助 -c # 指定配置文件 默认使用 -c config/settings.yml 配置文件 -a # 生成 系统预置 迁移文 生成到` cmd/migrate/migration/version ` go-admin系统迁移文件在这目录里操作,最好不要动,方便同步升级 -g # 生成迁移文 生成到` cmd/migrate/migration/version-local ` 自己开发新功能的迁移文件在这目录里操作
# windows
env GOOS=windows GOARCH=amd64 go build main.go
# or
# linux
env GOOS=linux GOARCH=amd64 go build main.go
克隆前端项目:
git clone https://github.com/sunwenbo/smart-ui.git
cd smart-ui
安装依赖:
npm config set registry https://registry.npmmirror.com/
npm config get registry
npm install --legacy-peer-deps
启动开发服务器:
npm run dev
访问地址:
打开浏览器并访问 http://localhost:9527 查看前端界面。
非本地部署时要先初始化数据库的数据,可以使用本地编译后的二进制文件执行如下命令
⚠️⚠️⚠️要修改settings.yml 文件中的数据库信息,同样需要手动创建smart-api库
./smart-api migrate -c config/settings.yml
本地如果是arm架构,但是想构建为x86架构的镜像,mac为例
# 构建镜像
docker buildx build --platform linux/amd64 -t registry.cn-beijing.aliyuncs.com/sunwenbo/smart-api:latest . --load
# 推向镜像仓库
docker push registry.cn-beijing.aliyuncs.com/sunwenbo/smart-api:latest
# 启动后端服务,挂载settings.yml文件, 我将配置文件放在了"/data/config/" 目录下
docker run -itd \
-p 8000:8000 \
-v /data/config/:/home/service/config/ \
--name smart-api \
registry.cn-beijing.aliyuncs.com/sunwenbo/smart-api:latest
# 构建镜像
docker buildx build --platform linux/amd64 -t registry.cn-beijing.aliyuncs.com/sunwenbo/smart-ui:latest . --load
# 推向镜像仓库
docker push registry.cn-beijing.aliyuncs.com/sunwenbo/smart-ui:latest
# 启动前端服务,挂载nginx的配置文件
docker run -itd \
-p 80:80 \
-v /data/default.conf:/etc/nginx/conf.d/default.conf \
--name smart-ui \
registry.cn-beijing.aliyuncs.com/sunwenbo/smart-ui:latest

初始化数据方法如上☝️
cd smart-api/scripts/
bash install.sh
cd smart-ui/scripts/
执行部署前要修改yaml中的配置,例如ingress
bash install.sh
kubect get cm -n sre kubect get pod -n sre kubect get ingress -n sre
admin 登录系统。[数据统计]
[工单申请]
[自定义流程]
[自定义模板]
[工单管理]
[任务类型]



欢迎社区开发者贡献代码或提供意见。如果你想参与本项目,请参考以下步骤:
Fork 本仓库:点击右上角的 Fork 按钮将项目复制到你的 GitHub 账户。
克隆你的 Fork:在终端中运行以下命令,将项目克隆到本地:
git clone https://github.com/your-username/smart-api-backend.git
创建一个分支:在克隆的项目目录下,创建一个新分支用于开发:
git checkout -b feature-branch-name
提交你的改动:进行开发后,使用 git add 和 git commit 提交你的代码改动。
git add .
git commit -m "描述你的改动"
发起 Pull Request:在 GitHub 上提交 Pull Request,请确保你的代码通过了所有测试并遵循代码风格。
数据库配置存储在 config/settings.yml 中,你可以根据自己的需求修改其中的 database 配置项。
在 api 目录下创建新的处理逻辑,并在 router 中注册该路由。服务层逻辑应放置在 service 目录中。
在任务执行时,系统通过 WebSocket 向前端推送任务状态更新信息。前端使用 WebSocket 接口接收并动态展示任务执行日志。
Smart-API 工单系统使用 MIT 许可证 开源,欢迎个人和企业免费使用与修改。
![]() | ![]() |
| 个人微信 | 微信群🔥🔥🔥 |
感谢以下开发者对本项目的贡献:
如果你有任何问题或建议,请通过 issue 提交。
smart-api 项目一直以来都是在 JetBrains 公司旗下的 GoLand 集成开发环境中进行开发,基于 free JetBrains Open Source license(s) 正版免费授权,在此表达我的谢意。
如果你觉得这个项目帮助到了你,你可以帮作者买一杯☕️表示鼓励 :
Copyright (c) 2022 sunwenbo