/**
 * 
 */
$(function(){
	formValidator();
	$("#test-table").bootstrapTable('destroy');
	$('#test-table').bootstrapTable({
		method : 'GET', //默认是post,不允许对静态文件访问
		url: "role/rolePages.action",
		cache : false,
		striped : true,// 隔行加亮
		pagination : true, //开启分页功能    在表格底部显示分页工具栏
		pageSize : 5, //默认每页条数
		pageNumber : 1, //默认分页
		pageList : [ 10, 20, 50, 100, 200, 500 ],//分页数
		showColumns : true, //显示隐藏列
		showRefresh : false, //显示刷新按钮
		toolbar:"#toolbar",
		singleselect : true,
         clickToSelect: true, // 单击行即可以选中
		search : false,//显示搜素表单
		silent : true, //刷新事件必须设置
		sidePagination : "server", //表示服务端请求  
		columns : [ {
			field : "role_id",
			title : "角色编号",
			class : 'col-md-1',
			align : "center",
			valign : "middle",
			sortable : "true"
		}, {
			field : "role_name",
			title : "角色名称",
			align : "center",
			valign : "middle",
			sortable : "true"
		}, {
			field : "role_desc",
			title : "角色描述",
			align : "center",
			valign : "middle",
			sortable : "true"
		},{
			field : "pid",
			title : "上级角色ID",
			align : "center",
			valign : "middle",
			sortable : "true"
		}, {
            field: 'operate',
            title: '操作',
           class : 'col-md-3',
            align: 'center',
            valign: 'middle',
           formatter: operateFormatter,
        }],
		queryParamsType: "undefined",
        queryParams: function queryParams(params) {   //设置查询参数
            var param = {
                pageNumber: params.pageNumber,
                pageSize: params.pageSize,
                // searchText: params.searchText
            };
            return param;
        },
		formatLoadingMessage : function() {
			return "请稍等,正在加载中...";
		},
		formatNoMatches : function() {
			return '无符合条件的记录';
		}
	});
}); 
function operateFormatter(value, row, index) {
    return ['   ',
        '',
        '   '
        ].join('');
}
//保存权限
function saveAuth(){
	var id=$("#rid").val();
	var ids=[];
	var auths=[];
	var obj=$('#tree').treeview('getChecked');
	$.each(obj,function(index,items){
		if(parseInt(items.id)>10000){
			auths.push(items.id);
		}else{
			ids.push(items.id);
		}
	});
	console.log(ids);
	auths.push(10000);
	if(auths==null){
		console.log(auths);
	}
	$.ajax({
		url:'role/saveRoleMenu.action',
		dataType:'json',
		type:'post',
		traditional:true,
		data:{
			rid:id,
			mid:ids,
			auths:auths
			},
		success:function(data){
			if(data){
				alert("保存成功!");
			}else{
				alert("保存失败!");
			}
			$("#test-table").bootstrapTable("refresh");
			closeDlg();
		},
		error:function(){
			alert("请求失败!");
		}
	});
	
}
//权限
function getAuth(id){
	$("#rid").val(id);
	$.ajax({
		url:'role/viewTree.action',
		dataType:'json',
		type:'post',
		data:{rid:id},
		success:function(data){
			 $('#tree').treeview({
                 data: data,         // 数据源
                 showCheckbox: true,   //是否显示复选框
                 highlightSelected: false,    //是否高亮选中
                 //nodeIcon: 'glyphicon glyphicon-user',    //节点上的图标
                    //expandIcon: 'glyphicon glyphicon-chevron-right',//展开图标 
                   //  collapseIcon: 'glyphicon glyphicon-chevron-down',//合并图标 
                   //  nodeIcon: 'glyphicon glyphicon-bookmark',//无节点图标 
                  backColor: "purple",//背景色 
                     onhoverColor: "#F5F5DC",//鼠标悬浮颜色 
                     borderColor: "red",//边框颜色 
                     highlightSelected: true,//高亮选中 
                     selectedColor: "red",//选中颜色 
                     selectedBackColor: "#D3D3D3",//选中背景色 
                  color: "#00BFFF", 
                   selectable: false,
                 multiSelect: false,    //多选
                  state: {
                	     checked: true,
                	     disabled: true,
                	     expanded: true,
                	     selected: true
                	   },
                 onNodeChecked: function (event,node) {
                	// 父级节点被选中,那么子级节点都要选中
                	  if (node.nodes != null) {
                	   $.each(node.nodes, function(index, value) {
                	     $('#tree').treeview('checkNode', value.nodeId, {
                	     silent : true
                	    });
                	   });
                	  } else {
                    	   // 子级节点选中的时候,要根据情况判断父节点是否要全部选中
                    	   // 父节点
                    	   var parentNode =  $('#tree').treeview('getParent', node.nodeId);
                    	   var isAllchecked =  $('#tree'); // 是否全部选中
                    	   // 当前子级节点的所有兄弟节点,也就是获取父下面的所有子
                    	   var siblings =  $('#tree').treeview('getSiblings', node.nodeId);
                    	   for ( var i in siblings) {
                    	    // 有一个没选中,则不是全选
                    	    if (!siblings[i].state.checked) {
                    	     isAllchecked = false;
                    	     break;
                    	    }
                    	   }
                    	   // 全选,则打钩
                    	   if (isAllchecked) {
                    	     $('#tree').treeview('checkNode', parentNode.nodeId, {
                    	     silent : true
                    	    });
                    	   } else {// 非全选,则变红
                    	     $('#tree').treeview('checkNode', node.nodeId, {
                    	     silent : true
                    	    });
                    	   }
                    	  
                	 }
                 },
                 onNodeUnchecked : function(event, node) {
                	 silentByChild = true;
                	  // 选中的是父级节点
                	  if (node.nodes != null) {
                	   // 这里需要控制,判断是否是因为子级节点引起的父节点被取消选中
                	   // 如果是,则只管取消父节点就行了
                	   // 如果不是,则子节点需要被取消选中
                	// var silentByChild=false;
                	   if (silentByChild) {
                	    $.each(node.nodes, function(index, value) {
                	     $('#tree').treeview('uncheckNode', value.nodeId, {
                	      silent : true
                	     });
                	    });
                	   }
                	  } else {/*
                	   // 子级节点被取消选中
                	   var parentNode = $('#tree').treeview('getParent', node.nodeId);
                	   var isAllUnchecked = true; // 是否全部取消选中
                	   // 子级节点有一个选中,那么就不是全部取消选中
                	   var siblings = $('#tree').treeview('getSiblings', node.nodeId);
                	   for ( var i in siblings) {
                	    if (siblings[i].state.checked) {
                	     isAllUnchecked = false;
                	     break;
                	    }
                	   }
                	   // 全部取消选中,那么省级节点恢复到默认状态
                	   if (isAllUnchecked) {
                	    $('#tree').treeview('unselectNode', parentNode.nodeId, {
                	     silent : true,
                	    });
                	    $('#tree').treeview('uncheckNode', parentNode.nodeId, {
                	     silent : true,
                	    });
                	   } else {
                	    silentByChild = false;
                	    $('#tree').treeview('selectNode', parentNode.nodeId, {
                	     silent : true,
                	    });
                	    $('#tree').treeview('uncheckNode', parentNode.nodeId, {
                	     silent : true,
                	    });
                	   }
                	  */}
                	  
                	 },
                 onNodeSelected: function (event, data) {
                	
                 }
             });
		},
		error:function(){
			alert("请求失败!");
		}
	});
	$("#authDlg").modal('show');
}
//修改,打开模态框
function getvalue(id){
	$.ajax({
		url:'role/queryRole.action',
		dataType:'json',
		type:'post',
		data:{rid:id},
		success:function(data){
			$("#role_id1").val(data.role.role_id);
			$("#role_name1").val(data.role.role_name);
			$("#role_desc1").val(data.role.role_desc);
			$("#pid1").empty();
			$("#pid1").append("");
			$.each(data.rlist,function(index,items){
				if(data.role.pid==items.role_id){
					$("#pid1").append("");
				}else{
					$("#pid1").append("");
				}
			});
		},
		error:function(){
			alert("请求失败!");
		}
	});
	$("#mydlg").modal('show');
}
//修改
function upRole(){
	if($("#infos").text()=="名称可用"||$("#infos").text()==""){
		if($("#myform").data('bootstrapValidator').validate().isValid()){
			$.ajax({
				url:'role/upRole.action',
				dataType:'json',
				type:'post',
				data:$("#myform").serialize(),
				success:function(data){
					if(data>0){
						alert("修改成功!");
					}else{
						alert("修改失败!");
					}
					$("#test-table").bootstrapTable("refresh");
					closeDlg();
				},
				error:function(){
					alert("请求失败!");
				}
			});
		}
	}else{
		alert("请正确填写信息!");
	}
}
//删除
function delRole(id){
	if(confirm("您确定要删除这条数据吗?")){
		$.ajax({
			url:'role/delRole.action',
			dataType:'json',
			type:'post',
			data:{rid:id},
			success:function(data){
				if(data>0){
					alert("删除成功!");
				}else{
					alert("删除失败!");
				}
				$("#test-table").bootstrapTable("refresh");
			}
		});
	}else{
		return false;
	}
}
//添加,打开模态框
function addRole(){
	$.ajax({
		url:'role/roleList.action',
		dataType:'json',
		type:'post',
		success:function(data){
			$("#pid").empty();
			$("#pid").append("");
			$.each(data,function(){
				$("#pid").append("");
			});
		},
		error:function(){
			alert("请求失败!");
		}
	});
	$("#addDlg").modal('show');
}
//添加
function insertRole(){
	if($("#info").text()=="名称可用"){
		if($("#addForm").data('bootstrapValidator').validate().isValid()){
			$.ajax({
				url:'role/saveRole.action',
				dataType:'json',
				type:'post',
				data:$("#addForm").serialize(),
				success:function(data){
					if(data>0){
						alert("添加成功!");
					}else{
						alert("添加失败!");
					}
					$("#test-table").bootstrapTable("refresh");
					closeDlg();
				},
				error:function(){
					alert("请求失败!");
				}
			});
		}
	}else{
		alert("请正确填写信息!");
	}
}
//添加 角色名称验证
function checkRole(){
	if($("#role_name").val()!=""){
		$.ajax({
			url:'role/checkRole.action',
			dataType:'json',
			type:'post',
			data:{
				roleName:$("#role_name").val()
			},
			success:function(data){
				$("#info").text(data.msg);
			},
			error:function(){
				alert("请求失败!");
			}
		});
	}else{
		return false;
	}
}
//修改 角色名称验证
function checkRole1(){
	var id=$("#role_id1").val();
	if($("#role_name1").val()!=""){
		$.ajax({
			url:'role/checkRole.action',
			dataType:'json',
			type:'post',
			data:{
				roleName:$("#role_name1").val(),
				rid:id
			},
			success:function(data){
				$("#infos").text(data.msg);
			},
			error:function(){
				alert("请求失败!");
			}
		});
	}else{
		return false;
	}
}
//关闭模态框
function closeDlg(){
	$("#authDlg").modal('hide');
	$("#addDlg").modal('hide');
	$("#mydlg").modal('hide');
	$("#info").text(null);
	$("#infos").text(null);
	$("input[type=reset]").trigger("click");
	$('#myform').data('bootstrapValidator', null);
	$('#addForm').data('bootstrapValidator', null);
	formValidator();
}
//表单验证
function formValidator(){
	$("#addForm").bootstrapValidator({
		fields:{
			role_name:{
				validators:{
					notEmpty:{
						message:"角色名称不能为空"
					},
					stringLength:{
						max:20,
						message:'不能超过20个字符长度'
					},
				}
			},
			role_desc:{
				validators:{
					notEmpty:{
						message:'角色描述不能为空',
					},
					stringLength:{
						max:200,
						message:'字符长度不能超过200'
					}
				}
			},
			pid:{
				validators:{
					notEmpty:{
						message:'不能为空'
					}
				}
			}
		}
	});
	
	$("#myform").bootstrapValidator({
		fields:{
			role_name:{
				validators:{
					notEmpty:{
						message:"角色名称不能为空"
					},
					stringLength:{
						max:20,
						message:'不能超过20个字符长度'
					},
				}
			},
			role_desc:{
				validators:{
					notEmpty:{
						message:'角色描述不能为空',
					},
					stringLength:{
						max:200,
						message:'字符长度不能超过200'
					}
				}
			},
			pid:{
				validators:{
					notEmpty:{
						message:'不能为空'
					}
				}
			}
		}
	});
}