Index: ssts-web/src/main/webapp/disinfectsystem/schedule/scheduleInformation.js =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/schedule/scheduleInformation.js (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/schedule/scheduleInformation.js (revision 24034) @@ -0,0 +1,705 @@ +$(function(){ +// $.ajaxSetup ({ +// cache: false //close AJAX cache +// }); + + //加载列表信息 + var scheduleInformations=getAllScheduleInformations(); + //加载班次定义信息 + + //添加表单--获取“选择人员”下拉框内容 + var users=getUsers(); + //添加内容到下拉框 + var users_select=""; + for(var i=0;i"+users[i].userFullName+""; + } + $("#name").append(users_select); + $("#select_people").append(users_select); + + //添加“选择班次”下拉框内容-begin + var allScheduleDefinition=getAllScheduleDefinition(); + //页面编辑下拉框内容 + var scheduleDefinitionArray=[]; + //“添加排班”表单“选择班次”下拉框内容 + var context=""; + for(var i=0;i"+sheduleName+""; + var json={}; + json.value=id; + json.text=sheduleName; + scheduleDefinitionArray.push(json); + } + + + + + var voList=jsonRevert(scheduleInformations.data); + var times=scheduleInformations.conditionTimes; + + var columns=[]; + var c1=[ + { + checkbox:true, + align:'center', + valign:"middle", + width : '10', + rowspan:3 + }, + { + title:'姓名', + field:"userName", + classes:"userName", + align:"center", + valign:"middle", + width : '70', + clickToSelect:true, + rowspan:3 + }, + { + title:'时间', + align:"center", + valign:"middle", + width : '200', + colspan:times.length + }, + { + title:'剩余假期', + field:"holiDay", + align:"center", + valign:"middle", + width : '30', + rowspan:3, + editable: { + type: 'text', + title: '编辑剩余假期', + validate: function (v) { + if (!v) return '用户名不能为空'; + } + } + } + ]; + + + var data=[]; + var weeks=[]; + + + //遍历 + for(var i=0;i"+value+"0的元素 + var userIds=$("#select_people").val(""); + var scheduleDefinitionId=$("#select_schedule").val(""); + $("#select_people").selectpicker('render'); + $("#select_people").selectpicker('refresh'); + $("#start0").val(""); + $("#end0").val(""); + if(num>0){ + for(var i=1;i<=num;i++){ + $("#start"+i).parent().parent().parent().remove(); + } + num=0; + } + //清除原数据--end + $("#select_schedule").html(""); + $("#select_schedule").append(context); + $("#select_schedule").selectpicker('refresh'); + $("#select_schedule").selectpicker('render'); + //添加“选择班次”下拉框内容-begin + $('#myModal').modal('show'); + }); + + + //表单下拉框 + $("#select_department").selectpicker({ + actionsBox:true, + // title:"请选择科目", + width : 200, + 'noneSelectedText': '请选择', + 'deselectAllText': '全不选', + 'selectAllText': '全选', + dropdownAlignRight:true,//没试出到底时什么效果 + dropupAuto:true, + liveSearch:true, + liveSearchNormalize:true + // liveSearchPlaceholder:"搜索内容",//不起作用 + }); + + + + //点击增加时间选择组--begin + $("#add_workTimeGroup").click(function(){ + num++; + var content="
" + + "" + + "
" + + "
" + + "" + + "" + + "
" + + "
" + + + "" + + "
" + + "
" + + "" + + "" + + "
" + +"
" + // +"
" + // +"
" + // +"" + // +"
" + // +"
" + +"
"; + + $("#workTime_group").after(content); + initSchedulingDate('start' + num); + initSchedulingDate('end' + num); + }); + + + + initSchedulingDate("end0"); + initSchedulingDate("start0"); + initSchedulingDate("dateFrom_input"); + initSchedulingDate("dateTo_input"); + + function initSchedulingDate(idStr){ + $('#' + idStr).datetimepicker({ + format: 'yyyy-mm-dd', + language:'zh_CN' + }) + } + + //点击增加时间选择组--end + + + //表单“取消按钮” + $("#cancel").click(function(){ + $('#myModal').modal('hide'); + }); + + + var timeFrames=[]; +/**表单“确认按钮”*/ + $("#confirm").click(function(){ + //提交 + var canCommmit=true; + + var userIds=$("#select_people").val(); + var scheduleDefinitionId=$("#select_schedule").val(); + + if(isUndefinedOrNullOrEmpty(userIds)){ + canCommmit=false; + alert("请选择需要排班的人员!"); + }else if(isUndefinedOrNullOrEmpty(scheduleDefinitionId)){ + canCommmit=false; + alert("请添加班次!"); + }else{ + //校验时间选择是否正确 + for(var i=0;i<=num;i++){ + var start=$("#start"+i).val(); + var end=$("#end"+i).val(); + var dateObejct={}; + dateObejct.endDate=start; + dateObejct.startDate=end; + /** + *这里需要判断: + *1、开始时间和结束时间不能为空(同时为空视为无效), + *2、结束时间不能小于开始时间。 + *3、选择的时间段不能与已选的时间段交叉。 + */ + var isOk=1;//1表示添加,0表示忽视,-1表示失败 + if(isUndefinedOrNullOrEmpty(start)||isUndefinedOrNullOrEmpty(end)){ + if(isUndefinedOrNullOrEmpty(start)&&isUndefinedOrNullOrEmpty(end)){ + isOk=0; + }else{ + canCommmit=false; + isOk=-1; + alert("日期不能为空!"); + } + }else if(dateCompare(start, end)!=1){ + alert("截止日期必须大于开始日期!"); + canCommmit=false; + isOk=-1; + }else if(timeFrames.length>1&&isDatesBetween(dateObejct,timeFrames)){ + alert("存在交叉时间段,请重新设置!"); + canCommmit=false; + isOk=-1; + } + + if(isOk==1){ + var date={}; + date.timeMin=start; + date.timeMax=end; + timeFrames.push(date); + } + } + } + if(canCommmit){ + //将数据提交到后台并隐藏弹框 + function scheduleInformation(userIds,scheduleDefinitionId,timeFrames){ + this.userIds=userIds; + this.scheduleDefinitionId=scheduleDefinitionId; + this.timeFrames=timeFrames; + } + + var scheduleInformation1=new scheduleInformation(userIds,scheduleDefinitionId,timeFrames); + $.ajax({ + url:WWWROOT + '/disinfectSystem/scheduleInformation/addScheduleInformation.mhtml', + contentType:"application/json;charset=utf-8", + type:'POST', + data:JSON.stringify(scheduleInformation1), + dataType:'json', + async:false, + success:function(msg){ + scheduleDefinitions=msg.data.data; + },error:function(){ + alert("error"); + } + }); + + //如果返回结果没有异常,隐藏弹框 + $('#myModal').modal('hide'); + } + }); + +/**搜索框各监听事件--begin*/ + + //删除某条数据--begin + $("#search_delete").click(function(){ + var selected=$('#table').bootstrapTable('getSelections'); + if(selected.length==0){ + alert("请选择要删除的内容!"); + }else{ + var ids=[]; + for(var i=0;i31){ + alert("查询天数最多为一个月!"); + }else{ + //重现获取一遍 + //先摧毁 + $("#table").bootstrapTable('destroy'); + /*之后要优化*/ + scheduleInformations=[]; + var query={ + startTime:startDate, + endTime:endDate, + userIds: userId + }; + + $.ajax({ + url:WWWROOT + '/disinfectSystem/scheduleInformation/findUserScheduleInformations.mhtml?time='+new Date(), + type:'POST', + data:query, + cache:false, + dataType:'json', + async:false, + success:function(msg){ + scheduleInformations=msg.data; + },error:function(){ + alert("error"); + } + }); + console.log(scheduleInformations); + voList=jsonRevert(scheduleInformations.data); + times=scheduleInformations.conditionTimes; + + columns=[]; + + c1=[ + { + checkbox:true, + align:'center', + valign:"middle", + width : '10', + rowspan:3 + }, + { + title:'姓名', + field:"userName", + classes:"userName", + align:"center", + valign:"middle", + width : '70', + clickToSelect:true, + rowspan:3 + }, + { + title:'时间', + align:"center", + valign:"middle", + width : '200', + colspan:times.length + }, + { + title:'剩余假期', + field:"holiDay", + align:"center", + valign:"middle", + width : '30', + rowspan:3, + editable: { + type: 'text', + title: '编辑剩余假期', + validate: function (v) { + if (!v) return '用户名不能为空'; + } + } + } + ]; + + data=[]; + weeks=[]; + + + //遍历 + for(var i=0;i"+value+"2){ +// sec=parseInt(timeArray[2],10); +// } + var date=new Date(); + date.setFullYear(year); + date.setMonth(month); + date.setDate(day); +// date.setHours(hour); +// date.setMinutes(min); +// date.setSeconds(sec); + return date; +} + +/** + *比较两个时间字符串大小 + * compareDateString大于dateString,返回1; + * 等于返回0; + * compareDateString小于dateString,返回-1 + */ +function dateCompare(dateString, compareDateString){ + if(isUndefinedOrNullOrEmpty(dateString)){ + alert("dateString不能为空"); + return; + } + if(isUndefinedOrNullOrEmpty(compareDateString)){ + alert("compareDateString不能为空"); + return; + } + var dateTime = revertDate(dateString).getTime(); + var compareDateTime = revertDate(compareDateString).getTime(); + if(compareDateTime > dateTime){ + return 1; + }else if(compareDateTime == dateTime){ + return 0; + }else{ + return -1; + } +}; +/** + * 两个日期段之间的天数差 + */ +function timeDifferenceNums(startData, endData){ + if(isUndefinedOrNullOrEmpty(startData)){ + alert("dateString不能为空"); + return; + } + if(isUndefinedOrNullOrEmpty(endData)){ + alert("compareDateString不能为空"); + return; + } + var startData = revertDate(startData).getTime(); + var endData = revertDate(endData).getTime(); + if(endData>startData){ + var days=(endData-startData)/(24*60*60*60*1000); + return days; + }else{ + alert("结束时间不能小于开始时间!"); + } + +}; + + + +/** + *判断时间段在日期段对象数组中是否有交叉时间段 + *返回true,说明有交叉时间段,false,则没有交叉时间段 + */ +function isDatesBetween(dateObejct,dateArray){ + for(var i=0;i + + + + + +Insert title here + + + + + + + + + + +
+ +
+ + + +
+ +
+
+
+ + +
+ +
+ + + +
+ + + + + + + + + + + <%-- 时间控件 --%> + + + + + + + + \ No newline at end of file Index: ssts-web/src/main/webapp/disinfectsystem/schedule/scheduleDefinitionHistoryView.jsp =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/schedule/scheduleDefinitionHistoryView.jsp (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/schedule/scheduleDefinitionHistoryView.jsp (revision 24034) @@ -0,0 +1,47 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8"%> + + + + + +Insert title here + + + + + + + + + +
+
+
+
+
+ + + + + + + + + + + + + + <%-- 时间控件 --%> + + + + + + + + \ No newline at end of file Index: ssts-web/src/main/webapp/disinfectsystem/schedule/scheduleDefinition.js =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/schedule/scheduleDefinition.js (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/schedule/scheduleDefinition.js (revision 24034) @@ -0,0 +1,297 @@ +$(function() { + //首先加载页面数据 + var data=getAllScheduleDefinition(); + + //主体列表 + var t = $("#handoverTable") + .bootstrapTable( + { +// url : encodeURI(WWWROOT + '/disinfectSystem/baseData/handoverAction!getAllHandover.do?time='+new Date()), + data:data, + method : 'get', + dataType : "json", + showRefresh : "true",// 刷新按钮 + dataField : "data",// 这是返回的json数组的key.默认好像是"rows".这里只有前后端约定好就行 + striped : true,// 设置为 true 会有隔行变色效果 + undefinedText : "",// 当数据为 undefined 时显示的字符 + pagination : true, // 分页 + showColumns : "true",// 是否显示 内容列下拉框 + pageNumber : 1,// 如果设置了分页,首页页码 + showPaginationSwitch:true,//是否显示 数据条数选择框 + search : true, // 显示搜索框 + toolbar:"#toolbar", + data_local : "zh-US",// 表格汉化 + responseHandler : "", + //分页栏 + pageSize : 15,// 如果设置了分页,页面数据条数 + pageList : [ 10, 15, 20 ], // 如果设置了分页,设置可供选择的页面数据条数。设置为All则显示所有记录。 + paginationPreText: "上一页", + paginationNextText: "下一页", + paginationFirstText: "首页", + paginationLastText: "尾页", + queryParams : function(params) {// 自定义参数 + return {// 这里的params是table提供的 + start : params.offset, // 从数据库第几条记录开始 + limit : params.limit, // 找多少条 + keyword : params.search + }; + }, + onDblClickRow: function (row) { + openEditModel(row.id,row.handoverDate,row.handoverNote); + }, + idField : "id",// 指定主键列 + columns : [ + { +// title : 'id',// 表的列名 + field : 'id',// json数据中rows数组中的属性名 + align : 'center',// 水平居中 + visible:false //不显示ID + }, + { +// title : 'id',// 表的列名 + field : 'orgUnitCode',// json数据中rows数组中的属性名 + align : 'center',// 水平居中 + visible:false //不显示ID + }, + { +// title : 'id',// 表的列名 + field : 'serialNumber',// json数据中rows数组中的属性名 + align : 'center',// 水平居中 + visible:false //不显示ID + },{ + checkbox : true + }, + { + title : '科室', + field : 'orgUnitName', + align : 'center' + }, + { + title : '班次名称', + field : 'sheduleName', + align : 'center' + }, + { + title : '上班时间', + field : 'startWorkingTime', + align : 'center' + }, + { + title : '下班时间', + field : 'endWorkingTime', + align : 'center' + }, + { + title : '备注', + field : 'remark', + align : 'center' + } + ] + }); + + //添加表单--获取“选择科室”下拉框内容,当前获取所有供应室,之后需求会有变动应该 + var handlerDepartmentStore=getHandlerDepartStore(); + //添加内容到下拉框 + var handlerDepartment_select=""; + for(var i=0;i"+handlerDepartmentStore[i].cssdOrgUnitName+""; + } + $("#select_department").append(handlerDepartment_select); + + //添加表单--点击按钮跳出时间选择框 + $("#startWorkTime,#offWorkTime").click(function(){ + var t=$(this).attr("id")+"_input"; + WdatePicker({el:t,dateFmt:'HH:mm:ss'}); + }); + + //提交表单--begin + $("#confirm").click(function(){ + var verification=true; + var id=$("#id").val(); + var sheduleName=$("#name").val(); + var endWorkingTime=$("#offWorkTime_input").val(); + var startWorkingTime=$("#startWorkTime_input").val(); + var orgUnitCode=$("#select_department").val(); + var remark=$("#remarks").val(); + + if(isUndefinedOrNullOrEmpty(sheduleName)){ + alert("请输入班次名称!"); + verification=false; + }else if(isUndefinedOrNullOrEmpty(startWorkingTime)){ + alert("请选择上班时间!"); + verification=false; + }else if(isUndefinedOrNullOrEmpty(endWorkingTime)){ + alert("请选择下班时间!"); + verification=false; + } + + if(verification){ + var f=$("#scheduleDefinition_form"); +// $("#scheduleDefinition_form")[0].submit(); + + function scheduleDefinition(id,sheduleName,endWorkingTime,startWorkingTime,orgUnitCode,remark){ + this.id=id; + this.sheduleName=sheduleName; + this.endWorkingTime=endWorkingTime; + this.startWorkingTime=startWorkingTime; + this.orgUnitCode=orgUnitCode; + this.remark=remark; + } + + var scheduleDefinition1=new scheduleDefinition(id,sheduleName,endWorkingTime,startWorkingTime,orgUnitCode,remark); + + $.ajax({ + url:WWWROOT + '/disinfectSystem/scheduleDefinition/saveOrUpdateScheduleDefinition.mhtml?time='+new Date(), + contentType:"application/json;charset=utf-8", + data:JSON.stringify(scheduleDefinition1), + type:'post', + async:false, + traditional: true,//这里设置为true + dataType:'json', + success:function(msg){ + console.log(msg); + + } + }); + + + $('#myModal').modal('hide'); + //清空表单数据 + $('#select_department').val(""); + $('#startWorkTime_input').val(""); + $('#offWorkTime_input').val(""); + $('#remarks').val(""); + $('#name').val(""); + //重新加载页面 + location.reload(); + } + }); + //提交表单--end + + + //表单取消--begin + $("#cancel").click(function(){ + $('#myModal').modal('hide'); + //清空表单数据 + $('#select_department').val(""); + $('#startWorkTime_input').val(""); + $('#offWorkTime_input').val(""); + $('#remarks').val(""); + $('#name').val(""); + }); + //表单取消--end + + + //删除某条数据--begin + $("#btn_delete").click(function(){ + var selected=$('#handoverTable').bootstrapTable('getSelections'); + if(selected.length==0){ + alert("请选择要删除的内容!"); + }else{ + var ids=[]; + for(var i=0;i1){ + alert("最多只能编辑一条数据!"); + }else{ + //弹框并赋值 + $('#id').val(selected[0].id); + $('#select_department').val(selected[0].depart); + $('#select_department').val(selected[0].orgUnitName); + $('#startWorkTime_input').val(selected[0].startWorkingTime); + $('#offWorkTime_input').val(selected[0].endWorkingTime); + $('#remarks').val(selected[0].remark); + $('#name').val(selected[0].sheduleName); + $('#myModal').modal('show'); + } + + }); + //编辑某条数据--end + + + +});//$(function(){})结束 + + + + + + + + +//加载主体列表内容 +function getAllScheduleDefinition(){ + var scheduleDefinitions=[]; + $.ajax({ + url:WWWROOT + '/disinfectSystem/scheduleDefinition/findScheduleDefinitions.mhtml', + contentType:"application/json;charset=utf-8", + type:'POST', + data:JSON.stringify({isAll :'false'}), + dataType:'json', + async:false, + success:function(msg){ + scheduleDefinitions=msg.data.data; + },error:function(){ + alert("error"); + } + }); + return scheduleDefinitions; +} + +//加载可设置的科室数据 +function getHandlerDepartStore(){ + var handlerDpertmentStore=[]; + $.ajax({ + url:WWWROOT + '/systemmanage/getCssdsByApplyDepartAndType.do', + type:'get', + dataType:'json', + async:false, + success:function(msg){ + handlerDpertmentStore=msg.data; + } + }); + return handlerDpertmentStore; +} + +//验证内容是否为null、undefined、'' +function isUndefinedOrNullOrEmpty(value){ + if(typeof(value) == 'undefined'){ + return true; + } + if(value == null){ + return true; + } + if(value == ''){ + return true; + } + return false; +} + + Index: ssts-web/src/main/webapp/disinfectsystem/schedule/scheduleInformationView.jsp =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/schedule/scheduleInformationView.jsp (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/schedule/scheduleInformationView.jsp (revision 24034) @@ -0,0 +1,218 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8"%> + + + + +Insert title here + + + + + + + + + <%-- 时间控件 --%> + + + + + + + +
+ +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+ + + +
+ + +
+
+
+ + + + +
+
+
    +
  • +
  • +
  • +
  • +
+
+
+ +
+ +
+ +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + <%-- 时间控件 --%> + + + + <%-- --%> + + + + + + + + + + + + + + + \ No newline at end of file