• 手把手开发Admin 系列一(设计篇)


    文档:https://docs.arklnk.com

    前端: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

    账号密码备注
    demo123456演示账号

    业务结构

    在这里插入图片描述

    工作台

    工作台可以作为系统常用功能的入口,也可作为数据分析的展示面板,具体实现根据业务而定。

    系统管理

    菜单管理、角色管理、部门管理、岗位管理、职称管理、用户管理

    配置管理

    字典管理

    日志管理

    登录日志

    个人中心

    个人系列、修改密码

    数据表结构

    在这里插入图片描述

    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表(部门)
    字段名称字段类型字段含义
    idint(11)编号
    parent_idint(11)父级id
    namevarchar(50)部门简称
    full_namevarchar(50)部门全称
    unique_keyvarchar(50)唯一值
    typetinyint(1)1=公司 2=子公司 3=部门
    statustinyint(1)0=禁用 1=开启
    order_numint(11)排序值
    remarkvarchar(200)备注
    create_timetimestamp创建时间
    update_timetimestamp更新时间

    • sys_dictionary表(系统参数)
    字段名称字段类型字段含义
    idint(11)编号
    parent_idint(11)0=配置集 !0=父级id
    namevarchar(50)名称
    typetinyint(2)1文本 2数字 3数组 4单选 5多选 6下拉 7日期 8时间 9单图 10多图 11单文件 12多文件
    unique_keyvarchar(50)唯一值
    valuevarchar(2048)配置值
    statustinyint(1)0=禁用 1=开启
    order_numint(11)排序值
    remarkvarchar(200)备注
    create_timetimestamp创建时间
    update_timetimestamp更新时间

    • sys_job表(工作岗位)
    字段名称字段类型字段含义
    idint(11)编号
    namevarchar(50)岗位名称
    statustinyint(1)0=禁用 1=开启
    order_numint(11)排序值
    create_timetimestamp创建时间
    update_timetimestamp开启时间

    • sys_log表(系统日志)
    字段名称字段类型字段含义
    idint(10)编号
    user_idint(11)操作账号
    ipvarchar(100)ip
    urivarchar(200)请求路径
    typetinyint(1)1=登录日志 2=操作日志
    requestvarchar(2048)请求数据
    statustinyint(1)0=失败 1=成功
    create_timetimestamp创建时间
    update_timetimestamp更新时间

    • sys_perm_menu表(权限&菜单)
    字段名称字段类型字段含义
    idint(11)编号
    parent_idint(11)父级id
    namevarchar(50)名称
    routervarchar(200)路由
    permsvarchar(200)权限
    typetinyint(1)0=目录 1=菜单 2=权限
    iconvarchar(50)图标
    order_numint(11)排序值
    view_pathvarchar(200)页面路径
    is_showtinyint(1)0=隐藏 1=显示
    active_routervarchar(200)当前激活的菜单
    create_timetimestamp创建时间
    update_timetimestamp更新时间

    • sys_profession表(职称)
    字段名称字段类型字段含义
    idint(11)编号
    namevarchar(50)职称
    statustinyint(1)0=禁用 1=开启
    order_numint(11)排序值
    create_timetimestamp创建时间
    update_timetimestamp更新时间

    • sys_role表(角色)
    字段名称字段类型字段含义
    idint(10)编号
    parent_idint(11)父级id
    namevarchar(50)名称
    unique_keyvarchar(50)唯一标识
    remarkvarchar(200)备注
    perm_menu_idsjson权限集
    statustinyint(1)0=禁用 1=开启
    order_numint(11)排序值
    create_timetimestamp创建时间
    update_timetimestamp更新时间

    • sys_user表(用户)
    字段名称字段类型字段含义
    idint(10)编号
    accountvarchar(50)账号
    passwordchar(32)密码
    usernamevarchar(50)姓名
    nicknamevarchar(50)昵称
    avatarvarchar(400)头像
    gendertinyint(1)0=保密 1=女 2=男
    emailvarchar(50)邮件
    mobilechar(11)手机号
    profession_idint(11)职称
    job_idint(11)岗位
    dept_idint(11)部门
    role_idsjson角色集
    statustinyint(1)0=禁用 1=开启
    order_numint(11)排序值
    remarkvarchar(200)备注
    create_timetimestamp创建时间
    update_timetimestamp更新时间

    项目结构

    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                                  运行日志
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
  • 相关阅读:
    windows在gem下安装jekyll的问题
    Spark或Hive数仓生命周期管理
    通关GO语言04 集合类型:如何正确使用 array、lice 和 map?
    脑梗死和脑出血有什么关系吗?
    探索设计之路-Photoshop【魔棒和快速选择工具】
    EasyCVR平台通过接口编辑通道出现报错“ID不能为空”,是什么原因?
    151. 关于 SAP UI5 XML 视图里控件事件处理函数名称中的 . (点号) 问题的讨论
    《视觉SLAM十四讲》-- 建图
    AWS认证SAA-C03每日一题
    [Machine Learning] 稀疏编码和矩阵分解
  • 原文地址:https://blog.csdn.net/lwqBrell/article/details/126621916