tender_controller.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. 'use strict';
  2. /**
  3. * 标段管理控制器
  4. *
  5. * @author CaiAoLin
  6. * @date 2018/2/5
  7. * @version
  8. */
  9. const tenderConst = require('../const/tender');
  10. module.exports = app => {
  11. class TenderController 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.showTitle = true;
  22. }
  23. /**
  24. * 标段列表页
  25. *
  26. * @param {object} ctx - egg全局变量
  27. * @return {void}
  28. */
  29. async index(ctx) {
  30. // 获取新增标段的规则
  31. const rule = ctx.service.tender.rule('add');
  32. const frontRule = ctx.helper.validateConvert(rule);
  33. // 根据项目id获取标段数据
  34. const tenderList = await ctx.service.tender.getList();
  35. console.log(tenderConst.type);
  36. const renderData = {
  37. tenderList,
  38. rule: JSON.stringify(frontRule),
  39. tenderConst,
  40. };
  41. await this.layout('tender/index.ejs', renderData);
  42. }
  43. /**
  44. * 添加标段操作
  45. *
  46. * @param {Object} ctx - egg全局变量
  47. * @return {void}
  48. */
  49. async add(ctx) {
  50. try {
  51. const rule = ctx.service.tender.rule('add');
  52. ctx.helper.validate(rule);
  53. const result = ctx.service.tender.add(ctx.request.body);
  54. if (!result) {
  55. throw '新增标段失败';
  56. }
  57. } catch (error) {
  58. console.log(error);
  59. this.setMessage(error.toString(), this.messageType.ERROR);
  60. }
  61. ctx.redirect(ctx.request.headers.referer);
  62. }
  63. }
  64. return TenderController;
  65. };