|  | @@ -0,0 +1,737 @@
 | 
	
		
			
				|  |  | +<%@ page contentType="text/html;charset=UTF-8" %>
 | 
	
		
			
				|  |  | +<%@ include file="/webpage/include/taglib.jsp"%>
 | 
	
		
			
				|  |  | +<html>
 | 
	
		
			
				|  |  | +<head>
 | 
	
		
			
				|  |  | +	<title>考勤规则</title>
 | 
	
		
			
				|  |  | +	<meta name="decorator" content="default"/>
 | 
	
		
			
				|  |  | +	<style type="text/css">
 | 
	
		
			
				|  |  | +		img {width: 50px; height: 50px;}
 | 
	
		
			
				|  |  | +		label.error{
 | 
	
		
			
				|  |  | +			top:40px;
 | 
	
		
			
				|  |  | +			left:0;
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	</style>
 | 
	
		
			
				|  |  | +	<script type="text/javascript" src="${ctxStatic}/ckeditor/ckeditor.js"></script>
 | 
	
		
			
				|  |  | +	<script type="text/javascript" language="JavaScript" for="window" event="onload">
 | 
	
		
			
				|  |  | +        var validateForm;
 | 
	
		
			
				|  |  | +        window.doSubmit = doSubmit;
 | 
	
		
			
				|  |  | +        function doSubmit(){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
 | 
	
		
			
				|  |  | +            if(validateForm.form()){
 | 
	
		
			
				|  |  | +                var officeCount =  $("#officeTableList tr:visible").length;
 | 
	
		
			
				|  |  | +                var userCount =  $("#userTableList tr:visible").length;
 | 
	
		
			
				|  |  | +                var placesCount =  $("#workAttendancePlaces tr:visible").length;
 | 
	
		
			
				|  |  | +                if(placesCount<1){
 | 
	
		
			
				|  |  | +                    parent.layer.msg("请选择考勤地点!",{icon:5});
 | 
	
		
			
				|  |  | +                    return false;
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                var placesCounts =  $("#workAttendancePlaces tr").length;
 | 
	
		
			
				|  |  | +                for(var i = 0;i < placesCounts; i++) {
 | 
	
		
			
				|  |  | +                    var tds =  $("#workAttendancePlaces"+i+" td:visible").length;
 | 
	
		
			
				|  |  | +                    if(tds > 0 ) {
 | 
	
		
			
				|  |  | +                        var placeScope = $("#workAttendancePlaces" + i + "_placeScope").val();
 | 
	
		
			
				|  |  | +                        var placeName = $("#workAttendancePlaces" + i + "_placeName").val();
 | 
	
		
			
				|  |  | +                        var wifi = $("#workAttendancePlaces" + i + "_wifi").val();
 | 
	
		
			
				|  |  | +                        if (wifi == null || wifi == '' || wifi == undefined) {
 | 
	
		
			
				|  |  | +                            if (placeName == null || placeName == '' || placeName == undefined) {
 | 
	
		
			
				|  |  | +                                parent.layer.msg("请选择考勤地址!", {icon: 5});
 | 
	
		
			
				|  |  | +                                return false;
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  | +                            if (placeScope == null || placeScope == '' || placeScope == undefined) {
 | 
	
		
			
				|  |  | +                                parent.layer.msg("请选择考勤半径!", {icon: 5});
 | 
	
		
			
				|  |  | +                                return false;
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                if(officeCount+userCount<1){
 | 
	
		
			
				|  |  | +                    parent.layer.msg("请选择考勤范围!",{icon:5});
 | 
	
		
			
				|  |  | +                    return false;
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                var officeCounts =  $("#officeTableList tr").length;
 | 
	
		
			
				|  |  | +                var userCounts =  $("#userTableList tr").length;
 | 
	
		
			
				|  |  | +                var userIds = "";
 | 
	
		
			
				|  |  | +                var officeIds = "";
 | 
	
		
			
				|  |  | +                for(var i = 0;i < officeCounts; i++) {
 | 
	
		
			
				|  |  | +                    var officeId = $("#officeList" + i + "_id").val();
 | 
	
		
			
				|  |  | +                    if(officeId != null && officeId != '' && officeId != undefined){
 | 
	
		
			
				|  |  | +                        officeIds += officeId+",";
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                for(var i = 0;i < userCounts; i++) {
 | 
	
		
			
				|  |  | +                    var userId = $("#userList" + i + "_id").val();
 | 
	
		
			
				|  |  | +                    if(userId != null && userId != '' && userId != undefined){
 | 
	
		
			
				|  |  | +                        userIds += userId+",";
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                var id = $("#id").val();
 | 
	
		
			
				|  |  | +                var succ = isSave(id,officeIds,userIds);
 | 
	
		
			
				|  |  | +                if(succ == false || succ == 'false'){
 | 
	
		
			
				|  |  | +                    return false;
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +                var start = $("#startTime").val();
 | 
	
		
			
				|  |  | +                var end = $("#endTime").val();
 | 
	
		
			
				|  |  | +                if(start!=undefined&&start!=null&&start!=''){
 | 
	
		
			
				|  |  | +                    var d1 = new Date();
 | 
	
		
			
				|  |  | +                    var format = d1.format('yyyy-MM-dd');
 | 
	
		
			
				|  |  | +                    $("#startTime").val(format+" "+start);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                if(end!=undefined&&end!=null&&end!=''){
 | 
	
		
			
				|  |  | +                    var d1 = new Date();
 | 
	
		
			
				|  |  | +                    var format = d1.format('yyyy-MM-dd');
 | 
	
		
			
				|  |  | +                    $("#endTime").val(format+" "+end);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                $("#inputForm").submit();
 | 
	
		
			
				|  |  | +                return true;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            return false;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        Date.prototype.format = function(fmt) {
 | 
	
		
			
				|  |  | +            var o = {
 | 
	
		
			
				|  |  | +                "M+" : this.getMonth()+1,                 //月份
 | 
	
		
			
				|  |  | +                "d+" : this.getDate(),                    //日
 | 
	
		
			
				|  |  | +                "h+" : this.getHours(),                   //小时
 | 
	
		
			
				|  |  | +                "m+" : this.getMinutes(),                 //分
 | 
	
		
			
				|  |  | +                "s+" : this.getSeconds(),                 //秒
 | 
	
		
			
				|  |  | +                "q+" : Math.floor((this.getMonth()+3)/3), //季度
 | 
	
		
			
				|  |  | +                "S"  : this.getMilliseconds()             //毫秒
 | 
	
		
			
				|  |  | +            };
 | 
	
		
			
				|  |  | +            if(/(y+)/.test(fmt)) {
 | 
	
		
			
				|  |  | +                fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            for(var k in o) {
 | 
	
		
			
				|  |  | +                if(new RegExp("("+ k +")").test(fmt)){
 | 
	
		
			
				|  |  | +                    fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            return fmt;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        $(document).ready(function() {
 | 
	
		
			
				|  |  | +            validateForm = $("#inputForm").validate({
 | 
	
		
			
				|  |  | +                submitHandler: function(form){
 | 
	
		
			
				|  |  | +                    loading('正在提交,请稍等...');
 | 
	
		
			
				|  |  | +                    form.submit();
 | 
	
		
			
				|  |  | +                },
 | 
	
		
			
				|  |  | +                errorContainer: "#messageBox",
 | 
	
		
			
				|  |  | +                errorPlacement: function(error, element) {
 | 
	
		
			
				|  |  | +                    $("#messageBox").text("输入有误,请先更正。");
 | 
	
		
			
				|  |  | +                    if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
 | 
	
		
			
				|  |  | +                        error.appendTo(element.parent().parent());
 | 
	
		
			
				|  |  | +                    } else {
 | 
	
		
			
				|  |  | +                        error.insertAfter(element);
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  | +            //只做查看时,禁用掉以下标签
 | 
	
		
			
				|  |  | +            laydate.render({
 | 
	
		
			
				|  |  | +                elem: '#startTime', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
 | 
	
		
			
				|  |  | +                event: 'focus', //响应事件。如果没有传入event,则按照默认的click
 | 
	
		
			
				|  |  | +                type : 'time',
 | 
	
		
			
				|  |  | +                format:'HH:mm:ss'
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  | +            laydate.render({
 | 
	
		
			
				|  |  | +                elem: '#endTime', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
 | 
	
		
			
				|  |  | +                event: 'focus', //响应事件。如果没有传入event,则按照默认的click
 | 
	
		
			
				|  |  | +                type : 'time',
 | 
	
		
			
				|  |  | +                format:'HH:mm:ss'
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  | +           /* laydate.render({
 | 
	
		
			
				|  |  | +                elem: '#workStartTime', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
 | 
	
		
			
				|  |  | +                event: 'focus', //响应事件。如果没有传入event,则按照默认的click
 | 
	
		
			
				|  |  | +                type : 'datetime'
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  | +            laydate.render({
 | 
	
		
			
				|  |  | +                elem: '#workEndTime', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
 | 
	
		
			
				|  |  | +                event: 'focus', //响应事件。如果没有传入event,则按照默认的click
 | 
	
		
			
				|  |  | +                type : 'datetime'
 | 
	
		
			
				|  |  | +            });*/
 | 
	
		
			
				|  |  | +            $("#attachment_btn").click(function () {
 | 
	
		
			
				|  |  | +                $("#attachment_file").click();
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  | +            var branchOffice = $("#branchOfficeId").val();
 | 
	
		
			
				|  |  | +            changeBtn(branchOffice);
 | 
	
		
			
				|  |  | +            var notWorkCount = $("#notWorkCount").val();
 | 
	
		
			
				|  |  | +            dispSimpleName(notWorkCount);
 | 
	
		
			
				|  |  | +            var type = $("#type").val();
 | 
	
		
			
				|  |  | +            dispSimpleInfo(type);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +	</script>
 | 
	
		
			
				|  |  | +	<script type="text/javascript">
 | 
	
		
			
				|  |  | +        function changeUser(ids,names,parents) {
 | 
	
		
			
				|  |  | +            var split = ids.split(',');
 | 
	
		
			
				|  |  | +            var split2 = names.split(',');
 | 
	
		
			
				|  |  | +            $("#userTableList").html("");
 | 
	
		
			
				|  |  | +            userIdx=0;
 | 
	
		
			
				|  |  | +            for(var i=0;i<split.length;i++){
 | 
	
		
			
				|  |  | +                var id = split[i];
 | 
	
		
			
				|  |  | +                if(id==''||id==null){
 | 
	
		
			
				|  |  | +                    continue;
 | 
	
		
			
				|  |  | +                }else {
 | 
	
		
			
				|  |  | +                    var obj = {'id':id,'name':split2[i],'officeName':parents[i]};
 | 
	
		
			
				|  |  | +                    addRow('#userTableList',userIdx,userTpl,obj);
 | 
	
		
			
				|  |  | +                    userIdx+=1;
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        function changeOffice(ids,names,parentIds) {
 | 
	
		
			
				|  |  | +            $("#officeTableList").html("");
 | 
	
		
			
				|  |  | +            officeIdx=0;
 | 
	
		
			
				|  |  | +            for(var i=0;i<ids.length;i++){
 | 
	
		
			
				|  |  | +                var obj = {'id':ids[i],'name':parentIds[i]};
 | 
	
		
			
				|  |  | +                addRow('#officeTableList',officeIdx,officeTpl,obj);
 | 
	
		
			
				|  |  | +                officeIdx+=1;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        function getSelectOfficeIds() {
 | 
	
		
			
				|  |  | +            var selectedIds = "";
 | 
	
		
			
				|  |  | +            var pidArr = $("#officeTableList tr .officeId");
 | 
	
		
			
				|  |  | +            for(var i=0;i<pidArr.length;i++){
 | 
	
		
			
				|  |  | +                selectedIds+=$(pidArr[i]).val();
 | 
	
		
			
				|  |  | +                selectedIds+=",";
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            return selectedIds;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        function getSelectUserIds() {
 | 
	
		
			
				|  |  | +            var selectedIds = "";
 | 
	
		
			
				|  |  | +            var pidArr = $("#userTableList tr .userId");
 | 
	
		
			
				|  |  | +            for(var i=0;i<pidArr.length;i++){
 | 
	
		
			
				|  |  | +                selectedIds+=$(pidArr[i]).val();
 | 
	
		
			
				|  |  | +                selectedIds+=",";
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            return selectedIds;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        function addRow(list, idx, tpl, row){
 | 
	
		
			
				|  |  | +            var idx2 = $("#workAttendancePlaces tr").length;
 | 
	
		
			
				|  |  | +            if(list == '#workAttendancePlaces'){
 | 
	
		
			
				|  |  | +                bornTemplete(list, idx, tpl, row, idx2);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        function bornTemplete(list, idx, tpl, row, idx1){
 | 
	
		
			
				|  |  | +            $(list).append(Mustache.render(tpl, {
 | 
	
		
			
				|  |  | +                idx: idx, delBtn: true, row: row,
 | 
	
		
			
				|  |  | +                order:idx1 + 1
 | 
	
		
			
				|  |  | +            }));
 | 
	
		
			
				|  |  | +            $(list+idx).find("select").each(function(){
 | 
	
		
			
				|  |  | +                $(this).val($(this).attr("data-value"));
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  | +            $(list+idx).find("input[type='checkbox'], input[type='radio']").each(function(){
 | 
	
		
			
				|  |  | +                var ss = $(this).attr("data-value").split(',');
 | 
	
		
			
				|  |  | +                for (var i=0; i<ss.length; i++){
 | 
	
		
			
				|  |  | +                    if($(this).val() == ss[i]){
 | 
	
		
			
				|  |  | +                        $(this).attr("checked","checked");
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        function delRow(obj, prefix) {
 | 
	
		
			
				|  |  | +            var delFlag = $(prefix+"_delFlag");
 | 
	
		
			
				|  |  | +            delFlag.val("1");
 | 
	
		
			
				|  |  | +            $(obj).parent().parent().hide();
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        function changePlaces(name,itude,address) {
 | 
	
		
			
				|  |  | +            var _placeName = name+"_placeName";
 | 
	
		
			
				|  |  | +            var _itude = name+"_itude";
 | 
	
		
			
				|  |  | +            var areaName= $("#"+name+"_areaName").val();
 | 
	
		
			
				|  |  | +            $.ajax({
 | 
	
		
			
				|  |  | +                type:'post',
 | 
	
		
			
				|  |  | +                url:'${ctx}/workattendance/workAttendanceRule/isCity',
 | 
	
		
			
				|  |  | +                async:false,
 | 
	
		
			
				|  |  | +                data:{
 | 
	
		
			
				|  |  | +                    "itude":itude
 | 
	
		
			
				|  |  | +                },
 | 
	
		
			
				|  |  | +                success:function(data){
 | 
	
		
			
				|  |  | +                    if(data!=areaName){
 | 
	
		
			
				|  |  | +                        parent.layer.msg("该地点不在所选城市范围内!", {icon: 5});
 | 
	
		
			
				|  |  | +                        return false;
 | 
	
		
			
				|  |  | +					}else{
 | 
	
		
			
				|  |  | +                        $("#"+_placeName).val(address);
 | 
	
		
			
				|  |  | +                        $("#"+_itude).val(itude);
 | 
	
		
			
				|  |  | +					}
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        //打开对话框(查看)
 | 
	
		
			
				|  |  | +        function openDialogInfo(title,url,width,height,name){
 | 
	
		
			
				|  |  | +			var areaName = $(name+"_areaName").val();
 | 
	
		
			
				|  |  | +			var itude = $(name+"_itude").val();
 | 
	
		
			
				|  |  | +            if(areaName == null || areaName == '' || areaName == undefined ){
 | 
	
		
			
				|  |  | +                parent.layer.msg("请先输入城市!",{icon:5});
 | 
	
		
			
				|  |  | +                return;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            url += encodeURIComponent(areaName+"&itude="+itude);
 | 
	
		
			
				|  |  | +            if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端,就使用自适应大小弹窗
 | 
	
		
			
				|  |  | +                width='auto';
 | 
	
		
			
				|  |  | +                height='auto';
 | 
	
		
			
				|  |  | +            }else{//如果是PC端,根据用户设置的width和height显示。
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            top.layer.open({
 | 
	
		
			
				|  |  | +                type: 2,
 | 
	
		
			
				|  |  | +                skin: 'one-btn',
 | 
	
		
			
				|  |  | +                area: [width, height],
 | 
	
		
			
				|  |  | +                title: title,
 | 
	
		
			
				|  |  | +                maxmin: true, //开启最大化最小化按钮
 | 
	
		
			
				|  |  | +                content: url ,
 | 
	
		
			
				|  |  | +                btn: ['关闭'],
 | 
	
		
			
				|  |  | +                cancel: function(index){
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        function dispSimpleName(val) {
 | 
	
		
			
				|  |  | +            if(val == '1'){
 | 
	
		
			
				|  |  | +                $("#notWorkNeed1").show();
 | 
	
		
			
				|  |  | +                $("#notWorkType1").show();
 | 
	
		
			
				|  |  | +                $("#notWorkVacation1").show();
 | 
	
		
			
				|  |  | +                $("#notWorkVacationRead").hide();
 | 
	
		
			
				|  |  | +                $("#notWorkNeedRead").hide();
 | 
	
		
			
				|  |  | +                $("#notWorkTypeRead").hide();
 | 
	
		
			
				|  |  | +            }else {
 | 
	
		
			
				|  |  | +                $("#notWorkNeed").val("");
 | 
	
		
			
				|  |  | +                $("#notWorkType").val("");
 | 
	
		
			
				|  |  | +                $("#notWorkVacation").val("");
 | 
	
		
			
				|  |  | +                $("#notWorkNeedRead").show();
 | 
	
		
			
				|  |  | +                $("#notWorkTypeRead").show();
 | 
	
		
			
				|  |  | +                $("#notWorkVacationRead").show();
 | 
	
		
			
				|  |  | +                $("#notWorkNeed1").hide();
 | 
	
		
			
				|  |  | +                $("#notWorkType1").hide();
 | 
	
		
			
				|  |  | +                $("#notWorkVacation1").hide();
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        function dispSimpleInfo(val) {
 | 
	
		
			
				|  |  | +            if(val == '2'){
 | 
	
		
			
				|  |  | +                $("#startTime1").show();
 | 
	
		
			
				|  |  | +                $("#endime1").show();
 | 
	
		
			
				|  |  | +                $("#startTime2").hide();
 | 
	
		
			
				|  |  | +                $("#endime2").hide();
 | 
	
		
			
				|  |  | +                $("#notWorkCount1").show();
 | 
	
		
			
				|  |  | +                $("#notWorkCount2").hide();
 | 
	
		
			
				|  |  | +            }else if(val == '1') {
 | 
	
		
			
				|  |  | +                $("#startTime").val("");
 | 
	
		
			
				|  |  | +                $("#endTime").val("");
 | 
	
		
			
				|  |  | +                $("#startTime1").hide();
 | 
	
		
			
				|  |  | +                $("#endime1").hide();
 | 
	
		
			
				|  |  | +                $("#startTime2").show();
 | 
	
		
			
				|  |  | +                $("#endime2").show();
 | 
	
		
			
				|  |  | +                $("#notWorkCount1").show();
 | 
	
		
			
				|  |  | +                $("#notWorkCount2").hide();
 | 
	
		
			
				|  |  | +            }else {
 | 
	
		
			
				|  |  | +                dispSimpleName();
 | 
	
		
			
				|  |  | +                $("#notWorkCount").val("");
 | 
	
		
			
				|  |  | +                $("#startTime").val("");
 | 
	
		
			
				|  |  | +                $("#endTime").val("");
 | 
	
		
			
				|  |  | +                $("#notWorkCount1").hide();
 | 
	
		
			
				|  |  | +                $("#notWorkCount2").show();
 | 
	
		
			
				|  |  | +                $("#startTime1").hide();
 | 
	
		
			
				|  |  | +                $("#endime1").hide();
 | 
	
		
			
				|  |  | +                $("#startTime2").show();
 | 
	
		
			
				|  |  | +                $("#endime2").show();
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        function addInfo() {
 | 
	
		
			
				|  |  | +            parent.layer.msg("请先选择分公司!", {icon: 5});
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        function changeBtn(obj) {
 | 
	
		
			
				|  |  | +            if(obj == null || obj == '' || obj == undefined){
 | 
	
		
			
				|  |  | +                $("#userId1").hide();
 | 
	
		
			
				|  |  | +                $("#officeId1").hide();
 | 
	
		
			
				|  |  | +                $("#userId2").show();
 | 
	
		
			
				|  |  | +                $("#officeId2").show();
 | 
	
		
			
				|  |  | +            }else {
 | 
	
		
			
				|  |  | +                $("#userId1").show();
 | 
	
		
			
				|  |  | +                $("#officeId1").show();
 | 
	
		
			
				|  |  | +                $("#userId2").hide();
 | 
	
		
			
				|  |  | +                $("#officeId2").hide();
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        function isSave(id,officeIds,userIds) {
 | 
	
		
			
				|  |  | +            var save = false;
 | 
	
		
			
				|  |  | +            var branchOffice = $("#branchOfficeId").val();
 | 
	
		
			
				|  |  | +            $.ajax({
 | 
	
		
			
				|  |  | +                type:'post',
 | 
	
		
			
				|  |  | +                url:'${ctx}/workattendance/workAttendanceRule/isSave',
 | 
	
		
			
				|  |  | +                data:{
 | 
	
		
			
				|  |  | +                    "id":id,"officeIds":officeIds,"userIds":userIds,"branchOffice":branchOffice
 | 
	
		
			
				|  |  | +                },
 | 
	
		
			
				|  |  | +                async: false,
 | 
	
		
			
				|  |  | +                success:function(data){
 | 
	
		
			
				|  |  | +                    if(!data.success){
 | 
	
		
			
				|  |  | +                        parent.layer.msg(data.msg,{icon:5});
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                    save = data.success;
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            })
 | 
	
		
			
				|  |  | +			return save;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +	</script>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +</head>
 | 
	
		
			
				|  |  | +<body >
 | 
	
		
			
				|  |  | +<div class="single-form">
 | 
	
		
			
				|  |  | +	<div class="container">
 | 
	
		
			
				|  |  | +		<form:form id="inputForm" modelAttribute="workAttendanceRule" enctype="multipart/form-data" action="${ctx}/workattendance/workAttendanceRule/save" method="post" class="form-horizontal">
 | 
	
		
			
				|  |  | +			<form:hidden path="id"/>
 | 
	
		
			
				|  |  | +			<sys:message content="${message}"/>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +			<div class="form-group layui-row first">
 | 
	
		
			
				|  |  | +				<div class="form-group-label"><h2>基本信息</h2></div>
 | 
	
		
			
				|  |  | +				<div class="layui-item layui-col-sm6">
 | 
	
		
			
				|  |  | +					<label class="layui-form-label"><span class="require-item">*</span>分公司:</label>
 | 
	
		
			
				|  |  | +					<div class="layui-input-block with-icon">
 | 
	
		
			
				|  |  | +						<sys:treeselectChange id="branchOffice" name="branchOffice.id" value="${workAttendanceRule.branchOffice.id}" labelName="branchOffice.name"  labelValue="${workAttendanceRule.branchOffice.name}"
 | 
	
		
			
				|  |  | +										title="部门" url="/sys/office/treeDataCompanyDSF?type=2" cssClass="form-control required layui-input" allowClear="true" />
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +					</div>
 | 
	
		
			
				|  |  | +				</div>
 | 
	
		
			
				|  |  | +				<div class="layui-item layui-col-sm6">
 | 
	
		
			
				|  |  | +					<label class="layui-form-label"><span class="require-item">*</span>规则编号:</label>
 | 
	
		
			
				|  |  | +					<div class="layui-input-block">
 | 
	
		
			
				|  |  | +						<form:input path="number" htmlEscape="false"  minlength="1" maxlength="3" class="form-control number layui-input required"/>
 | 
	
		
			
				|  |  | +					</div>
 | 
	
		
			
				|  |  | +				</div>
 | 
	
		
			
				|  |  | +				<div class="layui-item layui-col-sm6">
 | 
	
		
			
				|  |  | +					<label class="layui-form-label"><span class="require-item">*</span>规则名称:</label>
 | 
	
		
			
				|  |  | +					<div class="layui-input-block">
 | 
	
		
			
				|  |  | +						<form:input path="name" htmlEscape="false"  maxlength="30" class="form-control layui-input required"/>
 | 
	
		
			
				|  |  | +					</div>
 | 
	
		
			
				|  |  | +				</div>
 | 
	
		
			
				|  |  | +			</div>
 | 
	
		
			
				|  |  | +			<div class="form-group layui-row">
 | 
	
		
			
				|  |  | +				<div class="form-group-label"><h2>办公区域</h2></div>
 | 
	
		
			
				|  |  | +				<div class="layui-item nav-btns">
 | 
	
		
			
				|  |  | +					<a class="nav-btn nav-btn-add" onclick="addRow('#workAttendancePlaces', workAttendancePlacesRowIdx, workAttendancePlacesTpl);workAttendancePlacesRowIdx = workAttendancePlacesRowIdx + 1;" title="新增"><i class="fa fa-plus"></i> 新增</a>
 | 
	
		
			
				|  |  | +				</div>
 | 
	
		
			
				|  |  | +				<div class="layui-item layui-col-xs12 form-table-container">
 | 
	
		
			
				|  |  | +					<table id="contentTable2" class="table table-bordered table-condensed can-edit">
 | 
	
		
			
				|  |  | +						<thead>
 | 
	
		
			
				|  |  | +						<tr>
 | 
	
		
			
				|  |  | +							<th width="15%">城市</th>
 | 
	
		
			
				|  |  | +							<th>地理位置</th>
 | 
	
		
			
				|  |  | +							<th width="15%">经纬度</th>
 | 
	
		
			
				|  |  | +							<th width="12%">半径(米)</th>
 | 
	
		
			
				|  |  | +							<th width="10%">WIFI</th>
 | 
	
		
			
				|  |  | +							<th width="15%">无线SSID</th>
 | 
	
		
			
				|  |  | +							<th width="120px">操作</th>
 | 
	
		
			
				|  |  | +						</tr>
 | 
	
		
			
				|  |  | +						</thead>
 | 
	
		
			
				|  |  | +						<tbody id="workAttendancePlaces">
 | 
	
		
			
				|  |  | +						<c:if test="${not empty workAttendanceRule.workAttendancePlaces}">
 | 
	
		
			
				|  |  | +							<c:forEach items="${workAttendanceRule.workAttendancePlaces}" var="workAttendancePlaces" varStatus="index">
 | 
	
		
			
				|  |  | +								<tr id="workAttendancePlaces${index.index}">
 | 
	
		
			
				|  |  | +									<td class="hide">
 | 
	
		
			
				|  |  | +										<input id="workAttendancePlaces${index.index}_id" name="workAttendancePlaces[${index.index}].id" type="hidden" value="${workAttendancePlaces.id}"/>
 | 
	
		
			
				|  |  | +										<input id="workAttendancePlaces${index.index}_delFlag" name="workAttendancePlaces[${index.index}].delFlag" type="hidden" value="0"/>
 | 
	
		
			
				|  |  | +									</td>
 | 
	
		
			
				|  |  | +									<td>
 | 
	
		
			
				|  |  | +										<sys:treeselect id="workAttendancePlaces${index.index}_area" name="workAttendancePlaces[${index.index}].area.id" value="${workAttendancePlaces.area.id}" labelName="workAttendancePlaces[${index.index}].area.name" labelValue="${workAttendancePlaces.area.name}"
 | 
	
		
			
				|  |  | +														title="城市" url="/sys/area/treeData" rule="rule" cssClass="form-control layui-input required" allowClear="true" notAllowSelectParent="false"/>
 | 
	
		
			
				|  |  | +									</td>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +									<td>
 | 
	
		
			
				|  |  | +										<input id="workAttendancePlaces${index.index}_placeName" readonly="true" name="workAttendancePlaces[${index.index}].placeName" type="text" maxlength="32" value="${workAttendancePlaces.placeName}"  class="form-control "/>
 | 
	
		
			
				|  |  | +									</td>
 | 
	
		
			
				|  |  | +									<td>
 | 
	
		
			
				|  |  | +										<input id="workAttendancePlaces${index.index}_itude" readonly="true" name="workAttendancePlaces[${index.index}].itude" type="text" maxlength="32" value="${workAttendancePlaces.itude}" class="form-control "/>
 | 
	
		
			
				|  |  | +									</td>
 | 
	
		
			
				|  |  | +									<td>
 | 
	
		
			
				|  |  | +										<c:choose>
 | 
	
		
			
				|  |  | +											<c:when test="${not empty workAttendanceRule.workAttendancePlaces}">
 | 
	
		
			
				|  |  | +												<input id="workAttendancePlaces${index.index}_placeScope" name="workAttendancePlaces[${index.index}].placeScope" type="text" minlength="1" maxlength="6" value="${workAttendancePlaces.placeScope}" class="form-control number "/>
 | 
	
		
			
				|  |  | +											</c:when>
 | 
	
		
			
				|  |  | +											<c:otherwise>
 | 
	
		
			
				|  |  | +												<input id="workAttendancePlaces${index.index}_placeScope" name="workAttendancePlaces[${index.index}].placeScope" readonly="true" type="text" minlength="1" maxlength="6" value="${workAttendancePlaces.placeScope}" class="form-control number "/>
 | 
	
		
			
				|  |  | +											</c:otherwise>
 | 
	
		
			
				|  |  | +										</c:choose>
 | 
	
		
			
				|  |  | +									</td>
 | 
	
		
			
				|  |  | +									<td>
 | 
	
		
			
				|  |  | +										<input id="workAttendancePlaces${index.index}_wifi" readonly="true" name="workAttendancePlaces[${index.index}].wifi" type="text" maxlength="32" value="${workAttendancePlaces.wifi}" class="form-control "/>
 | 
	
		
			
				|  |  | +									</td>
 | 
	
		
			
				|  |  | +									<td>
 | 
	
		
			
				|  |  | +										<input id="workAttendancePlaces${index.index}_wifiName" readonly="true" name="workAttendancePlaces[${index.index}].wifiName"  type="text" maxlength="32" value="${workAttendancePlaces.wifi}" class="form-control "/>
 | 
	
		
			
				|  |  | +									</td>
 | 
	
		
			
				|  |  | +									<td class="text-center op-td">
 | 
	
		
			
				|  |  | +										<c:if test="${empty workAttendancePlaces.wifi}">
 | 
	
		
			
				|  |  | +											<span onclick="openDialogInfo('选择地址','${ctx}/workattendance/workAttendanceRule/baidiApi?name=workAttendancePlaces${index.index}&city=','80%','80%','#workAttendancePlaces${index.index}')" class="op-btn op-btn-add" ><i class="fa fa-plus"></i> 选择</span>
 | 
	
		
			
				|  |  | +										</c:if>
 | 
	
		
			
				|  |  | +										<span class="op-btn op-btn-delete" onclick="delRow(this, '#workAttendancePlaces${index.index}')" title="删除"><i class="glyphicon glyphicon-remove"></i> 删除</span>
 | 
	
		
			
				|  |  | +									</td>
 | 
	
		
			
				|  |  | +								</tr>
 | 
	
		
			
				|  |  | +							</c:forEach>
 | 
	
		
			
				|  |  | +						</c:if>
 | 
	
		
			
				|  |  | +						</tbody>
 | 
	
		
			
				|  |  | +					</table>
 | 
	
		
			
				|  |  | +					<script type="text/template" id="workAttendancePlacesTpl">//<!--
 | 
	
		
			
				|  |  | +                                    <tr id="workAttendancePlaces{{idx}}">
 | 
	
		
			
				|  |  | +                                        <td class="hide">
 | 
	
		
			
				|  |  | +											<input id="workAttendancePlaces{{idx}}_id" name="workAttendancePlaces[{{idx}}].id" type="hidden" value="{{row.id}}"/>
 | 
	
		
			
				|  |  | +											<input id="workAttendancePlaces{{idx}}_delFlag" name="workAttendancePlaces[{{idx}}].delFlag" type="hidden" value="0"/>
 | 
	
		
			
				|  |  | +										</td>
 | 
	
		
			
				|  |  | +										<td>
 | 
	
		
			
				|  |  | +											<sys:treeselect id="workAttendancePlaces{{idx}}_area" name="workAttendancePlaces[{{idx}}].area.id" value="${workAttendanceRule.area.id}" labelName="workAttendancePlaces[{{idx}}].area.name" labelValue="${workAttendanceRule.area.name}"
 | 
	
		
			
				|  |  | +															title="城市" url="/sys/area/treeData" rule="rule" cssClass="form-control layui-input required" allowClear="true" notAllowSelectParent="true"/>
 | 
	
		
			
				|  |  | +										</td>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +										<td>
 | 
	
		
			
				|  |  | +											<input id="workAttendancePlaces{{idx}}_placeName" readonly="true"name="workAttendancePlaces[{{idx}}].placeName" type="text" maxlength="32" value=""  class="form-control "/>
 | 
	
		
			
				|  |  | +										</td>
 | 
	
		
			
				|  |  | +										<td>
 | 
	
		
			
				|  |  | +											<input id="workAttendancePlaces{{idx}}_itude" readonly="true" name="workAttendancePlaces[{{idx}}].itude" type="text" maxlength="32" value="" class="form-control "/>
 | 
	
		
			
				|  |  | +										</td>
 | 
	
		
			
				|  |  | +										<td>
 | 
	
		
			
				|  |  | +											<input id="workAttendancePlaces{{idx}}_placeScope" name="workAttendancePlaces[{{idx}}].placeScope" minlength="1" maxlength="6" type="text" maxlength="32" value="" class="form-control number "/>
 | 
	
		
			
				|  |  | +										</td>
 | 
	
		
			
				|  |  | +										<td>
 | 
	
		
			
				|  |  | +											<input id="workAttendancePlaces{{idx}}_wifi" readonly="true" name="workAttendancePlaces[{{idx}}].wifi" type="text" maxlength="32" value="" class="form-control "/>
 | 
	
		
			
				|  |  | +										</td>
 | 
	
		
			
				|  |  | +										<td>
 | 
	
		
			
				|  |  | +											<input id="workAttendancePlaces{{idx}}_wifiName" readonly="true" name="workAttendancePlaces[{{idx}}].wifiName" type="text" maxlength="32" value="" class="form-control  "/>
 | 
	
		
			
				|  |  | +										</td>
 | 
	
		
			
				|  |  | +										<td class="text-center op-td">
 | 
	
		
			
				|  |  | +											<span onclick="openDialogInfo('选择地址','${ctx}/workattendance/workAttendanceRule/baidiApi?name=workAttendancePlaces{{idx}}&city=','80%','80%','#workAttendancePlaces{{idx}}')" class="op-btn op-btn-add" ><i class="fa fa-plus"></i> 选择</span>
 | 
	
		
			
				|  |  | +											<span class="op-btn op-btn-delete" onclick="delRow(this, '#workAttendancePlaces{{idx}}')" title="删除"><i class="glyphicon glyphicon-remove"></i> 删除</span>
 | 
	
		
			
				|  |  | +										</td>
 | 
	
		
			
				|  |  | +                                    </tr>//-->
 | 
	
		
			
				|  |  | +					</script>
 | 
	
		
			
				|  |  | +					<script type="text/javascript">
 | 
	
		
			
				|  |  | +                        var workAttendancePlacesRowIdx = 0, workAttendancePlacesTpl = $("#workAttendancePlacesTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
 | 
	
		
			
				|  |  | +                        if($("#id").val()){
 | 
	
		
			
				|  |  | +                            workAttendancePlacesRowIdx = ${fn:length(workAttendanceRule.workAttendancePlaces)};
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                        $(document).ready(function() {
 | 
	
		
			
				|  |  | +                            /*var data = ${fns:toJson(workAttendanceRule.workAttendancePlaces)};
 | 
	
		
			
				|  |  | +                    for (var i=0; i<data.length; i++){
 | 
	
		
			
				|  |  | +                        addRow('#workAttendancePlaces', workAttendancePlacesRowIdx, workAttendancePlacesTpl, data[i]);
 | 
	
		
			
				|  |  | +                        workAttendancePlacesRowIdx = workAttendancePlacesRowIdx + 1;
 | 
	
		
			
				|  |  | +                    }*/
 | 
	
		
			
				|  |  | +                        });
 | 
	
		
			
				|  |  | +					</script>
 | 
	
		
			
				|  |  | +				</div>
 | 
	
		
			
				|  |  | +			</div>
 | 
	
		
			
				|  |  | +			<div class="form-group layui-row">
 | 
	
		
			
				|  |  | +				<div class="form-group-label"><h2>考勤方式</h2></div>
 | 
	
		
			
				|  |  | +				<div class="layui-item layui-col-sm6">
 | 
	
		
			
				|  |  | +					<label class="layui-form-label"><span class="require-item">*</span>考勤方式:</label>
 | 
	
		
			
				|  |  | +					<div class="layui-input-block">
 | 
	
		
			
				|  |  | +						<form:select path="type" class="form-control required simple-select" onchange="dispSimpleInfo(this.value);">
 | 
	
		
			
				|  |  | +                            <form:option value="" label=""/>
 | 
	
		
			
				|  |  | +							<form:options items="${fns:getDictList('attendance_type')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
 | 
	
		
			
				|  |  | +						</form:select>
 | 
	
		
			
				|  |  | +					</div>
 | 
	
		
			
				|  |  | +				</div>
 | 
	
		
			
				|  |  | +				<div class="layui-item layui-col-sm6">
 | 
	
		
			
				|  |  | +					<div class="layui-input-block">
 | 
	
		
			
				|  |  | +					</div>
 | 
	
		
			
				|  |  | +				</div>
 | 
	
		
			
				|  |  | +				<div class="layui-item layui-col-sm6 ">
 | 
	
		
			
				|  |  | +					<label class="layui-form-label"><span class="require-item">*</span>上班时间:</label>
 | 
	
		
			
				|  |  | +					<div id="startTime1" class="layui-input-block"  style="display:none">
 | 
	
		
			
				|  |  | +						<input id="startTime" name="startTime" style="background-color: #ffffff;" readonly="true" htmlEscape="false"  class="laydate-icondate form-control layer-date layui-input laydate-icon required"
 | 
	
		
			
				|  |  | +							   value="<fmt:formatDate value="${workAttendanceRule.startTime}" pattern="HH:mm:ss"/>"/>
 | 
	
		
			
				|  |  | +					</div>
 | 
	
		
			
				|  |  | +					<div id="startTime2" class="layui-input-block"  style="display:none">
 | 
	
		
			
				|  |  | +                        <form:input path="" htmlEscape="false" readonly="true" minlength="1" maxlength="3" class="form-control layui-input"/>
 | 
	
		
			
				|  |  | +					</div>
 | 
	
		
			
				|  |  | +				</div>
 | 
	
		
			
				|  |  | +				<div class="layui-item layui-col-sm6">
 | 
	
		
			
				|  |  | +					<label class="layui-form-label"><span class="require-item">*</span>下班时间:</label>
 | 
	
		
			
				|  |  | +					<div id="endime1" class="layui-input-block">
 | 
	
		
			
				|  |  | +						<input id="endTime" name="endTime" style="background-color: #ffffff;" readonly="true" htmlEscape="false"  class="laydate-icondate form-control layer-date layui-input laydate-icon required"
 | 
	
		
			
				|  |  | +							   value="<fmt:formatDate value="${workAttendanceRule.endTime}" pattern="HH:mm:ss"/>"/>
 | 
	
		
			
				|  |  | +					</div>
 | 
	
		
			
				|  |  | +                    <div id="endime2" class="layui-input-block"  style="display:none">
 | 
	
		
			
				|  |  | +                        <form:input path="" htmlEscape="false" readonly="true" minlength="1" maxlength="3" class="form-control layui-input"/>
 | 
	
		
			
				|  |  | +                    </div>
 | 
	
		
			
				|  |  | +				</div>
 | 
	
		
			
				|  |  | +			</div>
 | 
	
		
			
				|  |  | +            <div class="form-group layui-row">
 | 
	
		
			
				|  |  | +                <div class="form-group-label"><h2>非工作日加班</h2></div>
 | 
	
		
			
				|  |  | +                <div class="layui-item layui-col-sm6">
 | 
	
		
			
				|  |  | +                    <label class="layui-form-label double-line"><span class="require-item">*</span>非工作日计算加班:</label>
 | 
	
		
			
				|  |  | +                    <div id="notWorkCount1" class="layui-input-block">
 | 
	
		
			
				|  |  | +                        <form:select path="notWorkCount" class="form-control required simple-select" onchange="dispSimpleName(this.value);">
 | 
	
		
			
				|  |  | +                            <form:option value="" label=""/>
 | 
	
		
			
				|  |  | +                            <form:options items="${fns:getDictList('not_work_count')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
 | 
	
		
			
				|  |  | +                        </form:select>
 | 
	
		
			
				|  |  | +                    </div>
 | 
	
		
			
				|  |  | +                    <div id="notWorkCount2" class="layui-input-block" style="display:none">
 | 
	
		
			
				|  |  | +						<form:input path="" htmlEscape="false" readonly="true" minlength="1" maxlength="3" class="form-control layui-input"/>
 | 
	
		
			
				|  |  | +                    </div>
 | 
	
		
			
				|  |  | +                </div>
 | 
	
		
			
				|  |  | +                <div class="layui-item layui-col-sm6">
 | 
	
		
			
				|  |  | +                    <label class="layui-form-label double-line">非工作日加班需要申请:</label>
 | 
	
		
			
				|  |  | +                    <div id="notWorkNeed1" class="layui-input-block"  style="display:none">
 | 
	
		
			
				|  |  | +                        <form:select path="notWorkNeed" class="form-control required simple-select">
 | 
	
		
			
				|  |  | +							<form:option value="" label=""/>
 | 
	
		
			
				|  |  | +                            <form:options items="${fns:getDictList('not_work_need')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
 | 
	
		
			
				|  |  | +                        </form:select>
 | 
	
		
			
				|  |  | +                    </div>
 | 
	
		
			
				|  |  | +                    <div id="notWorkNeedRead" class="layui-input-block">
 | 
	
		
			
				|  |  | +                        <form:input path="" htmlEscape="false" readonly="true" minlength="1" maxlength="3" class="form-control layui-input"/>
 | 
	
		
			
				|  |  | +                    </div>
 | 
	
		
			
				|  |  | +                </div>
 | 
	
		
			
				|  |  | +                <div class="layui-item layui-col-sm6">
 | 
	
		
			
				|  |  | +                    <label class="layui-form-label double-line">非工作日加班处理方式:</label>
 | 
	
		
			
				|  |  | +                    <div id="notWorkType1" class="layui-input-block"  style="display:none">
 | 
	
		
			
				|  |  | +                        <form:select path="notWorkType" class="form-control required simple-select">
 | 
	
		
			
				|  |  | +							<form:option value="" label=""/>
 | 
	
		
			
				|  |  | +                            <form:options items="${fns:getDictList('not_work_type')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
 | 
	
		
			
				|  |  | +                        </form:select>
 | 
	
		
			
				|  |  | +                    </div>
 | 
	
		
			
				|  |  | +                    <div id="notWorkTypeRead" class="layui-input-block">
 | 
	
		
			
				|  |  | +                        <form:input path="" htmlEscape="false" readonly="true" minlength="1" maxlength="3" class="form-control layui-input "/>
 | 
	
		
			
				|  |  | +                    </div>
 | 
	
		
			
				|  |  | +                </div>
 | 
	
		
			
				|  |  | +                <div class="layui-item layui-col-sm6">
 | 
	
		
			
				|  |  | +                    <label class="layui-form-label double-line"><span class="require-item">*</span>调休假期类型:</label>
 | 
	
		
			
				|  |  | +                    <div id="notWorkVacation1" class="layui-input-block with-icon" style="display:none">
 | 
	
		
			
				|  |  | +						<sys:treeLeave id="leaveType" name="leaveType" value="${workAttendanceRule.leaveType}" labelName="leaveTypeName" labelValue="${workAttendanceRule.leaveTypeName}"
 | 
	
		
			
				|  |  | +									   title="调休请假类型" url="/leavetype/leaveType/treeData?typeId=1" isAll="true"  cssClass="form-control required layui-input" notAllowSelectParent="true"/>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +					</div>
 | 
	
		
			
				|  |  | +                    <div id="notWorkVacationRead" class="layui-input-block">
 | 
	
		
			
				|  |  | +                        <form:input path="" htmlEscape="false" readonly="true" minlength="1" maxlength="3" class="form-control layui-input"/>
 | 
	
		
			
				|  |  | +                    </div>
 | 
	
		
			
				|  |  | +                </div>
 | 
	
		
			
				|  |  | +            </div>
 | 
	
		
			
				|  |  | +			<div class="form-group layui-row">
 | 
	
		
			
				|  |  | +				<div class="form-group-label"><h2>规则使用范围-部门</h2></div>
 | 
	
		
			
				|  |  | +				<div id="officeId1" class="layui-item nav-btns" style="display:none">
 | 
	
		
			
				|  |  | +					<sys:treeselectofficesChange id="offices" name="" value="" labelName="memberNameStr" labelValue=""
 | 
	
		
			
				|  |  | +										   retnParent="true" checked="true" notAllowSelectParent="true" title="部门" url="/sys/office/treeDataBranchOffice?type=2"  cssClass="form-control required" allowClear="true"/>
 | 
	
		
			
				|  |  | +				</div>
 | 
	
		
			
				|  |  | +                <div id="officeId2" style="display:none">
 | 
	
		
			
				|  |  | +                    <button style="font-size:14px;" type="button" onclick="addInfo()" class="nav-btn nav-btn-add"><i class="fa fa-plus"></i> 选择
 | 
	
		
			
				|  |  | +                    </button>
 | 
	
		
			
				|  |  | +                </div>
 | 
	
		
			
				|  |  | +				<table id="officeTable" class="table table-bordered table-condensed details">
 | 
	
		
			
				|  |  | +					<thead>
 | 
	
		
			
				|  |  | +					<tr>
 | 
	
		
			
				|  |  | +						<th class="hide"></th>
 | 
	
		
			
				|  |  | +						<th>部门</th>
 | 
	
		
			
				|  |  | +						<th>操作</th>
 | 
	
		
			
				|  |  | +					</tr>
 | 
	
		
			
				|  |  | +					</thead>
 | 
	
		
			
				|  |  | +					<tbody id="officeTableList">
 | 
	
		
			
				|  |  | +					</tbody>
 | 
	
		
			
				|  |  | +				</table>
 | 
	
		
			
				|  |  | +				<script type="text/template" id="officeTpl">//<!--
 | 
	
		
			
				|  |  | +                    <tr id="officeList{{idx}}">
 | 
	
		
			
				|  |  | +                        <td class="hide">
 | 
	
		
			
				|  |  | +                            <input id="officeList{{idx}}_id" name="officeList[{{idx}}].id" readonly="true" value="{{row.id}}" type="hidden" class="form-control officeId"/>
 | 
	
		
			
				|  |  | +                            <input id="officeList{{idx}}_delFlag" name="officeList[{{idx}}].delFlag" readonly="true" value="0" type="hidden" class="form-control delFlag"/>
 | 
	
		
			
				|  |  | +                        </td>
 | 
	
		
			
				|  |  | +                        <td>
 | 
	
		
			
				|  |  | +                            {{row.name}}
 | 
	
		
			
				|  |  | +                        </td>
 | 
	
		
			
				|  |  | +                        <td class="text-center op-td">
 | 
	
		
			
				|  |  | +                                    <a href=javascript:void(0); onclick="delRow(this, '#officeList{{idx}}')"   class="op-btn op-btn-delete"><i class="fa fa-trash"></i> 取消</a>
 | 
	
		
			
				|  |  | +                        </td>
 | 
	
		
			
				|  |  | +                    </tr>//-->
 | 
	
		
			
				|  |  | +				</script>
 | 
	
		
			
				|  |  | +			</div>
 | 
	
		
			
				|  |  | +			<div class="form-group layui-row">
 | 
	
		
			
				|  |  | +				<div class="form-group-label"><h2>规则使用范围-成员</h2></div>
 | 
	
		
			
				|  |  | +				<div id="userId1" class="layui-item nav-btns"  style="display:none">
 | 
	
		
			
				|  |  | +					<sys:treeselectusersChange id="users" name="" value="" labelName="memberNameStr" labelValue=""
 | 
	
		
			
				|  |  | +										 retnParent="true" title="用户" url="/sys/office/treeDataBranchOffice?type=3" checked="true" cssClass="form-control required" allowClear="true" notAllowSelectParent="true"/>
 | 
	
		
			
				|  |  | +				</div>
 | 
	
		
			
				|  |  | +                <div id="userId2" style="display:none">
 | 
	
		
			
				|  |  | +                    <button style="font-size:14px;" type="button" onclick="addInfo()" class="nav-btn nav-btn-add"><i class="fa fa-plus"></i> 选择
 | 
	
		
			
				|  |  | +                    </button>
 | 
	
		
			
				|  |  | +                </div>
 | 
	
		
			
				|  |  | +				<table id="userTable" class="table table-bordered table-condensed details">
 | 
	
		
			
				|  |  | +					<thead>
 | 
	
		
			
				|  |  | +					<tr>
 | 
	
		
			
				|  |  | +						<th class="hide"></th>
 | 
	
		
			
				|  |  | +						<th>姓名</th>
 | 
	
		
			
				|  |  | +						<th>部门</th>
 | 
	
		
			
				|  |  | +						<th>操作</th>
 | 
	
		
			
				|  |  | +					</tr>
 | 
	
		
			
				|  |  | +					</thead>
 | 
	
		
			
				|  |  | +					<tbody id="userTableList">
 | 
	
		
			
				|  |  | +					</tbody>
 | 
	
		
			
				|  |  | +				</table>
 | 
	
		
			
				|  |  | +				<script type="text/template" id="userTpl">//<!--
 | 
	
		
			
				|  |  | +                    <tr id="userList{{idx}}">
 | 
	
		
			
				|  |  | +                        <td class="hide">
 | 
	
		
			
				|  |  | +                            <input id="userList{{idx}}_id" name="userList[{{idx}}].id" readonly="true" value="{{row.id}}" type="hidden" class="form-control userId"/>
 | 
	
		
			
				|  |  | +                            <input id="userList{{idx}}_delFlag" name="userList[{{idx}}].delFlag" readonly="true" value="0" type="hidden" class="form-control delFlag"/>
 | 
	
		
			
				|  |  | +                        </td>
 | 
	
		
			
				|  |  | +                        <td>
 | 
	
		
			
				|  |  | +                        {{row.name}}
 | 
	
		
			
				|  |  | +                        </td>
 | 
	
		
			
				|  |  | +                        <td>
 | 
	
		
			
				|  |  | +                        {{row.officeName}}
 | 
	
		
			
				|  |  | +                        </td>
 | 
	
		
			
				|  |  | +                        <td class="text-center op-td">
 | 
	
		
			
				|  |  | +                                    <a href=javascript:void(0); onclick="delRow(this, '#userList{{idx}}')"   class="op-btn op-btn-delete"><i class="fa fa-trash"></i> 取消</a>
 | 
	
		
			
				|  |  | +                        </td>
 | 
	
		
			
				|  |  | +                    </tr>//-->
 | 
	
		
			
				|  |  | +				</script>
 | 
	
		
			
				|  |  | +				<script type="text/javascript">
 | 
	
		
			
				|  |  | +                    var userIdx = 0, userTpl = $("#userTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
 | 
	
		
			
				|  |  | +                    var officeIdx = 0, officeTpl = $("#officeTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    $(document).ready(function() {
 | 
	
		
			
				|  |  | +                        var data = ${fns:toJson(workAttendanceRule.officeList)};
 | 
	
		
			
				|  |  | +                        if (data!=null) {
 | 
	
		
			
				|  |  | +                            for (var i = 0; i < data.length; i++) {
 | 
	
		
			
				|  |  | +                                addRow('#officeTableList', officeIdx, officeTpl, data[i]);
 | 
	
		
			
				|  |  | +                                officeIdx = officeIdx + 1;
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                        var dataBank = ${fns:toJson(workAttendanceRule.userList)};
 | 
	
		
			
				|  |  | +                        if (dataBank!=null) {
 | 
	
		
			
				|  |  | +                            for (var i = 0; i < dataBank.length; i++) {
 | 
	
		
			
				|  |  | +                                addRow('#userTableList', userIdx, userTpl, dataBank[i]);
 | 
	
		
			
				|  |  | +                                userIdx = userIdx + 1;
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                    });
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    function addRow(list, idx, tpl, row){
 | 
	
		
			
				|  |  | +                        var idx1 = 0;
 | 
	
		
			
				|  |  | +                        if('#userTableList'==list){
 | 
	
		
			
				|  |  | +                            idx1 = $("#userTableList tr").length
 | 
	
		
			
				|  |  | +                        }else if('#officeTableList'==list){
 | 
	
		
			
				|  |  | +                            idx1 = $("#officeTableList tr").length
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                        bornTemplete(list, idx, tpl, row, idx1);
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                    function bornTemplete(list, idx, tpl, row, idx1){
 | 
	
		
			
				|  |  | +                        $(list).append(Mustache.render(tpl, {
 | 
	
		
			
				|  |  | +                            idx: idx, delBtn: true, row: row,
 | 
	
		
			
				|  |  | +                            order:idx1 + 1, idx1:idx1
 | 
	
		
			
				|  |  | +                        }));
 | 
	
		
			
				|  |  | +                        $(list+idx).find("select").each(function(){
 | 
	
		
			
				|  |  | +                            $(this).val($(this).attr("data-value"));
 | 
	
		
			
				|  |  | +                        });
 | 
	
		
			
				|  |  | +                        $(list+idx).find("input[type='checkbox'], input[type='radio']").each(function(){
 | 
	
		
			
				|  |  | +                            var ss = $(this).attr("data-value").split(',');
 | 
	
		
			
				|  |  | +                            for (var i=0; i<ss.length; i++){
 | 
	
		
			
				|  |  | +                                if($(this).val() == ss[i]){
 | 
	
		
			
				|  |  | +                                    $(this).attr("checked","checked");
 | 
	
		
			
				|  |  | +                                }
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  | +                        });
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                    function delRow(obj, prefix){
 | 
	
		
			
				|  |  | +                        var delFlag = $(prefix+"_delFlag");
 | 
	
		
			
				|  |  | +                        delFlag.val("1");
 | 
	
		
			
				|  |  | +                        $(obj).parent().parent().hide();
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +				</script>
 | 
	
		
			
				|  |  | +			</div>
 | 
	
		
			
				|  |  | +			<div class="form-group layui-row page-end"></div>
 | 
	
		
			
				|  |  | +		</form:form>
 | 
	
		
			
				|  |  | +	</div>
 | 
	
		
			
				|  |  | +</div>
 | 
	
		
			
				|  |  | +</body>
 | 
	
		
			
				|  |  | +</html>
 |