基于Layui实现管理页面

基于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,不需要额外的页面)

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值