$ show ccnetcore/Yi.Abp.Admin
Yi.Abp.Admin is a full-stack enterprise administration framework built on ASP.NET Core (ABP vNext framework) with multiple Vue 3 frontends (Pure Admin, Vben5, RuoYi, and a BBS variant). It provides RBAC, multi-tenancy, audit logging, setting management, code generation, and OAuth support (QQ, Gitee). The backend follows Domain-Driven Design with modules like Yi.Framework.Rbac and Yi.Framework.TenantManagement, using SqlSugar ORM as a replacement for ABP's default EF Core. The frontends feature dynamic route generation from backend permissions, reusable UI components (dialog, cropper, table bar, form API), and state management with Pinia. The monorepo also includes a CLI tool for scaffolding new modules. Despite some duplication across frontends and ABP customizations that may cause upgrade friction, the codebase demonstrates solid engineering with well-separated concerns and several independently usable components.
The LLM identified 5 files worth highlighting for reuse:
Generic CRUD application service base class providing Create, Update, Delete, Get, GetList, ExportExcel operations with built-in validation hooks (CheckCreateInputDtoAsync, CheckUpdateInputDtoAsync), caching via YiCacheCrudAppService variant, and automatic Mapster mapping. Can be extracted for any ABP-based project.
Custom attribute for declarative operation logging on service methods. When used with the accompanying OperLogGlobalAttribute interceptor, it automatically records method invocation details (module, method name, description, etc.) into the operation log table. Isolated pattern that can be reused in any ASP.NET Core project with ABP-like interception.
Highly configurable dialog component with customizable header/content/footer via slots, programmatic open/close, button actions with popconfirm, full-screen toggle, and drag. Uses a functional API (useDialog) for imperative usage. Extracted from Pure Admin, it can be used in any Vue 3 project with Element Plus.
Set of pure functions for tree data manipulation: filterTree, mapTree, traverseTreeValues, handleTree (list to tree), findPath, etc. No external dependencies, generic TypeScript, easily reusable for any hierarchical data.
Class-based form state management providing methods like setValues, validate, submit, updateSchema, merge, with event-driven callbacks. Integrates with vee-validate or similar. Decoupled from UI library, can be extracted as a generic form controller.