var idNumber;
var loadingMsg;
var trainFileNames = [];
var trainFilePaths = [];
var examFileNames = [];
var examFilePaths = [];
var staffType = "";
var tree;
var transfer;
var formSelects;
var olddata;
layui.use(['element','layer','transfer', 'form', 'upload','laydate','tree'], function () {
    var laydate = layui.laydate;
    var upload = layui.upload;
    var form = layui.form;
    var layer = layui.layer;
    tree = layui.tree;
	formSelects= layui.formSelects;
	 transfer  = layui.transfer ;
	 formSelects.disabled('proName', true);
	 $('#gtName').attr('disabled', true);
	 $('#chonsenBtn').show()
	if(olddata){
		setData2(olddata);
	}
    form.render();
    //人员类型选择
    $('.btnOption1 > div').click(function () {
        $(this).addClass('pass').siblings().removeClass('pass');
        var value = $(this).data('value');
        $(this).attr('value', value).siblings().attr('value', '');
        staffType = value;
        console.log(staffType)
        if(staffType==1){
			formSelects.disabled('proName', false);
			formSelects.render()
			initProSelect();
            $('#gtName').attr('disabled', false);
            $('#chonsenBtn').hide()
			$("#userType").val(1);
        }
        if(staffType==0){
            formSelects.disabled('proName', true);
            $('#gtName').attr('disabled', true);
            $('#chonsenBtn').show()
			$("#userType").val(0);
        }
        form.render();

    });

    //文件上传
    var uploadInst = upload.render({
        elem: '#contractFile' //绑定元素
        ,url: PATH_URL + "/personbase/upload" //上传接口
        ,auto: false //选择文件后不自动上传
		,multiple: true   //是否允许多文件上传，默认未false
		,dataType: "json"
		,exts: 'jpg|png|jpeg|pdf|doc|docx'
		,number: 1  //最大上传数量
		,size: 1024 * 5 //最大文件大小，单位k
        ,bindAction: '#submitBt' //指向一个按钮触发上传
        ,choose: function(obj){
            //将每次选择的文件追加到文件队列
            var files = obj.pushFile();
            //预读本地文件，如果是多文件，则会遍历。(不支持ie8/9)
            obj.preview(function(index, file, result){
                console.log(index); //得到文件索引
                console.log(file); //得到文件对象
                console.log(result); //得到文件base64编码，比如图片
                
                //这里还可以做一些 append 文件列表 DOM 的操作
                
                //obj.upload(index, file); //对上传失败的单个文件重新上传，一般在某个事件中使用
                //delete files[index]; //删除列表中对应的文件，一般在某个事件中使用
            });
        },
		before: function (obj) {
			this.data = {
				photoType: "hxy"
			};
		},
        done: function(res){
            console.log(res,"upload");
        },
        error: function(){
            //请求异常回调
        }
    });
    // 渲染开始时间选择器
    laydate.render({
        elem: '#startTime',
        type: 'date',
        format: 'yyyy-MM-dd',
        fullPanel: true,
        done: function(value) {
            // 当选择开始时间大于结束时间，将结束时间置为空
            var statrTime = value;
            var endTime= $("#endTime").val();
            if (statrTime != '') {
                if (endTime != '') {
                    if (statrTime > endTime) {
                        $("#endTime").val('');
                    }
                }
            }

            // 当选择开始时间后，更新结束时间选择器的最小值
            // 当选择开始时间后，更新结束时间选择器的最小值
            var endTimePicker = laydate.render({
                elem: '#endTime',
                type: 'date',
                format: 'yyyy-MM-dd',
                fullPanel: true,
                // 将开始时间作为结束时间选择器的最小值，包括时分
                // min: value,
                // // 设置结束日期最大值为下个月的最后一天
                // max: getNextMonthLastDay(),
                done: function(value) {
                    var startTime = $("#startTime").val();
                    if (startTime != '' && value != '') {
                        if (value < startTime) {
                            $("#startTime").val('');
                        }
                    }
                }
            });
        },
        // 设置开始日期最小值为下个月的第一天
        // min: getNextMonthFirstDay(),
        // 设置开始日期最大值为下个月的最后一天
        // max: getNextMonthLastDay()
    });
    // 渲染结束时间选择器
    laydate.render({
        elem: '#endTime',
        type: 'date',
        format: 'yyyy-MM-dd',
        fullPanel: true,
        // 设置结束日期最小值为下个月的第一天
        // min: getNextMonthFirstDay(),
        // 设置结束日期最大值为下个月的最后一天
        // max: getNextMonthLastDay()
    });
    //监听填写事件-身份证号码
    $('#idNumber').on('input', function() {
        let inputVal = $(this).val();
        let IDNu = document.getElementById('idNumber');
        if (inputVal==''){
            $(this).val('');
        }
        var re =/^\d{6}(((19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2][0-9]|3[0-1])\d{3}([0-9]|x|X))|(\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2][0-9]|3[0-1])\d{3}))$/;
        if (re.test(inputVal)) {
            // layer.msg('身份证号码填写完成');
            //出生日期
            let age = inputVal.substring(6, 10) + "-" + inputVal.substring(10, 12) + "-" + inputVal.substring(12, 14);
            $('#beBorn').val(age)
            //性别 
            let sew = ''
            var sec = inputVal.substring(16, 17);
            if (sec % 2 == 0) {
                sew = "女";
            } else {
                sew = "男";
            }
            $('#sex').val(sew)

        }

        
    });
    //监听填写事件
    $('#wagesMeasure').on('input', function() {
        var inputVal = $(this).val();
        if (inputVal==''){
            $(this).val('');
        }
        // 转换为数字，并检查是否超出范围
        var numVal = Number(inputVal);
        if (isNaN(numVal) || numVal < 0 || numVal > 10000) {
            // 如果值不合法，清空输入框
            layer.msg('请输入不超过10000的正整数', {icon: 5});
            $(this).val('');
        }
    });
    //监听填写事件
    $('#wagesDay').on('input', function() {
        var inputVal = $(this).val();
        if (inputVal==''){
            $(this).val('');
        }
        // 转换为数字，并检查是否超出范围
        var numVal = Number(inputVal);
        if (isNaN(numVal) || numVal < 0 || numVal > 10000) {
            // 如果值不合法，清空输入框
            layer.msg('请输入不超过10000的正整数', {icon: 5});
            $(this).val('');
        }
    });
    form.verify({
        //数组的两个值分别代表：[正则匹配、匹配不符时的提示文字]
        tel: [/^1[3-9]\d{9}$/,'手机号格式不正确'],
        idNumber:[/^\d{6}(((19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2][0-9]|3[0-1])\d{3}([0-9]|x|X))|(\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2][0-9]|3[0-1])\d{3}))$/,'身份证号码不正确']
    });  
    //取消按钮
    $("#closeBt").click(function () {
        var index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
        parent.layer.close(index); //再执行关闭
    });
    // 提交按钮
    // 验证成功后才会执行下面的操作
    form.on('submit(formDemo)', function (data) {
        console.log(data)
		var userType=$("#userType").val();
		if(userType==1){
			var proid="";
			var dd=formSelects.value('proName', 'all');
			console.log(dd,"formSelects");
			if(dd.length>0){
				$.each(dd,function(index,value){
					proid=proid+value.value+",";
				});
				data.field.proId=proid;
			}else{
				layer.msg("请选择工程")
				return;
			}
		}
        if($("#id").val()==''){
            addData(data); // 新增
        }else{
            updateData(data); // 修改
        }
    });
});


