基于Layui实现管理页面

news2024/11/18 20:31:05

基于Layui实现的后台管理页面(仅前端)

注:这是博主在帮朋友实现的一个简单的系统前端框架(无后端),跟大家分享出来,可以直接将对应菜单跟html文件链接起来,页面使用标签页方式存在,使用简单,整体布局轻便简介,可根据自己需求进行拓展,代码包在文章开头的资源中,免费下载

Layui介绍

地址:https://layui.dev/docs/2.8/

图示例:
示例

home.html:

<head>
    <meta charset="utf-8">
    <title>管理界面首页</title>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <script src="js/jquery.min.js"></script>
    <!-- 引入 layui.css -->
    <link href="layui/css/layui.css" rel="stylesheet">

    <!-- 引入 layui.js -->
    <script src="layui/layui.js"></script>
    <script src="js/home.js"></script>
    <style>
        .layui-tab-title .layui-this{
            color: #ffffff;
            font-weight: bolder;
            background-color: #009688;
        }
    </style>
</head>
<body>
<div class="layui-layout layui-layout-admin">
    <div class="layui-header">
        <div class="layui-logo layui-hide-xs layui-bg-black">功能导航</div>
        <!-- 头部区域(可配合layui 已有的水平导航) -->
        <ul class="layui-nav layui-layout-left">
            <li class="layui-nav-item layui-show-xs-inline-block" lay-header-event="menuLeft">
                <i class="layui-icon layui-icon-spread-left" id="leftEnumIcon"></i>
            </li>

            <li class="layui-nav-item" style="margin-left: 30px">
                <a>站外链接</a>
                <dl class="layui-nav-child">
                    <dd><a onclick="openOther('https://m.baidu.com/')">百度</a></dd>
                </dl>
            </li>
        </ul>
        <ul class="layui-nav layui-layout-center">
            <li class="llayui-show-xs-inline-block">

            </li>
        </ul>
        <ul class="layui-nav layui-layout-right">
            <li class="layui-nav-item layui-show-sm-inline-block" style="margin-right: 400px;">
                <span style="font-size: 25px">xxxxxxxxx系统</span>
            </li>
            <li class="layui-nav-item layui-hide layui-show-sm-inline-block">
                <a>
                    <img src="//unpkg.com/outeres@0.0.10/img/layui/icon-v2.png" class="layui-nav-img">
                    用户1
                </a>
                <dl class="layui-nav-child">
                    <dd><a ><span style="font-size: 15px;margin-right: 10px">注销</span><i class="layui-icon layui-icon-logout" style="font-size: 15px; color: red;"></i></a></dd>
                </dl>
            </li>
            <li class="layui-nav-item" lay-header-event="menuRight" lay-unselect>
                <a >
                    <i class="layui-icon layui-icon-more-vertical"></i>
                </a>
            </li>
        </ul>
    </div>
    <div class="layui-side layui-bg-black">
        <div class="layui-side-scroll">
            <!-- 左侧导航区域(可配合layui已有的垂直导航) -->
            <ul class="layui-nav layui-nav-tree" lay-filter="menu">
                <li class="layui-nav-item layui-nav-itemed"><a data-url="zhuye" data-lx="1">主页</a></li>
                <li class="layui-nav-item layui-nav-itemed">
                    <a >隧道管理</a>
                    <dl class="layui-nav-child">
                        <dd><a data-url = "page/sdxq.html">隧道信息查询</a></dd>
                    </dl>
                </li>
                <li class="layui-nav-item layui-nav-itemed">
                    <a >功能菜单</a>
                    <dl class="layui-nav-child">
                        <dd><a >菜单1</a></dd>
                        <dd><a >菜单2</a></dd>
                    </dl>
                </li>
                <li class="layui-nav-item"><a >系统管理</a></li>
            </ul>
        </div>
    </div>
    <div class="layui-body">
        <!-- 内容主体区域 -->
        <div style="padding: 0 15px 15px 15px;width: 95%;height: 95%">
            <div class="layui-tab" lay-filter="test-handle" lay-allowclose="true">
                <ul class="layui-tab-title">
                    <li class="layui-this" lay-id="id-zhuye">主页</li>
                </ul>
                <div class="layui-tab-content">
                    <div class="layui-tab-item layui-show">
                        <div class="layui-row">
                            <div class="layui-col-xs6">
                                <div class="layui-carousel" id="ID-carousel-demo-image">
                                    <div carousel-item >
                                        <div><img src="https://unpkg.com/outeres/demo/carousel/720x360-1.jpg"></div>
                                        <div><img src="https://unpkg.com/outeres/demo/carousel/720x360-2.jpg"></div>
                                        <div><img src="https://unpkg.com/outeres/demo/carousel/720x360-3.jpg"></div>
                                        <div><img src="https://unpkg.com/outeres/demo/carousel/720x360-4.jpg"></div>
                                        <div><img src="https://unpkg.com/outeres/demo/carousel/720x360-5.jpg"></div>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs6">
                                <div class="layui-timeline">
                                    <div class="layui-timeline-item">
                                        <i class="layui-icon layui-timeline-axis"></i>
                                        <div class="layui-timeline-content layui-text">
                                            <h3 class="layui-timeline-title">8月18日</h3>
                                            <p>
                                                多年前,Layui 2.0 的发布前夜,记录着这样的一段心理活动。
                                                <br>这是一个怎样的版本?它将受众如何?
                                                <br>又是谁在指引着我去创作,是基于成就感的驱动,还是试图建立我与客观世界的某种沟通 <i class="layui-icon"></i>
                                            </p>
                                        </div>
                                    </div>
                                    <div class="layui-timeline-item">
                                        <i class="layui-icon layui-timeline-axis"></i>
                                        <div class="layui-timeline-content layui-text">
                                            <h3 class="layui-timeline-title">8月16日</h3>
                                            <p>Layui 使用率最高的组件有</p>
                                            <ul>
                                                <li>layer</li>
                                                <li>table</li>
                                                <li>form</li>
                                            </ul>
                                        </div>
                                    </div>
                                    <div class="layui-timeline-item">
                                        <i class="layui-icon layui-timeline-axis"></i>
                                        <div class="layui-timeline-content layui-text">
                                            <h3 class="layui-timeline-title">8月15日</h3>
                                            <p>
                                                这片广袤的土地孕育了璀璨的华夏文化,和我们这个饱受沧桑的民族。
                                                <br>勤劳、淳朴、善良而又充满智慧的国人,一代又一代人的艰苦奋斗,古老的文明重新焕发出光彩。
                                            </p>
                                        </div>
                                    </div>
                                    <div class="layui-timeline-item">
                                        <i class="layui-icon layui-timeline-axis"></i>
                                        <div class="layui-timeline-content layui-text">
                                            <div class="layui-timeline-title">过去</div>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                        <div style="padding: 15px">
                            <blockquote class="layui-elem-quote layui-text">
                                <span style="font-size: 20px">最新资讯</span>
                            </blockquote>
                            <blockquote class="layui-text">
                                对重要的公路、铁路实现全线着盖是运营商提高网络质量的一个重要环节,是提高综合竞争力的一个有力手
                                段。从交通角度来看,目前大多数隧道的目的是覆盖盲区,因此需要结合交通线路的覆盖设计来制订专门的
                                隧道覆盖解决方案。
                                遂道着盖主要分为铁路隧道,公路隧道,地铁隧道等,每种隧道具有不同的特点,一般来说公路隧道比较宽
                                敞,对隧道里面的覆盖状况,有车通过与无车通过时差别不大。车辆通过时,隧道内剩余空间较大,可根据
                                实际情况选择尺寸大一些的天线,以获取较高的增益,使覆盖范围更大。而铁路隧道一般来说要狭窄一些
                                特别是当火车经过时,被火车填充后所剩余的空间很小,火车对隧道的填充会对信号的传播产生较大的影
                                响,且天线系统的安装空间有限,使天线的尺寸和增益受到很大的限制。另外,不管是哪种隧道,都存在长
                                短不一的状况,短的隧道只有几百米,而长的隧道有十几公里,在解决短隧道覆盖时,可采用灵活经济的手
                                段,如在隧道口附近用普通的天线向隧道里进行覆盖。但是,这些手段可能在解决长隧道覆盖时不起作用。
                                对于长隧道的着盖必须采取其它一些手段,因此,对于每没隧道的解决方案可能都会有所区知,必须根据实际情况来选定覆盖解决方案。
                            </blockquote>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <div class="layui-footer" style="padding-left: 50px">
        <!-- 底部固定区域 -->
        欢迎使用xxxxxxxxx系统!&copy;版权归属,盗版必究
    </div>
