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.

180 lines
5.9 KiB

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" href="../../../component/ztree/zTreeStyle.css">
<link rel="stylesheet" href="../../../component/pear/css/pear.css" />
<style>
.ztree li span.button.add {
margin-left: 2px;
margin-right: -1px;
background-position: -144px 0;
vertical-align: top;
}
html,
body {
height: 98%;
margin: 0;
padding: 0;
}
.container {
display: flex;
flex-direction: column;
height: 100%;
}
.layui-card {
flex: 1;
}
</style>
</head>
<body>
<form class="layui-form" action="">
<div class="mainBox">
<div class="main-container">
<div class='ztree' id='mytree'></div>
</div>
</div>
<div class="bottom">
<div class="button-container">
<button type="submit" class="pear-btn pear-btn-primary pear-btn-sm" lay-submit="" lay-filter="save">
<i class="layui-icon layui-icon-ok"></i>
提交
</button>
</div>
</div>
</form>
<script src="../../../component/layui/layui.js"></script>
<script src="../../../component/pear/pear.js"></script>
<script src="../../../admin/js/jquery-3.6.0.min.js"></script>
<script src="../../../component/ztree/jquery.ztree.core-3.5.min.js"></script>
<script src="../../../component/ztree/jquery.ztree.excheck-3.5.min.js"></script>
<script>
layui.use(['form', 'jquery', 'layer'], function () {
var form = layui.form;
var $ = layui.jquery
var layer = layui.layer;
var id = GetQueryString("id");
var setting = {
view: {
dblClickExpand: false,
showLine: true,
selectedMulti: false
},
data: {
simpleData: {
enable: true,
idKey: "id",
pIdKey: "pid",
rootPId: 0
}
},
check: {
enable: true,
chkboxType: { "Y": "ps", "N": "ps" }
}
};
$.ajax({
type: "GET",
async: false,
dataType: "json",
url: "/dsBase/menu/selectMenuByDuty?id=" + GetQueryString("id"),
success: function (data) {
if (data.success) {
var selectedArray = data.list.map(item => item.menu_id);
loadTree(selectedArray);
} else {
layer.alert(data.message, { icon: 0 });
return false;
}
}
});
function loadTree(selectedArray) {
$.ajax({
type: "GET",
async: false,
url: '/dsBase/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);
}
}
});
}
form.on('submit(save)', function (data) {
var zTree = $.fn.zTree.getZTreeObj("mytree");
var nodes = zTree.getCheckedNodes(true);
var selectNodeIds = "";
if (nodes.length > 0) {
var arr = nodes.map(item => item.id);
selectNodeIds = arr.join(',');
}
$.ajax({
url: "/dsBase/menu/saveMenuByDuty",
async: false,
data: { "id": id, "menu_ids": selectNodeIds },
type: 'post',
success: function (result) {
if (result.success) {
layer.msg("设置权限成功!", {
icon: 1,
time: 1300
}, function () {
parent.layer.close(parent.layer.getFrameIndex(window.name));
});
} else {
layer.msg(result.message, {
icon: 2,
time: 2000
});
}
}
});
return false;
});
function GetQueryString(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;
}
})
</script>
</body>
</html>