简介

实现一个模板嵌套的项目

  1. 头部分开共享
  2. 左边导航共享,
  3. 右边放router对应的内容

clipboard.png

目录结构

clipboard.png

创建项目

egg-init egg-xiaomi --type=simple
cnpm install
cnpm install egg-view-ejs --save

controller/admin/manager

controller/admin/manager.js
'use strict';

const Controller = require('egg').Controller;

class ManagerController extends Controller {
  async index() {
    // this.ctx.body = '用户管理';
    await this.ctx.render('admin/manager/index');
  }
  async add() {
    // this.ctx.body = '用户增加';
    await this.ctx.render('admin/manager/add');
  }
  async edit() {
    // this.ctx.body = '用户编辑';
    await this.ctx.render('admin/manager/edit');
  }
}

module.exports = ManagerController;

router.js

'use strict';

/**
 * @param {Egg.Application} app - egg application
 */
module.exports = app => {
  const { router, controller } = app;
  router.get('/', controller.home.index);

  router.get('/admin/access', controller.admin.access.index);
  router.get('/admin/access/add', controller.admin.access.add);
  router.get('/admin/access/edit', controller.admin.access.edit);

  router.get('/admin/manager', controller.admin.manager.index);
  router.get('/admin/manager/add', controller.admin.manager.add);
  router.get('/admin/manager/edit', controller.admin.manager.edit);

  router.get('/admin/role', controller.admin.role.index);
  router.get('/admin/role/add', controller.admin.role.add);
  router.get('/admin/role/edit', controller.admin.role.edit);
};

view

view/admin/public/page_header.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>egg后台管理系统</title>
</head>
<body>
<!--The content below is only a placeholder and can be replaced.-->

<link rel="stylesheet" href="/public/admin/bootstrap/css/bootstrap.css">

<link rel="stylesheet" href="/public/admin/css/basic.css">

<script type="text/javascript" src="/public/admin/bootstrap/js/jquery-1.10.1.js"></script>

<script type="text/javascript" src="/public/admin/js/base.js"></script>

<nav class="navbar navbar-inverse" role="navigation">
    <div class="container-fluid">
        <div class="navbar-header">

            <img src="/public/admin/images/node.jpg" height="44px;" />

        </div>
        <div class="collapse navbar-collapse" id="example-navbar-collapse">           
            <ul class="nav navbar-nav navbar-right">
                <li><a>欢迎您,admin</a>
                </li>
                <li><a href="#">安全退出</a>
                </li>
            </ul>
        </div>
    </div>
</nav>
view/admin/public/page_asider.html
<%- include ../public/page_header.html %>

<div class="container-fluid">
    <div class="row">
        <div class="col-sm-2">
            <%- include ../public/page_aside.html %>

        </div>
        <div class="col-sm-10">

            <div class="panel panel-default">
                <div class="panel-heading">
                    搜索
                </div>
                <div class="panel-body">
                    <form role="form" class="form-inline">
                        <div class="form-group">
                            <label for="name">名称</label>
                            <input type="text" class="form-control" id="name" placeholder="请输入名称">
                        </div>

                        <div class="form-group">
                            <button type="submit" class="btn btn-default">开始搜索</button>
                        </div>
                    </form>
                </div>
            </div>
            <!--
                列表展示
            -->
            <div class="table-responsive">
                <table class="table table-bordered">
                    <thead>
                        <tr class="th">
                            <th>编号</th>
                            <th>图标</th>
                            <th>名称</th>
                            <th>价格</th>
                            <th>邮费</th>

                            <th class="text-center">操作</th>
                        </tr>
                    </thead>
                    <tbody>

                        <tr>
                            <td>1</td>
                            <td>图标</td>
                            <td>背包1111111</td>
                            <td>20元</td>
                            <td>10元</td>

                            <td class="text-center">修改 删除</td>
                        </tr>
                        <tr>
                            <td>2</td>
                            <td>图标</td>
                            <td>thinpad笔记本电脑</td>
                            <td>20元</td>
                            <td>10元</td>

                            <td class="text-center">修改 删除</td>
                        </tr>
                        <tr>
                            <td>3</td>
                            <td>图标</td>
                            <td>iphone7</td>
                            <td>20元</td>
                            <td>10元</td>

                            <td class="text-center">修改 删除</td>
                        </tr>

                    </tbody>
                </table>
            </div>

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

</body>

</html>

config

config/congif.default.js
    config.view = {
      mapping: {
        '.html': 'ejs',
  
        '.nj': 'nunjucks'
      },
    };
config/plugin.js
exports.ejs = {
  enable: true,
  package: 'egg-view-ejs',
};

exports.nunjucks = {
  enable: true,
  package: 'egg-view-nunjucks',
};

渣渣辉
1.3k 声望147 粉丝

引用和评论

0 条评论