dever 5 years ago
parent
commit
e5b8b6803d
44 changed files with 2610 additions and 114 deletions
  1. 322 0
      assets/layadmin/html/console.html
  2. 64 0
      assets/layadmin/html/home.html
  3. 26 0
      assets/layadmin/html/inc/head.html
  4. 345 0
      assets/layadmin/html/inc/menu.html
  5. 78 0
      assets/layadmin/html/inc/nav.html
  6. 40 0
      assets/layadmin/html/inc/script.html
  7. 80 0
      assets/layadmin/html/login.html
  8. 91 0
      assets/layadmin/html/project/database/list.html
  9. 143 0
      assets/layadmin/html/project/database/update.html
  10. 1 1
      assets/moltran/html/inc/nav.html
  11. 1 1
      assets/moltran/html/inc/script.html
  12. 1 1
      assets/moltran/html/list.html
  13. 10 0
      common.php
  14. 10 0
      config/base.php
  15. 39 3
      database/admin.php
  16. 36 16
      page/list.php
  17. 14 23
      src/Auth.php
  18. 65 32
      src/Database.php
  19. 81 32
      src/Lib/Input.php
  20. 51 5
      src/Menu.php
  21. 27 0
      template/layadmin/console.php
  22. 81 0
      template/layadmin/doc/view.php
  23. 36 0
      template/layadmin/example/foreach.php
  24. 47 0
      template/layadmin/home.php
  25. 19 0
      template/layadmin/inc/foot.php
  26. 24 0
      template/layadmin/inc/head.php
  27. 60 0
      template/layadmin/inc/menu.php
  28. 51 0
      template/layadmin/inc/nav.php
  29. 14 0
      template/layadmin/inc/script.php
  30. 18 0
      template/layadmin/list.php
  31. 34 0
      template/layadmin/list/photo.php
  32. 60 0
      template/layadmin/log/list.php
  33. 22 0
      template/layadmin/login.php
  34. 12 0
      template/layadmin/map.php
  35. 18 0
      template/layadmin/notice.php
  36. 64 0
      template/layadmin/project/config.php
  37. 67 0
      template/layadmin/project/database.php
  38. 41 0
      template/layadmin/project/database/common.php
  39. 67 0
      template/layadmin/project/database/list.php
  40. 76 0
      template/layadmin/project/database/manage.php
  41. 24 0
      template/layadmin/project/database/stat.php
  42. 51 0
      template/layadmin/project/database/update.php
  43. 69 0
      template/layadmin/project/file.php
  44. 130 0
      template/layadmin/project/list.php

+ 322 - 0
assets/layadmin/html/console.html

@@ -0,0 +1,322 @@
+
+
+<!DOCTYPE html>
+<html>
+<head>
+  <script class="include" system="" path="inc/" file="head">include()</script>
+</head>
+<body>
+  
+  <div class="layui-fluid">
+    <div class="layui-row layui-col-space15">
+      <div class="layui-col-md8">
+        <div class="layui-row layui-col-space15">
+          <div class="layui-col-md6">
+            <div class="layui-card">
+              <div class="layui-card-header">快捷方式</div>
+              <div class="layui-card-body">
+                
+                <div class="layui-carousel layadmin-carousel layadmin-shortcut">
+                  <div carousel-item>
+                    <ul class="layui-row layui-col-space10">
+                      <li class="layui-col-xs3">
+                        <a lay-href="home/homepage1.html">
+                          <i class="layui-icon layui-icon-console"></i>
+                          <cite>主页一</cite>
+                        </a>
+                      </li>
+                      <li class="layui-col-xs3">
+                        <a lay-href="home/homepage2.html">
+                          <i class="layui-icon layui-icon-chart"></i>
+                          <cite>主页二</cite>
+                        </a>
+                      </li>
+                      <li class="layui-col-xs3">
+                        <a lay-href="component/layer/list.html">
+                          <i class="layui-icon layui-icon-template-1"></i>
+                          <cite>弹层</cite>
+                        </a>
+                      </li>
+                      <li class="layui-col-xs3">
+                        <a layadmin-event="im">
+                          <i class="layui-icon layui-icon-chat"></i>
+                          <cite>聊天</cite>
+                        </a>
+                      </li>
+                      <li class="layui-col-xs3">
+                        <a lay-href="component/progress/index.html">
+                          <i class="layui-icon layui-icon-find-fill"></i>
+                          <cite>进度条</cite>
+                        </a>
+                      </li>
+                      <li class="layui-col-xs3">
+                        <a lay-href="app/workorder/list.html">
+                          <i class="layui-icon layui-icon-survey"></i>
+                          <cite>工单</cite>
+                        </a>
+                      </li>
+                      <li class="layui-col-xs3">
+                        <a lay-href="user/user/list.html">
+                          <i class="layui-icon layui-icon-user"></i>
+                          <cite>用户</cite>
+                        </a>
+                      </li>
+                      <li class="layui-col-xs3">
+                        <a lay-href="set/system/website.html">
+                          <i class="layui-icon layui-icon-set"></i>
+                          <cite>设置</cite>
+                        </a>
+                      </li>
+                    </ul>
+                    <ul class="layui-row layui-col-space10">
+                      <li class="layui-col-xs3">
+                        <a lay-href="set/user/info.html">
+                          <i class="layui-icon layui-icon-set"></i>
+                          <cite>我的资料</cite>
+                        </a>
+                      </li>
+                      <li class="layui-col-xs3">
+                        <a lay-href="set/user/info.html">
+                          <i class="layui-icon layui-icon-set"></i>
+                          <cite>我的资料</cite>
+                        </a>
+                      </li>
+                      <li class="layui-col-xs3">
+                        <a lay-href="set/user/info.html">
+                          <i class="layui-icon layui-icon-set"></i>
+                          <cite>我的资料</cite>
+                        </a>
+                      </li>
+                      <li class="layui-col-xs3">
+                        <a lay-href="set/user/info.html">
+                          <i class="layui-icon layui-icon-set"></i>
+                          <cite>我的资料</cite>
+                        </a>
+                      </li>
+                      <li class="layui-col-xs3">
+                        <a lay-href="set/user/info.html">
+                          <i class="layui-icon layui-icon-set"></i>
+                          <cite>我的资料</cite>
+                        </a>
+                      </li>
+                      <li class="layui-col-xs3">
+                        <a lay-href="set/user/info.html">
+                          <i class="layui-icon layui-icon-set"></i>
+                          <cite>我的资料</cite>
+                        </a>
+                      </li>
+                      <li class="layui-col-xs3">
+                        <a lay-href="set/user/info.html">
+                          <i class="layui-icon layui-icon-set"></i>
+                          <cite>我的资料</cite>
+                        </a>
+                      </li>
+                      <li class="layui-col-xs3">
+                        <a lay-href="set/user/info.html">
+                          <i class="layui-icon layui-icon-set"></i>
+                          <cite>我的资料</cite>
+                        </a>
+                      </li>
+                    </ul>
+                    
+                  </div>
+                </div>
+                
+              </div>
+            </div>
+          </div>
+          <div class="layui-col-md6">
+            <div class="layui-card">
+              <div class="layui-card-header">待办事项</div>
+              <div class="layui-card-body">
+
+                <div class="layui-carousel layadmin-carousel layadmin-backlog">
+                  <div carousel-item>
+                    <ul class="layui-row layui-col-space10">
+                      <li class="layui-col-xs6">
+                        <a lay-href="app/content/comment.html" class="layadmin-backlog-body">
+                          <h3>待审评论</h3>
+                          <p><cite>66</cite></p>
+                        </a>
+                      </li>
+                      <li class="layui-col-xs6">
+                        <a lay-href="app/forum/list.html" class="layadmin-backlog-body">
+                          <h3>待审帖子</h3>
+                          <p><cite>12</cite></p>
+                        </a>
+                      </li>
+                      <li class="layui-col-xs6">
+                        <a lay-href="template/goodslist.html" class="layadmin-backlog-body">
+                          <h3>待审商品</h3>
+                          <p><cite>99</cite></p>
+                        </a>
+                      </li>
+                      <li class="layui-col-xs6">
+                        <a href="javascript:;" onclick="layer.tips('不跳转', this, {tips: 3});" class="layadmin-backlog-body">
+                          <h3>待发货</h3>
+                          <p><cite>20</cite></p>
+                        </a>
+                      </li>
+                    </ul>
+                    <ul class="layui-row layui-col-space10">
+                      <li class="layui-col-xs6">
+                        <a href="javascript:;" class="layadmin-backlog-body">
+                          <h3>待审友情链接</h3>
+                          <p><cite style="color: #FF5722;">5</cite></p>
+                        </a>
+                      </li>
+                    </ul>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </div>
+          <div class="layui-col-md12">
+            <div class="layui-card">
+              <div class="layui-card-header">数据概览</div>
+              <div class="layui-card-body">
+                
+                <div class="layui-carousel layadmin-carousel layadmin-dataview" data-anim="fade" lay-filter="LAY-index-dataview">
+                  <div carousel-item id="LAY-index-dataview">
+                    <div><i class="layui-icon layui-icon-loading1 layadmin-loading"></i></div>
+                    <div></div>
+                    <div></div>
+                  </div>
+                </div>
+                
+              </div>
+            </div>
+            <div class="layui-card">
+              <div class="layui-tab layui-tab-brief layadmin-latestData">
+                <ul class="layui-tab-title">
+                  <li class="layui-this">今日热搜</li>
+                  <li>今日热帖</li>
+                </ul>
+                <div class="layui-tab-content">
+                  <div class="layui-tab-item layui-show">
+                    <table id="LAY-index-topSearch"></table>
+                  </div>
+                  <div class="layui-tab-item">
+                    <table id="LAY-index-topCard"></table>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+      
+      <div class="layui-col-md4">
+
+        <div class="layui-card dever-notice">
+          <div class="layui-card-header">系统公告</div>
+          <div class="layui-card-body">
+            <div class="layui-carousel layadmin-carousel layadmin-news" data-autoplay="true" data-anim="fade" lay-filter="news">
+              <div carousel-item id="dever-notice">
+                <div><a href="http://fly.layui.com/docs/2/" target="_blank" class="layui-bg-red">layuiAdmin 快速上手文档</a></div>
+                <div><a href="http://fly.layui.com/vipclub/list/layuiadmin/" target="_blank" class="layui-bg-green">layuiAdmin 会员讨论专区</a></div> 
+                <div><a href="http://www.layui.com/admin/#get" target="_blank" class="layui-bg-blue">获得 layui 官方后台模板系统</a></div>
+              </div>
+            </div>
+          </div>
+        </div>
+
+        <div class="layui-card">
+          <div class="layui-card-header">版本信息</div>
+          <div class="layui-card-body layui-text">
+            <table class="layui-table">
+              <colgroup>
+                <col width="100">
+                <col>
+              </colgroup>
+              <tbody>
+                <tr>
+                  <td>当前版本</td>
+                  <td>
+                    <script type="text/html" template>
+                      v{{ layui.admin.v }}
+                    </script>
+                  </td>
+                </tr>
+                <tr>
+                  <td>基于框架</td>
+                  <td>
+                    <script type="text/html" template>
+                      layui-v{{ layui.v }}
+                    </script>
+                 </td>
+                </tr>
+                <tr>
+                  <td>主要特色</td>
+                  <td>零门槛 / 响应式 / 清爽 / 极简</td>
+                </tr>
+                <tr>
+                  <td>获取渠道</td>
+                  <td style="padding-bottom: 0;">
+                    <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>
+                  </td>
+                </tr>
+              </tbody>
+            </table>
+          </div>
+        </div>
+        
+        <div class="layui-card">
+          <div class="layui-card-header">效果报告</div>
+          <div class="layui-card-body layadmin-takerates">
+            <div class="layui-progress" lay-showPercent="yes">
+              <h3>转化率(日同比 28% <span class="layui-edge layui-edge-top" lay-tips="增长" lay-offset="-15"></span>)</h3>
+              <div class="layui-progress-bar" lay-percent="65%"></div>
+            </div>
+            <div class="layui-progress" lay-showPercent="yes">
+              <h3>签到率(日同比 11% <span class="layui-edge layui-edge-bottom" lay-tips="下降" lay-offset="-15"></span>)</h3>
+              <div class="layui-progress-bar" lay-percent="32%"></div>
+            </div>
+          </div>
+        </div>
+        
+        <div class="layui-card">
+          <div class="layui-card-header">实时监控</div>
+          <div class="layui-card-body layadmin-takerates">
+            <div class="layui-progress" lay-showPercent="yes">
+              <h3>CPU使用率</h3>
+              <div class="layui-progress-bar" lay-percent="58%"></div>
+            </div>
+            <div class="layui-progress" lay-showPercent="yes">
+              <h3>内存占用率</h3>
+              <div class="layui-progress-bar layui-bg-red" lay-percent="90%"></div>
+            </div>
+          </div>
+        </div>
+
+        <div class="layui-card">
+          <div class="layui-card-header">
+            作者心语
+            <i class="layui-icon layui-icon-tips" lay-tips="要支持的噢" lay-offset="5"></i>
+          </div>
+          <div class="layui-card-body layui-text layadmin-text">
+            <p>一直以来,layui 秉承无偿开源的初心,虔诚致力于服务各层次前后端 Web 开发者,在商业横飞的当今时代,这一信念从未动摇。即便身单力薄,仍然重拾决心,埋头造轮,以尽可能地填补产品本身的缺口。</p>
+            <p>在过去的一段的时间,我一直在寻求持久之道,已维持你眼前所见的一切。而 layuiAdmin 是我们尝试解决的手段之一。我相信真正有爱于 layui 生态的你,定然不会错过这一拥抱吧。</p>
+            <p>子曰:君子不用防,小人防不住。请务必通过官网正规渠道,获得 <a href="http://www.layui.com/admin/" target="_blank">layuiAdmin</a>!</p>
+            <p>—— 贤心(<a href="http://www.layui.com/" target="_blank">layui.com</a>)</p>
+          </div>
+        </div>
+      </div>
+      
+    </div>
+  </div>
+
+  <script class="include" system="" path="inc/" file="script">include()</script>
+  <script>
+    layui.config({
+        base: '../script/lib/layui/admin/' //静态资源所在路径
+    }).extend({
+        index: 'lib/index' //主入口模块
+    }).use(['index', 'console']);
+</script>
+</body>
+</html>
+

+ 64 - 0
assets/layadmin/html/home.html

@@ -0,0 +1,64 @@
+
+
+<!DOCTYPE html>
+<html>
+<head>
+  <script class="include" system="" path="inc/" file="head">include()</script>
+</head>
+<body class="layui-layout-body fixed-left">
+
+  <div id="LAY_app wrapper">
+    <div class="layui-layout layui-layout-admin">
+
+      <script class="include" system="" path="inc/" file="nav">include()</script>
+
+      <script class="include" system="" path="inc/" file="menu">include()</script>
+
+      <!-- 页面标签 -->
+      <div class="layadmin-pagetabs" id="LAY_app_tabs">
+        <div class="layui-icon layadmin-tabs-control layui-icon-prev" layadmin-event="leftPage"></div>
+        <div class="layui-icon layadmin-tabs-control layui-icon-next" layadmin-event="rightPage"></div>
+        <div class="layui-icon layadmin-tabs-control layui-icon-down">
+          <ul class="layui-nav layadmin-tabs-select" lay-filter="layadmin-pagetabs-nav">
+            <li class="layui-nav-item" lay-unselect>
+              <a href="javascript:;"></a>
+              <dl class="layui-nav-child layui-anim-fadein">
+                <dd layadmin-event="closeThisTabs"><a href="javascript:;">关闭当前标签页</a></dd>
+                <dd layadmin-event="closeOtherTabs"><a href="javascript:;">关闭其它标签页</a></dd>
+                <dd layadmin-event="closeAllTabs"><a href="javascript:;">关闭全部标签页</a></dd>
+              </dl>
+            </li>
+          </ul>
+        </div>
+        <div class="layui-tab" lay-unauto lay-allowClose="true" lay-filter="layadmin-layout-tabs">
+          <ul class="layui-tab-title" id="LAY_app_tabsheader">
+            <li lay-id="home/console.html" lay-attr="home/console.html" class="layui-this"><i class="layui-icon layui-icon-home"></i></li>
+          </ul>
+        </div>
+      </div>
+      
+      
+      <!-- 主体内容 -->
+      <div class="layui-body" id="LAY_app_body">
+        <div class="layadmin-tabsbody-item layui-show">
+          <iframe src="home/console.html" frameborder="0" class="layadmin-iframe"></iframe>
+        </div>
+      </div>
+      
+      <!-- 辅助元素,一般用于移动设备下遮罩 -->
+      <div class="layadmin-body-shade" layadmin-event="shade"></div>
+    </div>
+  </div>
+
+  <script class="include" system="" path="inc/" file="script">include()</script>
+  <script>
+    layui.config({
+        base: '../script/lib/layui/admin/' //静态资源所在路径
+    }).extend({
+        index: 'lib/index' //主入口模块
+    }).use('index');
+</script>
+</body>
+</html>
+
+

