123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382 |
- 'use strict'
- let rptTplObj = {
- iniPage: function() {
- let me = this
- zTreeOprObj.getReportTemplateTree(RT.GrpType.CONSTRUCT);
- preview_util.drawBorder($("#tplCanvas")[0]);
- }
- }
- let zTreeOprObj = {
- treeObj: null,
- bandTreeObj: 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 = "<span class='button add' id='addBtn_" + treeNode.tId + "' title='新增子节点' onfocus='this.blur();'></span>";
- 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);
- },
- onClick: function(event,treeId,treeNode) {
- let me = zTreeOprObj;
- me.currentNode = treeNode;
- 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.refreshTplView(me.currentNode.rptTpl);
- }, null, null
- );
- } else {
- me.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;
- },
- refreshTplView: function (rptTpl) {
- let me = zTreeOprObj;
- 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;
- }
- $("#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. 模板布局
- let bandList = rptTpl[JV.NODE_BAND_COLLECTION];
- me.buildTreeData(bandList);
- me.bandTreeObj = $.fn.zTree.init($("#band_tree_reversed"), bandSetting, bandList);
- me.bandTreeObj.expandAll(true);
- //3. 指标映射
- //4. 指标摆放
- //5. 计算式
- }
- },
- buildTreeData: function(bandList){
- let rst = [], startIdx = 1;
- //zTreeHelper.createTree(result, setting, "rptTplTree", me);
- let private_setBandId = function (parentBand) {
- if (parentBand.band_s) {
- for (let band of parentBand.band_s) {
- band.ID = startIdx;
- band.ParentID = parentBand.ID;
- startIdx++;
- private_setBandId(band);
- }
- }
- }
- for (let band of bandList) {
- band.ID = startIdx;
- band.ParentID = -1;
- startIdx++;
- private_setBandId(band);
- }
- return rst;
- },
- previewRptTpl: function (rptTpl) {
- let me = zTreeOprObj;
- if (rptTpl) {
- //
- }
- }
- }
|