layui搭建后台管理框架

article/2025/10/1 10:47:15

简介:layui(谐音:类UI) 是一款采用自身模块规范编写的前端 UI 框架,遵循原生 HTML/CSS/JS 的书写与组织形式,门槛极低,拿来即用。其外在极简,却又不失饱满的内在,体积轻盈,组件丰盈,从核心代码到 API 的每一处细节都经过精心雕琢,非常适合界面的快速开发。layui 首个版本发布于 2016 年金秋,她区别于那些基于 MVVM 底层的 UI 框架,却并非逆道而行,而是信奉返璞归真之道。准确地说,她更多是为服务端程序员量身定做,你无需涉足各种前端工具的复杂配置,只需面对浏览器本身,让一切你所需要的元素与交互,从这里信手拈来。

官网下载js文档格式如下:

下面是我搭建的后台管理:粘贴即用,用起来非常方便;特别说明:本文采用的是模块化,用到哪个模块需要加载哪个模块。

<!DOCTYPE html>
<html xmlns:shiro="http://www.pollix.at/thymeleaf/shiro" xmlns:th="http://www.thymeleaf.org"><head><meta charset="UTF-8"><title></title><!--每打开一个页面重新渲染,不缓存--><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=8"><meta http-equiv="Expires" content="0"><meta http-equiv="Pragma" content="no-cache"><meta http-equiv="Cache-control" content="no-cache"><meta http-equiv="Cache" content="no-cache"><link rel="stylesheet" type="text/css" href="/layui2.45/css/layui.css"/><script type="text/javascript" src="/layui2.45/layui.js"></script><style>.my_left_tree .magin_left20px {margin-left: 20px;}.my_left_tree .magin_left35px {margin-left: 35px;}.layui-layout-left .layui-nav-item:hover {background: #009F95;cursor: pointer;}</style>
</head><body class="layui-layout-body" style="height: 100%; width: 100%;">
<div class="layui-layout layui-layout-admin my_layout"><!--作者:offline时间:2019-11-08描述:修改头部的背景色:  修改layui-header的div--><div class="layui-header"><div class="layui-logo">xxxxx 管理平台</div><div class="layui-nav layui-layout-left"><div id="changBig" class="layui-nav-item" style="width: 50px; text-align: center;"><i class="layui-icon layui-icon-menu-fill" style="font-size: 20px;color: orange;"></i></div><div onclick="fullScreen()" class="layui-nav-item" style="width: 50px; text-align: center;"><i class="layui-icon layui-icon-website" style="font-size: 20px;color: orangered;"></i></div><!--<button onclick="exitScreen()">现代浏览器退出</button>--><div class="layui-nav-item" onclick="homeRefresh()" id="myRefresh" style="width: 50px; text-align: center;"><i class="layui-icon layui-icon-refresh-3" style="font-size: 20px;color: orangered;"></i></div></div><ul class="layui-nav layui-layout-right"><li class="layui-nav-item"><!--<img th:attr="src=${session.user.image}" style="height: 50px; width:50px;" />--><img src="/images/1.jpg" style="height: 50px; width:50px;"></li><li class="layui-nav-item"><a href="javascript:void(0)">欢迎管理员: <span th:text="${session.user.username}"></span></a><dl class="layui-nav-child"><dd id="001" class="layui-this"><a href="javascript:;" data-id="001" data-title="基本资料"data-url="/backstage/adminUser/adminUserMessage.html" class="site-demo-active"data-type="tabAdd"><span class="">基本资料</span></a></dd></dl></li><li class="layui-nav-item"><a href="/admin/adminUser/loginOut">安全退出</a></li></ul></div><div class="myBoot"><div class="my_left_tree layui-side layui-bg-black myTreeLeft"><div class="layui-side-scroll"><!-- 左侧垂直导航区域--><!--作者:offline时间:2019-11-08描述:修改ul的css背景色样式即可--><ul id="leftNavTree" class="layui-nav layui-nav-tree" lay-filter="test"><li class="layui-nav-item layui-nav-itemed"><a href="javascript:;"><i class="layui-icon layui-icon-home"></i><span class="magin_left20px">主页</span></a><dl class="layui-nav-child"><dd id="0" class="layui-this"><a href="javascript:;" data-id="0" data-title="city数据" id="homePage"data-url="/backstage/city/city.html" class="site-demo-active" data-type="tabAdd"><span class="magin_left35px">主页</span></a></dd></dl></li><li class="layui-nav-item"><a href="javascript:;"><i class="layui-icon layui-icon-auz"></i><span class="magin_left20px">权限</span></a><dl class="layui-nav-child"><dd id="1"><a href="javascript:;" data-id="1" data-title="管理权限"data-url="/backstage/adminUser/adminUserList.html" class="site-demo-active"data-type="tabAdd"><span class="magin_left35px">管理权限</span></a></dd></dl></li><li class="layui-nav-item"><a href="javascript:;"><i class="layui-icon layui-icon-user"></i><span class="magin_left20px">用户</span></a><dl class="layui-nav-child"><dd id="111"><a href="javascript:;" data-id="111" data-title="用户列表"data-url="/admin/clientUser/userList.html" class="site-demo-active"data-type="tabAdd"><span class="magin_left35px">用户列表</span></a></dd></dl></li><li class="layui-nav-item"><a href="javascript:;"><i class="layui-icon layui-icon-component"></i><span class="magin_left20px">试卷</span></a><dl class="layui-nav-child"><dd id="3"><a href="javascript:;" data-id="3" data-title="试卷列表"data-url="/backstage/paper/paperList.html" class="site-demo-active"data-type="tabAdd"><span class="magin_left35px">试卷列表</span></a></dd><dd id="4"><a href="javascript:;" data-id="4" data-title="添加试卷"data-url="/backstage/paper/addOrUpdatePaper.html" class="site-demo-active"data-type="tabAdd"><span class="magin_left35px">添加试卷</span></a></dd></dl></li><li class="layui-nav-item"><a href="javascript:;"><i class="layui-icon layui-icon-survey"></i><span class="magin_left20px">测试</span></a><dl class="layui-nav-child"><dd id="5"><a href="javascript:;" data-id="5" data-url="/backstage/fu.html"class="site-demo-active" data-title="富文本" data-type="tabAdd"><span class="magin_left35px">富文本</span></a></dd><dd id="6"><a href="javascript:;" data-id="6" class="site-demo-active"data-url="/admin/active/active_preavis.html" data-title="活动预告" data-type="tabAdd"><span class="magin_left35px">活动预告</span></a></dd></dl></li><li class="layui-nav-item"><a href="javascript:;"><i class="layui-icon layui-icon-carousel"></i><span class="magin_left20px">轮播</span></a><dl class="layui-nav-child"><dd id="8"><a href="javascript:;" data-id="8" class="site-demo-active"data-url="/admin/rolling/getAll" data-title="轮播图" data-type="tabAdd"><span class="magin_left35px">轮播管理</span></a></dd></dl></li><li class="layui-nav-item"><a href="javascript:;"><i class="layui-icon layui-icon-rmb"></i><span class="magin_left20px">商城</span></a><dl class="layui-nav-child"><dd id="9"><a href="javascript:;" data-id="9" class="site-demo-active"data-url="/admin/integralMall/productList.html" data-title="积分商品" data-type="tabAdd"><span class="magin_left35px">积分商品</span></a></dd></dl><dl class="layui-nav-child"><dd id="91"><a href="javascript:;" data-id="91" class="site-demo-active"data-url="/admin/luckDrawProduct/luckDrawProduct.html" data-title="抽奖商品"data-type="tabAdd"><span class="magin_left35px">抽奖商品</span></a></dd></dl></li><li class="layui-nav-item"><a href="javascript:;"><i class="layui-icon layui-icon-notice"></i><span class="magin_left20px">留言</span></a><dl class="layui-nav-child"><dd id="11"><a href="javascript:;" data-id="11" class="site-demo-active"data-url="/admin/message/messageList.html" data-title="留言列表" data-type="tabAdd"><span class="magin_left35px">用户留言</span></a></dd></dl></li><li class="layui-nav-item"><a href="javascript:;"><i class="layui-icon layui-icon-set"></i><span class="magin_left20px">设置</span></a><dl class="layui-nav-child"><dd id="12"><a href="javascript:;" data-id="12" data-url="/admin/aboutUs/aboutUs.html"class="site-demo-active" data-title="关于我们" data-type="tabAdd"><span class="magin_left35px">关于我们</span></a></dd></dl><dl class="layui-nav-child"><dd id="13"><a href="javascript:;" data-url="/admin/patientExample/patientExampleList.html"data-id="13" class="site-demo-active" data-title="病例展示" data-type="tabAdd"><span class="magin_left35px">病例展示</span></a></dd></dl><dl class="layui-nav-child"><dd id="14"><a href="javascript:;"data-url="/admin/systemIntegrationRules/systemIntegrationRules.html" data-id="14"class="site-demo-active" data-title="既定规则" data-type="tabAdd"><span class="magin_left35px">既定规则</span></a></dd></dl></li><li class="layui-nav-item"><a href="javascript:;"><i class="layui-icon layui-icon-set"></i><span class="magin_left20px">一级菜单</span></a><dl class="layui-nav-child"><a href="javascript:;"><i class="layui-icon layui-icon-set"></i><span class="magin_left20px">二级菜单</span></a><dl class="layui-nav-child"><dd id="15"><a href="javascript:;"data-url="/admin/systemIntegrationRules/systemIntegrationRules.html" data-id="15"class="site-demo-active" data-title="菜单子项" data-type="tabAdd"><span class="magin_left35px">菜单子项3223242343242334234</span></a></dd></dl></dl></li></ul></div></div><!--tab标签--><div class="layui-tab myTableRight" id="layui_tab_content" lay-filter="demo" lay-allowclose="true"style="margin-left: 200px;"><ul class="layui-tab-title" style="width: 100%;"><li class="layui-this" lay-id="0"><i class="layui-icon layui-icon-home"></i></li></ul><div class="layui-tab-content" style="width: 100%;"><div class="layui-tab-item layui-show"><iframe name="ifrmname" class="layadmin-iframe" scrolling="auto" frameborder="0"src="/backstage/city/city.html"style="width: 98%; height: 100%; min-height: 764px;overflow: auto;"></iframe></div></div></div></div></div>
<script>/*** 刷新* */function homeRefresh(url) {window.location.href = "http://localhost:8081/backstage/home.html";};//全屏function fullScreen() {var el = document.documentElement;var rfs = el.requestFullScreen || el.webkitRequestFullScreen || el.mozRequestFullScreen || el.msRequestFullscreen;if (typeof rfs != "undefined" && rfs) {rfs.call(el);};return;}//退出全屏function exitScreen() {if (document.exitFullscreen) {document.exitFullscreen();} else if (document.mozCancelFullScreen) {document.mozCancelFullScreen();} else if (document.webkitCancelFullScreen) {document.webkitCancelFullScreen();} else if (document.msExitFullscreen) {document.msExitFullscreen();}if (typeof cfs != "undefined" && cfs) {cfs.call(el);}}/*** layui的使用*/layui.use(['element', 'layer', 'jquery'], function () {var element = layui.element;var $ = layui.$;$("#changBig").click(function () {var ifShowTree = $('.my_left_tree').css('display');if (ifShowTree == 'none') {$(".my_left_tree").css("display", "block");$(".myTableRight").css("margin-left", "200px");} else {$(".my_left_tree").css("display", "none");$(".myTableRight").css("margin-left", "0px");}});/**刷新子页面* */$("#myRefresh").click(function () {var hash = location.hash;var url = hash.substring(1, hash.length);$("body .layui-show iframe").attr("src", url);})/*** 点击左边的菜单列表,对应的添加选项卡*/// 配置tab实践在下面无法获取到菜单元素$('.site-demo-active').on('click', function () {var dataid = $(this);var url = dataid.attr("data-url");var id = dataid.attr("data-id");var title = dataid.attr("data-title");//这时会判断右侧.layui-tab-title属性下的有lay-id属性的li的数目,即已经打开的tab项数目addTableAndChangTable(url, id, title);});/*** 添加并且跳转到该选项卡**/window.addTableAndChangTable = function (url, id, title) {if ($(".layui-tab-title li[lay-id]").length <= 0) {//如果比零小,则直接打开新的tab项active.tabAdd(url, id, title);} else {//否则判断该tab项是否以及存在var isData = false; //初始化一个标志,为false说明未打开该tab项 为true则说明已有$.each($(".layui-tab-title li[lay-id]"), function () {//如果点击左侧菜单栏所传入的id 在右侧tab项中的lay-id属性可以找到,则说明该tab项已经打开if ($(this).attr("lay-id") == id) {isData = true;}})if (isData == false) {//标志为false 新增一个tab项active.tabAdd(url, id, title);}}//最后不管是否新增tab,最后都转到要打开的选项页面上active.tabChange(id);};/*** 写的是一个javascript对象,对应选项卡的增改删*/var active = {//在这里给active绑定几项事件,后面可通过active调用这些事件tabAdd: function (url, id, name) {//新增一个Tab项 传入三个参数,分别对应其标题,tab页面的地址,还有一个规定的id,是标签中data-id的属性值//关于tabAdd的方法所传入的参数可看layui的开发文档中基础方法部分element.tabAdd('demo', {title: name,content: '<iframe data-frameid="' + id + '" scrolling="auto" frameborder="0" src="' + url + '" style="width:98%;height:99%;"></iframe>',id: id //规定好的id})FrameWH(); //计算ifram层的大小},tabChange: function (id) {//切换到指定Tab项element.tabChange('demo', id); //根据传入的id传入到指定的tab项},tabDelete: function (id) {element.tabDelete("demo", id); //删除},};/*** 计算iframe高度*/function FrameWH() {var h = $(window).height();$("iframe").css("height", h + "px");};/*** 监听事件当你点击选项卡,对应左边的树添加类*/element.on('tab(demo)', function (data) {var lay_id = $(this).attr("lay-id");$(".layui-nav-child").find("dd").removeClass("layui-this");$("#" + lay_id).addClass("layui-this");});});
</script>
</body></html>