+ 26 - 0
assets/layadmin/html/inc/head.html

@@ -0,0 +1,26 @@
+<meta charset="utf-8">
+<title>后台管理</title>
+<meta name="keywords" content="后台管理">
+<meta name="description" content="后台管理">
+<meta name="apple-mobile-web-app-title" content="后台管理" />
+<meta name="author" content="rabin">
+<meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+<link rel="stylesheet" type="text/css" href="../script/lib/layui/css/layui.css" />
+<link rel="stylesheet" href="../script/lib/layui/admin/style/admin.css" media="all">
+
+<!-- plugin -->
+<link rel="stylesheet" type="text/css" href="../script/lib/color/colpick.css">
+<link rel="stylesheet" type="text/css" href="../script/lib/kindeditor/themes/default/default.css" />
+<link rel="stylesheet" type="text/css" href="../script/lib/valid/validationEngine.jquery.css">
+<link rel="stylesheet" type="text/css" href="../script/lib/pnotify/pnotify.css">
+<link rel="stylesheet" type="text/css" href="../script/lib/fancybox/jquery.fancybox.css">
+<link rel="stylesheet" type="text/css" href="../script/lib/highlight/highlight.min.css">
+<link rel="stylesheet" type="text/css" href="../script/lib/datetime/jquery.datetimepicker.css">
+
+
+<script type="text/javascript" src="../script/lib/jquery/jquery.min.js"></script>
+<script id="script">var config={};</script>
+<style type="text/css" id="style">
+</style>

+ 345 - 0
assets/layadmin/html/inc/menu.html

@@ -0,0 +1,345 @@
+<!-- 侧边菜单 -->
+      <div class="layui-side layui-side-menu">
+        <div class="layui-side-scroll">
+          <div class="layui-logo" id="console-url" lay-href="home/console.html">
+            <span id="dever-name">layuiAdmin</span>
+          </div>
+          
+          <ul class="layui-nav layui-nav-tree" lay-shrink="all" id="LAY-system-side-menu" lay-filter="layadmin-system-side-menu">
+            <li data-name="home" class="layui-nav-item">
+              <a href="javascript:;" lay-tips="主页" lay-direction="2">
+                <i class="layui-icon layui-icon-home"></i>
+                <cite>主页</cite>
+              </a>
+              <dl class="layui-nav-child">
+                <dd data-name="console" class="layui-this">
+                  <a lay-href="home/console.html">控制台</a>
+                </dd>
+                <dd data-name="console">
+                  <a lay-href="home/homepage1.html">主页一</a>
+                </dd>
+                <dd data-name="console">
+                  <a lay-href="home/homepage2.html">主页二</a>
+                </dd>
+              </dl>
+            </li>
+            <li data-name="component" class="layui-nav-item">
+              <a href="javascript:;" lay-tips="组件" lay-direction="2">
+                <i class="layui-icon layui-icon-component"></i>
+                <cite>组件</cite>
+              </a>
+              <dl class="layui-nav-child">
+                <dd data-name="grid">
+                  <a href="javascript:;">栅格</a>
+                  <dl class="layui-nav-child">
+                    <dd data-name="list"><a lay-href="component/grid/list.html">等比例列表排列</a></dd>
+                    <dd data-name="mobile"><a lay-href="component/grid/mobile.html">按移动端排列</a></dd>
+                    <dd data-name="mobile-pc"><a lay-href="component/grid/mobile-pc.html">移动桌面端组合</a></dd>
+                    <dd data-name="all"><a lay-href="component/grid/all.html">全端复杂组合</a></dd>
+                    <dd data-name="stack"><a lay-href="component/grid/stack.html">低于桌面堆叠排列</a></dd>
+                    <dd data-name="speed-dial"><a lay-href="component/grid/speed-dial.html">九宫格</a></dd>
+                  </dl>
+                </dd>
+                <dd data-name="button">
+                  <a lay-href="component/button/index.html">按钮</a>
+                </dd>
+                <dd data-name="form">
+                  <a href="javascript:;">表单</a>
+                  <dl class="layui-nav-child">
+                    <dd><a lay-href="component/form/element.html">表单元素</a></dd>
+                    <dd><a lay-href="component/form/group.html">表单组合</a></dd>
+                  </dl>
+                </dd>
+                <dd data-name="nav">
+                  <a lay-href="component/nav/index.html">导航</a>
+                </dd>
+                <dd data-name="tabs">
+                  <a lay-href="component/tabs/index.html">选项卡</a>
+                </dd>
+                <dd data-name="progress">
+                  <a lay-href="component/progress/index.html">进度条</a>
+                </dd>
+                <dd data-name="panel"> 
+                  <a lay-href="component/panel/index.html">面板</a>  
+                </dd>
+                <dd data-name="badge"> 
+                  <a lay-href="component/badge/index.html">徽章</a>  
+                </dd>
+                <dd data-name="timeline"> 
+                  <a lay-href="component/timeline/index.html">时间线</a>  
+                </dd>
+                <dd data-name="anim"> 
+                  <a lay-href="component/anim/index.html">动画</a>  
+                </dd>
+                <dd data-name="auxiliar"> 
+                  <a lay-href="component/auxiliar/index.html">辅助</a>  
+                </dd>
+                <dd data-name="layer"> 
+                  <a href="javascript:;">通用弹层<span class="layui-nav-more"></span></a>  
+                  <dl class="layui-nav-child">  
+                    <dd data-name="list"> 
+                      <a lay-href="component/layer/list.html" lay-text="layer 功能演示">功能演示</a> 
+                    </dd>  
+                    <dd data-name="special-demo"> 
+                      <a lay-href="component/layer/special-demo.html" lay-text="layer 特殊示例">特殊示例</a> 
+                    </dd>  
+                    <dd data-name="theme"> 
+                      <a lay-href="component/layer/theme.html" lay-text="layer 风格定制">风格定制</a> 
+                    </dd>  
+                  </dl>  
+                </dd>
+                <dd data-name="laydate"> 
+                  <a href="javascript:;">日期时间</a>
+                  <dl class="layui-nav-child">  
+                    <dd data-name="demo1"> 
+                      <a lay-href="component/laydate/demo1.html" lay-text="layDate 功能演示一">功能演示一</a> 
+                    </dd>
+                    <dd data-name="demo2"> 
+                      <a lay-href="component/laydate/demo2.html" lay-text="layDate 功能演示二">功能演示二</a> 
+                    </dd>
+                    <dd data-name="theme"> 
+                      <a lay-href="component/laydate/theme.html" lay-text="layDate 设定主题">设定主题</a> 
+                    </dd>
+                    <dd data-name="special-demo"> 
+                      <a lay-href="component/laydate/special-demo.html" lay-text="layDate 特殊示例">特殊示例</a> 
+                    </dd>  
+                  </dl>  
+                </dd>
+                <dd data-name="table-static"> 
+                  <a lay-href="component/table/static.html">静态表格</a>
+                </dd>
+                <dd data-name="table"> 
+                  <a href="javascript:;">数据表格</a>
+                  <dl class="layui-nav-child">  
+                    <dd data-name="simple"> 
+                      <a lay-href="component/table/simple.html" lay-text="">简单数据表格</a> 
+                    </dd>
+                    <dd data-name="auto"> 
+                      <a lay-href="component/table/auto.html" lay-text="">列宽自动分配</a> 
+                    </dd>
+                    <dd data-name="data"> 
+                      <a lay-href="component/table/data.html" lay-text="">赋值已知数据</a> 
+                    </dd>
+                    <dd data-name="tostatic"> 
+                      <a lay-href="component/table/tostatic.html" lay-text="">转化静态表格</a> 
+                    </dd>
+                    <dd data-name="page"> 
+                      <a lay-href="component/table/page.html" lay-text="">开启分页</a> 
+                    </dd>
+                    <dd data-name="resetPage"> 
+                      <a lay-href="component/table/resetPage.html" lay-text="">自定义分页</a> 
+                    </dd>
+                    <dd data-name="toolbar"> 
+                      <a lay-href="component/table/toolbar.html" lay-text="">开启头部工具栏</a> 
+                    </dd>
+                    <dd data-name="totalRow"> 
+                      <a lay-href="component/table/totalRow.html" lay-text="">开启合计行</a> 
+                    </dd>
+                    <dd data-name="height"> 
+                      <a lay-href="component/table/height.html" lay-text="">高度最大适应</a> 
+                    </dd>
+                    <dd data-name="checkbox"> 
+                      <a lay-href="component/table/checkbox.html" lay-text="">开启复选框</a> 
+                    </dd>
+                    <dd data-name="radio"> 
+                      <a lay-href="component/table/radio.html" lay-text="">开启单选框</a> 
+                    </dd>
+                    <dd data-name="cellEdit"> 
+                      <a lay-href="component/table/cellEdit.html" lay-text="">开启单元格编辑</a> 
+                    </dd>
+                    <dd data-name="form"> 
+                      <a lay-href="component/table/form.html" lay-text="">加入表单元素</a> 
+                    </dd>
+                    <dd data-name="style"> 
+                      <a lay-href="component/table/style.html" lay-text="">设置单元格样式</a> 
+                    </dd>
+                    <dd data-name="fixed"> 
+                      <a lay-href="component/table/fixed.html" lay-text="">固定列</a> 
+                    </dd>
+                    <dd data-name="operate"> 
+                      <a lay-href="component/table/operate.html" lay-text="">数据操作</a> 
+                    </dd>
+                    <dd data-name="parseData"> 
+                      <a lay-href="component/table/parseData.html" lay-text="">解析任意数据格式</a> 
+                    </dd>
+                    <dd data-name="onrow"> 
+                      <a lay-href="component/table/onrow.html" lay-text="">监听行事件</a> 
+                    </dd>
+                    <dd data-name="reload">
+                      <a lay-href="component/table/reload.html" lay-text="">数据表格的重载</a> 
+                    </dd>
+                    <dd data-name="initSort"> 
+                      <a lay-href="component/table/initSort.html" lay-text="">设置初始排序</a> 
+                    </dd>
+                    <dd data-name="cellEvent"> 
+                      <a lay-href="component/table/cellEvent.html" lay-text="">监听单元格事件</a> 
+                    </dd>
+                    <dd data-name="thead"> 
+                      <a lay-href="component/table/thead.html" lay-text="">复杂表头</a> 
+                    </dd>
+                  </dl>
+                </dd>
+                <dd data-name="laypage"> 
+                  <a href="javascript:;">分页</a>  
+                  <dl class="layui-nav-child">  
+                    <dd data-name="demo1"> 
+                      <a lay-href="component/laypage/demo1.html" lay-text="layPage 功能演示一">功能演示一</a> 
+                    </dd>
+                    <dd data-name="demo2"> 
+                      <a lay-href="component/laypage/demo2.html" lay-text="layPage 功能演示二">功能演示二</a> 
+                    </dd> 
+                  </dl>  
+                </dd>
+                <dd data-name="upload"> 
+                  <a href="javascript:;">上传</a>  
+                  <dl class="layui-nav-child">  
+                    <dd data-name="demo1"> 
+                      <a lay-href="component/upload/demo1.html" lay-text="上传功能演示一">功能演示一</a> 
+                    </dd>
+                    <dd data-name="demo2"> 
+                      <a lay-href="component/upload/demo2.html" lay-text="上传功能演示二">功能演示二</a> 
+                    </dd> 
+                  </dl>  
+                </dd>
+                <dd data-name="colorpicker">
+                  <a lay-href="component/colorpicker/index.html">颜色选择器</a>
+                </dd>
+                <dd data-name="slider">
+                  <a lay-href="component/slider/index.html">滑块组件</a>
+                </dd>
+                <dd data-name="rate">
+                  <a lay-href="component/rate/index.html">评分</a>
+                </dd>
+                <dd data-name="carousel"> 
+                  <a lay-href="component/carousel/index.html">轮播</a>  
+                </dd>
+                <dd data-name="flow"> 
+                  <a lay-href="component/flow/index.html">流加载</a>  
+                </dd>
+                <dd data-name="util"> 
+                  <a lay-href="component/util/index.html">工具</a>  
+                </dd>
+                <dd data-name="code"> 
+                  <a lay-href="component/code/index.html">代码修饰</a> 
+                </dd>
+              </dl>
+            </li>
+            <li data-name="template" class="layui-nav-item">
+              <a href="javascript:;" lay-tips="页面" lay-direction="2">
+                <i class="layui-icon layui-icon-template"></i>
+                <cite>页面</cite>
+              </a>
+              <dl class="layui-nav-child">
+                <dd><a lay-href="template/personalpage.html">个人主页</a></dd>
+                <dd><a lay-href="template/addresslist.html">通讯录</a></dd>
+                <dd><a lay-href="template/caller.html">客户列表</a></dd>
+                <dd><a lay-href="template/goodslist.html">商品列表</a></dd>
+                <dd><a lay-href="template/msgboard.html">留言板</a></dd>
+                <dd><a lay-href="template/search.html">搜索结果</a></dd>
+                <dd><a href="user/reg.html" target="_blank">注册</a></dd>
+                <dd><a href="user/login.html" target="_blank">登入</a></dd>
+                <dd><a href="user/forget.html" target="_blank">忘记密码</a></dd>
+                <dd><a lay-href="template/tips/404.html">404页面不存在</a></dd>
+                <dd><a lay-href="template/tips/error.html">错误提示</a></dd>
+                <dd><a lay-href="//www.baidu.com/">百度一下</a></dd>
+                <dd><a lay-href="//www.layui.com/">layui官网</a></dd>
+                <dd><a lay-href="//www.layui.com/admin/">layuiAdmin官网</a></dd>
+              </dl>
+            </li>
+            <li data-name="app" class="layui-nav-item">
+              <a href="javascript:;" lay-tips="应用" lay-direction="2">
+                <i class="layui-icon layui-icon-app"></i>
+                <cite>应用</cite>
+              </a>
+              <dl class="layui-nav-child">
+                
+                <dd data-name="content">
+                  <a href="javascript:;">内容系统</a>
+                  <dl class="layui-nav-child">
+                    <dd data-name="list"><a lay-href="app/content/list.html">文章列表</a></dd>
+                    <dd data-name="tags"><a lay-href="app/content/tags.html">分类管理</a></dd>
+                    <dd data-name="comment"><a lay-href="app/content/comment.html">评论管理</a></dd>
+                  </dl>
+                </dd>
+                <dd data-name="forum">
+                  <a href="javascript:;">社区系统</a>
+                  <dl class="layui-nav-child">
+                    <dd data-name="list"><a lay-href="app/forum/list.html">帖子列表</a></dd>
+                    <dd data-name="replys"><a lay-href="app/forum/replys.html">回帖列表</a></dd>
+                  </dl>
+                </dd>
+                <dd>
+                  <a lay-href="app/message/index.html">消息中心</a>
+                </dd>
+                <dd data-name="workorder">
+                  <a lay-href="app/workorder/list.html">工单系统</a>
+                </dd>
+              </dl>
+            </li>
+            <li data-name="senior" class="layui-nav-item">
+              <a href="javascript:;" lay-tips="高级" lay-direction="2">
+                <i class="layui-icon layui-icon-senior"></i>
+                <cite>高级</cite>
+              </a>
+              <dl class="layui-nav-child">
+                <dd>
+                  <a layadmin-event="im">LayIM 通讯系统</a>  
+                </dd>
+                <dd data-name="echarts">
+                  <a href="javascript:;">Echarts集成</a>
+                  <dl class="layui-nav-child">
+                    <dd><a lay-href="senior/echarts/line.html">折线图</a></dd>
+                    <dd><a lay-href="senior/echarts/bar.html">柱状图</a></dd>
+                    <dd><a lay-href="senior/echarts/map.html">地图</a></dd>
+                  </dl>
+                </dd>
+              </dl>
+            </li>
+            <li data-name="user" class="layui-nav-item">
+              <a href="javascript:;" lay-tips="用户" lay-direction="2">
+                <i class="layui-icon layui-icon-user"></i>
+                <cite>用户</cite>
+              </a>
+              <dl class="layui-nav-child">
+                <dd>
+                  <a lay-href="user/user/list.html">网站用户</a>
+                </dd>
+                <dd>
+                  <a lay-href="user/administrators/list.html">后台管理员</a>
+                </dd>
+                <dd>
+                  <a lay-href="user/administrators/role.html">角色管理</a>
+                </dd>
+              </dl>
+            </li>
+            <li data-name="set" class="layui-nav-item">
+              <a href="javascript:;" lay-tips="设置" lay-direction="2">
+                <i class="layui-icon layui-icon-set"></i>
+                <cite>设置</cite>
+              </a>
+              <dl class="layui-nav-child">
+                <dd class="layui-nav-itemed">
+                  <a href="javascript:;">系统设置</a>
+                  <dl class="layui-nav-child">
+                    <dd><a lay-href="set/system/website.html">网站设置</a></dd>
+                    <dd><a lay-href="set/system/email.html">邮件服务</a></dd>
+                  </dl>
+                </dd>
+                <dd class="layui-nav-itemed">
+                  <a href="javascript:;">我的设置</a>
+                  <dl class="layui-nav-child">
+                    <dd><a lay-href="set/user/info.html">基本资料</a></dd>
+                    <dd><a lay-href="set/user/password.html">修改密码</a></dd>
+                  </dl>
+                </dd>
+              </dl>
+            </li>
+            <li data-name="get" class="layui-nav-item">
+              <a href="javascript:;" lay-href="//www.layui.com/admin/#get" lay-tips="授权" lay-direction="2">
+                <i class="layui-icon layui-icon-auz"></i>
+                <cite>授权</cite>
+              </a>
+            </li>
+          </ul>
+        </div>
+      </div>

