You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

231 lines
7.7 KiB
JavaScript

var width = -10;
var height = -10;
var zNodes,rMenu;
var menu = {
setting: {
view:{
fontCss : {"font-family": "微软雅黑","color":"blue"}
},
data:{
simpleData: {
enable: true,
idKey: "id",
pIdKey: "parentId",
},
},
callback: { //回调函数
onRightClick: OnRightClick,
onClick: zTreeOnClick
}
},
loadMenuTree:function(){
$.ajax({
type: "get",
url:path+"/menuPower/getDictPowerTree",
dataType:"json",
success:function(data){
$.fn.zTree.init($("#treeDemo"), menu.setting, data);
zTree = $.fn.zTree.getZTreeObj("treeDemo");
var nodes = zTree.getNodes();
rMenu = $("#rMenu");
for (var i = 0; i < nodes.length; i++) { //设置节点展开
zTree.expandNode(nodes[i], true, false, true);
}
zNodes = data;
$('#loadingModal').modal('hide');
}
})
}
};
$(function(){
loadTree();
})
function loadTree(){
menu.loadMenuTree();
//初始化模糊搜索方法
fuzzySearch('treeDemo','#key',null,true,menu.setting,zNodes);
}
//tree右键点击事件
function OnRightClick(event, treeId, treeNode) {
if(treeNode != null){
if (!treeNode && event.target.tagName.toLowerCase() != "button" && $(event.target).parents("a").length == 0) {
zTree.cancelSelectedNode();
showRMenu("root", event.clientX-width, event.clientY);
} else if (treeNode && !treeNode.noR) {
zTree.selectNode(treeNode);
showRMenu("node", event.clientX-height, event.clientY,treeNode);
}
}
}
//显示右键菜单
function showRMenu(type, x, y,treeNode) {
$("#iframe").prop("src",path+"/dict/dictManagePage");
$("#rMenu ul").show();
var level = treeNode.level;
var selfId = treeNode.selfId;
var children = treeNode.children;
if (type=="root") {
$("#m_del").hide();
$("#m_add").hide();
$("#m_reset").hide();
} else {
$("#rMenu").css("height",67);
//删除,只能最后一层或是系统才能删除
if(level != 0 && selfId >= 0 && children == undefined){
$("#m_del").show();
}else{
$("#m_del").hide();
$("#rMenu").css("height",$("#rMenu").height()-17);
}
//添加,系统不能添加
if(level > 1 && selfId >= 0 && children == undefined) {
$("#m_add").hide();
$("#rMenu").css("height",$("#rMenu").height()-17);
}else{
$("#m_add").show();
}
//修改,只有医院或系统才能修改
if(level != 0 && selfId >= 0){
$("#m_reset").show();
}else{
$("#m_reset").hide();
$("#rMenu").css("height",$("#rMenu").height()-17);
}
}
y += document.body.scrollTop;
x += document.body.scrollLeft;
rMenu.css({"top":y+"px", "left":x+"px", "visibility":"visible"});
$("body").bind("mousedown", onBodyMouseDown);
}
//隐藏右键菜单
function hideRMenu() {
if (rMenu) rMenu.css({"visibility": "hidden"});
$("body").unbind("mousedown", onBodyMouseDown);
}
function onBodyMouseDown(event){
if (!(event.target.id == "rMenu" || $(event.target).parents("#rMenu").length>0)) {
rMenu.css({"visibility" : "hidden"});
}
}
//添加节点
function addTreeNode() {
hideRMenu();
//树的层级
var node = zTree.getSelectedNodes()[0];
$("#currentTreeId").val(node.selfId);
var treeLevel = node.level;
var selfId = node.selfId;
if(treeLevel > 2 || node.sysType == '权限系统'){
toastr.warning("系统不能再往下添加了!");
}else{
//医院层level为1,只能创建去权限系统
if(treeLevel == 1){
$.ajax({
type: "get",
url: path+"/dict/getHospitalByParentId",
data:{dictId:selfId},
dataType:'json',
success:function(data){
if(data.code == 200){
toastr.warning("只能创建权限系统,已存在权限系统,请选择科室!");
}else{
$("#iframe").prop("src",path+"/dict/dictManagePage?level="+treeLevel+"&selfId="+selfId+"&operFlag=add")
}
}
})
}else{
var deptId = '';
if(treeLevel > 0 || selfId < 0){
//科室层获取父节点selfId
selfId = node.getParentNode().selfId;
deptId = node.selfId;
}
$("#iframe").prop("src",path+"/dict/dictManagePage?level="+treeLevel+"&selfId="+selfId+"&operFlag=add"+"&deptId="+deptId)
}
}
}
//删除节点
function removeTreeNode() {
hideRMenu();
var nodes = zTree.getSelectedNodes();
if (nodes && nodes.length>0) {
if (nodes[0].children && nodes[0].children.length > 0) {
var msg = "要删除的节点是父节点,先从子节点删除";
toastr.warning(msg);
} else {
Common.confirm({
title: "提示",
message: "确定是否删除此条记录?",
operate: function (reselt) {
if (reselt) {
var selfId = nodes[0].selfId;
if (selfId != null) {
$.ajax({
type: "post",
url: path + "/dict/delete",
data: {dictId: selfId},
dataType: 'json',
success: function (data) {
if (data.msg == 'success') {
toastr.success("删除成功!");
loadTree();
} else {
toastr.error("删除失败,请联系系统管理员!");
}
}
})
} else {
toastr.warning("删除无效!");
}
}
}
})
}
}
}
function checkTreeNode(checked) {
var nodes = zTree.getSelectedNodes();
if (nodes && nodes.length>0) {
zTree.checkNode(nodes[0], checked, true);
}
hideRMenu();
}
//更新节点
function updateTree() {
hideRMenu();
var node = zTree.getSelectedNodes()[0];
$("#currentTreeId").val(node.selfId);
var treeLevel = node.level;
var selfId = node.selfId;
if(treeLevel != 0 && selfId >= 0 || selfId == -100){
$("#iframe").prop("src",path+"/dict/dictManagePage?level="+treeLevel+"&selfId="+selfId+"&operFlag=edit");
}else{
$("#iframe").prop("src",path+"/dict/dictManagePage");
toastr.warning("请选中医院或系统!");
}
}
function zTreeOnClick(event, treeId, treeNode) {
var treeLevel = treeNode.level;
var selfId = treeNode.selfId;
$("#currentTreeId").val(selfId);
if(treeLevel != 0 && selfId >= 0){
$("#iframe").prop("src",path+"/dict/dictManagePage?level="+treeLevel+"&selfId="+selfId+"&operFlag=edit");
}else{
$("#iframe").prop("src",path+"/dict/dictManagePage");
toastr.warning("请选中医院或系统!");
}
}
//左侧树全部展开
function expandAll(){
var treeObj=$.fn.zTree.getZTreeObj("treeDemo");
treeObj.expandAll(true);
}
//左侧树全部关闭
function collapseAll(){
var treeObj=$.fn.zTree.getZTreeObj("treeDemo");
treeObj.expandAll(false);
}