| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502 |
- <%@ taglib prefix="t" uri="/easyui-tags" %>
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <!DOCTYPE html>
- <html>
- <head>
- <title>常用快速日期设置</title>
- <t:base type="DatePicker"></t:base>
- <link href="plug-in/cron/themes/bootstrap/easyui.min.css" rel="stylesheet" type="text/css" />
- <link href="plug-in/cron/themes/icon.css" rel="stylesheet" type="text/css" />
- <link href="plug-in/cron/icon.css" rel="stylesheet" type="text/css" />
- <link href="plug-in/lhgDialog/skins/metrole.css" rel="stylesheet" type="text/css"/>
- <script src="plug-in/cron/jquery-1.6.2.min.js" type="text/javascript"></script>
- <script src="plug-in/cron/jquery.easyui.min.js" type="text/javascript"></script>
- <script src="plug-in/cron/cron.js" type="text/javascript"></script>
- <style type="text/css">
- .line
- {
- height: 35px;
- line-height: 25px;
- margin: 3px;
- }
- .imp
- {
- padding-left: 25px;
- }
- .col
- {
- width: 95px;
- }
- ul {
- list-style:none;
- padding-left:10px;
- }
- li {
- height:30px;
- }
- .multiline
- {
- height: 185px;
- line-height: 25px;
- margin: 3px;
- }
- </style>
- </head>
- <body>
- <center>
- <div class="easyui-layout" style="width:880px;height:560px; border: 1px rgb(202, 196, 196) solid;
- border-radius: 5px;">
- <div style="height: 100%;">
- <input id="firsttime" type="hidden" value="${firsttime}"/>
- <input id="lasttime" type="hidden" value="${lasttime}"/>
- <div class="easyui-tabs" data-options="fit:true,border:false">
- <div title="常用快速日期设置" style="font-size: 12px;font-weight: 400;color: #333333;">
- <div class="line">
- <input type="radio" name="second" checked="checked" onclick="onWeek(this)" value="week">
- 每月第
- <input class="numberspinner" style="width: 60px;" data-options="min:1,max:4" value="1"
- id="monthlyweek">
- 周</div>
- <div class="line">
- <input type="radio" name="second" onclick="onHalfmonth(this)" value="halfmonth">
- 每月:
- <input type="radio" name="monthlyhalf" disabled="disabled" checked="checked" value="0">
- 上半月
- <input type="radio" name="monthlyhalf" disabled="disabled" value="1">
- 下半月 </div>
- <div class="line">
- <input type="radio" name="second" onclick="onDay(this)" value="day">
- 每月从
- <input class="numberspinner" style="width: 60px;" data-options="min:1,max:31" value="1"
- id="monthlyStart">
- 日 -
- <input class="numberspinner" style="width: 60px;" data-options="min:2,max:31" value="2"
- id="monthlyEnd">
- 日</div>
- <div class="line">
- <input type="radio" name="second" onclick="onMultiMonth(this)" id="sencond_appoint" value="multimonth">
- 指定月份
- </div>
- <div class="multiline" id="multilinediv">
- <fieldset id="fieldset" style="border-radius: 3px; height: 155px;background-color: #F2F2F2;">
- <legend>指定月份设置</legend>
- <div class="imp secondList">
- <input type="checkbox" value="0" disabled="disabled" id="m1">一月
- <input type="checkbox" value="1" disabled="disabled" id="m2">二月
- <input type="checkbox" value="2" disabled="disabled" id="m3">三月
- <input type="checkbox" value="3" disabled="disabled" id="m4">四月
- <input type="checkbox" value="4" disabled="disabled" id="m5">五月
- <input type="checkbox" value="5" disabled="disabled" id="m6">六月
- <input type="checkbox" value="6" disabled="disabled" id="m7">七月
- <input type="checkbox" value="7" disabled="disabled" id="m8">八月
- <input type="checkbox" value="8" disabled="disabled" id="m9">九月
- <input type="checkbox" value="9" disabled="disabled" id="m10">十月
- <input type="checkbox" value="10" disabled="disabled" id="m11">十一月
- <input type="checkbox" value="11" disabled="disabled" id="m12">十二月
- </div>
- <div class="line">
- <input type="radio" name="checkmultimonth" checked="checked" onclick="onMultiMonthWeek(this)" disabled="disabled" value="week">
- 第
- <input class="numberspinner" style="width: 60px;" data-options="min:1,max:4" value="1"
- id="multiMonthWeek">
- 周</div>
- <div class="line">
- <input type="radio" name="checkmultimonth" onclick="onMultiMonthHalfmonth(this)" disabled="disabled" value="halfmonth">
- 每月:
- <input type="radio" name="mutimonthhalf" checked="checked" value="0" disabled="disabled">
- 上半月
- <input type="radio" name="mutimonthhalf" value="1" disabled="disabled">
- 下半月 </div>
- <div class="line">
- <input type="radio" name="checkmultimonth" onclick="onMultiMonthDay(this)" disabled="disabled" value="day">
- 从
- <input class="numberspinner" style="width: 60px;" data-options="min:1,max:31" value="1"
- id="multiMonthStart">
- 日 -
- <input class="numberspinner" style="width: 60px;" data-options="min:2,max:31" value="2"
- id="multiMonthEnd">
- 日</div>
- </fieldset>
- </div>
- <div class="line">
- <input type="radio" name="second" onclick="onMultiDay(this)" value="multiDay">
- 指定日期
- <fieldset id="fieldsetDay" style="border-radius: 3px; background-color: #F2F2F2;">
- <legend>指定日期设置</legend>
- <span id="multiDaySpan"></span>
- <input type="button" value="+" class="ui_state_highlight" disabled="disabled" style="font-weight:bold" onclick="addMultiDay()">
- </fieldset>
- </div>
- </div>
- </div>
- </div>
- <div>
- </div>
- </div>
- </center>
- <script type="text/javascript">
- function getDate() {
- var checkType = $("input[type='radio'][name='second']:checked").val();
- console.log("checkType:" + checkType);
- var datelist = {} ;
- if(checkType == 'week'){//计算第几周:从每月第一天算起,每七天为一周
- datelist = getweek($('#firsttime').val(),$('#lasttime').val(),$('#monthlyweek').val());
- }else if(checkType == 'halfmonth'){//1 ~ 15日为上半月,15 ~ 最后一天为下半月
- var half = $("input[type='radio'][name='monthlyhalf']:checked").val();
- datelist = gethalfmonth($('#firsttime').val(),$('#lasttime').val(),half);
- }else if(checkType == 'day'){//如果日期超过本月最后一天 ,即为最后一天
- datelist = getday($('#firsttime').val(),$('#lasttime').val(),$('#monthlyStart').val(),$('#monthlyEnd').val()) ;
- }else if(checkType == 'multimonth'){
- datelist = getMultiMonthDate();
- }else if(checkType=='multiDay'){
- datelist = [];
- $('#multiDaySpan input').each(function(){
- var $t = $(this);
- var v=$t.val();
- if(v){
- datelist.push({"stime":v,"etime":v});
- }
- });
- }
- console.log("datelist:" + JSON.stringify(datelist));
- return JSON.stringify(datelist);
- }
- function getweek(startdate,enddate,weeknum,checkmonths){
- startdate = new Date(startdate);
- enddate = new Date(enddate);
- var arrayJson = [];
- //设置不超过120个月
- for(var i = 0;i<120;i++){
- var caldate ;
- if(i == 0)
- caldate = startdate;
- else {
- caldate = DateAdd("m", 1, startdate);
- caldate.setDate(1);
- }
- var retstart = new Date(caldate.getFullYear(),caldate.getMonth(),(weeknum-1)*7+1);
- var retend = new Date(caldate.getFullYear(),caldate.getMonth(),(weeknum-1)*7+7);
- if(retstart > enddate){
- break;
- }
- if(checkmonths && checkmonths.indexOf(retstart.getMonth()+',') == -1){
- continue;
- }
- if(retstart < startdate){
- retstart = startdate;
- }
- if(retend < startdate){
- continue;
- }
- if(retend > enddate){
- retend = enddate;
- }
- arrayJson.push({"stime":formateDate(retstart),"etime":formateDate(retend)});
- }
- return arrayJson;
- }
-
- function gethalfmonth(startdate,enddate,halfflag,checkmonths){
- startdate = new Date(startdate);
- enddate = new Date(enddate);
- var arrayJson = [];
- //设置不超过120个月
- for(var i = 0;i<120;i++){
- var caldate ;
- if(i == 0)
- caldate = startdate;
- else {
- caldate = DateAdd("m", 1, startdate);
- caldate.setDate(1);
- }
- var retstart = new Date(caldate.getFullYear(),caldate.getMonth(),halfflag == "0" ? 1 : 16);
- var endMonth =caldate.getMonth();
- if(halfflag == "1"){
- endMonth+=1;
- }
- var retend = new Date(caldate.getFullYear(),endMonth,halfflag == "0" ? 15 : 0);//0表示本月最后一天
- if(retstart > enddate){
- break;
- }
- if(checkmonths && checkmonths.indexOf(retstart.getMonth()+',') == -1){
- continue;
- }
- if(retstart < startdate){
- retstart = startdate;
- }
- if(retend < startdate){
- continue;
- }
- if(retend > enddate){
- retend = enddate;
- }
- arrayJson.push({"stime":formateDate(retstart),"etime":formateDate(retend)});
- }
- return arrayJson;
- }
- function getday(startdate,enddate,monthlydaystart,monthlydayend,checkmonths){
- startdate = new Date(startdate);
- enddate = new Date(enddate);
- var arrayJson = [];
- //设置不超过120个月
- for(var i = 0;i<120;i++){
- var caldate ;
- if(i == 0)
- caldate = startdate;
- else {
- caldate = DateAdd("m", 1, startdate);
- caldate.setDate(1);
- }
- var curMonthLastday = new Date(caldate.getFullYear(),caldate.getMonth(),0);
- if (curMonthLastday.getDate() < monthlydaystart){
- monthlydaystart = curMonthLastday.getDate();
- }
- if (curMonthLastday.getDate() < monthlydayend){
- monthlydayend = curMonthLastday.getDate();
- }
- var retstart = new Date(caldate.getFullYear(),caldate.getMonth(),monthlydaystart);
- var retend = new Date(caldate.getFullYear(),caldate.getMonth(),monthlydayend);
- if(retstart > enddate){
- break;
- }
- if(checkmonths && checkmonths.indexOf(retstart.getMonth()+',') == -1){
- continue;
- }
- if(retstart < startdate){
- retstart = startdate;
- }
- if(retend < startdate){
- continue;
- }
- if(retend > enddate){
- retend = enddate;
- }
- arrayJson.push({"stime":formateDate(retstart),"etime":formateDate(retend)});
- }
- return arrayJson;
- }
- function getMultiMonthDate(){
- var checkedList = $("input[type='checkbox']:checked");
- var checknums = '';
- for(var k = 0;k < checkedList.length;k++){
- if(checkedList[k].checked){
- checknums += (checkedList[k].value + ',');
- }
- }
- var checkType = $("input[type='radio'][name='checkmultimonth']:checked").val();
- console.log("multyMonthcheckType:" + checkType);
- var datelist ;
- if(checkType == 'week'){//计算第几周:从每月第一天算起,每七天为一周
- datelist = getweek($('#firsttime').val(),$('#lasttime').val(),$('#multiMonthWeek').val(),checknums);
- }else if(checkType == 'halfmonth'){//1 ~ 15日为上半月,15 ~ 最后一天为下半月
- var half = $("input[type='radio'][name='mutimonthhalf']:checked").val();
- datelist = gethalfmonth($('#firsttime').val(),$('#lasttime').val(),half,checknums);
- }else if(checkType == 'day'){//如果日期超过本月最后一天 ,即为最后一天
- datelist = getday($('#firsttime').val(),$('#lasttime').val(),$('#multiMonthStart').val(),$('#multiMonthEnd').val(),checknums) ;
- }
- return datelist;
- }
- function onMultiMonth(obj) {
- for(var i = 1;i <13 ;i++){
- $("#m"+i).removeAttr("disabled");
- }
- // $("input[name=mutimonthhalf]").removeAttr("disabled");
- $("input[name=checkmultimonth]").removeAttr("disabled");
- // $("#multiMonthStart").removeAttr("disabled");
- // $("#multiMonthEnd").removeAttr("disabled");
- $("#multiMonthWeek").removeAttr("disabled");
- $("#fieldset").css({"background-color":"#FCFCFC"});
-
- //其他选项置灰
- $("#monthlyweek").attr("disabled",true);
- $("input[name=monthlyhalf]").attr("disabled",true);
- $("#monthlyStart").attr("disabled",true);
- $("#monthlyEnd").attr("disabled",true);
- disableMultiDay()
- }
- function onNotMultiMonth(obj) {
- for(var i = 1;i <13 ;i++){
- $("#m"+i).attr("disabled",true);
- }
- $("input[name=mutimonthhalf]").attr("disabled",true);
- $("input[name=checkmultimonth]").attr("disabled",true);
- $("#multiMonthStart").attr("disabled",true);
- $("#multiMonthEnd").attr("disabled",true);
- $("#multiMonthWeek").attr("disabled",true);
- $("#fieldset").css({"background-color":"#F2F2F2"});
- disableMultiDay()
- }
-
- function onWeek(obj) {
- $("#monthlyweek").removeAttr("disabled");
- //其他选项置灰
- $("input[name=monthlyhalf]").attr("disabled",true);
- $("#monthlyStart").attr("disabled",true);
- $("#monthlyEnd").attr("disabled",true);
- //多月份设置都置灰
- for(var i = 1;i <13 ;i++){
- $("#m"+i).attr("disabled",true);
- }
- $("input[name=mutimonthhalf]").attr("disabled",true);
- $("input[name=checkmultimonth]").attr("disabled",true);
- $("#multiMonthStart").attr("disabled",true);
- $("#multiMonthEnd").attr("disabled",true);
- $("#multiMonthWeek").attr("disabled",true);
- $("#fieldset").css({"background-color":"#F2F2F2"});
- disableMultiDay()
- }
- function onHalfmonth(obj) {
- $("input[name=monthlyhalf]").removeAttr("disabled");
- //其他选项置灰
- $("#monthlyweek").attr("disabled",true);
- $("#monthlyStart").attr("disabled",true);
- $("#monthlyEnd").attr("disabled",true);
- //多月份设置都置灰
- for(var i = 1;i <13 ;i++){
- $("#m"+i).attr("disabled",true);
- }
- $("input[name=mutimonthhalf]").attr("disabled",true);
- $("input[name=checkmultimonth]").attr("disabled",true);
- $("#multiMonthStart").attr("disabled",true);
- $("#multiMonthEnd").attr("disabled",true);
- $("#multiMonthWeek").attr("disabled",true);
- $("#fieldset").css({"background-color":"#F2F2F2"});
- disableMultiDay()
- }
- function onDay(obj) {
- $("#monthlyStart").removeAttr("disabled");
- $("#monthlyEnd").removeAttr("disabled");
- //其他选项置灰
- $("#monthlyweek").attr("disabled",true);
- $("input[name=monthlyhalf]").attr("disabled",true);
- //多月份设置都置灰
- for(var i = 1;i <13 ;i++){
- $("#m"+i).attr("disabled",true);
- }
- $("input[name=mutimonthhalf]").attr("disabled",true);
- $("input[name=checkmultimonth]").attr("disabled",true);
- $("#multiMonthStart").attr("disabled",true);
- $("#multiMonthEnd").attr("disabled",true);
- $("#multiMonthWeek").attr("disabled",true);
- $("#fieldset").css({"background-color":"#F2F2F2"});
- disableMultiDay()
- }
- function onMultiMonthWeek(obj) {
- $("#multiMonthWeek").removeAttr("disabled");
- //其他选项置灰
- $("#multiMonthStart").attr("disabled",true);
- $("#multiMonthEnd").attr("disabled",true);
- $("input[name=mutimonthhalf]").attr("disabled",true);
- }
- function onMultiMonthHalfmonth(obj) {
- $("input[name=mutimonthhalf]").removeAttr("disabled");
- //其他选项置灰
- $("#multiMonthWeek").attr("disabled",true);
- $("#multiMonthStart").attr("disabled",true);
- $("#multiMonthEnd").attr("disabled",true);
- }
- function onMultiMonthDay(obj) {
- $("#multiMonthStart").removeAttr("disabled");
- $("#multiMonthEnd").removeAttr("disabled");
- //其他选项置灰
- $("#multiMonthWeek").attr("disabled",true);
- $("input[name=mutimonthhalf]").attr("disabled",true);
- }
- function onMultiDay(){
- $("#fieldsetDay input").removeAttr("disabled");
- $("#fieldsetDay").css({"background-color":"#FCFCFC"});
- //其他选项置灰
- $("#monthlyweek").attr("disabled",true);
- $("#monthlyStart").attr("disabled",true);
- $("#monthlyEnd").attr("disabled",true);
- //多月份设置都置灰
- for(var i = 1;i <13 ;i++){
- $("#m"+i).attr("disabled",true);
- }
- $("input[name=mutimonthhalf]").attr("disabled",true);
- $("input[name=checkmultimonth]").attr("disabled",true);
- $("#multiMonthStart").attr("disabled",true);
- $("#multiMonthEnd").attr("disabled",true);
- $("#multiMonthWeek").attr("disabled",true);
- $("#fieldset").css({"background-color":"#F2F2F2"});
- }
- function disableMultiDay(){
- $("#fieldsetDay").css({"background-color":"#F2F2F2"});
- $('#fieldsetDay input').attr('disabled','disabled');
- }
-
- function DateAdd(interval, number, date) {
- switch (interval) {
- case "y": {
- date.setFullYear(date.getFullYear() + number);
- return date;
- break;
- }
- case "q": {
- date.setMonth(date.getMonth() + number * 3);
- return date;
- break;
- }
- case "m": {
- date.setMonth(date.getMonth() + number);
- return date;
- break;
- }
- case "w": {
- date.setDate(date.getDate() + number * 7);
- return date;
- break;
- }
- case "d": {
- date.setDate(date.getDate() + number);
- return date;
- break;
- }
- case "h": {
- date.setHours(date.getHours() + number);
- return date;
- break;
- }
- case "m": {
- date.setMinutes(date.getMinutes() + number);
- return date;
- break;
- }
- case "s": {
- date.setSeconds(date.getSeconds() + number);
- return date;
- break;
- }
- default: {
- date.setDate(d.getDate() + number);
- return date;
- break;
- }
- }
- }
- //格式化日期
- function formateDate(date) {
- var date = new Date(date);
- var y = date.getFullYear();
- var m = date.getMonth() + 1;
- var d = date.getDate();
- m = m > 9 ? m : '0' + m;
- d = d > 9 ? d : '0' + d;
- return y + '-' + m + '-' + d ;
- }
- function addMultiDay(){
- var input = '<input type="text" readonly="readonly" name="multiDay" class="Wdate" style="width:85px;margin-right:10px"' +
- ' onClick="WdatePicker({dateFmt:\'yyyy-MM-dd\',minDate:\'#F{$dp.$D(\\\'firsttime\\\')}\',maxDate:\'#F{$dp.$D(\\\'lasttime\\\')}\'})">';
- $('#multiDaySpan').append(input);
- }
- </script>
- </body>
- </html>
|