<!DOCTYPE HTML>
|
<html xmlns:th="http://www.thymeleaf.org">
|
<head>
|
<meta charset="utf-8">
|
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
|
<meta name="renderer" content="webkit|ie-comp|ie-stand">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
<meta name="viewport"
|
content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
|
<meta http-equiv="Cache-Control" content="no-siteapp"/>
|
<LINK rel="Bookmark" th:href="@{/images/favicon.ico}">
|
<!-- 本框架基本脚本和样式 -->
|
<script type="text/javascript"
|
th:src="@{/js/plugin/jquery-2.1.4.min.js}"></script>
|
<script type="text/javascript" th:src="@{/js/systools/MBase.js}"></script>
|
<link rel="stylesheet"
|
th:href="@{/plugin/zTree/zTreeStyle/zTreeStyle.css}" type="text/css">
|
<script type="text/javascript"
|
th:src="@{/plugin/zTree/jquery.ztree.core-3.5.min.js}"></script>
|
<script type="text/javascript"
|
th:src="@{/plugin/zTree/jquery.ztree.excheck.min.js}"></script>
|
<style type="text/css">
|
.permission-list > dd > dl > dt {
|
width:140px;
|
|
}
|
|
#powerBox {
|
max-height: 500px;
|
overflow: scroll;
|
overflow-x: hidden;
|
border: 1px solid #aeaeae;
|
border-radius: 5px;
|
padding: 0;
|
}
|
</style>
|
</head>
|
|
<body>
|
<div class="ibox-content">
|
<form class="form-horizontal" id="dataform"
|
onsubmit="javascripr:return false;">
|
<input autocomplete="off" type="hidden" name="roleId" th:value="${obj.roleId }">
|
<input autocomplete="off" type="hidden" name="tokenUrl" th:value="${tokenUrl}">
|
<input autocomplete="off" type="hidden" name="token" th:value="${token}">
|
<div class="form-group">
|
<label class="col-sm-2 control-label">角色名称<span
|
class="text-danger">*</span></label>
|
<div class="col-sm-4">
|
<input autocomplete="off" type="text" class="form-control" th:value="${obj.roleName}"
|
name="roleName" datatype="*2-16" nullmsg="角色名称不能为空">
|
<div class="Validform_checktip"></div>
|
</div>
|
<label class="col-sm-2 control-label">可查询所有门店数据</label>
|
<div class="col-sm-4">
|
<select class="form-control" name="roleRemark">
|
<option th:selected="${obj?.roleRemark == '是'}" >是</option>
|
<option th:selected="${obj?.roleRemark == '否'}" >否</option>
|
</select>
|
</div>
|
</div>
|
<div class="form-group">
|
|
<label class="col-sm-2 control-label">是否允许门店分配本角色</label>
|
<div class="col-sm-4">
|
<select class="form-control" name="shopAble">
|
<option th:selected="${obj?.shopAble == 1}" value="1" >是</option>
|
<option th:selected="${obj?.shopAble == 2}" value="2">否</option>
|
</select>
|
</div>
|
</div>
|
|
<div class="form-group">
|
<label class="col-sm-2 control-label">功能权限</label>
|
<div class=" ztree col-sm-9" id="treeRole"></div>
|
</div>
|
|
<div class="form-group ">
|
<div class="col-sm-12 text-center">
|
<a href="javascript:;" onclick="myForm.submit()"
|
class="btn btn-success radius"><i class="fa fa-check"></i> 保存</a>
|
<a class="btn btn-danger radius" href="javascript:;"
|
onclick="MTools.closeForm()"><i class="fa fa-close"></i> 关闭</a>
|
</div>
|
</div>
|
</form>
|
</div>
|
<script type="text/javascript" th:src="@{/js/systools/MJsBase.js}"></script>
|
<script th:inline="javascript">
|
var invokeUrl = basePath + "/admin/sysRole/su/addRole";
|
|
/*<![CDATA[*/
|
var obj =/*[[${obj}]]*/
|
/*]]>*/
|
|
// 权限数据
|
/*<![CDATA[*/
|
var roleArr =/*[[${functions}]]*/
|
/*]]>*/
|
if (obj.roleId != null) {
|
invokeUrl = basePath + "/admin/sysRole/su/modifyRole";
|
}
|
|
$(function () {
|
myForm = MForm.initForm({
|
invokeUrl: invokeUrl,
|
beforeSubmit: function () {
|
// 加入权限参数
|
var tree = $.fn.zTree.getZTreeObj("treeRole");
|
var items = tree.getCheckedNodes();
|
|
console.log(items);
|
// 分为菜单 按钮
|
var menuKeys = "";
|
var btnKeys = "";
|
for (var i = 0; i < items.length; i++) {
|
// 判断是哪种类型的
|
var btnValue = items[i]["btnValue"];
|
if (btnValue) {
|
// 父ID
|
var parentFnId = items[i]["pId"];
|
// 按钮
|
btnKeys += parentFnId + "-" + btnValue + ",";
|
} else {
|
if(items[i]["id"]){
|
menuKeys += items[i]["id"] + ",";
|
}
|
}
|
|
}
|
myForm.initParam.extendParam = {
|
"menuKeys": menuKeys,
|
"btnKeys": btnKeys
|
};
|
},
|
afterSubmit: function () {
|
parent.myGrid.serchData();
|
},
|
|
});
|
initFunctionRoleTree(roleArr);
|
});
|
|
|
// 树节点
|
var zNodes = [];
|
|
var setting = {
|
check: {
|
enable: true,
|
nocheckInherit: true
|
},
|
data: {
|
simpleData: {
|
enable: true,
|
idKey: "id",
|
pIdKey: "pId",
|
rootPId: 0
|
}
|
}
|
};
|
|
function nocheckNode(e) {
|
var zTree = $.fn.zTree.getZTreeObj("treeRole"),
|
nocheck = e.data.nocheck,
|
nodes = zTree.getSelectedNodes();
|
if (nodes.length == 0) {
|
alert("Please select one node at first...");
|
}
|
|
for (var i = 0, l = nodes.length; i < l; i++) {
|
nodes[i].nocheck = nocheck;
|
zTree.updateNode(nodes[i]);
|
}
|
}
|
|
//var roleArr = [];
|
// 权限树
|
function initFunctionRoleTree(functions) {
|
console.log(functions);
|
// 根据角色权限构建权限树
|
// functions 是一个功能集合
|
//if (functions) {
|
// roleArr = eval('(' + functions + ')');
|
//}
|
// 构建树节点 createRoleNodes(roleArr)
|
$.fn.zTree.init($("#treeRole"), setting, createRoleNodes(roleArr));
|
$("#nocheckFalse").bind("click", {nocheck: false}, nocheckNode);
|
|
}
|
|
function createRoleNodes(roleArr) {
|
console.log("服务器返回权限");
|
console.log(roleArr);
|
// 遍历权限集合
|
for (var i = 0; i < roleArr.length; i++) {
|
// 权限 最外层的为菜单组
|
var role = roleArr[i];
|
console.log(role.fnName)
|
var o1 = new Object();
|
o1.id = role["fnId"];
|
o1.pId = role["fnParentId"];
|
o1.name = role["fnName"];
|
if (role["hasThisFn"] == true) {
|
o1.checked = true;
|
} else {
|
o1.checked = false;
|
}
|
o1.btnValue = "";
|
o1.open = false;
|
zNodes.push(o1);
|
console.log("zNodes.length", zNodes.length)
|
// 还需要构建子菜单的
|
var childs = role["childs"];
|
if (childs) {
|
|
console.log("二级菜单",childs);
|
for (var j = 0; j < childs.length; j++) {
|
var childRole = childs[j];
|
var o2 = new Object();
|
o2.id = childRole["fnId"];
|
o2.pId = childRole["fnParentId"];
|
o2.name = childRole["fnName"];
|
if (childRole["hasThisFn"] == true) {
|
o2.checked = true;
|
} else {
|
o2.checked = false;
|
}
|
o2.btnValue = "";
|
o2.open = false;
|
|
zNodes.push(o2);
|
|
|
//三级菜单
|
var childsThird = childRole["childs"];
|
if (childsThird) {
|
console.log("三级菜单",childs);
|
for (var k = 0; k < childsThird.length; k++) {
|
var childRoleThird = childsThird[k];
|
var o3 = new Object();
|
o3.id = childRoleThird["fnId"];
|
o3.pId = childRoleThird["fnParentId"];
|
o3.name = childRoleThird["fnName"];
|
if (childRoleThird["hasThisFn"] == true) {
|
o3.checked = true;
|
} else {
|
o3.checked = false;
|
}
|
o3.btnValue = "";
|
o3.open = false;
|
|
zNodes.push(o3);
|
|
// 按钮
|
var btns = childRoleThird["sysFnBtnRel"];
|
console.log(btns);
|
if (btns) {
|
for (var m = 0; m < btns.length; m++) {
|
var btn = btns[m];
|
var o4 = new Object();
|
o4.id = btn["fbId"];
|
o4.pId = btn["fnId"];
|
o4.name = btn["btnKey"];
|
if (btn["hasThisBtn"] == true) {
|
o4.checked = true;
|
} else {
|
o4.checked = false;
|
}
|
o4.btnValue = btn["btnValue"];
|
o4.open = false;
|
zNodes.push(o4);
|
}
|
}
|
}
|
}
|
}
|
}
|
}
|
console.log("返回节点", zNodes.length)
|
return zNodes;
|
|
}
|
|
$(document).ready(function () {
|
//$.fn.zTree.init($("#treeRole"), setting, zNodes);
|
//$("#nocheckTrue").bind("click", {nocheck: true}, nocheckNode);
|
//$("#nocheckFalse").bind("click", {nocheck: false}, nocheckNode);
|
});
|
</script>
|
</body>
|
</html>
|