Blazor 版 Bootstrap Admin 通用后台权限管理框架

前言

上一篇介绍过了前后台分离的 NET Core 通用权限管理系统 在这篇文章简要的介绍了 Bootstrap Admin 后台管理框架的一些功能。本篇文章带来的是微软最新出的 Blazor 版本的 NET Core 通用权限管理系统

Blazor 简介

至于 Blazor 是什么,Blazor 的优缺点小伙伴们可以自行在园子里搜索一下,相关介绍还是非常多的,我这里就不介绍 Blazor 是什么,有什么优缺点了。我想阐述的是我个人对 Blazor 技术的一些理解,Blazor 刚出来的时候国内外无数文章报道,但是有一个显著的特点,所有的文章,代码讲解等都是围绕微软的那个例子讲解的。换句话说,仅限于那个例子。离开那个例子真的自己做个功能讲解的一篇都没有,微软自己的文档也非常不健全,很多技术细节都是一笔带过。随着时间的推移,微软的文档也丰富起来了。根据微软的文档 Blazor 本人用 Blazor 技术将 Bootstrap Admin 后台管理框架重写了一版,通过自己编写组件系统的学习了一下 Blazor。通过自己的封装实现了一个小小的框架,下面详细的讲解一下。

网页布局设计

Bootstrap Admin 通用后台管理框架布局采用 AdminLTE 的经典布局
如图所示,区域被划分为四个区域,分别为:

  1. 头部 Header
    负责显示网站 Logo、小挂件、当前用户信息

  2. 侧边栏 Sidebar
    负责显示后台管理的菜单、提供导航功能

  3. 正文显示区域 Section
    负责显示各个功能模块的主题部分

  4. 页脚 Footer
    负责显示系统信息

显示区域设计

正文显示区域在后台管理框架中基本是字典表维护这种类似的单表维护,需要提供增、删、改、查基本操作

现在将显示区域分割成三个部分

  1. TabSet 区域
    用于显示多 Tab

  2. Query 区域
    用于显示查询条件

  3. Table 区域
    用户显示符合过滤条件的数据结果集合,这里提供分页、编辑、删除等操作

组件设计

<EditPage Id="dict" TItem="Bootstrap.Security.BootstrapDict" QueryModel="QueryModel" OnQuery="Query" OnAdd="Add" OnDelete="Delete" OnSave="Save">
    <QueryBody>
        <LgbInputText @bind-Value="@context.Category" maxlength="50" />
        <Select Items="QueryDefine" TItem="int" @bind-Value="@context.Define" />
        <LgbInputText @bind-Value="@context.Name" maxlength="50" />
    </QueryBody>
    <TableHeader>
        <LgbTableHeader TItem="string" @bind-Value="@context.Category"></LgbTableHeader>
        <LgbTableHeader TItem="string" @bind-Value="@context.Name"></LgbTableHeader>
        <LgbTableHeader TItem="string" @bind-Value="@context.Code"></LgbTableHeader>
        <LgbTableHeader TItem="int" @bind-Value="@context.Define"></LgbTableHeader>
    </TableHeader>
    <RowTemplate>
        <td>@context.Category</td>
        <td>@context.Name</td>
        <td>@context.Code</td>
        <td>@(DefineItems.FirstOrDefault(d => d.Value == context.Define.ToString())?.Text ?? "-")</td>
    </RowTemplate>
    <EditTemplate>
        <div class="row">
            <LgbInputText @bind-Value="@context.Category" placeholder="不可为空,50字以内" maxlength="50">
                <RequiredValidator />
                <StringLengthValidator Length="50" />
            </LgbInputText>
            <Select Items="DefineItems" TItem="int" @bind-Value="@context.Define"></Select>
            <LgbInputText @bind-Value="@context.Name" placeholder="不可为空,50字以内" maxlength="50">
                <RequiredValidator />
                <StringLengthValidator Length="50" />
            </LgbInputText>
            <LgbInputText @bind-Value="@context.Code" placeholder="不可为空,2000字以内" maxlength="2000">
                <RequiredValidator />
                <StringLengthValidator Length="2000" />
            </LgbInputText>
        </div>
    </EditTemplate>
</EditPage>
QueryBody 模板

本组件模板负责提供查询过滤条件点击查询按钮后数据显示区域呈现符合过滤条件的数据记录,本控件大量代码均已封装成通用,仅需提供过滤条件即可

<LgbInputText @bind-Value="@context.Category" maxlength="50" />
<Select Items="QueryDefine" TItem="int" @bind-Value="@context.Define" />
<LgbInputText @bind-Value="@context.Name" maxlength="50" />

通过设置 @bind-Value lambda 表达式自动生成一个 label 与 一个 input 控件,极大的提高了代码编写速度

TableHeader 模板

本组件模板负责生成数据呈现 Table 的表头,通过 TItem 设置绑定字段属性,通过设置 @bind-Value lambda 表达式自动生成汉字表头

<LgbTableHeader TItem="string" @bind-Value="@context.Category"></LgbTableHeader>
<LgbTableHeader TItem="string" @bind-Value="@context.Name"></LgbTableHeader>
<LgbTableHeader TItem="string" @bind-Value="@context.Code"></LgbTableHeader>
<LgbTableHeader TItem="int" @bind-Value="@context.Define"></LgbTableHeader>
RowTemplate 模板

