/*
 * 
 */
$(function (){
	getRoomList();	
	formValidator();
	//select2 多选
//    $("#rid").select2({
//    	//minimumInputLength: 1, 
//        language: "zh-CN", //设置 提示语言
//        maximumSelectionLength: 3,  //设置最多可以选择多少项
//         //width: "100%", //设置下拉框的宽度
//         placeholder: "请选择",
//         tags: true,
//         
//    });
	$("#test-table").bootstrapTable('destroy');
	$('#test-table').bootstrapTable({
		method : 'GET', //默认是post,不允许对静态文件访问
		url: "meeting/meetingList.action",		
		cache : false,
		striped : true,// 隔行加亮
		pagination : true, //开启分页功能    在表格底部显示分页工具栏
		pageSize : 5, //默认每页条数
		pageNumber : 1, //默认分页
		pageList : [ 8, 10, 20, 50, 100],//分页数		
//		smartDisplay: false,
		showColumns : true, //显示隐藏列
		showRefresh : false, //显示刷新按钮
		sortable: true,                     //是否启用排序
        sortOrder: "asc",                   //排序方式
        sortName : 'f_MeetingDateTime',
		toolbar:"#toolbar",
		singleselect : true,
		minimumCountColumns: 2,// 设置最少显示列个数
        clickToSelect: true, // 单击行即可以选中
//		search : false,//显示搜素表单
		silent : true, //刷新事件必须设置
		sidePagination : "server", //表示服务端请求  
		columns : [ {
			checkbox:true
		}   ,{
			field : "f_MeetingNo",
			title : "会议编号",
			class : 'col-md-1',
			align : "center",
			valign : "middle",
			sortable : "true"
		}, {
			field : "f_MeetingName",
			title : "会议名称",
			align : "center",
			valign : "middle",
			sortable : "true"
		}, {
			field : "f_RoomName",
			title : "会议室",
			align : "center",
			valign : "middle",
			sortable : "true"
		}, {
			field : "f_MeetingDateTime",
			title : "开始时间",
			align : "center",
			valign : "middle",
			sortable : "true"//,
//			formatter: function(value, row, index) {				
//	            return timestampToTime(value);
//	        }
		}, {
			field : "f_MeetingEndDate",
			title : "结束时间",
			align : "center",
			valign : "middle",
			sortable : "true"
		}, {
			field : "f_SignStartTime",
			title : "签到开始时间",
			align : "center",
			valign : "middle",
			sortable : "true",
			visible : false
		}, {
			field : "f_SignEndTime",
			title : "签到结束时间",
			align : "center",
			valign : "middle",
			sortable : "true",
			visible : false
		}, {
			field : "f_Content",
			title : "会议主题",
			align : "center",
			valign : "middle",
			sortable : "true"
		}, {
			field : "f_Notes",
			title : "备注",
			align : "center",
			valign : "middle",
			visible : false,
			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,
                meetingNo:$("#meetingNo").val(),
                meetingName:$("#meetingName").val(),
                roomId:$("#roomId").val(),
                MeetingBeginDate:$("#MeetingBeginDate").val(),
                MeetingEndDate:$("#MeetingEndDate").val()
                // searchText: params.searchText
            };
            return param;
        },
		formatLoadingMessage : function() {
			return "请稍等,正在加载中...";
		},
		formatNoMatches : function() {
			return '无符合条件的记录';
		}
	});
});
function operateFormatter(value, row, index) {
    return ['   ',
    	'   ',
        ''
        ].join('');
}
/**
 * 条件查询会议list
 * @returns
 */
