main_route.js 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. /**
  2. * Created by chen on 2017/7/17.
  3. */
  4. import BaseController from "../../common/base/base_controller";
  5. const projectModel = require("../../pm/models/project_model");
  6. const pmFacade = require('../../pm/facade/pm_facade');
  7. let config = require("../../../config/config.js");
  8. import OptionsDao from '../../options/models/optionsModel';
  9. import optionSetting from '../../options/models/optionTypes';
  10. const regionMap = {
  11. '重庆定额(2018)': '重庆市',
  12. '广东定额(2018)': '广东省'
  13. };
  14. module.exports =function (app) {
  15. const baseController = new BaseController();
  16. app.get('/main', baseController.init, function(req, res) {
  17. let pm = require('../../pm/controllers/pm_controller');
  18. pm.checkProjectRight(req.session.sessionUser.id, req.query.project, async function (hasRight, projectData, allowCooperate) {
  19. if (hasRight) {
  20. //分享的项目,只读、协作(允许编辑)
  21. let projectReadOnly = false,
  22. projectCooperate = false;
  23. if(req.session.sessionUser.id !== projectData.userID){
  24. projectData._doc.readOnly = true;
  25. projectCooperate = allowCooperate;
  26. //允许协作的项目允许编辑,非只读
  27. projectReadOnly = !projectCooperate;
  28. }
  29. let fileKind = '1'; //默认投标文件
  30. let constructProject = await pmFacade.getConstructionProject(req.query.project);
  31. if (constructProject && constructProject.property && constructProject.property.fileKind) {
  32. fileKind = constructProject.property.fileKind;
  33. }
  34. let optionsDao = new OptionsDao();
  35. let options = await optionsDao.getOptions(req.session.sessionUser.id, req.session.sessionCompilation._id);
  36. if(options){
  37. options = await optionsDao.saveOptions(req.session.sessionUser.id, req.session.sessionCompilation._id, optionSetting);
  38. }
  39. res.render('building_saas/main/html/main.html',
  40. {
  41. userAccount: req.session.userAccount,
  42. userID: req.session.sessionUser.id,
  43. projectData: projectData,
  44. compilationName: req.session.sessionCompilation.name,
  45. region: regionMap[req.session.sessionCompilation.name] || '',
  46. versionName: req.session.compilationVersion,
  47. projectReadOnly: projectReadOnly,
  48. projectCooperate: projectCooperate,
  49. LicenseKey:config.getLicenseKey(process.env.NODE_ENV),
  50. overWriteUrl:req.session.sessionCompilation.overWriteUrl,
  51. fileKind: fileKind,
  52. options:JSON.stringify(options)
  53. });
  54. } else {
  55. res.redirect('/pm');
  56. }
  57. });
  58. });
  59. }