ztree树调整,修改和删除节点的图标一直显示在节点后

This commit is contained in:
wangxin
2018-09-04 14:48:02 +08:00
parent a0d037be51
commit ed8dd56bc3

View File

@@ -17,22 +17,21 @@
addHoverDom: addHoverDom,
removeHoverDom: removeHoverDom,
selectedMulti:false,
dblClickExpand:false
dblClickExpand:false,
addDiyDom:addDiyDom
},
edit: {
enable: true,
showRemoveBtn: showRemoveBtn,
showRenameBtn: showRenameBtn,
removeTitle: "remove",
renameTitle: "rename",
showRemoveBtn: false,
showRenameBtn: false
},
check:{enable:"${checked}",chkboxType: { "Y" : "${checkedPS}", "N" : "${unCheckedPS}" },nocheckInherit:true},
async:{enable:(type==6),url:"${ctx}/sys/user/treeData",autoParam:["id=officeId"]},
data:{simpleData:{enable:true}},
callback:{
beforeEditName:beforeEditName,
beforeEditName:false,
beforeRename:beforeRename,
beforeRemove:beforeRemove,
beforeRemove:false,
//beforeClick: function(treeId, treeNode){
//if("${checked}" == "true"){
//tree.checkNode(treeNode, !node.checked, true, true);
@@ -59,7 +58,7 @@
//$("input[type='text']", top.mainFrame.document).focus();//</c:if>
},
onRename:onRename,
onRemove:onRemove
onRemove:false
}
};
function expandNodes(nodes) {
@@ -99,11 +98,25 @@
tree.updateNode(nodes[i],false);
}
}
/* if(nodes[i].user&&nodes[i].user=="${userId}"){
nodes[i].icon="${pageContext.request.contextPath}/static/global/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/5.png";
tree.updateNode(nodes[i],false);
} */
}
nodes=tree.getNodesByParam("level", 0);
for(var i=0; i<nodes.length; i++) {
tree.expandNode(nodes[i], true, false, false);
}
//更换用户自己添加的节点的图标
/* if("${enableAddBtn}"&&"${enableAddBtn}"=="true"){
nodes=tree.getNodesByParam("level", 2);
for(var i=0; i<nodes.length; i++) {
if(nodes[i].user&&nodes[i].user=="${userId}"){
nodes[i].icon="${pageContext.request.contextPath}/static/global/plugins/jquery-ztree/3.5.12/css/zTreeStyle/img/diy/5.png";
tree.updateNode(nodes[i],false);
}
}
} */
//异步加载子节点(加载用户)
var nodesOne = tree.getNodesByParam("isParent", true);
for(var j=0; j<nodesOne.length; j++) {
@@ -123,7 +136,7 @@
for(var i=0; i<ids.length; i++) {
var node = tree.getNodeByParam("id", (type==3?"u_":"")+ids[i]);
//如果节点id与排除id相同不被选中
if(node.id!=parseInt("${extId}")){
if(node&&node.id!=parseInt("${extId}")){
if("${checked}" == "true"){
try{tree.checkNode(node, true, true);}catch(e){}
tree.selectNode(node, false);
@@ -229,11 +242,11 @@
//$("#txt").toggle();
$("#key").focus();
}
function beforeEditName(treeId, treeNode) {
/* function beforeEditName(treeId, treeNode) {
var zTree = $.fn.zTree.getZTreeObj("tree");
zTree.selectNode(treeNode);
return confirm("<spring:message code='edit' />" + treeNode.name + "?");
}
} */
function beforeRename(treeId, treeNode, newName) {
var zTree = $.fn.zTree.getZTreeObj("tree");
if (newName.length == 0) {
@@ -244,9 +257,9 @@
}
return true;
}
function beforeRemove(treeId, treeNode, newName) {
/* function beforeRemove(treeId, treeNode) {
return confirm("<spring:message code='remove' /> " + treeNode.name + "?");
}
} */
//在重命名节点时,调用后台存储,将返回结果更新
function onRename(e, treeId, treeNode) {
loading("<spring:message code='loading' />...");
@@ -274,14 +287,20 @@
var zTree = $.fn.zTree.getZTreeObj("tree");
zTree.updateNode(treeNode);
closeTip();
},
complete:function(XMLHttpRequest,status){//发生异常,关闭遮罩层
if(status !="success"){
closeTip();
}
}
});
}
function onRemove(e, treeId, treeNode) {
/* function onRemove(e, treeId, treeNode) {
loading("<spring:message code='loading' />...");
if(typeof treeNode=="string"){
var zTree = $.fn.zTree.getZTreeObj("tree");
zTree.removeNode(treeNode,true);
zTree.removeNode(treeNode,false);
closeTip();
}else{
$.ajax({
type:'post',
@@ -296,16 +315,24 @@
success:function(data){
if(data){
var zTree = $.fn.zTree.getZTreeObj("tree");
zTree.removeNode(treeNode,false);
var pId=treeNode.parentTId;
try{zTree.removeNode(treeNode,false);}catch(e){}
var node = tree.getNodeByTId(pId);
if(node){
if(!node.isParent){//强制改变没有子节点的特定服务业务类型为父节点,让其改变样式
node.isParent=true;
tree.updateNode(node,false);
}
}
}
closeTip();
}
});
}
}
} */
//用户只能rename自己添加的节点
function showRenameBtn(treeId, treeNode) {
/* function showRenameBtn(treeId, treeNode) {
if(treeNode.isParent){
return false;
}
@@ -314,9 +341,9 @@
}else{
return false;
}
}
} */
//用户只能remove自己添加的节点
function showRemoveBtn(treeId, treeNode) {
/* function showRemoveBtn(treeId, treeNode) {
if(treeNode.isParent){
return false;
}
@@ -325,44 +352,123 @@
}else{
return false;
}
}
} */
//只有在配置了enableAddBtn的界面上才会显示添加按钮
function addHoverDom(treeId, treeNode) {
//开启节点增加
if("${enableAddBtn}"&&"${enableAddBtn}"=="true"){
//根节点不需要增加节点
if(treeNode.pId==null||(treeNode.businessType&&treeNode.businessType!=-1)){
return;
if(treeNode.isParent){
//根节点不需要增加节点
if(treeNode.pId==null||(treeNode.businessType&&treeNode.businessType!=-1)){
return;
}
var sObj = $("#" + treeNode.tId + "_span");
if (treeNode.editNameFlag || $("#addBtn_"+treeNode.id).length>0) return;
var title="<spring:message code='add' /> <spring:message code='${title}' />";
var addStr = "<span class='button add' id='addBtn_" + treeNode.id
+ "' title='"+title+"' onfocus='this.blur();'></span>";
sObj.after(addStr);
var btn = $("#addBtn_"+treeNode.id);
if (btn){
btn.bind("click", function(){
//区别人工添加在ID前加上manual
var id="manual"+new Date().getTime();
var zTree = $.fn.zTree.getZTreeObj("tree"); //addSelectedNode
zTree.addNodes(treeNode, {id:id, pId:treeNode.id,parentTId:treeNode.tId, name:"<spring:message code='new' /> <spring:message code='${title}' />",
businessType:treeNode.id.replace("businessType",""),user:"${userId}",serviceType:treeNode.serviceType,groupId:"",
serviceCode:""});
var node = zTree.getNodeByParam("id", id,treeNode);
if(node){
zTree.updateNode(node);
zTree.editName(node);
}
return;
});
}
}
var sObj = $("#" + treeNode.tId + "_span");
if (treeNode.editNameFlag || $("#addBtn_"+treeNode.id).length>0) return;
var title="<spring:message code='add' /> <spring:message code='${title}' />";
var addStr = "<span class='button add' id='addBtn_" + treeNode.id
+ "' title='"+title+"' onfocus='this.blur();'></span>";
sObj.after(addStr);
var btn = $("#addBtn_"+treeNode.id);
if (btn){
btn.bind("click", function(){
//区别人工添加在ID前加上manual
var id="manual"+new Date().getTime();
var zTree = $.fn.zTree.getZTreeObj("tree"); //addSelectedNode
zTree.addNodes(treeNode, {id:id, pId:treeNode.id, name:"<spring:message code='new' /> <spring:message code='${title}' />",
businessType:treeNode.id.replace("businessType",""),user:"${userId}",serviceType:treeNode.serviceType,groupId:"",
serviceCode:""});
var node = zTree.getNodeByParam("id", id,treeNode);
if(node){
zTree.updateNode(node);
zTree.editName(node);
}
return false;
});
}
}
};
function removeHoverDom(treeId, treeNode) {
$("#addBtn_"+treeNode.id).unbind().remove();
if("${enableAddBtn}"&&"${enableAddBtn}"=="true"){
if(treeNode.isParent){
$("#addBtn_"+treeNode.id).unbind().remove();
}
}
};
function addDiyDom(treeId, treeNode){
if (treeNode.parentNode) return;
if("${enableAddBtn}"&&"${enableAddBtn}"=="true"&&treeNode.user&&treeNode.user=="${userId}"){
if(treeNode.tId){
var aBtn=$("#"+treeNode.tId+"_a");
var editStr = "<span class='btn edit' id='" +treeNode.tId+ "_editBtn' title='"+"<spring:message code='edit'/>"+"' treenode_edit'><span class='button edit'></span></span>";
var removeStr = "<span class='btn remove' id='" +treeNode.tId+ "_removeBtn' title='"+"<spring:message code='remove'/>"+"' treenode_remove'><span class='button remove'></span></span>";
aBtn.append(editStr);
aBtn.append(removeStr);
//添加重命名按钮绑定事件
var editBtn = $("#"+treeNode.tId+"_editBtn");
if(editBtn){
editBtn.bind("click", function(){
var zTree = $.fn.zTree.getZTreeObj("tree");
//替代beforeEditName
if(confirm("<spring:message code='edit' />" + treeNode.name + "?")){
zTree.editName(treeNode);
}
return;
});
}
//添加移除按钮绑定事件
var removeBtn = $("#"+treeNode.tId+"_removeBtn");
if(removeBtn){
removeBtn.bind("click", function(){
var zTree = $.fn.zTree.getZTreeObj("tree");
var pId=treeNode.parentTId;
//替代beforeRemoveName
if(confirm("<spring:message code='remove' /> " + treeNode.name + "?")){
loading("<spring:message code='loading' />...");
if(typeof treeNode=="string"){
zTree.removeNode(treeNode,false);
var node = tree.getNodeByTId(pId);
if(node){
if(!node.isParent){//强制改变没有子节点的特定服务业务类型为父节点,让其改变样式
node.isParent=true;
tree.updateNode(node,false);
}
}
closeTip();
}else{
$.ajax({
type:'post',
async:true,
cache:false,
url:'${ctx}/specific/specificServiceCfg/ajaxRemoveApp',
data:{
"specServiceId":treeNode.id
},
//dataType:"json",
//contentType:"application/json; charset=utf-8",
success:function(data){
if(data){
zTree.removeNode(treeNode,false);
//修复父节点下没有子节点的时候其图标变成非文件夹
var node = tree.getNodeByTId(pId);
if(node){
if(!node.isParent){
node.isParent=true;
tree.updateNode(node,false);
}
}
}
closeTip();
}
});
}
}
return;
});
}
}
}
}
</script>
</head>
<body>