有啥不懂得小伙伴们加群交流啦:852665736;本群致力于一同进步的小伙伴们,大家一起交流探讨,在陌生的城市感受温暖;

无偿免费分享源码以及技术和面试文档,更多优秀精致的源码技术栈分享请关注公众号:gh_817962068649


http://chatgpt.dhexx.cn/article/SCA4OqtN.shtml

相关文章

后台管理框架搭建

搭建一套通用的后台管理框架对于以后的快速开发时是非常重要的。通常框架需要包含权限验证、日志、及一些基础数据的增删改查功能。 本框架采用Spring MVCMybatisFreemarkerAdminlte前端 组合在一起搭建一个管理系统。 大概的样子如下&#xff1a; 1.权限 角色->应用-&…

flutter 后台管理框架

一直希望有一个简单实用&#xff0c;强大的后台管理框架&#xff0c;能快速定义各个管理页面 只注重业务上面的处理&#xff0c;经过良久的寻找 终于找了一款符合大众的开源flutter 框架 运行 example 中lib目录下的 main 编译环境 flutter3 vscode config文件夹下面配置 业务…

一定要收藏的5个后台管理系统的前端框架

当你开发新项目的时候&#xff0c;如何快速的完成一个项目的搭建&#xff0c;这个时候就需要借助到一些模板了&#xff0c;现在网上各类UI模板都是相当的齐全的&#xff0c;本文就介绍几个靓仔觉得非常不错的前端框架&#xff0c;感兴趣的可以了解一下。 1、vue-element-admin …

