• layui 使用


    1.下载后解压如图

    2.示例

    home.thml代码

    
    

    <!DOCTYPE html>
    <html>
    <!-- head -->
    <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">

    <style>
    .layadmin-tabsbody-item, [template] {
    display: none;
    }
    .layui-show {
    display: block!important;
    }

    html {
    background-color: #f2f2f2;
    color: #666;
    }


    </style>
    </head>

    
    

    <body class="layui-layout-body" cz-shortcut-listen="true">
    <script type="text/javascript" src="../layui/layui.js" charset="utf-8"></script>
    <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
    <div class="layui-layout layui-layout-admin">
    <!-- 导航栏 -->
    <div class="layui-header">
    <div class="layui-logo">layui 后台布局</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">
    <a href="javascript:;">
    <img src="http://t.cn/RCzsdCq" class="layui-nav-img">
    贤心
    </a>
    <dl class="layui-nav-child">
    <dd><a href="">基本资料</a></dd>
    <dd><a href="">修改密码</a></dd>
    </dl>
    </li>
    <li class="layui-nav-item"><a href="">退了</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="test">
    <li class="layui-nav-item layui-nav-itemed">
    <a class="" href="javascript:;">所有商品</a>
    <dl class="layui-nav-child">
    <dd><a href="javascript:;">列表一</a></dd>
    <dd><a href="javascript:;">列表二</a></dd>
    <dd><a href="javascript:;">列表三</a></dd>
    <dd><a href="">超链接</a></dd>
    </dl>
    </li>
    <li class="layui-nav-item">
    <a href="javascript:;">解决方案</a>
    <dl class="layui-nav-child">
    <dd><a href="javascript:;">基本资料</a></dd>
    <dd><a href="javascript:;">修改密码</a></dd>

    </dl>
    </li>

    <li class="layui-nav-item" id="id1"><a href="javascript:;" id="id2" onclick="aClick()">云市场</a></li>
    <li class="layui-nav-item"><a href="javascript:;">发布商品</a></li>


    <li class="layui-nav-item">
    <a href="javascript:;">设置</a>
    <dl class="layui-nav-child">
    <dd><a href="../html/">基本资料</a></dd>
    <dd><a href="../html/editUserInfo.html">修改密码</a></dd>
    </dl>
    </li>


    <li data-name="set" data-jump="" class="layui-nav-item">
    <a href="javascript:;" lay-tips="设置" lay-direction="2">
    <i class="layui-icon layui-icon-set"></i> <cite>设置1</cite> <span class="layui-nav-more"></span>
    </a>

    <dl class="layui-nav-child">
    <dd data-name="system" data-jump="" class="">
    <a href="javascript:;">系统设置<span class="layui-nav-more"></span></a>
    <dl class="layui-nav-child">
    <dd data-name="website" data-jump="" class=""> <a href="javascript:;" lay-href="set/system/website">网站设置</a></dd>
    <dd data-name="email" data-jump="" class=""> <a href="javascript:;" lay-href="set/system/email">邮件服务</a></dd>
    </dl>
    </dd>

    <dd data-name="user" data-jump="" class="">
    <a href="javascript:;">我的设置<span class="layui-nav-more"></span></a>
    <dl class="layui-nav-child">
    <dd data-name="info" data-jump="" class="layui-this"> <a href="javascript:;" lay-href="../html">基本资料1</a></dd>
    <dd data-name="password" data-jump="" class=""> <a href="javascript:;" lay-href="../html/editUserInfo.html">修改密码</a> </dd>
    </dl>
    </dd>
    </dl>
    </li>

    
    

    </ul>
    </div>
    </div>

    
    

    <!-- 内容 -->

    
    

    <div class="layui-body" style="top: 50px;">
    <!-- 内容主体区域 style="padding: 150px;"-->
    <div class="layadmin-tabsbody-item layui-show">
    <div class="layui-fluid" style="padding: 35px;">
    <div class="layui-row layui-col-space15">
    <div class="layui-col-md12">
    <div class="layui-col-md12">
    <div class="layui-card">
    <div class="layui-card-header">设置我的资料</div>
    <div class="layui-card-body" pad15>
    <div class="layui-form" lay-filter>
    <div class="layui-form-item">
    <label class="layui-form-label">我的角色</label>
    <div class="layui-input-inline">
    <select name="role" lay-verify="">
    <option value="1" selected="">超级管理员</option>
    <option value="2" disabled="">普通管理员</option>
    <option value="3" disabled="">审核员</option>
    <option value="4" disabled="">编辑人员</option>
    </select><div class="layui-unselect layui-form-select"><div class="layui-select-title"><input type="text" placeholder="请选择" value="超级管理员" readonly="" class="layui-input layui-unselect"><i class="layui-edge"></i></div><dl class="layui-anim layui-anim-upbit"><dd lay-value="1" class="layui-this">超级管理员</dd><dd lay-value="2" class=" layui-disabled">普通管理员</dd><dd lay-value="3" class=" layui-disabled">审核员</dd><dd lay-value="4" class=" layui-disabled">编辑人员</dd></dl></div>
    </div>
    <div class="layui-form-mid layui-word-aux">当前角色不可更改为其它角色</div>
    </div>

    <div class="layui-form-item">
    <label class="layui-form-label">用户名</label>
    <div class="layui-input-inline">
    <input type="text" name="username" value="xianxin" readonly="" class="layui-input">
    </div>
    <div class="layui-form-mid layui-word-aux">不可修改。一般用于后台登入名</div>
    </div>

    <div class="layui-form-item layui-form-text">
    <label class="layui-form-label">备注</label>
    <div class="layui-input-block">
    <textarea name="remarks" placeholder="请输入内容" class="layui-textarea"></textarea>
    </div>
    </div>

    <div class="layui-form-item">
    <div class="layui-input-block">
    <button class="layui-btn" lay-submit="" lay-filter="setmyinfo">确认修改</button>
    <button type="reset" class="layui-btn layui-btn-primary">重新填写</button>
    </div>
    </div>

    </div>
    </div>
    </div>

    </div>
    </div>

    </div>

    </div>


    </div>
    </div>

    
    

    <!-- fotter -->
    <div class="layui-footer">
    <!-- 底部固定区域 -->
    © layui.com - 底部固定区域
    </div>
    </div>

    
    


    </div>

    
    

    <script>
    $(function() {// 初始化内容
    //debugger;
    $("#id2").trigger("click");

    });

    layui.use(['laydate', 'laypage', 'layer', 'table', 'carousel', 'upload', 'element'], function(){

    
    

    var laydate = layui.laydate //日期
    ,laypage = layui.laypage //分页
    layer = layui.layer //弹层
    ,table = layui.table //表格
    ,carousel = layui.carousel //轮播
    ,upload = layui.upload //上传
    ,element = layui.element; //元素操作

    //向世界问个好
    //layer.msg('Hello World');

    //监听Tab切换
    element.on('nav(test)', function(data){
    debugger;
    layer.msg('切换了:'+ this.innerHTML);
    //var tt = this.getAttribute("id");
    //layer.msg(tt);
    console.log(data);
    });


    });

    function aClick () {
    alert(1);
    //layer.msg('切换了:'+ this.innerHTML);
    }

    
    

    </script>

    
    
    
    
    






    <!-- 尾部 -->

    
    
    
    
    

    </body>
    </html>

     

    登录页login.html

    
    

    <!DOCTYPE html>
    <html>
    <!-- head -->
    <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">
    <link rel="stylesheet" href="../layui/login.css" media="all">
    <link rel="stylesheet" href="../layui/admin.css" media="all">

    <style>
    body{margin: 10px;}
    .demo-carousel{height: 200px; line-height: 200px; text-align: center;}

    </style>
    </head>

    
    

    <body cz-shortcut-listen="true" class="layui-layout-body">
    <div id="LAY_app" class="layadmin-tabspage-none">
    <script type="text/javascript" src="../layui/layui.js" charset="utf-8"></script>
    <!--<script type="text/html" template=""><link rel="stylesheet" href="{{ layui.setter.base }}style/login.css?v={{ layui.admin.v }}-1" media="all"></script>
    <link rel="stylesheet" href="./dist/style/login.css?v=1.0.0-beta9 pro-1" media="all"> <div class="layadmin-user-login layadmin-user-display-show" id="LAY-user-login" style="display: none;">
    -->
    <div class="layadmin-user-login-main">
    <div class="layadmin-user-login-box layadmin-user-login-header">
    <h2>layuiAdmin</h2>
    <p>layui 官方出品的单页面后台管理模板系统</p>
    </div>
    <div class="layadmin-user-login-box layadmin-user-login-body layui-form">
    <div class="layui-form-item">
    <label class="layadmin-user-login-icon layui-icon layui-icon-username" for="LAY-user-login-username"></label>
    <input type="text" name="username" id="LAY-user-login-username" lay-verify="required" placeholder="用户名" class="layui-input">
    </div>
    <div class="layui-form-item">
    <label class="layadmin-user-login-icon layui-icon layui-icon-password" for="LAY-user-login-password"></label>
    <input type="password" name="password" id="LAY-user-login-password" lay-verify="required" placeholder="密码" class="layui-input">
    </div>
    <div class="layui-form-item">
    <div class="layui-row">
    <div class="layui-col-xs7">
    <label class="layadmin-user-login-icon layui-icon layui-icon-vercode" for="LAY-user-login-vercode"></label>
    <input type="text" name="vercode" id="LAY-user-login-vercode" lay-verify="required" placeholder="图形验证码" class="layui-input">
    </div>
    <div class="layui-col-xs5">
    <div style="margin-left: 10px;">
    <img src="https://www.oschina.net/action/user/captcha" class="layadmin-user-login-codeimg" id="LAY-user-get-vercode">
    </div>
    </div>
    </div>
    </div>
    <div class="layui-form-item" style="margin-bottom: 20px;">
    <input type="checkbox" name="remember" lay-skin="primary" title="记住密码"><div class="layui-unselect layui-form-checkbox" lay-skin="primary"><span>记住密码</span><i class="layui-icon">�</i></div>
    <a lay-href="/user/forget" class="layadmin-user-jump-change layadmin-link" style="margin-top: 7px;">忘记密码?</a>
    </div>
    <div class="layui-form-item">
    <button class="layui-btn layui-btn-fluid" lay-submit="" lay-filter="LAY-user-login-submit">登 入</button>
    </div>
    <div class="layui-trans layui-form-item layadmin-user-login-other">
    <label>社交账号登入</label>
    <a href="javascript:;"><i class="layui-icon layui-icon-login-qq"></i></a>
    <a href="javascript:;"><i class="layui-icon layui-icon-login-wechat"></i></a>
    <a href="javascript:;"><i class="layui-icon layui-icon-login-weibo"></i></a>

    <a lay-href="/user/reg" class="layadmin-user-jump-change layadmin-link">注册帐号</a>
    </div>
    </div>
    </div>

    <div class="layui-trans layadmin-user-login-footer">

    <p>© 2018 <a href="http://www.njxzc.edu.cn/" target="_blank">南京晓庄学院</a></p>
    <p>
    <span><a href="http://www.baidu.com" target="_blank">获取授权</a></span>
    <span><a href="http://www.baidu.com" target="_blank">在线演示</a></span>
    <span><a href="http://www.baidu.com" target="_blank">前往官网</a></span>
    </p>
    </div>

    <!--<div class="ladmin-user-login-theme">
    <script type="text/html" template>
    <ul>
    <li data-theme=""><img src="{{ layui.setter.base }}style/res/bg-none.jpg"></li>
    <li data-theme="#03152A" style="background-color: #03152A;"></li>
    <li data-theme="#2E241B" style="background-color: #2E241B;"></li>
    <li data-theme="#50314F" style="background-color: #50314F;"></li>
    <li data-theme="#344058" style="background-color: #344058;"></li>
    <li data-theme="#20222A" style="background-color: #20222A;"></li>
    </ul>
    </script>
    </div>-->

    </div><script>
    layui.use(['admin', 'form', 'user'], function(){
    var $ = layui.$
    ,setter = layui.setter
    ,admin = layui.admin
    ,form = layui.form
    ,router = layui.router()
    ,search = router.search;

    
    

    form.render();

    
    

    //提交
    form.on('submit(LAY-user-login-submit)', function(obj){

    //请求登入接口
    admin.req({
    url: './json/user/login.js' //实际使用请改成服务端真实接口
    ,data: obj.field
    ,done: function(res){

    //请求成功后,写入 access_token
    layui.data(setter.tableName, {
    key: setter.request.tokenName
    ,value: res.data.access_token
    });

    //登入成功的提示与跳转
    layer.msg('登入成功', {
    offset: '15px'
    ,icon: 1
    ,time: 1000
    }, function(){
    location.hash = search.redirect ? decodeURIComponent(search.redirect) : '/';
    });
    }
    });

    });


    //实际使用时记得删除该代码
    layer.msg('为了方便演示,用户名密码可随意输入', {
    offset: '15px'
    ,icon: 1
    });

    });
    </script></div>
    <!-- <script src="//res.layui.com/layui/rc/layui.js?t=20180403-1"></script> -->
    <script>
    layui.config({
    base: './dist/' //指定 layuiAdmin 项目路径
    ,version: '1.0.0-beta9-1'
    }).use('index', function(){
    var layer = layui.layer, admin = layui.admin;
    layer.ready(function(){
    admin.popup({
    content: '单页面专业版默认未开启“多标签”功能,实际运用时,你可以自定义是否开启'
    ,area: '300px'
    ,btnAlign: 'c'
    ,shade: false
    });
    });
    });
    </script>

    <script type="text/javascript">var cnzz_protocol = (("https:" == document.location.protocol) ? " https://" : " http://");document.write(unescape("%3Cspan id='cnzz_stat_icon_30088308'%3E%3C/span%3E%3Cscript src='" + cnzz_protocol + "w.cnzz.com/c.php%3Fid%3D30088308' type='text/javascript'%3E%3C/script%3E"));</script><span id="cnzz_stat_icon_30088308"></span><script src=" http://w.cnzz.com/c.php?id=30088308" type="text/javascript"></script>

    
    
    
    
    


    <div class="layui-layer-move"></div>
    </body>

    
    


    </html>

     

    editUserInfo.html

    <!DOCTYPE html>
    <html>
    <!-- head -->
    <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">
        
      <style>
            .layadmin-tabsbody-item, [template] {
                display: none;
            }
            .layui-show {
                display: block!important;
            }
            
            html {
                background-color: #f2f2f2;
                color: #666;
            }
            
            
      </style>
    </head>
    
    <body class="layui-layout-body" cz-shortcut-listen="true">
        <script type="text/javascript" src="../layui/layui.js" charset="utf-8"></script>
     <div class="layui-layout layui-layout-admin">         
    <!-- 导航栏 -->
    <div class="layui-header">
        <div class="layui-logo">layui 后台布局</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">
            <a href="javascript:;">
              <img src="http://t.cn/RCzsdCq" class="layui-nav-img">
              贤心
            </a>
            <dl class="layui-nav-child">
              <dd><a href="">基本资料</a></dd>
              <dd><a href="">修改密码</a></dd>
            </dl>
          </li>
          <li class="layui-nav-item"><a href="">退了</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="test">
            <li class="layui-nav-item layui-nav-itemed">
              <a class="" href="javascript:;">所有商品</a>
              <dl class="layui-nav-child">
                <dd><a href="javascript:;">列表一</a></dd>
                <dd><a href="javascript:;">列表二</a></dd>
                <dd><a href="javascript:;">列表三</a></dd>
                <dd><a href="">超链接</a></dd>
              </dl>
            </li>
            <li class="layui-nav-item">
              <a href="javascript:;">解决方案</a>
              <dl class="layui-nav-child">
                <dd><a href="javascript:;">列表一</a></dd>
                <dd><a href="javascript:;">列表二</a></dd>
                <dd><a href="">超链接</a></dd>
              </dl>
            </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="../html/">基本资料</a></dd>
                <dd><a href="../html/editUserInfo.html">修改密码</a></dd>
              </dl>
            </li>
            
            
            <li data-name="set" data-jump="" class="layui-nav-item"> 
                <a href="javascript:;" lay-tips="设置" lay-direction="2"> 
                    <i class="layui-icon layui-icon-set"></i> <cite>设置1</cite> <span class="layui-nav-more"></span>
                </a>  
                
                <dl class="layui-nav-child">  
                    <dd data-name="system" data-jump="" class=""> 
                        <a href="javascript:;">系统设置<span class="layui-nav-more"></span></a>  
                        <dl class="layui-nav-child">  
                            <dd data-name="website" data-jump="" class=""> <a href="javascript:;" lay-href="set/system/website">网站设置</a></dd>  
                            <dd data-name="email" data-jump="" class=""> <a href="javascript:;" lay-href="set/system/email">邮件服务</a></dd>  
                        </dl>  
                    </dd>  
                    
                    <dd data-name="user" data-jump="" class=""> 
                        <a href="javascript:;">我的设置<span class="layui-nav-more"></span></a>  
                        <dl class="layui-nav-child">  
                        <dd data-name="info" data-jump="" class="layui-this"> <a href="javascript:;" lay-href="set/user/info">基本资料</a></dd>  
                            <dd data-name="password" data-jump="" class=""> <a href="javascript:;" lay-href="set/user/password">修改密码</a> </dd>  
                        </dl>  
                    </dd>  
                </dl> 
            </li>
            
          </ul>
        </div>
      </div>
    
    <!-- 内容 -->
    
      <div class="layui-body" style="top: 50px;">
        <!-- 内容主体区域 style="padding: 150px;"-->
        <div class="layadmin-tabsbody-item layui-show">
            <div class="layui-fluid" style="padding: 35px;">    
                <div class="layui-row layui-col-space15">
                    <div class="layui-col-md12">
                        <div class="layui-col-md12">
                            <div class="layui-card">
                                <div class="layui-card-header">修改密码</div>
                                <div class="layui-card-body" pad15>
                                    <div class="layui-form" lay-filter>
                                        
                                        <div class="layui-form-item">
                                          <label class="layui-form-label">当前密码</label>
                                          <div class="layui-input-inline">
                                            <input type="password" name="oldPassword" lay-verify="required" lay-vertype="tips" class="layui-input">
                                          </div>
                                        </div>
                                        
                                        <div class="layui-form-item">
                                          <label class="layui-form-label">新密码</label>
                                          <div class="layui-input-inline">
                                            <input type="password" name="password" lay-verify="pass" lay-vertype="tips" autocomplete="off" id="LAY_password" class="layui-input">
                                          </div>
                                          <div class="layui-form-mid layui-word-aux">6到16个字符</div>
                                        </div>
                                        
                                        <div class="layui-form-item">
                                          <label class="layui-form-label">确认新密码</label>
                                          <div class="layui-input-inline">
                                            <input type="password" name="repassword" lay-verify="repass" lay-vertype="tips" autocomplete="off" class="layui-input">
                                          </div>
                                        </div>
                                        
                                        
                                        <div class="layui-form-item">
                                          <div class="layui-input-block">
                                            <button class="layui-btn" lay-submit="" lay-filter="setmyinfo">确认修改</button>
                                            <button type="reset" class="layui-btn layui-btn-primary">重新填写</button>
                                          </div>
                                        </div>
                                        
                                    </div>
                                </div>
                            </div>
                            
                        </div>
                    </div>
                
                </div>
            
            </div>
            
        
        </div>
      </div>
    
    <!-- fotter -->
      <div class="layui-footer">
        <!-- 底部固定区域 -->
        © layui.com - 底部固定区域
      </div>
    </div>    
    
    
    </div>
    
    <script>
    layui.use(['laydate', 'laypage', 'layer', 'table', 'carousel', 'upload', 'element'], function(){
    
      var laydate = layui.laydate //日期
      ,laypage = layui.laypage //分页
      layer = layui.layer //弹层
      ,table = layui.table //表格
      ,carousel = layui.carousel //轮播
      ,upload = layui.upload //上传
      ,element = layui.element; //元素操作
      
      //向世界问个好
      //layer.msg('Hello World');
      
      //监听Tab切换
      element.on('tab(demo)', function(data){
        //debugger;
        layer.msg('切换了:'+ this.innerHTML);
        //var tt = this.getAttribute("id");
        //layer.msg(tt);
        console.log(data);
      });
      
      table.render({
        elem: '#test'
        ,url:'/demo/table/user/'
        ,cellMinWidth: 80 //全局定义常规单元格的最小宽度,layui 2.2.1 新增
        ,cols: [[
          {field:'id', 80, title: 'ID', sort: true}
          ,{field:'username', 80, title: '用户名'}
          ,{field:'sex', 80, title: '性别', sort: true}
          ,{field:'city', 80, title: '城市'}
          ,{field:'sign', title: '签名',  '30%', minWidth: 100} //minWidth:局部定义当前单元格的最小宽度,layui 2.2.1 新增
          ,{field:'experience', title: '积分', sort: true}
          ,{field:'score', title: '评分', sort: true}
          ,{field:'classify', title: '职业'}
          ,{field:'wealth', 137, title: '财富', sort: true}
        ]]
      });
    });
    </script>
    
     
    
    
     
     
     
     
    <!-- 尾部 -->
    
    
    
    </body>
    </html>

    login.css

    /** layuiAdmin.pro-v1.0.0-beta9 LPPL License By http://www.layui.com/admin/ */
     #LAY_app,body,html{height:100%}.layui-layout-body{overflow:auto}#LAY-user-login,.layadmin-user-display-show{display:block!important}.layadmin-user-login{position:relative;left:0;top:0;padding:110px 0;min-height:100%;box-sizing:border-box}.layadmin-user-login-main{width:375px;margin:0 auto;box-sizing:border-box}.layadmin-user-login-box{padding:20px}.layadmin-user-login-header{text-align:center}.layadmin-user-login-header h2{margin-bottom:10px;font-weight:300;font-size:30px;color:#000}.layadmin-user-login-header p{font-weight:300;color:#999}.layadmin-user-login-body .layui-form-item{position:relative}.layadmin-user-login-icon{position:absolute;left:1px;top:1px;width:38px;line-height:36px;text-align:center;color:#d2d2d2}.layadmin-user-login-body .layui-form-item .layui-input{padding-left:38px}.layadmin-user-login-codeimg{max-height:38px;width:100%;cursor:pointer;box-sizing:border-box}.layadmin-user-login-other{position:relative;font-size:0;line-height:38px;padding-top:20px}.layadmin-user-login-other>*{display:inline-block;vertical-align:middle;margin-right:10px;font-size:14px}.layadmin-user-login-other .layui-icon{position:relative;top:2px;font-size:26px}.layadmin-user-login-other a:hover{opacity:.8}.layadmin-user-jump-change{float:right}.layadmin-user-login-footer{position:absolute;left:0;bottom:0;width:100%;line-height:30px;padding:20px;text-align:center;box-sizing:border-box;color:rgba(0,0,0,.5)}.layadmin-user-login-footer span{padding:0 5px}.layadmin-user-login-footer a{padding:0 5px;color:rgba(0,0,0,.5)}.layadmin-user-login-footer a:hover{color:rgba(0,0,0,1)}.layadmin-user-login-main[bgimg]{background-color:#fff;box-shadow:0 0 5px rgba(0,0,0,.05)}.ladmin-user-login-theme{position:fixed;bottom:0;left:0;width:100%;text-align:center}.ladmin-user-login-theme ul{display:inline-block;padding:5px;background-color:#fff}.ladmin-user-login-theme ul li{display:inline-block;vertical-align:top;width:64px;height:43px;cursor:pointer;transition:all .3s;-webkit-transition:all .3s;background-color:#f2f2f2}.ladmin-user-login-theme ul li:hover{opacity:.9}@media screen and (max-768px){.layadmin-user-login{padding-top:60px}.layadmin-user-login-main{width:300px}.layadmin-user-login-box{padding:10px}}

    admin.css

    /** layuiAdmin.pro-v1.0.0-beta9 LPPL License By http://www.layui.com/admin/ */
     html #layuicss-layuiAdmin{display:none;position:absolute;width:1989px}::-webkit-input-placeholder{color:#ccc}html{background-color:#f2f2f2;color:#666;}.layadmin-tabsbody-item,[template]{display:none}[lay-href],[lay-tips],[layadmin-event]{cursor:pointer}.layui-layout-admin .layui-header{position:fixed;top:0;left:0;width:100%;height:50px}.layui-layout-admin .layui-header .layui-nav .layui-nav-child a{color:#333}.layui-layout-admin .layui-side{width:220px;top:0;z-index:1001}.layui-layout-admin .layui-header .layui-nav .layui-nav-item,.layui-layout-admin .layui-logo{height:50px;line-height:50px}.layui-layout-admin .layui-logo{position:fixed;left:0;top:0;z-index:1002;width:220px;height:49px;padding:0 15px;box-sizing:border-box;overflow:hidden;font-weight:300;background-repeat:no-repeat;background-position:center center}.layadmin-pagetabs,.layui-layout-admin .layui-body,.layui-layout-admin .layui-footer,.layui-layout-admin .layui-layout-left{left:220px}.layadmin-pagetabs{position:fixed;top:50px;right:0;z-index:999}.layadmin-pagetabs .layui-breadcrumb{padding:0 15px}.layui-layout-admin .layui-body{top:90px;bottom:0}.layui-layout-admin .layui-body .layadmin-tabsbody-item{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;overflow-y:auto}.layui-layout-admin .layui-header .layui-nav-img{width:26px;height:26px}.layui-layout-admin .layui-header .layui-nav-child{top:55px}.layui-layout-admin .layui-header .layui-layout-right .layui-nav-child{left:auto;right:0}.layui-layout-admin .layui-header .layui-nav .layui-nav-child dd.layui-this,.layui-layout-admin .layui-header .layui-nav .layui-nav-child dd.layui-this a{background:0 0}.layadmin-pagetabs,.layui-layout-admin .layui-body,.layui-layout-admin .layui-footer,.layui-layout-admin .layui-header .layui-layout-right,.layui-layout-admin .layui-header .layui-nav .layui-nav-item,.layui-layout-admin .layui-layout-left,.layui-layout-admin .layui-logo,.layui-layout-admin .layui-side{transition:all .3s;-webkit-transition:all .3s}.layui-icon-login-qq{color:#3492ED}.layui-icon-login-wechat{color:#4DAF29}.layui-icon-login-weibo{color:#CF1900}.layui-form[wid100] .layui-form-label{width:100px}.layui-form[wid100] .layui-input-block{margin-left:130px}@media screen and (max-450px){.layui-form[wid100] .layui-form-item .layui-input-inline{margin-left:132px}.layui-form[wid100] .layui-form-item .layui-input-inline+.layui-form-mid{margin-left:130px}}.layui-form-item .layui-input-company{width:auto;padding-right:10px;line-height:38px}.layui-bg-white{background-color:#fff}.layadmin-loading{position:absolute;left:50%;top:50%;margin:-16px -15px;font-size:30px;color:#c2c2c2}.layadmin-fixed{position:fixed;left:0;top:0;z-index:999}.layadmin-link{color:#029789!important}.layadmin-link:hover{opacity:.8}.layui-layer-admin .layui-layer-title{height:50px;line-height:50px;border:0;background-color:#20222A;color:#fff}.layui-layer-admin i[close]{position:absolute;padding:5px;right:10px;top:12px;color:#fff;cursor:pointer}.layui-layer-admin .layui-layer-content{padding:20px;line-height:22px}.layui-layer-admin .layui-layer-content cite{font-style:normal;color:#FF5722}.layui-layer-adminRight{top:50px!important;bottom:0;box-shadow:1px 1px 10px rgba(0,0,0,.1);border-radius:0;overflow:auto}.layadmin-note .layui-layer-content{padding:0}.layadmin-note textarea{display:block;width:300px;height:132px;min-width:300px;min-height:132px;line-height:20px;padding:10px 20px;border:none;box-sizing:border-box;color:#666;word-wrap:break-word}.layui-layout-admin .layui-layout-left{padding:0 10px}.layui-layout-admin .layui-layout-left .layui-nav-item{margin:0 20px}.layui-layout-admin .layui-layout-left a,.layui-layout-admin .layui-layout-right{padding:0}.layui-header .layui-nav-item .layui-icon{position:relative;top:1px;font-size:16px}.layui-header .layui-layout-right .layui-badge-dot{margin-left:11px}.layui-header .layui-nav .layui-this:after,.layui-layout-admin .layui-header .layui-nav-bar{top:0!important;bottom:auto;height:3px;background-color:#fff;background-color:rgba(255,255,255,.3)}.layadmin-body-shade{position:fixed;display:none;left:0;right:0;top:0;bottom:0;background-color:rgba(0,0,0,.3);z-index:1000}.layui-side-menu .layui-side-scroll{width:240px}.layui-side-menu .layui-nav{width:220px;margin-top:50px;background:0 0}.layui-side-menu .layui-nav .layui-nav-item a{height:40px;line-height:40px;padding-left:45px;padding-right:30px}.layui-side-menu .layui-nav .layui-nav-item>a{padding-top:8px;padding-bottom:8px}.layui-side-menu .layui-nav .layui-nav-item a:hover{background:0 0}.layui-side-menu .layui-nav .layui-nav-itemed>.layui-nav-child{padding:5px 0}.layui-side-menu .layui-nav .layui-nav-item .layui-icon{position:absolute;top:50%;left:20px;margin-top:-19px}.layui-side-menu .layui-nav .layui-nav-child .layui-nav-child{background:0 0!important}.layui-side-menu .layui-nav .layui-nav-child .layui-nav-child a{padding-left:60px}.layui-side-menu .layui-nav .layui-nav-more{right:15px}@media screen and (max-992px){.layui-layout-admin .layui-side{transform:translate3d(-220px,0,0);-webkit-transform:translate3d(-220px,0,0);width:220px}.layadmin-pagetabs,.layui-layout-admin .layui-body,.layui-layout-admin .layui-footer,.layui-layout-admin .layui-layout-left{left:0}}.layadmin-side-shrink .layui-layout-admin .layui-logo{width:60px;background-image:url(res/logo.png)}.layadmin-side-shrink .layui-layout-admin .layui-logo span{display:none}.layadmin-side-shrink .layui-side{left:0;width:60px}.layadmin-side-shrink .layadmin-pagetabs,.layadmin-side-shrink .layui-layout-admin .layui-body,.layadmin-side-shrink .layui-layout-admin .layui-footer,.layadmin-side-shrink .layui-layout-admin .layui-layout-left{left:60px}.layadmin-side-shrink .layui-side-menu .layui-nav{position:static;width:60px}.layadmin-side-shrink .layui-side-menu .layui-nav-item{position:static}.layadmin-side-shrink .layui-side-menu .layui-nav-item>a{padding-right:0}.layadmin-side-shrink .layui-side-menu .layui-nav-item cite,.layadmin-side-shrink .layui-side-menu .layui-nav>.layui-nav-item>.layui-nav-child,.layadmin-side-shrink .layui-side-menu .layui-nav>.layui-nav-item>a .layui-nav-more{display:none;padding:8px 0;width:200px}.layadmin-side-shrink .layui-side-menu .layui-nav>.layui-nav-itemed>a{background:rgba(0,0,0,.3)}.layadmin-side-spread-sm .layadmin-pagetabs,.layadmin-side-spread-sm .layui-layout-admin .layui-body,.layadmin-side-spread-sm .layui-layout-admin .layui-footer,.layadmin-side-spread-sm .layui-layout-admin .layui-layout-left{left:0;transform:translate3d(220px,0,0);-webkit-transform:translate3d(220px,0,0)}.layadmin-side-spread-sm .layui-layout-admin .layui-layout-right{transform:translate3d(220px,0,0);-webkit-transform:translate3d(220px,0,0)}.layadmin-side-spread-sm .layui-side{transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0)}.layadmin-side-spread-sm .layadmin-body-shade{display:block}.layadmin-pagetabs .layui-tab-title li:first-child .layui-tab-close,.layadmin-tabs-select.layui-nav .layui-nav-bar,.layadmin-tabs-select.layui-nav .layui-nav-more{display:none}.layadmin-pagetabs{height:40px;line-height:40px;padding:0 80px 0 40px;background-color:#fff;box-sizing:border-box;box-shadow:0 1px 2px 0 rgba(0,0,0,.1)}.layadmin-pagetabs .layadmin-tabs-control{position:absolute;top:0;width:40px;height:100%;text-align:center;cursor:pointer;transition:all .3s;-webkit-transition:all .3s;box-sizing:border-box;border-left:1px solid #f6f6f6}.layadmin-pagetabs .layadmin-tabs-control:hover{background-color:#f6f6f6}.layadmin-pagetabs .layui-icon-prev{left:0;border-left:none;border-right:1px solid #f6f6f6}.layadmin-pagetabs .layui-icon-next{right:40px}.layadmin-pagetabs .layui-icon-down{right:0}.layadmin-tabs-select.layui-nav{position:absolute;left:0;top:0;width:100%;height:100%;padding:0;background:0 0}.layadmin-tabs-select.layui-nav .layui-nav-item{line-height:40px}.layadmin-tabs-select.layui-nav .layui-nav-item>a{height:40px}.layadmin-tabs-select.layui-nav .layui-nav-item a{color:#666}.layadmin-tabs-select.layui-nav .layui-nav-child{top:40px;left:auto;right:0}.layadmin-tabs-select.layui-nav .layui-nav-child dd.layui-this,.layadmin-tabs-select.layui-nav .layui-nav-child dd.layui-this a{background-color:#f2f2f2!important;color:#333}.layadmin-pagetabs .layui-tab{margin:0;overflow:hidden}.layadmin-pagetabs .layui-tab-title{height:40px;border:none}.layadmin-pagetabs .layui-tab-title li{min-width:0;line-height:40px;max-width:160px;text-overflow:ellipsis;padding-right:40px;overflow:hidden;border-right:1px solid #f6f6f6;vertical-align:top}.layadmin-pagetabs .layui-tab-title li:first-child{padding-right:15px}.layadmin-pagetabs .layui-tab-title li .layui-tab-close{position:absolute;right:8px;top:50%;margin:-7px 0 0;width:16px;height:16px;line-height:16px;border-radius:50%;font-size:12px}.layadmin-pagetabs .layui-tab-title li:after{content:'';position:absolute;top:0;left:0;width:0;height:2px;border-radius:0;background-color:#292B34;transition:all .3s;-webkit-transition:all .3s}.layadmin-pagetabs .layui-tab-title li:hover:after{width:100%}.layadmin-pagetabs .layui-tab-title li.layui-this,.layadmin-pagetabs .layui-tab-title li:hover{background-color:#f6f6f6}.layadmin-pagetabs .layui-tab-title li.layui-this:after{width:100%;border:none;height:2px;background-color:#292B34}.layadmin-tabspage-none .layui-layout-admin .layui-header{border-bottom:none;box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.layadmin-tabspage-none .layui-layout-admin .layui-body{top:50px}.layadmin-tabspage-none .layadmin-header{display:block}.layadmin-tabspage-none .layadmin-header .layui-breadcrumb{border-top:1px solid #f6f6f6}.layui-layout-admin .layui-header{border-bottom:1px solid #f6f6f6;box-sizing:border-box;background-color:#fff}.layui-layout-admin .layui-header a,.layui-layout-admin .layui-header a cite{color:#333}.layui-layout-admin .layui-header a:hover{color:#000}.layui-layout-admin .layui-header .layui-nav .layui-nav-more{border-top-color:#666}.layui-layout-admin .layui-header .layui-nav .layui-nav-mored{border-color:transparent transparent #666}.layui-layout-admin .layui-header .layui-nav .layui-this:after,.layui-layout-admin .layui-header .layui-nav-bar{height:2px;background-color:#20222A}.layui-layout-admin .layui-logo{background-color:#20222A;box-shadow:0 1px 2px 0 rgba(0,0,0,.15)}.layui-layout-admin .layui-logo,.layui-layout-admin .layui-logo a{color:#fff;color:rgba(255,255,255,.8)}.layui-side-menu{box-shadow:1px 0 2px 0 rgba(0,0,0,.05)}.layui-layout-admin .layui-footer{padding:10px 0;text-align:center;box-shadow:0 -1px 2px 0 rgba(0,0,0,.05)}.layadmin-setTheme-side,.layui-side-menu{background-color:#20222A;color:#fff}.layadmin-setTheme-header,.layui-layout-admin .layui-footer{background-color:#fff}.layui-tab-admin .layui-tab-title{background-color:#393D49;color:#fff}.layui-fluid{padding:15px}.layadmin-header{display:none;height:50px;line-height:50px;margin-bottom:0;border-radius:0}.layadmin-header .layui-breadcrumb{padding:0 15px}.layui-card-header .layui-icon{line-height:initial;position:absolute;right:15px;top:50%;margin-top:-7px}.layadmin-iframe{position:absolute;width:100%;height:100%;left:0;top:0}.layadmin-carousel{height:185px!important;background-color:#fff}.layadmin-carousel .layui-carousel-ind li{background-color:#e2e2e2}.layadmin-carousel .layui-carousel-ind li:hover{background-color:#c2c2c2}.layadmin-carousel .layui-carousel-ind li.layui-this{background-color:#999}.layadmin-carousel .layui-carousel,.layadmin-carousel>[carousel-item]>*{background-color:#fff}.layadmin-carousel .layui-col-space10{margin:0}.layadmin-carousel .layui-carousel-ind{position:absolute;top:-41px;text-align:right}.layadmin-carousel .layui-carousel-ind ul{background:0 0}.layui-card .layui-tab-brief .layui-tab-title{height:42px;border-bottom-color:#f6f6f6}.layui-card .layui-tab-brief .layui-tab-title li{margin:0 15px;padding:0;line-height:42px}.layui-card .layui-tab-brief .layui-tab-title li.layui-this{color:#333}.layui-card .layui-tab-brief .layui-tab-title .layui-this:after{height:43px}.layui-card .layui-tab-brief .layui-tab-content{padding:15px}.layui-card .layui-table-view{margin:0}.layadmin-shortcut li{text-align:center}.layadmin-shortcut li .layui-icon{display:inline-block;width:100%;height:60px;line-height:60px;text-align:center;border-radius:2px;font-size:30px;background-color:#F8F8F8;color:#333;transition:all .3s;-webkit-transition:all .3s}.layadmin-shortcut li cite{position:relative;top:2px;display:block;color:#666;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-size:14px}.layadmin-shortcut li:hover .layui-icon{background-color:#f2f2f2}.layadmin-backlog .layadmin-backlog-body{display:block;padding:10px 15px;background-color:#f8f8f8;color:#999;border-radius:2px;transition:all .3s;-webkit-transition:all .3s}.layadmin-backlog-body h3{padding-bottom:10px;font-size:12px}.layadmin-backlog-body p cite{font-style:normal;font-size:30px;font-weight:300;color:#009688}.layadmin-backlog-body:hover{background-color:#f2f2f2;color:#888}.layadmin-dataview{height:332px!important}.layadmin-dataview>[carousel-item]:before{display:none}.layadmin-dataview>[carousel-item]>div{height:332px}.layadmin-takerates{padding-top:5px}.layadmin-takerates .layui-progress{margin:50px 0 60px}.layadmin-takerates .layui-progress:last-child{margin-bottom:10px}.layadmin-takerates .layui-progress h3{position:absolute;right:0;top:-35px;color:#999;font-size:14px}.layadmin-takerates .layui-progress-bar{text-align:left}.layadmin-takerates .layui-progress-text{top:-35px;line-height:26px;font-size:26px}.layadmin-news{height:60px!important;padding:5px 0}.layadmin-news a{display:block;line-height:60px;text-align:center}.layadmin-news .layui-carousel-ind{height:45px}.layadmin-list li{margin-bottom:6px;padding-bottom:6px;border-bottom-color:#f6f6f6;list-style-position:inside;list-style-type:disc;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layadmin-list li a{color:#666}.layadmin-list li a:hover{color:#009688}.layadmin-list li:last-child{border:none;padding:0;margin:0}.layadmin-text p{margin-bottom:10px;text-indent:2em}.layadmin-text p:last-child{margin:0}.layadmin-panel-selection{width:768px;margin:30px auto}.layadmin-panel-selection .layui-panel-window{padding:30px 50px;border-top-color:#ddd;text-align:center}.layadmin-panel-selection .layui-panel-window h2{padding-bottom:15px;font-size:18px}.layadmin-panel-selection .layui-panel-window ul{margin-top:15px;text-align:left}.layadmin-panel-selection .layui-btn-container{margin-top:30px}.layadmin-panel-selection .layui-btn-container .layui-btn{width:100%}.layuiAdmin-msg-detail h1{font-size:16px}.layuiAdmin-msg-detail .layui-card-header{height:auto;line-height:30px;padding:15px}.layuiAdmin-msg-detail .layui-card-header span{padding:0 5px;color:#999}.layuiAdmin-msg-detail .layui-card-header span:first-child{padding-left:0}.layuiAdmin-msg-detail .layui-card-body{padding:15px}.layadmin-setTheme{padding:15px;overflow-x:hidden}.layadmin-setTheme>h5{padding:20px 0 10px;color:#000}.layadmin-setTheme>h5:first-child{padding-top:0}.layadmin-setTheme-color{width:330px;font-size:0}.layadmin-setTheme-color li{position:relative;display:inline-block;vertical-align:top;width:80px;height:50px;margin:0 15px 15px 0;background-color:#f2f2f2;cursor:pointer;font-size:12px;color:#666}.layadmin-setTheme-color li:after{content:'';position:absolute;z-index:20;top:50%;left:50%;width:1px;height:0;border:1px solid #f2f2f2;transition:all .3s;-webkit-transition:all .3s;opacity:0}.layadmin-setTheme-color li.layui-this:after,.layadmin-setTheme-color li:hover:after{width:100%;height:100%;padding:4px;top:-5px;left:-5px;border-color:#5FB878;opacity:1}.layadmin-setTheme-header{position:relative;z-index:10;height:10px;border-top:1px solid #f2f2f2;border-right:1px solid #f2f2f2}.layadmin-setTheme-side{position:absolute;left:0;top:0;width:20px;height:100%;z-index:11;box-shadow:1px 0 2px 0 rgba(0,0,0,.05)}.layadmin-setTheme-logo{position:absolute;left:0;top:0;width:100%;height:10px;box-shadow:0 1px 2px 0 rgba(0,0,0,.15)}.layadmin-form-right{text-align:right}.layadmin-about p{margin-bottom:10px}.layadmin-menu-list .layui-card-header{height:50px;line-height:50px;font-size:16px}.layadmin-menu-list .layui-card-header:active{background-color:#f2f2f2}.layadmin-menu-list .layui-card-header .layui-icon{position:relative;top:1px;left:0;display:inline-block;margin:0 10px;font-size:18px}@-webkit-keyframes layui-rl{from{-webkit-transform:translate3d(100%,0,0)}to{-webkit-transform:translate3d(0,0,0)}}@keyframes layui-rl{from{transform:translate3d(100%,0,0)}to{transform:translate3d(0,0,0)}}.layui-anim-rl{-webkit-animation-name:layui-rl;animation-name:layui-rl}@-webkit-keyframes layui-lr{from{-webkit-transform:translate3d(0 0,0);opacity:1}to{-webkit-transform:translate3d(100%,,0,0);opacity:1}}@keyframes layui-lr{from{transform:translate3d(0,0,0)}to{transform:translate3d(100%,0,0)}}.layui-anim-lr,.layui-anim-rl.layer-anim-close{-webkit-animation-name:layui-lr;animation-name:layui-lr}.layadmin-tips{margin-top:30px;text-align:center}.layadmin-tips .layui-icon[face]{display:inline-block;font-size:300px;color:#393D49}.layadmin-tips .layui-text{width:500px;margin:30px auto;padding-top:20px;border-top:5px solid #009688;font-size:16px}.layadmin-tips h1{font-size:100px;line-height:100px;color:#009688}.layadmin-tips .layui-text .layui-anim{display:inline-block}@media screen and (max-768px){.layadmin-panel-selection{margin:0;width:auto}.layui-body .layui-nav .layui-nav-item{display:block}}

    表结构

    CREATE TABLE stuent
    (
      id                     integer             NOT NULL , -- 表id
      stuname                 VARCHAR(64)         NOT NULL,     -- 事件id
      stutype             VARCHAR(64),                     -- 事件时间
      
      CONSTRAINT stuent_key PRIMARY KEY (id)
    );
    
    CREATE TABLE course1
    (
      id                     integer             NOT NULL , -- 表id
      coursename                 VARCHAR(64)         NOT NULL,     -- 事件id
     
      
      CONSTRAINT course1_key PRIMARY KEY (id)
    );
    
    CREATE TABLE stu_course
    (
      id                     integer             NOT NULL , -- 表id
      stuid                 integer         ,     -- 事件id
      courseid             integer,                     -- 事件时间
      
      CONSTRAINT stu_course_key PRIMARY KEY (id)
    );

    sql语句:

    
    

    -- 老师所授课
    SELECT
    *
    FROM
    stuent,
    stu_course,course1

    WHERE
    stuent. id = stu_course. stuid
    and stu_course.courseid = course1.id
    and stuent.stutype = '2' and stuent.id = 2
    -- and stuent.id = 2 加上老师过滤
    ;

    
    

    --所有的课 ,需要添加课程年级的过滤【课程过滤做到年级的过滤】
    select * from course1

    
    


    -- 学生看到的课,就是老师交的课程;
    -- 自己选过的课程不在这里出现【list集合过滤下】

    
    


    -- 学生选的课程
    SELECT
    *
    FROM
    stuent,
    stu_course,course1
    where
    stuent. id = stu_course. stuid
    and stu_course.courseid = course1.id
    and stuent.stutype = '2' and stuent.id = 1

    
    


    根据课程查到学生的出勤状态
    select student.stuname from student,stu_course,course ,stu_onduty
    where student.id = stu_course.stuid
    and course.id = stu_course.courseid
    and stu_onduty.courseid = stu_course.courseid
    and stu_onduty.teacherid = stu_course.stuid
    and student.stutype = '2'
    and stu_course.courseid = 1 and stu_course.stuid = 2 -- 课程id,以及老师id
    and stu_onduty.createtime = '20180101'

    
    

    根据课程id以及老师id查 该门课程的出勤信息,用来回写出勤状态
    select * from stu_onduty ,student
    where stu_onduty.teacherid ='2' and stu_onduty.courseid = '1'
    and stu_onduty.stuid = student.id

    
    

    管理员课程分配分配

     

    具体的sql

    /*
     Navicat MySQL Data Transfer
    
     Source Server         : 本体
     Source Server Type    : MySQL
     Source Server Version : 50639
     Source Host           : 127.0.0.1:3306
     Source Schema         : sturollcall
    
     Target Server Type    : MySQL
     Target Server Version : 50639
     File Encoding         : 65001
    
     Date: 16/04/2018 20:17:18
    */
    
    SET NAMES utf8mb4;
    SET FOREIGN_KEY_CHECKS = 0;
    
    -- ----------------------------
    -- Table structure for course
    -- ----------------------------
    DROP TABLE IF EXISTS `course`;
    CREATE TABLE `course`  (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `coursename` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '课程名称',
      `coursestarttime` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '课程开始时间',
      `courseendtime` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '课程结束时间',
      PRIMARY KEY (`id`) USING BTREE
    ) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
    
    -- ----------------------------
    -- Table structure for student
    -- ----------------------------
    DROP TABLE IF EXISTS `student`;
    CREATE TABLE `student`  (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `stuname` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '学生姓名',
      `stupwd` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '学生登陆密码',
      `stugrade` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '学生年纪',
      `stuclass` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '学生班级',
      `stuprofess` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '学生专业',
      `stuphone` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '学生电话',
      `stuemail` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '学生邮箱',
      `whichyear` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '那一届学生',
      `createtime` varchar(0) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '数据创建时间',
      `createtype` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建类型0:默认;1:学生自己创建;3老师创建',
      `stusex` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '学生性别0:男,1:女',
      `stutype` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '角色0:老师1:学生',
      PRIMARY KEY (`id`) USING BTREE
    ) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
    
    -- ----------------------------
    -- Table structure for teacher
    -- ----------------------------
    DROP TABLE IF EXISTS `teacher`;
    CREATE TABLE `teacher`  (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `teachername` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '老师名字',
      `teachersex` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '老师登陆密码',
      `teachersex` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '老师性别',
      `teachertype` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '1:管理员;2:老师',
      PRIMARY KEY (`id`) USING BTREE
    ) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
    
    -- ----------------------------
    -- Table structure for user
    -- ----------------------------
    DROP TABLE IF EXISTS `user`;
    CREATE TABLE `user`  (
      `id` int(11) NOT NULL,
      `username` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
      `pwd` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
      PRIMARY KEY (`id`) USING BTREE
    ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
    
    SET FOREIGN_KEY_CHECKS = 1;

     邮件发送:

    package com.hikvision.cms.module.cpi.servlet;
    
    import java.util.*;
    import javax.mail.*;
    import javax.mail.internet.*;
    import javax.activation.*;
    
    @SuppressWarnings("unused")
    public class SendEmail
    {
    
        public boolean send(String str) {
    
            boolean success = true;
            try {
                // 建立邮件会话
                Properties props = new Properties(); // 用来在一个文件中存储键-值对的,其中键和值是用等号分隔的,
                // 存储发送邮件服务器的信息
                props.put("mail.smtp.host", "hikml5.hikvision.com.cn");
                // 同时通过验证
                props.put("mail.smtp.auth", "true");
                // 根据属性新建一个邮件会话
                Session s = Session.getInstance(props);
                //s.setDebug(true); // 有他会打印一些调试信息。
    
                // 由邮件会话新建一个消息对象
                MimeMessage message = new MimeMessage(s);
    
                // 设置邮件
                InternetAddress from = new InternetAddress(str); // 
                message.setFrom(from); // 设置发件人的地址
                // 
                //设置收件人,并设置其接收类型为TO
                InternetAddress to = new InternetAddress(str); // 
                message.setRecipient(Message.RecipientType.TO, to);
                message.addRecipient(Message.RecipientType.CC, new InternetAddress("xujiangfei@hikvision.com.cn"));
                //发送多个邮件
                InternetAddress[] address = new  InternetAddress[]{new InternetAddress("xujiangfei@hikvision.com.cn"),new InternetAddress("xujiangfei@hikvision.com.cn")};
                //message.addRecipients(Message.RecipientType.TO, address); 
                //message.addRecipient(Message.RecipientType.CC, ccAddress);
    
                // 设置标题
                message.setSubject("hhh"); // java学习
    
                // 设置信件内容
                message.setText("你好"); 
    
                // 设置发信时间
                message.setSentDate(new Date());
    
                // 存储邮件信息
                message.saveChanges();
    
                // 发送邮件
                Transport transport = s.getTransport("smtp");
                //transport.connect(arg0, arg1, arg2, arg3);
                
                try{
                    // 以smtp方式登录邮箱,第一个参数是发送邮件用的邮件服务器SMTP地址,第二个参数为端口,第三个参数为用户名,第四个为密码
                    transport.connect("hikml5.hikvision.com.cn",25,"xujiangfei","Hik12345+");
                    //transport.connect("smtp.hikvision.com.cn","wangshuaiyf1@hikvision.com.cn", "86287184");
                    System.out.println(transport.isConnected());
                    if(!transport.isConnected()){ //连接服务器失败
                        
                        success = false;
                        return success;
                    }
                    // 发送邮件,其中第二个参数是所有已设好的收件人地址
                    transport.sendMessage(message, message.getAllRecipients());
                    transport.close();
                }catch(Exception e){
                    success = false;
                }
                
    
            } catch (Exception e) {
                success = false;
            }
            return success;
        }
        
        public static void main(String[] args) {
            SendEmail mailTrans=new SendEmail();
            mailTrans.send("xujiangfei@hikvision.com.cn");
        }
    }

    具体的功能需求点

        管理员:
    0.首页模块
        
    1.所有课程模块
        **列表:查询课程表所有课程返回page页,搜索功能一起做
        **删除:支持批量删除 -- NO
        **修改:
        **查询 -- NO
        **新增:
        **分配:把课程分配和老师,把课程id和老师id存到 stu_course表 -- NO
        
    2.学生管理模块
        **列表:查询学生表所有学生返回page页,搜索功能一起做
        **删除:支持批量删除
        **修改:
        **查询:
        **新增:
        
    3.老师管理模块【学生和老师在同一个表】
        **列表:查询学生表所有学生返回page页,搜索功能一起做
        **删除:支持批量删除
        **修改:
        **查询:
        **新增:
        
    4.登录,个人信息修改
    
    
        老师
    1.首页模块
        **
    2.所有课程
        **列表:课程表所有课程
        
        
    3.我的课程
        **列表:和老师做过关联的课程
        **点名:点名后跳转到一个列表显示所有选课的学生
    4.考勤
    
    5.邮件发送
        
        
        
        
        学生
    1.    首页模块
    
    2.  所有课程
    
    3.  我的课程
        **请假:在课程后面有请教的功能按钮
    4.  考勤

    毕业设计遗留问题:

    1.表设计问题:学生,老师,管理员放到一张表,会有数据量的问题【其实问题应该不大,一个学校的人数也就几万人】;课程和学生关联表中的数据可能会很多

    2.高并发问题

  • 相关阅读:
    Hibernate导致的内存溢出问题
    【转】class file has wrong version 50.0, should be 49.0错误
    修改SQL Server登陆认证方式
    [转]ExtJs中的Store
    70+优秀的前端工具
    书签
    十款好用的在线 CSS3 代码生成工具
    Web Uploader
    sass 在线编译工具之初学
    Web 开发中很有用的8款在线工具
  • 原文地址:https://www.cnblogs.com/youdream/p/8969240.html
Copyright © 2020-2023  润新知