ledger_controller.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. 'use strict';
  2. /**
  3. * 台账相关控制器
  4. *
  5. * @author CaiAoLin
  6. * @date 2017/11/30
  7. * @version
  8. */
  9. module.exports = app => {
  10. class LedgerController 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.showTitle = true;
  21. ctx.showTender = true;
  22. }
  23. /**
  24. * 台账分解页面
  25. *
  26. * @param {Object} ctx - egg全局变量
  27. * @return {void}
  28. */
  29. async explode(ctx) {
  30. let tenderId = ctx.session.sessionUser.tenderId;
  31. if (!tenderId) {
  32. // 根据标段列表获取默认tenderId
  33. const tenderList = await ctx.service.tender.getList();
  34. if (tenderList && tenderList.length > 0) {
  35. tenderId = tenderList[0].id;
  36. ctx.session.sessionUser.tenderId = tenderId;
  37. } else {
  38. throw '项目无标段数据';
  39. }
  40. }
  41. const ledgerData = await ctx.service.ledger.getDataByTenderId(tenderId);
  42. const renderData = {
  43. ledger: JSON.stringify(ledgerData)
  44. };
  45. await this.layout('ledger/explode.ejs', renderData);
  46. }
  47. }
  48. return LedgerController;
  49. };