123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214 |
- /**
- * Created by Tony on 2017/6/26.
- */
- 'use strict'
- const PRE_PAGE_OFFSET = 150;
- const NEXT_PAGE_OFFSET = 160;
- const FIRST_PAGE_OFFSET = 50;
- const LAST_PAGE_OFFSET = 60;
- let rptTplObj = {
- hasInitialized: false,
- iniPage: function() {
- let me = this;
- if (!me.hasInitialized) {
- zTreeOprObj.getReportTemplateTree(userID);
- me.hasInitialized = true;
- let canvas = document.getElementById("rptCanvas");
- canvas.onclick = canvasOprObj.cavansOnClick;
- canvas.onmousemove = canvasOprObj.canvasOnMouseMove;
- }
- }
- }
- let zTreeOprObj = {
- treeObj: null,
- currentNode: null,
- currentRptPageRst: null,
- currentPage: 1,
- maxPages: 0,
- getReportTemplateTree: function(userId) {
- let me = zTreeOprObj, params = {};
- params.userId = [];
- params.userId.push(userId);
- params.userId.push(-100);
- // let allEngIds = [];
- // for (let item of engineeringList) {
- // allEngIds.push(item.value);
- // }
- // params.engineerId = allEngIds;
- params.engineerId = projectInfoObj.projectInfo.property.engineering;
- CommonAjax.postEx("report_tpl_api/getRptTplTree", params, 20000, true, function(result){
- zTreeHelper.createTreeDirectly(result, rpt_tpl_setting, "rptTplTree", me);
- me.refreshNodes();
- }, null, null
- );
- },
- refreshNodes: function() {
- let me = this;
- let private_setupIsParent = function(node){
- node.isParent = (node.nodeType === RT.NodeType.NODE || node.level === 0);
- if (node.items && node.items.length) {
- for (let i = 0; i < node.items.length; i++) {
- private_setupIsParent(node.items[i]);
- }
- }
- };
- let topNodes = me.treeObj.getNodes();
- for (let i = 0; i < topNodes.length; i++) {
- private_setupIsParent(topNodes[i]);
- }
- me.treeObj.refresh();
- },
- onCheck: function() {
- //count();
- //if (clearFlag) {
- // clearCheckedOldNodes();
- //}
- },
- onClick: function(event,treeId,treeNode) {
- let me = zTreeOprObj;
- let canvas = document.getElementById("rptCanvas");
- if (treeNode.nodeType === TPL_TYPE_TEMPLATE && treeNode.refId > 0) {
- let params = {};
- let pageSize = rptControlObj.getCurrentPageSize();
- params.user_id = userID;
- params.pageSize = pageSize;
- params.rpt_tpl_id = treeNode.refId;
- params.prj_id = projectInfoObj.projectInfo.ID;
- me.currentNode = treeNode;
- CommonAjax.postEx("report_api/getReport", params, 5000, true,
- function(result){
- let pageRst = result;
- if (pageRst) {
- me.currentRptPageRst = pageRst;
- me.maxPages = pageRst.items.length;
- me.currentPage = 1;
- let size = JpcCanvasOutput.getReportSizeInPixel(me.currentRptPageRst, getScreenDPI());
- canvas.width = size[0] + 20;
- if (size[1] > size[0]) {
- canvas.height = size[1] + 100;
- } else {
- canvas.height = size[1] + 50;
- }
- me.showPage(1, canvas);
- }
- }, null, null
- );
- }
- },
- showPage: function (pageNum, canvas) {
- let me = zTreeOprObj;
- if (pageNum >= 1 && pageNum <= me.maxPages) {
- me.currentPage = pageNum;
- JpcCanvasOutput.cleanCanvas(canvas);
- JpcCanvasOutput.drawPageBorder(me.currentRptPageRst, canvas, getScreenDPI());
- JpcCanvasOutput.drawToCanvas(me.currentRptPageRst, canvas, me.currentPage);
- }
- }
- };
- let canvasOprObj = {
- canvasOnMouseMove: function (event) {
- if (zTreeOprObj.currentNode) {
- let x = event.offsetX - JpcCanvasOutput.offsetX, canvas = event.originalTarget;
- if (x < FIRST_PAGE_OFFSET) {
- canvas.style.cursor = "url(/web/building_saas/img/FirstPageSimple.cur), auto";
- } else if (x < PRE_PAGE_OFFSET) {
- // canvas.style.cursor = "e-resize";
- canvas.style.cursor = "url(/web/building_saas/img/PreviousPageSimple.cur), auto";
- } else if ((canvas.width - x) < LAST_PAGE_OFFSET) {
- canvas.style.cursor = "url(/web/building_saas/img/LastPageSimple.cur), auto";
- } else if ((canvas.width - x) < NEXT_PAGE_OFFSET) {
- // canvas.style.cursor = "w-resize";
- canvas.style.cursor = "url(/web/building_saas/img/NextPageSimple.cur), auto";
- } else {
- canvas.style.cursor = "";
- }
- }
- },
- cavansOnClick: function(event){
- if (zTreeOprObj.currentNode) {
- let x = event.offsetX - JpcCanvasOutput.offsetX,
- //y = event.offsetY - JpcCanvasOutput.offsetY,
- canvas = event.originalTarget;
- if (x < FIRST_PAGE_OFFSET) {
- zTreeOprObj.showPage(1, canvas);
- } else if (x < PRE_PAGE_OFFSET) {
- zTreeOprObj.showPage(zTreeOprObj.currentPage - 1, canvas);
- } else if ((canvas.width - x) < LAST_PAGE_OFFSET) {
- zTreeOprObj.showPage(zTreeOprObj.maxPages, canvas);
- } else if ((canvas.width - x) < NEXT_PAGE_OFFSET) {
- zTreeOprObj.showPage(zTreeOprObj.currentPage + 1, canvas);
- }
- }
- }
- };
- let rptControlObj = {
- currentOutputType: "Excel",
- getCurrentPageSize: function() {
- let rst = "A4";
- //
- return rst;
- },
- getCurrentOrientation: function() {
- let rst = "横向";
- //
- return rst;
- },
- getCurrentReportOption: function() {
- //
- },
- changeType: function(newType) {
- let me = rptControlObj;
- let excelDom = document.getElementById("EXCEL_TYPE");
- let pdfDom = document.getElementById("PDF_TYPE");
- if (newType === "Excel") {
- excelDom.className = "btn btn-block btn-primary";
- pdfDom.className = "btn btn-block btn-outline-secondary";
- me.currentOutputType = newType;
- } else if (newType === "PDF") {
- excelDom.className = "btn btn-block btn-outline-secondary";
- pdfDom.className = "btn btn-block btn-primary";
- me.currentOutputType = newType;
- } else {
- //me.currentOutputType = newType;
- }
- },
- outputRpt: function() {
- let me = rptControlObj;
- if (me.currentOutputType === "Excel") {
- me.getExcel();
- } else if (me.currentOutputType === "PDF") {
- me.getPDF();
- } else {
- //other types if needed.
- }
- },
- getExcel: function() {
- let me = rptControlObj;
- //目前只支持当前打开报表
- //zTreeOprObj.currentRptPageRst
- if (zTreeOprObj.currentNode && zTreeOprObj.currentNode.refId) {
- let orgRptName = zTreeOprObj.currentNode.name;
- orgRptName = orgRptName.replace('【', '').replace('】','').replace('-','_').replace(' ','');
- let url = "/report_api/getExcel/" + projectInfoObj.projectInfo.ID + "/" + zTreeOprObj.currentNode.refId + "/" +
- me.getCurrentPageSize() + "/" + orgRptName + "/" + false + "/" + 'normal';
- window.location = url;//这里不能使用get方法跳转,否则下载不成功
- }
- },
- getPDF: function() {
- let me = rptControlObj;
- //目前只支持当前打开报表
- //zTreeOprObj.currentRptPageRst
- if (zTreeOprObj.currentNode && zTreeOprObj.currentNode.refId) {
- let orgRptName = zTreeOprObj.currentNode.name;
- orgRptName = orgRptName.replace('【', '').replace('】','').replace('-','_');
- let url = "/report_api/getPDF/" + projectInfoObj.projectInfo.ID + "/" + zTreeOprObj.currentNode.refId + "/" +
- me.getCurrentPageSize() + "/" + orgRptName;
- window.location = url;//这里不能使用get方法跳转,否则下载不成功
- }
- }
- };
|