14个适合后台管理系统快速开发的前端框架

1、D2admin 开源地址&#xff1a;https://github.com/d2-projects/d2-admin 文档地址&#xff1a;https://d2.pub/zh/doc/d2-admin/ 效果预览&#xff1a;https://d2.pub/d2-admin/preview/#/index 开源协议&#xff1a;MIT License 2、vue-element-admin 开源地址&#x…

QT的信号与槽原理(经典)

QT的信号与槽原理&#xff08;经典) 信号与 槽作为 QT的核心机制在 QT编程中有着广泛的应用&#xff0c;本文介绍了信号与 槽的一些基本概念、元对象工具以及在实际使用过程中应注意的一些问题。 QT是一个跨平台的C GUI应用构架&#xff0c;它提供了丰富的窗口部件集&#xf…

qt之信号与槽的原理

只要问到qt的亮点是什么&#xff0c;不得不说就是信号与槽机制。信号与槽类似观察者模式。 在面向对象的编程中&#xff0c;都会创建很多实例&#xff0c;而每个实例都是独立的&#xff0c;要想每个实例能够协同合作&#xff0c;那么就会需要一种对象间传递消息的机制&#xf…

[Qt]信号和槽机制

信号和槽机制 目录 信号和槽机制 前言&#xff1a; 1.系统自带的信号和槽 代码实现&#xff1a; 如何查找系统自带的信号和槽(如何使用帮助文档) 2.自定义信号和槽 (1)创建Teacher类和Student类 (2)自定义信号&#xff1a; (3)自定义槽函数&#xff1a; (4)自定义信…

