|
@@ -25,10 +25,10 @@ var pageOprObj = {
|
|
repositoryGljObj = {
|
|
repositoryGljObj = {
|
|
treeObj : null,
|
|
treeObj : null,
|
|
workBook: null,
|
|
workBook: null,
|
|
- gljAllTypeId: -1,
|
|
|
|
gljCurTypeId: -1,
|
|
gljCurTypeId: -1,
|
|
currentRepositoryId: -1,
|
|
currentRepositoryId: -1,
|
|
currentCache: null,
|
|
currentCache: null,
|
|
|
|
+ parentNodeIds: {},
|
|
gljList: [],
|
|
gljList: [],
|
|
setting: {
|
|
setting: {
|
|
header:[
|
|
header:[
|
|
@@ -58,16 +58,9 @@ repositoryGljObj = {
|
|
timeout:20000,
|
|
timeout:20000,
|
|
success:function(result,textStatus,status){
|
|
success:function(result,textStatus,status){
|
|
if(status.status == 200) {
|
|
if(status.status == 200) {
|
|
- me.createTree(result.data);
|
|
|
|
- //me.gljAllTypeId
|
|
|
|
|
|
+ zTreeHelper.createTree(result.data, gljSetting, "repositoryTree", me);
|
|
if (result.data && result.data.length > 0) {
|
|
if (result.data && result.data.length > 0) {
|
|
- for (var i = 0; i < result.data.length; i++) {
|
|
|
|
- if (result.data[i].Name === "全部") {
|
|
|
|
- me.gljAllTypeId = result.data[i].ID;
|
|
|
|
- me.gljCurTypeId = me.gljAllTypeId;
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ me.gljCurTypeId = result.data[0].ID;
|
|
if (callback) {
|
|
if (callback) {
|
|
var repId = -1;
|
|
var repId = -1;
|
|
repId = result.data[0].repositoryId;
|
|
repId = result.data[0].repositoryId;
|
|
@@ -81,11 +74,6 @@ repositoryGljObj = {
|
|
}
|
|
}
|
|
})
|
|
})
|
|
},
|
|
},
|
|
- createTree : function(sourceData){
|
|
|
|
- var me = repositoryGljObj, treeArr = tree_Data_Helper.buildTreeNodeDirectly(sourceData);
|
|
|
|
- me.treeObj = $.fn.zTree.init($("#repositoryTree"), setting, treeArr);
|
|
|
|
- me.treeObj.expandAll(true);
|
|
|
|
- },
|
|
|
|
getGljItems: function(repId) {
|
|
getGljItems: function(repId) {
|
|
var me = this;
|
|
var me = this;
|
|
me.currentRepositoryId = repId;
|
|
me.currentRepositoryId = repId;
|
|
@@ -112,8 +100,11 @@ repositoryGljObj = {
|
|
var me = repositoryGljObj;
|
|
var me = repositoryGljObj;
|
|
if (me.workBook) {
|
|
if (me.workBook) {
|
|
var cacheSection = [];
|
|
var cacheSection = [];
|
|
|
|
+ var pArr = me.parentNodeIds["_pNodeId_" + type];
|
|
for (var i = 0; i < data.length; i++) {
|
|
for (var i = 0; i < data.length; i++) {
|
|
- if (type == me.gljAllTypeId || type == data[i].gljType) {
|
|
|
|
|
|
+ if (pArr && pArr.indexOf(data[i].gljType) >= 0) {
|
|
|
|
+ cacheSection.push(data[i]);
|
|
|
|
+ } else if (type == data[i].gljType) {
|
|
cacheSection.push(data[i]);
|
|
cacheSection.push(data[i]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -190,7 +181,7 @@ repositoryGljObj = {
|
|
},
|
|
},
|
|
onClipboardPasting: function(sender, args) {
|
|
onClipboardPasting: function(sender, args) {
|
|
var me = repositoryGljObj;
|
|
var me = repositoryGljObj;
|
|
- if (args.cellRange.colCount != me.setting.header.length || me.gljCurTypeId < 0 || me.gljAllTypeId === me.gljCurTypeId) {
|
|
|
|
|
|
+ if (args.cellRange.colCount != me.setting.header.length || me.gljCurTypeId < 0 || me.parentNodeIds["_pNodeId_" + me.gljCurTypeId]) {
|
|
args.cancel = true;
|
|
args.cancel = true;
|
|
}
|
|
}
|
|
},
|
|
},
|
|
@@ -239,7 +230,7 @@ repositoryGljObj = {
|
|
}
|
|
}
|
|
},
|
|
},
|
|
error:function(err){
|
|
error:function(err){
|
|
- alert(err.responseJSON.error);
|
|
|
|
|
|
+ alert("保存失败");
|
|
}
|
|
}
|
|
})
|
|
})
|
|
},
|
|
},
|
|
@@ -296,12 +287,154 @@ repositoryGljObj = {
|
|
else if (a.code < b.code) rst = -1;
|
|
else if (a.code < b.code) rst = -1;
|
|
return rst;
|
|
return rst;
|
|
});
|
|
});
|
|
- },
|
|
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+var gljTypeTreeOprObj = {
|
|
onClick: function(event,treeId,treeNode) {
|
|
onClick: function(event,treeId,treeNode) {
|
|
var me = repositoryGljObj,
|
|
var me = repositoryGljObj,
|
|
gljTypeId = treeNode.ID;
|
|
gljTypeId = treeNode.ID;
|
|
me.gljCurTypeId = treeNode.ID;
|
|
me.gljCurTypeId = treeNode.ID;
|
|
me.currentCache = me.getCache();
|
|
me.currentCache = me.getCache();
|
|
me.showGljItems(me.gljList, gljTypeId);
|
|
me.showGljItems(me.gljList, gljTypeId);
|
|
|
|
+ if (me.parentNodeIds["_pNodeId_" + treeNode.ID]) {
|
|
|
|
+ sheetCommonObj.shieldAllCells(me.workBook.getSheet(0), me.setting);
|
|
|
|
+ } else {
|
|
|
|
+ sheetCommonObj.unShieldAllCells(me.workBook.getSheet(0));
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ beforeRename: function(treeId, treeNode, newName, isCancel) {
|
|
|
|
+ if (newName.length == 0) {
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ return true;
|
|
|
|
+ },
|
|
|
|
+ onRename : function(e, treeId, treeNode, isCancel) {
|
|
|
|
+ var nodes = [];
|
|
|
|
+ nodes.push(treeNode);
|
|
|
|
+ gljTypeTreeOprObj.updateNodes(nodes);
|
|
|
|
+ },
|
|
|
|
+ onBeforeRemove: function(treeId, treeNode){
|
|
|
|
+ if (treeNode.ParentID == -1 && treeNode.isFirstNode) {
|
|
|
|
+ alert("不允许删除全部!");
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ if (!confirm("您确定要删除此节点及所有子节点的数据?删除后不可恢复!")) {
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ var nodeIds = [], preNode = treeNode.getPreNode(), preNodeId = -1;
|
|
|
|
+ if (preNode) {
|
|
|
|
+ preNodeId = preNode.ID;
|
|
|
|
+ }
|
|
|
|
+ private_fetchAllSubItems = function(pItem){
|
|
|
|
+ nodeIds.push(pItem.ID);
|
|
|
|
+ if (pItem.items && pItem.items.length > 0) {
|
|
|
|
+ for (var i = 0; i < pItem.items.length; i++) {
|
|
|
|
+ private_fetchAllSubItems(pItem.items[i]);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ };
|
|
|
|
+ nodeIds.push(treeNode.ID);
|
|
|
|
+ for (var i = 0; i < treeNode.items.length; i++) {
|
|
|
|
+ private_fetchAllSubItems(treeNode.items[i]);
|
|
|
|
+ }
|
|
|
|
+ $.ajax({
|
|
|
|
+ type:"POST",
|
|
|
|
+ url:"api/deleteGljNodes",
|
|
|
|
+ data:{"nodes": JSON.stringify(nodeIds), "preNodeId": preNodeId, "preNodeNextId": treeNode.NextSiblingID},
|
|
|
|
+ dataType:"json",
|
|
|
|
+ cache:false,
|
|
|
|
+ timeout:5000,
|
|
|
|
+ success:function(result,textStatus,status){
|
|
|
|
+ var pNode = treeNode.getParentNode();
|
|
|
|
+ if (pNode && pNode.items && pNode.items.length == 1) {
|
|
|
|
+ pNode.isParent = false;
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ error:function(){
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ return true;
|
|
|
|
+ },
|
|
|
|
+ onRemove: function(e, treeId, treeNode){
|
|
|
|
+ var me = repositoryGljObj, pNode = me.treeObj.getNodeByTId(treeNode.parentTId);
|
|
|
|
+ if (pNode && pNode.items && pNode.items.length == 0) {
|
|
|
|
+ pNode.isParent = false;
|
|
|
|
+ me.treeObj.refresh();
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ updateNodes: function(nodes){
|
|
|
|
+ if (nodes && nodes.length > 0) {
|
|
|
|
+ var reqData = []
|
|
|
|
+ for (var i = 0; i < nodes.length; i++) {
|
|
|
|
+ var node = {};
|
|
|
|
+ node.repositoryId = nodes[i].repositoryId;
|
|
|
|
+ node.ID = nodes[i].ID;
|
|
|
|
+ node.ParentID = nodes[i].ParentID;
|
|
|
|
+ node.NextSiblingID = nodes[i].NextSiblingID;
|
|
|
|
+ node.Name = nodes[i].Name;
|
|
|
|
+ if (nodes[i].__v != null) node.__v = nodes[i].__v + 1
|
|
|
|
+ else node.__v = 0;
|
|
|
|
+ reqData.push(node);
|
|
|
|
+ }
|
|
|
|
+ $.ajax({
|
|
|
|
+ type:"POST",
|
|
|
|
+ url:"api/updateGljNodes",
|
|
|
|
+ data:{"nodes": JSON.stringify(reqData)},
|
|
|
|
+ dataType:"json",
|
|
|
|
+ cache:false,
|
|
|
|
+ timeout:5000,
|
|
|
|
+ success:function(result,textStatus,status){
|
|
|
|
+ console.log(status + ' : ' + result);
|
|
|
|
+ },
|
|
|
|
+ error:function(){
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ addNewNode : function(rawNode, lastNodeId, callback){
|
|
|
|
+ $.ajax({
|
|
|
|
+ type:"POST",
|
|
|
|
+ url:"api/createNewGljTypeNode",
|
|
|
|
+ data:{"repositoryId": repositoryGljObj.currentRepositoryId,"lastNodeId": lastNodeId, "rawNodeData": JSON.stringify(rawNode)},
|
|
|
|
+ dataType:"json",
|
|
|
|
+ cache:false,
|
|
|
|
+ timeout:1000,
|
|
|
|
+ success: function(result,textStatus,status){
|
|
|
|
+ callback(false, result);
|
|
|
|
+ },
|
|
|
|
+ error:function(err){
|
|
|
|
+ callback(err);
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ addHoverDom: function(treeId, treeNode) {
|
|
|
|
+ var me = repositoryGljObj, sObj = $("#" + treeNode.tId + "_span");
|
|
|
|
+ if (treeNode.editNameFlag || $("#addBtn_"+treeNode.tId).length>0) return;
|
|
|
|
+ var addStr = "<span class='button add' id='addBtn_" + treeNode.tId + "' title='新增子节点' onfocus='this.blur();'></span>";
|
|
|
|
+ sObj.after(addStr);
|
|
|
|
+ var btn = $("#addBtn_"+treeNode.tId);
|
|
|
|
+ if (btn) btn.bind("click", function(){
|
|
|
|
+ var rawNode = {ParentID: treeNode.ID, NextSiblingID: -1, Name: "新增子节点"}, lastNodeId = -1;
|
|
|
|
+ if (treeNode.items.length > 0) {
|
|
|
|
+ lastNodeId = treeNode.items[treeNode.items.length - 1].ID;
|
|
|
|
+ }
|
|
|
|
+ gljTypeTreeOprObj.addNewNode(rawNode, lastNodeId, function(err, rst){
|
|
|
|
+ if (!(err)) {
|
|
|
|
+ var newNodes = [], isSilent = false;
|
|
|
|
+ newNodes.push({ repositoryId: rst.data.repositoryId, ID: rst.data.ID, ParentID: rst.data.ParentID, NextSiblingID:-1, Name:"新增子节点",isParent:false, items:[]});
|
|
|
|
+ treeNode.isParent = true;
|
|
|
|
+ if (me.treeObj) {
|
|
|
|
+ me.treeObj.addNodes(treeNode, -1, newNodes, isSilent);
|
|
|
|
+ } else {
|
|
|
|
+ me.treeObj = $.fn.zTree.init($("#rationChapterTree"), gljSetting, newNodes);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ removeHoverDom: function(treeId, treeNode) {
|
|
|
|
+ $("#addBtn_"+treeNode.tId).unbind().remove();
|
|
}
|
|
}
|
|
|
|
+
|
|
}
|
|
}
|