ledger_controller.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  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. async getChildren(ctx) {
  48. const responseData = {
  49. err: 0,
  50. msg: '',
  51. data: []
  52. };
  53. try {
  54. const tenderId = ctx.session.sessionUser.tenderId;
  55. if (!tenderId) {
  56. throw '当前未打开标段';
  57. }
  58. const data = JSON.parse(ctx.request.body.data);
  59. const id = data.id;
  60. if (isNaN(id) || id <= 0) {
  61. throw '参数错误';
  62. }
  63. responseData.data = await ctx.service.ledger.getChildrenByParentId(tenderId, id);
  64. } catch (err) {
  65. responseData.err = 1;
  66. responseData.msg = err;
  67. }
  68. ctx.body = responseData;
  69. }
  70. }
  71. return LedgerController;
  72. };