stage_controller.js 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. 'use strict';
  2. /**
  3. *
  4. *
  5. * @author Mai
  6. * @date 2018/6/20
  7. * @version
  8. */
  9. const moment = require('moment');
  10. const audit = require('../const/audit');
  11. module.exports = app => {
  12. class StageController extends app.BaseController {
  13. /**
  14. * 构造函数
  15. *
  16. * @param {Object} ctx - egg全局变量
  17. * @return {void}
  18. */
  19. constructor(ctx) {
  20. super(ctx);
  21. ctx.showProject = true;
  22. ctx.showTender = true;
  23. ctx.showTitle = true;
  24. }
  25. /**
  26. * 期计量页面 (Get)
  27. * @param {Object} ctx - egg全局变量
  28. * @returns {Promise<void>}
  29. */
  30. async index(ctx) {
  31. try {
  32. const tenderList = await this.service.tender.getList();
  33. const stages = await ctx.service.stage.getAllDataByCondition({
  34. where: {tid: ctx.tender.id},
  35. order: ['order'],
  36. });
  37. const renderData = {
  38. moment,
  39. tender: ctx.tender.data,
  40. tenderList,
  41. stages,
  42. auditConst: audit.flow,
  43. };
  44. await this.layout('stage/index.ejs', renderData, 'stage/modal.ejs');
  45. } catch (err) {
  46. console.log(err);
  47. ctx.redirect('/dashboard');
  48. }
  49. }
  50. /**
  51. * 新增期 (Post)
  52. *
  53. * @param {Object} ctx - egg全局变量
  54. * @returns {Promise<void>}
  55. */
  56. async add(ctx) {
  57. try {
  58. const data = JSON.parse(ctx.request.body.data);
  59. const stage = await ctx.service.stage.add(tenderId, data.name, moment(data.time).toDate());
  60. console.log(stage);
  61. ctx.body = { err: 0, msg: '', data: stage };
  62. } catch (err) {
  63. console.log(err);
  64. ctx.body = { err: 1, msg: err.toString(), data: null};
  65. }
  66. }
  67. /**
  68. * 期 -- 本期计量台账 页面 (Get)
  69. *
  70. * @param {Object} ctx - egg全局变量
  71. * @returns {Promise<void>}
  72. */
  73. async stageMeasure(ctx) {
  74. try {
  75. const tender = ctx.tenderData;
  76. const tenderList = ctx.tenderList;
  77. const order = parseInt(ctx.params.order);
  78. const stage = await ctx.service.stage.getDataByCondition({
  79. tid: tender.id,
  80. order: order,
  81. });
  82. const renderData = {
  83. tender,
  84. tenderList,
  85. stage,
  86. auditConst: audit.flow,
  87. }
  88. await this.layout('stage/measure.ejs', renderData, 'stage/measure_modal.ejs');
  89. } catch (err) {
  90. console.log(err);
  91. ctx.redirect('/stage');
  92. }
  93. }
  94. /**
  95. * 期 -- 合同支付 页面 (Get)
  96. *
  97. * @param {Object} ctx - egg全局变量
  98. * @returns {Promise<void>}
  99. */
  100. async stageDeal(ctx) {
  101. try {
  102. const tender = ctx.tenderData;
  103. const tenderList = ctx.tenderList;
  104. const order = parseInt(ctx.params.order);
  105. const stage = await ctx.service.stage.getDataByCondition({
  106. tid: tender.id,
  107. order: order,
  108. });
  109. const renderData = {
  110. tender,
  111. tenderList,
  112. stage,
  113. auditConst: audit.flow,
  114. };
  115. await this.layout('stage/deal.ejs', renderData, 'stage/deal_modal.ejs');
  116. } catch (err) {
  117. console.log(err);
  118. ctx.redirect('/stage');
  119. }
  120. }
  121. /**
  122. * 期 -- 报表 页面 (Get)
  123. *
  124. * @param {Object} ctx - egg全局变量
  125. * @returns {Promise<void>}
  126. */
  127. async stageReport(ctx) {
  128. try {
  129. const tender = ctx.tenderData;
  130. const tenderList = ctx.tenderList;
  131. const order = parseInt(ctx.params.order);
  132. const stage = await ctx.service.stage.getDataByCondition({
  133. tid: tender.id,
  134. order: order,
  135. });
  136. const renderData = {
  137. tender,
  138. tenderList,
  139. stage,
  140. auditConst: audit.flow,
  141. };
  142. await this.layout('stage/report.ejs', renderData, 'stage/report_modal.ejs');
  143. } catch (err) {
  144. console.log(err);
  145. ctx.redirect('/stage');
  146. }
  147. }
  148. }
  149. return StageController;
  150. };