+ 78 - 0
assets/layadmin/html/inc/nav.html

@@ -0,0 +1,78 @@
+<div id="load_style" style="display:none;">
+</div>
+<div id="dever-name" style="display:none;"></div>
+<div class="layui-header" id="nav">
+<!-- 头部区域 -->
+<ul class="layui-nav layui-layout-left">
+  <li class="layui-nav-item layadmin-flexible" lay-unselect>
+    <a href="javascript:;" layadmin-event="flexible" title="侧边伸缩">
+      <i class="layui-icon layui-icon-shrink-right" id="LAY_app_flexible"></i>
+    </a>
+  </li>
+  <li class="layui-nav-item layui-hide-xs" lay-unselect style="display:none;">
+    <a href="http://www.layui.com/admin/" target="_blank" title="前台">
+      <i class="layui-icon layui-icon-website"></i>
+    </a>
+  </li>
+  <li class="layui-nav-item" lay-unselect>
+    <a href="javascript:;" layadmin-event="refresh" title="刷新">
+      <i class="layui-icon layui-icon-refresh-3"></i>
+    </a>
+  </li>
+  <li class="layui-nav-item layui-hide-xs" lay-unselect style="display:none;">
+    <input type="text" placeholder="搜索..." autocomplete="off" class="layui-input layui-input-search" layadmin-event="serach" lay-action="template/search.html?keywords="> 
+  </li>
+</ul>
+<ul class="layui-nav layui-layout-right" lay-filter="layadmin-layout-right">
+
+  <li class="layui-nav-item auth-top" lay-unselect>
+    <a href="javascript:;">
+      <cite><span></span></cite>
+    </a>
+    <ul class="layui-nav-child">
+      <li><a lay-href="set/user/info.html">基本资料</a></li>
+    </ul>
+  </li>
+
+  <li class="layui-nav-item" lay-unselect style="display:none;">
+    <a lay-href="app/message/index.html" layadmin-event="message" lay-text="消息中心">
+      <i class="layui-icon layui-icon-notice"></i>  
+      
+      <!-- 如果有新消息,则显示小圆点 -->
+      <span class="layui-badge-dot"></span>
+    </a>
+  </li>
+  <li class="layui-nav-item layui-hide-xs" lay-unselect>
+    <a href="javascript:;" layadmin-event="theme">
+      <i class="layui-icon layui-icon-theme"></i>
+    </a>
+  </li>
+  <li class="layui-nav-item layui-hide-xs" lay-unselect style="display:none;">
+    <a href="javascript:;" layadmin-event="note">
+      <i class="layui-icon layui-icon-note"></i>
+    </a>
+  </li>
+  <li class="layui-nav-item layui-hide-xs" lay-unselect>
+    <a href="javascript:;" layadmin-event="fullscreen">
+      <i class="layui-icon layui-icon-screen-full"></i>
+    </a>
+  </li>
+  <li class="layui-nav-item" lay-unselect>
+    <a href="javascript:;">
+      <cite id="manage-name"></cite>
+    </a>
+    <dl class="layui-nav-child">
+      <dd><a id="edit_password" onclick="pass($(this));" style="cursor: pointer;">修改密码</a></dd>
+      <hr>
+      <dd layadmin-event="logout" id="logout-url" style="text-align: center;"><a>退出</a></dd>
+    </dl>
+  </li>
+  
+  <li class="layui-nav-item layui-hide-xs" lay-unselect>
+    <a href="javascript:;" layadmin-event="about"><i class="layui-icon layui-icon-more-vertical"></i></a>
+  </li>
+  <li class="layui-nav-item layui-show-xs-inline-block layui-hide-sm" lay-unselect>
+    <a href="javascript:;" layadmin-event="more"><i class="layui-icon layui-icon-more-vertical"></i></a>
+  </li>
+</ul>
+</div>

+ 40 - 0
assets/layadmin/html/inc/script.html

@@ -0,0 +1,40 @@
+<script type="text/javascript" src="../script/lib/pic/webp.js"></script>
+
+<!--[if (gte IE 9)|!(IE)]><!-->
+<script type="text/javascript" src="../script/lib/jquery/store.js"></script>
+<script type="text/javascript" src="../script/lib/bootstrap/js/bootstrap.min.js"></script>
+<script type="text/javascript" src="../script/lib/pjax/pjax.js"></script>
+<script type="text/javascript" src="../script/lib/pjax/nprogress.js"></script>
+<!--<![endif]-->
+
+<!-- 加载颜色控件 -->
+<script type="text/javascript" src="../script/lib/color/colpick.js"></script>
+
+<!-- 加载时间控件 -->
+<script type="text/javascript" src="../script/lib/datetime/jquery.datetimepicker.min.js"></script>
+
+<!-- 加载notify提醒 -->
+<script type="text/javascript" src="../script/lib/pnotify/pnotify.js"></script>
+
+<!-- 加载图片展示 -->
+<script type="text/javascript" src="../script/lib/fancybox/jquery.fancybox.js"></script>
+
+<!-- 加载echarts -->
+<script type="text/javascript" src="../script/lib/echarts/echarts.common.min.js?v1"></script>
+
+<!-- 加载highlight.min.js -->
+<script type="text/javascript" src="../script/lib/highlight/highlight.min.js"></script>
+
+<!-- 加载主要js,很乱,后续优化 -->
+<script type="text/javascript" src="../script/lib/manage/main.js?v7"></script>
+
+<!-- 加载valid -->
+<script type="text/javascript" src="../script/lib/valid/jquery.validationEngine.min.js?v3"></script>
+
+<!-- 加载文本编辑器 -->
+<script type="text/javascript" src="../script/lib/kindeditor/kindeditor-all-min.js?v4"></script>
+<script type="text/javascript" src="../script/lib/kindeditor/lang/zh-CN.js"></script>
+
+
+<script type="text/javascript" src="../script/lib/layui/upload.js?v1"></script>
+<script type="text/javascript" src="../script/lib/layui/layui.js"></script>

+ 80 - 0
assets/layadmin/html/login.html

@@ -0,0 +1,80 @@
+
+
+<!DOCTYPE html>
+<html>
+<head>
+  <script class="include" system="" path="inc/" file="head">include()</script>
+  <link rel="stylesheet" href="../script/lib/layui/admin/style/login.css" media="all">
+</head>
+<body>
+
+  <div class="layadmin-user-login layadmin-user-display-show" id="LAY-user-login">
+    <form action="/auth.login" method="post" target="f1" class="form-horizontal m-t-20" id="login">
+    <input type="hidden" name="function" id="function" value="msg">
+    <input type="hidden" name="refer" id="refer" value="">
+    <iframe id="f1" name="f1" style="display:none;"></iframe>
+    <div class="layadmin-user-login-main">
+      <div class="layadmin-user-login-box layadmin-user-login-header">
+        <h2 id="name">dever</h2>
+      </div>
+      <div class="layadmin-user-login-box layadmin-user-login-body layui-form">
+        <div class="layui-form-item">
+          <label class="layadmin-user-login-icon layui-icon layui-icon-username" for="LAY-user-login-username"></label>
+          <input type="text" ame="username" id="username" lay-verify="required" placeholder="账号" class="layui-input">
+        </div>
+        <div class="layui-form-item">
+          <label class="layadmin-user-login-icon layui-icon layui-icon-password" for="LAY-user-login-password"></label>
+          <input name="password" id="password" type="password" lay-verify="required" placeholder="密码" class="layui-input">
+        </div>
+        <div class="layui-form-item">
+          <button class="layui-btn layui-btn-fluid" lay-submit lay-filter="LAY-user-login-submit">登 入</button>
+        </div>
+      </div>
+    </div>
+    
+    <div class="layui-trans layadmin-user-login-footer">
+      <p id="footer">© 2015-2020 dever.cc,Inc. Licensed under MIT license.</p>
+    </div>
+    
+    <div class="ladmin-user-login-theme" style="display:none;">
+      <script type="text/html" template>
+        <ul>
+          <li data-theme=""><img src="{{ layui.setter.base }}style/res/bg-none.jpg"></li>
+          <li data-theme="#03152A" style="background-color: #03152A;"></li>
+          <li data-theme="#2E241B" style="background-color: #2E241B;"></li>
+          <li data-theme="#50314F" style="background-color: #50314F;"></li>
+          <li data-theme="#344058" style="background-color: #344058;"></li>
+          <li data-theme="#20222A" style="background-color: #20222A;"></li>
+        </ul>
+      </script>
+    </div>
+    </form> 
+  </div>
+
+  <script class="include" system="" path="inc/" file="script">include()</script>
+  <script>
+  $(function()
+  {
+    $("#login").bind("keydown",function(e){
+      var theEvent = e || window.event;    
+      var code = theEvent.keyCode || theEvent.which || theEvent.charCode;    
+      if (code == 13) {    
+              $("#login").submit();
+          }
+     });
+  });
+
+  </script>
+  <script>
+  layui.config({
+    base: '../script/lib/layui/admin/' //静态资源所在路径
+  }).extend({
+    index: 'lib/index' //主入口模块
+  }).use(['index', 'user'], function(){
+    var $ = layui.$
+    ,setter = layui.setter
+    ,admin = layui.admin
+  });
+  </script>
+</body>
+</html>

+ 91 - 0
assets/layadmin/html/project/database/list.html

@@ -0,0 +1,91 @@
+
+
+<!DOCTYPE html>
+<html>
+<head>
+  <script class="include" system="" path="inc/" file="head">include()</script>
+</head>
+<body>
+<style id="addstyle">
+</style>
+<div class="topbar">
+    <div class="banner dever-layout" style="display:none;">
+        <a target="_blank"><img src="#"></a>
+        <span>项目名称</span>
+    </div>
+</div>
+<div id="content_1" style="display:none;"></div>
+<div id="content_2">
+  <div class="layui-fluid">
+    <div class="layui-card">
+      <form id="form1" name="form1" method="post" target="f1">
+      <input type="hidden" name="function" id="function" value="msg"/>
+      <input type="hidden" name="url" id="url" value=""/>
+      <input type="hidden" name="method" id="method" value="search"/>
+      <iframe id="f1" name="f1" style="display:none;"></iframe>
+      <div class="layui-card-header" style="display:none;"><span id="list-name">网站设置</span> > <span id="list-project"></span></div>
+        <div class="layui-card-body">
+
+          <div class="layui-form layui-card-header layuiadmin-card-header-auto">
+            <div class="layui-form-item">
+              <div id="search"></div>
+            </div>
+          </div>
+        </div>
+      <div class="layui-card-body">
+        <div style="padding-bottom: 10px;">
+          <a class="layui-btn layuiadmin-btn-list" data-type="add" id="list-parent" style="display:none;">返回上一页</a>
+
+          <a class="layui-btn layuiadmin-btn-list" data-type="add" id="list-add">新增</a>
+
+          <span id="list-button"></span>
+        </div>
+        <div id="table_1" style="display:none;"></div>
+        <div id="table_2"> 
+          <table class="table layui-table">
+          <thead id="list-thead">
+              <tr>
+                  <th>Company</th>
+              </tr>
+          </thead>
+          <tbody id="list-tbody">
+              <tr>
+                  <th></th>
+              </tr>      
+              
+          </tbody>
+      </table>
+
+      <div id="mul"></div>
+      <div id="page"></div>
+      <div class="dever_desc" id="desc"></div>
+        </div>
+      </div>
+       </div>
+        </div>
+      </form>
+      <form id="form2" name="form2" method="get" style="display: none;"></form>
+      <div id="struct" style="display:none;"></div>
+      <script>
+          $(document).ready(function()
+          {
+            init();
+          });
+      </script>
+    </div>
+  </div>
+</div>
+
+  <script class="include" system="" path="inc/" file="script">include()</script>
+  <script>
+  layui.config({
+    base: '../script/lib/layui/admin/' //静态资源所在路径
+  }).extend({
+    index: 'lib/index' //主入口模块
+  }).use(['index', 'contlist', 'table', 'form'], function(){
+    var table = layui.table;
+    var form = layui.form; 
+  });
+  </script>
+</body>
+</html>

+ 143 - 0
assets/layadmin/html/project/database/update.html

