前端:https://github.com/arklnk/ark-admin-vuenext
后端:https://github.com/arklnk/ark-admin-zero
go-zero:https://go-zero.dev/cn
演示: http://arkadmin.si-yee.com
账号 密码 备注 demo 123456 演示账号
业务结构
工作台
工作台可以作为系统常用功能的入口,也可作为数据分析的展示面板,具体实现根据业务而定。
系统管理
菜单管理、角色管理、部门管理、岗位管理、职称管理、用户管理
配置管理
字典管理
日志管理
登录日志
个人中心
个人系列、修改密码
数据表结构
RBAC模型
用户(sys_user)
角色(sys_role)
权限(sys_perm_menu)
RBAC通过定义角色的权限,并对用户关联某个角色从而获得权限,实现了用户和权限的逻辑分离。ark-admin采用RBAC-1模型,使角色具有上下级的关系,这样上级角色就拥有了下级角色的所有权限,更利于角色权限的管理。
部门
部门(sys_dept)
用户(sys_user)
部门采用了树状结构设计,具有上下级关系。
部门关联用户,一个部门下可以有多个用户,一个用户只属于一个部门,属于一对多的关系。如果当前部门被禁用的话,则当前部门的下的用户无法登录系统。
岗位
岗位(sys_job)
用户(sys_user)
岗位关联用户,一个岗位下可以有多个用户,一个用户只拥有一个岗位,属于一对多的关系。如果当前岗位正在使用的话,则无法直接禁用当前岗位。
职称
职称(sys_profession)
用户(sys_user)
职称关联用户,一个职称下可以有多个用户,一个用户只拥有一个职称,属于一对多的关系。如果当前职称正在使用的话,则无法直接禁用当前职称。
日志
日志(sys_log)
用户(sys_user)
记录用户登录信息
字典
字典(sys_dictionary)
字典采用了树状结构设计,具有上下级关系。顶级数据属于字典集,一个字典集下可以拥有多个配置项。
配置项的类型:1文本 、2数字 、3数组 、4单选 、5多选 、6下拉 、7日期 、8时间 、9单图 、10多图 、11单文件 、12多文件
数据表列表
- sys_dept表(部门)↑
字段名称 | 字段类型 | 字段含义 |
---|---|---|
id | int(11) | 编号 |
parent_id | int(11) | 父级id |
name | varchar(50) | 部门简称 |
full_name | varchar(50) | 部门全称 |
unique_key | varchar(50) | 唯一值 |
type | tinyint(1) | 1=公司 2=子公司 3=部门 |
status | tinyint(1) | 0=禁用 1=开启 |
order_num | int(11) | 排序值 |
remark | varchar(200) | 备注 |
create_time | timestamp | 创建时间 |
update_time | timestamp | 更新时间 |
- sys_dictionary表(系统参数)↑
字段名称 | 字段类型 | 字段含义 |
---|---|---|
id | int(11) | 编号 |
parent_id | int(11) | 0=配置集 !0=父级id |
name | varchar(50) | 名称 |
type | tinyint(2) | 1文本 2数字 3数组 4单选 5多选 6下拉 7日期 8时间 9单图 10多图 11单文件 12多文件 |
unique_key | varchar(50) | 唯一值 |
value | varchar(2048) | 配置值 |
status | tinyint(1) | 0=禁用 1=开启 |
order_num | int(11) | 排序值 |
remark | varchar(200) | 备注 |
create_time | timestamp | 创建时间 |
update_time | timestamp | 更新时间 |
- sys_job表(工作岗位)↑
字段名称 | 字段类型 | 字段含义 |
---|---|---|
id | int(11) | 编号 |
name | varchar(50) | 岗位名称 |
status | tinyint(1) | 0=禁用 1=开启 |
order_num | int(11) | 排序值 |
create_time | timestamp | 创建时间 |
update_time | timestamp | 开启时间 |
- sys_log表(系统日志)↑
字段名称 | 字段类型 | 字段含义 |
---|---|---|
id | int(10) | 编号 |
user_id | int(11) | 操作账号 |
ip | varchar(100) | ip |
uri | varchar(200) | 请求路径 |
type | tinyint(1) | 1=登录日志 2=操作日志 |
request | varchar(2048) | 请求数据 |
status | tinyint(1) | 0=失败 1=成功 |
create_time | timestamp | 创建时间 |
update_time | timestamp | 更新时间 |
- sys_perm_menu表(权限&菜单)↑
字段名称 | 字段类型 | 字段含义 |
---|---|---|
id | int(11) | 编号 |
parent_id | int(11) | 父级id |
name | varchar(50) | 名称 |
router | varchar(200) | 路由 |
perms | varchar(200) | 权限 |
type | tinyint(1) | 0=目录 1=菜单 2=权限 |
icon | varchar(50) | 图标 |
order_num | int(11) | 排序值 |
view_path | varchar(200) | 页面路径 |
is_show | tinyint(1) | 0=隐藏 1=显示 |
active_router | varchar(200) | 当前激活的菜单 |
create_time | timestamp | 创建时间 |
update_time | timestamp | 更新时间 |
- sys_profession表(职称)↑
字段名称 | 字段类型 | 字段含义 |
---|---|---|
id | int(11) | 编号 |
name | varchar(50) | 职称 |
status | tinyint(1) | 0=禁用 1=开启 |
order_num | int(11) | 排序值 |
create_time | timestamp | 创建时间 |
update_time | timestamp | 更新时间 |
- sys_role表(角色)↑
字段名称 | 字段类型 | 字段含义 |
---|---|---|
id | int(10) | 编号 |
parent_id | int(11) | 父级id |
name | varchar(50) | 名称 |
unique_key | varchar(50) | 唯一标识 |
remark | varchar(200) | 备注 |
perm_menu_ids | json | 权限集 |
status | tinyint(1) | 0=禁用 1=开启 |
order_num | int(11) | 排序值 |
create_time | timestamp | 创建时间 |
update_time | timestamp | 更新时间 |
- sys_user表(用户)↑
字段名称 | 字段类型 | 字段含义 |
---|---|---|
id | int(10) | 编号 |
account | varchar(50) | 账号 |
password | char(32) | 密码 |
username | varchar(50) | 姓名 |
nickname | varchar(50) | 昵称 |
avatar | varchar(400) | 头像 |
gender | tinyint(1) | 0=保密 1=女 2=男 |
varchar(50) | 邮件 | |
mobile | char(11) | 手机号 |
profession_id | int(11) | 职称 |
job_id | int(11) | 岗位 |
dept_id | int(11) | 部门 |
role_ids | json | 角色集 |
status | tinyint(1) | 0=禁用 1=开启 |
order_num | int(11) | 排序值 |
remark | varchar(200) | 备注 |
create_time | timestamp | 创建时间 |
update_time | timestamp | 更新时间 |
项目结构
ark-admin
├─app
│ └─core
│ ├─cmd
│ │ └─api
│ │ ├─desc
│ │ ├─etc
│ │ └─internal
│ │ ├─config
│ │ ├─handler
│ │ ├─logic
│ │ │ ├─config
│ │ │ │ └─dict 配置字典
│ │ │ ├─log
│ │ │ │ └─login 登录日志
│ │ │ ├─sys
│ │ │ │ ├─dept 部门管理
│ │ │ │ ├─job 岗位管理
│ │ │ │ ├─menu 权限菜单
│ │ │ │ ├─profession 职称管理
│ │ │ │ ├─role 角色管理
│ │ │ │ └─user 用户管理
│ │ │ └─user 用户模块
│ │ ├─middleware 权限中间件
│ │ ├─svc
│ │ └─types
│ └─model model
├─common
│ ├─errorx 自定义错误
│ ├─response 自定义响应
│ └─utils 工具集
├─config 默认配置
├─data 运行数据
├─deploy 部署时所依赖的配置文件
├─dev
│ ├─goctl 自定义goctl模板
│ └─script
└─logs 运行日志