/** * Created by Tony on 2017/6/7. * 报表模板helper * 管理:编办、工程类型等 */ let tplHelper = { createDftRptTpl: function (treeNode) { var me = this, rst = { GROUP_KEY: "CONSTRUCT", ID_KEY: null }; rst[JV.NODE_MAIN_INFO] = me.createDftRptMainInfo(treeNode.name); rst[JV.NODE_FIELD_MAP] = {}; rst[JV.NODE_BAND_COLLECTION] = {}; rst[JV.NODE_CROSS_INFO] = {}; rst[JV.NODE_DISCRETE_PARAMS] = {}; rst[JV.NODE_FORMULAS] = {}; rst[JV.NODE_FLOW_INFO] = {}; rst[JV.NODE_NO_MAPPING_FIELDS] = {}; return rst; }, createDftRptMainInfo: function (rptName) { let rst = {}; rst[JV.NODE_MAIN_INFO_RPT_NAME] = rptName; rst[JV.PROP_UNITS] = JV.MEASUREMENT.CM[0]; rst[JV.NODE_PAGE_INFO] = {}; rst[JV.NODE_PAGE_INFO][JV.PROP_PAGE_SIZE] = "A4"; rst[JV.NODE_PAGE_INFO][JV.PROP_ORIENTATION] = "LANDSCAPE"; rst[JV.NODE_MARGINS] = {}; rst[JV.NODE_MARGINS][JV.PROP_LEFT] = 0.8; rst[JV.NODE_MARGINS][JV.PROP_RIGHT] = 0.8; rst[JV.NODE_MARGINS][JV.PROP_TOP] = 0.8; rst[JV.NODE_MARGINS][JV.PROP_BOTTOM] = 0.8; return rst; }, getJsTxt: function (destDom) { let me = this; if (destDom && me.reCombineRptTpl()) { let rptTpl = zTreeOprObj.currentNode.rptTpl; destDom.value = JSON.stringify(rptTpl, null, 4); } }, setFromJsTxt: function (srcDom) { if ( srcDom && zTreeOprObj.currentNode && zTreeOprObj.currentNode.refId > 0 && confirm("导入将覆盖原模板所有信息,请确认!") ) { try { // let rptTpl = JSON.parse(srcDom.value); let rptTpl = JSON.parse(stringUtil.replaceAll(srcDom.value, "\t", " ")); // JSON.format() delete rptTpl["__v"]; delete rptTpl["_id"]; rptTpl["ID"] = zTreeOprObj.currentNode.rptTpl["ID"]; //以下从zTreeOprObj.chkAndRreshRefTpl中参考 zTreeOprObj.currentNode.rptTpl = rptTpl; zTreeOprObj.currentNode.rptTpl[JV.NODE_MAIN_INFO][ JV.NODE_MAIN_INFO_RPT_NAME ] = zTreeOprObj.currentNode.name; if (zTreeOprObj.currentNode.rptTpl["GROUP_KEY"]) { let grp_keys = zTreeOprObj.currentNode.rptTpl["GROUP_KEY"].split("_"); if (grp_keys.length > 0) { grp_keys[1] = zTreeOprObj.currentNode.name; } zTreeOprObj.currentNode.rptTpl["GROUP_KEY"] = grp_keys.join("_"); } tplHelper.refreshTplView(zTreeOprObj.currentNode.rptTpl); displayMessage("导入成功!", "green", 1000, "id_after_js_load_lbl"); } catch (ex) { console.log(ex); // alert("导入失败!请仔细检查JS对象的正确性"); displayMessage( "导入失败!请仔细检查JS对象的正确性!", "red", 3000, "id_after_js_load_lbl" ); } } }, refreshTplView: function (rptTpl) { if (rptTpl) { //1. 模板信息 $("#rptTplName")[0].value = rptTpl[JV.NODE_MAIN_INFO][JV.NODE_MAIN_INFO_RPT_NAME]; $("#rptTplPageSize")[0].selectedIndex = JV.PAGES_SIZE_STR.indexOf( rptTpl[JV.NODE_MAIN_INFO][JV.NODE_PAGE_INFO][JV.PROP_PAGE_SIZE] ); if ( rptTpl[JV.NODE_MAIN_INFO][JV.NODE_PAGE_INFO][JV.PROP_ORIENTATION] === JV.ORIENTATION_PORTRAIT || rptTpl[JV.NODE_MAIN_INFO][JV.NODE_PAGE_INFO][JV.PROP_ORIENTATION] === JV.ORIENTATION_PORTRAIT_CHN ) { $("#rptTplPageOrientation")[0].selectedIndex = 1; } else { $("#rptTplPageOrientation")[0].selectedIndex = 0; } if ( rptTpl[JV.NODE_MAIN_INFO][JV.NODE_PAGE_INFO][ JV.PROP_CROSS_DISPLAY_ORDER ] === JV.PAGE_ORIENTATION_H_FIRST ) { $("#element_cross_display_seq")[0].selectedIndex = 1; } else { $("#element_cross_display_seq")[0].selectedIndex = 0; } if (rptTpl[JV.NODE_FLOW_INFO]) { $("#multiColCnt")[0].style.display = ""; $("#flow_content_height_div")[0].style.display = ""; $("#cross_row_height_div")[0].style.display = "none"; $("#element_content_height").get(0).removeAttribute("disabled"); $("#element_content_width").get(0).disabled = "disabled"; $("#rptTplMultiCols")[0].value = rptTpl[JV.NODE_FLOW_INFO][JV.PROP_MULTI_COLUMN]; $("#rptTplEraseBlankRows").get(0).checked = !!rptTpl[JV.NODE_FLOW_INFO][JV.PROP_ERASE_BLANK_ROWS]; $("#element_cross_display_seq").get(0).disabled = "disabled"; } else if (rptTpl[JV.NODE_CROSS_INFO]) { $("#flow_content_height_div")[0].style.display = "none"; $("#cross_row_height_div")[0].style.display = ""; $("#multiColCnt")[0].style.display = "none"; $("#element_content_width").get(0).removeAttribute("disabled"); $("#element_content_height").get(0).disabled = "disabled"; $("#element_cross_display_seq").get(0).removeAttribute("disabled"); } else { $("#multiColCnt")[0].style.display = "none"; $("#element_cross_display_seq").get(0).disabled = "disabled"; } // $("#rptTplMarginLeft")[0].value = rptTpl[JV.NODE_MAIN_INFO][JV.NODE_MARGINS][JV.PROP_LEFT]; // $("#rptTplMarginRight")[0].value = rptTpl[JV.NODE_MAIN_INFO][JV.NODE_MARGINS][JV.PROP_RIGHT]; // $("#rptTplMarginTop")[0].value = rptTpl[JV.NODE_MAIN_INFO][JV.NODE_MARGINS][JV.PROP_TOP]; // $("#rptTplMarginBottom")[0].value = rptTpl[JV.NODE_MAIN_INFO][JV.NODE_MARGINS][JV.PROP_BOTTOM]; //2. 模板布局 bandTreeOprObj.iniTree(rptTpl); //3. 指标映射 fieldMapTreeOprObj.iniTree(rptTpl); //4. 指标摆放 dataInfoMapTreeOprObj.iniTree(rptTpl); discreteFieldParamTreeOprObj.iniTree(rptTpl); dataInfoMapTreeOprObj.iniDataMap(); //5. 数据预处理 preHandleObj.iniTree(rptTpl); preHandleObj.hide_all_dom(); //6. 计算式 calculationTreeOprObj.iniTree(rptTpl); //7. 刷白js对象text区域 document.getElementById("tplScriptTextContent").value = ""; //9. 刷白预览区域 let canvas = $("#tplCanvas")[0]; JpcCanvasOutput.cleanCanvas(canvas); preview_util.drawBorder(canvas); // JpcCanvasOutput.drawBorderLine(canvas); } }, saveRptTpl: function (directSave) { let me = this, params = null; if (directSave || me.reCombineRptTpl()) { displayMessage("正在保存...", "yellow", 1000); let rptTpl = zTreeOprObj.currentNode.rptTpl; params = {}; params.rptTpl = JSON.stringify(rptTpl); debugger; CommonAjax.postEx( "report_tpl_api/updateRptTpl", params, 20000, true, function (result) { if (result) { displayMessage("保存成功!", "green", 3000); } else { displayMessage("保存失败!", "red", 3000); } }, null, null ); } }, saveDirectFromJs: function (srcDom) { if (confirm("将覆盖原模板所有信息并保存,请确认!")) { let me = this; try { //1. 覆盖原模板信息 let rptTpl = JSON.parse(stringUtil.replaceAll(srcDom.value, "\t", " ")); // JSON.format() delete rptTpl["__v"]; delete rptTpl["_id"]; rptTpl["ID"] = zTreeOprObj.currentNode.rptTpl["ID"]; //以下从zTreeOprObj.chkAndRreshRefTpl中参考 zTreeOprObj.currentNode.rptTpl = rptTpl; zTreeOprObj.currentNode.rptTpl[JV.NODE_MAIN_INFO][ JV.NODE_MAIN_INFO_RPT_NAME ] = zTreeOprObj.currentNode.name; if (zTreeOprObj.currentNode.rptTpl["GROUP_KEY"]) { let grp_keys = zTreeOprObj.currentNode.rptTpl["GROUP_KEY"].split("_"); if (grp_keys.length > 0) { grp_keys[1] = zTreeOprObj.currentNode.name; } zTreeOprObj.currentNode.rptTpl["GROUP_KEY"] = grp_keys.join("_"); } tplHelper.refreshTplView(zTreeOprObj.currentNode.rptTpl); displayMessage("导入成功!", "green", 3000, "id_after_js_load_lbl"); //2. 直接保存 me.saveRptTpl(true); } catch (ex) { console.log(ex); displayMessage( "导入失败!请仔细检查JS对象的正确性!", "red", 3000, "id_after_js_load_lbl" ); } } }, reCombineRptTpl: function () { let rst = true; if ( zTreeOprObj.currentNode && zTreeOprObj.currentNode.nodeType === RT.NodeType.TEMPLATE && zTreeOprObj.currentNode.rptTpl !== null ) { let rptTpl = zTreeOprObj.currentNode.rptTpl; //1. 模板信息 zTreeOprObj.extractMainInfo(rptTpl); //2. 模板布局 bandTreeOprObj.extractBands(rptTpl); //3. 指标映射 fieldMapTreeOprObj.extractFieldMaps(rptTpl); //4. 指标摆放 dataInfoMapTreeOprObj.extractTabFields(rptTpl); dataInfoMapTreeOprObj.extractDiscreteFieldParam(rptTpl); discreteFieldParamTreeOprObj.extractFieldMaps(rptTpl); //5. 指标预处理 preHandleObj.extractTabFields(rptTpl); //6. 计算式 calculationTreeOprObj.extractCalculation(rptTpl); } else { rst = false; } return rst; }, };