Qt信号与槽机制原理及优缺点

信号和插槽用于对象之间的通信。信号和槽机制是Qt的核心特性&#xff0c;可能也是与其他框架提供的特性最大不同的部分。Qt的元对象系统使信号和插槽成为可能。 作为一个C/C程序员来说 回调应该属于深入人心的机制了。其他工具包使用回调来实现这种通信。回调函数是一个指向函…

QT多线程下的信号与槽机制

目录 1、QThread类 2、创建并启动线程 3、多线程信号与槽 4、信号与槽的调用线程&#xff1f; 5、调整信号与槽所在线程的依附关系 6、信号与槽的连接方式 QT 中 QObject 作QT中类的最终父类&#xff0c;具有自定义信号与槽的能力&#xff0c;只要继承自这个类的类&#xf…

QT—信号与槽详解

目录 一、什么是信号与槽 二、信号与槽的添加 1.添加槽方法 2.添加信号 3.发送信号 4.信号与槽连接 三、连接类型 1.一对一 2.一对多 3.多对一 四、信号与槽断开连接 1.断开一个对象的所有信号关联 2.断开指定信号的所有关联 3.断开指定接收者的所有关联 4.断…

Qt的信号与槽

引入 在GUI编程中&#xff0c;组件组件如何实现通信是核心的技术内容。 Qt使用了信号与槽的机制&#xff0c;为此Qt引入了一些关键字slots、signals、emit&#xff0c;这些都是Qt特有的关键字&#xff0c;然后这些关键字会被Qt的moc转换位标准的C语句。 Qt 的部件类中有一些已…

