项目介绍
考虑到许多公司采用项目制工作方式,因此在不同项目上可能存在多个团队开发独立的代码库,但通用的基础设施却是相同的,这可能导致每个项目都需要编写相同的代码,并重复造轮子。更严重的是,每个项目都有自己独特的用户体系,导致用户在使用不同的服务时需要重新登录,这不仅会破坏用户的体验,也不利于项目的维护和数据的积累。因此 ONEAdmin 正是解决这些问题的一次尝试,它是一个基于 Abp Vnext 框架开发的,包含用户管理、角色管理、身份认证、字典管理、应用菜单管理、数据权限管理等模块。
ONEAdmin 项目目前还处于实验性阶段,存在不少不成熟或不合理的地方。如果你觉得这个项目对你有启发或帮助请给我一些反馈意见,如果你有兴趣参与进来或有任何问题也可以跟我联系。QQ群:655362692
DEMO预览
账号:root
密码:1q2w3E*
使用文档
前端
-
前端使用诺依框架开发
后端
-
后端使用 Abp vnext 框架开发
-
ABP 官方文档地址: https://docs.abp.io/en/abp/latest/
快速开始
一 运行 ONEAdmin 的基础服务
略...
二 创建自己的微服务
1.在 Domain 层引用 ONE.Abp.Data NuGet 包
2.在 Application 层引用 ONE.Abp.Pagination NuGet 包并且添加[DependsOn(typeof(AbpPaginationModule))]模块
3.在启动项目引用 ONE.Abp.Shared.Hosting.Microservice NuGet 包并且添加[DependsOn(typeof(AbpSharedHostingMicroserviceModule))]模块
使用枚举字典
提供两种方式
第一种 配置方式
Configure<AbpEnumDicOption>(option =>
{
option.Add<Sex>("性别");
});第二种 注册方式
public class ONEEnumDataItemRegisterion : EnumDataItemRegisterionBase
{
public override void Register(AbpEnumDicOption option)
{
option.Add<Sex>("性别");
}
}使用数据权限
在 Domain 层引用 ONE.Abp.DataPermission NuGet 包并且添加[DependsOn(typeof(AbpDataPermissionModule))]模块
配置规则
Configure<AbpRuleOptions>(option =>
{
option.DataTargetOption.Add<Customer>(needUpdateShadowProperty:true);
});这里是你可以配置的选项列表:
-
DataTargetOption:添加数据源对象
参数 needUpdateShadowProperty(默认值 false):是否需要更新影子属性,true 为更新
-
RuleExtraFieldManager:规则扩展管理,下面介绍
-
IsReleasedIfNoRulesAreMatched(默认值 true):在没有匹配任何规则下是否放行,true 为放行
使用规则 ToPagedResultForRuleAsync 方法
在 Application 层引用 ONE.Abp.DataPermission.Extension NuGet 包并且添加[DependsOn(typeof(AbpDataPermissionExtensionModule))]模块
await (await CustomerRepository.WithDetailsAsync()).ToPagedResultForRuleAsync<Customer, CustomerDto>(input);规则扩展
扩展用户规则属性 如扩展组织编码属性
Configure<AbpRuleOptions>(option =>
{
option.RuleExtraFieldManager.AddUserExtraProperty("OrganizationCode");
});扩展数据规则预定义值
首先定义 IOrganizationCode 接口,需要继承自 IShadowProperty 接口
Configure<AbpRuleOptions>(option =>
{
option.RuleExtraFieldManager.AddDataExtraProperty<IOrganizationCode>("OrganizationCode");
});ONEAdmin 已内置 OrganizationCode 属性,无需再自行扩展该属性
按需引用其他模块
字典模块 数据权限模块 ...
感谢
- Abp Vnext
- RuoYi-Cloud-Vue3