开源博客项目Blog .NET Core源码学习(27:App.Hosting项目结构分析-15)

  本文学习并分析App.Hosting项目中后台管理页面的角色管理页面。
  角色管理页面用于显示、检索、新建、编辑、删除角色数据同时支持按角色分配菜单权限,以便按角色控制后台管理页面的菜单访问权限。角色管理页面附带一新建及编辑页面,以支撑新建和编辑角色数据,同时还附带权限分配页面,以设置每个角色的菜单权限。整个页面使用了layui中的表格、表单等样式或模块,同时使用zTree组件,并未使用独立的js文件,而是直接在页面内嵌js代码,并调用SystemManage/RoleController的相关函数处理数据。

在这里插入图片描述
  角色管理页面的上半部分显示搜索框,下半部分以表格形式显示全部角色数据或者检索结果。
在这里插入图片描述
  内置的js代码主要用于设置表格样式及处理事件,同时处理搜索事件。调用layui的table.render函数设置表格样式,主要包括:
  1)用elem属性设置表格容器元素,同时用url设置调用SystemManage/RoleController的Index函数分页获取所有角色数据;
  2)用limit、limits、page属性设置数据分页显示;
  3)用toolbar属性设置头部工具栏,指定的元素id定义在_AminLayout.cshtml内,且根据不同的页面显示不同的工具栏内容,在本页面中工具栏中有添加按钮(按钮在系统管理->按钮管理中配置);
  4)用where属性设置调用Index时附加的其它参数;
  5)用cols属性设置表格显示列,其中第一列采用type:‘number’设置为序号列,其它列对应Index函数返回值的属性并以sort属性设置可排序性,角色状态列(源代码应该是忘了改列名称,对应字段EnableMark)采用templet属性以模版函数方式设置以表单中的开关样式显示属性值,最后一列用templet属性以模版选择器形式指定_AminLayout.cshtml文件中定义的按钮模版(按钮在系统管理->按钮管理中配置)。

在这里插入图片描述
  除上述设置之外,还定义了工具栏、操作按钮、排序事件、检索按钮的响应函数,排序和检索的处理逻辑类似,使用table.reload调用SystemManage/RoleController的Index函数获取并显示结果,其余的添加、编辑和删除按钮中,删除按钮的事件处理函数逻辑为调用SystemManage/RoleController的Delete函数删除数据,然后使用table.reload重载页面数据。