function initProSelect(arr){
	var yj_id=localStorage.getItem("selectyj");
    $.ajax({
        type:"post",
        url : PATH_URL + "/personbase/getProDetail",
        data:{
			id:yj_id
        },
        dataType:"json",
        success:function(res){
   //          $("#proName").unbind();
   //          $("#proName option:gt(0)").remove();
   //          var html="";
   //          for(var i=0;i<res.data.length;i++){
   //              html+="<option value='"+res.data[i].id+"'>"+ res.data[i].title +"</option>";
   //          }
   //          $("#proName").append(html);
			// formSelects.value('proName', [2]); 
			var data=[];
			for(var i=0;i<res.data.length;i++){
				var obj={};
				obj.value=res.data[i].id;
				obj.name=res.data[i].title;
				data.push(obj)
			}
			formSelects.data('proName', 'local', {
			        arr: data
			});
			try{
				var arr=$("#proId").val().split(",");
				formSelects.value('proName', arr);
			}catch(e){}
        },
        error:function(data){
        }
    });
}
/**
 * 获取下个月第一天
 * @returns {string}
 */
function getNextMonthFirstDay() {
    var today = new Date();
    var nextMonth = new Date(today.getFullYear(), today.getMonth() + 1, 1);
    return nextMonth.getFullYear() + '-' + (nextMonth.getMonth() + 1) + '-01 00:00';
}

