权限管理UI
vue+vuex+vue-router+EF的权限管理系统
演示网站
首先说下这个项目吧。
如标题一样是基于VUE+.NET开发的框架,也是群友一直吼吼吼要一个vue版本的ABP框架。
我们先来看看首页吧:
还比较酷炫,提供下演示账号
演示地址:http://vue.yoyocms.com/
账号:demo
密码:bb123456
当然你也可以自己注册一个账号,来进行验证。
介绍
首先对不知道ABP框架的同学说明下啥是ABP框架:
ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称。
ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WEB应用程序的新起点,它旨在成为一个通用的WEB应用程序框架和项目模板。
框架
ABP是基于最新的ASP.NET CORE,ASP.NET MVC和Web API技术的应用程序框架。并使用流行的框架和库,它提供了便于使用的授权,依赖注入,验证,异常处理,本地化,日志记录,缓存等常用功能。
架构
ABP实现了多层架构(领域层,应用层,基础设施层和表示层),以及领域驱动设计(实体,存储库,领域服务,应用程序服务,DTO等)。还实现和提供了良好的基础设施来实现最佳实践,如依赖注入。
模板
ABP轻松地为您的项目创建启动模板。它默认包括最常用的框架和库。还允许您选择单页(Angularjs)或多页架构,EntityFramework或NHibernate作为ORM。访问官网,了解更多。
结构
本次选择的项目的结构为:
- .net framework 4.6
- VUE + VUEX+ VUE-ROUTER
这样的前后端分离的技术,但是分离的不是很纯粹,因为ABP设计的原因,如果要纯粹的前后端分离,在做授权的时候有点麻烦,也就没有采用token的方式进行授权。
在之前的文章 [ABP框架]动态web Api的拦截用法 中有说明如何使用token进行授权验证,目前使用的依然是cookie的方式进行验证。
但是不影响前后端开发方式。
看下登录页面:
功能实现
- 登录注册
- 多语言切换
- 消息管理
- 租户管理(多租户)
- 角色管理
- Session
- 授权(权限管理)
- 设置管理
- 多语言管理
- 审计日志
- 动态WebApi
等功能,希望你自己去体验。
如果你的.NET技能不扎实,或者想有提高,ABP是最好的学习框架。
前端技术栈说明:
前端使用的框架
1.vue
2.vuex
3.vue-router
4.jquery
UI库
1.element-ui
2.waves
3.bootstrap
4.BSBADMIN
项目结构
- build webpack构建的脚本
- config webpack构建的配置
- dist build之后的文件
- src 源代码目录
- assets 全局的资源文件
- common 公共样式 公共的方法
- language 语言包(暂时无用)
- utils 工具类
- components 全局的组件
- filters 过滤器
- mixins 存放sass的各类样式
- router 路由配置
- service 接口请求层
- store vuex
- vendor 存放第三方的库
- views 视图文件
- vuePlugin 自定义的vue插件
- static 静态文件,编译后的目录不变
以下是前端人员的原话,感谢 慧鑫666 抽出时间来完善vue的界面。
## 开发步骤
进行开发前, 我们假定你有
es6
,sass
,vue
,vue-router
,vuex
的技能基础。
建议读一读 尤雨溪大神的建议安装前端依赖
进入
Web项目
中的Assets目录
$ npm i
运行项目
记得先启动后台
$ npm run dev
webpack会用 express 启动一个8986端口的web服务器
部署
$ npm run build
该命令会将所有文件编译到
dist
目录下, 参考上面的项目结构图
1.添加页面
- 先到
src/views
创建一个模块的目录。
比如当前我添加了一个叫administration
的目录, 其中包含了所有系统管理的页面
每个模块里面也可能会包含components
和assets
目录, 表示其中的组件和资源都只属于当前模块 - 接下来添加一个
Index.vue
, 作为父路由的页面, 用来控制该模块下的所有页面。
需要注意 keep-alive 的作用 - 然后添加你需要的页面 比如叫
User.vue
如果需要获取数据, 请在methods
中添加名为fetchData
的方法, 在该方法中, 需要在获取完数据后调用abp.view.setContentLoading(false)
关闭内容区域的loading遮罩层。(可以参照User.vue)
2.添加路由
- 进入
src/router
目录,添加路由的模块文件夹,在该文件夹中添加名为index.js
的文件 - 然后向
src/router/index.js
中注册当前添加的路由信息
3.添加service
- 进入
src/services
目录, 添加对应接口请求的模块, 比如role相关的都放到roleService.js
中
该roleService.js
文件导出的对象和abp.services.yoyocms.role
是对应的。这样使用的好处是可以统一管理和扩展
以上就是vue版本的ABP 的基本情况了。
下载地址:
vue版本开源地址:https://github.com/yoyocms/YoYoCms.AbpProjectTemplate
vue版本演示地址:http://vue.yoyocms.com/
angularJS版本开源地址:https://github.com/ltm0203/YoYoCms
angularJS版本演示地址:http://www.yoyocms.com
如果你有好的建议或者bug反馈,请到github上提issue 。
同时我们也做了一个项目生成器,功能类似ABP官方的模板。
体验网址 是: http://www.yoyocms.com/
权限管理UI的更多相关文章
- 基于吉日嘎底层架构的通用权限管理Web端UI更新:参考DTcms后台界面
经一周的研究学习,看了国内的H+.HUI等,国外的PaperDashboardPro.Make.Metronic BootStrap等,最终选定用一个轻量的,适合中国人的,来自DTcms的后台管理UI ...
- Asp.Net Core 2.0 项目实战(3)NCMVC角色权限管理前端UI预览及下载
Asp.Net Core 2.0 项目实战(1) NCMVC开源下载了 Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架 Asp.Ne ...
- 【视频分享】Liger UI实战集智建筑project管理系统配商业代码(打印报表、角色式权限管理)
QQ 2059055336 课程讲师:集思博智 课程分类:.net 适合人群:中级 课时数量:23课时 用到技术:Liger UI框架.AJAX.JSON数据格式的序列化与反序列化.角色的交叉权限管理 ...
- SpringMVC+Shiro权限管理【转】
1.权限的简单描述 2.实例表结构及内容及POJO 3.Shiro-pom.xml 4.Shiro-web.xml 5.Shiro-MyShiro-权限认证,登录认证层 6.Shiro-applica ...
- 领域驱动设计实战—基于DDDLite的权限管理OpenAuth.net
在园子里面,搜索一下“权限管理”至少能得到上千条的有效记录.记得刚开始工作的时候,写个通用的权限系统一直是自己的一个梦想.中间因为工作忙(其实就是懒!)等原因,被无限期搁置了.最近想想,自己写东西时, ...
- 基于EasyUI Treegrid的权限管理资源列表
1. 前言 最近在开发系统权限管理相关的功能,主要包含用户管理,资源管理,角色管理,组类别管理等小的模块.之前的Web开发中也用过jQueryEasyUI插件,感觉这款插件简单易用,上手很快.以前用到 ...
- 尝试封装适用于权限管理的通用API
谈谈我对权限系统的简单理解 最近一段时间在研究权限系统,在园子里看到个很牛逼的开源的基于DDD-Lite的权限管理系统,并有幸加入了作者的QQ群,呵呵,受到了很大的影响.对于权限管理我有我自己的一些简 ...
- 用最基本的EF+MVC+JQ+AJAX+bootstrap实现权限管理的简单实例 之登陆和操作权限
先来一堆关于上篇文章的废话(不喜者点此隐藏) 今天把博客加了个小功能,就是点标题可以隐藏或展示相关内容,做法很傻,就是引用了bootstrap的两个css类和全部的js文件,其实这样的小功能完全应该自 ...
- ASP.NET 开发必备知识点(2):那些年追过的ASP.NET权限管理
一.前言 在前一篇文章已经为大家介绍了OWIN和Katana,有了对他们的了解之后,才能更好地去学习Asp.net Identity,因为Asp.net Identity的实现集成了Owin.其实在A ...
随机推荐
- 【BZOJ1078】[SCOI2008]斜堆(性质题)
[BZOJ1078][SCOI2008]斜堆(性质题) 题面 BZOJ 洛谷 题解 考虑一下这道题目的性质吧.思考一下最后插入进来的数是什么样子的.首先因为它是最后插入进来的,所以一定是比某个数小,然 ...
- 为harbor部署swagger-ui
有了swagger,所有REST API就一览无余了. Harbor官方已经准备好了部署脚本,部署起来其实特别简单,这里仅作记录. 1.下载部署脚本和swagger文件到本地harbor目录. # c ...
- P3861 8月月赛A
https://www.luogu.org/problemnew/show/P3861 排序:乘数保持单调递增 dp+hash(map解决) #include <cstdio> #incl ...
- (转)Python中的模块循环导入问题
本文转自: https://wiki.woodpecker.org.cn/moin/MiscItems/2008-11-25 问题 cleven <shenglipang@gmail.com&g ...
- Sql数据库不能频繁连接
这个问题怎么说呢,我频繁的读一个json文件,所以就频繁的去连接了数据库.所以导致了数据库后来就不工作了(罢工?O(∩_∩)O哈哈~) 解决办法是加一个判断语句,如果是空的就连接,否则就别一直连接了. ...
- TradingView学习记录
官网:https://cn.tradingview.com 申请图表库 用本地服务器打开 二:文件目录 三:基础概念 3.1 UDF:通用数据饲料(Universal Data Feed) ...
- 【跟我学apache-commons】【四】commons-io的使用
commons-io是一款处理io流的工具,封装了很多处理io流和文件的方法,可以大大简化我们处理io流和操作文件的代码.从common-io的官方使用文档可以看出,它主要分为工具类.尾端类.行迭代器 ...
- HDU 3511 圆扫描线
找最深的圆,输出层数 类似POJ 2932的做法 圆扫描线即可.这里要记录各个圆的层数,所以多加一个维护编号的就行了. /** @Date : 2017-10-18 18:16:52 * @FileN ...
- Extending Markov to Hidden Markov
Extending Markov to Hidden Markov a tutorial on hidden markov models, Hidden Markov Models, hidden m ...
- .net中的一般处理程序实例
最近在学习一般处理程序,也学习了一些jQuery的异步操作,于是就想着亲手做一个小的登陆,锻炼一下自己. 1.首先新建了一个项目LoginDemo,在此基础上又添加了一个一般处理程序BackLogin ...