function getMeetingByCon(){
	$("#test-table").bootstrapTable('refresh');
}
function timestampToTime(timestamp) {
    var date = new Date(timestamp * 1);//时间戳为10位需*1000,时间戳为13位的话不需乘1000
    Y = date.getFullYear() + '-';
    M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-';
    D = date.getDate() + ' ';
    h = date.getHours() + ':';
    m = date.getMinutes() + ':';
    s = date.getSeconds();
    return Y+M+D+h+m+s;
}
//删除
function delMeeting(id){
	if(confirm('您确定要删除这条数据吗?')){
		$.ajax({
			url:'meeting/delMeeting.action',
			dataType:'json',
//			contentType:'charset=utf-8',
			type:'post',
			data:{
				mid:id
			},
			success:function(data){
				if(data){
					alert('删除成功!');
				}else{
					alert('删除失败!');
				}
				$("#test-table").bootstrapTable('refresh');
			},
			error:function(){
				alert("请求失败!");
			}
		});
	}else{
		return false;
	}
}
//修改
function upMeeting(){
	var roomId=$("#f_RoomId1").val();
	if(roomId==0){
		alert('请选择会议地点');
		return;
	}
	var t1=$("#f_MeetingDateTime1").val();
	var t2=$("#f_MeetingEndDate1").val();
	var t3=$("#f_SignStartTime1").val();
	var t4=$("#f_SignEndTime1").val();
	if(t1==null || t1=="" || t2==null || t2=="" || t3==null || t3=="" || t4==null || t4==""){
		alert('会议时间不能为空');
		return;
	}
	if(t1>t2){
		alert('会议开始时间不能大于结束时间');
		return;
	}
	if(t3>t4){
		alert('会议签到时间不能大于结束时间');
		return;
	}
	
	var status = false;
	$.ajax({
		url:'meeting/checkMeetingDate.action',
		dataType:'json',
		type:'post',
		async: false,
		data:$("#myform").serialize(),
		success:function(data){
			status = data;
		},
		error:function(){
			alert("请求失败!");			
		}
	});	
	if(status==false){
		alert('会议时间已占用,请确认');
		return;
	}
	
	var x=$("#info1").text();
	if(x=='此名称可用'||x==""){
		if($("#myform").data('bootstrapValidator').validate().isValid()){
			$.ajax({
				url:'meeting/upMeeting.action',
				dataType:'json',
				type:'post',
				data:$("#myform").serialize(),
				success:function(data){
					if(data){
						alert('修改成功!');
					}else{
						alert('修改失败!');
					}
					$("#test-table").bootstrapTable('refresh');
					closeDlg();
				},
				error:function(){
					alert("请求失败!");
				}
			});
		}
	}else{
		alert("填写信息不合法!");
	}
}
//修改  打开
function getValue(id){  
	var roomId;
	$.ajax({
		url:'meeting/getMeeting.action',
		dataType:'json',
		type:'post',
		data:{
			mid:id
		}, 	 	
		success:function(data){
			$("#f_MeetingNo1").val(id);
			//$("#f_RoomNo1").val(data.meeting.f_RoomNo);
			$("#f_MeetingName1").val(data.meeting.f_MeetingName);
			roomId = data.meeting.f_RoomId;
//			$("#f_RoomId1").val(data.meeting.f_RoomId);
			$("#f_Content1").val(data.meeting.f_Content);
			$("#f_MeetingDateTime1").val(data.meeting.f_MeetingDateTime);
			$("#f_MeetingEndDate1").val(data.meeting.f_MeetingEndDate);
			$("#f_SignStartTime1").val(data.meeting.f_SignStartTime);
			$("#f_SignEndTime1").val(data.meeting.f_SignEndTime);
			$("#f_Notes1").val(data.meeting.f_Notes);
		},
		error:function(){
			alert("请求失败!");
		}
	});
	
	$.ajax({
		url:'meeting/meetingRoomList.action',
		dataType:'json',
		type:'post',
		async: false,
		data:{
			pageNumber:1,
			pageSize:1000
		},
		success:function(data){
			$("#f_RoomId1").empty();
			$("#f_RoomId1").append("");
			
			$.each(data.rows,function(index,items){
				if(this.f_RoomId==roomId){
					$("#f_RoomId1").append("");
				}else{
					$("#f_RoomId1").append("");
				}
			});
		},
		error:function(){
			alert("请求失败!");
		}
	});
	$("#mydlg").modal('show');
}
//修改  验证会议室名称是否唯一
function checkMeetingNo1(){
	var y=$("#f_MeetingNo1").val();
	//var x=$("#f_MeetingNo1").val();
	if(x!=""){
		$.ajax({
			url:'meeting/checkMeetingNo.action',
			dataType:'json',
			type:'post',
			data:{
				meetingNo:x,
				mid:y
			},
			success:function(data){
				$("#info1").text(data.msg);
			},
			error:function(){
				alert("请求失败!");
			}
		});
	}
}
//添加  验证会议室名称是否唯一
function checkMeetingNo(){
	var x=$("#f_MeetingNo").val();
	if(x!=""){
		$.ajax({
			url:'meeting/checkMeetingNo.action',
			dataType:'json',
			type:'post',
			data:{
				meetingNo:x
			},
			success:function(data){
				$("#info").text(data.msg);
			},
			error:function(){
				alert("请求失败!");
			}
		});
	}
}
//添加会议室
function saveMeeting(){	
	var roomId=$("#f_RoomId").val();
	if(roomId==0){
		alert('请选择会议地点');
		return;
	}
	
	var t1=$("#f_MeetingDateTime").val();
	var t2=$("#f_MeetingEndDate").val();
	var t3=$("#f_SignStartTime").val();
	var t4=$("#f_SignEndTime").val();
	if(t1==null || t1=="" || t2==null || t2=="" || t3==null || t3=="" || t4==null || t4==""){
		alert('请输入会议时间');
		return;
	}		
	if(t1>t2){
		alert('会议开始时间不能大于结束时间');
		return;
	}
	if(t3>t4){
		alert('会议签到时间不能大于结束时间');
		return;
	}
	
	var status = false;
	$.ajax({
		url:'meeting/checkMeetingDate.action',
		dataType:'json',
		type:'post',
		async: false,
		data:$("#addForm").serialize(),
		success:function(data){
			status = data;
		},
		error:function(){
			alert("请求失败!");			
		}
	});	
	if(status==false){
		alert('会议时间已占用,请确认');
		return;
	}
	
	formValidator();	
	var x=$("#info").text();
	if(x=="此名称可用" || x==null || x==""){
		if($("#addForm").data('bootstrapValidator').validate().isValid()){
			$.ajax({
				url:'meeting/saveMeeting.action',
				dataType:'json',
				type:'post',
				data:$("#addForm").serialize(),
				success:function(data){
					if(data){
						alert('添加成功!');		
						$("input[type=reset]").trigger("click");
					}else{
						alert('添加失败!');
					}
					$("#test-table").bootstrapTable('refresh');
					closeDlg();
				},
				error:function(){
					alert("请求失败!");
				}
			});
		}
	}else{
		alert("填写信息不合法!");
	}
}
//打开  添加窗口
function addMeeting(){	
	$("#addDlg").modal('show');
}
/**
 * 会议室列表
 * @returns
 */
