SqlSugar框架之WPF应用端功能介绍
WPF应用端是我们《SqlSugar开发框架》多端界面中的一部分,和Winform前端框架、Vue3+ElementPlus前端、UniApp+Thorn移动端,组成一个完整的整体框架,后端服务是基于SqlSugar的基础ORM的.netcore框架,提供Web API服务供各个前端使用,底层支持多种数据库,包括SqlServer、Oracle、Mysql、PostgreSQL、SQLite等数据库,通过配置即可切换为其他数据库。本篇随笔介绍SqlSugar开发框架之WPF应用端功能。WPF应用端开发基于CommunityToolkit.Mvvm 、lepoco/wpfui 、HandyControl几个基础框架的整合,系统功能参考SqlSugar开发框架的Winform前端界面。
1、登录界面
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023150612288-1205074359.png
提供多套登陆界面供选择
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023150723207-190698118.png
系统登录后,可以在菜单功能上进行用户密码的修改,修改密码界面如下所示。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023161803712-540370801.png
2、用户管理
系统登录成功后,进入主框架界面,UI框架包含左侧的菜单导航,右侧内容列表页面,其中列表页面包含一些树形类别,查询条件、列表展示及分页处理,而列表信息可以进行查询、新增、导入导出、编辑、删除/批量删除等操作。
用户信息,除了可以通过常规的条件查询外,还可以根据部门、角色进行快速的查询定位。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023151036483-210081765.png
新增用户信息界面如下所示。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023151519792-400026644.png
编辑用户信息界面如下所示。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023151615239-2129648226.png
其中可操作功能是控制用户可访问的那些权限功能点,如下所示。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023151707347-80978241.png
其中可访问菜单,是该用户所属角色包含的菜单项目。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023151754701-248042370.png
导出到Excel,首先需要弹出选择目录的对话框进行选取目录,然后用于生成Excel的文件,如下界面所示。
https://img2023.cnblogs.com/blog/8867/202309/8867-20230918103941189-1976987535.png
导出Excel的内容如下界面所示。另外导出文档的内容,我们可以用于导入的数据模板的。
https://img2023.cnblogs.com/blog/8867/202309/8867-20230918111037363-1506796042.png
导出PDF的文档效果如下所示。
https://img2023.cnblogs.com/blog/8867/202309/8867-20230918110645292-1659027472.png
Excel数据的导入,可以降低批量处理数据的难度和繁琐的界面一个个录入,这种是一种常见的操作方式,我们主要提供固定的模板给客户下载录入数据,然后提交进行批量的导入即可。
导入的界面处理,我们这里涉及一个通用的导入界面(和WInform端的界面类似),这样我们每个不同的业务导入处理都可以重用,只需要设置一些不同的属性,以及一些事件的处理即可,如下是通用的界面效果。
https://img2023.cnblogs.com/blog/8867/202309/8867-20230918112910516-722376221.png
3、机构管理
机构管理,管理系统用户的公司、部门等机构信息,机构是一个树形列表,同时也提供左侧树形快速导航。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023152113774-729513548.png
新增机构如下界面所示。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023152321353-2005555.png
编辑机构信息如下界面所示。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023152401344-1566974634.png
其中可以对机构包含的用户,进行选择处理,选择用户界面如下所示。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023152529729-1284568047.png
3、角色管理
角色管理界面如下所示。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023152757876-61581733.png
其中新增角色界面如下所示。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023152851869-78195479.png
编辑角色界面如下所示。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023152943154-1515840463.png
其中角色可以选择包含用户、包含机构,这些选择的用户或者机构同时具备了角色的控制功能和菜单。用户选择前面已经介绍,机构选择界面如下所示。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023153540283-1979090543.png
其中可以操作功能,可以设置该角色包含哪些功能点,这些功能点,可以绑定按钮等界面元素的启用或禁用状态。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023153737031-957390824.png
可以访问数据,用来控制用户角色的数据权限的集合。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023153818364-319710368.png
可以访问菜单控制用户角色能够显示的菜单信息。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023153859747-383660886.png
4、功能管理
功能管理列表界面如下所示。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023154647189-2098608335.png
新建功能点的界面如下所示。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023154722851-239297936.png
为了快速添加模块组的功能点,我们可以通过批量添加方式创建功能,如下界面所示。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023155257212-273343754.png
5、菜单管理
系统动态菜单由菜单管理界面统一维护,然后分配给对应的角色使用的。菜单列表界面如下所示。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023155620130-405942374.png
新增菜单界面如下所示。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023155813603-612182754.png
菜单图标可以通过选择设置系统图标,选择图标的界面如下所示。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023155922017-1076087126.png
菜单编辑界面如下所示,其中WPF窗体类型,就是我们窗体的命名空间+列表界面类名称,如:WHC.SugarProject.WpfUI.Views.Pages.CustomerListPage。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023121837731-1958891595.png
6、系统类型管理
系统类型是区分一个前端菜单、功能点的重要标识,因此需要维护一个独立的系统类型信息,列表界面如下所示。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023160049678-2052046459.png
新增系统类型界面如下所示。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023160132203-794843955.png
编辑界面类似,不在重复。
7、系统黑白名单处理
系统黑白名单控制系统用户登录的IP地址段,如果设置黑名单,则会禁止相应的IP端用户进行登录。列表界面如下所示。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023160347673-1307646749.png
新增或者编辑界面如下所示。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023160423583-696051317.png
8、用户登录日志
系统登录日志记录用户账号的登录记录信息,如下界面所示。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023160522247-1689141146.png
单击可以查看详细的登录日志信息。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023160552143-484581653.png
9、用户操作日志
设置用户的操作信息处理后,系统可以记录用户的操作日志信息,如下界面列表所示。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023160643041-1311405569.png
单击可以查看详细的操作信息。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023160727899-826514532.png
10、系统字典管理
系统字典统一管理系统各个终端中用到一些列表参考信息,一般用于下拉列表的数据绑定操作。系统字典管理包括字典大类和字典项目管理,如下界面所示。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023160943451-614790801.png
可以在树形类表右键弹出右键菜单进行操作字典大类,如下所示。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023161032701-796225726.png
新增或者编辑字典大类如下界面所示。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023161113244-1636407982.png
添加字典项目如下界面所示。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023161151151-755234782.png
初始化字典项目的时候,也可以一次性进行批量录入处理,如下界面所示。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023161304918-952699236.png
11、系统参数管理
系统参数管理包括参数目录(大类)管理、参数项目管理,界面如下所示。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023161425284-1532217083.png
在参数目录中,可以右键创建新的参数目录,如下界面所示。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023161508157-2064556014.png
创建参数目录如下界面所示。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023161544026-1401365390.png
系统参数项目管理相关的列表信息供系统使用,新增或者编辑参数信息界面如下所示。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023161627300-1243781378.png
12、测试功能页面
为了方便学习和使用一些系统界面或者界面样式,以及研究UI的设计,我们收集一些比较美观的WPF界面设计供参考。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023161939920-861915718.png
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023162016914-1176220543.png
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023162113593-1924420013.png
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023162146287-1061416183.png
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023162216599-1658475762.png https://img2023.cnblogs.com/blog/8867/202310/8867-20231023162247159-678704110.png
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023162341097-1237887794.png
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023162411740-995995850.png
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023162539530-62400862.png
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023162618290-523605848.png
直接编辑DataGrid界面例子
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023162727758-936199990.png
简单客户信息界面
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023162809721-176216343.png
13、代码生成工具快速生成WPF前端界面
在经过基于SqlSugar框架的WPF应用端系统界面及模块的不断优化和重构后,视图界面及视图模型等代码已趋稳定,因此完成前面的介绍后,现在开始统一基于代码生成工具Database2Sharp进行WPF应用端界面代码的快速生成了,代码除了和WPF应用端的基类保持一致处理外,并添加一些注释代码,整合使用一些自定义的控件,以便更好的展示和简化代码处理。
WPF应用端的基础接口,和Winform端、Vue3+ElementPlus前端一样,都是调用SqlSugar开发框架中的相关业务接口,如果对我们的SqlSugar框架还有疑问,可以参考我的随笔集《SqlSugar开发框架》进行系列的学习或了解。
要了解项目的快速生成,需要从我们官网下载《代码生成工具Database2Sharp》工具后进行使用,该工具支持多种框架的项目开发,我们这里以SqlSugar开发框架中的【SqlSugar框架WPF界面生成】的项目生成为例介绍。
我们首先需要使用PowerDesigner或者同类工具进行表的建模,如下所示。
https://img2018.cnblogs.com/blog/8867/201811/8867-20181128101848338-1768279373.png
创建好相关的客户信息表后,先展开数据库列表,并从数据库列表右键选择对应的【SqlSugar框架WPF界面生成】或者在工具栏中快速选择操作,如下界面所示。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023113023614-1679861001.png
或者从工具栏中选择对应的功能入口。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023113133640-1919885213.png
在弹出的对话框中选择对应的表进行框架代码和【WPF界面生成】,从数据库列表中选择表进行测试生成,如下界面所示。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023115057910-1048412402.png
我们可以从上面的列表中,定义查询条件、列表显示的内容,以及编辑界面所需要编辑显示的内容等信息。然后一键生成即可生成相应的WPF应用端的视图模型,以及视图界面和后台代码。
我们以简单的T_Customer表为例,展示生成的界面代码,生成后,会在目录中创建ViewModels和Views/Pages目录,其中包含视图模型和视图界面代码及后台代码。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023115523672-755458744.png
视图模型包含列表的视图模型和编辑界面的视图模型,如下两个文件所示。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023115638974-815525654.png
由于继承了相关的基类信息,我们基本上有这些操作就可以完成常规的CRUD以及树形列表的展示处理了,如果需要更多的操作,可以扩展相关的代码,同样界面代码和界面后台代码配套,统一生成相关的查询、列表、分页、导入导入、编辑显示等处理效果。生成的列表界面、编辑界面及其对应的界面后端代码,一共四个文件即可。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023120110917-490596617.png
前面生成的文件(包括视图模型和视图界面代码),和你项目的命名空间保持一致,然后复制到项目上进行增量式的合并即可。
合并的具体位置根据实际情况放置即可,如视图模型放到视图模型的大目录上,界面代码放到视图目录上即可,如下界面所示。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023121517310-889304351.png
编译上面的合并代码,如果顺利编译后,我们还需要添加相应的系统功能菜单到系统上,才能进行分配使用。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023121837731-1958891595.png
其中WPF窗体类型,就是我们窗体的命名空间+列表界面类名称,如:WHC.SugarProject.WpfUI.Views.Pages.CustomerListPage。
https://img2023.cnblogs.com/blog/8867/202310/8867-20231023122122659-10851705.png
分配完成后,系统用户重新登录,就可以看到相应增加的菜单功能入口了,单击菜单就可以打开Page列表页面,如果需要新增,则会弹出对话框进行输入。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页:
[1]