实现日历与多选框双向绑定的效果

效果图如上

调用方法

//日期选择器

laydate.render({

elem:'#calendar'

  ,type:'datetime'

  ,position:'static'

  ,showBottom:false

  ,value:(‘y-m-d  h:m:s’),//设置开始时间为当前时间

});

修改代码

laydate.js


var sellpreDay;

//页面加载完毕,根据产品ID查询产品信息进行回显

var dataValue;

var fly=true;

var currentdate;

var day2;

var flag1=true;

var time2;

var t3;

var t1;

var dateDepart;

var selection;

var mon;

// var b2cName= "http://dd.oitg.cn";

// //B2C

// var B_TO_C = b2cName + "/api-btc/";

if (!(currentdate&&day2)){

var day1=new Date();

var seperator1 ="-";

var year =day1.getFullYear();

var month =day1.getMonth() +1;

var strDate =day1.getDate();

}

currentdate =year +seperator1 +month +seperator1 +strDate;

day2=day1.setTime(day1.getTime());

var id =getUrlParam("id");

var strings =id.split("#");

id =strings[0];

// console.log(id);

$.ajax({

url:B_TO_C +"adviserController/queryBTOCProductDetails",

type:"POST",

async:false,

data:{

id:id

    },

success:function(data){

//获取产品信息

        var wareinfo  = data.resultInfo.sysdata.bToCProduct;

sellpreDay=wareinfo.tripDays;//出行天数

    }

});