@@ -0,0 +1,143 @@
+
+
+<!DOCTYPE html>
+<html>
+<head>
+  <script class="include" system="" path="inc/" file="head">include()</script>
+  <style>
+    .layui-input
+    {
+      width: 50%;
+    }
+    </style>
+</head>
+<body>
+<div class="topbar">
+    <div class="banner dever-layout" style="display:none;">
+        <a target="_blank"><img src="#"></a>
+        <span>项目名称</span>
+    </div>
+</div>
+<div id="content_1" style="display:none;"></div>
+<div id="content_2">
+  <div class="layui-fluid">
+    <div style="display:none;"><span id="list-name">网站设置</span> > <span id="list-project"></span></div>
+    <form method="post" target="f1" class="form1" role="form" autocomplete="off">
+    <input type="hidden" name="function" id="function" value="msg"/>
+    <input type="hidden" name="url" id="url" />
+    <input type="hidden" name="project" id="project" />
+    <input type="hidden" name="table" id="table" />
+    <input type="hidden" name="update_where_id" id="update_where_id"/>
+    <input type="hidden" name="copy_num" id="copy_num" value="0"/>
+    <iframe id="f1" name="f1" style="display:none;"></iframe>
+
+    <div class="layui-row layui-col-space15">
+      <div class="layui-col-md12">
+        <div class="layui-card">
+          <div class="layui-card-header" style="display:none;">响应式组合</div>
+          <div class="layui-card-body" id="content">
+            <form class="layui-form" action="" lay-filter="component-form-element">
+              <div class="layui-row layui-col-space10 layui-form-item">
+                <div class="layui-col-lg6">
+                  <label class="layui-form-label">员工姓名:</label>
+                  <div class="layui-input-block">
+                    <input type="text" name="fullname" lay-verify="required" placeholder="" autocomplete="off" class="layui-input">
+                  </div>
+                </div>
+                <div class="layui-col-lg6">
+                  <label class="layui-form-label">技术工种:</label>
+                  <div class="layui-input-block">
+                    <select name="type" lay-verify="required" lay-filter="aihao">
+                      <option value=""></option>
+                      <option value="0">前端工程师</option>
+                      <option value="1">Node.js工程师</option>
+                      <option value="2">PHP工程师</option>
+                      <option value="3">Java工程师</option>
+                      <option value="4">运维</option>
+                      <option value="4">视觉设计师</option>
+                    </select>
+                  </div>
+                </div>
+              </div>
+              <div class="layui-form-item">
+                <label class="layui-form-label">兴趣爱好:</label>
+                <div class="layui-input-block">
+                  <input type="checkbox" name="interest[write]" title="写作">
+                  <input type="checkbox" name="interest[read]" title="阅读">
+                  <input type="checkbox" name="interest[code]" title="代码" checked>
+                  <input type="checkbox" name="interest[dreaming]" title="做梦">
+                </div>
+              </div>
+              <div class="layui-form-item">
+                <label class="layui-form-label">是否婚姻:</label>
+                <div class="layui-input-block">
+                  <input type="checkbox" name="marriage" lay-skin="switch" lay-text="是|否">
+                </div>
+              </div>
+              <div class="layui-form-item">
+                <label class="layui-form-label">所属职称:</label>
+                <div class="layui-input-block">
+                  <input type="radio" name="role" value="" title="经理">
+                  <input type="radio" name="role" value="" title="主管">
+                  <input type="radio" name="role" value="" title="码农" checked>
+                  <input type="radio" name="role" value="" title="端水">
+                </div>
+              </div>
+              <div class="layui-form-item">
+                <label class="layui-form-label">其它信息:</label>
+                <div class="layui-input-block">
+                  <textarea name="other" placeholder="" class="layui-textarea"></textarea>
+                </div>
+              </div>
+              <div class="layui-form-item">
+                <label class="layui-form-label"> </label>
+                <div class="layui-input-block">
+                  <input type="checkbox" name="agreement" title="同意" lay-skin="primary" checked>
+                </div>
+              </div>
+              <div class="layui-form-item">
+                <div class="layui-input-block">
+                  <button class="layui-btn" lay-submit lay-filter="component-form-element">立即提交</button>
+                  <button type="reset" class="layui-btn layui-btn-primary">重置</button>
+                </div>
+              </div>
+            </form>
+          </div>
+          <div class="layui-card-body">
+            <div class="layui-form-item">
+                <div id="update_button">
+                  <button class="layui-btn" lay-submit lay-filter="component-form-element">立即提交</button>
+                  <button type="reset" class="layui-btn layui-btn-primary">重置</button>
+                </div>
+              </div>
+            </div>
+        </div>
+      </div>
+    </div>
+    <div id="valid"></div>
+    <div id="struct" style="display:none;"></div>
+
+    <script>
+        $(document).ready(function()
+        {
+          init();
+        });
+    </script>
+    </form>
+  </div>
+</div>
+
+  
+  <script class="include" system="" path="inc/" file="script">include()</script>
+  <script>
+  layui.config({
+    base: '../script/lib/layui/admin/' //静态资源所在路径
+  }).extend({
+    index: 'lib/index' //主入口模块
+  }).use(['index', 'contlist', 'table', 'form'], function(){
+    var table = layui.table;
+    var form = layui.form; 
+  });
+  </script>
+</body>
+</html>

+ 1 - 1
assets/moltran/html/inc/nav.html

@@ -104,7 +104,7 @@
                                     <a href="" class="dropdown-toggle profile" data-toggle="dropdown" aria-expanded="true"><img src="../img/users/avatar-1.jpg" alt="user-img" class="img-circle"> </a>
                                     <ul class="dropdown-menu">
                                         <li><a href="javascript:void(0)"><i class="glyphicon glyphicon-user"  style="top: 3px;"></i> <span id="manage-name">个人资料</span></a></li>
-                                        <li><a href="#dever_modal" data-toggle="modal" data-name="ttt" id="edit_password" onclick="pass($(this));"><i class="glyphicon glyphicon-cog" style="top: 3px;"></i> 修改密码</a></li>
+                                        <li><a href="javascript:;" data-name="ttt" id="edit_password" onclick="pass($(this));"><i class="glyphicon glyphicon-cog" style="top: 3px;"></i> 修改密码</a></li>
                                         <li style="display:none;"><a href="javascript:void(0)"><i class="glyphicon glyphicon-lock" style="top: 3px;"></i> 锁屏</a></li>
                                         <li><a id="logout-url" href="javascript:void(0)"><i class="glyphicon glyphicon-log-out"  style="top: 3px;"></i> 退出</a></li>
                                     </ul>

+ 1 - 1
assets/moltran/html/inc/script.html

@@ -77,4 +77,4 @@
 
 
 <script type="text/javascript" src="../script/lib/layui/upload.js?v1"></script>
-<script type="text/javascript" src="../script/lib/layui/layui.js"></script>
+<script type="text/javascript" src="../script/lib/layui/layui.all.js"></script>

+ 1 - 1
assets/moltran/html/list.html

@@ -81,7 +81,7 @@
                         </ul>
                         <h4 class="pull-left page-title" id="list-name">Responsive Table</h4>
                         <ol class="breadcrumb pull-right">
-                            <li><a href="#dever_modal" data-toggle="modal" onclick="showMsg('数据结构', $(this), '#struct')" id="list-project">Tables</a></li>
+                            <li><a href="javascript:;" onclick="showMsg('数据结构', $(this), '#struct')" id="list-project">Tables</a></li>
                             <li class="active" id="list-desc">Responsive Table</li>
                         </ol>
                     </div>

+ 10 - 0
common.php

@@ -3,4 +3,14 @@
 function test()
 {
 	echo 1;die;
+}
+
+# 判断是否是layadmin模板
+function layadmin()
+{
+	$assets = Dever::config('template')->assets;
+    if ($assets == 'layadmin') {
+        return true;
+    }
+    return false;
 }

+ 10 - 0
config/base.php

@@ -30,8 +30,14 @@ $config['base'] = array
 $config['template'] = array
 (
 	# 使用的模板 注意:定义这个之后,将会强制将本项目模板变成这个
+
 	'assets' => 'moltran',
 	'template' => 'default',
+
+	'assets' => 'layadmin',
+	'template' => 'layadmin',
+
+
 	
 	# 替换设置 一般用于替换资源,将模板中的(html中的)js等相对url换成绝对url,如果不定义,则默认为../js这样的
 	'replace' => array
@@ -53,4 +59,8 @@ $config['template'] = array
 	'layout' => '.content',
 );
 
+if ($config['template']['assets'] == 'layadmin') {
+	$config['template']['layout'] = '';
+}
+
 return $config;

+ 39 - 3
database/admin.php

@@ -291,10 +291,10 @@ return array
 		'mobile'		=> array
 		(
 			'type' 		=> 'varchar-32',
-			'name' 		=> '联系电话',
+			'name' 		=> '手机号',
 			'default' 	=> '',
-			'desc' 		=> '请输入用户联系电话',
-			'match' 	=> 'option',
+			'desc' 		=> '请输入手机号',
+			'match' 	=> Dever::rule('mobile'),
 			'update'	=> 'text',
 			'search'	=> 'fulltext',
 			'list'		=> true,
@@ -482,6 +482,42 @@ return array
 			# 为这个接口独立设置缓存
 			'cache' => true,
 		),
+
+		# one 根据用户名和密码取一条数据
+		'email' => array
+		(
+			# 匹配的正则或函数 必填项
+			'where' => array
+			(
+				//'username' => '/^([A-Za-z0-9])/',
+				//'username' => 'yes',
+				'email' => 'yes',
+				'status' => 1,
+				'state' => 1,
+				//'password' => 'is_string',
+			),
+			'type' => 'one',
+			# 为这个接口独立设置缓存
+			'cache' => true,
+		),
+
+		# one 根据用户名和密码取一条数据
+		'mobile' => array
+		(
+			# 匹配的正则或函数 必填项
+			'where' => array
+			(
+				//'username' => '/^([A-Za-z0-9])/',
+				//'username' => 'yes',
+				'mobile' => 'yes',
+				'status' => 1,
+				'state' => 1,
+				//'password' => 'is_string',
+			),
+			'type' => 'one',
+			# 为这个接口独立设置缓存
+			'cache' => true,
+		),
 		
 		# 更新密码
 		'password' => array

+ 36 - 16
page/list.php

@@ -1,21 +1,41 @@
 <?php
 
-# 定义父节点的类型、属性等(整个page的节点)
-$html->parent = array('ul', 'class="pagination"');
-# 定义子节点的类型、属性等(每个page的节点)
-$html->child = array('li', 'class=""');
-# 定义上一页的名称、样式
-$html->prev = array('上一页', 'btn p1');
-# 定义下一页的名称、样式
-$html->next = array('下一页', 'btn p2');
-# 定义每个页数的样式,当前页的样式 样式写在哪 是否和旧样式共用
-$html->page = array('', 'dever_page_disabled', 'parent');
-# 定义开始页
-$html->start = array('首页', '');
-# 定义结束页
-$html->end = array('末页', '');
-# 定义跳转页
-$html->jump = '<li><input type="text" class="form-control" id="dever_page" style="margin-top:0px;width:50px;" value="'.$page->current().'" onclick="$(this).val(\'\')"/><a href="javascript:;" style="float:right;" class="" {click}>跳转</a></li>';
+if (layadmin()) {
+	# 定义父节点的类型、属性等(整个page的节点)
+	$html->parent = array('ul', 'class="pagination layui-box layui-laypage layui-laypage-default" style="display:inline-flex;"');
+	# 定义子节点的类型、属性等(每个page的节点)
+	$html->child = array('li', 'class=""');
+	# 定义上一页的名称、样式
+	$html->prev = array('上一页', 'btn p1 layui-laypage-prev');
+	# 定义下一页的名称、样式
+	$html->next = array('下一页', 'btn p2 layui-laypage-next');
+	# 定义每个页数的样式,当前页的样式 样式写在哪 是否和旧样式共用
+	$html->page = array('layui-laypage-curr', 'dever_page_disabled layui-disabled', '');
+	# 定义开始页
+	$html->start = array('首页', 'layui-laypage-first');
+	# 定义结束页
+	$html->end = array('末页', 'layui-laypage-last');
+	# 定义跳转页
+	$html->jump = '<li class="layui-laypage-skip"><input type="text" class="form-control" id="dever_page" style="margin-top:0px;width:50px;font-size: 12px;" value="'.$page->current().'" onclick="$(this).val(\'\')"/><a href="javascript:;" style="float:right;" class="" {click}>跳转</a></li><li><span class="layui-laypage-count">每页 '.$page->num.' 条,共 '.$page->total.' 条</span></li>';
+} else {
+	# 定义父节点的类型、属性等(整个page的节点)
+	$html->parent = array('ul', 'class="pagination"');
+	# 定义子节点的类型、属性等(每个page的节点)
+	$html->child = array('li', 'class=""');
+	# 定义上一页的名称、样式
+	$html->prev = array('上一页', 'btn p1');
+	# 定义下一页的名称、样式
+	$html->next = array('下一页', 'btn p2');
+	# 定义每个页数的样式,当前页的样式 样式写在哪 是否和旧样式共用
+	$html->page = array('', 'dever_page_disabled', 'parent');
+	# 定义开始页
+	$html->start = array('首页', '');
+	# 定义结束页
+	$html->end = array('末页', '');
+	# 定义跳转页
+	$html->jump = '<li><input type="text" class="form-control" id="dever_page" style="margin-top:0px;width:50px;" value="'.$page->current().'" onclick="$(this).val(\'\')"/><a href="javascript:;" style="float:right;" class="" {click}>跳转</a></li>';
+}
+
 # 定义扩展信息
 $html->ext = '';
 # 生成

+ 14 - 23
src/Auth.php