本组件负责呈现符合过滤条件的数据记录,支持直接使用服务器端方法进行数据格式化

<td>@context.Category</td>
<td>@context.Name</td>
<td>@context.Code</td>
<td>@(DefineItems.FirstOrDefault(d => d.Value == context.Define.ToString())?.Text ?? "-")</td>
EditTemplate 模板

本组件负责数据的编辑功能,通过设置 @bind-Value 表达式实现双向绑定,直接调用服务器端保存方法即可

<div class="row">
    <LgbInputText @bind-Value="@context.Category" placeholder="不可为空,50字以内" maxlength="50">
        <RequiredValidator />
        <StringLengthValidator Length="50" />
    </LgbInputText>
    <Select Items="DefineItems" TItem="int" @bind-Value="@context.Define"></Select>
    <LgbInputText @bind-Value="@context.Name" placeholder="不可为空,50字以内" maxlength="50">
        <RequiredValidator />
        <StringLengthValidator Length="50" />
    </LgbInputText>
    <LgbInputText @bind-Value="@context.Code" placeholder="不可为空,2000字以内" maxlength="2000">
        <RequiredValidator />
        <StringLengthValidator Length="2000" />
    </LgbInputText>
</div>

通过简单的封装,实现了仅需要提供数据属性 @context.Name 即可,组件自动会通过 [DisplayName] 标签或者通过系统服务的字典表中匹配到中文文字,非常的方便

Blazor 多 Tab 版通用权限控制系统演示网站:ba.sdgxgz.com
码云开源项目地址:Bootstrap Admin

目前仅仅完成了 字典表维护 页面的改版。其余页面等等批量更改

原文链接:https://www.cnblogs.com/argozhang/p/12022766.html


.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
BootstrapAdmin是使用.NET Core + Bootstrap + PetaPoco + HTML 5 + jQuery构建的后台管理平台。可以用于所有的Web应用程序,目前本已经升级到NET CORE具备跨平台能力。数据库方面同时支持多种数据库,详细列表见后面数据库的详细列表,切换数据源仅需更改配置文件无需重启应用程序,配置简单灵活。UI前端使用流行的Bootstrap框架布局对移动设备的兼容性非常好,自适应目前市场几乎所有终端设备。本系统还具备单一后台支持多前台的特色,提供单点登录(SSO)的能力。 BootstrapAdmin主要功能: 1、通过配置与前台网站集成 2、构建前台系统分层级菜单 3、提供单一后台支持多前台应用配置 4、提供单点登录 5、集成系统认证授权模块 6、提供角色,部门,用户,菜单,前台应用程序授权 6.1、角色对用户授权 6.2、角色对菜单授权 6.3、角色对部门授权 6.4、角色对应用程序授权(多个前台应用公用一个后台权限管理系统) 6.5、部门对用户授权 7、提供字典表用于前台网站个性化配置 8、完全响应式布局(支持电脑、平板、手机等所有主流设备) 9、内置多数据源支持,配置简单立即生效无需重启 10、内置数据内存缓存机制,页面快速响应 11、内置数据 操作日志 与用户 登录日志 跟踪记录用户 登录主机地点 浏览器 操作系统 信息 优势: 1、前台系统不用编写登录、授权、认证模块;只负责编写业务模块即可 2、后台系统无需任何二次开发,直接发布即可使用 3、前台与后台系统分离,分别为不同的系统(域名可独立) 4、可扩展为多租户应用
Blazor Bootstrap是一个基于Blazor框架的开源项目,它提供了一套用于构建响应式Web应用程序的UI组件和样式。Blazor是一个使用C#语言在浏览器中构建交互式Web界面的框架,而Bootstrap是一个流行的前端开发框架,提供了丰富的CSS样式和JavaScript组件。 通过使用Blazor Bootstrap,你可以轻松地在Blazor应用程序中使用Bootstrap的样式和组件,从而快速构建漂亮且响应式的用户界面。Blazor Bootstrap提供了一系列的Blazor组件,如按钮、表单、导航栏、卡片等,这些组件可以直接在你的Blazor页面中使用,并且可以通过简单的C#代码进行配置和自定义。 Blazor Bootstrap的主要特点包括: 1. 集成Bootstrap样式:Blazor Bootstrap提供了与Bootstrap样式完全一致的UI组件,使得你可以轻松地创建具有现代外观和感觉的Web应用程序。 2. 响应式设计:Blazor Bootstrap的组件可以自动适应不同的屏幕尺寸和设备类型,确保你的应用程序在各种设备上都能良好地展示。 3. 简单易用:Blazor Bootstrap的组件具有简单的API和配置选项,使得你可以快速上手并进行定制。 4. 可扩展性:Blazor Bootstrap的组件可以与其他Blazor组件和库无缝集成,你可以根据自己的需求进行扩展和定制。 总结一下,Blazor Bootstrap是一个用于构建响应式Web应用程序的Blazor组件库,它集成了Bootstrap的样式和组件,使得你可以轻松地创建漂亮且响应式的用户界面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值