kkk 2 years ago
parent
commit
ff58430d38
30 changed files with 3880 additions and 0 deletions
  1. 129 0
      src/main/webapp/skin/default/layuiadmin/config.js
  2. 41 0
      src/main/webapp/skin/default/layuiadmin/modules/common.js
  3. 334 0
      src/main/webapp/skin/default/layuiadmin/modules/console.js
  4. 189 0
      src/main/webapp/skin/default/layuiadmin/modules/contlist.js
  5. 136 0
      src/main/webapp/skin/default/layuiadmin/modules/forum.js
  6. 0 0
      src/main/webapp/skin/default/layuiadmin/modules/im.js
  7. 132 0
      src/main/webapp/skin/default/layuiadmin/modules/message.js
  8. 300 0
      src/main/webapp/skin/default/layuiadmin/modules/sample.js
  9. 1166 0
      src/main/webapp/skin/default/layuiadmin/modules/senior.js
  10. 153 0
      src/main/webapp/skin/default/layuiadmin/modules/set.js
  11. 65 0
      src/main/webapp/skin/default/layuiadmin/modules/user.js
  12. 209 0
      src/main/webapp/skin/default/layuiadmin/modules/useradmin.js
  13. 76 0
      src/main/webapp/skin/default/layuiadmin/modules/workorder.js
  14. 530 0
      src/main/webapp/skin/default/layuiadmin/style/admin.css
  15. 55 0
      src/main/webapp/skin/default/layuiadmin/style/login.css
  16. BIN
      src/main/webapp/skin/default/layuiadmin/style/res/bg-none.jpg
  17. BIN
      src/main/webapp/skin/default/layuiadmin/style/res/layui-logo.jpg
  18. BIN
      src/main/webapp/skin/default/layuiadmin/style/res/logo-black.png
  19. BIN
      src/main/webapp/skin/default/layuiadmin/style/res/logo.png
  20. BIN
      src/main/webapp/skin/default/layuiadmin/style/res/template/character.jpg
  21. BIN
      src/main/webapp/skin/default/layuiadmin/style/res/template/huge.jpg
  22. BIN
      src/main/webapp/skin/default/layuiadmin/style/res/template/portrait.png
  23. 186 0
      src/main/webapp/skin/default/layuiadmin/style/template.css
  24. 25 0
      src/main/webapp/skin/default/layuiadmin/tpl/layim/demo.html
  25. 22 0
      src/main/webapp/skin/default/layuiadmin/tpl/system/about.html
  26. 61 0
      src/main/webapp/skin/default/layuiadmin/tpl/system/get.html
  27. 22 0
      src/main/webapp/skin/default/layuiadmin/tpl/system/more.html
  28. 43 0
      src/main/webapp/skin/default/layuiadmin/tpl/system/theme.html
  29. 3 0
      src/main/webapp/skin/default/layuiadmin/tpl/system/说明.txt
  30. 3 0
      src/main/webapp/skin/default/layuiadmin/tpl/说明.txt

+ 129 - 0
src/main/webapp/skin/default/layuiadmin/config.js

@@ -0,0 +1,129 @@
+/**
+
+ @Name:layuiAdmin iframe版全局配置
+ @Author:贤心
+ @Site:http://www.layui.com/admin/
+ @License:LPPL(layui付费产品协议)
+    
+ */
+ 
+layui.define(['laytpl', 'layer', 'element', 'util'], function(exports){
+  exports('setter', {
+    container: 'LAY_app' //容器ID
+    ,base: layui.cache.base //记录静态资源所在路径
+    ,views: layui.cache.base + 'tpl/' //动态模板所在目录
+    ,entry: 'index' //默认视图文件名
+    ,engine: '.html' //视图文件后缀名
+    ,pageTabs: true //是否开启页面选项卡功能。iframe版推荐开启
+    
+    ,name: 'layuiAdmin'
+    ,tableName: 'layuiAdmin' //本地存储表名
+    ,MOD_NAME: 'admin' //模块事件名
+    
+    ,debug: true //是否开启调试模式。如开启,接口异常时会抛出异常 URL 等信息
+
+    //自定义请求字段
+    ,request: {
+      tokenName: false //自动携带 token 的字段名(如:access_token)。可设置 false 不携带。
+    }
+    
+    //自定义响应字段
+    ,response: {
+      statusName: 'code' //数据状态的字段名称
+      ,statusCode: {
+        ok: 0 //数据状态一切正常的状态码
+        ,logout: 1001 //登录状态失效的状态码
+      }
+      ,msgName: 'msg' //状态信息的字段名称
+      ,dataName: 'data' //数据详情的字段名称
+    }
+    
+    //扩展的第三方模块
+    ,extend: [
+      'echarts', //echarts 核心包
+      'echartsTheme' //echarts 主题
+    ]
+    
+    //主题配置
+    ,theme: {
+      //内置主题配色方案
+      color: [{
+        main: '#20222A' //主题色
+        ,selected: '#009688' //选中色
+        ,alias: 'default' //默认别名
+      },{
+        main: '#03152A'
+        ,selected: '#3B91FF'
+        ,alias: 'dark-blue' //藏蓝
+      },{
+        main: '#2E241B'
+        ,selected: '#A48566'
+        ,alias: 'coffee' //咖啡
+      },{
+        main: '#50314F'
+        ,selected: '#7A4D7B'
+        ,alias: 'purple-red' //紫红
+      },{
+        main: '#344058'
+        ,logo: '#1E9FFF'
+        ,selected: '#1E9FFF'
+        ,alias: 'ocean' //海洋
+      },{
+        main: '#3A3D49'
+        ,logo: '#2F9688'
+        ,selected: '#5FB878'
+        ,alias: 'green' //墨绿
+      },{
+        main: '#20222A'
+        ,logo: '#F78400'
+        ,selected: '#F78400'
+        ,alias: 'red' //橙色
+      },{
+        main: '#28333E'
+        ,logo: '#AA3130'
+        ,selected: '#AA3130'
+        ,alias: 'fashion-red' //时尚红
+      },{
+        main: '#24262F'
+        ,logo: '#3A3D49'
+        ,selected: '#009688'
+        ,alias: 'classic-black' //经典黑
+      },{
+        logo: '#226A62'
+        ,header: '#2F9688'
+        ,alias: 'green-header' //墨绿头
+      },{
+        main: '#344058'
+        ,logo: '#0085E8'
+        ,selected: '#1E9FFF'
+        ,header: '#1E9FFF'
+        ,alias: 'ocean-header' //海洋头
+      },{
+        header: '#393D49'
+        ,alias: 'classic-black-header' //经典黑头
+      },{
+        main: '#50314F'
+        ,logo: '#50314F'
+        ,selected: '#7A4D7B'
+        ,header: '#50314F'
+        ,alias: 'purple-red-header' //紫红头
+      },{
+        main: '#28333E'
+        ,logo: '#28333E'
+        ,selected: '#AA3130'
+        ,header: '#AA3130'
+        ,alias: 'fashion-red-header' //时尚红头
+      },{
+        main: '#28333E'
+        ,logo: '#009688'
+        ,selected: '#009688'
+        ,header: '#009688'
+        ,alias: 'green-header' //墨绿头
+      }]
+      
+      //初始的颜色索引,对应上面的配色方案数组索引
+      //如果本地已经有主题色记录,则以本地记录为优先,除非请求本地数据(localStorage)
+      ,initColorIndex: 0
+    }
+  });
+});

+ 41 - 0
src/main/webapp/skin/default/layuiadmin/modules/common.js

@@ -0,0 +1,41 @@
+/**
+
+ @Name:layuiAdmin 公共业务
+ @Author:贤心
+ @Site:http://www.layui.com/admin/
+ @License:LPPL
+
+ */
+
+layui.define(function(exports){
+  var $ = layui.$
+  ,layer = layui.layer
+  ,laytpl = layui.laytpl
+  ,setter = layui.setter
+  ,view = layui.view
+  ,admin = layui.admin
+
+  //公共业务的逻辑处理可以写在此处,切换任何页面都会执行
+  //……
+
+
+
+  //退出
+  admin.events.logout = function(){
+      var userLevel = sessionStorage.userLevel;
+      delete sessionStorage.loginData;
+      delete sessionStorage.userLevel;
+      delete sessionStorage.token;
+      delete sessionStorage.navStrActiveIndex;
+      delete sessionStorage.ssoflag;
+      //if(userLevel == 5) {
+          location.href = "/schoolLogin.html";
+      //} else {
+      //    location.href = "/teachLogin.html";
+      //}
+  };
+
+
+  //对外暴露的接口
+  exports('common', {});
+});

+ 334 - 0
src/main/webapp/skin/default/layuiadmin/modules/console.js