@@ -229,28 +229,33 @@ class Auth
     public function login_api()
     {
         //$param['where_username'] = Dever::input('username');
-        $param['where_email'] = Dever::input('username');
+        $username = Dever::input('username');
+        if (strstr($username, '@')) {
+            $param['where_email'] = $username;
+            $method = 'email';
+        } else {
+            $param['where_mobile'] = $username;
+            $method = 'mobile';
+        }
 
         $password = hash('sha256', Dever::input('password'));
 
-        //print_r($param);die;
-
-        $user = Dever::db('manage/admin')->user($param);
-
-        //print_r($user);die;
+        $user = Dever::db('manage/admin')->$method($param);
 
         if (!$user) {
             $total = Dever::db('manage/admin')->total();
             if ($total <= 0) {
-                $insert['username'] = $param['where_email'];
-                $insert['email'] = $param['where_email'];
+                $insert['username'] = $username;
+                $insert[$method] = $username;
                 $insert['password'] = Dever::input('password');
                 $insert['status'] = $insert['state'] = 1;
                 $insert['role'] = 1;
                 Dever::db('manage/admin')->insert($insert);
 
                 $param['time'] = 1;
-                $user = Dever::db('manage/admin')->user($param);
+                $user = Dever::db('manage/admin')->$method($param);
+            } else {
+                Dever::alert('登录失败');
             }
         }
 
@@ -261,20 +266,6 @@ class Auth
 
             if ($refer) {
                 $refer = Encrypt::decode($refer);
-                /*
-                $url = parse_url(Encrypt::decode($refer));
-                $url['path'] = preg_replace('/^\//', '', $url['path']);
-                if (empty($url['query'])) {
-                    $url['query'] = '';
-                }
-
-                if (Uri::$type == '?') {
-                    $refer = Dever::url(str_replace($url['path'] . Uri::$type, '', $url['query']));
-                } else {
-                    $refer = Dever::url($url['path'] . '?' . $url['query']);
-                }
-                */
-
                 Dever::out($refer);
             } else {
                 Dever::out(Dever::url('home'));

+ 65 - 32
src/Database.php

@@ -769,7 +769,7 @@ class Database
             $value['bind'] = $bind;
         }
         $value['parent'] = $parent;
-        $result .= Html::select($value, false) . '&nbsp;&nbsp;&nbsp;';
+        $result .= Html::select($value, false);
     }
 
     /**
@@ -789,7 +789,7 @@ class Database
         if ($default) {
             //$value['default'] = $default;
         }
-        $result .= Html::group($value, false) . '&nbsp;&nbsp;&nbsp;';
+        $result .= Html::group($value, false);
     }
 
     /**
@@ -810,7 +810,7 @@ class Database
         if ($default) {
             //$value['default'] = $default;
         }
-        $result .= Html::linkage($value, 'span') . '&nbsp;&nbsp;&nbsp;';
+        $result .= Html::linkage($value, 'span');
     }
 
     /**
@@ -821,20 +821,20 @@ class Database
     public function list_search_time(&$result, $search, $prefix, $key, $lang, $type = 'time')
     {
         $value['name'] = $prefix . 'option_start_' . $key;
-        $value['lang'] = '开始' . $lang;
+        $value['lang'] = '>=' . $lang;
         if (isset($search[$value['name']])) {
             $value['value'] = Dever::maketime($search[$value['name']]);
             Dever::setInput($value['name'], $value['value'], 'search_');
         }
-        $result .= Html::$type($value) . '&nbsp;-&nbsp;';
+        $result .= Html::$type($value, false);
 
         $value['name'] = $prefix . 'option_end_' . $key;
-        $value['lang'] = '结束' . $lang;
+        $value['lang'] = '<=' . $lang;
         if (isset($search[$value['name']])) {
             $value['value'] = Dever::maketime($search[$value['name']]);
             Dever::setInput($value['name'], $value['value'], 'search_');
         }
-        $result .= Html::$type($value) . '&nbsp;&nbsp;';
+        $result .= Html::$type($value, false);
     }
 
     /**
@@ -900,8 +900,8 @@ class Database
 
         $info = $this->info();
 
-        $result = '<button type="button" class="btn btn-primary save-data"><i class="fa fa-save"></i> 提交保存</button>
-            <a href="' . $info['list'] . '" class="btn btn-danger" onclicks="msg({status:1,msg:\'yes\'})">放弃保存</a>';
+        $result = '<button type="button" class="btn btn-primary save-data layui-btn layuiadmin-btn-list"><i class="fa fa-save"></i> 提交保存</button>
+            <a href="' . $info['list'] . '" class="btn btn-danger layui-btn layuiadmin-btn-list layui-btn-danger" onclicks="msg({status:1,msg:\'yes\'})">放弃保存</a>';
 
         $config = $this->config();
 
@@ -913,7 +913,7 @@ class Database
                 } elseif ($v == 'copy-data') {
                     $result .= '<a href="javascript:;" class="btn btn-danger" onclick="set_update(\'#copy_num\', 1);set_update(\'#update_where_id\', 0);submit_action();">' . $k . '</a>';
                 } elseif ($v == 'copy-datas') {
-                    $result .= '<a href="#dever_modal" data-toggle="modal" class="btn btn-danger" onclick="copy_data($(this))">' . $k . '</a>';
+                    $result .= '<a href="javascript:;" class="btn btn-danger" onclick="copy_data($(this))">' . $k . '</a>';
                 } else {
                     $result .= '<a href="javascript:;" class="btn btn-danger" onclick="' . $v . '">' . $k . '</a>';
                 }
@@ -929,24 +929,24 @@ class Database
         foreach ($button as $k => $v) {
             if (is_array($v)) {
                 if ($v[0] == 'location') {
-                    $result .= '&nbsp;&nbsp;<a class="btn btn-default" onclick="location.href=\''.Dever::url($v[1]).'\'">' . $k . '</a>';
+                    $result .= '&nbsp;&nbsp;<a class="btn btn-default layui-btn layuiadmin-btn-list" onclick="location.href=\''.Dever::url($v[1]).'\'">' . $k . '</a>';
                 } else {
-                    $result .= '&nbsp;&nbsp;<a class="btn btn-default" href="' . $this->url($v[0], false, $v[1]) . '">' . $k . '</a>';
+                    $result .= '&nbsp;&nbsp;<a class="btn btn-default layui-btn layuiadmin-btn-list" href="' . $this->url($v[0], false, $v[1]) . '">' . $k . '</a>';
                 }
                 
             } elseif (strpos($v, 'modal|') !== false) {
                 $t = explode('modal|', $v);
-                $result .= '&nbsp;&nbsp;<a href="#dever_modal" data-toggle="modal"  class="btn btn-default" onclick="$(\'#dever_modal_body\').html(\'' . $t[1] . '\')">' . $k . '</a>';
+                $result .= '&nbsp;&nbsp;<a href="javascript:;"  class="btn btn-default layui-btn layuiadmin-btn-list" onclick="showAlert(\'' . $t[1] . '\')">' . $k . '</a>';
             } elseif (strpos($v, '|') !== false) {
                 $t = explode('|', $v);
-                $result .= $t[0] . '&nbsp;&nbsp;<a href="javascript:;" class="btn btn-warning" ' . $t[1] . '>' . $k . '</a>';
+                $result .= $t[0] . '&nbsp;&nbsp;<a href="javascript:;" class="btn btn-warning layui-btn layuiadmin-btn-list layui-btn-warm" ' . $t[1] . '>' . $k . '</a>';
             } elseif (strpos($v, 'onclick') !== false) {
-                $result .= '&nbsp;&nbsp;<a href="javascript:;" class="btn btn-warning" ' . $v . '>' . $k . '</a>';
+                $result .= '&nbsp;&nbsp;<a href="javascript:;" class="btn btn-warning layui-btn layuiadmin-btn-list layui-btn-warm" ' . $v . '>' . $k . '</a>';
             } elseif (strpos($v, 'http://') !== false) {
                 //$result .= '&nbsp;&nbsp;<a href="javascript:;" class="btn btn-default" onclick="jump(\''.Dever::url($v).'\')">'.$k.'</a>';
-                $result .= '&nbsp;&nbsp;<a class="btn btn-default" href="' . Dever::url($v) . '">' . $k . '</a>';
+                $result .= '&nbsp;&nbsp;<a class="btn btn-default layui-btn layuiadmin-btn-list" href="' . Dever::url($v) . '">' . $k . '</a>';
             } else {
-                $result .= '&nbsp;&nbsp;<a href="javascript:;" class="btn btn-danger" onclick="load(\'' . Dever::url($v) . '\')">' . $k . '</a>';
+                $result .= '&nbsp;&nbsp;<a href="javascript:;" class="btn btn-danger layui-btn layuiadmin-btn-list layui-btn-danger" onclick="load(\'' . Dever::url($v) . '\')">' . $k . '</a>';
             }
         }
 
@@ -973,8 +973,8 @@ class Database
         if (isset($config['struct']) && isset($config['manage']['search'])) {
             $search = Dever::preInput('search_');
 
-            $node = Html::node(array('class="am-u-sm-12" style="margin-top:10px;"', 'class="am-form-group am-input-group-sm"'));
-            $btn = '<input type="hidden" value="2" name="excel" id="excel"><button class="btn btn-primary" onclick="$(\'#form1\').attr(\'action\', \'' . $this->url('search') . '\');list_search($(this))" type="button" style="height: 38px;margin-left:10px;">搜索</button>';
+            $node = Html::node(array(' style="margin-top:0px;"', ''));
+            $btn = '<div class="layui-inline"><input type="hidden" value="2" name="excel" id="excel"><button class="btn btn-primary layui-btn layuiadmin-btn-list" onclick="$(\'#form1\').attr(\'action\', \'' . $this->url('search') . '\');list_search($(this))" type="button" style="height: 38px;margin-left:0px;margin-top:-2px;">搜索</button></div>';
 
             //$result .= '<form id="f1" action="'.$this->url('list').'" method="post">';
 
@@ -1050,7 +1050,7 @@ class Database
                         $v['lang'] = $t[0];
                     }
                     $value['placeholder'] = $v['lang'];
-                    $result .= Html::text($value, false) . '&nbsp;';
+                    $result .= Html::text($value, false);
                 }
             }
 
@@ -1068,7 +1068,7 @@ class Database
                         $v = $t[0];
                     }
                     $value['placeholder'] = $v;
-                    $result .= Html::text($value, false) . '&nbsp;';
+                    $result .= Html::text($value, false);
                 }
             }
 
@@ -1086,7 +1086,7 @@ class Database
                         $v = $t[0];
                     }
                     $value['placeholder'] = $v;
-                    $result .= Html::text($value, false) . '&nbsp;';
+                    $result .= Html::text($value, false);
                 }
             }
 
@@ -1110,7 +1110,7 @@ class Database
                     $value['value'] = $search[$value['name']];
                 }
                 $value['placeholder'] = '填写值';
-                $result .= Html::text($value, false) . '&nbsp;';
+                $result .= Html::text($value, false);
             }
 
             # 列表页按钮
@@ -1180,7 +1180,11 @@ class Database
             $limit .= '<a href="'.$url.'" style="width:60px;font-weight:bold;" class="btn btn-'.$btn.'">'.$v.'</a> ';
         }
          
-        $num = '<div class="form-group "><div style="padding-top:20px;margin-bottom: -30px;"><label style="color:#bababa;margin-left:8px;margin-right:10px;font-size:14px;font-weight:bold;">每页显示条数:</label>'.$limit.'</div></div>';
+        $num = '<div class="form-group layui-inline"><div style="padding-top:20px;margin-bottom: -30px;"><label style="color:#bababa;margin-left:8px;margin-right:10px;font-size:14px;font-weight:bold;">每页显示条数:</label>'.$limit.'</div></div>';
+
+        if (layadmin()) {
+            $num = '';
+        }
 
         $result .= $num;
 
@@ -1933,14 +1937,19 @@ class Database
 
                 if ($oper == true) {
                     if (strpos($kj, 'edit') !== false) {
-                        $result .= '<a href="javascript:;" onclick="fastEdit($(this), \'' . $this->url($kj, $data['id']) . '\', \''.$vj[0].'\', \''.$vj[1].'\')"><button type="button" class="btn btn-info btn-rounded waves-effect waves-light m-b-5">' . $vj[0] . '</button></a>&nbsp;&nbsp;';
+                        $result .= '<a href="javascript:;" onclick="fastEdit($(this), \'' . $this->url($kj, $data['id']) . '\', \''.$vj[0].'\', \''.$vj[1].'\')"><button type="button" class="btn btn-info btn-rounded waves-effect waves-light m-b-5 layui-btn">' . $vj[0] . '</button></a>&nbsp;&nbsp;';
                     } elseif (strpos($kj, 'oper') !== false) {
-                        $result .= '<a href="javascript:;" onclick="load(\'' . Dever::url($pj) . '\')"><button type="button" class="btn btn-info btn-rounded waves-effect waves-light m-b-5">' . $vj[0] . '</button></a>&nbsp;&nbsp;';
+                        $result .= '<a href="javascript:;" onclick="load(\'' . Dever::url($pj) . '\')"><button type="button" class="btn btn-info btn-rounded waves-effect waves-light m-b-5 layui-btn">' . $vj[0] . '</button></a>&nbsp;&nbsp;';
                     } elseif (isset($vj[1]) && strpos($vj[1], 'modal|') !== false) {
                         $t = explode('|', $vj[1]);
-                        $result .= '<a href="#dever_modal" data-toggle="modal"  class="btn btn-info btn-rounded waves-effect waves-light m-b-5" onclick=' . $t[1] . ' msg-send="' . $this->value($t[2], $data) . '">' . $vj[0] . '</a>&nbsp;&nbsp;';
+                        $result .= '<a href="#dever_modal" data-toggle="modal"  class="btn btn-info btn-rounded waves-effect waves-light m-b-5 layui-btn" onclick=' . $t[1] . ' msg-send="' . $this->value($t[2], $data) . '">' . $vj[0] . '</a>&nbsp;&nbsp;';
                     } elseif (isset($vj[1])) {
-                        $result .= '<a href="' . $this->url($kj, $data['id'], $pj) . '" class="oper_' . $kj . '"><button type="button" class="btn btn-info btn-rounded waves-effect waves-light m-b-5">' . $h . $vjn . '</button></a>&nbsp;&nbsp;';
+                        if ($kj == 'delete') {
+                            $class = 'layui-btn layui-btn-danger';
+                        } else {
+                            $class = 'layui-btn';
+                        }
+                        $result .= '<a href="' . $this->url($kj, $data['id'], $pj) . '" class="oper_' . $kj . '"><button type="button" class="btn btn-info btn-rounded waves-effect waves-light m-b-5 '.$class.'">' . $h . $vjn . '</button></a>&nbsp;&nbsp;';
                     } else {
                         $result .= '<span style="margin-left:5px;margin-right:10px;">' . $vj[0] . '</span>';
                     }
@@ -2024,7 +2033,7 @@ class Database
             $mul = Dever::preInput('mul_');
 
             $node = Html::node(array('class="am-u-sm-12" style="margin-top:10px;"', 'class="am-form-group am-input-group-sm"'));
-            $btn = '<button class="btn btn-danger" onclick="$(\'#form1\').attr(\'action\', \'' . $this->url('list') . '\');list_mul($(this))" type="button" style="height: 38px;margin-left:10px;">更新</button>';
+            $btn = '<button class="btn btn-danger layui-btn layui-btn-danger" onclick="$(\'#form1\').attr(\'action\', \'' . $this->url('list') . '\');list_mul($(this))" type="button" style="height: 38px;margin-left:10px;">更新</button>';
 
             $prefix = 'mul_';
 
@@ -2152,6 +2161,10 @@ class Database
 
                 $result[$k] = '<div class="form-group ' . $class . '"><div class="margin-top">';
 
+                if (layadmin()) {
+                    $result[$k] = '<div class="layui-form-item ' . $class . '"><div class="layui-col-lg6">';
+                }
+
                 $result[$k] .= $this->create_update_html($k, $v, $data);
 
                 $result[$k] .= '</div></div>';
@@ -2159,6 +2172,10 @@ class Database
             } elseif (!$col && isset($v['class'])) {
                 # 分割线
                 $v['name'] = $this->value($v['name'], array('test' => 1));
+                if (isset($v['right'])) {
+                    $this->card_right = true;
+                }
+                $this->card = true;
                 $result[$k] = Html::hr($v);
             }
         }
@@ -2172,6 +2189,22 @@ class Database
         return $result;
     }
 
+    public function card()
+    {
+        if (isset($this->card_right)) {
+            return 'layui-col-md6';
+        }
+        return 'layui-col-md12';
+    }
+
+    public function layui_card()
+    {
+        if (isset($this->card)) {
+            return false;
+        }
+        return true;
+    }
+
     /**
      * update_class
      *
@@ -2325,7 +2358,7 @@ class Database
             $method = $param['update'];
 
             if (is_array($method)) {
-                $result .= '<ul class="nav nav-tabs">{tab}<li><a href="javascript:;" class="dever_form_add" toggle_key="' . $key . '">增加一条</a></li></ul>';
+                $result .= '<ul class="nav nav-tabs layui-tab-title">{tab}<li><a href="javascript:;" class="dever_form_add" toggle_key="' . $key . '">增加一条</a></li></ul>';
 
                 $tab = '';
 
@@ -2351,7 +2384,7 @@ class Database
 
                             $active = '';
                             if ($k == 0) {
-                                $active = 'active';
+                                $active = 'active layui-this';
                             }
                             $k = $k + 1;
                             $tab .= '<li class="' . $active . '"><a href="javascript:;" id="tab-' . $key . '-child-' . $k . '" toggle_key="' . $key . '" toggle_id="' . $k . '" toggle_child=".dever_' . $key . '_child" toggle="#' . $key . '-child-' . $k . '" onclick="showToggle($(this))">第' . $k . '条</a></li>';
@@ -2361,7 +2394,7 @@ class Database
                 } else {
                     $this->update_child(array(), $method, $key, $result, 0);
 
-                    $tab = '<li class="active"><a href="javascript:;" id="tab-' . $key . '-child-1" toggle_key="' . $key . '" toggle_id="1" toggle_child=".dever_' . $param['col'] . '_child" toggle="#' . $key . '-child-1" onclick="showToggle($(this))">第1条</a></li>';
+                    $tab = '<li class="active layui-this"><a href="javascript:;" id="tab-' . $key . '-child-1" toggle_key="' . $key . '" toggle_id="1" toggle_child=".dever_' . $param['col'] . '_child" toggle="#' . $key . '-child-1" onclick="showToggle($(this))">第1条</a></li>';
                 }
 
                 $result = str_replace('{tab}', $tab, $result);

+ 81 - 32
src/Lib/Input.php

@@ -5,12 +5,48 @@ use Dever;
 
 class Input
 {
+    public static function __callStatic($name, $param = array())
+    {
+        $method = '_' . $name;
+
+        $result = call_user_func_array(array(__CLASS__, $method), $param);
+        if ($result && is_string($result) && $name != 'pageLeft') {
+
+            if (layadmin()) {
+                if (strstr($result, '<select')) {
+                    $result = str_replace('form-control', 'form-control layui-input layui-select', $result);
+                    $result = str_replace('<select', '<select lay-ignore ', $result);
+                } elseif (strstr($result, 'radio')) {
+                    $result = str_replace('form-control', 'form-control layui-radio', $result);
+                } elseif (strstr($result, 'checkbox')) {
+                    $result = str_replace('form-control', 'form-control layui-checkbox', $result);
+                } else {
+                    $result = str_replace('form-control', 'form-control layui-input', $result);
+                }
+                
+                if (isset($param[1]) && !$param[1]) {
+                    $result = '<div class="layui-inline"><div class="layui-input-inline">'.$result.'</div></div>';
+                } else {
+                    $result = '<div>'.$result.'</div>';
+                }
+            } else {
+                if (isset($param[1])) {
+                    $result = '<div style="display:inline;margin-right: 10px;">'.$result.'</div>';
+                } else {
+                    $result = '<div>'.$result.'</div>';
+                }
+            }
+            
+        }
+        return $result;
+    }
+
     /**
      * 地图
      *
      * @return string
      */
