其实也不叫V2.0,只是沿用了懒得改,我的权限管理框架从开源版就搭建了,经历了FineUIMVC版和现在的FineUICore版,甚至我的前端框架 JQ-Bootstrap 也在移植底层代码。这个项目完善了我的代码生成器,FineUIMVC和FIneUICore的扩展,本次由FIneUIMVC版进行移植只花了一天时间,功能还没有全部移植完成,离正式发版使用还需要更新多次。

导言

其实也不叫V2.0,只是沿用了懒得改,我的权限管理框架从开源版就搭建了,经历了FineUIMVC版和现在的FineUICore版,甚至我的前端框架 JQ-Bootstrap 也在移植底层代码。这个项目完善了我的代码生成器,FineUIMVC和FIneUICore的扩展,本次由FIneUIMVC版进行移植只花了一天时间,功能还没有全部移植完成,离正式发版使用还需要更新多次。

1. 代码框架

想到哪说哪

本项目由FineUICore的空项目搭建,

Models 文件夹为数据库实体,大部分由代码生成器生成,所有Message继承基类MsBase 主要实现了 实体与 JSON 的相互转换,方便与view交互。除了数据库实体,还有 MsQuery.csMsReturned.cs ,MsQuery为查询实体,所有查询条件以此实体向最底层传输,查询后所有结果由MsReturned实体返回,这样传入和返回实现统一,方便修改维护。

Models
Models

BP 文件夹为数据库操作类(也是生成的)和一些基类,其中 SysFrameServiceExtensions 类实现的 IServiceCollection 作为数据库连接配置,来源为 appsettings.json ,其中 SQLTYPE 属性 1和2 用于切换 SQLServer 和 MySql,由 BPBase.cs 类做路由切换到对应的实现类。

BP
BP

Areas 文件夹就是项目的页面了,Controllers 和 Views 在此文件夹下,所有 Controllers 基于 SysPageController 类,用于拦截所有前端交互,菜单权限、按钮权限、日志、信息收集等,还没有写完。代码大量使用了 FineUICoreEx 辅助前后台交互,节省代码量,写代码想提高一个档次的可以仔细研究下。

Areas

2. 业务功能

首先我并不了解FineUI的AppBox 读者不要做比较。功能上还是实现了简单的权限管理,包括菜单和按钮权限,角色-人员关系,目前没有部门概念,也是逐一说一下。

功能管理Areas 的实体我定义为功能,是一个一个的页面,但不是菜单,与菜单解耦,在功能管理中,指定页面地址,页面中的按钮等。

功能管理

字典管理 用于管理系统配置 有 字典分类 和 字典明细 ,做一些开关,配置,状态其他等等。

字典管理

菜单管理 才是现实到页面左侧菜单,可以指定功能,功能连接到了页面,弹出页面 是|否,用于子页面按钮权限用,现在还没有例子,还可以编辑参数,作为 URL 参数传入页面,这样不同菜单指向同一功能页面也可以显示不同的东西,菜单管理是由用户定义,功能是由开发人员定义,这也是分开配置的一个原因。

菜单管理

用户 一切的开始,登陆后找到对应的角色,然后判断角色对应的权限。这里加入了默认的 超级管理员 (目前是admin用户),作为开发人员进入直接略过所有权限判断,可以查看和修改所以系统的配置,像字典有些是不能给客户开放的,需要开发人员修改,还有功能管理也不是使用者维护的。

用户

角色管理 为权限配置入口,主要有几点说明,维护角色只能维护登录人创建的角色,比如我是二级部门角色,是一级部门指定的,那我是看不见上一级的配置的,也无法修改,只能由上一级维护我。目前只能选定用户,权限配置中会以菜单列出所有的按钮,通过勾选进行按钮权限,目前按钮权限只有 显示 和 不显示 所以只有勾选的操作。

角色管理

其他功能还要完善,看心情吧,真想捐赠的就朝我要二维码了,强求也没用。