@@ -0,0 +1,334 @@
+/**
+
+ @Name:layuiAdmin 主页控制台
+ @Author:贤心
+ @Site:http://www.layui.com/admin/
+ @License:GPL-2
+    
+ */
+
+
+layui.define(function(exports){
+  
+  /*
+    下面通过 layui.use 分段加载不同的模块,实现不同区域的同时渲染,从而保证视图的快速呈现
+  */
+  
+  
+  //区块轮播切换
+  layui.use(['admin', 'carousel'], function(){
+    var $ = layui.$
+    ,admin = layui.admin
+    ,carousel = layui.carousel
+    ,element = layui.element
+    ,device = layui.device();
+
+    //轮播切换
+    $('.layadmin-carousel').each(function(){
+      var othis = $(this);
+      carousel.render({
+        elem: this
+        ,width: '100%'
+        ,arrow: 'none'
+        ,interval: othis.data('interval')
+        ,autoplay: othis.data('autoplay') === true
+        ,trigger: (device.ios || device.android) ? 'click' : 'hover'
+        ,anim: othis.data('anim')
+      });
+    });
+    
+    element.render('progress');
+    
+  });
+
+  var montharray=[];
+  var bookarray=[];
+  var periodical=[];
+  var typearray=[];
+  var typenumarray=[];
+
+  var type22;
+
+  $.ajax({
+        url: "/booktype/find22Type",
+        async: false,
+        success: function (result) {
+            console.log(result);
+            type22=result.data;
+        }
+  });
+
+  $.ajax({
+        url: "/jieyue/jieyueReport",
+        data:{orgid:JSON.parse(sessionStorage.loginData).orgid},
+        async: false,
+        success: function (result) {
+            console.log(result);
+            montharray=result.data[0];
+            bookarray=result.data[1];
+            periodical=result.data[2];
+            typearray=result.data[3];
+            typenumarray=result.data[4];
+        }
+    });
+
+
+  //数据概览
+  layui.use(['admin', 'carousel', 'echarts','laydate','form'], function(){
+    var $ = layui.$
+    ,admin = layui.admin
+    ,carousel = layui.carousel
+    ,echarts = layui.echarts;
+
+    var laydate = layui.laydate;
+
+      $.ajax({
+          url: "/jieyue/curdate",
+          async: false,
+          success: function (result) {
+              console.log(result)
+
+              laydate.render({
+                  elem: '#begindate'
+                  ,value:result.data[1]
+                  ,isInitValue: true
+              });
+
+              laydate.render({
+                  elem: '#enddate'
+                  ,value:result.data[0]
+                  ,isInitValue: true
+              });
+          }
+      });
+
+      layui.form.on('submit(searchBtn)', function(data){
+          if (!('orgid' in data.field)){
+              data.field["orgid"]=JSON.parse(sessionStorage.loginData).orgid;
+          }
+
+          console.log(data.field);
+          $.ajax({
+              url: "/jieyue/jieyueReport",
+              data:data.field,
+              async: false,
+              success: function (result) {
+                  console.log(result);
+                  typearray=result.data[3];
+                  typenumarray=result.data[4];
+                  echartsApp[1].hideLoading();
+                  echartsApp[1].clear();
+                  echartsApp[1].setOption({
+                      title : {
+                          text: '借阅分类统计',
+                          x: 'center',
+                      },
+                      tooltip : {             // Series config.
+                          trigger: 'axis',
+                          formatter: function (params,ticket,callback) {
+                              for (var i = 0; i < type22.length; i++){
+                                  if (type22[i].parentid== params[0].name){
+                                      var res = params[0].name + type22[i].name+":"+params[0].value;
+                                      setTimeout(function (){
+                                          callback(ticket, res);
+                                      }, 1)
+                                      break;
+                                  }
+                              }
+                              return 'loading';
+                          }
+                      },
+                      legend: {
+                          orient : 'vertical',
+                          x : 'left',
+                          data:['图书']
+                      },
+                      xAxis : [
+                          {
+                              type : 'category',
+                              data : typearray
+                          }
+                      ],
+                      yAxis : [
+                          {
+                              type : 'value'
+                          }
+                      ],
+                      series : [{
+                          name:'图书',
+                          type:'bar',
+                          barMaxWidth:30,
+                          data:typenumarray
+                      }]
+                  });
+              }
+          });
+          return false;
+      });
+
+    var echartsApp = [], options = [
+      //今日流量趋势
+      {
+        title: {
+          text: '借阅量统计',
+          x: 'center'
+        },
+        tooltip : {
+          trigger: 'axis'
+        },
+        legend: {
+            orient : 'vertical',
+            x : 'left',
+          data:['期刊','图书']
+        },
+        xAxis : [{
+          type : 'category',
+          boundaryGap : false,
+          data: montharray
+        }],
+        yAxis : [{
+          type : 'value'
+        }],
+        series : [{
+          name:'期刊',
+          type:'line',
+          smooth:true,
+            itemStyle: {
+                normal: {
+                    color: 'yellow',
+                    lineStyle: {        // 系列级个性化折线样式
+                        width: 2,
+                        type: 'dashed'
+                    }
+                }
+            },
+          data: periodical
+        },{
+          name:'图书',
+          type:'line',
+          smooth:true,
+          itemStyle: {normal: {areaStyle: {type: 'default'}}},
+          data: bookarray
+        }]
+      },
+
+      { 
+        title : {
+          text: '借阅分类统计',
+          x: 'center',
+        },
+          tooltip : {             // Series config.
+              trigger: 'axis',
+              formatter: function (params,ticket,callback) {
+                  for (var i = 0; i < type22.length; i++){
+                      if (type22[i].parentid== params[0].name){
+                          var res = params[0].name + type22[i].name+":"+params[0].value;
+                          setTimeout(function (){
+                              callback(ticket, res);
+                          }, 1)
+                          break;
+                      }
+                  }
+                  return 'loading';
+              }
+         },
+        legend: {
+          orient : 'vertical',
+          x : 'left',
+          data:['图书']
+        },
+        xAxis : [
+              {
+                  type : 'category',
+                  data : typearray
+              }
+          ],
+        yAxis : [
+              {
+                  type : 'value'
+              }
+        ],
+        series : [{
+          name:'图书',
+          type:'bar',
+          barMaxWidth:30,
+          data:typenumarray
+        }]
+      }
+    ]
+    ,elemDataView=[document.getElementById("chart1"),document.getElementById("chart2")] //elemDataView = $('#LAY-index-dataview').children('div')
+    ,renderDataView = function(index){
+      echartsApp[index] = echarts.init(elemDataView[index], layui.echartsTheme);
+      echartsApp[index].setOption(options[index]);
+      //window.onresize = echartsApp[index].resize;
+      admin.resize(function(){
+        echartsApp[index].resize();
+      });
+    };
+
+
+    //没找到DOM,终止执行
+    if(!elemDataView[0]) return;
+    
+    
+    
+    renderDataView(0);
+    
+    //监听数据概览轮播
+    var carouselIndex = 0;
+    carousel.on('change(LAY-index-dataview)', function(obj){
+        console.log(obj.index);
+      renderDataView(carouselIndex = obj.index);
+    });
+    
+    //监听侧边伸缩
+    layui.admin.on('side', function(){
+      setTimeout(function(){
+        renderDataView(carouselIndex);
+      }, 300);
+    });
+    
+    //监听路由
+    layui.admin.on('hash(tab)', function(){
+      layui.router().path.join('') || renderDataView(carouselIndex);
+    });
+  });
+
+  //最新订单
+  layui.use('table', function(){
+    var $ = layui.$
+    ,table = layui.table;
+    
+    //今日热搜
+    table.render({
+      elem: '#LAY-index-topSearch'
+      ,url: layui.setter.base + 'json/console/top-search.js' //模拟接口
+      ,page: true
+      ,cols: [[
+        {type: 'numbers', fixed: 'left'}
+        ,{field: 'keywords', title: '关键词', minWidth: 300, templet: '<div><a href="https://www.baidu.com/s?wd={{ d.keywords }}" target="_blank" class="layui-table-link">{{ d.keywords }}</div>'}
+        ,{field: 'frequency', title: '搜索次数', minWidth: 120, sort: true}
+        ,{field: 'userNums', title: '用户数', sort: true}
+      ]]
+      ,skin: 'line'
+    });
+    
+    //今日热贴
+    table.render({
+      elem: '#LAY-index-topCard'
+      ,url: layui.setter.base + 'json/console/top-card.js' //模拟接口
+      ,page: true
+      ,cellMinWidth: 120
+      ,cols: [[
+        {type: 'numbers', fixed: 'left'}
+        ,{field: 'title', title: '标题', minWidth: 300, templet: '<div><a href="{{ d.href }}" target="_blank" class="layui-table-link">{{ d.title }}</div>'}
+        ,{field: 'username', title: '发帖者'}
+        ,{field: 'channel', title: '类别'}
+        ,{field: 'crt', title: '点击率', sort: true}
+      ]]
+      ,skin: 'line'
+    });
+  });
+  
+  exports('console', {})
+});

+ 189 - 0
src/main/webapp/skin/default/layuiadmin/modules/contlist.js

@@ -0,0 +1,189 @@
+/**
+
+ @Name:layuiAdmin 内容系统
+ @Author:star1029
+ @Site:http://www.layui.com/admin/
+ @License:LPPL
+
+ */
+
+
+layui.define(['table', 'form'], function(exports){
+  var $ = layui.$
+  ,table = layui.table
+  ,form = layui.form;
+
+  //文章管理
+  table.render({
+    elem: '#LAY-app-content-list'
+    ,url: layui.setter.base + 'json/content/list.js' //模拟接口
+    ,cols: [[
+      {type: 'checkbox', fixed: 'left'},
+      {type: 'numbers', title: '序号'}
+      ,{field: 'id', width: 100, title: '文章ID', sort: true}
+      ,{field: 'label', title: '文章标签', minWidth: 100}
+      ,{field: 'title', title: '文章标题'}
+      ,{field: 'author', title: '作者'}
+      ,{field: 'uploadtime', title: '上传时间', sort: true}
+      ,{field: 'status', title: '发布状态', templet: '#buttonTpl', minWidth: 80, align: 'center'}
+      ,{title: '操作', minWidth: 150, align: 'center', fixed: 'right', toolbar: '#table-content-list'}
+    ]]
+    ,page: true
+    ,limit: 10
+    ,limits: [10, 15, 20, 25, 30]
+    ,text: '对不起,加载出现异常!'
+  });
+
+  //监听工具条
+  table.on('tool(LAY-app-content-list)', function(obj){
+    var data = obj.data;
+    if(obj.event === 'del'){
+      layer.confirm('确定删除此文章?', function(index){
+        obj.del();
+        layer.close(index);
+      });
+    } else if(obj.event === 'edit'){
+      layer.open({
+        type: 2
+        ,title: '编辑文章'
+        ,content: '../../../views/app/content/listform.html?id='+ data.id
+        ,maxmin: true
+        ,area: ['550px', '550px']
+        ,btn: ['确定', '取消']
+        ,yes: function(index, layero){
+          var iframeWindow = window['layui-layer-iframe'+ index]
+          ,submit = layero.find('iframe').contents().find("#layuiadmin-app-form-edit");
+
+          //监听提交
+          iframeWindow.layui.form.on('submit(layuiadmin-app-form-edit)', function(data){
+            var field = data.field; //获取提交的字段
+
+            //提交 Ajax 成功后,静态更新表格中的数据
+            //$.ajax({});
+            obj.update({
+              label: field.label
+              ,title: field.title
+              ,author: field.author
+              ,status: field.status
+            }); //数据更新
+
+            form.render();
+            layer.close(index); //关闭弹层
+          });
+
+          submit.trigger('click');
+        }
+      });
+    }
+  });
+
+  //分类管理
+  table.render({
+    elem: '#LAY-app-content-tags'
+    ,url: layui.setter.base + 'json/content/tags.js' //模拟接口
+    ,cols: [[
+      {type: 'numbers', fixed: 'left'}
+      ,{field: 'id', width: 100, title: 'ID', sort: true}
+      ,{field: 'tags', title: '分类名', minWidth: 100}
+      ,{title: '操作', width: 150, align: 'center', fixed: 'right', toolbar: '#layuiadmin-app-cont-tagsbar'}
+    ]]
+    ,text: '对不起,加载出现异常!'
+  });
+
+  //监听工具条
+  table.on('tool(LAY-app-content-tags)', function(obj){
+    var data = obj.data;
+    if(obj.event === 'del'){
+      layer.confirm('确定删除此分类?', function(index){
+        obj.del();
+        layer.close(index);
+      });
+    } else if(obj.event === 'edit'){
+      var tr = $(obj.tr);
+      layer.open({
+        type: 2
+        ,title: '编辑分类'
+        ,content: '../../../views/app/content/tagsform.html?id='+ data.id
+        ,area: ['450px', '200px']
+        ,btn: ['确定', '取消']
+        ,yes: function(index, layero){
+          //获取iframe元素的值
+          var othis = layero.find('iframe').contents().find("#layuiadmin-app-form-tags")
+          ,tags = othis.find('input[name="tags"]').val();
+
+          if(!tags.replace(/\s/g, '')) return;
+
+          obj.update({
+            tags: tags
+          });
+          layer.close(index);
+        }
+        ,success: function(layero, index){
+          //给iframe元素赋值
+          var othis = layero.find('iframe').contents().find("#layuiadmin-app-form-tags").click();
+          othis.find('input[name="tags"]').val(data.tags);
+        }
+      });
+    }
+  });
+
+  //评论管理
+  table.render({
+    elem: '#LAY-app-content-comm'
+    ,url: layui.setter.base + 'json/content/comment.js' //模拟接口
+    ,cols: [[
+      {type: 'checkbox', fixed: 'left'},
+      {type: 'numbers', title: '序号'}
+      ,{field: 'id', width: 100, title: 'ID', sort: true}
+      ,{field: 'reviewers', title: '评论者', minWidth: 100}
+      ,{field: 'content', title: '评论内容', minWidth: 100}
+      ,{field: 'commtime', title: '评论时间', minWidth: 100, sort: true}
+      ,{title: '操作', width: 150, align: 'center', fixed: 'right', toolbar: '#table-content-com'}
+    ]]
+    ,page: true
+    ,limit: 10
+    ,limits: [10, 15, 20, 25, 30]
+    ,text: '对不起,加载出现异常!'
+  });
+
+  //监听工具条
+  table.on('tool(LAY-app-content-comm)', function(obj){
+    var data = obj.data;
+    if(obj.event === 'del'){
+      layer.confirm('确定删除此条评论?', function(index){
+        obj.del();
+        layer.close(index);
+      });
+    } else if(obj.event === 'edit') {
+      layer.open({
+        type: 2
+        ,title: '编辑评论'
+        ,content: '../../../views/app/content/contform.html'
+        ,area: ['450px', '300px']
+        ,btn: ['确定', '取消']
+        ,yes: function(index, layero){
+          var iframeWindow = window['layui-layer-iframe'+ index]
+          ,submitID = 'layuiadmin-app-comm-submit'
+          ,submit = layero.find('iframe').contents().find('#'+ submitID);
+
+          //监听提交
+          iframeWindow.layui.form.on('submit('+ submitID +')', function(data){
+            var field = data.field; //获取提交的字段
+
+            //提交 Ajax 成功后,静态更新表格中的数据
+            //$.ajax({});
+            table.reload('LAY-app-content-comm'); //数据刷新
+            layer.close(index); //关闭弹层
+          });
+
+          submit.trigger('click');
+        }
+        ,success: function(layero, index){
+
+        }
+      });
+    }
+  });
+
+  exports('contlist', {})
+});

