|
@@ -1,6 +1,7 @@
|
|
|
var grid_selector = "#grid-table";
|
|
|
var pager_selector = "#grid-pager";
|
|
|
var menuTree;
|
|
|
+var orgTree;
|
|
|
//zTree的参数配置,setting主要是设置一些tree的属性,是本地数据源,还是远程,动画效果,是否含有复选框等等
|
|
|
var setting = {
|
|
|
// 复选框
|
|
@@ -10,7 +11,7 @@ var setting = {
|
|
|
async : {
|
|
|
enable : true,
|
|
|
type : 'post',
|
|
|
- url : basePath + "/menu/list"
|
|
|
+ url : basePath + "/menu/tree"
|
|
|
},
|
|
|
data : {
|
|
|
// 简单的数据源
|
|
@@ -23,13 +24,95 @@ var setting = {
|
|
|
}
|
|
|
}
|
|
|
};
|
|
|
+//zTree的参数配置,setting主要是设置一些tree的属性,是本地数据源,还是远程,动画效果,是否含有复选框等等
|
|
|
+var setting2 = {
|
|
|
+view : {
|
|
|
+ autoCancelSelected : false,
|
|
|
+ selectedMulti : false
|
|
|
+},
|
|
|
+async : {
|
|
|
+ enable : true,
|
|
|
+ type : 'post',
|
|
|
+ url : basePath + "/org/tree"
|
|
|
+},
|
|
|
+data : {
|
|
|
+ // 简单的数据源
|
|
|
+ simpleData : {
|
|
|
+ enable : true,
|
|
|
+ idKey : "id",
|
|
|
+ pIdKey : "pid",
|
|
|
+ rootPId : 0 // 根节点
|
|
|
+ }
|
|
|
+},
|
|
|
+callback : {
|
|
|
+ beforeClick : orgTreeBeforeClick,
|
|
|
+ onClick : orgTreeOnClick
|
|
|
+}
|
|
|
+};
|
|
|
+
|
|
|
+function orgTreeBeforeClick(treeId, treeNode) {
|
|
|
+var nodes = orgTree.getSelectedNodes();
|
|
|
+
|
|
|
+if (nodes.length == 1){
|
|
|
+ if (nodes[0].tId == treeNode.tId) {
|
|
|
+ orgTree.cancelSelectedNode(treeNode);
|
|
|
+ searchRecord();
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+} else if (nodes.length > 1) {
|
|
|
+ orgTree.cancelSelectedNode();
|
|
|
+ searchRecord();
|
|
|
+ return false;
|
|
|
+}
|
|
|
+return true;
|
|
|
+};
|
|
|
+
|
|
|
+function orgTreeOnClick() {
|
|
|
+searchRecord();
|
|
|
+};
|
|
|
|
|
|
$(document).ready(function() {
|
|
|
- orgSelect();
|
|
|
- roleSelect();
|
|
|
+ // 初始化Grid
|
|
|
initGrid();
|
|
|
// 初始化zTree对象
|
|
|
menuTree = $.fn.zTree.init($("#menuTree"), setting);
|
|
|
+ // 初始化zTree对象
|
|
|
+ orgTree = $.fn.zTree.init($("#orgTree"), setting2);
|
|
|
+ // 初始化下拉框
|
|
|
+ orgSelect();
|
|
|
+ roleSelect();
|
|
|
+
|
|
|
+ $("#editForm").bootstrapValidator({
|
|
|
+ message : 'This value is not valid',
|
|
|
+ feedbackIcons : {
|
|
|
+ valid : 'glyphicon glyphicon-ok',
|
|
|
+ invalid : 'glyphicon glyphicon-remove',
|
|
|
+ validating : 'glyphicon glyphicon-refresh'
|
|
|
+ },
|
|
|
+ fields : {
|
|
|
+ remark : {
|
|
|
+ validators : {
|
|
|
+ notEmpty : {},
|
|
|
+ stringLength : {
|
|
|
+ max : 100
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ org : {
|
|
|
+ validators : {
|
|
|
+ notEmpty : {}
|
|
|
+ }
|
|
|
+ },
|
|
|
+ role : {
|
|
|
+ validators : {
|
|
|
+ notEmpty : {}
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ $('#editWin').on('hide.bs.modal', function() {
|
|
|
+ $('#editForm').bootstrapValidator('resetForm', false);
|
|
|
+ });
|
|
|
});
|
|
|
|
|
|
/**
|
|
@@ -121,6 +204,20 @@ function addInfo() {
|
|
|
comClearFormData("#editForm");
|
|
|
$('#org').selectpicker('refresh');
|
|
|
$('#role').selectpicker('refresh');
|
|
|
+
|
|
|
+ //获取选择行
|
|
|
+ var nodes = orgTree.getSelectedNodes();
|
|
|
+ if (nodes.length > 1) {
|
|
|
+ layer.alert("请选择一条记录!");
|
|
|
+ return;
|
|
|
+ } else if (nodes.length == 1) {
|
|
|
+ var node = nodes[0];
|
|
|
+ $('#org').selectpicker('val', node.id);
|
|
|
+ }
|
|
|
+ $("#remark").removeProp("readonly");
|
|
|
+ $("#org").removeProp("readonly");
|
|
|
+ $("#role").removeProp("readonly");
|
|
|
+ $("#menuTreeDiv").hide();
|
|
|
menuTree.checkAllNodes(false);
|
|
|
menuTree.expandAll(false);
|
|
|
// 弹出模态框
|
|
@@ -149,31 +246,11 @@ function editInfo() {
|
|
|
$("#org").selectpicker('val', data.org);
|
|
|
$("#role").selectpicker('val', data.role);
|
|
|
$("#remark").val(data.remark);
|
|
|
- $("#menuBtnRef").val(data.menuBtnRef);
|
|
|
- menuTree.checkAllNodes(false);
|
|
|
- menuTree.expandAll(false);
|
|
|
- if (!isNull(data.menuBtnRef)) {
|
|
|
- var menuBtnRefs = data.menuBtnRef.split(";");
|
|
|
- var menuIds = menuBtnRefs[0].split(",");
|
|
|
- for (var i = 0; i < menuIds.length; i++) {
|
|
|
- var node = menuTree.getNodeByParam("id", menuIds[i], null);
|
|
|
- if (!isNull(node)) {
|
|
|
- node.checked = "true";
|
|
|
- menuTree.checkNode(node, true, true);
|
|
|
- }
|
|
|
- }
|
|
|
- if (menuBtnRefs.length > 1) {
|
|
|
- var btnIds = menuBtnRefs[1].split(",");
|
|
|
- for (var i = 0; i < btnIds.length; i++) {
|
|
|
- var node = menuTree.getNodeByParam("id", btnIds[i], null);
|
|
|
- if (!isNull(node)) {
|
|
|
- node.checked = "true";
|
|
|
- menuTree.checkNode(node, true, true);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
+ $("#menuBtnRef").val('');
|
|
|
+ $("#remark").removeProp("readonly");
|
|
|
+ $("#org").removeProp("readonly");
|
|
|
+ $("#role").removeProp("readonly");
|
|
|
+ $("#menuTreeDiv").hide();
|
|
|
showModelDialog("editWin", "编辑");
|
|
|
},
|
|
|
error : function(XMLHttpRequest, textStatus, errorThrown) {
|
|
@@ -203,6 +280,7 @@ function delInfo() {
|
|
|
url : basePath + '/group/delRecodes',
|
|
|
success : function(data) {
|
|
|
layer.close(index);
|
|
|
+ orgTree.reAsyncChildNodes(null, "refresh");
|
|
|
searchRecord();
|
|
|
},
|
|
|
error : function(XMLHttpRequest, textStatus, errorThrown) {
|
|
@@ -220,10 +298,16 @@ function delInfo() {
|
|
|
* 查询
|
|
|
*/
|
|
|
function searchRecord() {
|
|
|
- var srh_org = $("#srh_org").val();
|
|
|
var srh_role = $("#srh_role").val();
|
|
|
+ var srh_org_str = "";
|
|
|
+
|
|
|
+ var nodes = orgTree.getSelectedNodes();
|
|
|
+ if (nodes.length == 1) {
|
|
|
+ srh_org_str = "&org=" + nodes[0].id;
|
|
|
+ }
|
|
|
+
|
|
|
$(grid_selector).jqGrid('setGridParam', {
|
|
|
- url : basePath + "/group/list?org=" + srh_org + "&role=" + srh_role,
|
|
|
+ url : basePath + "/group/list?role=" + srh_role + srh_org_str,
|
|
|
page : 1
|
|
|
}).trigger("reloadGrid");
|
|
|
};
|
|
@@ -232,6 +316,11 @@ function searchRecord() {
|
|
|
* 保存数据
|
|
|
*/
|
|
|
function save() {
|
|
|
+ var validator = $('#editForm').data('bootstrapValidator').validate();
|
|
|
+ if (!validator.isValid()) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
var nodes = menuTree.getCheckedNodes(true);
|
|
|
if (nodes.length > 0) {
|
|
|
var chkMenuIds = "";
|
|
@@ -257,10 +346,11 @@ function save() {
|
|
|
dataType : 'json',
|
|
|
data : $('#editForm').serialize(), // 表单序列化,获取数据
|
|
|
success : function(data) {
|
|
|
- // 成功删除后刷新页面
|
|
|
+ // 成功后刷新页面
|
|
|
if (data && data.success == true) {
|
|
|
layer.alert("数据已成功保存!");
|
|
|
closeWin();
|
|
|
+ orgTree.reAsyncChildNodes(null, "refresh");
|
|
|
searchRecord();
|
|
|
} else {
|
|
|
layer.alert("数据保存失败!");
|
|
@@ -306,3 +396,63 @@ $.ajax({
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 编辑授权
|
|
|
+ */
|
|
|
+function editAuthInfo() {
|
|
|
+ // 获取选择行
|
|
|
+ var ids = getMultiData(grid_selector);
|
|
|
+ if (isNull(ids) || ids.indexOf(",") != -1) {
|
|
|
+ layer.alert("请选择且只选择一条记录");
|
|
|
+ } else {
|
|
|
+ $.ajax({
|
|
|
+ type : 'POST',
|
|
|
+ dataType : "json",
|
|
|
+ data : {
|
|
|
+ "id" : ids
|
|
|
+ },
|
|
|
+ url : basePath + '/group/getAuthRecord',
|
|
|
+ success : function(data) {
|
|
|
+ var selData = $(grid_selector).jqGrid('getRowData', ids);
|
|
|
+ $("#id").val(data.id);
|
|
|
+ $("#org").selectpicker('val', data.org);
|
|
|
+ $("#role").selectpicker('val', data.role);
|
|
|
+ $("#remark").val(data.remark);
|
|
|
+ $("#menuBtnRef").val(data.menuBtnRef);
|
|
|
+ menuTree.checkAllNodes(false);
|
|
|
+ menuTree.expandAll(false);
|
|
|
+ if (!isNull(data.menuBtnRef)) {
|
|
|
+ var menuBtnRefs = data.menuBtnRef.split(";");
|
|
|
+ var menuIds = menuBtnRefs[0].split(",");
|
|
|
+ for (var i = 0; i < menuIds.length; i++) {
|
|
|
+ var node = menuTree.getNodeByParam("id", menuIds[i], null);
|
|
|
+ if (!isNull(node)) {
|
|
|
+ node.checked = "true";
|
|
|
+ menuTree.checkNode(node, true, true);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (menuBtnRefs.length > 1) {
|
|
|
+ var btnIds = menuBtnRefs[1].split(",");
|
|
|
+ for (var i = 0; i < btnIds.length; i++) {
|
|
|
+ var node = menuTree.getNodeByParam("id", btnIds[i], null);
|
|
|
+ if (!isNull(node)) {
|
|
|
+ node.checked = "true";
|
|
|
+ menuTree.checkNode(node, true, true);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ $("#remark").prop('readonly', 'readonly');
|
|
|
+ $("#org").prop('readonly', 'readonly');
|
|
|
+ $("#role").prop('readonly', 'readonly');
|
|
|
+ $("#menuTreeDiv").show();
|
|
|
+ showModelDialog("editWin", "编辑");
|
|
|
+ },
|
|
|
+ error : function(XMLHttpRequest, textStatus, errorThrown) {
|
|
|
+ layer.alert("error:" + errorThrown);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+};
|