'use strict' let fieldMapTreeOprObj = { treeObj : null, currentNode: null, dataTypeDef: ['string', 'int32', 'int64', 'double', 'currency', 'date', 'image'], iniTree: function(rptTpl) { var me = this; let fieldMapList = me.buildTreeData(rptTpl); me.treeObj = $.fn.zTree.init($("#field_map_tree_reversed"), fieldMapSetting, fieldMapList); me.treeObj.expandAll(true); }, buildTreeData: function (rptTpl) { let rst = []; let private_setSubFields = function (parent, fieldList) { for (let field of fieldList) { parent.items.push(field); } } if (rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DISCRETE_FIELDS]) { rst.push({Name: JV.NODE_DISCRETE_FIELDS, items: [], isParent: true}); private_setSubFields(rst[rst.length - 1], rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DISCRETE_FIELDS]) } if (rptTpl[JV.NODE_FIELD_MAP][JV.NODE_MASTER_FIELDS]) { rst.push({Name: JV.NODE_MASTER_FIELDS, items: [], isParent: true}); private_setSubFields(rst[rst.length - 1], rptTpl[JV.NODE_FIELD_MAP][JV.NODE_MASTER_FIELDS]) } if (rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DETAIL_FIELDS]) { rst.push({Name: JV.NODE_DETAIL_FIELDS, items: [], isParent: true}); private_setSubFields(rst[rst.length - 1], rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DETAIL_FIELDS]) } return rst; }, onClick: function (event,treeId,treeNode) { let me = fieldMapTreeOprObj; me.currentNode = treeNode; //then refresh the field map tab properties //数据类型 switch (me.dataTypeDef.indexOf(treeNode[JV.PROP_DATA_TYPE])) { case 0: $("#fieldDataTypeSelection").get(0).selectedIndex = 0; break; case 1: case 2: case 3: case 4: $("#fieldDataTypeSelection").get(0).selectedIndex = 1; break; case 5: $("#fieldDataTypeSelection").get(0).selectedIndex = 2; break; case 6: $("#fieldDataTypeSelection").get(0).selectedIndex = 3; break; default: $("#fieldDataTypeSelection").get(0).selectedIndex = 0; break; } //映射指标 }, onBeforeRemove: function(treeId, treeNode){ if (treeNode.level === 0) { return false; } return true; }, beforeRename: function(treeId, treeNode, newName, isCancel) { if (isCancel) { return true; } if (treeNode.level === 0) { return false; } return true; }, onBeforeDrop: function(treeId, treeNodes, targetNode, moveType){ let rst = true; if (treeId === 'selectable_field_tree_reversed' || targetNode.level === 0 || moveType === 'inner') { rst = false; } else { // } return rst; }, onRemove: function () { // }, onRename: function () { // }, extractFieldMaps: function (rptTpl) { let me = this; for (let rootNode of me.treeObj.getNodes()) { rptTpl[JV.NODE_FIELD_MAP][rootNode.Name] = []; for (let mappingFieldNode of rootNode.items) { rptTpl[JV.NODE_FIELD_MAP][rootNode.Name].push(me.createMapFieldByNode(mappingFieldNode)); } } }, createMapFieldByNode: function (node) { let rst = {}; rst[JV.PROP_ID] = node[JV.PROP_ID]; rst[JV.PROP_NAME] = node[JV.PROP_NAME]; rst[JV.PROP_DATA_TYPE] = node[JV.PROP_DATA_TYPE]; rst.mapExpression = node.mapExpression; rst[JV.PROP_ID] = node[JV.PROP_ID]; return rst; } }; let selectableFiledTreeOprObj = { treeObj : null, currentNode: null, iniTree: function() { let me = this, params = {}; params.userId = userID; CommonAjax.postEx("report_tpl_api/getMappingFields", params, 20000, true, function(result){ let showRst = []; for (let item of result) { if (item.items.length > 0) { showRst.push(item); } } me.treeObj = $.fn.zTree.init($("#selectable_field_tree_reversed"), selectableFieldSetting, showRst); me.treeObj.expandAll(true); showRst = null; }, null, null ); }, onClick: function (event,treeId,treeNode) { let me = fieldMapTreeOprObj; me.currentNode = treeNode; }, onBeforeDrag: function (treeId, treeNodes) { let rst = true; for (let node of treeNodes) { if (node.level === 0) { rst = false; break; } } return rst; }, onBeforeDrop: function(treeId, treeNodes, targetNode, moveType){ let rst = true; if (treeId === 'field_map_tree_reversed') { if ( (targetNode.level === 0 && moveType !== 'inner') || (targetNode.level > 0 && moveType === 'inner')) { rst = false; } } else { rst = false; } return rst; }, addDiyDom: function (treeId, treeNode) { if (treeNode.level > 0) { let aObj = $("#" + treeNode.tId + "_a"); if ($("#diyBtn_"+treeNode.ID).length>0) return; let editStr = " (" + treeNode.DataType + ")"; aObj.append(editStr); let btn = $("#diyBtn_"+treeNode.ID); if (btn) btn.bind("click", function(){alert("diy Button for " + treeNode.name);}); } } }