+ 136 - 0
src/main/webapp/skin/default/layuiadmin/modules/forum.js

@@ -0,0 +1,136 @@
+/**
+
+ @Name:layuiAdmin 社区系统
+ @Author:star1029
+ @Site:http://www.layui.com/admin/
+ @License:LPPL
+    
+ */
+
+
+layui.define(['table', 'form'], function(exports){
+  var $ = layui.$
+  ,table = layui.table
+  ,form = layui.form;
+
+  //帖子管理
+  table.render({
+    elem: '#LAY-app-forum-list'
+    ,url: layui.setter.base + 'json/forum/list.js' //模拟接口
+    ,cols: [[
+      {type: 'checkbox', fixed: 'left'}
+      ,{field: 'id', width: 100, title: 'ID', sort: true}
+      ,{field: 'poster', title: '发帖人'}
+      ,{field: 'avatar', title: '头像', width: 100, templet: '#imgTpl'}
+      ,{field: 'content', title: '发帖内容'}
+      ,{field: 'posttime', title: '发帖时间', sort: true}
+      ,{field: 'top', title: '置顶', templet: '#buttonTpl', minWidth: 80, align: 'center'}
+      ,{title: '操作', width: 150, align: 'center', fixed: 'right', toolbar: '#table-forum-list'}
+    ]]
+    ,page: true
+    ,limit: 10
+    ,limits: [10, 15, 20, 25, 30]
+    ,text: '对不起,加载出现异常!'
+  });
+  
+  //监听工具条
+  table.on('tool(LAY-app-forum-list)', function(obj){
+    var data = obj.data;
+    if(obj.event === 'del'){
+      layer.confirm('确定删除此条帖子?', function(index){
+        obj.del();
+        layer.close(index);
+      });
+    } else if(obj.event === 'edit'){
+      var tr = $(obj.tr);
+
+      layer.open({
+        type: 2
+        ,title: '编辑帖子'
+        ,content: '../../../views/app/forum/listform.html'
+        ,area: ['550px', '400px']
+        ,btn: ['确定', '取消']
+        ,resize: false
+        ,yes: function(index, layero){
+          var iframeWindow = window['layui-layer-iframe'+ index]
+          ,submitID = 'LAY-app-forum-submit'
+          ,submit = layero.find('iframe').contents().find('#'+ submitID);
+
+          //监听提交
+          iframeWindow.layui.form.on('submit('+ submitID +')', function(data){
+            var field = data.field; //获取提交的字段
+            
+            //提交 Ajax 成功后,静态更新表格中的数据
+            //$.ajax({});
+            table.reload('LAY-app-forum-list'); //数据刷新
+            layer.close(index); //关闭弹层
+          });  
+          
+          submit.trigger('click');
+        }
+        ,success: function(layero, index){
+          
+        }
+      });
+    }
+  });
+
+  //回帖管理
+  table.render({
+    elem: '#LAY-app-forumreply-list'
+    ,url: layui.setter.base + 'json/forum/replys.js' //模拟接口
+    ,cols: [[
+      {type: 'checkbox', fixed: 'left'}
+      ,{field: 'id', width: 100, title: 'ID', sort: true}
+      ,{field: 'replyer', title: '回帖人'}
+      ,{field: 'cardid', title: '回帖ID', sort: true}
+      ,{field: 'avatar', title: '头像', width: 100, templet: '#imgTpl'}
+      ,{field: 'content', title: '回帖内容', width: 200}
+      ,{field: 'replytime', title: '回帖时间', sort: true}
+      ,{title: '操作', width: 150, align: 'center', fixed: 'right', toolbar: '#table-forum-replys'}
+    ]]
+    ,page: true
+    ,limit: 10
+    ,limits: [10, 15, 20, 25, 30]
+    ,text: '对不起,加载出现异常!'
+  });
+  
+  //监听工具条
+  table.on('tool(LAY-app-forumreply-list)', function(obj){
+    var data = obj.data;
+    if(obj.event === 'del'){
+      layer.confirm('确定删除此条评论?', function(index){
+        obj.del();
+        layer.close(index);
+      });
+    } else if(obj.event === 'edit'){
+      var tr = $(obj.tr);
+
+      layer.open({
+        type: 2
+        ,title: '编辑评论'
+        ,content: '../../../views/app/forum/replysform.html'
+        ,area: ['550px', '350px']
+        ,btn: ['确定', '取消']
+        ,resize: false
+        ,yes: function(index, layero){
+          //获取iframe元素的值
+          var othis = layero.find('iframe').contents().find("#layuiadmin-form-replys");
+          var content = othis.find('textarea[name="content"]').val();
+          
+          //数据更新
+          obj.update({
+            content: content
+          });
+          layer.close(index);
+        }
+        ,success: function(layero, index){
+            
+        }
+
+      });
+    }
+  });
+  
+  exports('forum', {})
+});

+ 0 - 0
src/main/webapp/skin/default/layuiadmin/modules/im.js


+ 132 - 0
src/main/webapp/skin/default/layuiadmin/modules/message.js

@@ -0,0 +1,132 @@
+/**
+
+ @Name:layuiAdmin(iframe版) 消息中心
+ @Author:贤心
+ @Site:http://www.layui.com/admin/
+ @License:LPPL
+    
+ */
+
+
+layui.define(['admin', 'table', 'util'], function(exports){
+  var $ = layui.$
+  ,admin = layui.admin
+  ,table = layui.table
+  ,element = layui.element;
+  
+  var DISABLED = 'layui-btn-disabled'
+  
+  //区分各选项卡中的表格
+  ,tabs = {
+    all: {
+      text: '全部消息'
+      ,id: 'LAY-app-message-all'
+    }
+    ,notice: {
+      text: '通知'
+      ,id: 'LAY-app-message-notice'
+    }
+    ,direct: {
+      text: '私信'
+      ,id: 'LAY-app-message-direct'
+    }
+  };
+  
+  //标题内容模板
+  var tplTitle = function(d){
+    return '<a href="detail.html?id='+ d.id +'">'+ d.title;
+  };
+  
+  //全部消息
+  table.render({
+    elem: '#LAY-app-message-all'
+    ,url: layui.setter.base + 'json/message/all.js' //模拟接口
+    ,page: true
+    ,cols: [[
+      {type: 'checkbox', fixed: 'left'}
+      ,{field: 'title', title: '标题内容', minWidth: 300, templet: tplTitle}
+      ,{field: 'time', title: '时间', width: 170, templet: '<div>{{ layui.util.timeAgo(d.time) }}</div>'}
+    ]]
+    ,skin: 'line'
+  });
+  
+  //通知
+  table.render({
+    elem: '#LAY-app-message-notice'
+    ,url: layui.setter.base + 'json/message/notice.js' //模拟接口
+    ,page: true
+    ,cols: [[
+      {type: 'checkbox', fixed: 'left'}
+      ,{field: 'title', title: '标题内容', minWidth: 300, templet: tplTitle}
+      ,{field: 'time', title: '时间', width: 170, templet: '<div>{{ layui.util.timeAgo(d.time) }}</div>'}
+    ]]
+    ,skin: 'line'
+  });
+  
+  //私信
+  table.render({
+    elem: '#LAY-app-message-direct'
+    ,url: layui.setter.base + 'json/message/direct.js' //模拟接口
+    ,page: true
+    ,cols: [[
+      {type: 'checkbox', fixed: 'left'}
+      ,{field: 'title', title: '标题内容', minWidth: 300, templet: tplTitle}
+      ,{field: 'time', title: '时间', width: 170, templet: '<div>{{ layui.util.timeAgo(d.time) }}</div>'}
+    ]]
+    ,skin: 'line'
+  });
+  
+  
+  //事件处理
+  var events = {
+    del: function(othis, type){
+      var thisTabs = tabs[type]
+      ,checkStatus = table.checkStatus(thisTabs.id)
+      ,data = checkStatus.data; //获得选中的数据
+      if(data.length === 0) return layer.msg('未选中行');
+
+      layer.confirm('确定删除选中的数据吗?', function(){
+        /*
+        admin.req('url', {}, function(){ //请求接口
+          //do somethin
+        });
+        */
+        //此处只是演示,实际应用需把下述代码放入上述Ajax回调中
+        layer.msg('删除成功', {
+          icon: 1
+        });
+        table.reload(thisTabs.id); //刷新表格
+      });
+    }
+    ,ready: function(othis, type){
+      var thisTabs = tabs[type]
+      ,checkStatus = table.checkStatus(thisTabs.id)
+      ,data = checkStatus.data; //获得选中的数据
+      if(data.length === 0) return layer.msg('未选中行');
+      
+      //此处只是演示
+      layer.msg('标记已读成功', {
+        icon: 1
+      });
+      table.reload(thisTabs.id); //刷新表格
+    }
+    ,readyAll: function(othis, type){
+      var thisTabs = tabs[type];
+      
+      //do somethin
+      
+      layer.msg(thisTabs.text + ':全部已读', {
+        icon: 1
+      });
+    }
+  };
+  
+  $('.LAY-app-message-btns .layui-btn').on('click', function(){
+    var othis = $(this)
+    ,thisEvent = othis.data('events')
+    ,type = othis.data('type');
+    events[thisEvent] && events[thisEvent].call(this, othis, type);
+  });
+  
+  exports('message', {});
+});

+ 300 - 0
src/main/webapp/skin/default/layuiadmin/modules/sample.js

