stage_controller.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. 'use strict';
  2. /**
  3. *
  4. *
  5. * @author Mai
  6. * @date 2018/6/20
  7. * @version
  8. */
  9. const moment = require('moment');
  10. module.exports = app => {
  11. class StageController extends app.BaseController {
  12. /**
  13. * 构造函数
  14. *
  15. * @param {Object} ctx - egg全局变量
  16. * @return {void}
  17. */
  18. constructor(ctx) {
  19. super(ctx);
  20. ctx.showProject = true;
  21. ctx.showTender = true;
  22. ctx.showTitle = true;
  23. }
  24. /**
  25. * 期计量页面 (Get)
  26. * @param {Object} ctx - egg全局变量
  27. * @returns {Promise<void>}
  28. */
  29. async index(ctx) {
  30. try {
  31. const tender = ctx.tenderData;
  32. const tenderList = ctx.tenderList;
  33. const stages = await ctx.service.stage.getAllDataByCondition({
  34. where: {tender_id: tender.id},
  35. order: ['order'],
  36. });
  37. const renderData = {
  38. moment,
  39. tender,
  40. tenderList,
  41. stages,
  42. };
  43. await this.layout('stage/index.ejs', renderData, 'stage/modal.ejs');
  44. } catch (err) {
  45. console.log(err);
  46. ctx.redirect('/dashboard');
  47. }
  48. }
  49. /**
  50. * 新增期 (Post)
  51. *
  52. * @param {Object} ctx - egg全局变量
  53. * @returns {Promise<void>}
  54. */
  55. async add(ctx) {
  56. try {
  57. const tenderId = ctx.session.sessionUser.tenderId;
  58. if (!tenderId) {
  59. throw '当前未打开标段';
  60. }
  61. const stages = await ctx.service.stage.getAllDataByCondition({
  62. where: {tender_id: tender.id},
  63. order: ['order'],
  64. });
  65. const order = stages.length + 1;
  66. const newStage = {
  67. sid: this.uuid.v4(),
  68. tender_id: tenderId,
  69. order: order,
  70. name: ctx.body.stageName,
  71. in_time: new Date(),
  72. s_time: ctx.body.stageTime,
  73. times: 1,
  74. status: auditConst.status.uncheck,
  75. };
  76. const result = await ctx.service.stage.insert(newStage);
  77. if (result.affected === 1) {
  78. ctx.redirect('/stage/' + newStage.sid);
  79. }
  80. } catch (err) {
  81. console.log(err);
  82. ctx.redirect('/stage');
  83. }
  84. }
  85. async stage(ctx) {
  86. try {
  87. const tenderId = ctx.session.sessionUser.tenderId;
  88. if (!tenderId) {
  89. throw '当前未打开标段'
  90. }
  91. const tenderData = await ctx.service.tender.getDataById(tenderId);
  92. } catch (err) {
  93. console.log(err);
  94. ctx.redirect('/stage');
  95. }
  96. }
  97. }
  98. return StageController;
  99. };