bills_template_controller.js 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. /**
  2. * 清单模板控制控制器
  3. *
  4. * @author CaiAoLin
  5. * @date 2017/7/28
  6. * @compilation
  7. */
  8. import BaseController from "../../common/base/base_controller";
  9. import billsTemplateFacade from "../facade/bills_template_facade";
  10. import {default as BillsFixedFlagConst, List as BillsFixedFlagList} from "../../common/const/bills_fixed.js";
  11. import {default as BillsTypeFlagConst, List as BillsTypeFlagList} from "../../common/const/bills_type.js";
  12. import CompilationModel from '../../users/models/compilation_model';
  13. let config = require("../../../config/config.js");
  14. let logger = require('../../../logs/log_helper').logger;
  15. class BillsTemplateController extends BaseController {
  16. /**
  17. * 清单模板库页面
  18. *
  19. * @param {object} request
  20. * @param {object} response
  21. * @return {void}
  22. */
  23. async main(request, response) {
  24. let filter = request.query.filter ? {compilationId: request.query.filter} : null;
  25. let templateLibs = await billsTemplateFacade.getAllLibs(filter);
  26. let compilationModel = new CompilationModel();
  27. let compilationList = await compilationModel.getCompilationList({_id: 1, name: 1});
  28. compilationList.unshift({_id: 'all', name: '所有'});
  29. let activeCompilation = compilationList.find(compilation => compilation._id.toString() === request.query.filter);
  30. if (activeCompilation) {
  31. activeCompilation.active = 'active';
  32. } else {
  33. compilationList[0].active = 'active'
  34. }
  35. let randerData = {
  36. title:'清单模板',
  37. userAccount: request.session.managerData.username,
  38. userID: request.session.managerData.userID,
  39. templateLibs:templateLibs,
  40. compilationList: compilationList,
  41. layout: 'maintain/common/html/layout',
  42. LicenseKey:config.getLicenseKey(process.env.NODE_ENV)
  43. };
  44. response.render("maintain/bill_template_lib/html/main", randerData);
  45. }
  46. async updateBillsTemplateItem(request, response) {
  47. let libID = request.params.libID;
  48. let result = {error: 1, message: '更新数据错误', data: null};
  49. try {
  50. let data = JSON.parse(request.body.data);
  51. if(libID){
  52. result = await await billsTemplateFacade.updateTemplateItem(libID,data);
  53. if (result) {
  54. result = {error: 0, message: '', data: data};
  55. }
  56. }
  57. }catch (err){
  58. console.log(err);
  59. result.message = err.message;
  60. }
  61. response.json(result);
  62. }
  63. async editTemplate(request, response){
  64. //先取出清单库信息:
  65. let libID = request.params.libID;
  66. let templateLib = await billsTemplateFacade.getLibByID(libID);
  67. if(templateLib){
  68. let templateDatas = await billsTemplateFacade.getTemplateDatasByLibID(libID);
  69. let randerData = {
  70. title:'清单模板',
  71. mainURL:'/billsTemplate/main',
  72. libName:templateLib.name,
  73. userAccount: request.session.managerData.username,
  74. userID: request.session.managerData.userID,
  75. billsTemplateData:JSON.stringify(templateDatas),
  76. billsFixedFlagList: JSON.stringify(BillsFixedFlagList),
  77. billsTypeFlagList: JSON.stringify(BillsTypeFlagList),
  78. libID:libID,
  79. LicenseKey:config.getLicenseKey(process.env.NODE_ENV),
  80. layout: 'maintain/common/html/edit_layout'
  81. };
  82. response.render("maintain/bill_template_lib/html/edit", randerData);
  83. }else {
  84. response.redirect(request.headers.referer);
  85. }
  86. }
  87. async deleteLibByID(request,response){
  88. logger.info(`delete billsTemplateLib ${request.ip}`);
  89. let result={
  90. error:0
  91. };
  92. try {
  93. let data = request.body.data;
  94. data = JSON.parse(data);
  95. let resultData= await billsTemplateFacade.deleteLibByID(data.ID);
  96. result.data=resultData;
  97. }catch (err){
  98. console.log(err);
  99. result.error=1;
  100. result.message = err.message;
  101. }
  102. response.json(result);
  103. }
  104. async saveLib(request, response){
  105. let result={
  106. error:0
  107. };
  108. try {
  109. let data = request.body.data;
  110. data = JSON.parse(data);
  111. let resultData= await billsTemplateFacade.saveLib(data);
  112. result.data=resultData;
  113. }catch (err){
  114. console.log(err);
  115. result.error=1;
  116. result.message = err.message;
  117. }
  118. response.json(result);
  119. }
  120. async getLibByID(request, response){
  121. let result={
  122. error:0
  123. };
  124. try {
  125. let data = request.body.data;
  126. data = JSON.parse(data);
  127. let resultData= await billsTemplateFacade.getLibByID(data.libID);
  128. result.data=resultData;
  129. }catch (err){
  130. console.log(err);
  131. result.error=1;
  132. result.message = err.message;
  133. }
  134. response.json(result);
  135. }
  136. async addLib(request, response){
  137. try {
  138. await billsTemplateFacade.addLib(request.body);
  139. }catch (error) {
  140. console.log(error);
  141. }
  142. response.redirect(request.headers.referer);
  143. }
  144. async copyLib(req, res) {
  145. try {
  146. const data = JSON.parse(req.body.data);
  147. const userName = req.session.managerData.username;
  148. await billsTemplateFacade.copyLib(data.libID, data.name, userName);
  149. res.json({error: 0, data: null, message: 'success'})
  150. } catch (err) {
  151. console.log(err);
  152. res.json({error: 1, data: null, message: 'fail'});
  153. }
  154. }
  155. }
  156. export default BillsTemplateController;