</div>
</body>
</html>

home.js

//JS
var tabs = ['zhuye'];

layui.use(['element', 'layer', 'util'], function(){
    var element = layui.element;
    var layer = layui.layer;
    var util = layui.util;
    var $ = layui.$;
    var carousel = layui.carousel;
    // 渲染 - 图片轮播
    carousel.render({
        elem: '#ID-carousel-demo-image',
        width: '720px',
        height: '360px',
        interval: 2000
    });

    //头部事件
    util.event('lay-header-event', {
        menuLeft: function(){ // 左侧菜单事件
            var btn = $("#leftEnumIcon");
            if (btn.hasClass('layui-icon-spread-left')) {
                menuHide(btn);
                btn.addClass('btn-index');
            } else if (btn.has('layui-icon-shrink-right')) {
                btn.removeClass('btn-index');
                menuShow(btn);

            }
            function menuShow(btn) {
                btn.removeClass('layui-icon-shrink-right').addClass('layui-icon-spread-left');
                $(".layui-side").animate({width: 'toggle'});
                $(".zq-logo").animate({width: 'toggle'});
                $(".layui-body").animate({left: '200px'});
                $(".layui-footer").animate({left: '200px'});
            }

            function menuHide(btn) {
                btn.removeClass(' layui-icon-spread-left').addClass('layui-icon-shrink-right');
                $(".layui-side").animate({width: 'toggle'}); //toggle如果原来div是隐藏的就会把元素显示,如果原来是显示则隐藏
                $(".zq-logo").animate({width: 'toggle'});
                $(".layui-body").animate({left: '0px'});
                $(".layui-footer").animate({left: '0px'});
            }
        },
        menuRight: function(){  // 右侧菜单事件
            layer.open({
                type: 1,
                title: '更多',
                content: '<div style="padding: 15px;">处理右侧面板的操作</div>',
                area: ['260px', '100%'],
                offset: 'rt', // 右上角
                anim: 'slideLeft', // 从右侧抽屉滑出
                shadeClose: true,
                scrollbar: false
            });
        }
    });

    element.on('nav(menu)', function(elem) {
        var label = elem.text();
        var url = $(this).attr("data-url")
        var lx = $(this).attr("data-lx")
        if (url){
            //判断是否已经存在
            if (lx){
                //存在
                element.tabChange('test-handle', 'id-'+url); // 切换到:标签3
            } else {
                element.tabAdd('test-handle', {
                    title: label,
                    content: "<iframe style='border: 0;height: 100%;width: 100%;' src='"+url+"'></iframe>",
                    id: "id-"+url, // 实际使用一般是规定好的id,这里以毫秒数模拟
                    change: true // 是否添加完毕后即自动切换
                })
                //表示已经存在
                $(this).attr("data-lx","1")
                tabs.push(url);
            }

        }
    })

    element.on('tabDelete(test-handle)', function(data){
        var dataUrl = tabs[data.index]
        $("a[data-url='"+dataUrl+"']").attr("data-lx","")
        tabs.splice(data.index,1)
    });

    $('.layui-tab-title').find('.layui-tab-close').first().hide();
});

