rpt_main.js 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. /**
  2. * Created by Tony on 2017/6/26.
  3. */
  4. 'use strict'
  5. let rptTplObj = {
  6. hasInitialized: false,
  7. iniPage: function() {
  8. let me = this;
  9. if (!me.hasInitialized) {
  10. zTreeOprObj.getReportTemplateTree(userID);
  11. me.hasInitialized = true;
  12. let canvas = document.getElementById("rptCanvas");
  13. canvas.onclick = canvasOprObj.cavansOnClick;
  14. canvas.onmousemove = canvasOprObj.canvasOnMouseMove;
  15. }
  16. }
  17. }
  18. let zTreeOprObj = {
  19. treeObj: null,
  20. currentNode: null,
  21. currentRptPageRst: null,
  22. currentPage: 1,
  23. maxPages: 0,
  24. getReportTemplateTree: function(userId) {
  25. let me = zTreeOprObj, params = {};
  26. params.userId = [];
  27. params.userId.push(userId);
  28. params.userId.push(-100);
  29. // let allEngIds = [];
  30. // for (let item of engineeringList) {
  31. // allEngIds.push(item.value);
  32. // }
  33. // params.engineerId = allEngIds;
  34. params.engineerId = projectInfoObj.projectInfo.property.engineering;
  35. CommonAjax.postEx("report_tpl_api/getRptTplTree", params, 20000, true, function(result){
  36. zTreeHelper.createTreeDirectly(result, rpt_tpl_setting, "rptTplTree", me);
  37. me.refreshNodes();
  38. }, null, null
  39. );
  40. },
  41. refreshNodes: function() {
  42. let me = this;
  43. let private_setupIsParent = function(node){
  44. node.isParent = (node.nodeType === RT.NodeType.NODE || node.level === 0);
  45. if (node.items && node.items.length) {
  46. for (let i = 0; i < node.items.length; i++) {
  47. private_setupIsParent(node.items[i]);
  48. }
  49. }
  50. };
  51. let topNodes = me.treeObj.getNodes();
  52. for (let i = 0; i < topNodes.length; i++) {
  53. private_setupIsParent(topNodes[i]);
  54. }
  55. me.treeObj.refresh();
  56. },
  57. onCheck: function() {
  58. //count();
  59. //if (clearFlag) {
  60. // clearCheckedOldNodes();
  61. //}
  62. },
  63. onClick: function(event,treeId,treeNode) {
  64. let me = zTreeOprObj;
  65. let canvas = document.getElementById("rptCanvas");
  66. if (treeNode.nodeType === TPL_TYPE_TEMPLATE && treeNode.refId > 0) {
  67. let params = {};
  68. let pageSize = rptHeaderObj.getCurrentPageSize();
  69. params.user_id = userID;
  70. params.pageSize = pageSize;
  71. params.rpt_tpl_id = treeNode.refId;
  72. params.prj_id = projectInfoObj.projectInfo.ID;
  73. CommonAjax.postEx("report_api/getReport", params, 5000, true, function(result){
  74. let pageRst = result;
  75. if (pageRst) {
  76. me.currentRptPageRst = pageRst;
  77. me.maxPages = pageRst.items.length;
  78. me.currentPage = 1;
  79. let size = JpcCanvasOutput.getReportSizeInPixel(me.currentRptPageRst, getScreenDPI());
  80. canvas.width = size[0] + 20;
  81. if (size[1] > size[0]) {
  82. canvas.height = size[1] + 100;
  83. } else {
  84. canvas.height = size[1] + 50;
  85. }
  86. me.showPage(0, canvas);
  87. }
  88. }, null, null
  89. );
  90. }
  91. },
  92. showPage: function (pageStep, canvas) {
  93. let me = zTreeOprObj;
  94. if (me.currentPage + pageStep >= 1 && me.currentPage + pageStep <= me.maxPages) {
  95. me.currentPage = me.currentPage + pageStep;
  96. JpcCanvasOutput.cleanCanvas(canvas);
  97. JpcCanvasOutput.drawPageBorder(me.currentRptPageRst, canvas, getScreenDPI());
  98. JpcCanvasOutput.drawToCanvas(me.currentRptPageRst, canvas, me.currentPage);
  99. }
  100. }
  101. };
  102. let canvasOprObj = {
  103. canvasOnMouseMove: function (event) {
  104. let x = event.offsetX - JpcCanvasOutput.offsetX,
  105. canvas = event.originalTarget
  106. ;
  107. if (x < 200) {
  108. // canvas.style.cursor = "e-resize";
  109. canvas.style.cursor = "url(/web/building_saas/img/PreviousPageSimple.cur), auto";
  110. } else if ((canvas.width - x) < 200) {
  111. // canvas.style.cursor = "w-resize";
  112. canvas.style.cursor = "url(/web/building_saas/img/NextPageSimple.cur), auto";
  113. } else {
  114. canvas.style.cursor = "";
  115. }
  116. },
  117. cavansOnClick: function(event){
  118. let x = event.offsetX - JpcCanvasOutput.offsetX,
  119. //y = event.offsetY - JpcCanvasOutput.offsetY,
  120. canvas = event.originalTarget;
  121. if (x < 300) {
  122. zTreeOprObj.showPage(-1, canvas);
  123. } else if ((canvas.width - x) < 300) {
  124. zTreeOprObj.showPage(1, canvas);
  125. }
  126. }
  127. };
  128. let rptHeaderObj = {
  129. getCurrentPageSize: function() {
  130. let rst = "A4";
  131. //
  132. return rst;
  133. },
  134. getCurrentOrientation: function() {
  135. let rst = "横向";
  136. //
  137. return rst;
  138. },
  139. getExcel: function() {
  140. //目前只支持当前打开报表
  141. }
  142. };