/**
 * 获取下个月最后一天
 * @returns {string}
 */
function getNextMonthLastDay() {
    var today = new Date();
    var nextMonth = new Date(today.getFullYear(), today.getMonth() + 2, 0);
    return nextMonth.getFullYear() + '-' + (nextMonth.getMonth() + 1) + '-' + nextMonth.getDate() + ' 23:59';
}
//打开人员选择工程弹窗
function openChosenBox(){
    var height = '90%'; 
    var width = '60%';  
    var index = layer.open({
        title: [`选择工程、杆塔 `, 'color:#3B70A1;background-color:#fff;font-size:20px'],
        type: 1,
        content: $("#chosenLine").html(),
        btn: ['确认', '取消'],
        closeBtn: 1,
        area: [width, height],
        success: function (layero, index) {
            initTree()
            /*var myIframe = parent.window[layero.find('iframe')[0]['name']];
            var json = {'proIds': proId}
            myIframe.setParams(json)*/
        },
        yes: function (index, layero) {//确认
            console.log(1)
			var getData = transfer.getData('gtList');
			var pros=[];
			var gts=[];
			$.each(getData,function(index,item){
				pros.push(item.proName);
				gts.push(item.value);
			})
			var uniqueproArray = $.grep(pros, function (item, index) {
			  return index === $.inArray(item, pros);
			});
			var uniquegtsArray = $.grep(gts, function (item, index) {
			  return index === $.inArray(item, gts);
			});
			var area="";
			$.each(uniqueproArray,function(index,item){
				var gt="";
				$.each(getData,function(index1,item1){
					if(item==item1.proName){
						gt=gt+item1.gtName+"/";
					}
				})
				area=area+item+"("+gt+");"
			})
			var gtid="";
			$.each(uniquegtsArray,function(index,item){
				gtid=gtid+item+",";
			})
			$("#gtName").val(area);
			$("#gtId").val(gtid);
            layer.close(index);
        },
        btn2: function (index, layero) {//取消
            console.log(2)
            layer.close(index);
        },
        cancel: function(index, layero){//关闭
            console.log(3)
            layer.close(index);
        },
        
    });
}

