stage_controller.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. 'use strict';
  2. /**
  3. *
  4. *
  5. * @author Mai
  6. * @date 2018/6/20
  7. * @version
  8. */
  9. module.exports = app => {
  10. class StageController extends app.BaseController {
  11. /**
  12. * 构造函数
  13. *
  14. * @param {Object} ctx - egg全局变量
  15. * @return {void}
  16. */
  17. constructor(ctx) {
  18. super(ctx);
  19. ctx.showProject = true;
  20. ctx.showTender = true;
  21. ctx.showTitle = true;
  22. }
  23. /**
  24. * 期计量页面
  25. *
  26. @param {Object} ctx - egg全局变量
  27. * @returns {Promise<void>}
  28. */
  29. async index(ctx) {
  30. if (ctx.request.query.tenderId) {
  31. const tenderId = parseInt(ctx.request.query.tenderId);
  32. const tender = await ctx.service.tender.getDataById(tenderId);
  33. ctx.session.sessionUser.tenderId = tender.id;
  34. ctx.session.sessionUser.tenderName = tender.name;
  35. ctx.redirect('/stage');
  36. } else {
  37. let tenderId = ctx.session.sessionUser.tenderId;
  38. const tenderList = await ctx.service.tender.getList();
  39. for (const tender of tenderList) {
  40. tender.url = ctx.menuList.stage.url + '?tenderId=' + tender.id;
  41. }
  42. if (!tenderId) {
  43. // 根据标段列表获取默认tenderId
  44. if (tenderList && tenderList.length > 0) {
  45. tenderId = tenderList[0].id;
  46. ctx.session.sessionUser.tenderId = tenderId;
  47. ctx.session.sessionUser.tenderName = tenderList[0].name;
  48. } else {
  49. throw '项目无标段数据';
  50. }
  51. }
  52. const tender = await ctx.service.tender.getDataById(tenderId);
  53. const renderData = {
  54. tender,
  55. tenderList
  56. };
  57. await this.layout('stage/index.ejs', renderData, 'stage/modal.ejs');
  58. }
  59. }
  60. }
  61. return StageController;
  62. };