@@ -0,0 +1,300 @@
+/**
+
+ @Name:layuiAdmin 主页示例
+ @Author:star1029
+ @Site:http://www.layui.com/admin/
+ @License:GPL-2
+
+ */
+
+
+layui.define(function(exports){
+  var admin = layui.admin;
+
+  //区块轮播切换
+  layui.use(['admin', 'carousel'], function(){
+    var $ = layui.$
+    ,admin = layui.admin
+    ,carousel = layui.carousel
+    ,element = layui.element
+    ,device = layui.device();
+
+    //轮播切换
+    $('.layadmin-carousel').each(function(){
+      var othis = $(this);
+      carousel.render({
+        elem: this
+        ,width: '100%'
+        ,arrow: 'none'
+        ,interval: othis.data('interval')
+        ,autoplay: othis.data('autoplay') === true
+        ,trigger: (device.ios || device.android) ? 'click' : 'hover'
+        ,anim: othis.data('anim')
+      });
+    });
+
+    element.render('progress');
+
+  });
+
+  //八卦新闻
+  layui.use(['carousel', 'echarts'], function(){
+    var $ = layui.$
+    ,carousel = layui.carousel
+    ,echarts = layui.echarts;
+
+    var echartsApp = [], options = [
+      {
+        title : {
+          subtext: '完全实况球员数据',
+          textStyle: {
+            fontSize: 14
+          }
+        },
+        tooltip : {
+          trigger: 'axis'
+        },
+        legend: {
+          x : 'left',
+          data:['罗纳尔多','舍普琴科']
+        },
+        polar : [
+          {
+            indicator : [
+              {text : '进攻', max  : 100},
+              {text : '防守', max  : 100},
+              {text : '体能', max  : 100},
+              {text : '速度', max  : 100},
+              {text : '力量', max  : 100},
+              {text : '技巧', max  : 100}
+            ],
+            radius : 130
+          }
+        ],
+        series : [
+          {
+            type: 'radar',
+            center : ['50%', '50%'],
+            itemStyle: {
+              normal: {
+                areaStyle: {
+                  type: 'default'
+                }
+              }
+            },
+            data:[
+              {value : [97, 42, 88, 94, 90, 86], name : '舍普琴科'},
+              {value : [97, 32, 74, 95, 88, 92], name : '罗纳尔多'}
+            ]
+          }
+        ]
+      }
+    ]
+    ,elemDataView = $('#LAY-index-pageone').children('div')
+    ,renderDataView = function(index){
+      echartsApp[index] = echarts.init(elemDataView[index], layui.echartsTheme);
+      echartsApp[index].setOption(options[index]);
+      window.onresize = echartsApp[index].resize;
+    };
+    //没找到DOM,终止执行
+    if(!elemDataView[0]) return;
+
+    renderDataView(0);
+  });
+
+  //访问量
+  layui.use(['carousel', 'echarts'], function(){
+    var $ = layui.$
+    ,carousel = layui.carousel
+    ,echarts = layui.echarts;
+
+    var echartsApp = [], options = [
+      {
+        tooltip : {
+          trigger: 'axis'
+        },
+        calculable : true,
+        legend: {
+          data:['访问量','下载量','平均访问量']
+        },
+
+        xAxis : [
+          {
+            type : 'category',
+            data : ['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月']
+          }
+        ],
+        yAxis : [
+          {
+            type : 'value',
+            name : '访问量',
+            axisLabel : {
+              formatter: '{value} 万'
+            }
+          },
+          {
+            type : 'value',
+            name : '下载量',
+            axisLabel : {
+                formatter: '{value} 万'
+            }
+          }
+        ],
+        series : [
+          {
+            name:'访问量',
+            type:'line',
+            data:[900, 850, 950, 1000, 1100, 1050, 1000, 1150, 1250, 1370, 1250, 1100]
+          },
+          {
+            name:'下载量',
+            type:'line',
+            yAxisIndex: 1,
+            data:[850, 850, 800, 950, 1000, 950, 950, 1150, 1100, 1240, 1000, 950]
+          },
+          {
+            name:'平均访问量',
+            type:'line',
+            data:[870, 850, 850, 950, 1050, 1000, 980, 1150, 1000, 1300, 1150, 1000]
+          }
+        ]
+      }
+    ]
+    ,elemDataView = $('#LAY-index-pagetwo').children('div')
+    ,renderDataView = function(index){
+      echartsApp[index] = echarts.init(elemDataView[index], layui.echartsTheme);
+      echartsApp[index].setOption(options[index]);
+      window.onresize = echartsApp[index].resize;
+    };
+    //没找到DOM,终止执行
+    if(!elemDataView[0]) return;
+    renderDataView(0);
+
+  });
+
+  //地图
+  layui.use(['carousel', 'echarts'], function(){
+    var $ = layui.$
+    ,carousel = layui.carousel
+    ,echarts = layui.echarts;
+
+    var echartsApp = [], options = [
+      {
+        title : {
+          text: '全国的 layui 用户分布',
+          subtext: '不完全统计'
+        },
+        tooltip : {
+          trigger: 'item'
+        },
+        dataRange: {
+          orient: 'horizontal',
+          min: 0,
+          max: 60000,
+          text:['高','低'],
+          splitNumber:0
+        },
+        series : [
+          {
+            name: '全国的 layui 用户分布',
+            type: 'map',
+            mapType: 'china',
+            selectedMode : 'multiple',
+            itemStyle:{
+                normal:{label:{show:true}},
+                emphasis:{label:{show:true}}
+            },
+            data:[
+                {name:'西藏', value:60},
+                {name:'青海', value:167},
+                {name:'宁夏', value:210},
+                {name:'海南', value:252},
+                {name:'甘肃', value:502},
+                {name:'贵州', value:570},
+                {name:'新疆', value:661},
+                {name:'云南', value:8890},
+                {name:'重庆', value:10010},
+                {name:'吉林', value:5056},
+                {name:'山西', value:2123},
+                {name:'天津', value:9130},
+                {name:'江西', value:10170},
+                {name:'广西', value:6172},
+                {name:'陕西', value:9251},
+                {name:'黑龙江', value:5125},
+                {name:'内蒙古', value:1435},
+                {name:'安徽', value:9530},
+                {name:'北京', value:51919},
+                {name:'福建', value:3756},
+                {name:'上海', value:59190},
+                {name:'湖北', value:37109},
+                {name:'湖南', value:8966},
+                {name:'四川', value:31020},
+                {name:'辽宁', value:7222},
+                {name:'河北', value:3451},
+                {name:'河南', value:9693},
+                {name:'浙江', value:62310},
+                {name:'山东', value:39231},
+                {name:'江苏', value:35911},
+                {name:'广东', value:55891}
+            ]
+          }
+        ]
+      }
+    ]
+    ,elemDataView = $('#LAY-index-pagethree').children('div')
+    ,renderDataView = function(index){
+      echartsApp[index] = echarts.init(elemDataView[index], layui.echartsTheme);
+      echartsApp[index].setOption(options[index]);
+      window.onresize = echartsApp[index].resize;
+    };
+    //没找到DOM,终止执行
+    if(!elemDataView[0]) return;
+
+    renderDataView(0);
+  });
+
+  //项目进展
+  layui.use('table', function(){
+    var $ = layui.$
+    ,table = layui.table;
+
+    table.render({
+      elem: '#LAY-index-prograss'
+      ,url: layui.setter.base + 'json/console/prograss.js' //模拟接口
+      ,cols: [[
+        {type: 'numbers', title: '序号'},
+        {type: 'checkbox', fixed: 'left'}
+        ,{field: 'prograss', title: '任务'}
+        ,{field: 'time', title: '所需时间'}
+        ,{field: 'complete', title: '完成情况'
+          ,templet: function(d){
+            if(d.complete == '已完成'){
+              return '<del style="color: #5FB878;">'+ d.complete +'</del>'
+            }else if(d.complete == '进行中'){
+              return '<span style="color: #FFB800;">'+ d.complete +'</span>'
+            }else{
+              return '<span style="color: #FF5722;">'+ d.complete +'</span>'
+            }
+          }
+        }
+      ]]
+      ,skin: 'line'
+    });
+  });
+
+  //回复留言
+  admin.events.replyNote = function(othis){
+    var nid = othis.data('id');
+    layer.prompt({
+      title: '回复留言 ID:'+ nid
+      ,formType: 2
+    }, function(value, index){
+      //这里可以请求 Ajax
+      //…
+      layer.msg('得到:'+ value);
+      layer.close(index);
+    });
+  };
+
+  exports('sample', {})
+});

File diff suppressed because it is too large
+ 1166 - 0
src/main/webapp/skin/default/layuiadmin/modules/senior.js


+ 153 - 0
src/main/webapp/skin/default/layuiadmin/modules/set.js

@@ -0,0 +1,153 @@
+/**
+
+ @Name:layuiAdmin(iframe版) 设置
+ @Author:贤心
+ @Site:http://www.layui.com/admin/
+ @License: LPPL
+    
+ */
+ 
+layui.define(['form', 'upload'], function(exports){
+  var $ = layui.$
+  ,layer = layui.layer
+  ,laytpl = layui.laytpl
+  ,setter = layui.setter
+  ,view = layui.view
+  ,admin = layui.admin
+  ,form = layui.form
+  ,upload = layui.upload;
+
+  var $body = $('body');
+  
+  //自定义验证
+  form.verify({
+    nickname: function(value, item){ //value:表单的值、item:表单的DOM对象
+      if(!new RegExp("^[a-zA-Z0-9_\u4e00-\u9fa5\\s·]+$").test(value)){
+        return '用户名不能有特殊字符';
+      }
+      if(/(^\_)|(\__)|(\_+$)/.test(value)){
+        return '用户名首尾不能出现下划线\'_\'';
+      }
+      if(/^\d+\d+\d$/.test(value)){
+        return '用户名不能全为数字';
+      }
+    }
+    
+    //我们既支持上述函数式的方式,也支持下述数组的形式
+    //数组的两个值分别代表:[正则匹配、匹配不符时的提示文字]
+    ,pass: [
+      /^[\S]{6,12}$/
+      ,'密码必须6到12位,且不能出现空格'
+    ]
+    
+    //确认密码
+    ,repass: function(value){
+      if(value !== $('#LAY_password').val()){
+        return '两次密码输入不一致';
+      }
+    }
+  });
+  
+  //网站设置
+  form.on('submit(set_website)', function(obj){
+    layer.msg(JSON.stringify(obj.field));
+    
+    //提交修改
+    /*
+    admin.req({
+      url: ''
+      ,data: obj.field
+      ,success: function(){
+        
+      }
+    });
+    */
+    return false;
+  });
+  
+  //邮件服务
+  form.on('submit(set_system_email)', function(obj){
+    layer.msg(JSON.stringify(obj.field));
+    
+    //提交修改
+    /*
+    admin.req({
+      url: ''
+      ,data: obj.field
+      ,success: function(){
+        
+      }
+    });
+    */
+    return false;
+  });
+  
+  
+  //设置我的资料
+  form.on('submit(setmyinfo)', function(obj){
+    layer.msg(JSON.stringify(obj.field));
+    
+    //提交修改
+    /*
+    admin.req({
+      url: ''
+      ,data: obj.field
+      ,success: function(){
+        
+      }
+    });
+    */
+    return false;
+  });
+
+  //上传头像
+  var avatarSrc = $('#LAY_avatarSrc');
+  upload.render({
+    url: '/api/upload/'
+    ,elem: '#LAY_avatarUpload'
+    ,done: function(res){
+      if(res.status == 0){
+        avatarSrc.val(res.url);
+      } else {
+        layer.msg(res.msg, {icon: 5});
+      }
+    }
+  });
+  
+  //查看头像
+  admin.events.avartatPreview = function(othis){
+    var src = avatarSrc.val();
+    layer.photos({
+      photos: {
+        "title": "查看头像" //相册标题
+        ,"data": [{
+          "src": src //原图地址
+        }]
+      }
+      ,shade: 0.01
+      ,closeBtn: 1
+      ,anim: 5
+    });
+  };
+  
+  
+  //设置密码
+  form.on('submit(setmypass)', function(obj){
+    layer.msg(JSON.stringify(obj.field));
+    
+    //提交修改
+    /*
+    admin.req({
+      url: ''
+      ,data: obj.field
+      ,success: function(){
+        
+      }
+    });
+    */
+    return false;
+  });
+  
+  //对外暴露的接口
+  exports('set', {});
+});

+ 65 - 0
src/main/webapp/skin/default/layuiadmin/modules/user.js

@@ -0,0 +1,65 @@
+/**
+
+ @Name:layuiAdmin 用户登入和注册等
+ @Author:贤心
+ @Site:http://www.layui.com/admin/
+ @License: LPPL
+    
+ */
+ 
+layui.define('form', function(exports){
+  var $ = layui.$
+  ,layer = layui.layer
+  ,laytpl = layui.laytpl
+  ,setter = layui.setter
+  ,view = layui.view
+  ,admin = layui.admin
+  ,form = layui.form;
+
+  var $body = $('body');
+  
+  //自定义验证
+  form.verify({
+    nickname: function(value, item){ //value:表单的值、item:表单的DOM对象
+      if(!new RegExp("^[a-zA-Z0-9_\u4e00-\u9fa5\\s·]+$").test(value)){
+        return '用户名不能有特殊字符';
+      }
+      if(/(^\_)|(\__)|(\_+$)/.test(value)){
+        return '用户名首尾不能出现下划线\'_\'';
+      }
+      if(/^\d+\d+\d$/.test(value)){
+        return '用户名不能全为数字';
+      }
+    }
+    
+    //我们既支持上述函数式的方式,也支持下述数组的形式
+    //数组的两个值分别代表:[正则匹配、匹配不符时的提示文字]
+    ,pass: [
+      /^[\S]{6,12}$/
+      ,'密码必须6到12位,且不能出现空格'
+    ] 
+  });
+  
+  
+  //发送短信验证码
+  admin.sendAuthCode({
+    elem: '#LAY-user-getsmscode'
+    ,elemPhone: '#LAY-user-login-cellphone'
+    ,elemVercode: '#LAY-user-login-vercode'
+    ,ajax: {
+      url: layui.setter.base + 'json/user/sms.js' //实际使用请改成服务端真实接口
+    }
+  });
+  
+  
+  
+  
+  //更换图形验证码
+  $body.on('click', '#LAY-user-get-vercode', function(){
+    var othis = $(this);
+    this.src = 'https://www.oschina.net/action/user/captcha?t='+ new Date().getTime()
+  });
+  
+  //对外暴露的接口
+  exports('user', {});
+});

