本文学习并分析ShenNiusModularity项目中的字典管理页面、系统设置页面
1、字典管理页面
字典管理页面用于检索、新建、编辑、删除系统中的字典数据,该页面对应的文件Index.cshtml位于ShenNius.Admin.Mvc项目的Areas\Sys\Views\Config内,同目录下还有Modify.cshtml(新建、编辑字典数据)、Setting.cshtml(系统设置,详见第2章)。页面使用的控制器类ConfigController.cs位于Areas\Sys\Controllers内,页面调用的WebApi接口是ShenNius.Admin.API项目内Controllers\Sys的ConfigController.cs,主要使用其中的Deletes、SoftDelete、GetListPages、Modify等函数。
主页面布局方面:上方为搜索栏,中间为工具栏,下面是数据表格显示区域。页面加载后,调用WebApi接口GetListPages分页获取已定义的字典数据。搜索按钮事件处理函数其实就是调用table.reload重新加载表格数据,同时将搜索栏条件传入后台服务按条件检索。
分别定义事件处理函数处理工具栏按钮点击事件及数据行中的按钮点击事件,新建和编辑按钮调用的都是Modify.cshtml页面,而删除按钮的话,点击工具栏中的删除按钮,处理逻辑是将选中的记录软删除,后续还能在回收站中恢复,而点击数据行中的删除按钮,则是直接删除数据库中的数据,无法恢复。
Modify.cshtml页面布局属于常规的layui表单样式,其中字典类型目前是固定的商城包邮、菜单按钮两种,前者用在商城系统模块,后者用于设置新建菜单时页面的按钮分配权限,设置角色的菜单访问权限时也会用到。点击“确认保存”按钮时根据是否存在字典id判断是新建(调用Add)还是编辑操作(调用Modify)。
2、系统设置页面
系统设置页面用于设置系统基本信息,包括登录页面的背景图片、系统名称、版权、系统图标等。该页面对应的文件Setting.cshtml位于ShenNius.Admin.Mvc项目的Areas\Sys\Views\Config内,使用的控制器类ConfigController.cs位于Areas\Sys\Controllers内,页面调用的WebApi接口是ShenNius.Admin.API项目内Controllers\Sys的ConfigController.cs,主要使用其中的SettingValue函数,同时还会调用UploadController.File接口上传背景图、logo、站点图标等图片文件。
系统设置页面显示及保存的数据并没有保存到数据库,而是存到了system.ini文件内,页面加载后,后台服务调用SysSetting.ReadAsync函数读取本地文件中的信息,一边将信息返回前台页面,一边将信息保存到缓存中备用。而点击系统设置页面的保存按钮时,后台的WebApi接口调用SysSetting.WriteAsync函数将最新数据保存到system.ini内,同时更新缓存中的数据。
参考文献:
[1]https://gitee.com/shenniu_code_group/shen-nius.-modularity