function openOther(url){
    window.open(url)
}

使用示例:

<dd><a data-url = "page/sdxq.html">隧道信息查询</a></dd>

对应a标签加上属性 data-url ,设置为对应页面的相对路径,即可实现自动跳转。(主页已经固定为home.html,不需要额外的页面)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

面试了一个前阿里P7,Java八股文与架构核心知识简直背得炉火纯青

前几天&#xff0c;跟个老朋友吃饭&#xff0c;他最近想跳槽去大厂&#xff0c;觉得压力很大&#xff0c;问我能不能分享些所谓的经验套路。 每次有这类请求&#xff0c;都觉得有些有趣&#xff0c;不知道你发现没有大家身边真的有很多人不知道怎么面试&#xff0c;也不知道怎…

赛效:如何将PDF文件免费转换成Word文档

1&#xff1a;在网页上打开wdashi&#xff0c;默认进入PDF转Word页面&#xff0c;点击中间的上传文件图标。 2&#xff1a;将PDF文件添加上去之后&#xff0c;点击右下角的“开始转换”。 3&#xff1a;稍等片刻转换成功后&#xff0c;点击绿色的“立即下载”按钮&#xff0c;将…

win10修改IP地址报错:出现一个意外情况,不能完成所有你在......

问题描述 在修改网卡适配器的时候出现一下报错&#xff1a;出现一个意外情况&#xff0c;不能完成你在设置中所要求的更改 问题原因 该问题是由于我之前卸载VMware导致注册表出现问题。 解决方法 解决办法为:修复注册表(下载一个CCleaner下载试用版即可&#xff08;https…