+ 209 - 0
src/main/webapp/skin/default/layuiadmin/modules/useradmin.js

@@ -0,0 +1,209 @@
+/**
+
+ @Name:layuiAdmin 用户管理 管理员管理 角色管理
+ @Author:star1029
+ @Site:http://www.layui.com/admin/
+ @License:LPPL
+    
+ */
+
+
+layui.define(['table', 'form'], function(exports){
+  var $ = layui.$
+  ,table = layui.table
+  ,form = layui.form;
+
+  //用户管理
+  table.render({
+    elem: '#LAY-user-manage'
+    ,url: layui.setter.base + 'json/useradmin/webuser.js' //模拟接口
+    ,cols: [[
+      {type: 'checkbox', fixed: 'left'}
+      ,{field: 'id', width: 100, title: 'ID', sort: true}
+      ,{field: 'username', title: '用户名', minWidth: 100}
+      ,{field: 'avatar', title: '头像', width: 100, templet: '#imgTpl'}
+      ,{field: 'phone', title: '手机'}
+      ,{field: 'email', title: '邮箱'}
+      ,{field: 'sex', width: 80, title: '性别'}
+      ,{field: 'ip', title: 'IP'}
+      ,{field: 'jointime', title: '加入时间', sort: true}
+      ,{title: '操作', width: 150, align:'center', fixed: 'right', toolbar: '#table-useradmin-webuser'}
+    ]]
+    ,page: true
+    ,limit: 30
+    ,height: 'full-220'
+    ,text: '对不起,加载出现异常!'
+  });
+  
+  //监听工具条
+  table.on('tool(LAY-user-manage)', function(obj){
+    var data = obj.data;
+    if(obj.event === 'del'){
+      layer.prompt({
+        formType: 1
+        ,title: '敏感操作,请验证口令'
+      }, function(value, index){
+        layer.close(index);
+        
+        layer.confirm('是否确定删除?', function(index){
+          obj.del();
+          layer.close(index);
+        });
+      });
+    } else if(obj.event === 'edit'){
+      var tr = $(obj.tr);
+
+      layer.open({
+        type: 2
+        ,title: '编辑用户'
+        ,content: '../../../views/user/user/userform.html'
+        ,maxmin: true
+        ,area: ['500px', '450px']
+        ,btn: ['确定', '取消']
+        ,yes: function(index, layero){
+          var iframeWindow = window['layui-layer-iframe'+ index]
+          ,submitID = 'LAY-user-front-submit'
+          ,submit = layero.find('iframe').contents().find('#'+ submitID);
+
+          //监听提交
+          iframeWindow.layui.form.on('submit('+ submitID +')', function(data){
+            var field = data.field; //获取提交的字段
+            
+            //提交 Ajax 成功后,静态更新表格中的数据
+            //$.ajax({});
+            table.reload('LAY-user-front-submit'); //数据刷新
+            layer.close(index); //关闭弹层
+          });  
+          
+          submit.trigger('click');
+        }
+        ,success: function(layero, index){
+          
+        }
+      });
+    }
+  });
+
+  //管理员管理
+  table.render({
+    elem: '#LAY-user-back-manage'
+    ,url: layui.setter.base + 'json/useradmin/mangadmin.js' //模拟接口
+    ,cols: [[
+      {type: 'checkbox', fixed: 'left'}
+      ,{field: 'id', width: 80, title: 'ID', sort: true}
+      ,{field: 'loginname', title: '登录名'}
+      ,{field: 'telphone', title: '手机'}
+      ,{field: 'email', title: '邮箱'}
+      ,{field: 'role', title: '角色'}
+      ,{field: 'jointime', title: '加入时间', sort: true}
+      ,{field: 'check', title:'审核状态', templet: '#buttonTpl', minWidth: 80, align: 'center'}
+      ,{title: '操作', width: 150, align: 'center', fixed: 'right', toolbar: '#table-useradmin-admin'}
+    ]]
+    ,text: '对不起,加载出现异常!'
+  });
+  
+  //监听工具条
+  table.on('tool(LAY-user-back-manage)', function(obj){
+    var data = obj.data;
+    if(obj.event === 'del'){
+      layer.prompt({
+        formType: 1
+        ,title: '敏感操作,请验证口令'
+      }, function(value, index){
+        layer.close(index);
+        layer.confirm('确定删除此管理员?', function(index){
+          console.log(obj)
+          obj.del();
+          layer.close(index);
+        });
+      });
+    }else if(obj.event === 'edit'){
+      var tr = $(obj.tr);
+
+      layer.open({
+        type: 2
+        ,title: '编辑管理员'
+        ,content: '../../../views/user/administrators/adminform.html'
+        ,area: ['420px', '420px']
+        ,btn: ['确定', '取消']
+        ,yes: function(index, layero){
+          var iframeWindow = window['layui-layer-iframe'+ index]
+          ,submitID = 'LAY-user-back-submit'
+          ,submit = layero.find('iframe').contents().find('#'+ submitID);
+
+          //监听提交
+          iframeWindow.layui.form.on('submit('+ submitID +')', function(data){
+            var field = data.field; //获取提交的字段
+            
+            //提交 Ajax 成功后,静态更新表格中的数据
+            //$.ajax({});
+            table.reload('LAY-user-front-submit'); //数据刷新
+            layer.close(index); //关闭弹层
+          });  
+          
+          submit.trigger('click');
+        }
+        ,success: function(layero, index){           
+          
+        }
+      })
+    }
+  });
+
+  //角色管理
+  table.render({
+    elem: '#LAY-user-back-role'
+    ,url: layui.setter.base + 'json/useradmin/role.js' //模拟接口
+    ,cols: [[
+      {type: 'checkbox', fixed: 'left'}
+      ,{field: 'id', width: 80, title: 'ID', sort: true}
+      ,{field: 'rolename', title: '角色名'}
+      ,{field: 'limits', title: '拥有权限'}
+      ,{field: 'descr', title: '具体描述'}
+      ,{title: '操作', width: 150, align: 'center', fixed: 'right', toolbar: '#table-useradmin-admin'}
+    ]]
+    ,text: '对不起,加载出现异常!'
+  });
+  
+  //监听工具条
+  table.on('tool(LAY-user-back-role)', function(obj){
+    var data = obj.data;
+    if(obj.event === 'del'){
+      layer.confirm('确定删除此角色?', function(index){
+        obj.del();
+        layer.close(index);
+      });
+    }else if(obj.event === 'edit'){
+      var tr = $(obj.tr);
+
+      layer.open({
+        type: 2
+        ,title: '编辑角色'
+        ,content: '../../../views/user/administrators/roleform.html'
+        ,area: ['500px', '480px']
+        ,btn: ['确定', '取消']
+        ,yes: function(index, layero){
+          var iframeWindow = window['layui-layer-iframe'+ index]
+          ,submit = layero.find('iframe').contents().find("#LAY-user-role-submit");
+
+          //监听提交
+          iframeWindow.layui.form.on('submit(LAY-user-role-submit)', function(data){
+            var field = data.field; //获取提交的字段
+            
+            //提交 Ajax 成功后,静态更新表格中的数据
+            //$.ajax({});
+            table.reload('LAY-user-back-role'); //数据刷新
+            layer.close(index); //关闭弹层
+          });  
+          
+          submit.trigger('click');
+        }
+        ,success: function(layero, index){
+        
+        }
+      })
+    }
+  });
+
+  exports('useradmin', {})
+});

+ 76 - 0
src/main/webapp/skin/default/layuiadmin/modules/workorder.js

@@ -0,0 +1,76 @@
+/**
+
+ @Name:layuiAdmin 工单系统
+ @Author:star1029
+ @Site:http://www.layui.com/admin/
+ @License:GPL-2
+    
+ */
+
+
+layui.define(['table', 'form', 'element'], function(exports){
+  var $ = layui.$
+  ,table = layui.table
+  ,form = layui.form
+  ,element = layui.element;
+
+  table.render({
+    elem: '#LAY-app-system-order'
+    ,url: layui.setter.base + 'json/workorder/demo.js' //模拟接口
+    ,cols: [[
+      {type: 'numbers', fixed: 'left'}
+      ,{field: 'orderid', width: 100, title: '工单号', sort: true}
+      ,{field: 'attr', width: 100, title: '业务性质'}
+      ,{field: 'title', width: 100, title: '工单标题', width: 300}
+      ,{field: 'progress', title: '进度', width: 200, align: 'center', templet: '#progressTpl'}
+      ,{field: 'submit', width: 100, title: '提交者'}
+      ,{field: 'accept', width: 100, title: '受理人员'}
+      ,{field: 'state', title: '工单状态', templet: '#buttonTpl', minWidth: 80, align: 'center'}
+      ,{title: '操作', align: 'center', fixed: 'right', toolbar: '#table-system-order'}
+    ]]
+    ,page: true
+    ,limit: 10
+    ,limits: [10, 15, 20, 25, 30]
+    ,text: '对不起,加载出现异常!'
+    ,done: function(){
+      element.render('progress')
+    }
+  });
+
+  //监听工具条
+  table.on('tool(LAY-app-system-order)', function(obj){
+    var data = obj.data;
+    if(obj.event === 'edit'){
+      var tr = $(obj.tr);
+      layer.open({
+        type: 2
+        ,title: '编辑工单'
+        ,content: '../../../views/app/workorder/listform.html'
+        ,area: ['450px', '450px']
+        ,btn: ['确定', '取消']
+        ,yes: function(index, layero){
+          var iframeWindow = window['layui-layer-iframe'+ index]
+          ,submitID = 'LAY-app-workorder-submit'
+          ,submit = layero.find('iframe').contents().find('#'+ submitID);
+
+          //监听提交
+          iframeWindow.layui.form.on('submit('+ submitID +')', function(data){
+            var field = data.field; //获取提交的字段
+            
+            //提交 Ajax 成功后,静态更新表格中的数据
+            //$.ajax({});
+            table.reload('LAY-user-front-submit'); //数据刷新
+            layer.close(index); //关闭弹层
+          });  
+          
+          submit.trigger('click');
+        }
+        ,success: function(layero, index){
+
+        }
+      });
+    }
+  });
+
+  exports('workorder', {})
+});

+ 530 - 0
src/main/webapp/skin/default/layuiadmin/style/admin.css

