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

本文详细解析了App.Hosting项目中后台管理页面的主页面结构,包括顶部导航的设置、左侧导航的动态加载、右侧内容区的选项卡功能以及使用easyCaching优化的菜单数据获取。还介绍了关键的js文件和事件响应函数。
摘要由CSDN通过智能技术生成

  本文学习并分析App.Hosting项目中后台管理页面的主页面。如下图所示,开源博客项目的后台主页面采用layui预设类layui-icon-shrink-right设置样式,点击主页面中的菜单,其它页面采用弹框或者子页面形式显示在主页面的内容区域。在这里插入图片描述
  后台主页面总体布局如下图所示,整个页面使用了layui中的导航、bodyTab(扩展模块)、弹出层等样式或模块,通过global.css、/css/index.css等文件设置样式,使用js/index.js文件加载内容并调用Main/HomeController、Main/LoginController和SystemManage/ModuleController中的相关函数获取或检索数据。
在这里插入图片描述
  顶部导航。顶部导航从左向右的显示内容及样式设置如下所示。
  1)最左侧文字链接。点击链接返回后台管理页面的主页面;
  2)显示/隐藏菜单。紧挨左侧“通用管理系统”的绿色图标,点击图标能显示或隐藏左侧导航,在index.js中定义$(“.hideMenu”).click事件响应函数,点击图标时一方面切换图标(在shrink-right和shrink-left之间切换),另一方面通过 $(“.layui-layout-admin”).toggleClass(“showMenu”)切换左侧导航样式;
在这里插入图片描述

  3)顶部导航主菜单。在index.js文件中定义并调用initMenu函数,该函数调用SystemManage/ModuleController中的GetMenuAndButton函数获取当前用户可使用的顶层菜单、下级菜单及按钮集合(后台使用easyCaching提高访问速度),同时设置$(“.topLevelMenus,.mobileTopLevelMenus”)的click事件响应函数,点击某一顶层菜单时刷新显示右侧导航。
  4)顶部右侧菜单。定义了清除缓存、锁屏、当前用户及下级菜单等,index.js文件中设置$(“.clearCache”)的click响应函数清除缓存(主要调用window.sessionStorage.clear、window. localStorage.clea),设置$(“.lockcms”)的click响应函数实现锁屏及定义解锁相关功能(解锁时调用Main/HomeController的Lock函数判断密码是否正确),设置$(“#signOut”)的click响应函数实现登出功能(调用Main/LoginControlle的SignOut退出登录并跳转到登录界面),同时cache.js中设置$(“.changeSkin”)的click响应函数实现更换皮肤功能。修改密码和个人资料菜单使用其它页面操作,本文暂不分析。
在这里插入图片描述
  左侧导航。点击顶层菜单,会在左侧导航中显示其下级菜单,index.js文件中定义getData函数刷新左侧导航,其内又调用bodyTab.js的render函数刷新左侧导航。
  右侧内容及菜单。主页面右侧区域以选项卡形式显示菜单对应的页面。在index.js中定义以下响应函数,点击左侧导航菜单或顶层菜单中的修改密码和个人资料菜单时调用addTab函数在右侧内容区域增加或切换选项卡。同时在选项卡标题区域最右侧增加刷新当前、关闭其他、关闭全部菜单,并在bodyTab.js定义这三个菜单的事件响应函数。

 $("body").on("click",
     ".layui-nav .layui-nav-item a:not('.mobileTopLevelMenus .layui-nav-item a')",
     function () {
         if ($(this).siblings().length == 0) {
             addTab($(this));
             $('body').removeClass('site-mobile'); //移动端点击菜单关闭菜单层
         }
         $(this).parent("li").siblings().removeClass("layui-nav-itemed");
     });

  底部内容。底部区域没有太多内容,主要是显示捐赠按钮以获取经济支持,并在index.js中定义donation函数以显示收款二维码。
  js文件。引用的index.js专用于本页面的初始化及函数定义,主要函数已在上方说明,在此不再赘述。

参考文献:
[1]https://gitee.com/miss_you/Blog
[2]https://layui.dev/docs/2/
[3]https://animate.style/

基于ASP.NET MVC的开源博客 Features: 基本博客功能(文章、页面、链接、评论等) trackback 发送 内置邮件发送 自定义文章伪静态地址 附带数据缓存,提高访问速度 SEO相关(sitemap、rebots等) 文章、评论 Rss 等 支持完全自定义主题 多作者撰写支持 数据导入与导出 便捷安装 IIS6与IIS7经典模式支持 Gravatar 身份认证 多种数据库支持(Sqllite, MySql, MSSql, Access等) 之间发布的1.0版本,仅仅是一个demo,各方面都存在问题,可以说是一个不能正常使用的版本。没有考虑后台功能、程序健壮性、易用性等 这里可以列一些比较突出的改进: 添加新文章时自动翻译标题 这个功能作何用呢?文章标题我会存两份,一份为输入的标题,另一份为对应的英文标题。英文标题主要用于构建文章URL,我想应该有利于SEO的吧。 自动草稿 目前自动存草稿的频率比较高,不到1分钟就会存一次,因此不要担心写了半天忘记保存,下次登录系统打开草稿就是。但是一些比较先进的内容管理系统都支持修订,这个我还不知道是怎么实现的。 关键词链接 如果你给一篇文章给定了标签,你可以在后台系统配置,是否自动将这些标签都加上链接,增加内链。如果同一个标签在你文章中出现多次,你也可以指定只需要在第一次出现的地方增加链接。这个功能对你的SEO也有一定的帮助。 给搜索引擎准备的robots.txt 默认情况下,安装后,默认就会有robots.txt,内容比较简单,目前不允许修改,在后期版本中,可以在后台设置其内容。另外,系统也会给你准备一份 sitemap.xml,便于搜索引擎抓取网站内容。 有了这两样东西,你就可以利用google webmaster提交你的博客网站了,提交后google几乎是实时监控你网站的变化,第一时间将你的内容出现的搜索结果上。 不得不多说一句,最近google推出了buzz,凡是通过webmaster验证的网站,都可以与buzz关联,发表的新文章也会同时出现的buzz上。 文章地址重写 也可以成为“固定链接”,例如本站,文章的URL地址构建格式为:post_{year}_{month}_{day}_{shortname},你可以利用系统给出的自定义标签任意组合你的URL。但Tag、Category、Page的URL目前不支持自定义。 三种用户权限 超级管理员、作者、游客,除了用户列表,作者与游客用户可以访问其他任何后台页面,但操作有限制,某些操作不允许使用。游客用户则不允许做任何操作,只允许浏览。 内置邮件发送 如果你有SMTP邮件服务器,你可以配置成你自己的邮件服务器,用以发送系统邮件。 缓存 几乎页面上所有内容都做了内存缓存,默认缓存有效期为5分钟,当然你也可以配置。对于缓存这个部分,还不是很完善。 主题 只能说,支持自定义主题,开发主题容易不容易,这个就比较难说了,反正在后期版本中会尽量做得比较方便的自定义主题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值