'use strict' let rptTplObj = { iniPage: function() { zTreeOprObj.getReportTemplateTree(RT.GrpType.CONSTRUCT); bandTreeOprObj.getReportTplCfg(); selectableFiledTreeOprObj.iniTree(); preview_util.drawBorder($("#tplCanvas")[0]); } } let zTreeOprObj = { treeObj: null, currentNode: null, getReportTemplateTree: function(grpType) { let me = zTreeOprObj, params = {}; params.grpType = grpType; params.userId = userID; params.tplType = RT.TplType.ALL; CommonAjax.postEx("report_tpl_api/getRptTplTree", params, 20000, true, function(result){ zTreeHelper.createTree(result, setting, "rptTplTree", me); me.refreshNodes(); }, null, null ); }, refreshNodes: function() { let me = this; let private_setupIsParent = function(node){ if (node.nodeType == RT.NodeType.NODE) { node.isParent = true; } else { node.isParent = false; } 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(); }, moveUpNode: function() { let me = this, nodes = []; if (me.currentNode && me.currentNode.getPreNode()) { let preNode = me.currentNode.getPreNode(), pre_preNode = preNode.getPreNode(); me.treeObj.moveNode(preNode, me.currentNode, "prev", true); //then update the db if (pre_preNode) { pre_preNode.NextSiblingID = me.currentNode.ID; nodes.push(me.createNodeFromZTreeNode(pre_preNode)); } preNode.NextSiblingID = me.currentNode.NextSiblingID; me.currentNode.NextSiblingID = preNode.ID; nodes.push(me.createNodeFromZTreeNode(me.currentNode)); nodes.push(me.createNodeFromZTreeNode(preNode)); me.updateNodes(nodes); } }, moveDownNode: function() { let me = this, nodes = []; if (me.currentNode && me.currentNode.getNextNode()) { let preNode = me.currentNode.getPreNode(), nextNode = me.currentNode.getNextNode(); me.treeObj.moveNode(nextNode, me.currentNode, "next", true); //then update the db if (preNode) { preNode.NextSiblingID = nextNode.ID; nodes.push(me.createNodeFromZTreeNode(preNode)); } me.currentNode.NextSiblingID = nextNode.NextSiblingID; nextNode.NextSiblingID = me.currentNode.ID; nodes.push(me.createNodeFromZTreeNode(me.currentNode)); nodes.push(me.createNodeFromZTreeNode(nextNode)); me.updateNodes(nodes); } }, addRootNode: function() { let me = this, rawNode = me.createIniRootNode(), lastNodeId = -1, lastNode = null; if (me.treeObj) { let rootNodes = me.treeObj.getNodes(); if (rootNodes.length > 0) { lastNodeId = rootNodes[rootNodes.length - 1].ID; lastNode = rootNodes[rootNodes.length - 1]; } me.addNewNode(rawNode, lastNodeId, function(rst){ let newNodes = [], isSilent = false; if (lastNode) { lastNode.NextSiblingID = rst.ID; } rawNode.ID = rst.ID; rawNode.isParent = true; rawNode.items = []; newNodes.push(rawNode); if (me.treeObj) { me.treeObj.addNodes(null, -1, newNodes, isSilent); } else { me.treeObj = $.fn.zTree.init($("#rptTplTree"), setting, newNodes); } }, null); } }, updateNodes: function(nodes){ if (nodes && nodes.length > 0) { let me = this; for (let i = 0; i < nodes.length; i++) { if (nodes[i].__v != null) node.__v = nodes[i].__v + 1 else nodes[i].__v = 0; } let params = {}; params.nodes = nodes; CommonAjax.postEx("report_tpl_api/updateRptTplNodes", params, 5000, true, null, null, null); } }, addTplNode: function (){ let me = this; if (me.currentNode && me.currentNode.nodeType === RT.NodeType.NODE) { let rawNode = me.createIniRootNode(), lastNodeId = -1, lastNode = null; rawNode.nodeType = RT.NodeType.TEMPLATE; rawNode.ParentID = me.currentNode.ID; rawNode.name = "新增报表模板"; if (me.treeObj) { let nodes = me.currentNode.items; if (nodes.length > 0) { lastNodeId = nodes[nodes.length - 1].ID; lastNode = nodes[nodes.length - 1]; } me.addNewNode(rawNode, lastNodeId, function(rst){ let newNodes = [], isSilent = false; if (lastNode) { lastNode.NextSiblingID = rst.ID; } rawNode.ID = rst.ID; rawNode.isParent = false; rawNode.items = []; newNodes.push(rawNode); if (me.treeObj) { me.treeObj.addNodes(me.currentNode, -1, newNodes, isSilent); } else { me.treeObj = $.fn.zTree.init($("#rptTplTree"), setting, newNodes); } }, null); } } }, addNewNode: function(rawNode, lastNodeId, callback, failCallback) { let params = {}; params.lastNodeId = lastNodeId; params.rawNodeData = rawNode; CommonAjax.postEx("report_tpl_api/createTplTreeNode", params, 5000, true, callback, failCallback, null); }, createIniRootNode: function() { let rst = { ID: -1, ParentID: -1, NextSiblingID: -1, grpType: RT.GrpType.CONSTRUCT, nodeType: RT.NodeType.NODE, tplType: RT.TplType.ALL, userId: userID, refId: -1, name: '新增节点' }; return rst; }, createNodeFromZTreeNode: function(treeNode) { let rst = {}; rst.ID = treeNode.ID; rst.ParentID = treeNode.ParentID; rst.NextSiblingID = treeNode.NextSiblingID; rst.grpType = treeNode.grpType; rst.nodeType = treeNode.nodeType; rst.tplType = treeNode.tplType; rst.userId = treeNode.userId; rst.refId = treeNode.refId; rst.name = treeNode.name; return rst; }, addHoverDom: function(treeId, treeNode) { let me = zTreeOprObj, sObj = $("#" + treeNode.tId + "_span"); if (treeNode.editNameFlag || $("#addBtn_"+treeNode.tId).length > 0 || treeNode.nodeType == RT.NodeType.TEMPLATE) return; let addStr = ""; sObj.after(addStr); let btn = $("#addBtn_"+treeNode.tId); if (btn) btn.bind("click", function(){ let rawNode = me.createIniRootNode(), lastNodeId = -1, insertIdx = -1, lastNode = null; rawNode.ParentID = treeNode.ID; rawNode.name = "新增子节点"; if (treeNode.items.length > 0) { for (let i = treeNode.items.length - 1; i >= 0; i--) { if (treeNode.items[i].nodeType == RT.NodeType.NODE) { lastNodeId = treeNode.items[i].ID; lastNode = treeNode.items[i]; rawNode.NextSiblingID = treeNode.items[i].NextSiblingID; insertIdx = i + 1; break; } else { rawNode.NextSiblingID = treeNode.items[i].ID; insertIdx = i; } } } zTreeOprObj.addNewNode(rawNode, lastNodeId, function(rst){ let newNodes = [], isSilent = false; if (lastNode) { lastNode.NextSiblingID = rst.ID; } rawNode.ID = rst.ID; rawNode.NextSiblingID = rst.NextSiblingID; rawNode.isParent = true; rawNode.items = []; newNodes.push(rawNode); treeNode.isParent = true; if (me.treeObj) { me.treeObj.addNodes(treeNode, insertIdx, newNodes, isSilent); } else { me.treeObj = $.fn.zTree.init($("#rptTplTree"), setting, newNodes); } }, null); }); }, removeHoverDom: function(treeId, treeNode) { $("#addBtn_"+treeNode.tId).unbind().remove(); }, onBeforeRemove: function(treeId, treeNode){ let nodeIds = [], preNode = treeNode.getPreNode(), preNodeId = -1, canRemove = false, params = {}; if (preNode) { preNodeId = preNode.ID; } let private_fetchAllSubItems = function(pItem){ nodeIds.push(pItem.ID); if (pItem.items && pItem.items.length > 0) { for (let i = 0; i < pItem.items.length; i++) { private_fetchAllSubItems(pItem.items[i]); } } }; nodeIds.push(treeNode.ID); for (let i = 0; i < treeNode.items.length; i++) { private_fetchAllSubItems(treeNode.items[i]); } params.nodeIds = nodeIds; params.preNodeId = preNodeId; params.preNodeNextId = treeNode.NextSiblingID; CommonAjax.postEx("report_tpl_api/deleteRptTplNodes", params, 5000, false, function(data){ canRemove = true; }, null, null); return canRemove; }, onRemove: function(e, treeId, treeNode){ let me = zTreeOprObj, pNode = me.treeObj.getNodeByTId(treeNode.parentTId); if (pNode && pNode.items && pNode.items.length == 0) { if (pNode.nodeType == RT.NodeType.NODE) pNode.isParent = true else pNode.isParent = false; me.treeObj.refresh(); } }, beforeRename: function(treeId, treeNode, newName, isCancel) { if (newName.length == 0) { return false; } return true; }, onRename : function(e, treeId, treeNode, isCancel) { let me = zTreeOprObj, nodes = []; nodes.push(me.createNodeFromZTreeNode(treeNode)); me.updateNodes(nodes); if (treeNode.nodeType == RT.NodeType.TEMPLATE && treeNode.refId >= 0) { if (treeNode.rptTpl != null) { treeNode.rptTpl[JV.NODE_MAIN_INFO][JV.NODE_MAIN_INFO_RPT_NAME] = treeNode.name; $("#rptTplName")[0].value = treeNode.rptTpl[JV.NODE_MAIN_INFO][JV.NODE_MAIN_INFO_RPT_NAME]; } else { me.onClick(e, treeId, treeNode); } } }, onClick: function(event,treeId,treeNode) { let me = zTreeOprObj; me.currentNode = treeNode; bandTreeOprObj.currentNode = null; if (treeNode.nodeType == RT.NodeType.NODE) { $("#rpt_tpl_display_label")[0].innerText = "..."; } else if (treeNode.nodeType == RT.NodeType.TEMPLATE) { let showText = treeNode.name, parentNode = treeNode.getParentNode(); while (parentNode !== null) { showText = parentNode.name + ' > ' + showText; parentNode = parentNode.getParentNode(); } $("#rpt_tpl_display_label")[0].innerText = showText; if (treeNode.refId < 0) { //创建新报表模板 $('#rptTypeSelectionModal').modal('show'); } else { //显示报表模板 me.chkAndRreshRefTpl(); } } }, createNewTpl: function () { let me = zTreeOprObj, params = {}; if (me.currentNode && me.currentNode.nodeType == RT.NodeType.TEMPLATE) { params.treeNodeId = me.currentNode.ID; let rptTypeId = common_rpt_type_ids.flow; if ($("#crossTypeOpt")[0].checked) rptTypeId = common_rpt_type_ids.cross; if ($("#billTypeOpt")[0].checked) rptTypeId = common_rpt_type_ids.bill; params.rptDftTplId = rptTypeId CommonAjax.postEx("report_tpl_api/createDftRptTpl", params, 20000, true, function(result){ me.currentNode.rptTpl = result; }, null, null ); } }, chkAndRreshRefTpl: function() { let me = zTreeOprObj, params = {}; if (me.currentNode && me.currentNode.nodeType == RT.NodeType.TEMPLATE && me.currentNode.refId > 0) { if (!(me.currentNode.rptTpl)) { params.rptTplId = me.currentNode.refId; CommonAjax.postEx("report_tpl_api/getRefRptTpl", params, 20000, true, function(result){ me.currentNode.rptTpl = result; me.currentNode.rptTpl[JV.NODE_MAIN_INFO][JV.NODE_MAIN_INFO_RPT_NAME] = me.currentNode.name; tplHelper.refreshTplView(me.currentNode.rptTpl); }, null, null ); } else { me.currentNode.rptTpl[JV.NODE_MAIN_INFO][JV.NODE_MAIN_INFO_RPT_NAME] = me.currentNode.name; tplHelper.refreshTplView(me.currentNode.rptTpl); } } }, getRefTpl: function() { let me = zTreeOprObj, rst = null; if (me.currentNode && me.currentNode.nodeType == RT.NodeType.TEMPLATE && me.currentNode.refId > 0) { rst = me.currentNode.rptTpl } return rst; }, extractMainInfo: function (rptTpl) { //模板信息 rptTpl[JV.NODE_MAIN_INFO][JV.NODE_MAIN_INFO_RPT_NAME] = $("#rptTplName")[0].value; rptTpl[JV.NODE_MAIN_INFO][JV.NODE_PAGE_INFO][JV.PROP_PAGE_SIZE] = JV.PAGES_SIZE_STR[$("#rptTplPageSize")[0].selectedIndex]; if ($("#rptTplPageOrientation")[0].selectedIndex == 1) { rptTpl[JV.NODE_MAIN_INFO][JV.NODE_PAGE_INFO][JV.PROP_ORIENTATION] = JV.ORIENTATION_PORTRAIT; } else { rptTpl[JV.NODE_MAIN_INFO][JV.NODE_PAGE_INFO][JV.PROP_ORIENTATION] = JV.ORIENTATION_LANDSCAPE; } if (rptTpl[JV.NODE_FLOW_INFO]) { rptTpl[JV.NODE_FLOW_INFO][JV.PROP_MULTI_COLUMN] = parseInt($("#rptTplMultiCols")[0].value); } rptTpl[JV.NODE_MAIN_INFO][JV.NODE_MARGINS][JV.PROP_LEFT] = $("#rptTplMarginLeft")[0].value; rptTpl[JV.NODE_MAIN_INFO][JV.NODE_MARGINS][JV.PROP_RIGHT] = $("#rptTplMarginRight")[0].value; rptTpl[JV.NODE_MAIN_INFO][JV.NODE_MARGINS][JV.PROP_TOP] = $("#rptTplMarginTop")[0].value; rptTpl[JV.NODE_MAIN_INFO][JV.NODE_MARGINS][JV.PROP_BOTTOM] = $("#rptTplMarginBottom")[0].value; } };