2. 查询至少连续三天下单的用户

文章目录 题目需求思路一实现一思路二实现二 题目需求 查询订单信息表(order_info)中 最少连续3天 下单的用户id&#xff0c;期望结果如下&#xff1a; user_id101 订单信息表&#xff1a;order_info order_id(订单id)user_id(用户id)create_date (下单日期)total_amount(订…

MySQL 数据表修复方法

MySQL表检查与修复 — check/repair指令 目录 MySQL表检查与修复 --- check/repair指令1. 指令详解2. 操作方法&#xff1a;命令提示符(cmd指令)操作方法SQLyog 操作方法&#xff08;推荐&#xff09; 本文主要讲check table和repair table指令&#xff1b; 1. 指令详解 在检…

如何把图片转文字?图片转文字方法分享!​

如何把图片转文字呢&#xff1f;在我们日常的工作或者生活当中&#xff0c;总会遇到需要将图片中的文字提取出来整理出文档&#xff0c;比如同事领导给你发的文件&#xff0c;或者在自己看到了喜欢书的段落句子&#xff0c;想要摘抄下来&#xff0c;这些都是可以用图片转文字来…

C++ Vector容器使用方法详解

Vector概述 C 标准库向量类是序列容器的类模板。 向量以线性排列方式存储给定类型的元素&#xff0c;并允许快速随机访问任何元素。 向量是需要力求保证访问性能时的首选序列容器。vector是种容器&#xff0c;类似数组一样&#xff0c;但它的size可以动态改变。vector的元素在内…

【GESP】2023年06月图形化二级 -- 时间规划

文章目录 时间规划【题目描述】【输入描述】【输出描述】【参考答案】其他测试用例 时间规划 【题目描述】 默认小猫角色和白色背景&#xff0c;小明在为自己规划学习时间。现在他想知道两个时刻之间有多少分钟。你能通过编程帮他做到吗&#xff1f; 【输入描述】 新建变量“…

餐饮市场分析(上)

阅读原文 研究某一类餐饮产品的市场概况&#xff0c;并在不同地区和品牌之间进行对比 一、数据需求 使用美团搜索商品返回的数据。 首先进入美团首页&#xff0c;切换到对应城市&#xff0c;并搜索感兴趣的关键词。接下来尝试翻页获取更多数据&#xff0c;点击下一页时发现页…

跨越时空限制,酷暑天气用VR看房是一种什么体验?

近年来&#xff0c;全球厄尔尼诺现象越来越频繁&#xff0c;夏季温度不断创下新高&#xff0c;持续大范围的高温天气让人们对出门“望而生畏”。很多购房者也不愿意在如此酷暑期间&#xff0c;四处奔波看房&#xff0c;酷暑天气让带看房效率大大降低&#xff0c;更有新闻报道&a…

