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

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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);
}