function getRoomList(){
	$.ajax({
		url:'meeting/meetingRoomList.action',
		dataType:'json',
		type:'post',
		data:{
			pageNumber:1,
			pageSize:1000
		},
		success:function(data){
			$("#roomId").empty();
			$("#roomId").append("");
			$.each(data.rows,function(){
				$("#roomId").append("");
			});
			
			$("#f_RoomId").empty();
			$("#f_RoomId").append("");
			$.each(data.rows,function(){
				$("#f_RoomId").append("");
			});
		},
		error:function(){
			alert("请求失败!");
		}
	});
}
//关闭
function closeDlg(){
	$("#addDlg").modal('hide');
	$("#mydlg").modal('hide');
	$("#consumerDlg").modal('hide');
	$("#info").text(null);
	$("#info1").text(null);
	$("input[type=reset]").trigger("click");
	$('#myform').data('bootstrapValidator', null);
	$('#addForm').data('bootstrapValidator', null);
	$('#consumerform').data('bootstrapValidator', null);
	formValidator();
}
//人员
function getConsumer(id){
	$("#f_MeetingNo2").val(id);
	$.ajax({
		url:'meeting/getConsumerTree.action',
		dataType:'json',
		type:'post',
		data:{rid:id},
		success:function(data){
			 $('#tree').treeview({
                 data: data,         // 数据源
                 showCheckbox: true,   //是否显示复选框
                 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 {
                	  }
                 },
                 onNodeSelected: function (event, data) {
                	
                 }
             });
		},
		error:function(){
			alert("请求失败!");
		}
	});
	$("#consumerDlg").modal('show');
}
//保存人员
function saveConsumer(){
	var id=$("#f_MeetingNo2").val();
	var ids=[];
	var obj=$('#tree').treeview('getChecked');
	$.each(obj,function(index,items){
		ids.push(items.id);
	});
	$.ajax({
		url:'meeting/saveMeetingConsumer.action',
		dataType:'json',
		type:'post',
		traditional:true,
		data:{
			rid:id,
			mid:ids
			},
		success:function(data){
			if(data){
				alert("保存成功!");
			}else{
				alert("保存失败!");
			}
			$("#test-table").bootstrapTable("refresh");
			closeDlg();
		},
		error:function(){
			alert("请求失败!");
		}
	});
	
}
function formValidator(){
	$("#addForm").bootstrapValidator({
		fields:{
			f_MeetingName:{
				validators:{
					notEmpty:{
						message:'会议名称不能为空'
					},
					stringLength:{
						max:200,
						message:'字符长度不能超过200个字符'
					}
				}
			},
			f_RoomId:{
				validators:{
					notEmpty:{
						message:' 会议室不能为空'
					}
				}
			}
		}
	});
	
	$("#myform").bootstrapValidator({
		fields:{
			f_MeetingName:{
				validators:{
					notEmpty:{
						message:'会议名称不能为空'
					},
					stringLength:{
						max:200,
						message:'字符长度不能超过200个字符'
					}
				}
			},
			f_RoomId:{
				validators:{
					notEmpty:{
						message:'会议室不能为空'
					}
				}
			}
		}
	});
}
///*以下代码是实现自动显示当前日期的功能函数*/
//function today(){
//    var today=new Date();
//    var h=today.getFullYear();
//    var m=today.getMonth()+1;
//    var d=today.getDate();
//    var hh=today.getHours();
//    var mm=today.getMinutes();
//    var ss=today.getSeconds();
//    m= m<10?"0"+m:m;   //  这里判断月份是否<10,如果是在月份前面加'0'
//    d= d<10?"0"+d:d;        //  这里判断日期是否<10,如果是在日期前面加'0'
//    hh = hh < 10 ? "0" + hh:hh;
//    mm = mm < 10 ? "0" +  mm:mm;
//    ss = ss < 10 ? "0" + ss:ss;
//    return h+"-"+m+"-"+d+" "+hh+":"+mm+":"+ss;
//    return h+"-"+m+"-"+d;
//}
//document.getElementById("f_MeetingDateTime").value = today();//获取文本id并且传入当前日期