project_screen_controller.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. 'use strict';
  2. const projectScreenConst = require('../const/project_screen');
  3. module.exports = app => {
  4. class ProjectScreenController extends app.BaseController {
  5. constructor(ctx) {
  6. super(ctx);
  7. ctx.showProject = true;
  8. ctx.showTitle = true;
  9. }
  10. async index(ctx) {
  11. try {
  12. if (!ctx.showProjectScreen) throw '项目大屏未开启或没有访问权限';
  13. const pid = ctx.session.sessionProject.id;
  14. const screens = await ctx.service.projectScreen.getList(pid);
  15. const screen = await ctx.service.projectScreen.getViewScreen(pid, ctx.params.sid || '');
  16. if (!screen) throw '项目尚未添加大屏';
  17. const template = projectScreenConst.getTemplate(screen.template_code);
  18. if (!template) throw '大屏模板不存在';
  19. const screenList = screens.map(item => {
  20. return Object.assign(item, {
  21. template: projectScreenConst.getTemplate(item.template_code),
  22. });
  23. });
  24. await this.layout('project_screen/index.ejs', {
  25. screens: screenList,
  26. screen,
  27. template,
  28. });
  29. } catch (error) {
  30. ctx.log(error);
  31. ctx.session.postError = error.toString();
  32. ctx.redirect('/dashboard');
  33. }
  34. }
  35. }
  36. return ProjectScreenController;
  37. };