实例介绍
DncZeus
前言
关于 DncZeus
DncZeus = Dnc Zeus
Dnc--.Net Core 的缩写;
Zeus--中文译为宙斯,是古希腊神话中的众神之王,奥林匹斯十二主神之首,统治宇宙万物的至高无上的主神(在古希腊神话中主神专指宙斯),人们常用“众神和人类的父亲”、“神王”来称呼他,是希腊神话诸神中最伟大的神。
DncZeus的愿景就是做一个.NET Core领域小白也能上手的简易、通用的后台权限管理模板系统基础框架。
项目简介
DncZeus是一个基于.NET 7 Vue.js 的前后端分离的通用后台管理系统框架。后端使用.NET 7 Entity Framework Core 构建,UI 则是基于Vue.js的iView。项目实现了前后端的动态权限管理和控制以及基于 JWT 的用户令牌认证机制,让前后端的交互更流畅。
注意: DncZeus并不是一个完整的业务系统,但她提供完成业务系统的绝大多数开发场景,让每一位.NET 开发者都能基于DncZeus快速开发出交互、体验以及功能具佳的.NET 7 单页应用程序(SPA)。
文档(Document)
关于 DncZeus
开发环境和工具
下载项目&安装依赖
DncZeus项目结构解析
新建你的页面
DncZeus框架用户动态权限数据流,鉴权、令牌、验证详解
DncZeus前后端分离项目打包/发布/部署及注意事项
在线体验(Demo)
超级管理员:administrator
管理员:admin
密码:111111
地址:https://dnczeus.codedefault.com
试试以不同用户名登录系统,可以体验不同角色的不同菜单权限。
由于是个人项目,资金有限,体验服是低配,请大家爱惜,轻戳,不胜感激!!!
国内码云镜像地址:https://gitee.com/rector/DncZeus
适合人群
由于 DncZeus 考虑到初级.NET 开发者都可以使用,所以后端项目未涉及过多架构和封装(代码逻辑一目了然),但为了你更好地熟悉和运用 DncZeus,你需要了解:
- .NET 7
- Vue.js
- iView
ASP.NET Core 的知识能确保你可以看懂和了解后端是如何实现和工作的,而 Vue.js 框架则是前端实现的基石,当然 iView 这个基于 Vue.js 的 UI 框架也是。
【实例截图】
文件清单
└── DncZeus-4063bea7fec3d9303b942cc073951a6141e121fe
├── DncZeus.Api
│ ├── appsettings.Development.json
│ ├── appsettings.json
│ ├── Auth
│ │ ├── AppAuthenticationSettings.cs
│ │ └── JwtBearerAuthenticationExtension.cs
│ ├── Configurations
│ │ ├── AppSettings.cs
│ │ └── MappingProfile.cs
│ ├── Controllers
│ │ ├── AccountController.cs
│ │ ├── Api
│ │ │ ├── V1
│ │ │ │ ├── MessageController.cs
│ │ │ │ └── Rbac
│ │ │ │ ├── IconController.cs
│ │ │ │ ├── MenuController.cs
│ │ │ │ ├── PermissionController.cs
│ │ │ │ ├── RoleController.cs
│ │ │ │ └── UserController.cs
│ │ │ └── V2
│ │ │ └── UserController.cs
│ │ ├── ErrorController.cs
│ │ ├── OauthController.cs
│ │ └── TestController.cs
│ ├── DncZeus.Api.csproj
│ ├── Entities
│ │ ├── AuditEntity.cs
│ │ ├── DncAuthDbContext.cs
│ │ ├── DncIcon.cs
│ │ ├── DncMenu.cs
│ │ ├── DncPermission.cs
│ │ ├── DncRole.cs
│ │ ├── DncRolePermissionMapping.cs
│ │ ├── DncUser.cs
│ │ ├── DncUserRoleMapping.cs
│ │ ├── Entity.cs
│ │ ├── Enums
│ │ │ └── CommonEnum.cs
│ │ └── QueryModels
│ │ ├── DncMenuQueryModel.cs
│ │ └── DncPermission
│ │ ├── DncPermissionWithAssignProperty.cs
│ │ └── DncPermissionWithMenu.cs
│ ├── Extensions
│ │ ├── AuthContext
│ │ │ ├── AuthContextService.cs
│ │ │ └── AuthContextUser.cs
│ │ ├── ConfigurationManager.cs
│ │ ├── CustomException
│ │ │ ├── CanAccess.cs
│ │ │ ├── CustomAuthorize.cs
│ │ │ ├── ErrorDetails.cs
│ │ │ ├── ExceptionMiddleware.cs
│ │ │ ├── ExceptionMiddlewareExtensions.cs
│ │ │ ├── HttpException.cs
│ │ │ ├── UnauthorizeException.cs
│ │ │ └── ValidateModelAttribute.cs
│ │ ├── DataAccess
│ │ │ ├── EntityFrameworkExtension.cs
│ │ │ ├── OrderByExtensions.cs
│ │ │ └── SqlParameterHelper.cs
│ │ ├── DataTableConvert.cs
│ │ ├── QuartzExtension.cs
│ │ ├── QueryableExtension.cs
│ │ └── ResponseModelFactory.cs
│ ├── log4net.config
│ ├── Migrations
│ │ ├── 20230228141911_InitNpgsql.cs
│ │ ├── 20230228141911_InitNpgsql.Designer.cs
│ │ └── DncZeusDbContextModelSnapshot.cs
│ ├── Models
│ │ ├── Menu
│ │ │ ├── MenuJsonModel.cs
│ │ │ └── Router.cs
│ │ └── Response
│ │ ├── ResponseModel.cs
│ │ └── ResponseResultModel.cs
│ ├── Program.cs
│ ├── Properties
│ │ └── launchSettings.json
│ ├── RequestPayload
│ │ ├── Rbac
│ │ │ ├── Icon
│ │ │ │ └── IconRequestPayload.cs
│ │ │ ├── Menu
│ │ │ │ └── MenuRequestPayload.cs
│ │ │ ├── Permission
│ │ │ │ └── PermissionRequestPayload.cs
│ │ │ ├── Role
│ │ │ │ ├── RoleAssignPermissionPayload.cs
│ │ │ │ └── RoleRequestPayload.cs
│ │ │ └── User
│ │ │ └── UserRequestPayload.cs
│ │ └── RequestPayload.cs
│ ├── Startup.cs
│ ├── Utils
│ │ ├── RandomHelper.cs
│ │ └── ResetDatabase.cs
│ ├── ViewModels
│ │ └── Rbac
│ │ ├── DncIcon
│ │ │ ├── IconCreateViewModel.cs
│ │ │ ├── IconImportViewModel.cs
│ │ │ └── IconJsonModel.cs
│ │ ├── DncMenu
│ │ │ ├── MenuCreateViewModel.cs
│ │ │ ├── MenuEditViewModel.cs
│ │ │ ├── MenuItem.cs
│ │ │ ├── MenuJsonModel.cs
│ │ │ └── MenuTree.cs
│ │ ├── DncPermission
│ │ │ ├── PermissionCreateViewModel.cs
│ │ │ ├── PermissionEditViewModel.cs
│ │ │ ├── PermissionJsonModel.cs
│ │ │ └── PermissionRoleTree.cs
│ │ ├── DncRole
│ │ │ ├── RoleCreateViewModel.cs
│ │ │ └── RoleJsonModel.cs
│ │ └── DncUser
│ │ ├── SaveUserRolesViewModel.cs
│ │ ├── UserCreateViewModel.cs
│ │ ├── UserEditViewModel.cs
│ │ └── UserJsonModel.cs
│ └── wwwroot
│ └── index.html
├── DncZeus.App
│ ├── cypress.json
│ ├── LICENSE
│ ├── package.json
│ ├── public
│ │ ├── favicon.ico
│ │ └── index.html
│ ├── README.md
│ ├── src
│ │ ├── api
│ │ │ ├── data.js
│ │ │ ├── rbac
│ │ │ │ ├── icon.js
│ │ │ │ ├── menu.js
│ │ │ │ ├── permission.js
│ │ │ │ ├── role.js
│ │ │ │ └── user.js
│ │ │ ├── routers.js
│ │ │ └── user.js
│ │ ├── App.vue
│ │ ├── assets
│ │ │ ├── icons
│ │ │ │ ├── iconfont.css
│ │ │ │ ├── iconfont.eot
│ │ │ │ ├── iconfont.svg
│ │ │ │ ├── iconfont.ttf
│ │ │ │ └── iconfont.woff
│ │ │ └── images
│ │ │ ├── error-page
│ │ │ │ ├── error-401.svg
│ │ │ │ ├── error-404.svg
│ │ │ │ └── error-500.svg
│ │ │ ├── login-bg.jpg
│ │ │ ├── logo.jpg
│ │ │ ├── logo-min.jpg
│ │ │ ├── qq-group1.jpg
│ │ │ └── talkingdata.png
│ │ ├── components
│ │ │ ├── charts
│ │ │ │ ├── bar.vue
│ │ │ │ ├── index.js
│ │ │ │ ├── pie.vue
│ │ │ │ └── theme.json
│ │ │ ├── common
│ │ │ │ ├── common.less
│ │ │ │ └── util.js
│ │ │ ├── common-icon
│ │ │ │ ├── common-icon.vue
│ │ │ │ └── index.js
│ │ │ ├── count-to
│ │ │ │ ├── count-to.vue
│ │ │ │ ├── index.js
│ │ │ │ └── index.less
│ │ │ ├── cropper
│ │ │ │ ├── index.js
│ │ │ │ ├── index.less
│ │ │ │ └── index.vue
│ │ │ ├── drag-list
│ │ │ │ ├── drag-list.vue
│ │ │ │ └── index.js
│ │ │ ├── editor
│ │ │ │ ├── editor.vue
│ │ │ │ └── index.js
│ │ │ ├── icons
│ │ │ │ ├── icons.vue
│ │ │ │ └── index.js
│ │ │ ├── info-card
│ │ │ │ ├── index.js
│ │ │ │ └── infor-card.vue
│ │ │ ├── login-form
│ │ │ │ ├── index.js
│ │ │ │ └── login-form.vue
│ │ │ ├── main
│ │ │ │ ├── components
│ │ │ │ │ ├── a-back-top
│ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ └── index.vue
│ │ │ │ │ ├── error-store
│ │ │ │ │ │ ├── error-store.vue
│ │ │ │ │ │ └── index.js
│ │ │ │ │ ├── fullscreen
│ │ │ │ │ │ ├── fullscreen.vue
│ │ │ │ │ │ └── index.js
│ │ │ │ │ ├── header-bar
│ │ │ │ │ │ ├── custom-bread-crumb
│ │ │ │ │ │ │ ├── custom-bread-crumb.less
│ │ │ │ │ │ │ ├── custom-bread-crumb.vue
│ │ │ │ │ │ │ └── index.js
│ │ │ │ │ │ ├── header-bar.less
│ │ │ │ │ │ ├── header-bar.vue
│ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ └── sider-trigger
│ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ ├── sider-trigger.less
│ │ │ │ │ │ └── sider-trigger.vue
│ │ │ │ │ ├── language
│ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ └── language.vue
│ │ │ │ │ ├── side-menu
│ │ │ │ │ │ ├── collapsed-menu.vue
│ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ ├── item-mixin.js
│ │ │ │ │ │ ├── mixin.js
│ │ │ │ │ │ ├── side-menu-item.vue
│ │ │ │ │ │ ├── side-menu.less
│ │ │ │ │ │ └── side-menu.vue
│ │ │ │ │ ├── tags-nav
│ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ ├── tags-nav.less
│ │ │ │ │ │ └── tags-nav.vue
│ │ │ │ │ └── user
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── user.less
│ │ │ │ │ └── user.vue
│ │ │ │ ├── index.js
│ │ │ │ ├── main.less
│ │ │ │ └── main.vue
│ │ │ ├── markdown
│ │ │ │ ├── index.js
│ │ │ │ └── markdown.vue
│ │ │ ├── parent-view
│ │ │ │ ├── index.js
│ │ │ │ └── parent-view.vue
│ │ │ ├── paste-editor
│ │ │ │ ├── index.js
│ │ │ │ ├── paste-editor.less
│ │ │ │ ├── paste-editor.vue
│ │ │ │ └── plugins
│ │ │ │ └── placeholder.js
│ │ │ ├── split-pane
│ │ │ │ ├── index.js
│ │ │ │ ├── index.less
│ │ │ │ ├── split.vue
│ │ │ │ └── trigger.vue
│ │ │ └── tables
│ │ │ ├── dz-table.vue
│ │ │ ├── edit.vue
│ │ │ ├── handle-btns.js
│ │ │ ├── index.js
│ │ │ ├── index.less
│ │ │ └── tables.vue
│ │ ├── config
│ │ │ └── index.js
│ │ ├── directive
│ │ │ ├── directives.js
│ │ │ ├── hasPermission.js
│ │ │ ├── index.js
│ │ │ └── module
│ │ │ ├── clipboard.js
│ │ │ └── draggable.js
│ │ ├── index.less
│ │ ├── libs
│ │ │ ├── api.request.js
│ │ │ ├── axios.js
│ │ │ ├── excel.js
│ │ │ ├── router-util.js
│ │ │ ├── tools.js
│ │ │ └── util.js
│ │ ├── locale
│ │ │ ├── index.js
│ │ │ └── lang
│ │ │ ├── en-US.js
│ │ │ ├── zh-CN.js
│ │ │ └── zh-TW.js
│ │ ├── main.js
│ │ ├── mock
│ │ │ ├── data.js
│ │ │ ├── index.js
│ │ │ ├── login.js
│ │ │ └── user.js
│ │ ├── plugin
│ │ │ ├── error-store
│ │ │ │ └── index.js
│ │ │ └── index.js
│ │ ├── router
│ │ │ ├── before-close.js
│ │ │ ├── index.js
│ │ │ ├── routers.js
│ │ │ └── static-routers.js
│ │ ├── store
│ │ │ ├── index.js
│ │ │ └── module
│ │ │ ├── app.js
│ │ │ └── user.js
│ │ └── view
│ │ ├── argu-page
│ │ │ ├── params.vue
│ │ │ └── query.vue
│ │ ├── demo
│ │ │ └── demo-page.vue
│ │ ├── error-page
│ │ │ ├── 401.vue
│ │ │ ├── 404.vue
│ │ │ ├── 500.vue
│ │ │ ├── back-btn-group.vue
│ │ │ ├── error-content.vue
│ │ │ └── error.less
│ │ ├── error-store
│ │ │ └── error-store.vue
│ │ ├── join-page.vue
│ │ ├── login
│ │ │ ├── login.less
│ │ │ └── login.vue
│ │ ├── multimenu
│ │ │ ├── level-2-1.vue
│ │ │ ├── level-2-2-1.vue
│ │ │ ├── level-2-2-2.vue
│ │ │ └── level-2-2.vue
│ │ ├── rbac
│ │ │ ├── icon.vue
│ │ │ ├── menu.vue
│ │ │ ├── permission.vue
│ │ │ ├── role-permission.vue
│ │ │ ├── role.vue
│ │ │ └── user.vue
│ │ ├── single-page
│ │ │ ├── error-logger.vue
│ │ │ ├── home
│ │ │ │ ├── example.vue
│ │ │ │ ├── home.vue
│ │ │ │ └── index.js
│ │ │ └── message
│ │ │ └── index.vue
│ │ └── tools-methods
│ │ └── tools-methods.vue
│ ├── tests
│ │ ├── e2e
│ │ │ ├── plugins
│ │ │ │ └── index.js
│ │ │ ├── specs
│ │ │ │ └── test.js
│ │ │ └── support
│ │ │ ├── commands.js
│ │ │ └── index.js
│ │ └── unit
│ │ └── HelloWorld.spec.js
│ ├── vue.config.js
│ └── yarn.lock
├── DncZeus.sln
├── Docs
│ ├── 00.faq.md
│ ├── 01.gett-started.md
│ ├── 02.environment-and-developement-tools.md
│ ├── 03.download-and-restore.md
│ ├── 04.solution-structure-introduction.md
│ ├── 05.create-page.md
│ └── 99.refs.md
├── LICENSE
├── README.md
└── Scripts
├── v1.0.0
│ ├── v1.0.0(SQL脚本).7z
│ ├── (非常重要)初次运行必看.txt
│ └── (非常重要)升级必看.txt
├── v2.0.0
│ ├── MySQL结构和示例数据脚本.zip
│ ├── PostgreSQL结构和示例数据脚本.zip
│ └── SQL Server结构和示例数据脚本.zip
└── (脚本必看,非常重要)v2.0.0.txt
110 directories, 276 files
相关软件
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论