stage_controller.js 5.0 KB

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