'use strict'; /** * 控制器基类 * * @author CaiAoLin * @date 2017/10/11 * @version */ const moment = require('moment'); const Controller = require('egg').Controller; const menuList = require('../../config/menu'); class BaseController extends Controller { /** * 构造函数 * * @param {Object} ctx - egg全局context * @return {void} */ constructor(ctx) { super(ctx); ctx.menuList = menuList; ctx.menu = menuList[ctx.controllerName] ? menuList[ctx.controllerName] : {}; ctx.title = ctx.menu.name ? ctx.menu.name : ''; } /** * 渲染layout * * @param {String} view - 渲染的view * @param {Object} data - 渲染的数据 * @param {String} modal - 渲染的modal * @return {void} */ async layout(view, data = {}, modal = '') { data.moment = moment; const contentString = await this.ctx.renderView(view, data); const modalString = modal === '' ? '' : await this.ctx.renderView(modal); const renderData = { content: contentString, modal: modalString, }; await this.ctx.render('layout/layout.ejs', renderData); } } module.exports = BaseController;