"use strict";const r=require("../../../../common/vendor.js"),l=require("./i18n/index.js"),d=require("./util.js"),{t:c}=r.initVueI18n(l.i18nMessages),o={name:"UniDatetimePicker",data(){return{indicatorStyle:"height: 50px;",visible:!1,fixNvueBug:{},dateShow:!0,timeShow:!0,title:"日期和时间",time:"",year:1920,month:0,day:0,hour:0,minute:0,second:0,startYear:1920,startMonth:1,startDay:1,startHour:0,startMinute:0,startSecond:0,endYear:2120,endMonth:12,endDay:31,endHour:23,endMinute:59,endSecond:59}},options:{virtualHost:!0},props:{type:{type:String,default:"datetime"},value:{type:[String,Number],default:""},modelValue:{type:[String,Number],default:""},start:{type:[Number,String],default:""},end:{type:[Number,String],default:""},returnType:{type:String,default:"string"},disabled:{type:[Boolean,String],default:!1},border:{type:[Boolean,String],default:!0},hideSecond:{type:[Boolean,String],default:!1}},watch:{modelValue:{handler(e){e?(this.parseValue(d.fixIosDateFormat(e)),this.initTime(!1)):(this.time="",this.parseValue(Date.now()))},immediate:!0},type:{handler(e){e==="date"?(this.dateShow=!0,this.timeShow=!1,this.title="日期"):e==="time"?(this.dateShow=!1,this.timeShow=!0,this.title="时间"):(this.dateShow=!0,this.timeShow=!0,this.title="日期和时间")},immediate:!0},start:{handler(e){this.parseDatetimeRange(d.fixIosDateFormat(e),"start")},immediate:!0},end:{handler(e){this.parseDatetimeRange(d.fixIosDateFormat(e),"end")},immediate:!0},months(e){this.checkValue("month",this.month,e)},days(e){this.checkValue("day",this.day,e)},hours(e){this.checkValue("hour",this.hour,e)},minutes(e){this.checkValue("minute",this.minute,e)},seconds(e){this.checkValue("second",this.second,e)}},computed:{years(){return this.getCurrentRange("year")},months(){return this.getCurrentRange("month")},days(){return this.getCurrentRange("day")},hours(){return this.getCurrentRange("hour")},minutes(){return this.getCurrentRange("minute")},seconds(){return this.getCurrentRange("second")},ymd(){return[this.year-this.minYear,this.month-this.minMonth,this.day-this.minDay]},hms(){return[this.hour-this.minHour,this.minute-this.minMinute,this.second-this.minSecond]},currentDateIsStart(){return this.year===this.startYear&&this.month===this.startMonth&&this.day===this.startDay},currentDateIsEnd(){return this.year===this.endYear&&this.month===this.endMonth&&this.day===this.endDay},minYear(){return this.startYear},maxYear(){return this.endYear},minMonth(){return this.year===this.startYear?this.startMonth:1},maxMonth(){return this.year===this.endYear?this.endMonth:12},minDay(){return this.year===this.startYear&&this.month===this.startMonth?this.startDay:1},maxDay(){return this.year===this.endYear&&this.month===this.endMonth?this.endDay:this.daysInMonth(this.year,this.month)},minHour(){if(this.type==="datetime")return this.currentDateIsStart?this.startHour:0;if(this.type==="time")return this.startHour},maxHour(){if(this.type==="datetime")return this.currentDateIsEnd?this.endHour:23;if(this.type==="time")return this.endHour},minMinute(){if(this.type==="datetime")return this.currentDateIsStart&&this.hour===this.startHour?this.startMinute:0;if(this.type==="time")return this.hour===this.startHour?this.startMinute:0},maxMinute(){if(this.type==="datetime")return this.currentDateIsEnd&&this.hour===this.endHour?this.endMinute:59;if(this.type==="time")return this.hour===this.endHour?this.endMinute:59},minSecond(){if(this.type==="datetime")return this.currentDateIsStart&&this.hour===this.startHour&&this.minute===this.startMinute?this.startSecond:0;if(this.type==="time")return this.hour===this.startHour&&this.minute===this.startMinute?this.startSecond:0},maxSecond(){if(this.type==="datetime")return this.currentDateIsEnd&&this.hour===this.endHour&&this.minute===this.endMinute?this.endSecond:59;if(this.type==="time")return this.hour===this.endHour&&this.minute===this.endMinute?this.endSecond:59},selectTimeText(){return c("uni-datetime-picker.selectTime")},okText(){return c("uni-datetime-picker.ok")},clearText(){return c("uni-datetime-picker.clear")},cancelText(){return c("uni-datetime-picker.cancel")}},mounted(){},methods:{lessThanTen(e){return e<10?"0"+e:e},parseTimeType(e){if(e){let t=e.split(":");this.hour=Number(t[0]),this.minute=Number(t[1]),this.second=Number(t[2])}},initPickerValue(e){let t=null;e?t=this.compareValueWithStartAndEnd(e,this.start,this.end):(t=Date.now(),t=this.compareValueWithStartAndEnd(t,this.start,this.end)),this.parseValue(t)},compareValueWithStartAndEnd(e,t,i){let a=null;return e=this.superTimeStamp(e),t=this.superTimeStamp(t),i=this.superTimeStamp(i),t&&i?e<t?a=new Date(t):e>i?a=new Date(i):a=new Date(e):t&&!i?a=t<=e?new Date(e):new Date(t):!t&&i?a=e<=i?new Date(e):new Date(i):a=new Date(e),a},superTimeStamp(e){let t="";if(this.type==="time"&&e&&typeof e=="string"){const i=new Date,a=i.getFullYear(),n=i.getMonth()+1,s=i.getDate();t=a+"/"+n+"/"+s+" "}return Number(e)&&(e=parseInt(e),t=0),this.createTimeStamp(t+e)},parseValue(e){if(e){if(this.type==="time"&&typeof e=="string")this.parseTimeType(e);else{let t=null;t=new Date(e),this.type!=="time"&&(this.year=t.getFullYear(),this.month=t.getMonth()+1,this.day=t.getDate()),this.type!=="date"&&(this.hour=t.getHours(),this.minute=t.getMinutes(),this.second=t.getSeconds())}this.hideSecond&&(this.second=0)}},parseDatetimeRange(e,t){if(!e){t==="start"&&(this.startYear=1920,this.startMonth=1,this.startDay=1,this.startHour=0,this.startMinute=0,this.startSecond=0),t==="end"&&(this.endYear=2120,this.endMonth=12,this.endDay=31,this.endHour=23,this.endMinute=59,this.endSecond=59);return}if(this.type==="time"){const i=e.split(":");this[t+"Hour"]=Number(i[0]),this[t+"Minute"]=Number(i[1]),this[t+"Second"]=Number(i[2])}else{if(!e){t==="start"?this.startYear=this.year-60:this.endYear=this.year+60;return}Number(e)&&(e=parseInt(e));const i=/[0-9]:[0-9]/;this.type==="datetime"&&t==="end"&&typeof e=="string"&&!i.test(e)&&(e=e+" 23:59:59");const a=new Date(e);this[t+"Year"]=a.getFullYear(),this[t+"Month"]=a.getMonth()+1,this[t+"Day"]=a.getDate(),this.type==="datetime"&&(this[t+"Hour"]=a.getHours(),this[t+"Minute"]=a.getMinutes(),this[t+"Second"]=a.getSeconds())}},getCurrentRange(e){const t=[];for(let i=this["min"+this.capitalize(e)];i<=this["max"+this.capitalize(e)];i++)t.push(i);return t},capitalize(e){return e.charAt(0).toUpperCase()+e.slice(1)},checkValue(e,t,i){i.indexOf(t)===-1&&(this[e]=i[0])},daysInMonth(e,t){return new Date(e,t,0).getDate()},createTimeStamp(e){if(e)return typeof e=="number"?e:(e=e.replace(/-/g,"/"),this.type==="date"&&(e=e+" 00:00:00"),Date.parse(e))},createDomSting(){const e=this.year+"-"+this.lessThanTen(this.month)+"-"+this.lessThanTen(this.day);let t=this.lessThanTen(this.hour)+":"+this.lessThanTen(this.minute);return this.hideSecond||(t=t+":"+this.lessThanTen(this.second)),this.type==="date"?e:this.type==="time"?t:e+" "+t},initTime(e=!0){this.time=this.createDomSting(),e&&(this.returnType==="timestamp"&&this.type!=="time"?(this.$emit("change",this.createTimeStamp(this.time)),this.$emit("input",this.createTimeStamp(this.time)),this.$emit("update:modelValue",this.createTimeStamp(this.time))):(this.$emit("change",this.time),this.$emit("input",this.time),this.$emit("update:modelValue",this.time)))},bindDateChange(e){const t=e.detail.value;this.year=this.years[t[0]],this.month=this.months[t[1]],this.day=this.days[t[2]]},bindTimeChange(e){const t=e.detail.value;this.hour=this.hours[t[0]],this.minute=this.minutes[t[1]],this.second=this.seconds[t[2]]},initTimePicker(){if(this.disabled)return;const e=d.fixIosDateFormat(this.time);this.initPickerValue(e),this.visible=!this.visible},tiggerTimePicker(e){this.visible=!this.visible},clearTime(){this.time="",this.$emit("change",this.time),this.$emit("input",this.time),this.$emit("update:modelValue",this.time),this.tiggerTimePicker()},setTime(){this.initTime(),this.tiggerTimePicker()}}};function f(e,t,i,a,n,s){return r.e({a:r.t(n.time),b:!n.time},n.time?{}:{c:r.t(s.selectTimeText)},{d:i.disabled?1:"",e:i.border?1:"",f:r.o((...h)=>s.initTimePicker&&s.initTimePicker(...h)),g:n.visible},n.visible?{h:r.o((...h)=>s.tiggerTimePicker&&s.tiggerTimePicker(...h))}:{},{i:n.visible},n.visible?r.e({j:r.t(s.selectTimeText),k:n.dateShow},n.dateShow?{l:r.f(s.years,(h,u,m)=>({a:r.t(s.lessThanTen(h)),b:u})),m:r.f(s.months,(h,u,m)=>({a:r.t(s.lessThanTen(h)),b:u})),n:r.f(s.days,(h,u,m)=>({a:r.t(s.lessThanTen(h)),b:u})),o:n.indicatorStyle,p:s.ymd,q:r.o((...h)=>s.bindDateChange&&s.bindDateChange(...h))}:{},{r:n.timeShow},n.timeShow?r.e({s:r.f(s.hours,(h,u,m)=>({a:r.t(s.lessThanTen(h)),b:u})),t:r.f(s.minutes,(h,u,m)=>({a:r.t(s.lessThanTen(h)),b:u})),v:!i.hideSecond},i.hideSecond?{}:{w:r.f(s.seconds,(h,u,m)=>({a:r.t(s.lessThanTen(h)),b:u}))},{x:r.n(i.hideSecond?"time-hide-second":""),y:n.indicatorStyle,z:s.hms,A:r.o((...h)=>s.bindTimeChange&&s.bindTimeChange(...h)),B:r.n(i.hideSecond?"sign-center":"sign-left"),C:!i.hideSecond},i.hideSecond?{}:{}):{},{D:r.t(s.clearText),E:r.o((...h)=>s.clearTime&&s.clearTime(...h)),F:r.t(s.cancelText),G:r.o((...h)=>s.tiggerTimePicker&&s.tiggerTimePicker(...h)),H:r.t(s.okText),I:r.o((...h)=>s.setTime&&s.setTime(...h)),J:r.n(n.dateShow&&n.timeShow?"":"fix-nvue-height"),K:r.s(n.fixNvueBug)}):{})}const y=r._export_sfc(o,[["render",f]]);wx.createComponent(y);
|