;!function () {

"use strict";

var e =window.layui &&layui.define,t = {

getPath:function () {

var e =document.currentScript ?document.currentScript.src :function () {

for (var e,t =document.scripts,n =t.length -1,a =n;a >0;a--)if ("interactive" ===t[a].readyState) {

e =t[a].src;

break

                    }

return e ||t[n].src

                }();

return e.substring(0,e.lastIndexOf("/") +1)

}(),getStyle:function (e, t) {

var n = e.currentStyle ? e.currentStyle :window.getComputedStyle(e,null);

return n[n.getPropertyValue ?"getPropertyValue" :"getAttribute"](t)

},link:function (e, a, i) {

if (n.path) {

var r =document.getElementsByTagName("head")[0],o =document.createElement("link");

"string" ==typeof a && (i = a);

var s = (i || e).replace(/\.|\//g,""),l ="layuicss-" +s,d =0;

o.rel ="stylesheet",o.href =n.path + e,o.id =l,document.getElementById(l) ||r.appendChild(o),"function" ==typeof a && !function c() {

return ++d >80 ?window.console &&console.error("laydate.css: Invalid") :void (1989 ===parseInt(t.getStyle(document.getElementById(l),"width")) ? a() :setTimeout(c,100))

}()

}

}

},n = {

v:"5.0.9",

config: {},

index:window.laydate &&window.laydate.v ?1e5 :0,

path:t.getPath,

set:function (e) {

var t =this;

return t.config = w.extend({},t.config, e),t

            },

ready:function (a) {

var i ="laydate",r ="",o = (e ?"modules/laydate/" :"theme/") +"default/laydate.css?v=" +n.v +r;

return e ?layui.addcss(o, a,i) :t.link(o, a,i),this

            }

}, a =function () {

var e =this;

return {

hint:function (t) {

e.hint.call(e, t)

},config:e.config

            }

},i ="laydate",r =".layui-laydate",o ="active",s ="laydate-disabled",l ="开始日期超出了结束日期
建议重新选择",

d = [100,2e5],c ="layui-laydate-static",m ="layui-laydate-list",u ="laydate-selected",

h ="layui-laydate-hint",y ="laydate-day-prev",f ="laydate-day-next",p ="layui-laydate-footer",

g =".laydate-btns-confirm",v ="laydate-time-text",D =".laydate-btns-time", T =function (e) {

var t =this;

t.index = ++n.index,t.config = w.extend({},t.config,n.config, e),n.ready(function () {

t.init()

})

}, w =function (e) {

return new C(e)

}, C =function (e) {

for (var t =0,n ="object" ==typeof e ? [e] : (this.selector = e,document.querySelectorAll(e ||null));t

};

C.prototype = [], C.prototype.constructor = C, w.extend =function () {

var e =1,t =arguments, n =function (e, t) {

e = e || (t.constructor ===Array ? [] : {});

for (var a in t) e[a] = t[a] && t[a].constructor ===Object ? n(e[a], t[a]) : t[a];

return e

};

for (t[0] ="object" ==typeof t[0] ?t[0] : {};e

return t[0]

}, w.ie =function () {

var e =navigator.userAgent.toLowerCase();

return !!(window.ActiveXObject ||"ActiveXObject" in window) && ((e.match(/msie\s(\d+)/) || [])[1] ||"11")

}(), w.stope =function (e) {

e = e ||window.event, e.stopPropagation ? e.stopPropagation() : e.cancelBubble = !0

    }, w.each =function (e, t) {

var n,a =this;

if ("function" !=typeof t)return a;

if (e = e || [], e.constructor ===Object) {

for (n in e)if (t.call(e[n],n, e[n]))break

        }else for (n =0;n < e.length && !t.call(e[n],n, e[n]);n++) ;

return a

    }, w.digit =function (e, t, n) {

var a ="";

e =String(e), t = t ||2;

for (var i = e.length;i < t;i++)a +="0";

return e

}, w.elem =function (e, t) {

var n =document.createElement(e);

return w.each(t || {},function (e, t) {

n.setAttribute(e, t)

}),n

    }, C.addStr =function (e, t) {

return e = e.replace(/\s+/," "), t = t.replace(/\s+/," ").split(" "), w.each(t,function (t, n) {

new RegExp("\\b" + n +"\\b").test(e) || (e = e +" " + n)

}), e.replace(/^\s|\s$/,"")

}, C.removeStr =function (e, t) {

return e = e.replace(/\s+/," "), t = t.replace(/\s+/," ").split(" "), w.each(t,function (t, n) {

var a =new RegExp("\\b" + n +"\\b");

a.test(e) && (e = e.replace(a,""))

}), e.replace(/\s+/," ").replace(/^\s|\s$/,"")

}, C.prototype.find =function (e) {

var t =this,n =0,a = [],i ="object" ==typeof e;

return this.each(function (r, o) {

for (var s =i ? [e] : o.querySelectorAll(e ||null);n

t.shift()

}),i || (t.selector = (t.selector ?t.selector +" " :"") + e), w.each(a,function (e, n) {

t.push(n)

}),t

    }, C.prototype.each =function (e) {

return w.each.call(this,this, e)

}, C.prototype.addClass =function (e, t) {

return this.each(function (n, a) {

a.className = C[t ?"removeStr" :"addStr"](a.className, e)

})

}, C.prototype.removeClass =function (e) {

return this.addClass(e, !0)

}, C.prototype.hasClass =function (e) {

var t = !1;

return this.each(function (n, a) {

new RegExp("\\b" + e +"\\b").test(a.className) && (t = !0)

}),t

    }, C.prototype.attr =function (e, t) {

var n =this;

return void 0 === t ?function () {

if (n.length >0)return n[0].getAttribute(e)

}() :n.each(function (n, a) {

a.setAttribute(e, t)

})

}, C.prototype.removeAttr =function (e) {

return this.each(function (t, n) {

n.removeAttribute(e)

})

}, C.prototype.html =function (e) {

return this.each(function (t, n) {

n.innerHTML = e

})

}, C.prototype.val =function (e) {

return this.each(function (t, n) {

n.value = e

})

}, C.prototype.append =function (e) {

return this.each(function (t, n) {

"object" ==typeof e ? n.appendChild(e) : n.innerHTML = n.innerHTML + e

})

}, C.prototype.remove =function (e) {

return this.each(function (t, n) {

e ? n.removeChild(e) : n.parentNode.removeChild(n)

})

}, C.prototype.on =function (e, t) {

return this.each(function (n, a) {

a.attachEvent ? a.attachEvent("on" + e,function (e) {

e.target = e.srcElement, t.call(a, e)

}) : a.addEventListener(e, t, !1)

})

}, C.prototype.off =function (e, t) {

return this.each(function (n, a) {

a.detachEvent ? a.detachEvent("on" + e, t) : a.removeEventListener(e, t, !1)

})

}, T.isLeapYear =function (e) {

return e %4 ===0 && e %100 !==0 || e %400 ===0

    }, T.prototype.config = {

type:"date",

range: !1,

format:"yyyy-MM-dd",

value:null,

min:"1900-1-1",

max:"2099-12-31",

trigger:"focus",

show: !1,

showBottom: !0,

btns: ["clear","now","confirm"],

lang:"cn",

theme:"default",

position:null,

calendar: !1,

mark: {},

zIndex:null,

done:null,

change:null

    }, T.prototype.lang =function () {

var e =this,t =e.config,n = {

cn: {

weeks: ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],

time: ["时","分","秒"],

timeTips:"选择时间",

startTime:"开始时间",

endTime:"结束时间",

dateTips:"返回日期",

month: ["一","二","三","四","五","六","七","八","九","十","十一","十二"],

tools: {confirm:"确定",clear:"清空",now:"现在"}

},

en: {

weeks: ["Su","Mo","Tu","We","Th","Fr","Sa"],

time: ["Hours","Minutes","Seconds"],

timeTips:"Select Time",

startTime:"Start Time",

endTime:"End Time",

dateTips:"Select Date",

month: ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],

tools: {confirm:"Confirm",clear:"Clear",now:"Now"}

}

};

return n[t.lang] ||n.cn

    }, T.prototype.init =function () {

var e =this,t =e.config,n ="yyyy|y|MM|M|dd|d|HH|H|mm|m|ss|s",a ="static" ===t.position,

i = {year:"yyyy",month:"yyyy-MM",date:"yyyy-MM-dd",time:"HH:mm:ss",datetime:"yyyy-MM-dd HH:mm:ss"};

t.elem = w(t.elem),t.eventElem = w(t.eventElem),t.elem[0] && (t.range === !0 && (t.range ="-"),t.format ===i.date && (t.format =i[t.type]),e.format =t.format.match(new RegExp(n +"|.","g")) || [],e.EXP_IF ="",e.EXP_SPLIT ="", w.each(e.format,function (t, a) {

var i =new RegExp(n).test(a) ?"\\d{" +function () {

return new RegExp(n).test(e.format[0 === t ? t +1 : t -1] ||"") ?/^yyyy|y$/.test(a) ?4 : a.length :/^yyyy$/.test(a) ?"1,4" :/^y$/.test(a) ?"1,308" :"1,2"

            }() +"}" :"\\" + a;

e.EXP_IF =e.EXP_IF +i,e.EXP_SPLIT =e.EXP_SPLIT +"(" +i +")"

        }),e.EXP_IF =new RegExp("^" + (t.range ?e.EXP_IF +"\\s\\" +t.range +"\\s" +e.EXP_IF :e.EXP_IF) +"$"),e.EXP_SPLIT =new RegExp("^" +e.EXP_SPLIT +"$",""),e.isInput(t.elem[0]) ||"focus" ===t.trigger && (t.trigger ="click"),t.elem.attr("lay-key") || (t.elem.attr("lay-key",e.index),t.eventElem.attr("lay-key",e.index)),t.mark = w.extend({},t.calendar &&"cn" ===t.lang ? {

"0-1-1":"元旦",

"0-2-14":"情人",

"0-3-8":"妇女",

"0-3-12":"植树",

"0-4-1":"愚人",

"0-5-1":"劳动",

"0-5-4":"青年",

"0-6-1":"儿童",

"0-9-10":"教师",

"0-9-18":"国耻",

"0-10-1":"国庆",

"0-12-25":"圣诞"

        } : {},t.mark), w.each(["min","max"],function (e, n) {

var a = [],i = [];

if ("number" ==typeof t[n]) {

var r =t[n],o = (new Date).getTime(),s =864e5,l =new Date(r ?r

a = [l.getFullYear(),l.getMonth() +1,l.getDate()],r

}else a = (t[n].match(/\d+-\d+-\d+/) || [""])[0].split("-"),i = (t[n].match(/\d+:\d+:\d+/) || [""])[0].split(":");

t[n] = {

year:0 |a[0] || (new Date).getFullYear(),

month:a[1] ? (0 |a[1]) -1 : (new Date).getMonth(),

date:0 |a[2] || (new Date).getDate(),

hours:0 |i[0],

minutes:0 |i[1],

seconds:0 |i[2]

}

}),e.elemID ="layui-laydate" +t.elem.attr("lay-key"), (t.show ||a) &&e.render(),a ||e.events(),t.value && (t.value.constructor ===Date ?e.setValue(e.parse(0,e.systemDate(t.value))) :e.setValue(t.value)))

}, T.prototype.render =function () {

var e =this,t =e.config,n =e.lang(),a ="static" ===t.position,i =e.elem = w.elem("div", {

id:e.elemID,

"class": ["layui-laydate",t.range ?" layui-laydate-range" :"",a ?" " +c :"",t.theme &&"default" !==t.theme && !/^#/.test(t.theme) ?" laydate-theme-" +t.theme :""].join("")

}),r =e.elemMain = [],o =e.elemHeader = [],s =e.elemCont = [],l =e.table = [],

d =e.footer = w.elem("div", {"class":p});

if (t.zIndex && (i.style.zIndex =t.zIndex), w.each(new Array(2),function (e) {

if (!t.range && e >0)return !0;

var a = w.elem("div", {"class":"layui-laydate-header"}),i = [function () {

var e = w.elem("i", {"class":"layui-icon laydate-icon laydate-prev-y"});

return e.innerHTML ="",e

                }(),function () {

var e = w.elem("i", {"class":"layui-icon laydate-icon laydate-prev-m"});

return e.innerHTML ="",e

                }(),function () {

var e = w.elem("div", {"class":"laydate-set-ym"}),t = w.elem("span"),n = w.elem("span");

return e.appendChild(t),e.appendChild(n),e

                }(),function () {

var e = w.elem("i", {"class":"layui-icon laydate-icon laydate-next-m"});

return e.innerHTML ="",e

                }(),function () {

var e = w.elem("i", {"class":"layui-icon laydate-icon laydate-next-y"});

return e.innerHTML ="",e

                }()],d = w.elem("div", {"class":"layui-laydate-content"}),c = w.elem("table"),m = w.elem("thead"),

u = w.elem("tr");

w.each(i,function (e, t) {

a.appendChild(t)

}),m.appendChild(u), w.each(new Array(6),function (e) {

var t =c.insertRow(0);

w.each(new Array(7),function (a) {

if (0 === e) {

var i = w.elem("th");

i.innerHTML =n.weeks[a],u.appendChild(i)

}

t.insertCell(a)

})

}),c.insertBefore(m,c.children[0]),d.appendChild(c),r[e] = w.elem("div", {"class":"layui-laydate-main laydate-main-list-" + e}),r[e].appendChild(a),r[e].appendChild(d),o.push(i),s.push(d),l.push(c)

}), w(d).html(function () {

var e = [],i = [];

return "datetime" ===t.type &&e.push('' +n.timeTips +""), w.each(t.btns,function (e, r) {

var o =n.tools[r] ||"btn";

t.range &&"now" === r || (a &&"clear" === r && (o ="cn" ===t.lang ?"重置" :"Reset"),i.push('' +o +""))

}),e.push('

"),e.join("")

}()), w.each(r,function (e, t) {

i.appendChild(t)

}),t.showBottom &&i.appendChild(d),/^#/.test(t.theme)) {

var m = w.elem("style"),

u = ["#{{id}} .layui-laydate-header{background-color:{{theme}};}","#{{id}} .layui-this{background-color:{{theme}} !important;}"].join("").replace(/{{id}}/g,e.elemID).replace(/{{theme}}/g,t.theme);

"styleSheet" in m ? (m.setAttribute("type","text/css"),m.styleSheet.cssText =u) :m.innerHTML =u, w(i).addClass("laydate-theme-molv"),i.appendChild(m)

}

e.remove(T.thisElemDate),a ?t.elem.append(i) : (document.body.appendChild(i),e.position()),e.checkDate().calendar(),e.changeEvent(), T.thisElemDate =e.elemID,"function" ==typeof t.ready &&t.ready(w.extend({},t.dateTime, {month:t.dateTime.month +1}))

}, T.prototype.remove =function (e) {

var t =this,n = (t.config, w("#" + (e ||t.elemID)));

return n.hasClass(c) ||t.checkDate(function () {

n.remove()

}),t

    }, T.prototype.position =function () {

var e =this,t =e.config,n =e.bindElem ||t.elem[0],a =n.getBoundingClientRect(),i =e.elem.offsetWidth,

r =e.elem.offsetHeight, o =function (e) {

return e = e ?"scrollLeft" :"scrollTop",document.body[e] |document.documentElement[e]

}, s =function (e) {

return document.documentElement[e ?"clientWidth" :"clientHeight"]

},l =5,d =a.left,c =a.bottom;

d +i +l > s("width") && (d = s("width") -i -l),c +r +l > s() && (c =a.top >r ?a.top -r : s() -r,c -=2 *l),t.position && (e.elem.style.position =t.position),e.elem.style.left =d + ("fixed" ===t.position ?0 : o(1)) +"px",e.elem.style.top =c + ("fixed" ===t.position ?0 : o()) +"px"

    }, T.prototype.hint =function (e) {

var t =this,n = (t.config, w.elem("div", {"class":h}));

n.innerHTML = e ||"", w(t.elem).find("." +h).remove(),t.elem.appendChild(n),clearTimeout(t.hinTimer),t.hinTimer =setTimeout(function () {

w(t.elem).find("." +h).remove()

},3e3)

}, T.prototype.getAsYM =function (e, t, n) {

return n ? t-- : t++, t <0 && (t =11, e--), t >11 && (t =0, e++), [e, t]

}, T.prototype.systemDate =function (e) {

var t = e ||new Date;

return {

year:t.getFullYear(),

month:t.getMonth(),

date:t.getDate(),

hours: e ? e.getHours() :0,

minutes: e ? e.getMinutes() :0,

seconds: e ? e.getSeconds() :0

        }

}, T.prototype.checkDate =function (e) {

var t,a,i =this,r = (new Date,i.config),o =r.dateTime =r.dateTime ||i.systemDate(),

s =i.bindElem ||r.elem[0],

l = (i.isInput(s) ?"val" :"html",i.isInput(s) ?s.value :"static" ===r.position ?"" :s.innerHTML),

c =function (e) {

e.year >d[1] && (e.year =d[1],a = !0), e.month >11 && (e.month =11,a = !0), e.hours >23 && (e.hours =0,a = !0), e.minutes >59 && (e.minutes =0, e.hours++,a = !0), e.seconds >59 && (e.seconds =0, e.minutes++,a = !0),t =n.getEndDate(e.month +1, e.year), e.date >t && (e.date =t,a = !0)

}, m =function (e, t, n) {

var o = ["startTime","endTime"];

t = (t.match(i.EXP_SPLIT) || []).slice(1), n = n ||0,r.range && (i[o[n]] =i[o[n]] || {}), w.each(i.format,function (s, l) {

var c =parseFloat(t[s]);

t[s].length < l.length && (a = !0),/yyyy|y/.test(l) ? (c

}), c(e)

};

return "limit" === e ? (c(o),i) : (l =l ||r.value,"string" ==typeof l && (l =l.replace(/\s+/g," ").replace(/^\s|\s$/g,"")),i.startState && !i.endState && (delete i.startState,i.endState = !0),"string" ==typeof l &&l ?i.EXP_IF.test(l) ?r.range ? (l =l.split(" " +r.range +" "),i.startDate =i.startDate ||i.systemDate(),i.endDate =i.endDate ||i.systemDate(),r.dateTime = w.extend({},i.startDate), w.each([i.startDate,i.endDate],function (e, t) {

m(t,l[e], e)

})) : m(o,l) : (i.hint("日期格式不合法
必须遵循下述格式:
" + (r.range ?r.format +" " +r.range +" " +r.format :r.format) +"
已为你重置"),a = !0) :l &&l.constructor ===Date ?r.dateTime =i.systemDate(l) : (r.dateTime =i.systemDate(),delete i.startState,delete i.endState,delete i.startDate,delete i.endDate,delete i.startTime,delete i.endTime), c(o),a &&l &&i.setValue(r.range ?i.endDate ?i.parse() :"" :i.parse()), e && e(),i)

}, T.prototype.mark =function (e, t) {

var n,a =this,i =a.config;

return w.each(i.mark,function (e, a) {

var i = e.split("-");

i[0] != t[0] &&0 !=i[0] ||i[1] != t[1] &&0 !=i[1] ||i[2] != t[2] || (n = a || t[2])

}),n && e.html('' +n +""),a

    }, T.prototype.limit =function (e, t, n, a) {

var i,r =this,o =r.config,l = {},d =o[n >41 ?"endDate" :"dateTime"],c = w.extend({},d, t || {});

return w.each({now:c,min:o.min,max:o.max},function (e, t) {

l[e] =r.newDate(w.extend({year: t.year,month: t.month,date: t.date},function () {

var e = {};

return w.each(a,function (n, a) {

e[a] = t[a]

}),e

            }())).getTime()

}),i =l.now l.max, e && e[i ?"addClass" :"removeClass"](s),i

    }, T.prototype.calendar =function (e) {

var t,a,i,r =this,s =r.config,l = e ||s.dateTime,c =new Date,m =r.lang(),

u ="date" !==s.type &&"datetime" !==s.type,h = e ?1 :0,y = w(r.table[h]).find("td"),

f = w(r.elemHeader[h][2]).find("span");

if (l.year d[1] && (l.year =d[1],r.hint("最高只能支持到公元" +d[1] +"年")),r.firstDate || (r.firstDate = w.extend({},l)),c.setFullYear(l.year,l.month,1),t =c.getDay(),a =n.getEndDate(l.month ||12,l.year),i =n.getEndDate(l.month +1,l.year), w.each(y,function (e, n) {

var d = [l.year,l.month],c =0;

n = w(n), n.removeAttr("class"), e =t && e

year:d[0],

month:d[1] -1,

date:d[2]

}, e)

var lay=$(n[0].outerHTML).attr("lay-ymd");

var nnn=$(n).html();

if(dataValue !=null){

var list_pspas=dataValue.resultInfo.sysdata.list_pspas;

$(list_pspas).each(function (i,e) {

var dateDepart = e.dateDepart;

var date =new Date(dateDepart)

var m=Number((date.getMonth()))+1;

var time=date.getFullYear()+"-"+m+"-"+date.getDate();

// console.log(time);

                    if (lay===time){

nnn +="

¥" + e.marketAdultPrice/100 +"
\n" +

"            余:" + e.storageNum +"

";

}

var t=new Date(time)

t1=t.getTime();

var t2=new Date(currentdate)

t3=t2.getTime();

if (fly){

if (t1>=t3){

if (flag1){

time2=time;

flag1=false;

}

if (lay==time2){

$(n).attr("class","active");

selection=lay;

// console.log($(n));

// $(n).addClass("active");

// console.log($(n));

                                if (time==time2){

$("#start").html(time2)

$("#year_select").val(e.id);

changeDataOrPeople(e.id);

var day=time2.lastIndexOf("-")+1;

var day1=time2.lastIndexOf("-");

var day2=time2.indexOf("-")+1;

var day3=time2.indexOf("-");

// var endday=time2.slice(0,day);

                                    var year=time2.slice(0,day3);

var mon1=time2.slice(day2,day1);

var endday1=String(Number(time2.slice(day,time2.length))+sellpreDay-1);

if (mon1==1||mon1==3||mon1==5||mon1==7||mon1==8||mon1==10||mon1==12){

if (endday1>31){

endday1=endday1-31;

mon1=String(Number(mon1)+1);

if (mon1>12){

mon1=mon1-12;

year=Number(year)+1;

}

}

}else if(mon1==2){

var cond1 =year %4 ==0;//条件1:年份必须要能被4整除

                                        var cond2 =year %100 !=0;//条件2:年份不能是整百数

                                        var cond3 =year %400 ==0;//条件3:年份是400的倍数

                                        // //当条件1和条件2同时成立时,就肯定是闰年,所以条件1和条件2之间为“与”的关系。

                                        // //如果条件1和条件2不能同时成立,但如果条件3能成立,则仍然是闰年。所以条件3与前2项为“或”的关系。

                                        // //所以得出判断闰年的表达式:

                                        var cond =cond1 &&cond2 ||cond3;

if(cond) {

if (endday1>29){

endday1=endday1-29;

mon1=String(Number(mon1)+1);

if (mon1>12){

mon1=mon1-12;

year=Number(year)+1;

}

}

}else {

if (endday1>28){

endday1=endday1-28;

mon1=String(Number(mon1)+1);

if (mon1>12){

mon1=mon1-12;

year=Number(year)+1;

}

}

}

}else{

if (endday1>30){

endday1=endday1-30;

mon1=String(Number(mon1)+1);

if (mon1>12){

mon1=1;

year=Number(year)+1;

}

}

}

var end=year+"-"+mon1+"-"+endday1;

$("#end").html(end);

fly=false;

}

}

}

if (lay==currentdate){

if (time!==lay){

$(n).removeClass("active")

}

}

}

$(n).html(nnn);

})

}else {

var idOne =getUrlParam("id");

var strings =idOne.split("#");

idOne =strings[0];

// console.log("idOne"+idOne);

                $.ajax({

url:B_TO_C +"adviserController/queryBTOCProductDetails",

type:"POST",

async:false,

data: {

id:idOne

                    },

success:function (data) {

dataValue = data;

var list_pspas=dataValue.resultInfo.sysdata.list_pspas;

$(list_pspas).each(function (i,e) {

dateDepart = e.dateDepart;

var date =new Date(dateDepart)

var m=Number((date.getMonth()))+1;

var time=date.getFullYear()+"-"+m+"-"+date.getDate();

var t=new Date(time)

t1=t.getTime();

var t2=new Date(currentdate)

t3=t2.getTime();

if (lay==currentdate){

if (time!==lay){

$(n).removeClass("active")

}

}

if (fly){

if (t1>=t3){

if (flag1){

time2=time;

flag1=false;

}

if (lay==time2){

$(n).attr("class","active");

selection=lay;

// console.log($(n));

// $(n).addClass("active");

// console.log($(n));

                                        if (time==time2){

$("#start").html(time2)

$("#year_select").val(e.id);

changeDataOrPeople(e.id);

var day=time2.lastIndexOf("-")+1;

var day1=time2.lastIndexOf("-");

var day2=time2.indexOf("-")+1;

var day3=time2.indexOf("-");

// var endday=time2.slice(0,day);

                                            var year=time2.slice(0,day3);

var mon1=time2.slice(day2,day1);

var endday1=String(Number(time2.slice(day,time2.length))+sellpreDay-1);

if (mon1==1||mon1==3||mon1==5||mon1==7||mon1==8||mon1==10||mon1==12){

if (endday1>31){

endday1=endday1-31;

mon1=String(Number(mon1)+1);

if (mon1>12){

mon1=mon1-12;

year=Number(year)+1;

}

}

}else if(mon1==2){

var cond1 =year %4 ==0;//条件1:年份必须要能被4整除

                                                var cond2 =year %100 !=0;//条件2:年份不能是整百数

                                                var cond3 =year %400 ==0;//条件3:年份是400的倍数

                                                // //当条件1和条件2同时成立时,就肯定是闰年,所以条件1和条件2之间为“与”的关系。

                                                // //如果条件1和条件2不能同时成立,但如果条件3能成立,则仍然是闰年。所以条件3与前2项为“或”的关系。

                                                // //所以得出判断闰年的表达式:

                                                var cond =cond1 &&cond2 ||cond3;

if(cond) {

if (endday1>29){

endday1=endday1-29;

mon1=String(Number(mon1)+1);

if (mon1>12){

mon1=mon1-12;

year=Number(year)+1;

}

}

}else {

if (endday1>28){

endday1=endday1-28;

mon1=String(Number(mon1)+1);

if (mon1>12){

mon1=mon1-12;

year=Number(year)+1;

}

}

}

}else{

if (endday1>30){

endday1=endday1-30;

mon1=String(Number(mon1)+1);

if (mon1>12){

mon1=1;

year=Number(year)+1;

}

}

}

var end=year+"-"+mon1+"-"+endday1;

$("#end").html(end);

fly=false;

}

}

}

if (lay==currentdate){

if (time!==lay){

$(n).removeClass("active")

}

}

}

if (lay===time){

nnn +="

¥" + e.marketAdultPrice/100 +"
\n" +

"            余:" + e.storageNum +"

";

}

$(n).html(nnn);

})

}});

}

}), w(f[0]).attr("lay-ym",l.year +"-" + (l.month +1)), w(f[1]).attr("lay-ym",l.year +"-" + (l.month +1)),"cn" ===s.lang ? (w(f[0]).attr("lay-type","year").html(l.year +"年"), w(f[1]).attr("lay-type","month").html(l.month +1 +"月")) : (w(f[0]).attr("lay-type","month").html(m.month[l.month]), w(f[1]).attr("lay-type","year").html(l.year)),u && (s.range && (e ?r.endDate =r.endDate || {

year:l.year + ("year" ===s.type ?1 :0),

month:l.month + ("month" ===s.type ?0 : -1)

} :r.startDate =r.startDate || {

year:l.year,

month:l.month

        }, e && (r.listYM = [[r.startDate.year,r.startDate.month +1], [r.endDate.year,r.endDate.month +1]],r.list(s.type,0).list(s.type,1),"time" ===s.type ?r.setBtnStatus("时间", w.extend({},r.systemDate(),r.startTime), w.extend({},r.systemDate(),r.endTime)) :r.setBtnStatus(!0))),s.range || (r.listYM = [[l.year,l.month +1]],r.list(s.type,0))),s.range && !e) {

var p =r.getAsYM(l.year,l.month);

r.calendar(w.extend({},l, {year:p[0],month:p[1]}))

}

return s.range ||r.limit(w(r.footer).find(g),null,0, ["hours","minutes","seconds"]),s.range && e && !u &&r.stampRange(),r

    }, T.prototype.list =function (e, t) {

var n =this,a =n.config,i =a.dateTime,r =n.lang(),

l =a.range &&"date" !==a.type &&"datetime" !==a.type,d = w.elem("ul", {

"class":m +" " + {

year:"laydate-year-list",

month:"laydate-month-list",

time:"laydate-time-list"

                }[e]

}),c =n.elemHeader[t],u = w(c[2]).find("span"),h =n.elemCont[t ||0],y = w(h).find("." +m)[0],

f ="cn" ===a.lang,p =f ?"年" :"",T =n.listYM[t] || {},C = ["hours","minutes","seconds"],

x = ["startTime","endTime"][t];

if (T[0] <1 && (T[0] =1),"year" === e) {

var M,b =M =T[0] -7;

b <1 && (b =M =1), w.each(new Array(15),function (e) {

var i = w.elem("li", {"lay-ym":M}),r = {year:M};

M ==T[0] && w(i).addClass(o),i.innerHTML =M +p,d.appendChild(i),M =n.firstDate.year && (r.month =a.max.month,r.date =a.max.date),n.limit(w(i),r, t),M++

}), w(u[f ?0 :1]).attr("lay-ym",M -8 +"-" +T[1]).html(b +p +" - " + (M -1 +p))

}else if ("month" === e) w.each(new Array(12),function (e) {

var i = w.elem("li", {"lay-ym": e}),s = {year:T[0],month: e};

e +1 ==T[1] && w(i).addClass(o),i.innerHTML =r.month[e] + (f ?"月" :""),d.appendChild(i),T[0] =n.firstDate.year && (s.date =a.max.date),n.limit(w(i),s, t)

}), w(u[f ?0 :1]).attr("lay-ym",T[0] +"-" +T[1]).html(T[0] +p);else if ("time" === e) {

var E =function () {

w(d).find("ol").each(function (e, a) {

w(a).find("li").each(function (a, i) {

n.limit(w(i), [{hours: a}, {hours:n[x].hours,minutes: a}, {

hours:n[x].hours,

minutes:n[x].minutes,

seconds: a

}][e], t, [["hours"], ["hours","minutes"], ["hours","minutes","seconds"]][e])

})

}),a.range ||n.limit(w(n.footer).find(g),n[x],0, ["hours","minutes","seconds"])

};

a.range ?n[x] || (n[x] = {

hours:0,

minutes:0,

seconds:0

            }) :n[x] =i, w.each([24,60,60],function (e, t) {

var a = w.elem("li"),i = ["

" +r.time[e] +"

    "];

    w.each(new Array(t),function (t) {

    i.push("" + w.digit(t,2) +"")

    }),a.innerHTML =i.join("") +"

",d.appendChild(a)

}), E()

}

if (y &&h.removeChild(y),h.appendChild(d),"year" === e ||"month" === e) w(n.elemMain[t]).addClass("laydate-ym-show"), w(d).find("li").on("click",function () {

var r =0 | w(this).attr("lay-ym");

if (!w(this).hasClass(s)) {

if (0 === t)i[e] =r,l && (n.startDate[e] =r),n.limit(w(n.footer).find(g),null,0);else if (l)n.endDate[e] =r;else {

var c ="year" === e ?n.getAsYM(r,T[1] -1,"sub") :n.getAsYM(T[0],r,"sub");

w.extend(i, {year:c[0],month:c[1]})

}

"year" ===a.type ||"month" ===a.type ? (w(d).find("." +o).removeClass(o), w(this).addClass(o),"month" ===a.type &&"year" === e && (n.listYM[t][0] =r,l && (n[["startDate","endDate"][t]].year =r),n.list("month", t))) : (n.checkDate("limit").calendar(),n.closeList()),n.setBtnStatus(),a.range ||n.done(null,"change"), w(n.footer).find(D).removeClass(s)

}

});else {

var S = w.elem("span", {"class":v}), k =function () {

w(d).find("ol").each(function (e) {

var t =this,a = w(t).find("li");

t.scrollTop =30 * (n[x][C[e]] -2),t.scrollTop <=0 &&a.each(function (e, n) {

if (!w(this).hasClass(s))return t.scrollTop =30 * (e -2), !0

                    })

})

},H = w(c[2]).find("." +v);

k(),S.innerHTML =a.range ? [r.startTime,r.endTime][t] :r.timeTips, w(n.elemMain[t]).addClass("laydate-time-show"),H[0] &&H.remove(),c[2].appendChild(S), w(d).find("ol").each(function (e) {

var t =this;

w(t).find("li").on("click",function () {

var r =0 |this.innerHTML;

w(this).hasClass(s) || (a.range ?n[x][C[e]] =r :i[C[e]] =r, w(t).find("." +o).removeClass(o), w(this).addClass(o), E(), k(), (n.endDate ||"time" ===a.type) &&n.done(null,"change"),n.setBtnStatus())

})

})

}

return n

    }, T.prototype.listYM = [], T.prototype.closeList =function () {

var e =this;

e.config;

w.each(e.elemCont,function (t, n) {

w(this).find("." +m).remove(), w(e.elemMain[t]).removeClass("laydate-ym-show laydate-time-show")

}), w(e.elem).find("." +v).remove()

}, T.prototype.setBtnStatus =function (e, t, n) {

var a,i =this,r =i.config,o = w(i.footer).find(g),d =r.range &&"date" !==r.type &&"time" !==r.type;

d && (t = t ||i.startDate, n = n ||i.endDate,a =i.newDate(t).getTime() >i.newDate(n).getTime(),i.limit(null, t) ||i.limit(null, n) ?o.addClass(s) :o[a ?"addClass" :"removeClass"](s), e &&a &&i.hint("string" ==typeof e ?l.replace(/日期/g, e) :l))

}, T.prototype.parse =function (e, t) {

var n =this,a =n.config,

i = t || (e ? w.extend({},n.endDate,n.endTime) :a.range ? w.extend({},n.startDate,n.startTime) :a.dateTime),

r =n.format.concat();

return w.each(r,function (e, t) {

/yyyy|y/.test(t) ?r[e] = w.digit(i.year, t.length) :/MM|M/.test(t) ?r[e] = w.digit(i.month +1, t.length) :/dd|d/.test(t) ?r[e] = w.digit(i.date, t.length) :/HH|H/.test(t) ?r[e] = w.digit(i.hours, t.length) :/mm|m/.test(t) ?r[e] = w.digit(i.minutes, t.length) :/ss|s/.test(t) && (r[e] = w.digit(i.seconds, t.length))

}),a.range && !e ?r.join("") +" " +a.range +" " +n.parse(1) :r.join("")

}, T.prototype.newDate =function (e) {

return e = e || {},new Date(e.year ||1, e.month ||0, e.date ||1, e.hours ||0, e.minutes ||0, e.seconds ||0)

}, T.prototype.setValue =function (e) {

var t =this,n =t.config,a =t.bindElem ||n.elem[0],i =t.isInput(a) ?"val" :"html";

return "static" ===n.position || w(a)[i](e ||""),this

    }, T.prototype.stampRange =function () {

var e,t,n =this,a =n.config,i = w(n.elem).find("td");

if (a.range && !n.endDate && w(n.footer).find(g).addClass(s),n.endDate)return e =n.newDate({

year:n.startDate.year,

month:n.startDate.month,

date:n.startDate.date

        }).getTime(),t =n.newDate({

year:n.endDate.year,

month:n.endDate.month,

date:n.endDate.date

        }).getTime(),e >t ?n.hint(l) :void w.each(i,function (a, i) {

var r = w(i).attr("lay-ymd").split("-"),s =n.newDate({year:r[0],month:r[1] -1,date:r[2]}).getTime();

w(i).removeClass(u +" " +o),s !==e &&s !==t || w(i).addClass(w(i).hasClass(y) || w(i).hasClass(f) ?u :o),s >e &&s

})

}, T.prototype.done =function (e, t) {

var n =this,a =n.config,i = w.extend({},n.startDate ? w.extend(n.startDate,n.startTime) :a.dateTime),

r = w.extend({}, w.extend(n.endDate,n.endTime));

return w.each([i,r],function (e, t) {

"month" in t && w.extend(t, {month: t.month +1})

}), e = e || [n.parse(),i,r],"function" ==typeof a[t ||"done"] &&a[t ||"done"].apply(a, e),n

    }, T.prototype.choose =function (e) {

var t =this,n =t.config,a =n.dateTime,i = w(t.elem).find("td"),r = e.attr("lay-ymd").split("-"),

l =function (e) {

new Date;

e && w.extend(a,r),n.range && (t.startDate ? w.extend(t.startDate,r) :t.startDate = w.extend({},r,t.startTime),t.startYMD =r)

};

if (r = {year:0 |r[0],month: (0 |r[1]) -1,date:0 |r[2]}, !e.hasClass(s))if (n.range) {

if (w.each(["startTime","endTime"],function (e, n) {

t[n] =t[n] || {hours:0,minutes:0,seconds:0}

}),t.endState) l(),delete t.endState,delete t.endDate,t.startState = !0,i.removeClass(o), e.addClass(o);else if (t.startState) {

if (e.addClass(o),t.endDate ? w.extend(t.endDate,r) :t.endDate = w.extend({},r,t.endTime),t.newDate(r).getTime()

var d = w.extend({},t.endDate, {

hours:t.startDate.hours,

minutes:t.startDate.minutes,

seconds:t.startDate.seconds

                    });

w.extend(t.endDate,t.startDate, {

hours:t.endDate.hours,

minutes:t.endDate.minutes,

seconds:t.endDate.seconds

                    }),t.startDate =d

                }

n.showBottom ||t.done(),t.stampRange(),t.endState = !0,t.done(null,"change")

}else e.addClass(o), l(),t.startState = !0;

w(t.footer).find(g)[t.endDate ?"removeClass" :"addClass"](s)

}else "static" ===n.position ? (l(!0),t.calendar().done().done(null,"change")) :"date" ===n.type ? (l(!0),t.setValue(t.parse()).remove().done()) :"datetime" ===n.type && (l(!0),t.calendar().done(null,"change"))

}, T.prototype.tool =function (e, t) {

var n =this,a =n.config,i =a.dateTime,r ="static" ===a.position,o = {

datetime:function () {

w(e).hasClass(s) || (n.list("time",0),a.range &&n.list("time",1), w(e).attr("lay-type","date").html(n.lang().dateTips))

},date:function () {

n.closeList(), w(e).attr("lay-type","datetime").html(n.lang().timeTips)

},clear:function () {

n.setValue("").remove(),r && (w.extend(i,n.firstDate),n.calendar()),a.range && (delete n.startState,delete n.endState,delete n.endDate,delete n.startTime,delete n.endTime),n.done(["", {}, {}])

},now:function () {

var e =new Date;

w.extend(i,n.systemDate(), {

hours:e.getHours(),

minutes:e.getMinutes(),

seconds:e.getSeconds()

}),n.setValue(n.parse()).remove(),r &&n.calendar(),n.done()

},confirm:function () {

if (a.range) {

if (!n.endDate)return n.hint("请先选择日期范围");

if (w(e).hasClass(s))return n.hint("time" ===a.type ?l.replace(/日期/g,"时间") :l)

}else if (w(e).hasClass(s))return n.hint("不在有效日期或时间范围内");

n.done(),n.setValue(n.parse()).remove()

}

};

o[t] &&o[t]()

}, T.prototype.change =function (e) {

var t =this,n =t.config,a =n.dateTime,i =n.range && ("year" ===n.type ||"month" ===n.type),

r =t.elemCont[e ||0],o =t.listYM[e], s =function (s) {

var l = ["startDate","endDate"][e],d = w(r).find(".laydate-year-list")[0],

c = w(r).find(".laydate-month-list")[0];

return d && (t.list("year", e)),c && (t.list("month", e)), (d ||c) && (w.extend(a, {year:""}),i && (t[l].year =""),n.range ||t.done(null,"change"),t.setBtnStatus(),n.range ||t.limit(w(t.footer).find(g), {year:""})),d ||c

                // return d && (o[0] = s ? o[0] - 15 : o[0] + 15, t.list("year", e)), c && (s ? o[0]-- : o[0]++, t.list("month", e)), (d || c) && (w.extend(a, {year: o[0]}), i && (t[l].year = o[0]), n.range || t.done(null, "change"), t.setBtnStatus(), n.range || t.limit(w(t.footer).find(g), {year: o[0]})), d || c

            };

return {

prevYear:function () {

s("sub") || (a.year--,t.checkDate("limit").calendar(),n.range ||t.done(null,"change"))

},prevMonth:function () {

var e =t.getAsYM(a.year,a.month,"sub");

w.extend(a, {

year:e[0],

month:e[1]

}),t.checkDate("limit").calendar(),n.range ||t.done(null,"change")

},nextMonth:function () {

var e =t.getAsYM(a.year,a.month);

w.extend(a, {

year:e[0],

month:e[1]

}),t.checkDate("limit").calendar(),n.range ||t.done(null,"change")

},nextYear:function () {

s() || (a.year++,t.checkDate("limit").calendar(),n.range ||t.done(null,"change"))

}

}

}, T.prototype.changeEvent =function () {

var e =this;

e.config;

w(e.elem).on("click",function (e) {

w.stope(e)

}), w.each(e.elemHeader,function (t, n) {

w(n[0]).on("click",function (n) {

e.change(t).prevYear()

$("td").each(function (i,e) {

$(e).removeClass("active");

if ($(e).attr("lay-ymd")==selection){

$(e).addClass("active");

}

})

}), w(n[1]).on("click",function (n) {

e.change(t).prevMonth()

$("td").each(function (i,e) {

$(e).removeClass("active");

if ($(e).attr("lay-ymd")==selection){

$(e).addClass("active");

}

})

}), w(n[2]).find("span").on("click",function (n) {

var a = w(this),i =a.attr("lay-ym"),r =a.attr("lay-type");

i && (i =i.split("-"),e.listYM[t] = [0 |i[0],0 |i[1]],e.list(r, t), w(e.footer).find(D).addClass(s))

$("td").each(function (i,e) {

$(e).removeClass("active");

if ($(e).attr("lay-ymd")==selection){

$(e).addClass("active");

}

})

}), w(n[3]).on("click",function (n) {

e.change(t).nextMonth()

$("td").each(function (i,e) {

$(e).removeClass("active");

if ($(e).attr("lay-ymd")==selection){

$(e).addClass("active");

}

})

}), w(n[4]).on("click",function (n) {

e.change(t).nextYear()

$("td").each(function (i,e) {

$(e).removeClass("active");

if ($(e).attr("lay-ymd")==selection){

$(e).addClass("active");

}

})

})

}), w.each(e.table,function (t, n) {

var a = w(n).find("td");

a.on("click",function () {

if($(this).children().attr("id") ==undefined){

// toggleMsg("暂无库存",2000);

                    $(this).addClass("disabled")

}else{

var ymd=$(this).attr("lay-ymd")

selection=ymd

                    $("#start").html(ymd)

var day =ymd.lastIndexOf("-") +1;

var day1 =ymd.lastIndexOf("-");

var day2 =ymd.indexOf("-") +1;

var day3 =ymd.indexOf("-");

// var endday=time2.slice(0,day);

                    var year =ymd.slice(0,day3);

var mon1 =ymd.slice(day2,day1);

var endday=ymd.slice(0,day);

var endday1=String(Number(ymd.slice(day,ymd.length))+sellpreDay-1);

if (mon1==1||mon1==3||mon1==5||mon1==7||mon1==8||mon1==10||mon1==12){

if (endday1 >31) {

endday1 =endday1 -31;

mon1 =String(Number(mon1) +1);

if (mon1 >12) {

mon1 =mon1 -12;

year =Number(year) +1;

}

}

}else if (mon1 ==2) {

var cond1 =year %4 ==0;//条件1:年份必须要能被4整除

                        var cond2 =year %100 !=0;//条件2:年份不能是整百数

                        var cond3 =year %400 ==0;//条件3:年份是400的倍数

                        // //当条件1和条件2同时成立时,就肯定是闰年,所以条件1和条件2之间为“与”的关系。

                        // //如果条件1和条件2不能同时成立,但如果条件3能成立,则仍然是闰年。所以条件3与前2项为“或”的关系。

                        // //所以得出判断闰年的表达式:

                        var cond =cond1 &&cond2 ||cond3;

if (cond) {

if (endday1 >29) {

endday1 =endday1 -29;

mon1 =String(Number(mon1) +1);

if (mon1 >12) {

mon1 =mon1 -12;

year =Number(year) +1;

}

}

}else {

if (endday1 >28) {

endday1 =endday1 -28;

mon1 =String(Number(mon1) +1);

if (mon1 >12) {

mon1 =mon1 -12;

year =Number(year) +1;

}

}

}

}else {

if (endday1 >30) {

endday1 =endday1 -30;

mon1 =String(Number(mon1) +1);

if (mon1 >12) {

mon1 =1;

year =Number(year) +1;

}

}

}

var end =year +"-" +mon1 +"-" +endday1;

$("#end").html(end)

$("#year_select").val($(this).children().attr("id"));

changeDataOrPeople($(this).children().attr("id"));

e.choose(w(this))

}

})

}), w(e.footer).find("span").on("click",function () {

var t = w(this).attr("lay-type");

e.tool(this,t)

})

}, T.prototype.isInput =function (e) {

return /input|textarea/.test(e.tagName.toLocaleLowerCase())

}, T.prototype.events =function () {

var e =this,t =e.config, n =function (n, a) {

n.on(t.trigger,function () {

a && (e.bindElem =this),e.render()

})

};

t.elem[0] && !t.elem[0].eventHandler && (n(t.elem,"bind"), n(t.eventElem), w(document).on("click",function (n) {

n.target !==t.elem[0] && n.target !==t.eventElem[0] && n.target !== w(t.closeStop)[0] &&e.remove()

}).on("keydown",function (t) {

13 === t.keyCode && w("#" +e.elemID)[0] &&e.elemID === T.thisElem && (t.preventDefault(), w(e.footer).find(g)[0].click())

}), w(window).on("resize",function () {

return !(!e.elem || !w(r)[0]) &&void e.position()

}),t.elem[0].eventHandler = !0)

},n.render =function (e) {

var t =new T(e);

return a.call(t)

},n.getEndDate =function (e, t) {

var n =new Date;

return n.setFullYear(t ||n.getFullYear(), e ||n.getMonth() +1,1),new Date(n.getTime() -864e5).getDate()

},window.lay =window.lay || w,e ? (n.ready(),layui.define(function (e) {

n.path =layui.cache.dir, e(i,n)

})) :"function" ==typeof define && define.amd ? define(function () {

return n

    }) :function () {

n.ready(),window.laydate =n

    }()

}();



laydate下载网址以及用法 https://www.layui.com/laydate/

你可能感兴趣的:(实现日历与多选框双向绑定的效果)