123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274 |
- /**
- * 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.getCustomerCfg();
- zTreeOprObj.getReportTemplateTree();
- me.hasInitialized = true;
- let canvas = document.getElementById("rptCanvas");
- canvas.onclick = canvasOprObj.canvasOnClick;
- canvas.onmousemove = canvasOprObj.canvasOnMouseMove;
- }
- }
- }
- let zTreeOprObj = {
- treeObj: null,
- currentNode: null,
- currentRptPageRst: null,
- reportPageCfg: null,
- currentPage: 1,
- maxPages: 0,
- getReportTemplateTree: function() {
- let me = zTreeOprObj, params = {};
- 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
- );
- },
- getCustomerCfg: function() {
- let me = zTreeOprObj, params = {};
- params.engineerId = projectInfoObj.projectInfo.property.engineering;
- CommonAjax.postEx("report_tpl_api/getCustomizeCfg", params, 20000, true, function(result){
- if (result) {
- me.reportPageCfg = result;
- } else {
- me.reportPageCfg = null;
- }
- }, 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;
- if (treeNode.nodeType === TPL_TYPE_TEMPLATE && treeNode.refId > 0) {
- let params = {};
- let pageSize = rptControlObj.getCurrentPageSize();
- params.pageSize = pageSize;
- params.rpt_tpl_id = treeNode.refId;
- params.prj_id = projectInfoObj.projectInfo.ID;
- me.currentNode = treeNode;
- me.requestReport(params);
- }
- },
- changePageSize: function(dom) {
- let me = zTreeOprObj,
- targetDom = document.getElementById("btnRptPageSize");
- let tmpStr = targetDom.innerHTML.trim();
- targetDom.innerHTML = dom.innerHTML.trim();
- dom.innerHTML = tmpStr;
- me.changeCfg();
- },
- changeOrientation: function(dom) {
- let me = zTreeOprObj,
- targetDom = document.getElementById("btnRptOrientation");
- let tmpStr = targetDom.innerHTML.trim();
- targetDom.innerHTML = dom.innerHTML.trim();
- dom.innerHTML = tmpStr;
- me.changeCfg();
- },
- changeCfg: function() {
- let me = zTreeOprObj;
- let params = {};
- params.pageSize = rptControlObj.getCurrentPageSize();
- params.orientation = rptControlObj.getCurrentOrientation();
- params.rpt_tpl_id = me.currentNode.refId;
- params.prj_id = projectInfoObj.projectInfo.ID;
- params.custCfg = me.reportPageCfg;
- me.requestReport(params);
- },
- resetAfter: function (pageRst) {
- let size = pageRst[JV.NODE_PAGE_INFO][JV.NODE_PAGE_SIZE].slice(0);
- if (size[0] > size[1]) {
- document.getElementById("btnRptOrientation").innerHTML = "横向";
- document.getElementById("hrefRptOrientation").innerHTML = "纵向";
- } else {
- document.getElementById("btnRptOrientation").innerHTML = "纵向";
- document.getElementById("hrefRptOrientation").innerHTML = "横向";
- }
- },
- requestReport: function (params) {
- let me = zTreeOprObj;
- CommonAjax.postEx("report_api/getReport", params, 5000, true,
- function(result){
- let pageRst = result;
- if (pageRst) {
- me.resetAfter(pageRst);
- let canvas = document.getElementById("rptCanvas");
- me.currentRptPageRst = pageRst;
- me.maxPages = pageRst.items.length;
- me.currentPage = 1;
- me.displayPageValue();
- 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);
- }
- me.displayPageValue();
- },
- displayPageValue: function() {
- let me = zTreeOprObj;
- $("#rpt_page_num").get(0).value = me.currentPage + "/" + me.maxPages;
- }
- };
- let canvasOprObj = {
- canvasOnMouseMove: function (event) {
- if (zTreeOprObj.currentNode) {
- let x = event.offsetX - JpcCanvasOutput.offsetX, canvas = event.originalTarget;
- if (!(canvas)) canvas = event.target; //chrome浏览器不认event.originalTarget,只认event.target或event.currentTarget
- 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 = "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 = "url(/web/building_saas/img/NextPageSimple.cur), auto";
- } else {
- canvas.style.cursor = "";
- }
- }
- },
- canvasOnClick: function(event){
- if (zTreeOprObj.currentNode) {
- let x = event.offsetX - JpcCanvasOutput.offsetX, canvas = event.originalTarget;
- if (!(canvas)) canvas = event.target; //chrome浏览器不认event.originalTarget,只认event.target或event.currentTarget
- 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";
- let rst = document.getElementById("btnRptPageSize").innerHTML.trim();
- //btnRptPageSize
- return rst;
- },
- getCurrentOrientation: function() {
- // let rst = "横向";
- let rst = document.getElementById("btnRptOrientation").innerHTML.trim();
- 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() + "/" + me.getCurrentOrientation() + "/" + 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() + "/" + me.getCurrentOrientation() + "/" + orgRptName;
- window.location = url;//这里不能使用get方法跳转,否则下载不成功
- }
- },
- prePage: function(dom) {
- let canvas = document.getElementById("rptCanvas");
- zTreeOprObj.showPage(zTreeOprObj.currentPage - 1, canvas);
- },
- nextPage: function(dom) {
- let canvas = document.getElementById("rptCanvas");
- zTreeOprObj.showPage(zTreeOprObj.currentPage + 1, canvas);
- }
- };
|