在这里插入图片描述

  调用form.on('switch(enabled)'设置表格中角色状态列开关事件的事件处理函数,其内部调用tools.submitConfrim函数提示用户是否在启用和禁用间切换,确定的话则调用SystemManage/RoleController的Enable函数更新标签状态,同时更新页面数据,取消的话则还原角色状态列之前的显示值。
在这里插入图片描述
  新建和编辑角色数据使用的同一页面,位置为SystemManage\Views\Role\Form.cshtml页面,使用layui的表单组件设置样式。如果是新建角色,则直接弹出页面填写信息,而编辑数据的话,主页面会通过url传递key参数,在编辑页面中调用SystemManage/RoleController的GetForm函数获取角色数据初始化编辑页面的对应元素数据。新建或编辑完成后,主页面的js中设置了回调函数,最终调用SystemManage/RoleController的Form函数新增或更新数据。
在这里插入图片描述
  角色管理页面支持按角色设置后台页面(页面管理中定义)及页面按钮(按钮管理中定义)的访问权限,权限设置页面位于为SystemManage\Views\Permission\Index.cshtml页面,使用layui的表单组件设置样式,同时采用ztree组件通过勾选方式显示并设置树形菜单数据。主页面会通过url传递key参数(角色标识),页面内置的js调用SystemManage/PermissionController的GetAuthorization函数获取角色权限数据初始化ztree组件。编辑完成后,主页面的js中设置了回调函数,最终调用SystemManage/PermissionController的Index函数更新数据。
在这里插入图片描述
参考文献:
[1]https://gitee.com/miss_you/Blog
[2]https://layui.dev/docs/2/
[3]https://www.treejs.cn/v3/main.php#_zTreeInfo

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/651342.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【MATLAB源码-第215期】基于matlab的8PSK调制CMA均衡和RLS-CMA均衡对比仿真,对比星座图和ISI。

操作环境: MATLAB 2022a 1、算法描述 CMA算法(恒模算法) CMA(Constant Modulus Algorithm,恒模算法)是一种自适应盲均衡算法,主要用于消除信道对信号的码间干扰(ISI)…

黑灰产攻防对抗——中睿天下代理秒拨IP防护研究

01网络攻击代理现状 随着攻击者防溯源和绕过防护意识的加强,攻击者进行网络攻击时常使用代理IP进行攻击,防止非法攻击时被追踪到身份信息。目前常见的代理方式有socks代理、HTTP/HTTPS代理、VPN、秒拨等。 对于企业来说,通过SOAR类平台可实现…

【爬虫软件】2024最新短视频评论区抓取工具

一、背景说明 1.0 采集目标 采集DOU音评论数据对引流截流和获客有很多好处。首先,通过分析DOU音评论数据,我们可以更好地了解用户对于产品或内容的喜好和需求,从而调整营销策略,吸引更多用户关注和点击。其次,评论数据…

Delft3D水动力-富营养化模型(水质模型)教程

原文链接:Delft3D水动力-富营养化模型(水质模型)教程https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247605459&idx5&sn105e94f09f0589172835ce8204519971&chksmfa821d34cdf59422b4f6c39b243373a23836d79841a1fcd19f9…

Java EE-Spring AOP 面向切面编程

Spring AOP https://www.cnblogs.com/joy99/p/10941543.html 超级详细版:Chapter 6. 使用Spring进行面向切面编程(AOP) AOP 原理 面向切面 ( Aspect Orient Programming ) 面向切面编程,是面向对象编程(OOP) 的一种补充。 在…

【海外app制作】海外短剧app系统搭建部署指南:多平台推广策略助力业务拓展,支付接口搭建部署。

海外短剧系统,顾名思义就是短剧系统海外版本。 教你三步完成一个海外短剧平台系统 首先我们看一下海外系统前端界面 首页就是我们展示剧的地方,可以根据地区不同,一键切换地区,比如中文切换为英文。那么界面语言就会变。可以设置…

字典推导式

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 使用字典推导式可以快速生成一个字典,它的表现形式和列表推导式类似。例如,我们可以使用下面的代码生成一个包含4个随机数的字…

DBeaver怎么将编辑栏内容放大

1、窗口–》编辑器–》放大 2、ctrl 3、页面结果展示

PS系统教学01

在前面几节内容基本介绍了PS的基本作用,简单的对PS中的某些基础功能进行介绍应用。 接下来我们进行系统的分享。 本次分享内容 基础的视图操作 接下来我们是对于PS工作区域的每个图标工具进行详细的分享 抓手工具缩放工具 这个图标是将工具栏由一列变成两列 一…

期权开户要多久的时间?能当天开好交易吗?

今天期权懂带你了解期权开户要多久的时间?能当天开好交易吗?期权,作为一种金融衍生品,它赋予了持有人在未来某个时间内购买或出售特定资产的权利,近年来在全球范围内得到了广泛的关注和应用。 期权开户要多久的时间&am…

Python操作MySQL数据库的工具--sqlalchemy

文章目录 一、pymysql和sqlalchemy的区别二、sqlalchemy的详细使用1.安装库2.核心思想3.整体思路4.sqlalchemy需要连接数据库5.使用步骤1.手动提前创建数据库2.使用代码创建数据表3.用代码操作数据表3.1 增加数据3.2 查询数据3.3 删除数据3.4 修改数据 一、pymysql和sqlalchemy…

服务高峰期gc,导致服务不可用

随着应用程序的复杂性和负载的不断增加,对JVM进行调优,也是保障系统稳定性的一个重要方向。 需要注意,调优并非首选方案,一般来说解决性能问题还是要从应用程序本身入手(业务日志,慢请求等)&am…

Python 机器学习 基础 之 模型评估与改进 【网格搜素】的简单说明

Python 机器学习 基础 之 模型评估与改进 【网格搜素】的简单说明 目录 Python 机器学习 基础 之 模型评估与改进 【网格搜素】的简单说明 一、简单介绍 二、网格搜索 1、简单网格搜索 2、参数过拟合的风险与验证集 3、带交叉验证的网格搜索 附录 一、参考文献 一、简单…

【Web】2024 京麒CTF ezjvav题解

目录 step 0 step 1 step 2 EXP1 EXP2 step 0 进来是一个登录框 admin/admin成功登录 访问./source jwt伪造 带着伪造的jwt访问./source,拿到题目源码jar包 step 1 pom依赖有spring、fj、rome 反序列化入口在./Jsrc路由 有两层waf,一个是明…

深入了解python的关键字“break”与循环退出策略

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、break关键字的基础理解与用途 二、通过案例理解break的应用 三、总结break在编程中的实…

Linux中ftp配置

一、ftp协议 1、端口 ftp默认使用20、21端口 20端口用于建立数据连接 21端口用于建立控制连接 2、ftp数据连接模式 主动模式:服务器主动发起数据连接 被动模式:服务器被动等待数据连接 二、ftp安装 yum install -y vsftpd #---下…

django-celery-beat自动调度异步任务

Celery是一个简单、灵活且可靠的分布式系统,专门用于处理大量消息的实时任务调度。它支持使用任务队列的方式在分布的机器、进程、线程上执行任务调度。Celery不仅支持异步任务(如发送邮件、文件上传、图像处理等耗时操作),还支持…

拥有这几个3dMax插件,科研绘图让我省时又省力!

DNAChain(一键生成DNA链) 3DMAX一键生成DNA链插件DNAChain,沿着线条路径一键生成DNA链条,你可以用它创建非常有趣的图案和效果。 3dMax不仅在影视动画、建筑室内、环境艺术等领域应用广泛,同样,它在科研绘图…

C++ AI 编程助手

这两年 AI 发展迅猛,作为开发人员,我们总是追求更快、更高效的工作方式,AI 的出现可以说改变了很多人的编程方式。 AI 对我们来说就是一个可靠的编程助手,给我们提供了实时的建议和解决方案,无论是快速修复错误、提升…

解决:java.util.concurrent.RejectedExecutionException

一 发现RejectedExecutionException错误 今天查看服务器的时候发现了一些java.util.concurrent.RejectedExecutionException错误,这个是由于线程池里的线程忙不过来报出的。如下图: 像这种 RejectedExecutionException 错误,表明在Java应…