Linux:LAMP-phpmyadmin

LAMP环境 (1条消息) Linux&#xff1a;LAMP搭建(全源码包安装)_鲍海超-GNUBHCkalitarro的博客-CSDN博客 phpmyadminphpMyAdminhttps://www.phpmyadmin.net/ 传进Linux tar xfz phpMyAdmin-5.2.1-all-languages.tar.gz 这个是解出来的包 mv phpMyAdmin-5.2.1-all-languages /…

【NOSQL数据库】Redis数据库的配置与优化一

目录 一、关系型数据库与非关系型数据库1.1关系型数据库1.2非关系型数据库1.3关系型数据库与非关系型数据库的区别1.3.1数据存储方式不同1.3.2扩展方式不同1.3.3对事务性的支持不同 1.4非关系型数据库产生的背景1.5总结 二、Redis简介2.1Redis的优点2.2使用场景2.3哪些数据适合…

大二网页设计实训-豆瓣首页(html+css)

免费开源一个前端网页&#xff0c;豆瓣首页&#xff0c;可以用来当实训等

探索神奇的甲方需求:提出异常要求的背后逻辑

在IT行业&#xff0c;每个人都可能遇到“神奇的甲方”和他们提出的匪夷所思甚至无厘头的需求。虽然这些要求可能让人摸不着头脑&#xff0c;但背后通常隐藏着某种逻辑和需求。让我们来探索一下这些“无理需求”背后的心理和可能的应对策略。 首先&#xff0c;为什么会出现这些…

Maven安装与配置详解

安装JDK JDK1.8所有版本官网下载链接&#xff1a; https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html 所有JDK下载地址&#xff1a; https://www.oracle.com/java/technologies/oracle-java-archive-downloads.html 可参照我的另一篇博客 安…

Unity | HDRP高清渲染管线学习笔记:HDRP Custom Pass

目录 一、Custom Pass Volume组件介绍 1.Mode&#xff08;模式&#xff09; 2.Injection Point&#xff08;注入点&#xff09; 3.Priority 4.Fade Radius 5.custom passes 二、查看Custom Pass的渲染阶段 Custom Pass允许你执行以下操作&#xff08;官方文档&#xff0…

Linux--在当前路径下创建目录/文件夹指令:mkdir

语法&#xff1a; mkdir [选项] 文件名 功能&#xff1a; 在当前目录下创建一个名为 “文件名”的目录 常用选项&#xff1a; -p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些不存在的目录&#xff0c;即一次可以建立…

HTML5 游戏开发实战 | 贪吃蛇

在该游戏中&#xff0c;玩家操纵一条贪吃的蛇在长方形场地里行走&#xff0c;贪吃蛇按玩家所按的方向键折行&#xff0c;蛇头吃到食物(豆)后&#xff0c;分数加10分&#xff0c;蛇身会变长&#xff0c;如果贪吃蛇碰上墙壁或者自身的话&#xff0c;游戏就结束了(当然也可能是减去…

开放式耳机漏音严重吗?开放式耳机会不会吵到别人?

​在了解开放式耳机是否漏音的时候&#xff0c;首先要知道什么是开放式耳机。 开放式耳机是一种不入耳&#xff0c;没有封闭耳朵的蓝牙耳机&#xff0c;可以听歌的同时接收来自外界声音&#xff0c;安全性高&#xff0c;也减少长期佩戴耳机带来的负担&#xff0c;更适合运动佩…

E. Singers‘ Tour(数学推导)

Problem - 1618E - Codeforces 将n个城镇按顺序排列成一个环。这些城镇按顺时针顺序编号为1到n。在第i个城镇里&#xff0c;有一名歌手&#xff0c;他的曲目列表中每首歌的演唱时间为ai分钟&#xff0c;其中i∈[1,n]。 每位歌手按顺时针顺序访问所有n个城镇&#xff0c;并在…