-    public static function map($param)
+    public static function _map($param)
     {
         $url = Dever::url('map', 'manage');
 
@@ -29,15 +65,15 @@ class Input
                 $("#'.$iframe_id.'")[0].contentWindow.search($(this).val());
             });
         });
-        function mapLoad(){
+        function _mapLoad(){
             if ($("#'.$id.'").val()) {
                 $("#'.$iframe_id.'")[0].contentWindow.showMaker($("#'.$id.'").val());
             }
         }
-        function closeMsg() {
+        function _closeMsg() {
             layui.layer.closeAll();
         }
-        function setMap(x, y, z) {
+        function _setMap(x, y, z) {
                 var val = $("#'.$id.'").val();
                 if (val) {
                     var temp = val.split(",");
@@ -55,9 +91,9 @@ class Input
      *
      * @return string
      */
-    public static function modal($modal, $desc)
+    public static function _modal($modal, $desc)
     {
-        return '<a href="#dever_modal" data-toggle="modal" onclick="$(\'#dever_modal_body\').html($(this).next().html());initLayui();">' . $modal . '</a><div style="display:none;">' . $desc . '</div>';
+        return '<a href="javascript:;" onclick="showAlert($(this).next().html());initLayui();">' . $modal . '</a><div style="display:none;">' . $desc . '</div>';
     }
 
     /**
@@ -65,7 +101,7 @@ class Input
      *
      * @return string
      */
-    public static function desc($desc)
+    public static function _desc($desc)
     {
         return '';
         return $desc;
@@ -76,8 +112,17 @@ class Input
      *
      * @return string
      */
-    public static function hr($param)
+    public static function _hr($param)
     {
+        if (layadmin()) {
+            
+            $col = '';
+            if (isset($param['right'])) {
+                $col = '</div><div class="layui-col-md6">';
+            }
+            $html = '</div></div></div>'.$col.'<div class="layui-card"><div class="layui-card-header">[' . $param['name'] . ']</div><div class="layui-card-body"><div>';
+            return $html;
+        }
         return '<div class="dever_form_hr ' . (isset($param['class']) ? $param['class'] : '') . '" ' . (isset($param['attr']) ? $param['attr'] : '') . '>' . $param['name'] . '</div>';
     }
 
@@ -86,7 +131,7 @@ class Input
      *
      * @return string
      */
-    public static function cue($param)
+    public static function _cue($param)
     {
         $param['cue'] = isset($param['cue']) ? $param['cue'] : '';
         if (strpos($param['name'], '-') !== false) {
@@ -111,7 +156,7 @@ class Input
      *
      * @return string
      */
-    public static function pageLeft($param)
+    public static function _pageLeft($param)
     {
         $param = self::cue($param);
 
@@ -119,7 +164,11 @@ class Input
             $param['cue'] = '<span style="font-size:12px;font-weight:normal;font-color:#bababa;margin-left:5px;">[' . $param['cue'] . ']</span>';
         }
 
-        $html = '<label style="font-size:14px;font-weight:bold;">' . $param['name'] . $param['cue'] . '</label>';
+        $class = '';
+        if (layadmin()) {
+            //$class = 'layui-form-label';
+        }
+        $html = '<div><label style="font-size:14px;font-weight:bold;" class="'.$class.'">' . $param['name'] . $param['cue'] . '</label></div>';
 
         return $html;
     }
@@ -129,7 +178,7 @@ class Input
      *
      * @return string
      */
-    public static function textarea($param)
+    public static function _textarea($param)
     {
         return '<textarea style="height:100px;" update_type="value" class="update_value form-control ' . (isset($param['valid']) ? $param['valid'] : '') . '" name="' . $param['name'] . '" >' . (isset($param['value']) ? $param['value'] : (isset($param['default']) ? $param['default'] : '')) . '</textarea>';
 
@@ -141,7 +190,7 @@ class Input
      *
      * @return string
      */
-    public static function image($param)
+    public static function _image($param)
     {
         if (isset($param['value']) && $param['value']) {
             $pic = 'src="' . $param['value'] . '"';
@@ -161,7 +210,7 @@ class Input
      *
      * @return string
      */
-    public static function images($param)
+    public static function _images($param)
     {
         $pic = '';
         if (isset($param['value'])) {
@@ -181,7 +230,7 @@ class Input
      *
      * @return string
      */
-    public static function upload($param)
+    public static function _upload($param)
     {
         return '<input type="button" style="width:10%;" class="form-control image_upload" t="file" v="' . $param['name'] . '_' . $param['index'] . '" id="file_' . $param['name'] . '_' . $param['index'] . '" key="' . $param['key'] . '" value="选择文件"/>
         <div style="margin-top:10px;"><input type="text" class="update_value form-control ' . (isset($param['valid']) ? $param['valid'] : '') . '" name="' . $param['name'] . '" id="' . $param['name'] . '_' . $param['index'] . '" value="' . (isset($param['value']) ? $param['value'] : (isset($param['default']) ? $param['default'] : '')) . '">
@@ -194,7 +243,7 @@ class Input
      *
      * @return string
      */
-    public static function uploads($param)
+    public static function _uploads($param)
     {
         $file = '';
         if (isset($param['value']) && $param['value']) {
@@ -218,7 +267,7 @@ class Input
      *
      * @return string
      */
-    public static function editor($param)
+    public static function _editor($param)
     {
         return '<textarea style="width:100%;display: inline"  update_type="value" class=" update_value editor" id="' . $param['name'] . '_editor" key="' . (isset($param['key']) ? $param['key'] : 1) . '" name="' . $param['name'] . '" rows="18" cols="100" >' . (isset($param['value']) ? $param['value'] : (isset($param['default']) ? $param['default'] : '')) . '</textarea>';
     }
@@ -228,7 +277,7 @@ class Input
      *
      * @return string
      */
-    public static function markdown($param)
+    public static function _markdown($param)
     {
         return '<textarea style="height:300px;" update_type="value" key="' . (isset($param['key']) ? $param['key'] : 1) . '" class="maze-note update_value form-control ' . (isset($param['valid']) ? $param['valid'] : '') . '" name="' . $param['name'] . '" >' . (isset($param['value']) ? $param['value'] : (isset($param['default']) ? $param['default'] : '')) . '</textarea>';
     }
@@ -238,7 +287,7 @@ class Input
      *
      * @return string
      */
-    public static function selector($param, $type = '')
+    public static function _selector($param, $type = '')
     {
         $html = '';
 
@@ -273,7 +322,7 @@ class Input
      *
      * @return string
      */
-    public static function radio($param, $type = '')
+    public static function _radio($param, $type = '')
     {
         $html = '';
 
@@ -420,7 +469,7 @@ class Input
      *
      * @return string
      */
-    public static function group($param, $class = '', $hidden = '', $change = '')
+    public static function _group($param, $class = '', $hidden = '', $change = '')
     {
         $html = $class ? '<div class="' . $class . '">' : '';
 
@@ -461,7 +510,7 @@ class Input
      *
      * @return string
      */
-    public static function linkage($param, $class = '', $hidden = '', $change = '')
+    public static function _linkage($param, $class = '', $hidden = '', $change = '')
     {
         $div = 'div';
         $w = 'width:20%;';
@@ -491,7 +540,7 @@ class Input
             $param['value'] = implode(',', $param['value']);
         }
 
-        $html .= '<script>function linkage_' . $param['name'] . '(level){select_linkage(level, "' . $id . '","' . $param['option'] . '", "' . $param['name'] . '", "' . (isset($param['value']) ? $param['value'] : (isset($param['default']) ? $param['default'] : '')) . '", "' . (isset($param['valid']) ? $param['valid'] : '') . '", "' . $w . '", false, "'.$param['search_state'].'", "'.$level_param.'")};';
+        $html .= '<script>function _linkage_' . $param['name'] . '(level){select_linkage(level, "' . $id . '","' . $param['option'] . '", "' . $param['name'] . '", "' . (isset($param['value']) ? $param['value'] : (isset($param['default']) ? $param['default'] : '')) . '", "' . (isset($param['valid']) ? $param['valid'] : '') . '", "' . $w . '", false, "'.$param['search_state'].'", "'.$level_param.'")};';
 
         $html .= '$(document).ready(function(){linkage_' . $param['name'] . '(' . $level . ')});</script>';
 
@@ -505,7 +554,7 @@ class Input
      *
      * @return string
      */
-    public static function select($param, $class = '', $hidden = '', $change = '')
+    public static function _select($param, $class = '', $hidden = '', $change = '')
     {
         $html = $class ? '<div class="' . $class . '">' : '';
 
@@ -585,7 +634,7 @@ class Input
      *
      * @return string
      */
-    public static function checkbox($param)
+    public static function _checkbox($param)
     {
         return self::radio($param);
     }
@@ -595,7 +644,7 @@ class Input
      *
      * @return string
      */
-    public static function text($param, $class = '')
+    public static function _text($param, $class = '')
     {
         if ($class) {
             return '<div class="">' . self::text($param, false) . '</div>';
@@ -662,7 +711,7 @@ class Input
      *
      * @return string
      */
-    public static function color($param)
+    public static function _color($param)
     {
         $param['class'] = 'dever-color form-control';
         $param['update'] = 'text';
@@ -675,7 +724,7 @@ class Input
      *
      * @return string
      */
-    public static function password($param)
+    public static function _password($param)
     {
         $param['value'] = '';
         return self::text($param);
@@ -686,7 +735,7 @@ class Input
      *
      * @return string
      */
-    public static function hidden($param)
+    public static function _hidden($param)
     {
         $param['update'] = 'hidden';
         return self::text($param, '');
@@ -697,7 +746,7 @@ class Input
      *
      * @return string
      */
-    public static function time($param)
+    public static function _time($param)
     {
         return '<input type="text" value="' . ((isset($param['value']) && $param['value'] > 0) ? date('Y-m-d', $param['value']) : ((isset($param['default']) && $param['default'] > 0) ? date('Y-m-d', $param['default']) : '')) . '" placeholder="' . (isset($param['lang']) ? $param['lang'] : '') . '" name="' . $param['name'] . '" class="manage_time update_value form-control ' . (isset($param['valid']) ? $param['valid'] : '') . '" autocomplete="off"/>';
     }
@@ -707,7 +756,7 @@ class Input
      *
      * @return string
      */
-    public static function date($param)
+    public static function _date($param)
     {
         return '<input type="text" value="' . ((isset($param['value']) && $param['value'] > 0) ? date('Y-m-d H:i:s', $param['value']) : ((isset($param['default']) && $param['default'] > 0) ? date('Y-m-d H:i:s', $param['default']) : '')) . '" placeholder="' . (isset($param['lang']) ? $param['lang'] : '') . '" name="' . $param['name'] . '" class="manage_date update_value form-control ' . (isset($param['valid']) ? $param['valid'] : '') . '" autocomplete="off"/>';
     }
@@ -717,7 +766,7 @@ class Input
      *
      * @return string
      */
-    public static function node($param, $type = 'div')
+    public static function _node($param, $type = 'div')
     {
         $result = array('', '');
         foreach ($param as $k => $v) {

+ 51 - 5
src/Menu.php

@@ -77,7 +77,17 @@ class Menu
                 $auth = implode(',', $auth);
             }
             
+            $console = false;
+            if (layadmin()) {
+                $console = true;
+            }
+            
             foreach ($menu as $k => $v) {
+
+                if (!$console && $k == 'console') {
+                    unset($menu[$k]);
+                    continue;
+                }
                 if ($auth && strpos($auth, $k . '.') === false) {
                     unset($menu[$k]);
                     continue;
@@ -95,7 +105,7 @@ class Menu
                             //unset($child[$parent][$i]);
                             //continue;
                         } else {
-                            if ($j['link']) {
+                            if ($j['link'] && $i != 'console.index') {
                                 $j['link'] = Dever::url($j['link'] . '&menu_id=' . $j['id']);
                             }
                             $menu[$k]['child'][$i] = $j;
@@ -154,16 +164,39 @@ class Menu
      */
     public function load()
     {
-        $project = Dever::load('manage/project.get');
+        $project = array();
+        $project['console'] = array
+        (
+            'name' => '主页',
+            'lang' => '主页',
+            'path' => 'console',
+            'icon' => 'layui-icon-home',
+            'order' => 10000,
+            'child' => array
+            (
+                'index' => Array
+                (
+                    'key' => 'console.index',
+                    'name' => '控制台',
+                    'link' => Dever::url('console'),
+                    'order' => 10,
+                    'fast' => 2,
+                )
+            )
+        );
+        $project += Dever::load('manage/project.get');
         $database = Dever::load('manage/database');
         $top = Dever::load('manage/top');
         $auth = Dever::load('manage/auth');
 
         foreach ($project as $k => $v) {
+
+            if (!isset($v['url'])) {
+                continue;
+            }
             if (isset($v['base']) && isset($v['rel'])) {
                 $v['path'] = DEVER_INCLUDE_PATH . $v['rel'];
             }
-
             $project[$k]['name'] = $v['lang'];
             $config = $database->config($k, $v['path']);
 
@@ -342,6 +375,18 @@ class Menu
         return $info['id'];
     }
 
+    /**
+     * menu 生成左侧的菜单 此处应加上权限来显示是否管理员有该菜单的权限
+     *
+     * @return array
+     */
+    public function all($state = false)
+    {
+        $data = $this->left($state);
+
+        return $data;
+    }
+
     /**
      * menu 生成左侧的菜单 此处应加上权限来显示是否管理员有该菜单的权限
      *
@@ -442,8 +487,9 @@ class Menu
             (
             'project' => Dever::url('project/list?menu=manage&table=manage_project'),
             'log' => Dever::url('log/list?menu=manage&table=manage_log'),
-            'logout' => Dever::url('auth.quit?t=1'),
-            'index' => Dever::url('home?t=1'),
+            'logout' => Dever::url('auth.quit'),
+            'index' => Dever::url('home'),
+            'console' => Dever::url('console'),
         );
     }
 

+ 27 - 0
template/layadmin/console.php

@@ -0,0 +1,27 @@
+<?php
+
+# 后续添加:自定义的待办、快捷方式、数据概览、推荐列表等
+
+$view
+
+
+->fetch('.dever-notice@style', 'manage/auth.notice', 'none')
+->loop
+(
+    '#dever-notice div',
+    'manage/auth.notice',
+    array
+    (
+        'a' => array
+        (
+            'href' => '<{Dever::url("notice?where_id=".$v.id."&where_config=".$v.config)}>',
+            'title' => '<{$v.name}>',
+            'html' => '<{$v.name}>',
+            'class' => 'layui-bg-red',
+            'style' => 'background-color: #FF5722!important;',
+        ),
+    )
+)
+
+# display
+->display();

+ 81 - 0
template/layadmin/doc/view.php

@@ -0,0 +1,81 @@
+<?php
+/*
+|--------------------------------------------------------------------------
+| home
+|--------------------------------------------------------------------------
+*/
+
+
+$view
+
+->set('info', 'manage/doc.info')
+->set('doc', 'manage/doc.doc')
+->set('nav', 'manage/doc.nav')
+->set('menu', 'manage/doc.menu')
+
+->fetch('#top h1', 'info#name')
+
+->fetch('#top p', 'doc')
+
+->loop
+( 
+    '#dever_navbar li', 
+    'nav',
+    array  
+    (
+        'self' => array
+        (
+            'class' => '<{$v.class}>',
+        ),
+
+        'a' => array
+		(
+			'href' => '<{$v.link}>',
+			'html' => '<{$v.name}>',
+		),
+    )
+)
+
+->loop
+( 
+    '.bs-docs-sidenav li', 
+    'menu',
+    array  
+    (
+        'a' => array
+        (
+            'href' => '#show-<{$k}>',
+            'html' => '<{$v.name}>',
+        ),
+    )
+)
+
+->loop
+( 
+    '.bs-docs-section', 
+    'menu',
+    array  
+    (
+        'h1' => array
+        (
+            'id' => 'show-<{$k}>',
+            'span' => array
+            (
+                'html' => '<{$v.name}>',
+            )
+        ),
+
+        '.anchorjs-link|0' => array
+        (
+            'href' => '#show-<{$k}>',
+        ),
+
+        'div|0' => array
+        (
+            'html' => '<{$v.content}>',
+        ),
+    )
+)
+
+# display
+->display();

+ 36 - 0
template/layadmin/example/foreach.php

@@ -0,0 +1,36 @@
+<?php
+/*
+|--------------------------------------------------------------------------
+| home
+|--------------------------------------------------------------------------
+*/
+ 
+     
+$view
+
+->fetch
+( 
+    '#foreach .test',
+    'manage/api.test_foreach',
+    array  
+    ( 
+        'span|0' => array
+        (
+            'html' => '<{$v.name}>',
+        ),
+        'li|$v.child' => array
+        (
+            'span' => array
+            (
+                'html' => '<{$v1.name}>', 
+            ),
+            'a|$v1.child' => array
+            (
+                'html' => '<{$v2.name}>', 
+            )
+        ), 
+    )
+)
+
+# display
+->display();

+ 47 - 0
template/layadmin/home.php

@@ -0,0 +1,47 @@
+<?php
+
+/*
+|--------------------------------------------------------------------------
+| home
+|--------------------------------------------------------------------------
+ */
+$view
+
+//->jq('.fixed-left')->attr('d', '公告') 后续支持
+
+->fetch('.fixed-left@test', '公告')
+
+->fetch('body@class', 'theme-<{Dever::load("manage/auth.config#template")}>')
+->fetch('#wrapper@class', 'manage/database.cookie#wrapper')
+->fetch('.layadmin-iframe@src', 'manage/menu.link#console')
+
+->fetch('#LAY_app_tabsheader li@lay-id', 'manage/menu.link#console')
+->fetch('#LAY_app_tabsheader li@lay-attr', 'manage/menu.link#console')
+
+/*
+
+
+->loop
+(
+    '#panel-project a',
+    'manage/menu.fast',
+    array
+    (
+        'self' => array
+        (
+            'href' => '<{$v.link}>',
+            'title' => '<{$v.name}>',
+            'html' => '<{$v.name}>',
+            'style' => 'margin-left:10px;',
+        ),
+    )
+)
+
+//->fetch('#panel-info .panel-heading', '重要信息')
+
+->fetch('#panel-contact h3', 'manage/auth.config#info')
+
+->fetch('#panel-contact address', 'manage/auth.config#content')
+*/
+# display
+->display();

+ 19 - 0
template/layadmin/inc/foot.php

@@ -0,0 +1,19 @@
+<?php
+/*
+|--------------------------------------------------------------------------
+| 头部
+|--------------------------------------------------------------------------
+*/
+
+$view
+
+->fetch('footer@style', '<{Dever::load("manage/auth.loading") ? "display:none;" : ""}>')
+
+# 定义尾部
+->fetch('footer', '<{Dever::config("base")->copyright}>')
+
+
+->fetch('#load_script', 'manage/database.res#js')
+
+# display
+->display();

+ 24 - 0
template/layadmin/inc/head.php

@@ -0,0 +1,24 @@
+<?php
+/*
+|--------------------------------------------------------------------------
+| home
+|--------------------------------------------------------------------------
+*/
+
+$name = '后台管理';
+
+$view
+
+# 定义名称
+->fetch('title', 					'manage/auth.config#title')
+->fetch(array('meta@content', 1), 	'manage/auth.config#title')
+->fetch(array('meta@content', 2), 	'manage/auth.config#title')
+->fetch(array('meta@content', 3), 	'manage/auth.config#title')
+ 
+# 初始化几个js变量
+->fetch('#script',	'<{Dever::script()}>config.template="<{$data["manage/auth.config"]["template"]}>";config.lib="<{Dever::config("host")->public}>"')
+
+->fetch('#style', '<{Dever::load("manage/auth.loading") ? ".content,.content-page{margin-left: 0px;min-height:auto}" : ""}>')
+
+# display
+->display();

+ 60 - 0
template/layadmin/inc/menu.php

@@ -0,0 +1,60 @@
+<?php
+
+# 项目列表中的管理选项:
+# 数据库基本配置与数据管理、模板列表与生成、项目基本配置与管理等
+# 这里面很多都是demo
+$view
+
+->fetch('#dever-name', 'manage/auth.config#title')
+
+# 首页的链接
+->fetch('#console-url@lay-href', 'manage/menu.link#console')   
+
+# 项目列表
+->loop
+(
+    '#LAY-system-side-menu li',
+    'manage/menu.all',  
+    array
+    (
+        'a' => array    
+		(
+            'data-target' => '.<{$v.key}>-menu',
+            'class++' => '<{if(Dever::input("menu") == $v.key || !Dever::input("menu")):?>layui-nav-itemed<{endif;}>',
+            'lay-tips' => '<{$v.name}>',
+		),
+
+        'self' => array    
+        (
+            'class++' => '<{if(Dever::input("menu") == $v.key || (!Dever::input("menu_id") && $k == "console")):?> layui-nav-itemed<{endif;}>',
+        ),
+        
+        'cite' => array
+        (
+            'html' => '<{$v.name}>',
+        ),
+        
+        'i' => array
+        (
+            'class' => '<{$v.icon ? "layui-icon " . $v.icon : "layui-icon layui-icon-home"}>',
+        ),
+
+        'dl' => array
+        (
+            'id' => '<{$v.key}>-menu',
+            'dd|$v.child' => array
+            (   
+                'class--' => 'layui-this', //菜单关闭状态
+                'class++' => '<{if(Dever::input("menu_id") == $v1.id):?>layui-this<{elseif(!Dever::input("menu_id") && $k1 == "console.index"):}>layui-this<{endif;}>', 
+                'a' => array
+                (
+                    'lay-href' => '<{$v1.link}>', 
+                    'html' => '<{$v1.name}>',
+                )
+            ),
+        ),
+    )
+)
+
+# display
+->display();

+ 51 - 0
template/layadmin/inc/nav.php

@@ -0,0 +1,51 @@
+<?php
+/*
+|--------------------------------------------------------------------------
+| 头部
+|--------------------------------------------------------------------------
+*/
+
+$view
+
+->fetch('#load_style', 'manage/database.res#css')
+
+->fetch('#nav@style', '<{Dever::load("manage/auth.loading") ? "display:none;" : ""}>')
+
+# 定义名称
+->fetch('#dever-name', 'manage/auth.config#title')
+
+
+->fetch('#manage-name', 'manage/auth.info#username')
+
+->fetch('#logout-url@href', 'manage/menu.link#logout')
+ 
+//->fetch('#edit@href', 'edit')
+
+->fetch('.auth-top@style', 'display:none')
+# 项目列表
+->loop
+(
+    '.auth-top',
+    'manage/top.get',  
+    array
+    ( 
+        
+        'span|0' => '<{$v.name}>', 
+
+        'ul' => array 
+        (
+            'li|$v.child' => array
+            (   
+                'a' => array 
+                (
+                    'html' => '$v1.name',
+                    'data-id' => '$v1.id',
+                    'onclick' => 'topMenu($(this))',
+                )
+            ),
+        ),
+	)
+)
+
+# display
+->display();

+ 14 - 0
template/layadmin/inc/script.php

@@ -0,0 +1,14 @@
+<?php
+/*
+|--------------------------------------------------------------------------
+| home
+|--------------------------------------------------------------------------
+*/
+
+$view
+
+# 定义名称
+->fetch('#myModalLabel@load', 					'init')
+
+# display
+->display();

+ 18 - 0
template/layadmin/list.php

@@ -0,0 +1,18 @@
+<?php
+/*
+|--------------------------------------------------------------------------
+| home
+|--------------------------------------------------------------------------
+*/
+
+$view
+
+->fetch('body@class', 'theme-<{Dever::load("/auth.config#template")}>')
+
+# 对以下的所有数据和展示进行接管
+->fetch('#content_1@style', 'manage/database.page#s1')
+->fetch('#content_1', 'manage/database.page#content')
+->fetch('#content_2@style', 'manage/database.page#s2')    
+
+# 将上边fetch的都显示出来
+->display();

+ 34 - 0
template/layadmin/list/photo.php

@@ -0,0 +1,34 @@
+<?php
+/*
+|--------------------------------------------------------------------------
+| home
+|--------------------------------------------------------------------------
+*/
+
+$view
+
+->loop('#photo_list .photo_list', 'manage/database.list_photo', array
+(
+	'.dever-img' => array
+	(
+		'id' => 'dever-img-<{$v.id}>',
+
+		'img|$v.pic' => array
+		(
+			'layer-src' => '$v1.src',
+			'alt' => '$v1.name',
+			'src' => '$v1.show',
+			'style' => '<{if($v1.index == 0):}>display:block<{else:}>display:none<{endif;}>',
+		),
+	),
+
+	'.dever-desc' => '$v.desc',
+
+	'.dever-button' => '$v.button',
+))
+
+# 分页
+->fetch('#page','<{Dever::page("current")}>') 
+
+# 将上边fetch的都显示出来
+->display();

+ 60 - 0
template/layadmin/log/list.php

@@ -0,0 +1,60 @@
+<?php
+/*
+|--------------------------------------------------------------------------
+| home
+|--------------------------------------------------------------------------
+*/
+
+$view
+
+->fetch('body@class', 'theme-<{Dever::load("/auth.config#template")}>')
+->fetch('#wrapper@class', 'manage/database.cookie#wrapper')
+# 小标题
+->fetch('#list-name', '日志管理')
+->fetch('#list-project', '快捷管理')
+->fetch('#list-desc', '查看后台操作日志')  
+
+# 新增的链接 @代表属性
+->fetch('#list-add@style', 'display:none')
+
+# 隐藏搜索
+->fetch('#search@style', 'display:none')
+
+
+# config
+->fetch(array('#list-thead th', 0), '项目')   
+->fetch(array('#list-thead th', 1), '功能')
+->fetch(array('#list-thead th', 2), '管理员')
+->fetch(array('#list-thead th', 3), '日志记录')     
+
+->fetch
+( 
+    '#list-tbody tr',
+    'manage/log-list', 
+    array  
+    (
+        'td|0' => '<{Dever::load("manage/project.name", $v.project)}>',
+
+        'td|1' => '<{Dever::load("manage/database.getTableName", array($v.project, $v.table))}>',
+
+        'td|2' => '<{Dever::load("manage/admin-one#username", $v.admin)}>',
+
+        'td|3' => array
+        (
+			'a' => array
+			(
+				'modal' => '<{$v.info}>',
+				'html' => '查看详情', 
+			),
+		)
+    )
+)
+
+# 分页
+->fetch('#page','<{Dever::page("current")}>')
+ 
+# 总数据
+//->fetch('#total','<{Dever::total("current")}>')
+
+# display
+->display();

+ 22 - 0
template/layadmin/login.php

@@ -0,0 +1,22 @@
+<?php
+/*
+|--------------------------------------------------------------------------
+| home
+|--------------------------------------------------------------------------
+*/
+$view
+
+# 定义名称
+->fetch('#name', '<{Dever::load("manage/auth.config#title")}>')  
+
+# 定义尾部
+->fetch('#footer', '<{Dever::config("base")->copyright}>', 'none')
+
+# 定义refer
+->fetch('#refer@value', 'manage/auth.set#refer')
+
+# 定义form action
+->fetch('#login@action', '<{Dever::url("auth.login")}>')
+
+# display
+->display();

+ 12 - 0
template/layadmin/map.php

@@ -0,0 +1,12 @@
+<?php
+/*
+|--------------------------------------------------------------------------
+| home
+|--------------------------------------------------------------------------
+*/
+$view
+
+# 新增parse功能,能够将#map@src里的内容的{key}替换为这个值
+->fetch('#map@src', '<{Dever::config("base")->map["url"]}>')
+# display
+->display();

+ 18 - 0
template/layadmin/notice.php

@@ -0,0 +1,18 @@
+<?php
+/*
+|--------------------------------------------------------------------------
+| home
+|--------------------------------------------------------------------------
+*/
+
+
+$view
+->fetch('#wrapper@class', 'manage/database.cookie#wrapper')
+->fetch('body@class', 'theme-<{Dever::load("manage/auth.config#template")}>')
+
+->fetch('.page-title', 'manage/notice-getOne#name')         
+
+->fetch('.main-content', 'manage/notice-getOne#content') 
+
+# display
+->display();

+ 64 - 0
template/layadmin/project/config.php

@@ -0,0 +1,64 @@
+<?php
+/*
+|--------------------------------------------------------------------------
+| home
+|--------------------------------------------------------------------------
+*/
+
+
+$view
+
+->fetch('body@class', 'theme-<{Dever::load("/auth.config#template")}>')
+
+# 小标题
+->fetch('#list-name', '项目管理')
+->fetch('#list-desc', '对项目进行线上管理')  
+
+# 新增的链接 @代表属性
+->fetch('#list-add@onclick', 'none')
+
+
+# 设置按钮状态
+->fetch(array('.am-btn-default@style', 0), 'display:none')
+->fetch(array('.am-btn-default@style', 1), 'display:none')
+->fetch(array('.am-btn-default@style', 2), 'display:none') 
+->fetch(array('.am-btn-default@style', 3), 'display:none')
+
+# 隐藏搜索
+->fetch('#search@style', 'display:none')
+
+# 隐藏分页
+->fetch('#page-list@style', 'display:none')
+
+
+# config
+->fetch(array('#list-thead th', 0), '类型')
+->fetch(array('#list-thead th', 1), '名称')   
+->fetch(array('#list-thead th@style', 2), 'display:none')
+->fetch(array('#list-thead th@style', 3), 'display:none')     
+
+->fetch
+( 
+    '#list-tbody tr',
+    'manage/config.get',
+    array  
+    (
+		'td|0' => '<{if(strstr($v,\'.\')){$config = "file";echo "文件";}else{$config = "config";echo "目录";}}>', 
+    
+		'td|1' => '<a href="<{Dever::url("project/".$config."?key=".Dever::input(\'key\')."&dir=".Dever::input(\'dir\')."&name=$v")}>"><{$v}></a>',
+
+        'td|2' => array
+        (
+            'style' => 'display:none;', 
+        ),
+        
+        'td|3' => array
+        (
+            'style' => 'display:none;', 
+        ),
+     
+    )
+)
+
+# display
+->display();

+ 67 - 0
template/layadmin/project/database.php

@@ -0,0 +1,67 @@
+<?php
+/*
+|--------------------------------------------------------------------------
+| home
+|--------------------------------------------------------------------------
+*/
+
+
+$view
+->fetch('body@class', 'theme-<{Dever::load("/auth.config#template")}>')
+# config
+->fetch('.page-header',  'manage/database.info#main')
+->fetch(array('.item th', 0), '功能')
+->fetch(array('.item th', 1), '结构')
+->fetch(array('.item th', 2), '索引')
+->fetch(array('.item th', 3), '操作')
+
+# data
+->fetch
+(
+    '.content tr',
+    'manage/database.config',
+    array
+    (
+        'td|0' => '<{isset($v["lang"]) ? $v["lang"] : $k}>',
+
+        'td|1' => array 
+        (
+            'html' => '<a href="#">点此查看</a>', 
+            'modal' => 'create struct|<{Helper::table(array("[col]","[info]",""), $v["struct"])}>', 
+        ),
+
+        'td|2' => array 
+        (
+            'html' => '<a href="#">点此查看</a>', 
+            'modal' => 'create struct|<{Helper::table(array("[name]","[value]",""), $v["index"])}>', 
+        ),
+        
+        'td|3' => array
+        (
+            'a|0' => array
+            (
+                'html' => '数据列表',
+                'href' => '<{Dever::url("project/database/list?key=".Input::get(\'key\')."&table=$k")}>', 
+                'title' => 'data-list',
+            ),
+            'a|1' => array
+            (
+                'html' => '新增数据',
+                'href' => '<{Dever::url("project/database/update?key=".Input::get(\'key\')."&table=$k")}>', 
+                'title' => 'data-update',
+            ),
+            'a|2' => array
+            (
+                'style' => 'display:none;',
+            ),
+            'a|3' => array
+            (
+                'style' => 'display:none;',
+            ),
+        ),
+    )
+)
+
+
+# display
+->display();

+ 41 - 0
template/layadmin/project/database/common.php

@@ -0,0 +1,41 @@
+<?php
+ 
+$view 
+->fetch('body@class', 'theme-<{Dever::load("/auth.config#template")}>')
+
+# 对以下的所有数据和展示进行接管
+->fetch('#content_1@style', 'manage/database.page_'.$method.'#s1')
+->fetch('#content_1', 'manage/database.page_'.$method.'#content')  
+->fetch('#content_2@style', 'manage/database.page_'.$method.'#s2')    
+
+//->fetch('#wrapper@class', 'manage/database.cookie#wrapper')
+# top菜单
+/*
+->loop
+(
+    '.data-auth-top',
+    'manage/top.get',  
+    array
+    ( 
+        
+        'span|0' => '<{$v.name}>', 
+
+        'ul' => array 
+        (
+            'li|$v.child' => array
+            (   
+                'a' => array 
+                (
+                    'html' => '$v1.name',
+                    'data-id' => '$v1.id',
+                    'onclick' => 'topMenu($(this))',
+                )
+            ),
+        ),
+	)
+)
+*/
+
+# 小标题
+->fetch('#list-name', 'manage/database.info#'.$method.'_header')
+->fetch('#list-project', 'manage/database.info#project_name');

+ 67 - 0
template/layadmin/project/database/list.php

@@ -0,0 +1,67 @@
+<?php
+/*
+|--------------------------------------------------------------------------
+| 列表页
+|--------------------------------------------------------------------------
+*/
+$method = 'list'; 
+include(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'common.php');
+ 
+$view  
+->fetch('#addstyle', 'manage/database.listStyle')    
+#->fetch('#list-desc', 'manage/database.info#list_desc')
+# 新增的链接 @代表属性
+->fetch('#list-add@href', 'manage/database.info#add')
+->fetch('#list-add@style', 'manage/database.info#add_state')
+
+->fetch('#list-parent@href', 'manage/database.info#parent')
+->fetch('#list-parent@style', 'manage/database.info#parent_state')    
+
+# 数据列表的搜索
+->fetch('#search', 'manage/database.list_search')   
+ 
+->fetch('#desc',	'manage/database.info#listDesc', 'none')
+ 
+# 数据列表的标题 
+->loop('#list-thead tr', 'manage/database.list_thead')      
+
+# 数据列表 
+->loop('#list-tbody','manage/database.list_tbody')  
+ 
+# 只对一部分数据进行接管,只接管table   
+->fetch('#table_1@style', 'manage/database.page_list_table#s1')
+->fetch('#table_1', 'manage/database.page_list_table#content')  
+->fetch('#table_2@style', 'manage/database.page_list_table#s2') 
+
+# 数据列表
+->fetch('#list-button','manage/database.list_button')    
+
+# 批量管理的表单
+->fetch('#mul','manage/database.list_mul')
+
+# 表单的action
+->fetch('#form1@action', 'manage/database.info#list')
+
+# url的值
+->fetch('#url@value', 'manage/database.info#mul')
+
+# 分页
+->fetch('#page','<{Dever::page("current")}>') 
+
+# 总数据 加在头部里吧
+//->fetch('#list-desc', '<{Dever::load("manage/database.info#list_desc")}>(共<{Dever::total("current")}>条)')
+
+# 数据结构
+//->fetch('#struct', 'manage/database.info#struct')
+   
+#banner
+/*
+->render('banner:manage/database.banner:banner设定', array  
+(
+    '.topbar@style' => array('', 'none'),
+    '.banner' => 'none',
+))
+*/
+
+# 将上边fetch的都显示出来
+->display();

+ 76 - 0
template/layadmin/project/database/manage.php

@@ -0,0 +1,76 @@
+<?php
+/*
+|--------------------------------------------------------------------------
+| manage 废弃
+|--------------------------------------------------------------------------
+*/
+
+$view
+
+# 小标题
+->fetch('#list-name', '数据库管理')
+->fetch('#list-desc', '查看后台操作日志')  
+
+# 设置按钮状态
+->fetch(array('.am-btn-default@style', 0), 'display:none')
+->fetch(array('.am-btn-default@style', 1), 'display:none')
+->fetch(array('.am-btn-default@style', 2), 'display:none') 
+->fetch(array('.am-btn-default@style', 3), 'display:none')
+
+# 隐藏搜索
+->fetch('#search@style', 'display:none')
+
+# 隐藏分页
+->fetch('#page-list@style', 'display:none')
+
+
+# config
+->fetch(array('#list-thead th', 0), '表名')   
+->fetch(array('#list-thead th', 1), '数据结构') 
+->fetch(array('#list-thead th', 2), '请求接口')
+->fetch(array('#list-thead th', 3), '后台管理')     
+
+
+->fetch
+( 
+    '#list-tbody tr',
+    'manage/database.manage',
+    array  
+    (
+        'td|0' => '<{$v.lang}>',
+
+        'td|1' => array
+        (
+            'a|0' => array
+            (
+                'href' => '<{Dever::url("project/database/manage?key=$k")}>',
+                'title' => '<{$v["lang"]}>-数据结构',
+                'html' => '数据结构',
+            ),
+        ),   
+
+        'td|2' => array
+        (
+            'a|0' => array
+            (
+                'href' => '<{Dever::url("project/database/manage?key=$k")}>',
+                'title' => '<{$v["lang"]}>-请求接口',
+                'html' => '数据请求接口<br />',
+            ),
+        ),
+
+        'td|3' => array
+        (
+            'a|0' => array
+            (
+                'href' => '<{Dever::url("project/database/manage?key=$k")}>',
+                'title' => '<{$v["lang"]}>-后台管理',
+                'html' => '后台管理<br />',
+            ),
+        ),
+    )
+)
+
+
+# display
+->display();

+ 24 - 0
template/layadmin/project/database/stat.php

@@ -0,0 +1,24 @@
+<?php
+/*
+|--------------------------------------------------------------------------
+| 统计页
+|--------------------------------------------------------------------------
+*/
+$method = 'list';
+include(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'common.php');
+
+$view
+->fetch('#list-desc', '/database.info#stat_desc')
+
+# 数据结构
+->fetch('#struct', '/database.info#struct')
+
+# 搜索选择条件
+->fetch('#search', '/database.stat#search')
+
+# 表格
+->fetch('#table-list', '/database.stat#table')
+#banner
+->call('manage/project/database/list:banner') 
+# 将上边fetch的都显示出来
+->display();

+ 51 - 0
template/layadmin/project/database/update.php

@@ -0,0 +1,51 @@
+<?php
+/*
+|--------------------------------------------------------------------------
+| 更新页
+|--------------------------------------------------------------------------
+*/
+$method = 'update';
+include(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'common.php');
+
+$view
+//->fetch('#list-desc', 'manage/database.info#update_desc')
+# form表单
+->fetch('.form1@action',	'manage/database.info#action')
+
+# 基本配置
+->fetch('#project@value',		'manage/database.info#project')
+->fetch('#table@value',		'manage/database.info#table') 
+->fetch('#update_where_id@value',	'manage/database.info#id')
+->fetch('#url@value',		'manage/database.info#list')
+
+//->fetch('#desc',		'manage/database.info#updateDesc', 'none')
+
+//->fetch('.dever_update_add', 'manage/database.info#updateMul', 'none')
+
+# 渲染数据
+->loop('#content','manage/database.update')
+
+# 数据结构
+->fetch('#struct', '/database.info#struct')
+
+# 配置valid
+->fetch('#valid','manage/database.valid')
+
+# 配置save
+->fetch('#struct@save','manage/database.save')
+
+# 配置按钮
+->fetch('#update_button','manage/database.update_button')   
+
+# 配置重复提交
+->fetch('#update_button@submit','<{Dever::submit()}>')
+#banner
+->call('manage/project/database/list:banner') 
+
+->fetch(array('.layui-card@style', 0), '/database.layui_card', 'none')
+
+->fetch('.layui-col-md12@class', '/database.card')
+
+
+# display
+->display();

+ 69 - 0
template/layadmin/project/file.php

@@ -0,0 +1,69 @@
+<?php
+/*
+|--------------------------------------------------------------------------
+| home
+|--------------------------------------------------------------------------
+*/
+
+
+$view
+
+
+# 小标题
+->fetch('#list-name', '项目管理')
+->fetch('#list-desc', '对项目进行线上管理')  
+
+# 新增的链接 @代表属性
+->fetch('#list-add@onclick', 'none')
+
+# 设置按钮状态
+->fetch(array('.am-btn-default@style', 0), 'display:none')
+->fetch(array('.am-btn-default@style', 1), 'display:none')
+->fetch(array('.am-btn-default@style', 2), 'display:none') 
+->fetch(array('.am-btn-default@style', 3), 'display:none')
+
+# 隐藏搜索
+->fetch('#search@style', 'display:none')
+
+# 隐藏分页
+->fetch('#page-list@style', 'display:none')
+
+
+# config
+->fetch(array('#list-thead th', 0), '名称')
+->fetch(array('#list-thead th', 1), '内容')   
+->fetch(array('#list-thead th@style', 2), 'display:none')
+->fetch(array('#list-thead th@style', 3), 'display:none') 
+
+->fetch
+( 
+    '#list-tbody tr',
+    'manage/config.get',
+    array  
+    (
+		'td|0' => '<{request.name}><br />双击修改<{Dever::$global["temp"]["delete"]}>',                  
+    
+		'td|1' => array
+        (
+            'href' => '#',
+            'class' => 'edit',
+            'data-url' => '<{Dever::url("config.set?file="+$v.file+"&name="+request.dir+"&md5="+$v.md5+"&key="+$v.key+"")}>', 
+            'data-type' => 'textarea',
+            'html' => '<{highlight_string($v.content)}><span class="edit-content" style="display:none;"><{$v.content}></span>',
+        ),
+
+        'td|2' => array
+        (
+            'style' => 'display:none;', 
+        ),
+        
+        'td|3' => array
+        (
+            'style' => 'display:none;', 
+        ),
+     
+    ) 
+)
+
+# display
+->display();

+ 130 - 0
template/layadmin/project/list.php

@@ -0,0 +1,130 @@
+<?php
+/*
+|--------------------------------------------------------------------------
+| home
+|--------------------------------------------------------------------------
+*/
+
+
+$view
+
+->fetch('body@class', 'theme-<{Dever::load("/auth.config#template")}>')
+
+# 小标题
+->fetch('#list-name', '项目管理')
+->fetch('#list-project', '快捷管理')
+->fetch('#list-desc', '对项目进行线上管理')  
+
+# 新增的链接 @代表属性
+->fetch('#list-add@style', 'display:none')
+
+# 隐藏搜索
+->fetch('#search@style', 'display:none')
+
+# 隐藏分页
+->fetch('#page@style', 'display:none')
+
+
+# config
+->fetch(array('#list-thead th', 0), '项目名(双击修改)') 
+->fetch(array('#list-thead th', 1), '排序')
+
+->fetch(array('#list-thead th', 2), '项目KEY(唯一)')
+->fetch(array('#list-thead th', 3), '项目根目录')
+//->fetch(array('#list-thead th@style', 2), 'display:none')
+//->fetch(array('#list-thead th@style', 3), 'display:none')
+
+->fetch
+( 
+    '#list-tbody tr',
+    'manage/project.get',
+    array  
+    (
+        'td|0' => array
+        (
+            'href' => '#',
+            'class' => 'edit',
+            'data-url' => '<{Dever::url("project.set?key=$k")}>', 
+            'data-content' => '<{$v["lang"]}>', 
+            'html' => '<{$v["lang"]}>',
+        ),
+
+        'td|1' => array
+        (
+            'href' => '#',
+            'class' => 'edit',
+            'data-url' => '<{Dever::url("project.set?key=$k&index=order")}>', 
+            'data-content' => '<{$v.order}>', 
+            'html' => '<{$v.order}>',
+        ),
+        
+        'td|2' => '<{$k}>',
+        'td|3' => '<{$v.path}>',
+        /*
+        'td|2' => array
+        (
+            'style' => 'display:none',
+            'a|0' => array
+            (
+                'href' => '<{Dever::url("project/config?key=$k")}>',
+                'title' => '<{$v["lang"]}>-基本配置',
+                'html' => '基本配置<br />',
+            ), 
+
+            'a|1' => array
+            (
+                'href' => '<{Dever::url("project/config?key=$k&type=database")}>',     
+                'title' => '<{$v["lang"]}>-数据库管理',
+                'html' => '数据库管理<br />',
+            ),
+
+            'a|2' => array
+            (
+                'href' => '<{Dever::url("project/config?key=$k&type=view")}>',
+                'title' => '<{$v["lang"]}>-模板列表',
+                'html' => '模板列表<br />',
+            ),
+           
+            'a|3' => array
+            (
+                'href' => '<{Dever::url("project/config?key=$k&type=api")}>',
+                'title' => '<{$v["lang"]}>-接口管理',
+                'html' => '接口管理',   
+            ),
+
+        ),
+        */
+		/*
+         'td|3' => array
+        (
+			'style' => 'display:none',
+			
+            'a|0' => array
+            (
+                'href' => '<{Dever::url("template.index?key=$k")}>',
+                'title' => '移除<{$v["lang"]}>',
+                'html' => '移除项目<br />',
+            ),
+            
+            'a|1' => array
+            (
+                'href' => '<{Dever::url("project/database/manage?key=$k")}>',     
+                'title' => '<{$v["lang"]}>-数据库管理',
+                'html' => '数据库管理<br />',
+            ),
+            
+            'a|2' => array
+            (
+                'href' => '<{Dever::url("project/database/manage?key=$k")}>',     
+                'title' => '<{$v["lang"]}>-清理模板缓存',
+                'html' => '清理模板缓存<br />',
+            ),
+           
+        ),
+        */
+     
+    )
+)
+
+# display
+->display();