//工程树Tree
function initTree(){
    layui.use(['tree'], function () {
        var tree = layui.tree;
        var renderTree = function (data) {
            tree.render({
                elem: '#lineTree',
                data: data,
                id: 'lineTree',
                showCheckbox: false,
                accordion: false,
                click: function (obj) {
                    console.log(obj);
                    initGtList(obj.data.id);
                }
            });
 
        }
		var yj_id=localStorage.getItem("selectyj");
		console.log(yj_id,"yj_id");
		$.ajax({//id获取详情打开弹窗传值子页面
		    type: 'post',
		    url: PATH_URL + "/personbase/getTreeDetail",
		    dataType: 'json',
		    data: {
		        id: yj_id
		    },
		    success: function (data) {
				renderTree(data.data);
			}
		})
    });
}
function initGtList(id){
	var gtdata=[];
	try{
		gtdata=transfer.getData('gtList');
	}catch(e){}
	$.ajax({//id获取详情打开弹窗传值子页面
		type: 'post',
		url: PATH_URL + "/personbase/getGtDetail",
		dataType: 'json',
		data: {
			id: id,
			userId:$("#id").val()
		},
		success: function (data) {
			var newvalue=[];
			var newdata=[];
			if(gtdata.length>0){
				$.each(gtdata,function(index,item){
					item.disabled=false;
					newvalue.push(item.value);
					newdata.push(item);
				});
				$.each(data.data,function(index,item){
					var f=0;
					$.each(newdata,function(index1,item1){
						if(item.value==item1.value){
							f=1;
						}
					});
					if(f==0){
						newdata.push(item);
					}
				});
			}else if(data.datad.length>0){
				gtdata=data.datad;
				$.each(gtdata,function(index,item){
					item.disabled=false;
					newvalue.push(item.value);
					newdata.push(item);
				});
				$.each(data.data,function(index,item){
					var f=0;
					$.each(newdata,function(index1,item1){
						if(item.value==item1.value){
							f=1;
						}
					});
					if(f==0){
						newdata.push(item);
					}
				});
			}else{
				newdata=data.data;
			}
			transfer.render({
				elem: '#gtList',
				data: newdata,
				value:newvalue,
				showSearch: true,
				id: 'gtList',
				title: ['杆塔', '已选']  //自定义标题
				,onchange: function(obj, index){
				  var arr = ['左边', '右边'];
				  // layer.alert('来自 <strong>'+ arr[index] + '</strong> 的数据：'+ JSON.stringify(obj)); //获得被穿梭时的数据
				}
			})
			console.log(transfer.getData('gtList'))
		}
	})
}

/**
 * 新增
 * @param formData
 */
function addData(formData) {
		var file=formData.field.file;
		if(file){
			layer.msg("请上传合同附件！");
			return;
		}
        // 加载提示
        let loadingMsg = layer.msg('数据请求中,请稍候...', {icon: 16, scrollbar: false, time: 0, shade: [0.8, '#393D49']});
        // form请求地址file
        let formUrl =  PATH_URL + "/personbase/insertUser";
       $.ajax({
           type: 'POST',
           async: false, // 默认异步true,false表示同步
           url: formUrl, // 请求地址
           data:formData.field,
           success: function (data) {
               layer.close(loadingMsg); // 关闭提示层
               if(data.code == 200){
                   layer.msg("新增成功");
				     $("#hideUpload1").trigger("click");
                   reloading();
               }else{
                   layer.alert(data.msg);
               }
           },
           error: function (XMLHttpRequest, textStatus, e) {
               layer.close(loadingMsg);
               layer.msg('数据请求发生异常,请稍后重试', {icon: 16, scrollbar: false});
           }
       });
}

/**
 * 修改
 * @param formData
 * @returns {boolean}
 */
function updateData(formData) {
        // 加载提示
        let loadingMsg = layer.msg('数据请求中,请稍候...', {icon: 16, scrollbar: false, time: 0, shade: [0.8, '#393D49']});
        // form请求地址
        let formUrl =  PATH_URL + "/personbase/updateUser";
        $.ajax({
            type: 'POST',
            async: false, // 默认异步true,false表示同步
            url: formUrl, // 请求地址
            data:formData.field,
            success: function (data) {
                layer.close(loadingMsg); // 关闭提示层
                if(data.code == 200){
                    layer.msg("修改成功");
                    // reloading();
                }else{
                    layer.alert(data.msg);
                }
            },
            error: function (XMLHttpRequest, textStatus, e) {
                layer.close(loadingMsg);
                layer.msg('数据请求发生异常,请稍后重试', {icon: 16, scrollbar: false});
            }
        });
}







