tender_controller.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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 jsValidator = await this.jsValidator.convert(rule).build();
  33. // 根据项目id获取标段数据
  34. const tenderList = await ctx.service.tender.getList();
  35. const renderData = {
  36. tenderList,
  37. tenderConst,
  38. jsValidator,
  39. };
  40. await this.layout('tender/index.ejs', renderData);
  41. }
  42. /**
  43. * 添加标段操作
  44. *
  45. * @param {Object} ctx - egg全局变量
  46. * @return {void}
  47. */
  48. async add(ctx) {
  49. try {
  50. const rule = ctx.service.tender.rule('add');
  51. ctx.helper.validate(rule);
  52. const result = ctx.service.tender.add(ctx.request.body);
  53. if (!result) {
  54. throw '新增标段失败';
  55. }
  56. } catch (error) {
  57. console.log(error);
  58. this.setMessage(error.toString(), this.messageType.ERROR);
  59. }
  60. ctx.redirect(ctx.request.headers.referer);
  61. }
  62. }
  63. return TenderController;
  64. };