bills_template_controller.js 5.7 KB

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