1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- 'use strict';
- /**
- * 控制器基类
- *
- * @author CaiAoLin
- * @date 2017/10/11
- * @version
- */
- const moment = require('moment');
- const messageType = require('../const/message_type');
- const Controller = require('egg').Controller;
- class BaseController extends Controller {
- /**
- * 构造函数
- *
- * @param {Object} ctx - egg全局context
- * @return {void}
- */
- constructor(ctx) {
- super(ctx);
- this.messageType = messageType;
- }
- /**
- * 渲染layout
- *
- * @param {String} view - 渲染的view
- * @param {Object} data - 渲染的数据
- * @return {void}
- */
- async layout(view, data = {}) {
- data.moment = moment;
- // 获取消息提示
- const message = this.ctx.session.message;
- // 取出后删除
- this.ctx.session.message = null;
- const viewString = await this.ctx.renderView(view, data);
- const renderData = {
- content: viewString,
- message: JSON.stringify(message),
- dropDownMenu: data.dropDownMenu === undefined ? [] : data.dropDownMenu,
- breadCrumb: data.breadCrumb === undefined ? '' : data.breadCrumb,
- };
- await this.ctx.render('layout/layout.ejs', renderData);
- }
- /**
- * 设置提示
- *
- * @param {String} message - 提示信息
- * @param {String} type - 提示类型
- * @return {void}
- */
- setMessage(message, type) {
- let icon = '';
- switch (type) {
- case messageType.SUCCESS:
- icon = 'check';
- break;
- case messageType.ERROR:
- icon = 'exclamation-circle';
- break;
- case messageType.INFO:
- icon = 'info-circle';
- break;
- case messageType.WARNING:
- icon = 'warning';
- break;
- default:
- break;
- }
- this.ctx.session.message = {
- type,
- icon,
- message,
- };
- }
- }
- module.exports = BaseController;
|