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

  本文学习并分析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/

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在AndroidStudio创建Flutter项目并运行到模拟器

1.Flutter简介 Flutter是Google开源的构建用户界面(UI)工具包,帮助开发者通过一套代码库高效构建多平台精美应用,支持移动、Web、桌面和嵌入式平台。Flutter 开源、免费,拥有宽松的开源协议,适合商…

C++必修:类与对象(二)

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:C学习 贝蒂的主页:Betty’s blog 1. 构造函数 1.1. 定义 构造函数是一个特殊的成员函数,名字与类名相…

(成品论文22页)24深圳杯数学建模A题1-4问完整代码+参考论文重磅更新!!!!

论文如下: 基于三球定位的多个火箭残骸的准确定位 针对问题一:为了进行单个残骸的精确定位,确定单个火箭残骸发生音爆 时的精确位置和时间,本文基于三球定位模型,考虑到解的存在性和唯一性, 选取了四个监测…

神经网络反向传播算法

今天我们来看一下神经网络中的反向传播算法,之前介绍了梯度下降与正向传播~ 神经网络的反向传播 专栏:💎实战PyTorch💎 反向传播算法(Back Propagation,简称BP)是一种用于训练神经网络的算…

JVM支持的可配置参数查看和分类

JVM参数大致可以分为三类: 标注指令:-开头。 这些是所有的HotSpot都支持的参数。可以用java-help 打印出来。 非标准指令: -X开头。 这些指令通常是跟特定的HotSpot版本对应的。可以用java -X打印出来。 不稳定参数: -XX 开头。 这一类参数是跟特定HotSpot版本对应的&#x…

[Java、Android面试]_24_Compose为什么绘制要比XML快?(高频问答)

欢迎查看合集: Java、Android面试高频系列文章合集 本人今年参加了很多面试,也有幸拿到了一些大厂的offer,整理了众多面试资料,后续还会分享众多面试资料。 整理成了面试系列,由于时间有限,每天整理一点&am…

常见公式的几何解释

本文旨在深入探讨常见数学公式的几何意义,通过直观的图形和解释,帮助读者更好地理解并掌握这些公式的本质。文章首先概述了公式与几何图形之间的紧密联系,然后选取了几个典型的数学公式,进行详细解析。每个公式都将配以相应的几何…

Linux操作系统·进程管理

一、什么是进程 1.作业和进程的概念 Linux是一个多用户多任务的操作系统。多用户是指多个用户可以在同一时间使用计算机系统;多任务是指Linux可以同时执行几个任务,它可以在还未执行完一个任务时又执行另一项任务。为了完成这些任务,系统上…

数据库基础--MySQL简介以及基础MySQL操作

数据库概述 数据库(DATABASE,简称DB) 定义:是按照数据结构来组织、存储和管理数据的仓库.保存有组织的数据的容器(通常是一个文件或一组文件) 数据库管理系统(Database Management System,简称DBMS) 专门用于管理数据库的计算机系统软件;…

【补充】图神经网络前传——图论

本文作为对图神经网络的补充。主要内容是看书。 仅包含Introduction to Graph Theory前五章以及其他相关书籍的相关内容(如果后续在实践中发现前五章不够,会补上剩余内容) 引入 什么是图? 如上图所示的路线图和电路图都可以使用…

【Spring Cloud】服务容错中间件Sentinel入门

文章目录 什么是 SentinelSentinel 具有以下特征:Sentinel分为两个部分: 安装 Sentinel 控制台下载jar包,解压到文件夹启动控制台访问了解控制台的使用原理 微服务集成 Sentinel添加依赖增加配置测试用例编写启动程序 实现接口限流总结 欢迎来到阿Q社区 …

【介绍下Unity编辑器扩展】

🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…

【docker】Spring Boot3.x 打包 Docker容器

Docker化Spring Boot应用 创建文件夹 demo mkdir democd demo创建Dockerfile # 两个 openjdk 二选一 #FROM openjdk:17-jre-alpineFROM eclipse-temurin:17MAINTAINER chengxuyuanshitang <chengxuyuanshitangXX.com>RUN mkdir -p /workspace/java/demoCOPY demo.ja…

Android 11 裁剪系统显示区域(适配异形屏)

概述 在显示技术中&#xff0c;"OverScan"&#xff08;超扫描&#xff09;是一种调整显示图像边界的技术。通常情况下&#xff0c;OverScan 会在显示屏的边缘周围裁剪一小部分图像。这种裁剪是为了确保显示内容在屏幕上的完整可见性&#xff0c;尤其是在老式电视或投…

C++入门基础(二)

目录 缺省参数缺省参数概念缺省参数分类全缺省参数半缺省参数声明与定义分离 缺省参数的应用 函数重载函数重载概念例子1 参数类型不同例子2 参数的个数不同例子3 参数的顺序不同 C支持函数重载的原理--名字修饰(name Mangling) 感谢各位大佬对我的支持,如果我的文章对你有用,欢…

Visual Studio导入libtorch(Cuda版)

Visual Studio导入libtorch&#xff08;Cuda版&#xff09; 一、安装 官网&#xff1a;https://pytorch.org/get-started/locally/ 相应地选择并下载 二、环境变量配置 解压zip&#xff0c;得到libtorch文件夹&#xff0c;将libtorch\lib和libtorch\bin对应路径添加到系统环…

使 Elasticsearch 和 Lucene 成为最佳向量数据库:速度提高 8 倍,效率提高 32 倍

作者&#xff1a;来自 Elastic Mayya Sharipova, Benjamin Trent, Jim Ferenczi Elasticsearch 和 Lucene 成绩单&#xff1a;值得注意的速度和效率投资 我们 Elastic 的使命是将 Apache Lucene 打造成最佳的向量数据库&#xff0c;并继续提升 Elasticsearch 作为搜索和 RAG&a…

【JVM】简述类加载器及双亲委派机制

双亲委派模型&#xff0c;是加载class文件的一种机制。在介绍双亲委派模型之前&#xff0c;我需要先介绍几种类加载器&#xff08;Class Loader&#xff09;。 1&#xff0c;类加载器 Bootstrap&#xff0c;加载lib/rt.jar&#xff0c;charset.jar等中的核心类&#xff0c;由…

JWT是什么?如何使用?

JWT是什么&#xff1f;如何使用&#xff1f; 前言什么是JWT&#xff1f;概念工作方式JWT的组成HeaderPayloadSignatrue 实战引入依赖自定义注解定义实体类定义一个JWT工具类业务校验并生成token定义拦截器配置拦截器定义接口方法并添加注解开始验证 使用场景注意事项 JWT与传统…

ASR语音转录Prompt优化

ASR语音转录Prompt优化 一、前言 在ASR转录的时候&#xff0c;我们能很明显的感受到有时候语音识别不是很准确&#xff0c;这过程中常见的文本错误主要可以归纳为以下几类&#xff1a; 同音错误&#xff08;Homophone Errors&#xff09; 同音错误发生在不同词语发音相似或相…