@@ -0,0 +1,530 @@
+/**
+
+ @Name:layuiAdmin
+ @Author:贤心
+ @Site:http://www.layui.com/admin/
+ @License:LPPL
+
+ */
+
+html #layuicss-layuiAdmin{display: none; position: absolute; width: 1989px;}
+
+
+
+
+/* 系统 */
+::-webkit-input-placeholder{color: #ccc}
+
+/** 滚动条 **/
+/*
+::-webkit-scrollbar{width: 10px; height: 10px;}
+::-webkit-scrollbar-button:vertical{display: none;}
+::-webkit-scrollbar-track, ::-webkit-scrollbar-corner{background-color: #e2e2e2;}
+::-webkit-scrollbar-thumb{border-radius: 0; background-color: rgba(0,0,0,.3);}
+::-webkit-scrollbar-thumb:vertical:hover{background-color: rgba(0,0,0,.35);}
+::-webkit-scrollbar-thumb:vertical:active{background-color: rgba(0,0,0,.38);}
+*/
+
+
+/* 全局 */
+html{background-color: #f2f2f2; color: #666;}
+*[template],
+.layadmin-tabsbody-item{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-layout-right .layui-nav-item a{color: #fff;}
+.layui-layout-admin .layui-header .layui-layout-right .layui-nav-item a cite{color: rgba(255,255,255,.7);}
+*/
+
+.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-logo,
+.layui-layout-admin .layui-header .layui-nav .layui-nav-item{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;}
+.layui-layout-admin .layui-layout-left,
+.layadmin-pagetabs,
+.layui-layout-admin .layui-body,
+.layui-layout-admin .layui-footer{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{position: fixed; top: 90px; bottom: 0;}
+.layui-layout-admin .layui-body .layadmin-tabsbody-item{position: absolute; top: 0; bottom: 0; left: 0; right: 0; overflow: hidden;}
+.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 a,
+.layui-layout-admin .layui-header .layui-nav .layui-nav-child dd.layui-this{background: none}
+
+/* 统一动画 */
+.layui-layout-admin .layui-header .layui-nav .layui-nav-item,
+.layui-layout-admin .layui-layout-left,
+.layadmin-pagetabs,
+.layui-layout-admin .layui-body,
+.layui-layout-admin .layui-footer,
+.layui-layout-admin .layui-side,
+.layui-layout-admin .layui-logo,
+.layui-layout-admin .layui-header .layui-layout-right{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-table th,
+.layui-table td,
+.layui-table[lay-skin="line"],
+.layui-table[lay-skin="row"],
+.layui-table-view,
+.layui-table-header,
+.layui-table-tool,
+.layui-table-page,
+.layui-table-fixed-r,
+.layui-table-tips-main{border-color: #f6f6f6;}
+
+.layui-table thead tr,
+.layui-table-header,
+.layui-table-tool,
+.layui-table-patch,
+.layui-table-mend{background-color: #fff;}
+
+.layui-table[lay-even] tr:nth-child(even),
+.layui-table tbody tr:hover,
+.layui-table-hover,
+.layui-table-click{background-color: #f8f8f8;}
+*/
+
+/* 表单 */
+.layui-form[wid100] .layui-form-label{width: 100px;}
+.layui-form[wid100] .layui-input-block{margin-left: 130px;}
+@media screen and (max-width: 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;}
+
+/* 辅助 */
+.layadmin-flexible{}
+.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: 0.8;}
+
+/* 弹出面板 */
+.layui-layer-admin .layui-layer-title{height: 50px; line-height: 50px; border: none 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-input-search{display: inline-block; vertical-align: middle; height: 32px; border: none; cursor: text;}
+.layui-layout-admin .layui-layout-left a{padding: 0;}
+.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-nav-item:hover{}
+.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: 73px; background: none;}
+.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: none;}
+.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: none!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-width: 992px) {
+  .layui-layout-admin .layui-side{transform: translate3d(-220px, 0, 0); -webkit-transform: translate3d(-220px, 0, 0); width: 220px;}
+  .layui-layout-admin .layui-layout-left,
+  .layadmin-pagetabs,
+  .layui-layout-admin .layui-body,
+  .layui-layout-admin .layui-footer{left: 0;}
+}
+
+/* 侧边收缩模式 */
+.layadmin-side-shrink .layui-layout-admin .layui-logo{width: 60px; background-image: url(res/logo.png); /*background-size: 20px;)*/}
+.layadmin-side-shrink .layui-layout-admin .layui-logo span{display: none;}
+.layadmin-side-shrink .layui-side{left: 0; width: 60px;}
+.layadmin-side-shrink .layui-layout-admin .layui-layout-left,
+.layadmin-side-shrink .layadmin-pagetabs,
+.layadmin-side-shrink .layui-layout-admin .layui-body,
+.layadmin-side-shrink .layui-layout-admin .layui-footer{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 > a .layui-nav-more,
+.layadmin-side-shrink .layui-side-menu .layui-nav > .layui-nav-item > .layui-nav-child{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 .layui-layout-admin .layui-layout-left,
+.layadmin-side-spread-sm .layadmin-pagetabs,
+.layadmin-side-spread-sm .layui-layout-admin .layui-body,
+.layadmin-side-spread-sm .layui-layout-admin .layui-footer{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{height: 40px; line-height: 40px; padding: 0 80px 0 40px; /*border-bottom: 2px solid #292B34;*/ 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; 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: none;}
+.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-tabs-select.layui-nav .layui-nav-more,
+.layadmin-tabs-select.layui-nav .layui-nav-bar{display: none;}
+
+.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:first-child .layui-tab-close{display: none;}
+.layadmin-pagetabs .layui-tab-title li .layui-tab-close{position: absolute; right: 8px; top: 50%; margin: -7px 0 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:hover,
+.layadmin-pagetabs .layui-tab-title li.layui-this{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-footer{padding: 10px 0; text-align: center;}
+
+/* 默认主题修饰 */
+.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; border-bottom-color: #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{box-shadow: 0 -1px 2px 0 rgba(0,0,0,.05);}
+
+.layui-side-menu,
+.layadmin-setTheme-side{background-color: #20222A; color: #fff;}
+.layadmin-setTheme-header{background-color: #fff;}
+
+.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{position: relative;}
+.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; right: 0; bottom: 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: none;}
+
+/* 重置tab样式 */
+.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: 355px !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;}
+.layadmin-list li{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-font-em{font-size: 13px; color: #758697;}
+
+
+
+
+/********************************
+
+  其它主页开始 By star1029
+
+*******************************/
+
+/* 主页示例一 by star1029 */
+/* 进行中的项目 */
+.layui-card-header .layui-a-tips{position: absolute; right: 15px; color: #01AAED;}
+.layuiadmin-card-text{background-color: #f8f8f8; color: #777; padding: 24px;}
+.layuiadmin-card-text .layui-text-top{padding-bottom: 10px;}
+.layuiadmin-card-text .layui-text-top i{margin-right: 10px; font-size: 24px; color: #009688;}
+.layuiadmin-card-text .layui-text-top a{line-height: 24px; font-size: 16px; vertical-align: top;}
+.layuiadmin-card-text .layui-text-center{height: 44px; line-height: 22px; margin-bottom: 10px; overflow: hidden;}
+.layuiadmin-card-text .layui-text-bottom{position: relative;}
+.layuiadmin-card-text .layui-text-bottom a{color: #777; font-size: 12px; text-overflow: ellipsis; word-break: break-all;}
+.layuiadmin-card-text .layui-text-bottom span{color: #CCC; font-size: 12px; position: absolute; right: 0;}
+.layuiadmin-card-text a:hover,
+.layuiadmin-card-link a:hover,
+.layuiadmin-card-team li a:hover{color: #01AAED; transition: all 300ms;}
+
+/* 动态 */
+.layuiadmin-card-status{padding: 0 10px 10px 10px;}
+.layuiadmin-card-status dd{padding: 15px 0; border-bottom: 1px solid #EEE; display: -webkit-flex; display: flex;}
+.layuiadmin-card-status dd:last-child{border: none;}
+.layuiadmin-card-status dd div.layui-status-img,
+.layuiadmin-card-team .layui-team-img{width: 32px; height: 32px; border-radius: 50%; background-color: #009688; margin-right: 15px;}
+.layuiadmin-card-status dd div.layui-status-img a{width: 100%; height: 100%; display: inline-block; text-align: center; line-height: 32px;}
+.layuiadmin-card-status dd div.layui-status-img img,
+.layuiadmin-card-team .layui-team-img img{width: 50%; height: 50%;}
+.layuiadmin-card-status dd div a{color: #01AAED;}
+.layuiadmin-card-status dd div span{color: #BBB;}
+
+/* 便捷导航 */
+.layuiadmin-card-link{padding-left: 10px; font-size: 0}
+.layuiadmin-card-link a{display: inline-block; width: 25%; color: #666; font-size: 14px; margin-bottom: 12px;}
+.layuiadmin-card-link button{vertical-align: top;}
+.layuiadmin-card-link button:hover{color: #009688;}
+
+/* 团队 */
+.layuiadmin-card-team li{padding: 10px 0 10px 10px;}
+.layuiadmin-card-team .layui-team-img{display: inline-block; margin-right: 8px; width: 24px; height: 24px; text-align: center; line-height: 24px;}
+.layuiadmin-card-team span{color: #777;}
+
+
+/* 主页示例二 by star1029 */
+.layuiadmin-badge{position: absolute; top: 50%; margin-top: -9px; right: 15px; color: #01AAED; }
+.layuiadmin-card-list{padding: 15px;}
+.layuiadmin-card-list p.layuiadmin-big-font{font-size: 36px; color: #666; line-height: 36px; padding: 5px 0 10px; overflow: hidden; text-overflow: ellipsis; word-break: break-all; white-space: nowrap;}
+.layuiadmin-card-list p.layuiadmin-normal-font{padding-bottom: 10px; font-size: 20px; color: #666; line-height: 24px;}
+.layuiadmin-span-color{font-size: 14px; position: absolute; right: 15px;}
+.layuiadmin-span-color i{padding-left: 5px;}
+.layuiadmin-btn-group{position: absolute; right: 15px;}
+
+.layuiadmin-card-status li{position: relative; padding: 10px 0; border-bottom: 1px solid #EEE;}
+.layuiadmin-card-status li h3{padding-bottom: 5px; font-weight: 700;}
+.layuiadmin-card-status li p{padding-bottom: 10px;}
+.layuiadmin-card-status li>span{color: #999;}
+.layuiadmin-home2-usernote .layuiadmin-reply{display: none; position: absolute; right: 0; bottom: 12px;}
+.layuiadmin-home2-usernote li:hover .layuiadmin-reply{display: block;}
+
+.layuiadmin-page-table td span{color: #2F4056;}
+.layuiadmin-page-table td span.first{color: #FF5722;}
+.layuiadmin-page-table td span.second{color: #FFB800;}
+.layuiadmin-page-table td span.third{color: #5FB878;}
+
+
+/******  其它主页结束 By star1029  ******/
+
+
+
+
+/*
+
+ 应用
+
+*/
+
+
+/* 消息中心 */
+.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;}
+
+/* 文章列表 */
+.layuiadmin-content-bread{padding-bottom: 20px;}
+
+/* 进度条样式 */
+.layuiadmin-order-progress{position: relative; top: 12px;}
+
+
+
+
+/*
+
+ 系统
+
+*/
+
+
+/* 头部图标重置 */
+.layui-card-header.layuiadmin-card-header-auto{padding-top: 15px; padding-bottom: 15px; height: auto;}
+.layuiadmin-card-header-auto i.layuiadmin-button-btn{position: relative; right: 0; top: 0; vertical-align: middle;}
+.layuiadmin-card-header-auto .layui-form-item:last-child{margin-bottom: 0;}
+
+
+/* 主题设置 */
+.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 0; 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{-webkit-animation-name: layui-lr; animation-name: layui-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-width: 768px) {
+
+  /* 产品清单模板 */
+  .layadmin-panel-selection{margin: 0; width: auto;}
+
+  /* 导航 */
+  .layui-body .layui-nav .layui-nav-item{display: block;}
+
+  /* 主体容器 */
+  .layui-layout-admin .layui-body .layadmin-tabsbody-item{-webkit-overflow-scrolling: touch; overflow: auto;}
+}
+
+
+.layui-side-menu .layui-nav .layui-nav-item .layui-icon img {
+  vertical-align: baseline;
+}
+
+

+ 55 - 0
src/main/webapp/skin/default/layuiadmin/style/login.css

@@ -0,0 +1,55 @@
+/**
+
+ @Name:layuiAdmin 登入注册页
+ @Author:贤心
+ @Site:http://www.layui.com/admin/
+ @License:GPL-2
+ 
+ */
+ 
+html,body,#LAY_app{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: 0.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,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: 0.9}
+
+@media screen and (max-width: 768px) {
+  .layadmin-user-login{padding-top: 60px;}
+  .layadmin-user-login-main{width: 300px;}
+  .layadmin-user-login-box{padding: 10px;}
+}
+
+
+

BIN
src/main/webapp/skin/default/layuiadmin/style/res/bg-none.jpg


BIN
src/main/webapp/skin/default/layuiadmin/style/res/layui-logo.jpg


BIN
src/main/webapp/skin/default/layuiadmin/style/res/logo-black.png


BIN
src/main/webapp/skin/default/layuiadmin/style/res/logo.png


BIN
src/main/webapp/skin/default/layuiadmin/style/res/template/character.jpg


BIN
src/main/webapp/skin/default/layuiadmin/style/res/template/huge.jpg


BIN
src/main/webapp/skin/default/layuiadmin/style/res/template/portrait.png


+ 186 - 0
src/main/webapp/skin/default/layuiadmin/style/template.css

@@ -0,0 +1,186 @@
+/**
+
+ @Name:layuiAdmin
+ @Author:贤心
+ @Site:http://www.layui.com/admin/
+ @License:LPPL
+ 
+ */
+
+
+ 
+/********************************
+ 
+ 模板开始 By xuzhiwen
+ 
+*******************************/
+
+
+/* 产品版本选择面板 */
+.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%;}
+
+/* 通讯录面板 */
+.layadmin-maillist-fluid .layadmin-contact-box{padding:20px;background-color: #fff;
+    border: 1px solid #e7eaec;overflow: hidden;}
+.layadmin-maillist-fluid .layadmin-text-center{text-align: center;}
+.layadmin-maillist-fluid .layadmin-text-center img{max-width: 80%;border-radius: 50%;margin-top: 5px;}
+.layadmin-maillist-fluid .layadmin-font-blod{font-weight: 600;} 
+.layadmin-maillist-fluid .layadmin-maillist-img{margin-top: 5px;}
+.layadmin-maillist-fluid .layadmin-title{margin:5px 0 10px 0;}
+.layadmin-maillist-fluid .layadmin-textimg{line-height: 25px;margin-bottom: 10px;}
+.layadmin-maillist-fluid .layadmin-address{line-height: 1.5;margin-bottom: 20px;}
+.layadmin-maillist-fluid .layadmin-padding-left20{padding-left: 20px;}
+
+/* 个人主页 */
+.layadmin-homepage-shadow{box-shadow: 0 1px 1px rgba(0,0,0,.05);background-color: #fff;border-bottom: 1px solid rgba(0,0,0,0.17);border-radius: 0;border: 1px solid #e7ecf3;}
+.layadmin-homepage-panel{margin-bottom: 15px;}
+.layadmin-homepage-panel .text-center{text-align: center;}
+.layadmin-homepage-information{padding: 15px; border-bottom: 1px solid #e9e9e9;}
+.layadmin-homepage-pad-ver{ padding-top: 15px;padding-bottom: 15px;}
+.layadmin-homepage-pad-img{box-shadow: 0 0 0 4px rgba(0,0,0,0.1);border-radius: 50%;}
+.layadmin-homepage-font{font-weight: 600;color: #2b425b;font-size: 1.2em;}
+.layadmin-homepage-min-font{margin:5px 0 10px 0;font-size: 0.9em;color: #afb9c3;}
+.layadmin-homepage-pad-ver a{line-height: 1.1em;font-size: 1.3em;vertical-align: middle; cursor: pointer;background-color: transparent;color: inherit;padding: 6px 12px;}
+.layadmin-homepage-pad-ver a:hover{background: #5FB878; color:#fff;}
+
+.layadmin-homepage-about{padding: 15px;font-weight: 600;color: #2b425b;}
+.layadmin-homepage-list-group{font-size: 0.9em;line-height: 1.25;margin-bottom: 5px;}
+.layadmin-homepage-list-group li{ padding: 5px 15px;border: 1px solid #ddd;margin-bottom: -1px;border-width: 1px 0;border-radius: 0;    background-color: transparent;border-color: transparent;color: inherit;}
+.layadmin-homepage-list-group li i{font-size: 1.333em;line-height: 1.095em;vertical-align: middle;    margin-right: 4px;}
+.layadmin-homepage-list-group li a.color{color:#337ab7;}
+.layadmin-homepage-pad-hor{    padding-left: 15px; padding-right: 15px;border-bottom: 15px;color: #758697; text-indent:20px;}
+.layadmin-homepage-list-inline{margin-left: 15px;margin-right: 15px;padding-bottom: 20px}
+.layadmin-homepage-list-inline a{display: inline-block;}
+.layadmin-homepage-list-inline .layui-btn{font-size: .9em;line-height: 1.42857;vertical-align: middle;height: auto;padding:4px 7px;margin-left: 0px;margin:0 10px 10px 0;}
+
+/* 左侧个人信息区域 */
+.layadmin-homepage-text-center{text-align: center;margin-bottom: 15px;}
+.layadmin-homepage-padding15{padding:15px;margin-bottom: 15px;}
+.layadmin-homepage-padding8{padding: 0 8px;}
+.layadmin-homepage-paddingmb{margin-bottom: 15px;margin: 0 -7.5px;}
+.layadmin-homepage-content{margin-left: 15px;padding: 0;}
+.layadmin-homepage-content .new-section-xs{margin: 12px 0;color: inherit;border: 0!important;height: 0px;box-sizing: content-box;}
+.layadmin-homepage-content .h4{font-size: 16px;font-weight: 600;color: #2b425b;}
+.layadmin-homepage-content small{color: #afb9c3}
+.layadmin-homepage-text-center .layui-icon{color:#FFB800;padding-right:5px;}
+.layadmin-homepage-padding15 .layui-col-sm5 a{font-size: 11px;height: auto;line-height: 1.5;padding:5px 10px;float: right;}
+.layadmin-homepage-padding15 .layui-btn-normal{margin:0 15px;}
+.layadmin-homepage-list-imgtxt .layui-col-sm10,.layadmin-homepage-list-imgtxt .layui-col-sm2{background: none}
+.layadmin-homepage-list-imgtxt .panel-body{padding: 15px 20px 25px;overflow: hidden;margin-bottom: 15px;}
+.layadmin-homepage-list-imgtxt .panel-body .media-left{display: block;float: left;vertical-align: top;padding-right: 10px;}
+.layadmin-homepage-list-imgtxt .panel-body .media-left img{border-radius: 50%;}
+.layadmin-homepage-list-imgtxt .media-body{width: auto;display: block;overflow: hidden;}
+.layadmin-homepage-list-imgtxt .media-body .pad-btm{padding-bottom: 15px;}
+.layadmin-homepage-list-imgtxt .media-body .pad-btm p:first-child{padding-bottom: 5px;}
+.layadmin-homepage-list-imgtxt .media-body .min-font{margin-bottom: 10px;}
+.layadmin-homepage-list-imgtxt .media-body .min-font .layui-breadcrumb a{font-size: 11px;}
+.layui-breadcrumb span[lay-separator]{margin:0 5px;}
+.layadmin-homepage-list-imgtxt .media-body .pad-btm .fontColor a{font-weight: 600;color: #337ab7;}
+.layadmin-homepage-list-imgtxt .media-body .pad-btm .fontColor span{color: #758697;font-weight: 600;}
+.layadmin-homepage-list-imgtxt .media-body  .h-img{display: block;max-width: 100%;height: auto;margin-top: 10px;}
+.layadmin-homepage-list-imgtxt .img-xs{width: 32px;height: 32px;border-radius: 50%;}
+.layadmin-homepage-list-imgtxt .media-body .media{margin-top: 15px;overflow: hidden;}
+.layadmin-homepage-list-imgtxt .media-body .media .media-right{float: right;padding-top: 10px;}
+.layadmin-homepage-list-imgtxt .media-body .media .media-right .list-inline{margin-bottom: 10px;}
+.layadmin-homepage-list-imgtxt .media-body .media .list-inline li{padding:0 5px;display: inline-block;}
+.layadmin-homepage-list-imgtxt .media-body .media .media-right .list-inline li span{font-weight: 600;}
+.layadmin-homepage-list-imgtxt .media-body .media .media-left{display: block;overflow: hidden;width: auto;}
+.layadmin-homepage-list-imgtxt .media-body .media .media-left .font-blod{font-weight: 700;color: #758697;}
+.layadmin-homepage-list-imgtxt .media-body .media-list{padding-top: 15px;margin-top: 15px;border-top: 1px solid #e9e9e9;}
+.layadmin-homepage-list-imgtxt .media-body .media-list .media-item{padding-bottom: 15px;margin-top: 15px;}
+.layadmin-homepage-list-imgtxt .media-body .media-list .media-item-left{display:inline-block;padding-right: 10px;margin-bottom: 5px;}
+.layadmin-homepage-list-imgtxt .media-body .media-list .media-item-left img{display: block;float: left;}
+.layadmin-homepage-list-imgtxt .media-body .media-list .media-text{overflow: hidden;width: auto;display: inline-block;}
+.layadmin-homepage-list-imgtxt .media-body .media-list .media-text a{margin-right: 10px;font-weight: 600;display: inline-block;}
+.layadmin-homepage-list-imgtxt .media-body .media-list .media-text div:nth-child(2){margin-top: 5px;}
+.layadmin-homepage-list-imgtxt .media-body .media-list .layui-btn{height: 24px;line-height: 24px;font-size: 12px;padding:0 20px;margin-bottom: 10px;}
+.layadmin-homepage-list-imgtxt .media-body .media-list .layui-btn{height: 24px;line-height: 24px;font-size: 12px;padding:0 20px;margin-bottom: 10px;}
+
+/* 个人内容区域 */
+
+.homepage-top .layui-card-body img{width: 100%}
+.homepage-top .layui-card-body .margin-top10{margin-top: 10px;}
+.homepage-top .layui-card-body .layui-btn{width: 100%;display: block;}
+.homepage-top{padding-bottom: 20px;}
+.layadmin-privateletterlist-item{position: relative;display: block;padding: 10px 15px;}
+.homepage-bottom .layui-card-body{padding:0;}
+.homepage-bottom .layui-card-body img{width: 32px;height: 32px;border-radius: 50%;margin-top: 10px;}
+.homepage-bottom .layui-card-body .meida-left{display: table-cell;padding-right: 10px;}
+.homepage-bottom .layui-card-body .meida-right{display: table-cell;vertical-align: top;}
+.homepage-bottom .layui-card-body a:hover{background: #F2F2F2;}
+.homepage-bottom .layui-card-body{background: #fff;}
+.layui-card-header .panel-title .layui-icon{position: relative;left: 0;right: 0px;}
+
+/* 右侧信息栏 */
+.layadmin-cmdlist-fluid{padding-bottom: 60px;}
+.cmdlist-container{background: #fff;border:1px solid transparent;}
+.cmdlist-container:hover{border:1px solid #e8e8e8;}
+.cmdlist-container img{width: 100%;}
+.cmdlist-text{padding:20px;}
+.cmdlist-text .info{height: 40px;font-size: 14px;line-height: 20px;width: 100%;overflow: hidden;color: #666;margin-bottom:10px;}
+.cmdlist-text .price{font-size: 14px;}
+.cmdlist-text .price b{margin-right: 20px;}
+.cmdlist-text .price p{display: inline-block;}
+.cmdlist-text .flow{text-align: right;float: right;}
+#demo0{text-align: center;}
+
+/* 商品列表 */
+.layadmin-message-fluid .layui-col-md12{background: #fff;height: auto;padding-bottom: 50px;}
+.layadmin-message-fluid .layui-input-block{margin-left: 0;}
+.layadmin-message-fluid .layui-form{padding:45px 40px 0 40px;}
+.layadmin-message-fluid .layui-form-label{text-align: left;font-size: 18px;padding-left: 10px;}
+.layadmin-message-fluid .layui-textarea{min-height: 100px;font-size: 16px;}
+.layadmin-message-fluid .layui-input-right{float: right;}
+.layadmin-messag-icon{overflow: hidden;float: left;}
+.layadmin-messag-icon .layui-icon{font-size: 24px;line-height: 30px;margin-right: 15px;color: #C4CBCF;}
+.layadmin-messag-icon{margin-top: 4px;}
+.message-content{padding:0 40px;}
+.message-content .media-body{margin-bottom: 60px;}
+.message-content .media-body .pad-btm{padding-bottom: 0;}
+.message-content .media-left{float: left;margin-right: 10px;}
+.message-content .media-left img{border-radius: 50%;}
+.message-text{padding-top: 10px;}
+.message-content-btn{text-align: center;}
+.message-content .layui-btn{height: auto;line-height: 26px; padding: 5px 30px; font-size: 16px;}
+
+/* 搜索结果页面 */
+.layadmin-serach-main .layui-card-header{height: auto; line-height: 24px; padding: 15px;}
+.layadmin-serach-list{margin-bottom: 10px; padding: 10px 0; border-bottom: 1px solid #f6f6f6;}
+.layadmin-serach-list h3{padding: 10px 0;}
+.layadmin-serach-list h3 .layui-badge{top: -2px;}
+.layadmin-serach-list p{color: #666;}
+.layadmin-serach-list li{margin-bottom: 20px; padding-bottom: 20px; clear: both;}
+.layui-serachlist-cover{float: left; margin-right: 15px;}
+.layui-serachlist-cover img{width: 90px; height: 90px;}
+
+
+
+/* 用户列表开始 */
+.layadmin-caller{background: #fff;padding: 30px;}
+.layadmin-caller em{font-style: normal;}
+.layadmin-caller .caller-fl{float: left;}
+.layadmin-caller .caller-fr{float: right;}
+.layadmin-caller .caller-seach{position: relative;padding-bottom:40px;}
+.layadmin-caller .caller-seach .caller-icon{font-size: 18px;position: absolute;top: 9px;}
+.layadmin-caller .caller-seach-icon{left: 6px;}
+.layadmin-caller .caller-dump-icon{right: 6px;cursor: pointer;}
+.layadmin-caller .caller-pl32{padding:0 32px;}
+.layadmin-caller .caller-tab{margin:0;}
+.layadmin-caller .caller-contar{padding-bottom:20px;}
+.layadmin-caller .caller-contar .caller-item{padding:25px 0;overflow: hidden;border-bottom: 1px solid #e0e0e0;}
+.layadmin-caller .caller-contar .caller-item .caller-main{margin-left: 20px;}
+.layadmin-caller .caller-contar .caller-item .caller-main p{line-height: 100%;padding:8px 0;}
+.layadmin-caller .caller-contar .caller-item .caller-main p:first-child{padding-top:0;}
+.layadmin-caller .caller-contar .caller-item .caller-main em{margin-left: 5px;}
+.layadmin-caller .caller-contar .caller-item .caller-main .caller-adds i{padding-right: 5px;margin:0;}
+.layadmin-caller .caller-contar .caller-item .caller-main .caller-adds{padding-bottom:12px;}
+.layadmin-caller .caller-contar .caller-iconset i{margin:0 5px;}
+.layadmin-caller .caller-contar .caller-iconset i:first-child{margin-left: 0;}
+.layadmin-caller .caller-contar button{margin-top: 22px;}
+.layadmin-caller .caller-contar .caller-img{width: 40px;height: 40px;border-radius: 100%;}
+/******  模板结束 By xuzhiwen  ******/

+ 25 - 0
src/main/webapp/skin/default/layuiadmin/tpl/layim/demo.html

@@ -0,0 +1,25 @@
+<div class="layui-btn-container LAY-senior-im-chat-demo">
+  <button class="layui-btn" data-type="chat">自定义会话</button>
+  <button class="layui-btn" data-type="message">接受好友的消息</button>
+  <button class="layui-btn" data-type="messageAudio">接受音频消息</button>
+  <button class="layui-btn" data-type="messageVideo">接受视频消息</button>
+  <button class="layui-btn" data-type="messageTemp">接受临时会话消息</button>
+  
+  <br>
+  
+  <button class="layui-btn" data-type="add">申请好友</button>
+  <button class="layui-btn" data-type="addqun">申请加群</button>
+  <button class="layui-btn" data-type="addFriend">同意好友</button>
+  <button class="layui-btn" data-type="addGroup">增加群组到主面板</button>
+  <button class="layui-btn" data-type="removeFriend">删除主面板好友</button>
+  <button class="layui-btn" data-type="removeGroup">删除主面板群组</button>
+  
+  <br>
+  <button class="layui-btn" data-type="setGray">置灰离线好友</button>
+  <button class="layui-btn" data-type="unGray">取消好友置灰</button>
+  
+  <button class="layui-btn" data-type="kefu1">在线客服一</button>
+  <button class="layui-btn" data-type="kefu2">在线客服二</button>
+  
+  <button class="layui-btn" data-type="mobile">移动端版本</button>
+</div>

+ 22 - 0
src/main/webapp/skin/default/layuiadmin/tpl/system/about.html

@@ -0,0 +1,22 @@
+
+<div class="layui-card-header">版本信息</div>
+<div class="layui-card-body layui-text layadmin-about">
+  <script type="text/html" template>
+    <p>当前版本:layuiAdmin-v{{ layui.admin.v }}</p>
+    <p>基于框架:layui-v{{ layui.v }}</p>
+  </script>
+  <div class="layui-btn-container">
+    <a href="http://www.layui.com/admin/" target="_blank" class="layui-btn layui-btn-danger">获取授权</a>
+    <a href="http://fly.layui.com/download/layuiAdmin/" target="_blank" class="layui-btn">下载新版</a>
+  </div>
+</div>
+
+<div class="layui-card-header">关于版权</div>
+<div class="layui-card-body layui-text layadmin-about">
+
+  <blockquote class="layui-elem-quote" style="border: none;">
+    layuiAdmin 受国家计算机软件著作权保护(登记号:<a href="http://cdn.layui.com/images/layuiAdmin-show.jpg" target="_blank">2018SR410669</a>),必须经<a href="https://www.layui.com/admin/" target="_blank">官网</a>授权才可获得源文件使用权。不得恶意分享产品源代码、二次转售等,违者将承担相应的法律责任。
+    <br><br>详见:<a href="https://fly.layui.com/jie/26280/" target="_blank">《layui 付费产品服务条款》</a>
+  </blockquote>
+  <p>© 2018 <a href="http://www.layui.com/">layui.com</a> 版权所有</p>
+</div>

+ 61 - 0
src/main/webapp/skin/default/layuiadmin/tpl/system/get.html

@@ -0,0 +1,61 @@
+
+
+<!DOCTYPE html>
+<html>
+<head>
+  <meta charset="utf-8">
+  <title>授权获得 layuiAdmin</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.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
+  <link rel="stylesheet" href="../../layuiadmin/layui/css/layui.css" media="all">
+  <link rel="stylesheet" href="../../layuiadmin/style/admin.css" media="all">
+</head>
+<body>
+
+  <div class="layui-fluid"> 
+    <div class="layui-row layadmin-panel-selection">
+      <div class="layui-col-sm12">
+        <div class="layui-panel-window layui-text">
+          <h2>专业版</h2>
+          <ul>
+            <li>始终基于全新的 layui 版本</li>
+            <li>单页面应用,所有操作无需跳转</li>
+            <li>支持前后端分离开发模式</li>
+            <li>面向全屏幕尺寸的响应式适配能力</li>
+            <li>灵活的主题色配置</li>
+            <li>专属的开发者文档,助你快速掌握</li>
+            <li>版本的持续更新,集大众之所需</li>
+            <li>专属的会员群,与同道中人隔空交流</li>
+            <li>layui 社区 VIP 标识</li>
+            <li>不限制域名、不限制应用的项目数量</li>
+          </ul>
+          <div class="layui-row layui-col-space10 layui-btn-container">
+            <div class="layui-col-sm6">
+              <a href="http://fly.layui.com/order/bill?itemid=3" target="_blank" class="layui-btn">一年授权</a>
+            </div>
+            <div class="layui-col-sm6">
+              <a href="http://fly.layui.com/order/bill?itemid=4" target="_blank" class="layui-btn">
+                永久授权 
+                <span class="layui-badge">hot</span>
+              </a>
+            </div>
+          </div>
+        </div>
+      </div>
+      <blockquote class="layui-col-sm12 layui-elem-quote" style="margin-top: 15px;">
+        你所获得的不仅仅是一款高精品的后台管理模板系统,更是一项关于时间与效率的高收益回报
+      </blockquote>
+    </div>
+  </div>
+  
+  <script src="../../layuiadmin/layui/layui.js"></script>  
+  <script>
+  layui.config({
+    base: '../../layuiadmin/' //静态资源所在路径
+  }).extend({
+    index: 'lib/index' //主入口模块
+  }).use(['index']);
+  </script>
+</body>
+</html>

+ 22 - 0
src/main/webapp/skin/default/layuiadmin/tpl/system/more.html

@@ -0,0 +1,22 @@
+
+<!-- 更多面板的模板 -->
+<div class="layadmin-menu-list">
+  <div class="layui-card-header" layadmin-event="about">
+    <a href="javascript:;">
+      <i class="layui-icon layui-icon-about" style="font-size: 20px;"></i>
+      获得产品
+    </a>
+  </div>
+  <div class="layui-card-header" layadmin-event="theme">
+    <a href="javascript:;">
+      <i class="layui-icon layui-icon-theme"></i>
+      设置主题
+    </a>
+  </div>
+  <div class="layui-card-header" layadmin-event="note">
+    <a href="javascript:;">
+      <i class="layui-icon layui-icon-note"></i>
+      本地便签
+    </a>
+  </div>
+</div>

+ 43 - 0
src/main/webapp/skin/default/layuiadmin/tpl/system/theme.html

@@ -0,0 +1,43 @@
+
+<!-- 主题设置模板 -->
+
+<script type="text/html" template lay-done="layui.data.theme();">
+  {{# 
+    var local = layui.data(layui.setter.tableName)
+    ,theme = local.theme || {}
+    ,themeColorIndex =  parseInt((theme && theme.color) ? theme.color.index : 0) || 0;
+  }}
+
+  <div class="layui-card-header">
+    配色方案
+  </div>
+  <div class="layui-card-body layadmin-setTheme">
+    <ul class="layadmin-setTheme-color">
+      {{# layui.each(layui.setter.theme.color, function(index, item){ }}
+        <li layadmin-event="setTheme" data-index="{{ index }}" data-alias="{{ item.alias }}" 
+        {{ index === themeColorIndex ? 'class="layui-this"' : '' }} title="{{ item.alias }}">
+          <div class="layadmin-setTheme-header" style="background-color: {{ item.header }};"></div>
+          <div class="layadmin-setTheme-side" style="background-color: {{ item.main }};">
+            <div class="layadmin-setTheme-logo" style="background-color: {{ item.logo }};"></div>
+          </div>
+        </li>
+      {{# }); }}
+    </ul>
+  </div>
+</script>
+
+<script>
+layui.data.theme = function(){
+  layui.use('form', function(){
+    var form = layui.form
+    ,admin = layui.admin;
+    
+    //监听隐藏开关
+    form.on('switch(system-theme-sideicon)', function(){
+      admin.theme({
+        hideSideIcon: this.checked
+      })
+    });
+  });
+};
+</script>

+ 3 - 0
src/main/webapp/skin/default/layuiadmin/tpl/system/说明.txt

@@ -0,0 +1,3 @@
+
+注意:
+该目录存放的是 layuiAdmin 的系统模板碎片,很多界面需要依赖到它,切勿随意剔除。

+ 3 - 0
src/main/webapp/skin/default/layuiadmin/tpl/说明.txt

@@ -0,0 +1,3 @@
+
+注意:
+该目录存放的是 layuiAdmin 的动态模板碎片