[ABP开源项目]--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/
[ABP开源项目]--vue+vuex+vue-router+EF的权限管理系统的更多相关文章
- 新书上线:《Spring Boot+Spring Cloud+Vue+Element项目实战:手把手教你开发权限管理系统》,欢迎大家买回去垫椅子垫桌脚
新书上线 大家好,笔者的新书<Spring Boot+Spring Cloud+Vue+Element项目实战:手把手教你开发权限管理系统>已上线,此书内容充实.材质优良,乃家中必备垫桌脚 ...
- Vue开源项目使用探索
前言 本文记录一次使用Vue开源项目的过程. 寻找Vue开源项目 要使用Vue开源项目就必须先找到一个,我们去Github上搜索[后台],然后使用Vue分类进行检索,找到排名第一的开源框架进行下载—v ...
- .NET Core/.NET5/.NET6 开源项目汇总5:权限管理系统项目
系列目录 [已更新最新开发文章,点击查看详细] 企业管理系统一般包含后台管理UI.组织机构管理.权限管理.日志.数据访问.表单.工作流等常用必备功能.下面收集的几款优秀开源的管理系统,值得大家 ...
- ABP+AdminLTE+Bootstrap Table权限管理系统第一节--使用ASP.NET Boilerplate模板创建解决方案
"abp是ASP.NET Boilerplate简称,是一个用最佳实践和流行技术开发现代WEB应用程序的新起点,它旨在成为一个通用的WEB应用程序框架和项目模板" abp官方网站: ...
- ABP module-zero +AdminLTE+Bootstrap Table+jQuery权限管理系统第十三节--RBAC模式及ABP权限管理(附送福利)
ABP+AdminLTE+Bootstrap Table权限管理系统一期 Github:https://github.com/Jimmey-Jiang/ABP-ASP.NET-Boilerplate- ...
- SpringSecurity权限管理系统实战—一、项目简介和开发环境准备
目录 SpringSecurity权限管理系统实战-一.项目简介和开发环境准备 SpringSecurity权限管理系统实战-二.日志.接口文档等实现 SpringSecurity权限管理系统实战-三 ...
- Vue常用经典开源项目汇总参考-海量
Vue常用经典开源项目汇总参考-海量 Vue是什么? Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的 渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的 ...
- 简单vue项目脚手架(vue+webpack2.0+vuex+vue-router)
github地址 使用技术栈 webpack(^2.6.1) webpack-dev-server(^2.4.5) vue(^2.3.3) vuex(^2.3.1) vue-router(^2.5.3 ...
- vue vuex vue-rouert后台项目——权限路由(超详细简单版)
项目地址:vue-simple-template共三个角色:adan barbara carrie 密码全是:123456 adan 拥有 最高权限A 他可以看到 red , yellow 和 blu ...
随机推荐
- easyui框架--基础篇(一)-->数据表格datagrid(php与mysql交互)
前 言 php easyui框架--本篇学习主要是 easyui中的datagrid(数据表格)框架. 本篇学习主要通过讲解一段代码加GIF图片学习datagrid(数据表格)中的一些常用属 ...
- Spring源码:IOC原理解析(一)
版权声明:本文为博主原创文章,转载请注明出处,欢迎交流学习! IOC(Inversion of Control),即控制反转,意思是将对象的创建和依赖关系交给第三方容器处理,我们要用的时候告诉容器我们 ...
- 伙计,给我来一杯package.json!不加糖
前言:夜深了,我熬了一锅热气腾腾的package.json,给大家端上来,希望大家喜欢 json和JS对象的区别 package.json,顾名思义,它是一个json文件,而不能写入JS对象. 所以我 ...
- 修改MySQL数据库密码
在mysql数据库里面有一个默认安装的数据库是mysql,里面有一个user表.里面的字段Host是运行登录的ip地址,User 是登录的账号Password是密码. use mysql;//使用my ...
- win32SDK的hello,world程序
首次用Code::Blocks写Win32GUI程序,关于GDI+的引用摸索了半天.SDK写GUI比较累人,以后还是考虑Qt或者其他方式. 代码: /** *code by lichmama from ...
- AJAX跨域的常见方法
由于在工作中需要使用AJAX请求其他域名下的请求,但是会出现拒绝访问的情况,这是因为基于安全的考虑,AJAX只能访问本地的资源,而不能跨域访问.比如说你的网站域名是aaa.com,想要通过AJAX请求 ...
- gradle的安装,配置,构建,研究,初体验......(入职一周研究的第一个大知识点)
(1)Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具.它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置.更 ...
- DotNetCore跨平台~服务总线_事件总线的重新设计
理论闲话 之前在.netFramework平台用的好好的,可升级到.net core平台之后,由于不再需要二进制序列化,导致咱们的事件机制遇到了问题,之前大叔的事件一直是将处理程序序列化后进行存储的, ...
- mac下,mysql5.7.18连接出错,错误信息为:Access denied for user 'root'@'localhost' (using password: YES)
mac下,mysql5.7.18连接出错,错误信息为:Access denied for user 'root'@'localhost' (using password: YES)()里面的为shel ...
- Iterator、for..of,for...in和自定义遍历器**
Iterator.for..of,for...in和自定义遍历器 Iterator: var arr = [1,2,3,4,5]; var ite = arr[Symbol.iterator](); ...