stage_controller.js 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  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 tenderId = ctx.params.id;
  33. const tender = await this.service.tender.getDataById(tenderId);
  34. const tenderList = await this.service.tender.getList();
  35. const stages = await ctx.service.stage.getAllDataByCondition({
  36. where: {tid: tender.id},
  37. order: ['order'],
  38. });
  39. const renderData = {
  40. moment,
  41. tender,
  42. tenderList,
  43. stages,
  44. auditConst: audit.flow,
  45. };
  46. await this.layout('stage/index.ejs', renderData, 'stage/modal.ejs');
  47. } catch (err) {
  48. console.log(err);
  49. ctx.redirect('/dashboard');
  50. }
  51. }
  52. /**
  53. * 新增期 (Post)
  54. *
  55. * @param {Object} ctx - egg全局变量
  56. * @returns {Promise<void>}
  57. */
  58. async add(ctx) {
  59. try {
  60. const tenderId = ctx.params.id;
  61. if (!tenderId) {
  62. throw '当前未打开标段';
  63. }
  64. const data = JSON.parse(ctx.request.body.data);
  65. const stage = await ctx.service.stage.add(tenderId, data.name, moment(data.time).toDate());
  66. console.log(stage);
  67. ctx.body = { err: 0, msg: '', data: stage };
  68. } catch (err) {
  69. console.log(err);
  70. ctx.body = { err: 1, msg: err.toString(), data: null};
  71. }
  72. }
  73. /**
  74. * 期 -- 本期计量台账 页面 (Get)
  75. *
  76. * @param {Object} ctx - egg全局变量
  77. * @returns {Promise<void>}
  78. */
  79. async stageMeasure(ctx) {
  80. try {
  81. const tender = ctx.tenderData;
  82. const tenderList = ctx.tenderList;
  83. const order = parseInt(ctx.params.order);
  84. const stage = await ctx.service.stage.getDataByCondition({
  85. tid: tender.id,
  86. order: order,
  87. });
  88. const renderData = {
  89. tender,
  90. tenderList,
  91. stage,
  92. auditConst: audit.flow,
  93. }
  94. await this.layout('stage/measure.ejs', renderData, 'stage/measure_modal.ejs');
  95. } catch (err) {
  96. console.log(err);
  97. ctx.redirect('/stage');
  98. }
  99. }
  100. /**
  101. * 期 -- 合同支付 页面 (Get)
  102. *
  103. * @param {Object} ctx - egg全局变量
  104. * @returns {Promise<void>}
  105. */
  106. async stageDeal(ctx) {
  107. try {
  108. const tender = ctx.tenderData;
  109. const tenderList = ctx.tenderList;
  110. const order = parseInt(ctx.params.order);
  111. const stage = await ctx.service.stage.getDataByCondition({
  112. tid: tender.id,
  113. order: order,
  114. });
  115. const renderData = {
  116. tender,
  117. tenderList,
  118. stage,
  119. auditConst: audit.flow,
  120. };
  121. await this.layout('stage/deal.ejs', renderData, 'stage/deal_modal.ejs');
  122. } catch (err) {
  123. console.log(err);
  124. ctx.redirect('/stage');
  125. }
  126. }
  127. /**
  128. * 期 -- 报表 页面 (Get)
  129. *
  130. * @param {Object} ctx - egg全局变量
  131. * @returns {Promise<void>}
  132. */
  133. async stageReport(ctx) {
  134. try {
  135. const tender = ctx.tenderData;
  136. const tenderList = ctx.tenderList;
  137. const order = parseInt(ctx.params.order);
  138. const stage = await ctx.service.stage.getDataByCondition({
  139. tid: tender.id,
  140. order: order,
  141. });
  142. const renderData = {
  143. tender,
  144. tenderList,
  145. stage,
  146. auditConst: audit.flow,
  147. };
  148. await this.layout('stage/report.ejs', renderData, 'stage/report_modal.ejs');
  149. } catch (err) {
  150. console.log(err);
  151. ctx.redirect('/stage');
  152. }
  153. }
  154. }
  155. return StageController;
  156. };