layui.use([ 'element', 'table', 'laydate', 'form' ], function() {
	var $ = layui.jquery;
	var table = layui.table;
	var laydate = layui.laydate;
	var element = layui.element;
	var form = layui.form;

	// 生成表格
	table.render({
		elem 	: '#roleTable',
		url 	: '../../../getRoleList',
		toolbar : '#toolbarDemo',
		title 	: '角色表',// 导出文件名
		id 		: 'roleTableAll',
		// 开启分页
		page 	: {
			layout : [ 'count', 'prev', 'page', 'next', 'skip', 'limit' ]
		},
		/*request : {
			'limitName' : 'pageSize' // 分页每页条数默认字段改为pageSize
		},*/
		where:{
			roleName :''
		},
		cellMinWidth : 80, // 全局定义常规单元格的最小宽度，layui 2.2.1 新增
		cols : [ [ {
			type : 'numbers',
			title : '序号',
			width : 50,
			fixed : "left"
		}, {
			field : 'roleName',
			align : 'center',
			width :  200,
			title : '角色名称'
		},{
			field : 'remark',
			title : '说明',
			align : 'center',
			width :  500
		},{
			field : 'isRegist',
			title : '是否可注册',
			align : 'center',
			width :  120, 
			templet : '#statusTpl',
		}, {
			field : 'createDate',
			title : '创建时间',
			align : 'center',
			width :  180,
			templet : function(d) {
				return d.createDate != null ?layui.util.toDateString(d.createDate, "yyyy-MM-dd HH:mm:ss") : "";
			} 
		}, {
			fixed : 'right',
			title : '操作',
			align : 'center',
			width : 180,
			toolbar : '#barDemo'
		} ] ],
		parseData : function(res) { //将原始数据解析成 table 组件所规定的数据
			return {
				"code" 	: 0, //解析接口状态
				"msg" 	: "", //解析提示文本
				"count"	: res.data.roleList.total,//解析数据长度
				"data" 	: res.data.roleList.list//解析数据列表
			};
		}
	});

	//点击查询按钮，重载表格
	$('#searchBtn').on('click', function() {
		table.reload('roleTableAll', {
			method : 'post',
			where : {
				roleName : $("#roleName").val()
			},
			page : {
				curr : 1
			}
		});
		return false;
	});
	
	//监听状态按钮
	 form.on('switch(statusDemo)', function(obj){
		//layer.tips(this.value + ' ' + this.name + '：'+ obj.elem.checked, obj.othis); 
		$.ajax({
			url : "../../../changeRoleStatus",
			dataType : 'json',
			data : {
				'roleId':obj.value
			}, 
			type : 'post',
			success : function(data) {
				if (data.code == 200) {
					layer.msg('状态修改成功！',{icon:6,offset:"auto",time:2000});//提示框
			  	}else{
			  		layer.msg('状态修改失败！',{icon:5,offset:"auto",time:2000});//提示框
			  	}
			 	setTimeout(function(){
			 		location.reload();//重新加载页面
				}, 2100);
			}		
		})
	})

	// 监听头部工作栏的 新增用户
	table.on('toolbar(roleTable)', function(obj) {
		var checkStatus = table.checkStatus(obj.config.id);
		switch (obj.event) {
		case 'add':
			layer.open({
				type : 2,
				title : "添加角色",
				fix: false, //不固定
	    		maxmin: true,
				area : [ '45%', '70%' ],
				content : './addRole.jsp',
			});
			break;
		}
		;
	});

	// 监听 修改
	table.on('tool(roleTable)', function(obj) {
		var data1 = obj.data;
		if (obj.event === 'edit') {
			layer.open({
				type : 2,
				title : "修改角色信息",
				area : [ '600px', '400px' ],
				skin:'layui-layer-molv',
				content : './updateRole.jsp',
				success : function(layero, index) {
					var body = layer.getChildFrame('body', index);
					var iframeWin = window[layero.find('iframe')[0]['name']]; // 得到iframe页的窗口对象
					body.find('#roleId').val(data1.roleId);
					body.find('#roleName').val(data1.roleName);
					body.find('#remark').val(data1.remark);
					/*body.find('input[name=isRegist][value=1]').attr("checked",data1.isRegist==1 ? true : false);
					body.find('input[name=isRegist][value=0]').attr("checked",data1.isRegist==0 ? true : false);*/
					layui.form.render();
				}
			});
		}else if (obj.event === 'editPer') {
			roleId = data1.roleId;
			//发送一个异步请求，查询选中的角色/用户对应的权限，只需要编号
			$.post('../../../rolePers',{roleId:roleId},function (data) {
				//先获取所有的根节点
				var nodes = zTreeObj.getNodes();
				$.each(nodes,function () {
					//判断当前节点编号是否在  角色对应的权限编号数组中，说明该选中，否则不选中
					if($.inArray(this.perId,data) != -1){
						zTreeObj.checkNode(this,true,true);
					}else{
						zTreeObj.checkNode(this,false,true);
					}
					//判断二级节点
					$.each(this.children,function () {
						if($.inArray(this.perId,data) != -1){
							zTreeObj.checkNode(this,true,true);
						}else{
							zTreeObj.checkNode(this,false,true);
						}
						//判断三级节点
						$.each(this.children,function () {
							if ($.inArray(this.perId, data) != -1) {
								zTreeObj.checkNode(this, true, true);
							} else {
								zTreeObj.checkNode(this, false, true);
							}
						});
					});
				});
			});
			layer.open({
				type: 1,
				title: "修改《"+data1.roleName+"》的权限",
				area: ['720px', '630px'],
				skin: 'layui-layer-molv',
				content: $("#editPers")//引用的弹出层的页面层的方式加载添加界面表单
			});
		}
	})
});
