ledger_controller.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  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. async index(ctx) {
  18. const rule = ctx.service.tender.rule('add');
  19. const frontRule = ctx.helper.validateConvert(rule);
  20. let tender = ctx.request.query.tender;
  21. tender = parseInt(tender);
  22. tender = isNaN(tender) ? 0 : tender;
  23. // 获取标段数据
  24. const tenderList = await ctx.service.tender.getList();
  25. // 如果没有指定标段则默认载入第一个
  26. if (tenderList.length > 0 && tender <= 0) {
  27. tender = tenderList[0].id;
  28. }
  29. // 获取标段台账
  30. const ledgerData = await ctx.service.ledger.getDataByTenderId(tender);
  31. const renderData = {
  32. tenderList,
  33. rule: JSON.stringify(frontRule),
  34. currentTender: tender,
  35. };
  36. await this.layout('ledger/index.ejs', renderData);
  37. }
  38. /**
  39. * 添加标段操作
  40. *
  41. * @param {Object} ctx - egg全局变量
  42. * @return {void}
  43. */
  44. async addTender(ctx) {
  45. try {
  46. const rule = ctx.service.tender.rule('add');
  47. ctx.validate(rule);
  48. const result = ctx.service.tender.add(ctx.request.body);
  49. if (!result) {
  50. throw '新增标段失败';
  51. }
  52. } catch (error) {
  53. this.setMessage(error.toString(), this.messageType.ERROR);
  54. }
  55. ctx.redirect(ctx.request.headers.referer);
  56. }
  57. }
  58. return LedgerController;
  59. };