springboot+layui增删改查+数据可视化后台实战项目

springboot+layui后台管理项目

(需要的小伙伴,评论留下邮箱!)

1.技术栈

  • springboot
  • mybatis
  • mysql
  • layui
  • echarts

2.界面展示(初始版)
主界面

在这里插入图片描述
登录界面

在这里插入图片描述

用户管理界面

在这里插入图片描述
动态查询

在这里插入图片描述
退出

在这里插入图片描述
密码修改

在这里插入图片描述
3.界面展示(功能增强版)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.主要前台代码

<1>主界面

<!DOCTYPE html>
<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, maximum-scale=1">
  <link rel="stylesheet" href="layui/css/layui.css"  media="all">
  <!-- 注意:如果你直接复制所有代码到本地,上述css路径需要改成你本地的 -->
    <style>

        body{
            background-repeat:no-repeat;
            background-size:100% 100%;
            background-attachment: fixed;
            background-image: url("img/index.gif");
        }
        img{
            width: 100%;
            height: 100%;
        }
        .layui-carousel{
            border: 1px solid #0C0C0C;
            margin:0 auto;
            margin-top: 50px;
        }
        .layui-btn-container{
           margin-top: 50px;
        }


    </style>
</head>
<body>
<!--轮播图-->
<div  class="layui-carousel" id="test">
  <div carousel-item="">
    <div><img src="img/1.jpg"></div>
    <div><img src="img/2.jpg"></div>
    <div><img src="img/3.jpg"></div>
    <div><img src="img/4.jpg"></div>
  </div>
</div>
<!--登录按钮-->

<div class="layui-btn-container" align="center">
    <!--

    1、异常表现:我在jsp文件中有一个表单,里面有一个保存事件按钮。保存

    onclick的js函数里我是用ajax提交的数据,用于局部刷新页面。

    2、问题原因:在Internet Explorer 的默认类型是 “button”,而其他浏览器中(包括 W3C
    规范)的默认值是 “submit”。

    所以导致了表单重复提交。出现“java.io.IOException: 你的主机中的软件中止了一个已建立的连接”异常。

    3、问题解决:把代码 改为保存,为按钮定义Type属性为button。
-->
    <button type="button" class="layui-btn layui-btn-normal " id="btn">
        <a href="login.html" type="button">登录系统</a>
    </button>
</div>
<script src="layui/layui.js"></script>
<!-- 注意:如果你直接复制所有代码到本地,上述js路径需要改成你本地的 -->
<script>
    layui.use(['carousel'], function() {
        var carousel = layui.carousel;
        //图片轮播
        carousel.render({
            elem: '#test'
            , width: '1100px'
            , height: '500px'
            , interval: 1800
        });

    });
</script>
</body>
</html>

<2>登录界面

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>登录</title>
    <script src="layui/jquery.min.js"></script>
    <link rel="stylesheet" href="layui/css/layui.css">
    <link rel="stylesheet" href="css/adminLogin.css">
</head>
<body>
<div class="wrap">
    <img src="img/index.gif" class="imgStyle">
    <div class="loginForm">
        <form>
            <div class="logoHead">
                <h2 style="margin-top:10px;margin-left: 50px">后台管理系统</h2>
            </div>
            <div class="usernameWrapDiv">
                <div class="usernameLabel">
                    <label>用户名:</label>
                </div>
                <div class="usernameDiv">
                    <i class="layui-icon layui-icon-username adminIcon"></i>
                    <input id="username" class="layui-input adminInput" type="text" name="username" placeholder="输入用户名" autocomplete="off">
                </div>
            </div>
            <div class="usernameWrapDiv">
                <div class="usernameLabel">
                    <label>密码:</label>
                </div>
                <div class="passwordDiv">
                    <i class="layui-icon layui-icon-password adminIcon"></i>
                    <input id="password" class="layui-input adminInput" type="password" name="password" placeholder="输入密码" autocomplete="off">
                </div>
            </div>
            <div class="usernameWrapDiv">
                <div class="usernameLabel">
                    <label>验证码:</label>
                </div>
                <div class="cardDiv">
                    <input id="loginCard" class="layui-input cardInput" type="text" name="card" placeholder="输入验证码">
                </div>
                <div class="codeDiv">
                    <input id="loginCode" class="layui-input codeInput"  type="button">
                </div>
            </div>
            <div class="submitDiv">

                    <input id="loginBtn" type="button" class="submit layui-btn layui-btn-primary" value="登录">
           </div>
        </form>
    </div>
