开始使用

126 阅读3分钟

1.1.导入项目

  1. 下载项目后进行解压
  2. 使用IDEA、WebStorm、HBuilder等前端开发工具打开
  3. 打开index.html点击右上角浏览器图标运行:

注意: 必须以http://的形式访问,而不是file://的形式访问。

1.2.项目结构

|-assets
|     |-images            # 图片
|     |-js
|         |-common.js     # 公共js,主要配置layui扩展模块位置
|     |-libs              # 第三方库,echarts(图表)、layui
|     |-module            # layui扩展模块,版本更新只用替换此目录
|         |-img               # 框架用到的图片
|         |-admin.css         # 框架核心样式
|         |-admin.js          # admin模块
|         |-index.js          # index模块
|         |-********          # 其他扩展模块,不一一列举
|-page              # html页面
|-json              # 模拟数据
|-index.html        # 主页面

与后端整合从index.html页面入手,page、json可以删除,assets整个目录都是静态资源,遇到问题先看控制台, 保证index.html无404问题,控制台network里面layui.js、common.js、index.js、admin.js能成功加载就表示成功整合了。

1.3.index.html

<html>
<head>
    <link rel="stylesheet" href="assets/libs/layui/css/layui.css"/>
    <link rel="stylesheet" href="assets/module/admin.css"/>
</head>
<body class="layui-layout-body">
    <div class="layui-layout layui-layout-admin">
        <!-- 头部 -->
        <div class="layui-header">...</div>
        <!-- 侧边栏 -->
        <div class="layui-side">...</div>
        <!-- 主体部分 -->
        <div class="layui-body">...</div>
        <!-- 底部 -->
        <div class="layui-footer">...</div>
    </div>
    
    <script type="text/javascript" src="assets/libs/layui/layui.js"></script>
    <script type="text/javascript" src="assets/js/common.js"></script>
    <script>
        layui.use(['index'], function () {
            var index = layui.index;
            // 加载默认主页
            index.loadHome({
                menuPath: 'page/console/console.html',
                menuName: '<i class="layui-icon layui-icon-home"></i>'
            });
        });
    </script>
</body>
</html>

index.html就是这样固定的结构,一般不需要修改,只用写子页面配置在侧边栏中即可。

在整合到后端时,可以把头部、侧边栏抽离出来,再include进去,便于维护。

1.4.common.js

layui.config({
  base: getProjectUrl() + 'assets/module/'  // 配置layui扩展模块目录
}).extend({  // 配置每个模块分别所在的目录
  notice: 'notice/notice',
  step: 'step-lay/step'
}).use(['admin'], function () {
  var admin = layui.admin;

});

// 获取项目根路径
function getProjectUrl() {
  return '...省略';
}
  • layui.config的base是告诉layui扩展模块所在目录
  • layui.extend是配置每个模块具体js位置
  • getProjectUrl()是封装的获取项目根目录的方法

像admin.js、index.js这些没有用子目录存放的模块不需要配置layui.extend, getProjectUrl()可以保证不同路径的子页面引用common.js都能正确配置模块位置,原理是获取layui.js的全路径, 并截取assets之前的路径,所以你的layui需要在assets目录下面,assets上一层必须是项目根路径, 你也可以根据你的目录结构合理的修改getProjectUrl方法,比如assets改成static。

注意: 每个页面都需要引入common.js,如果增加了新模块记得在这里配置模块

1.5.修改默认配置

所有的配置都在common.js里面的layui.config中配置:

layui.config({
    pageTabs: false,                // 关闭多标签
    defaultTheme: 'theme-colorful', // 默认主题
    cacheTab: false,                // 刷新页面不恢复已经打开的Tab
    maxTabNum: 20,                  // 最大打开的Tab数量
    openTabCtxMenu: false,          // 关闭Tab鼠标右键菜单
    tableName: 'easyweb-iframe',    // 存储表名
    navArrow: 'arrow3',             // 侧边栏导航箭头
    closeFooter: true,              // 是否关闭页脚
    tabAutoRefresh: true,           // 是否切换Tab自动刷新页面
    getAjaxHeaders: function(){},   // ajax统一传递header
    ajaxSuccessBefore: function(){},// ajax统一预处理
    baseServer: '',                 // admin.req的url会自动在前面加这个
    reqPutToPost: false,            // 为true会自动把put变post,delete变get并加_method
    version: true,                  // 加载模块不缓存
    apiNoCache: true,               // ajax请求json不加版本号
    tplOpen: '{{',                  // url弹窗模板引擎边界符
    tplClose: '}}',                 // url弹窗模板引擎边界符
    defaultLoading: 1,              // 默认的加载动画(只控制admin.showLoading的默认)
    base: getProjectUrl() + 'assets/module/'
})
  • tableName 是前端放缓存的表名,如果一个域名下有多个项目,需要修改成不同的名称。
  • apiNoCache admin.ajax请求如果配置了version会自动加版本号解决缓存,配置为true如果请求的json数据则不加。

在设置界面修改的配置会高于默认配置,设置界面的配置是放在缓存中,清除缓存就会以默认配置为主,这些配置参数都有合适的默认值, 根据你的需要加,不是全部都要写上。

如何读取这些配置信息:

var setter = admin.setter;

console.log(setter);
console.log(setter.version);

// 也可以用layui.cache
console.log(layui.cache.version);

3.1.6版本开始都在这里配置,不用每次修改admin.js、index.js了。

1.6.增加一个页面

  1. 打开index.html,找到侧导航栏部分,添加一个菜单:
  2. 在index.html同目录下新建一个xxx.html页面
  3. 运行index.html,查看效果
<dd><a lay-href="xxx.html">XX管理</a></dd>
<!-- 还可以增加ew-title属性自定义打开的Tab标题
<a lay-href="xxx.html" ew-title="XXXXX">XX管理</a> -->

注意: 是lay-href不是href,加图标用 ew-title="XX"