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

177 lines
6.5 KiB

2 years ago
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="../../lib/layui/css/layui.css" media="all">
<link rel="stylesheet" href="../../static/css/cyType.css" media="all">
<link rel="stylesheet" href="../../static/css/cyStyle.css" media="all">
<link rel="stylesheet" href="../../static/css/font-awesome.min.css" media="all">
<script src="../../lib/jquery-3.6.0.min.js" type="text/javascript" charset="utf-8"></script>
<link rel="stylesheet" href="../../lib/ztree/zTreeStyle.css">
<!--加载必要的javascript文件-->
<script src="../../lib/layui/layui.js"></script>
<script src="../../lib/jquery-3.6.0.min.js"></script>
<script src="../../lib/ztree/jquery.ztree.core-3.5.min.js"></script>
<script src="../../lib/ztree/jquery.ztree.excheck-3.5.min.js"></script>
<script src="../../lib/persist-min.js"></script>
</head>
<body>
<div class="weadmin-body">
<form class="layui-form">
<div class="layui-form-item">
<div class='pc_selectModel_tree' style="overflow-y: auto">
<div class='ztree' id='mytree'></div>
</div>
</div>
<div class="layui-form-item" align="center">
<button class="layui-btn" lay-filter="save" lay-submit="">确定</button>
</div>
</form>
</div>
</body>
<script>
//获取url传参的办法
window.GetQueryString = function (name, istop) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
if (typeof (istop) != "undefined") r = top.location.search.substr(1).match(reg);
if (r != null) return unescape(r[2]);
return null;
};
//ztree的配置信息
var setting = {
view: {
dblClickExpand: false,
showLine: true,
selectedMulti: false
},
data: {
simpleData: {
enable: true,
idKey: "id",
pIdKey: "pId",
rootPId: 0
}
},
callback: {
onCheck: function (event, treeId, treeNode) {
//addType(event, treeId, treeNode);
}
},
check: {
enable: true,
/*
setting.check.chkboxType = { "Y" : "s", "N" : "s" };
Y指的是勾选checkbox的时候对父结点或子结点产生的影响
N指的是取消checkbox的时候对父结点或子结点产生的影响
大小写是有区另的。s指子结点p指父结点
* */
chkboxType: {"Y": "ps", "N": "ps"}
}
};
// 加载树结构
function loadZtree(selectedArray) {
$.ajax({
type: "GET",
async: false,
url: '/FengHuang/menu/selectAll',
dataType: "json",
success: function (data) {
if (data.code == 0) {
var zNodes = data.data;
//加载选中状态
for (var i = 0; i < data.data.length; i++) {
for (var j = 0; j < selectedArray.length; j++) {
if (zNodes[i].id == selectedArray[j]) {
zNodes[i].checked = true;
}
}
}
$.fn.zTree.init($("#mytree"), setting, zNodes);
var treeObj = $.fn.zTree.getZTreeObj("mytree");
treeObj.expandAll(true);
}
}
});
};
layui.extend({
admin: '{/}../../static/js/admin'
});
layui.use(['form', 'jquery', 'admin', 'layer'], function () {
var form = layui.form,
$ = layui.jquery,
admin = layui.admin,
layer = layui.layer;
//注册保存事件
form.on('submit(save)', function (data) {
var zTree = $.fn.zTree.getZTreeObj("mytree");
var nodes = new Array();
if (zTree != null) {
nodes = zTree.getCheckedNodes(true);
var menu_ids = "";
if (nodes.length > 0) {
for (var i = 0; i < nodes.length; i++)
menu_ids += nodes[i].id + ",";
//去掉最后面的逗号
menu_ids = menu_ids.substring(0, menu_ids.length - 1);
}
//哪个职务+分管工作id
var id = GetQueryString("id");
//拼接数据
data = {"id": id,"menu_ids": menu_ids};
//保存
$.ajax({
type: "POST",
async: false,
dataType: "json",
url: "/FengHuang/menu/saveMenuByDutyInCharge",
data: data,
success: function (data) {
if (data.success) {
layer.msg("保存成功", {icon: 1, time: 1000, shade: [0.5, '#000', true]}, function () {
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);
});
} else {
layer.alert(data.message, {icon: 0});
return false;
}
}
})
}
return false;
});
//实始化加载
$(function () {
//加载树(一会扩展为读取现有哪些菜单节点)
selectedArray = [];
//拼接数据
$.ajax({
type: "GET",
async: false,
dataType: "json",
url: "/FengHuang/menu/selectMenuByDutyInCharge?id="+GetQueryString("id"),
success: function (data) {
if (data.success) {
for (var i = 0; i < data.list.length; i++)
{
selectedArray.push(data.list[i].menu_id);
}
} else {
layer.alert(data.message, {icon: 0});
return false;
}
}
})
loadZtree(selectedArray);
})
});
</script>
</html>