'use strict'; /** * * * @author Mai * @date 2018/6/20 * @version */ const moment = require('moment'); const audit = require('../const/audit'); module.exports = app => { class StageController extends app.BaseController { /** * 构造函数 * * @param {Object} ctx - egg全局变量 * @return {void} */ constructor(ctx) { super(ctx); ctx.showProject = true; ctx.showTender = true; ctx.showTitle = true; } /** * 期计量页面 (Get) * @param {Object} ctx - egg全局变量 * @returns {Promise} */ async index(ctx) { try { const tenderList = await this.service.tender.getList(); const stages = await ctx.service.stage.getAllDataByCondition({ where: {tid: ctx.tender.id}, order: ['order'], }); const renderData = { moment, tender: ctx.tender.data, tenderList, stages, auditConst: audit.flow, }; await this.layout('stage/index.ejs', renderData, 'stage/modal.ejs'); } catch (err) { console.log(err); ctx.redirect('/dashboard'); } } /** * 新增期 (Post) * * @param {Object} ctx - egg全局变量 * @returns {Promise} */ async add(ctx) { try { const data = JSON.parse(ctx.request.body.data); const stage = await ctx.service.stage.add(tenderId, data.name, moment(data.time).toDate()); console.log(stage); ctx.body = { err: 0, msg: '', data: stage }; } catch (err) { console.log(err); ctx.body = { err: 1, msg: err.toString(), data: null}; } } /** * 期 -- 本期计量台账 页面 (Get) * * @param {Object} ctx - egg全局变量 * @returns {Promise} */ async stageMeasure(ctx) { try { const tender = ctx.tenderData; const tenderList = ctx.tenderList; const order = parseInt(ctx.params.order); const stage = await ctx.service.stage.getDataByCondition({ tid: tender.id, order: order, }); const renderData = { tender, tenderList, stage, auditConst: audit.flow, } await this.layout('stage/measure.ejs', renderData, 'stage/measure_modal.ejs'); } catch (err) { console.log(err); ctx.redirect('/stage'); } } /** * 期 -- 合同支付 页面 (Get) * * @param {Object} ctx - egg全局变量 * @returns {Promise} */ async stageDeal(ctx) { try { const tender = ctx.tenderData; const tenderList = ctx.tenderList; const order = parseInt(ctx.params.order); const stage = await ctx.service.stage.getDataByCondition({ tid: tender.id, order: order, }); const renderData = { tender, tenderList, stage, auditConst: audit.flow, }; await this.layout('stage/deal.ejs', renderData, 'stage/deal_modal.ejs'); } catch (err) { console.log(err); ctx.redirect('/stage'); } } /** * 期 -- 报表 页面 (Get) * * @param {Object} ctx - egg全局变量 * @returns {Promise} */ async stageReport(ctx) { try { const tender = ctx.tenderData; const tenderList = ctx.tenderList; const order = parseInt(ctx.params.order); const stage = await ctx.service.stage.getDataByCondition({ tid: tender.id, order: order, }); const renderData = { tender, tenderList, stage, auditConst: audit.flow, }; await this.layout('stage/report.ejs', renderData, 'stage/report_modal.ejs'); } catch (err) { console.log(err); ctx.redirect('/stage'); } } } return StageController; };