/**
 * 隐藏提交按钮和关闭按钮
 */
function hideSubmit() {
    // 使用getElementById根据ID选择按钮
    var submitButton = document.getElementById('submitBt');
    var closeButton = document.getElementById('closeBt');
    // 如果按钮存在，则隐藏它
    if (submitButton) {
        submitButton.style.display = 'none';
    }
    if (closeButton) {
        closeButton.style.display = 'none';
    }
}
function setData(data){
	olddata=data;
}
/**
 * 设置数据
 * @param data
 */
function setData2(data) {
    console.log(data);
    $("#id").val(data.id);
    $("#userName").val(data.userName);
    $("#idNumber").val(data.idNumber);
	$("#sex").val(data.sex);
	$("#beBorn").val(data.beBorn);
	$("#tel").val(data.tel);
	$("#address").val(data.address);
	$("#healthStatus").val(data.healthStatus);
	$("#degree").val(data.degree);
	$("#gtName").val(data.gtName);
	$("#wagesMeasure").val(data.wagesMeasure);
	$("#wagesDay").val(data.wagesDay);
	$("#startTime").val(data.startTime);
	$("#endTime").val(data.endTime);
	$("#bank").val(data.bank);
	$("#bankCard").val(data.bankCard);
	$("#unionpayNum").val(data.unionpayNum);
	$("#bankBranch").val(data.bankBranch);
    // getTaskSource("taskSourceId",data[0].taskSourceId);
    // $("#taskSourceId").val(data[0].taskSourceId);
    // 首先移除所有选项的 pass 类
    $('.btnOption1 > div').removeClass('pass');
    // 根据 值 添加 pass 类和设置 value 属性
    $('.btnOption1 > div').each(function () {
		console.log($(this).data('value'),"bot");
        if ($(this).data('value') == data.userType) {
            $(this).addClass('pass').attr('value', data.userType);
        } else {
            $(this).attr('value', '');
        }
    });
	$("#userType").val(data.userType);
	if(data.userType==1){
		$("#proId").val(data.proId);
		// formSelects.disabled('proName', false);
		initProSelect();
	    $('#gtName').attr('disabled', false);
	    $('#chonsenBtn').hide()
	}
	if(data.userType==0){
		$("#gtId").val(data.gtId);
	    formSelects.disabled('proName', true);
	    $('#gtName').attr('disabled', true);
	    $('#chonsenBtn').show()
	}
}



/**
 * 关闭页面 刷新页面
 */
function reloading() {
    var index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
    parent.layer.close(index); //再执行关闭
    window.parent.location.reload();
}

function importData() {
    var fileData = new FormData();
    fileData.append('file', $('#file')[0].files[0]);
    fileData.append('remark', $("#remark").val());
    fileData.append('trainFileName', trainFileNames.toString());
    fileData.append('trainFilePath', trainFilePaths.toString());
    fileData.append('examFileName', examFileNames.toString());
    fileData.append('examFilePath', examFilePaths.toString());
    // 加载提示
    loadingMsg = top.layer.msg('数据上传中,请稍候...', {icon: 16, scrollbar: false, time: 0, shade: [0.8, '#393D49']});
    // form请求地址
    var formUrl = oiPlanUrl + "/offlineResUpload/importData";
    $.ajax({
        type: 'POST',
        url: formUrl, // 请求地址
        data: fileData,
        processData: false,
        contentType: false,
        success: function (data) {
            top.layer.close(loadingMsg); //再执行关闭
            if (data.code == 200) {
                top.layer.alert(data.msg);
                reloading();
            } else {
                top.layer.alert(data.msg, {icon: 2});
            }
        },
        error: function (XMLHttpRequest, textStatus, e) {
            layer.msg('数据请求发生异常,请稍后重试', {icon: 16, scrollbar: false});
            top.layer.close(addLoadingMsg); //再执行关闭
        }
    });
}