</div>
<script src="layui/layui.js" type="text/javascript"></script>
<script>
    var layer;
    layui.use(['layer'],function () {
        layer = layui.layer;
    })
    $(function () {
        // 页面初始化生成验证码
        window.onload = createCode('#loginCode');
        // 验证码切换
        $('#loginCode').click(function () {
            createCode('#loginCode');
        });
        // 登录事件
        $('#loginBtn').click(function () {
            login();
        });

    });
    // 生成验证码
    function createCode(codeID) {
        var code = "";
        // 验证码长度
        var codeLength = 4;
        // 验证码dom元素
        var checkCode = $(codeID);
        // 验证码随机数
        var random = [0,1,2,3,4,5,6,7,8,9,'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R',
            'S','T','U','V','W','X','Y','Z'];
        for (var i = 0;i < codeLength; i++){
            // 随机数索引
            var index = Math.floor(Math.random()*36);
            code += random[index];
        }
        // 将生成的随机验证码赋值
        checkCode.val(code);
    }
    // 校验验证码、用户名、密码
    function validateCode(inputID,codeID) {
        var inputCode = $(inputID).val().toUpperCase();
        var cardCode = $(codeID).val();
        var loginUsername = $('#username').val();
        var loginPassword = $('#password').val();
        if ($.trim(loginUsername) == '' || $.trim(loginUsername).length<=0){
            layer.alert("用户名不能为空");
            return false;
        }
        if ($.trim(loginPassword) == '' || $.trim(loginPassword).length<=0){
            layer.alert("密码不能为空");
            return false;
        }
        if (inputCode.length<=0){
            layer.alert("验证码不能为空");
            return false;
        }
        if (inputCode != cardCode){
            layer.alert("请输入正确验证码");
            return false;
        }
        return true;
    }
    // 登录流程
    function login() {
        if (!validateCode('#loginCard','#loginCode')){
            //阻断提示
            layui.alert("输入不合法")
        }else {
            var username = $('#username').val();
            var password = $('#password').val();
            $.ajax({
                type:"post",
                url:"/checkLogin",
                data: {
                    "username": username,
                    "password": password
                },
                success: function (result) {
                    if (result=='success'){
                        layer.alert("登录成功",{icon: 1},function () {
                            window.location.href = "admin.html?"+$("#username").val()+"";

                        });
                    }else{
                        alert(result);

                    }
                },

            });
        }

    }
</script>

</body>

</html>


<3>用户管理界面

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <title>后台系统</title>
    <link rel="stylesheet" href="layui/css/layui.css">
</head>

<body class="layui-layout-body">
<div class="layui-layout layui-layout-admin">
    <div class="layui-header">
        <div class="layui-logo">后台管理</div>
        <!-- 头部区域(可配合layui已有的水平导航) -->
        <ul class="layui-nav layui-layout-left">
            <li class="layui-nav-item">
                <a href="">控制台</a>
            </li>
            <li class="layui-nav-item">
                <a href="">商品管理</a>
            </li>
            <li class="layui-nav-item">
                <a href="">用户</a>
            </li>
            <li class="layui-nav-item">
                <a href="javascript:;">其它系统</a>
                <dl class="layui-nav-child">
                    <dd>
                        <a href="">图片管理</a>
                    </dd>
                    <dd>
                        <a href="">消息管理</a>
                    </dd>
                    <dd>
                        <a href="">授权管理</a>
                    </dd>
                </dl>
            </li>
        </ul>
        <ul class="layui-nav layui-layout-right">
            <li class="layui-nav-item">
                <p id="admin-name" style="fron-size:13px;front-family:Arial;color:yellow"></p>
            </li>
            <li class="layui-nav-item">
                <a href="javascript:;">
                    <img src="img/ico.jpg" class="layui-nav-img">
                </a>
                <dl class="layui-nav-child">
                    <a href="modpwd.html" type="button">修改密码</a>
                </dl>
            </li>
            <li class="layui-nav-item">
                <i id="logout" class="layui-icon">&#xe682;</i>
            </li>
        </ul>
    </div>

    <div class="layui-side layui-bg-black">
        <div class="layui-side-scroll">
            <!-- 左侧导航区域(可配合layui已有的垂直导航) -->
            <ul class="layui-nav layui-nav-tree">
                <li class="layui-nav-item layui-nav-itemed">
                    <a class="" href="./table.html">用户管理</a>
                </li>
                <li class="layui-nav-item">
                    <a href="javascript:;">解决方案</a>
                    <dl class="layui-nav-child">
                        <dd>
                            <a href="table1.html">列表一</a>
                        </dd>
                        <dd>
                            <a href="table2.html">列表二</a>
                        </dd>
                    </dl>
                </li>
                <li class="layui-nav-item">
                    <a href="demo1.html">云市场</a>
                </li>
                <li class="layui-nav-item">
                    <a href="./demo2.html">发布商品</a>
                </li>
            </ul>

        </div>
    </div>

    <div class="layui-body">
        <!-- 内容主体区域 -->
        <iframe id="iframeMain" src="" style="width: 100%"; height="100%";></iframe>
    </div>

</div>
<script src="layui/jquery.min.js"></script>
<script src="layui/layui.all.js"></script>
<script src="layui/layui_exts/excel.js"></script>

<script>
    layui.use(['layer'],function() {
        var layer = layui.layer;

        $(document).ready(function () {
            $("li>a").click(function (e) {
                e.preventDefault();
                $("#iframeMain").attr("src", $(this).attr("href"));
            });
            $("dd>a").click(function (e) {
                e.preventDefault();
                $("#iframeMain").attr("src", $(this).attr("href"));
            });
            $('#logout').click(function () {
                layer.confirm("确认退出?",{icon: 1},function () {
                    window.location.href = "login.html";
                });
            })

        });
        //获取管理员信息
        $(document).ready(function () {
            var url = location.href;
            var num = url.indexOf("?");
            var str = decodeURI(url.substr(num + 1));//解码,不然汉字会乱码
            $("#admin-name").html(str);
        });
    });
</script>

</body>

</html>

代码有点多,需要的小伙伴回复评论,留下邮箱!

评论 56
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值