Linux下的QT信号和槽机制(二)

目录 1.基本知识点 2.信号机制 3.槽机制 4.元对象工具 5.信号和槽机制原理 &#xff08;1&#xff09;信号和槽机制 &#xff08;2&#xff09;信号和槽函数的关联 &#xff08;3&#xff09;信号和槽的断开 &#xff08;4&#xff09;信号和槽的优点 &#xff08;5&…

Qt信号与槽原理

Qt信号与槽原理 本文为原创文章&#xff0c;转载请注明出处&#xff0c;或注明转载自“黄邦勇帅(原名&#xff1a;黄勇) 本文出自本人原创著作《Qt5.10 GUI完全参考手册》网盘地址&#xff1a; https://pan.baidu.com/s/1iqagt4SEC8PUYx6t3ku39Q 《C语法详解》网盘地址&#…

Qt 之 信号槽机制及优缺点

1. Qt 信号槽机制 概念&#xff1a; 信号槽是 Qt 框架引以为豪的机制之一。所谓信号槽&#xff0c;实际就是观察者模式。当某个事件发生之后&#xff0c;比如&#xff0c;按钮检测到自己被点击了一下&#xff0c;它就会发出一个信号&#xff08;signal&#xff09;。这种发出是…

【Qt】一篇全面的信号和槽函数机制总结

信号和槽函数机制 文章目录 信号和槽函数机制一、信号和槽机制简介二、【信号】&#xff08;2-1&#xff09;信号的发出&#xff08;2-2&#xff09;信号的处理 三、【槽函数】&#xff08;3-1&#xff09;带有默认参数的信号和槽函数&#xff08;3-2&#xff09;使用QObject::…

Qt: 信号与槽机制

一、信号和槽机制是什么&#xff1f; 1 Qt信号槽机制&#xff1a;是Qt的核心机制&#xff0c;它是Qt定义的一种对象间的通讯机制&#xff0c;且独立于标准C/C语言。 2 信号&#xff08;signals&#xff09;:当某个类对象发生内部改变时&#xff0c;发射“信号”随后与关联的“槽…

Qt 信号和槽的机制(逻辑清晰的来说清楚信号和槽,呕心沥血之作)

Qt 信号和槽的机制 首先说声对不起&#xff0c;上次在PyQt5中写信号与槽&#xff0c;由于时间原因没有写完。有小伙伴留言说&#xff0c;希望把这章补全。所以&#xff0c;这是一篇迟来的文章&#xff0c;再次向大家说声抱歉。 一、桌面程序的结构 Qt的使用场景&#xff0c;…

Qt信号和槽机制emit的使用

1.相关概念&#xff1a; [1].信号&#xff08;Signal&#xff09;就是在特定情况下被发射的事件 [2].槽&#xff08;Slot&#xff09;就是对信号响应的函数。槽就是一个函数 [3].信号与槽之间的关联&#xff1a;是用 QObject::connect() 函数实现的&#xff0c;其基本格式是…

Qt信号和槽机制详解

Qt信号和槽机制详解 信号和槽是 Qt 特有的消息传输机制&#xff0c;它能将相互独立的控件关联起来。 举个简单的例子&#xff0c;按钮和窗口本是两个独立的控件&#xff0c;点击按钮并不会对窗口造成任何影响。通过信号和槽机制&#xff0c;我们可以将按钮和窗口关联起来&…

Qt信号与槽机制

一. 简介 就我个人来理解&#xff0c;信号槽机制与Windows下消息机制类似&#xff0c;消息机制是基于回调函数&#xff0c;Qt中用信号与槽来代替函数指针&#xff0c;使程序更安全简洁。 信号和槽机制是 Qt 的核心机制&#xff0c;可以让编程人员将互不相关的对象绑定在一起&…