carRental-chooseDate.f8282b4c.js 33 KB

1
  1. (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["carRental-chooseDate"],{2507:function(t,e,a){"use strict";a.r(e);var i=a("e664"),n=a("a0ff");for(var r in n)["default"].indexOf(r)<0&&function(t){a.d(e,t,(function(){return n[t]}))}(r);var c=a("828b"),s=Object(c["a"])(n["default"],i["b"],i["c"],!1,null,null,null,!1,i["a"],void 0);e["default"]=s.exports},"41dd":function(t,e,a){"use strict";a.d(e,"b",(function(){return i})),a.d(e,"c",(function(){return n})),a.d(e,"a",(function(){}));var i=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-uni-view",{staticClass:"date-time-container",class:t.containerClass},[a("v-uni-view",{staticClass:"pickup-return-info"},[a("v-uni-view",{staticClass:"pickup-info"},[a("v-uni-text",{staticClass:"title"},[t._v("取车")]),a("v-uni-text",{staticClass:"date"},[t._v(t._s(t.formatPickupDate||"-"))]),a("v-uni-text",{staticClass:"week-time"},[t._v(t._s(t.formatPickupDateTime||"-"))])],1),a("v-uni-view",{staticClass:"duration"},[a("v-uni-text",[t._v(t._s(t.formatDuration))])],1),a("v-uni-view",{staticClass:"return-info"},[a("v-uni-text",{staticClass:"title"},[t._v("还车")]),a("v-uni-text",{staticClass:"date"},[t._v(t._s(t.formatReturnDate||"-"))]),a("v-uni-text",{staticClass:"week-time"},[t._v(t._s(t.formatReturnDateTime||"-"))])],1)],1),a("v-uni-view",{staticClass:"calendar-section"},[a("v-uni-view",{staticClass:"calendar-header"},[a("v-uni-text",{staticClass:"month-switcher",on:{click:function(e){arguments[0]=e=t.$handleEvent(e),t.changeMonth(-12)}}},[t._v("《")]),a("v-uni-text",{staticClass:"month-switcher",on:{click:function(e){arguments[0]=e=t.$handleEvent(e),t.changeMonth(-1)}}},[t._v("〈")]),a("v-uni-text",{staticClass:"current-month"},[t._v(t._s(t.formatYearMonth))]),a("v-uni-text",{staticClass:"month-switcher",on:{click:function(e){arguments[0]=e=t.$handleEvent(e),t.changeMonth(1)}}},[t._v("〉")]),a("v-uni-text",{staticClass:"month-switcher",on:{click:function(e){arguments[0]=e=t.$handleEvent(e),t.changeMonth(12)}}},[t._v("》")])],1),a("v-uni-view",{staticClass:"weekday-header"},t._l(["日","一","二","三","四","五","六"],(function(e){return a("v-uni-text",{key:e},[t._v(t._s(e))])})),1),a("v-uni-view",{staticClass:"calendar-grid"},t._l(t.calendarDaysMemo,(function(e,i){return a("v-uni-view",{key:i,staticClass:"calendar-day",class:{disabled:e.disabled,selected:e.selected,"start-date":e.isStartDate,"end-date":e.isEndDate,"in-range":e.inRange,today:e.isToday,empty:!e.date},on:{click:function(a){arguments[0]=a=t.$handleEvent(a),t.selectDate(e,i)}}},[a("v-uni-view",{staticClass:"day-content"},[a("v-uni-view",{staticClass:"date-content"},[a("v-uni-text",[t._v(t._s(e.date))]),e.isStartDate&&!e.isEndDate?a("v-uni-text",{staticClass:"date-tag"},[t._v("开始")]):e.isEndDate&&!e.isStartDate?a("v-uni-text",{staticClass:"date-tag"},[t._v("结束")]):e.isStartDate&&e.isEndDate?a("v-uni-text",{staticClass:"date-tag"},[t._v("开始/结束")]):t._e()],1)],1)],1)})),1)],1),a("v-uni-view",{staticClass:"time-picker-section"},[a("v-uni-view",{staticClass:"time-columns"},[a("v-uni-view",{staticClass:"time-column"},[a("v-uni-text",{staticClass:"time-title"},[t._v("取车时间")]),a("v-uni-picker-view",{staticClass:"time-picker",attrs:{value:t.pickupTimeIndex},on:{change:function(e){arguments[0]=e=t.$handleEvent(e),t.onPickupTimeChange.apply(void 0,arguments)}}},[a("v-uni-picker-view-column",t._l(t.availablePickupTimes,(function(e){return a("v-uni-view",{key:e,staticClass:"time-item"},[t._v(t._s(e))])})),1)],1)],1),a("v-uni-view",{staticClass:"time-column"},[a("v-uni-text",{staticClass:"time-title"},[t._v("还车时间")]),a("v-uni-picker-view",{staticClass:"time-picker",attrs:{value:t.returnTimeIndex},on:{change:function(e){arguments[0]=e=t.$handleEvent(e),t.onReturnTimeChange.apply(void 0,arguments)}}},[a("v-uni-picker-view-column",t._l(t.availableReturnTimes,(function(e){return a("v-uni-view",{key:e,staticClass:"time-item"},[t._v(t._s(e))])})),1)],1)],1)],1)],1),a("v-uni-view",{staticClass:"bottom-buttons"},[a("v-uni-button",{staticClass:"reset-btn",on:{click:function(e){arguments[0]=e=t.$handleEvent(e),t.handleReset.apply(void 0,arguments)}}},[t._v("重置")]),a("v-uni-button",{staticClass:"confirm-btn",on:{click:function(e){arguments[0]=e=t.$handleEvent(e),t.handleConfirm.apply(void 0,arguments)}}},[t._v("确定")])],1)],1)},n=[]},"6b88":function(t,e,a){"use strict";a.r(e);var i=a("41dd"),n=a("e1d3");for(var r in n)["default"].indexOf(r)<0&&function(t){a.d(e,t,(function(){return n[t]}))}(r);a("f1a9");var c=a("828b"),s=Object(c["a"])(n["default"],i["b"],i["c"],!1,null,"8d703c7c",null,!1,i["a"],void 0);e["default"]=s.exports},"73e1":function(t,e,a){"use strict";var i=a("29d8");t.exports=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(i)},"795c":function(t,e,a){"use strict";var i=a("8bdb"),n=a("db04").start,r=a("73e1");i({target:"String",proto:!0,forced:r},{padStart:function(t){return n(this,t,arguments.length>1?arguments[1]:void 0)}})},a0ff:function(t,e,a){"use strict";a.r(e);var i=a("c7bb"),n=a.n(i);for(var r in i)["default"].indexOf(r)<0&&function(t){a.d(e,t,(function(){return i[t]}))}(r);e["default"]=n.a},c1d8:function(t,e,a){var i=a("f171");i.__esModule&&(i=i.default),"string"===typeof i&&(i=[[t.i,i,""]]),i.locals&&(t.exports=i.locals);var n=a("967d").default;n("4b2ef660",i,!0,{sourceMap:!1,shadowMode:!1})},c7bb:function(t,e,a){"use strict";a("6a54");var i=a("f5bd").default;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,a("795c"),a("c223");var n=i(a("6b88")),r={components:{startEndDateTime:n.default},data:function(){return{defaultStartDate:"",defaultStartTime:"",defaultEndDate:"",defaultEndTime:"",maxDate:"",minDate:"",maxTime:"24:00",minTime:"00:00",ready:!1}},onLoad:function(t){var e,a,i,n;this.maxDate=null!==(e=null===t||void 0===t?void 0:t.maxDate)&&void 0!==e?e:"",this.minDate=null!==(a=null===t||void 0===t?void 0:t.minDate)&&void 0!==a?a:"",this.maxTime=null!==(i=null===t||void 0===t?void 0:t.maxTime)&&void 0!==i?i:"24:00",this.minTime=null!==(n=null===t||void 0===t?void 0:t.minTime)&&void 0!==n?n:"00:00",this.ready=!0,console.log("maxDate",t);var r=uni.getStorageSync("selectedDateTime");if(r)this.defaultStartDate=r.start.date,this.defaultStartTime=r.start.time,this.defaultEndDate=r.end.date,this.defaultEndTime=r.end.time;else{var c="",s="";this.minDate?(c=new Date(this.minDate),s=new Date(this.minDate)):(c=new Date,s=new Date),c.setDate(c.getDate()+1),s.setDate(s.getDate()+2);var o=function(t){var e=t.getFullYear(),a=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0");return"".concat(e,"-").concat(a,"-").concat(i)};this.defaultStartDate=o(c),this.defaultStartTime=this.minTime?this.minTime:"9:00",this.defaultEndDate=o(s),this.defaultEndTime=this.minTime?this.minTime:"9:00",console.log("this.defaultStartDate",this.defaultStartDate)}},methods:{handleDateTimeConfirm:function(t){uni.setStorageSync("selectedDateTime",t),uni.navigateBack()}}};e.default=r},caea:function(t,e,a){"use strict";a("6a54");var i=a("f5bd").default;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=i(a("39d8")),r=i(a("5de6"));a("c223"),a("795c"),a("64aa"),a("fd3c"),a("8f71"),a("bf0f"),a("aa9c"),a("c9b5"),a("ab80"),a("5ef2"),a("7a76"),a("4626"),a("5ac7"),a("5c47"),a("a1c1"),a("f7a5");var c={MAX_RENTAL_DAYS:30,MIN_RENTAL_HOURS:1,DEFAULT_PICKUP_TIME:"09:00",DEFAULT_RETURN_TIME:"09:00",TIME_STEP:30},s=(0,n.default)({name:"DateTimeRangePicker",props:{startDateTime:{type:[String,Date],default:null},endDateTime:{type:[String,Date],default:null},minDate:{type:[String,Date],default:function(){var t=new Date;return"".concat(t.getFullYear(),"-").concat(String(t.getMonth()+1).padStart(2,"0"),"-").concat(String(t.getDate()).padStart(2,"0"))}},maxDate:{type:[String,Date],default:function(){var t=new Date;return t.setFullYear(t.getFullYear()+1),"".concat(t.getFullYear(),"-").concat(String(t.getMonth()+1).padStart(2,"0"),"-").concat(String(t.getDate()).padStart(2,"0"))}},maxTime:{type:String,default:"00:00"},minTime:{type:String,default:"23:59"},timeStep:{type:Number,default:30},showHeader:{type:Boolean,default:!0},defaultStartDate:{type:String,default:""},defaultStartTime:{type:String,default:""},defaultEndDate:{type:String,default:""},defaultEndTime:{type:String,default:""}},emits:["update:startDateTime","update:endDateTime","confirm","reset"],data:function(){return{pickupTime:this.defaultStartTime||"09:00",returnTime:this.defaultEndTime||"09:00",pickupTimeIndex:[0],returnTimeIndex:[0],currentMonth:"2024-12",calendarDays:[],timeList:[],startDate:this.defaultStartDate?new Date(this.defaultStartDate):null,endDate:this.defaultEndDate?new Date(this.defaultEndDate):null,platform:"",isIOS:!1,timeListCache:null,calendarDaysCache:{}}},watch:{minTime:function(t){this.minTime=t,console.log("this.minTime",this.minTime)},maxTime:function(t){this.maxTime=t}},created:function(){var t=this;this.platform="h5",this.debouncedChangeMonth=this.debounce((function(e){var a=t.currentMonth.split("-").map(Number),i=(0,r.default)(a,2),n=i[0],c=i[1],s=new Date(n,c-1+e,1),o=s.getFullYear(),d=s.getMonth()+1;t.currentMonth="".concat(o,"-").concat(String(d).padStart(2,"0")),t.generateCalendarDays()})),this.initializeComponent(),this.$nextTick((function(){t.updateCalendarDays()}))},mounted:function(){this.initializeComponent()},computed:{formatYearMonth:function(){var t=this.currentMonth.split("-"),e=(0,r.default)(t,2),a=e[0],i=e[1];return"".concat(a,"年").concat(i,"月")},availablePickupTimes:function(){if(!this.startDate)return this.timeList;var t=new Date,e=new Date(t.getFullYear(),t.getMonth(),t.getDate());if(this.startDate.toDateString()===e.toDateString()){var a=t.getHours(),i=t.getMinutes();return this.timeList.filter((function(t){var e=t.split(":").map(Number),n=(0,r.default)(e,2),c=n[0],s=n[1];return!(c<a)&&!(c===a&&s<=i+30)}))}return this.timeList},availableReturnTimes:function(){var t,e,a,i=this;if(!this.startDate)return this.timeList;var n=new Date,c=new Date(n.getFullYear(),n.getMonth(),n.getDate());if((null===(t=this.endDate)||void 0===t?void 0:t.toDateString())===c.toDateString()){var s=n.getHours(),o=n.getMinutes(),d=this.pickupTime.split(":").map(Number),u=(0,r.default)(d,2),l=u[0],m=u[1];return this.timeList.filter((function(t){var e=t.split(":").map(Number),a=(0,r.default)(e,2),n=a[0],d=a[1];return!(n<s)&&(!(n===s&&d<=o+30)&&(i.startDate.toDateString()!==c.toDateString()||!(n<l||n===l&&d<=m)))}))}if((null===(e=this.startDate)||void 0===e?void 0:e.toDateString())===(null===(a=this.endDate)||void 0===a?void 0:a.toDateString())){var h=this.pickupTime.split(":").map(Number),f=(0,r.default)(h,2),p=f[0],v=f[1];return this.timeList.filter((function(t){var e=t.split(":").map(Number),a=(0,r.default)(e,2),i=a[0],n=a[1],c=60*i+n-(60*p+v);return c>=60}))}return this.timeList},formatPickupDate:function(){return this.startDate?"".concat(this.startDate.getFullYear(),"-").concat(String(this.startDate.getMonth()+1).padStart(2,"0"),"-").concat(String(this.startDate.getDate()).padStart(2,"0")):"年-月-日"},formatPickupDateTime:function(){if(!this.startDate)return"--:--";var t=["周日","周一","周二","周三","周四","周五","周六"][this.startDate.getDay()];return"".concat(t," ").concat(this.pickupTime)},formatReturnDate:function(){return this.endDate?"".concat(this.endDate.getFullYear(),"-").concat(String(this.endDate.getMonth()+1).padStart(2,"0"),"-").concat(String(this.endDate.getDate()).padStart(2,"0")):"年-月-日"},formatReturnDateTime:function(){if(!this.endDate)return"--:--";var t=["周日","周一","周二","周三","周四","周五","周六"][this.endDate.getDay()];return"".concat(t," ").concat(this.returnTime)},formatDuration:function(){if(!this.startDate||!this.endDate||!this.pickupTime||!this.returnTime)return"-小时";try{var t=new Date(this.startDate),e=new Date(this.endDate),a=this.pickupTime.split(":").map(Number),i=(0,r.default)(a,2),n=i[0],c=i[1],s=this.returnTime.split(":").map(Number),o=(0,r.default)(s,2),d=o[0],u=o[1];t.setHours(n,c,0,0),e.setHours(d,u,0,0);var l=e.getTime()-t.getTime(),m=Math.ceil(l/36e5),h=Math.floor(m/24),f=m%24;return 0===h?"".concat(m,"小时"):0===f?"".concat(h,"天"):"".concat(h,"天").concat(f,"小时")}catch(p){return console.error("计算时长出错:",p),"-小时"}},timeListMemo:function(){if(this.timeListCache)return this.timeListCache;for(var t=[],e=Number(this.minTime.split(":")[0]),a=Number(this.maxTime.split(":")[0]),i=e;i<a;i++)for(var n=0;n<60;n+=this.timeStep)t.push("".concat(i.toString().padStart(2,"0"),":").concat(n.toString().padStart(2,"0")));return this.timeListCache=t,t},calendarDaysMemo:function(){var t,e,a="".concat(this.currentMonth,"_").concat(null===(t=this.startDate)||void 0===t?void 0:t.getTime(),"_").concat(null===(e=this.endDate)||void 0===e?void 0:e.getTime());if(this.calendarDaysCache[a])return this.calendarDaysCache[a];var i=this.generateCalendarDays();return this.calendarDaysCache[a]=i,this.calendarDays=i,i},containerClass:function(){return"h5-container"}},methods:{debounce:function(t){var e=this,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:300,i=null;return function(){for(var n=arguments.length,r=new Array(n),c=0;c<n;c++)r[c]=arguments[c];i&&clearTimeout(i),i=setTimeout((function(){t.apply(e,r)}),a)}},onPickupTimeChange:function(t){var e=t.detail.value[0],a=this.availablePickupTimes[e];a&&(this.pickupTime=a,this.pickupTimeIndex=[this.availablePickupTimes.indexOf(a)])},onReturnTimeChange:function(t){var e=t.detail.value[0],a=this.availableReturnTimes[e];a&&(this.returnTime=a,this.returnTimeIndex=[this.availableReturnTimes.indexOf(a)])},generateCalendarDays:function(){try{var t=this.currentMonth.split("-").map(Number),e=(0,r.default)(t,2),a=e[0],i=e[1],n=new Date(a,i-1,1),c=new Date(a,i,0),s=new Date;s.setHours(0,0,0,0);var o=this.parseDate(this.maxDate),d=this.parseDate(this.minDate);if(!o||!d)throw new Error("Invalid date range");for(var u=[],l=n.getDay(),m=c.getDate(),h=0;h<l;h++)u.push({date:"",disabled:!0});for(var f=1;f<=m;f++){var p=new Date(a,i-1,f);p.setHours(0,0,0,0);var v=this.startDate&&this.isSameDay(p,this.startDate),D=this.endDate&&this.isSameDay(p,this.endDate),g=this.isDateInRange(p);u.push({date:f,disabled:p<d||p>o,selected:v||D,isToday:this.isSameDay(p,s),isStartDate:v,isEndDate:D,inRange:g})}for(var T=l+m,b=7*Math.ceil(T/7)-T,y=0;y<b;y++)u.push({date:"",disabled:!0});return u}catch(k){return console.error("Calendar generation error:",k),[]}},parseDate:function(t){if(!t)return null;try{var e="string"===typeof t?new Date(t):t;return e.setHours(0,0,0,0),this.isValidDate(e)?e:null}catch(a){return null}},isDateInRange:function(t){if(!this.startDate||!this.endDate)return!1;var e=this.startDate.getTime(),a=this.endDate.getTime(),i=t.getTime();return i>e&&i<a},updateAvailableTimes:function(){var t,e=new Date,a=new Date(e.getFullYear(),e.getMonth(),e.getDate());if((null===(t=this.startDate)||void 0===t?void 0:t.toDateString())===a.toDateString()){var i=this.availablePickupTimes;i.length>0&&(this.pickupTime=i[0],this.pickupTimeIndex=[0])}if(this.endDate){var n=this.availableReturnTimes;n.length>0&&(this.returnTime=n[0],this.returnTimeIndex=[0])}},selectPickupTime:function(t){this.pickupTime=t},selectReturnTime:function(t){this.returnTime=t},selectDate:function(t,e){if(!t.disabled&&t.date){if(!this.startDate||this.startDate&&this.endDate){this.startDate=this.getDateFromDay(t),this.endDate=null;var a=new Date,i=new Date(a.getFullYear(),a.getMonth(),a.getDate());if(this.startDate.toDateString()===i.toDateString())this.updateAvailableTimes();else{var n=this.availablePickupTimes[this.pickupTimeIndex[0]];n&&(this.pickupTime=n)}}else{var c=this.getDateFromDay(t),s=new Date,o=new Date(s.getFullYear(),s.getMonth(),s.getDate());if(c<this.startDate)if(this.startDate=c,this.endDate=null,c.toDateString()===o.toDateString())this.updateAvailableTimes();else{var d=this.availablePickupTimes[this.pickupTimeIndex[0]];d&&(this.pickupTime=d)}else if(this.endDate=c,this.endDate.toDateString()===this.startDate.toDateString()){var u=this.pickupTime.split(":").map(Number),l=(0,r.default)(u,2),m=l[0],h=l[1],f=this.timeList.filter((function(t){var e=t.split(":").map(Number),a=(0,r.default)(e,2),i=a[0],n=a[1],c=60*i+n-(60*m+h);return c>=60}));if(0===f.length)return this.endDate=null,uni.showToast({title:"当天无法完成最少1小时的租期,请选择其他日期",icon:"none",duration:2e3}),void this.updateCalendarDays();this.returnTime=f[0],this.returnTimeIndex=[this.timeList.indexOf(this.returnTime)]}else{var p=this.availableReturnTimes[this.returnTimeIndex[0]];p&&(this.returnTime=p)}}this.updateCalendarDays();if(this.startDate&&!this.endDate){var v=this.getDateFromDay(t),D=Math.abs(v-this.startDate),g=Math.ceil(D/864e5);if(g>30)return void uni.showToast({title:"租期不能超过".concat(30,"天"),icon:"none"})}}},getDateFromDay:function(t){var e=this.currentMonth.split("-").map(Number),a=(0,r.default)(e,2),i=a[0],n=a[1];return new Date(i,n-1,t.date)},updateCalendarDays:function(){this.generateCalendarDays()},changeMonth:function(t){var e,a,i=this,n=this.currentMonth.split("-").map(Number),c=(0,r.default)(n,2),s=c[0],o=c[1],d=new Date(s,o-1+t,1),u=d.getFullYear(),l=d.getMonth()+1;this.currentMonth="".concat(u,"-").concat(String(l).padStart(2,"0"));var m="".concat(this.currentMonth,"_").concat(null===(e=this.startDate)||void 0===e?void 0:e.getTime(),"_").concat(null===(a=this.endDate)||void 0===a?void 0:a.getTime());delete this.calendarDaysCache[m],this.$nextTick((function(){i.calendarDays=i.calendarDaysMemo}))},handleConfirm:function(){if(this.startDate&&this.endDate){var t=this.parseDateTime(this.formatDateTime(this.startDate,this.pickupTime)),e=this.parseDateTime(this.formatDateTime(this.endDate,this.returnTime)),a=new Date;if(t&&e)if(t<a)uni.showToast({title:"取车时间不能早于当前时间",icon:"none"});else{var i=(e-t)/36e5;if(i<1)uni.showToast({title:"租车时长不能少于1小时",icon:"none"});else{var n=["周日","周一","周二","周三","周四","周五","周六"],r=n[this.startDate.getDay()],c=n[this.endDate.getDay()],s={start:{date:this.formatDate(this.startDate),weekDay:r,time:this.pickupTime,fullDateTime:this.formatDateTime(this.startDate,this.pickupTime)},end:{date:this.formatDate(this.endDate),weekDay:c,time:this.returnTime,fullDateTime:this.formatDateTime(this.endDate,this.returnTime)},duration:this.calculateDuration(t,e)};this.$emit("confirm",s)}}else uni.showToast({title:"日期格式错误",icon:"none"})}else uni.showToast({title:"请选择完整的租车时间",icon:"none"})},handleReset:function(){this.startDate=null,this.endDate=null,this.pickupTime="09:00",this.returnTime="09:00",this.pickupTimeIndex=[0],this.returnTimeIndex=[0],this.updateCalendarDays();var t=new Date;this.currentMonth="".concat(t.getFullYear(),"-").concat(String(t.getMonth()+1).padStart(2,"0")),this.$emit("update:startDateTime",null),this.$emit("update:endDateTime",null),this.$emit("reset"),uni.showToast({title:"已重置",icon:"none"})},formatDateTime:function(t,e){try{var a=t.getFullYear(),i=String(t.getMonth()+1).padStart(2,"0"),n=String(t.getDate()).padStart(2,"0");return"".concat(a,"-").concat(i,"-").concat(n,"T").concat(e,":00")}catch(r){return console.error("日期格式化错误:",r),""}},parseDateTime:function(t){try{t.includes(" ")&&(t=t.replace(" ","T"));var e=new Date(t);return this.isValidDate(e)?e:null}catch(a){return console.error("日期解析错误:",a),null}},calculateDuration:function(t,e){var a=new Date(t),i=new Date(e),n=i-a,r=Math.floor(n/864e5),c=Math.floor(n%864e5/36e5);return{days:r,hours:c,totalHours:24*r+c}},isValidDate:function(t){return t instanceof Date&&!isNaN(t)},isSameDay:function(t,e){return!(!t||!e)&&(t.getFullYear()===e.getFullYear()&&t.getMonth()===e.getMonth()&&t.getDate()===e.getDate())},formatDate:function(t){if(!t)return"";var e=t.getFullYear(),a=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0");return"".concat(e,"-").concat(a,"-").concat(i)},validateTimeRange:function(t,e){var a=new Date,i=(e-t)/36e5;return t<a?(this.showToast("取车时间不能早于当前时间"),!1):!(i<c.MIN_RENTAL_HOURS)||(this.showToast("租车时长不能少于".concat(c.MIN_RENTAL_HOURS,"小时")),!1)},showToast:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"none";uni.showToast({title:t,icon:e})},handleError:function(t,e){return console.error(t),e},parseDateSafely:function(t){try{var e=new Date(t);return this.isValidDate(e)?e:null}catch(a){return this.handleError(a,null)}},initializeComponent:function(){var t=new Date;this.currentMonth=this.formatDate(t).slice(0,7),this.defaultStartDate&&(this.startDate=new Date(this.defaultStartDate),this.pickupTime=this.defaultStartTime||"09:00",this.pickupTimeIndex=[this.timeList.indexOf(this.pickupTime)]),this.defaultEndDate&&(this.endDate=new Date(this.defaultEndDate),this.returnTime=this.defaultEndTime||"09:00",this.returnTimeIndex=[this.timeList.indexOf(this.returnTime)]),this.calendarDays=this.calendarDaysMemo,this.timeList=this.timeListMemo},handleDateSelect:function(t){this.isDateDisabled(t)||(!this.startDate||this.startDate&&this.endDate?this.handleStartDateSelect(t):this.handleEndDateSelect(t),this.updateCalendarDays())},isDateDisabled:function(t){return t.disabled||!t.date},formatTime:function(t){return t?"".concat(String(t.getHours()).padStart(2,"0"),":").concat(String(t.getMinutes()).padStart(2,"0")):"09:00"},handleTimeChange:function(t,e){try{var a,i,n=this.validateTimeValue(e);if(!n)return;if("pickup"===t)this.pickupTime=n,(null===(a=this.startDate)||void 0===a?void 0:a.toDateString())===(null===(i=this.endDate)||void 0===i?void 0:i.toDateString())&&this.validateReturnTime();else this.returnTime=n}catch(r){console.error("Time change error:",r)}},validateTimeValue:function(t){if(!t)return null;var e=t.split(":").map(Number),a=(0,r.default)(e,2),i=a[0],n=a[1];return isNaN(i)||isNaN(n)||i<0||i>23||n<0||n>59?null:"".concat(i.toString().padStart(2,"0"),":").concat(n.toString().padStart(2,"0"))},validateReturnTime:function(){if(this.pickupTime&&this.returnTime){var t=this.pickupTime.split(":").map(Number),e=(0,r.default)(t,2),a=e[0],i=e[1],n=this.returnTime.split(":").map(Number),c=(0,r.default)(n,2),s=c[0],o=c[1],d=60*a+i,u=60*s+o;if(u<=d+60){var l=d+60,m=Math.floor(l/60),h=l%60;this.returnTime="".concat(m.toString().padStart(2,"0"),":").concat(h.toString().padStart(2,"0"))}}},clearCache:function(){this.timeListCache=null,this.calendarDaysCache={}}},beforeDestroy:function(){this.clearCache(),this.debounceTimer&&clearTimeout(this.debounceTimer)}},"watch",{timeStep:function(){this.timeListCache=null},currentMonth:function(){this.calendarDaysCache={}},calendarDaysMemo:{handler:function(t){this.calendarDays=t},immediate:!0},defaultStartDate:function(t){t&&(this.startDate=new Date(t),this.updateCalendarDays())},defaultStartTime:function(t){t&&(this.pickupTime=t,this.pickupTimeIndex=[this.timeList.indexOf(t)])},defaultEndDate:function(t){t&&(this.endDate=new Date(t),this.updateCalendarDays())},defaultEndTime:function(t){t&&(this.returnTime=t,this.returnTimeIndex=[this.timeList.indexOf(t)])}});e.default=s},db04:function(t,e,a){"use strict";var i=a("bb80"),n=a("c435"),r=a("9e70"),c=a("f298"),s=a("862c"),o=i(c),d=i("".slice),u=Math.ceil,l=function(t){return function(e,a,i){var c,l,m=r(s(e)),h=n(a),f=m.length,p=void 0===i?" ":r(i);return h<=f||""===p?m:(c=h-f,l=o(p,u(c/p.length)),l.length>c&&(l=d(l,0,c)),t?m+l:l+m)}};t.exports={start:l(!1),end:l(!0)}},e1d3:function(t,e,a){"use strict";a.r(e);var i=a("caea"),n=a.n(i);for(var r in i)["default"].indexOf(r)<0&&function(t){a.d(e,t,(function(){return i[t]}))}(r);e["default"]=n.a},e664:function(t,e,a){"use strict";a.d(e,"b",(function(){return i})),a.d(e,"c",(function(){return n})),a.d(e,"a",(function(){}));var i=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-uni-view",[t.ready?a("start-end-date-time",{key:t.minTime+"-"+t.maxTime,attrs:{defaultStartDate:t.defaultStartDate,defaultStartTime:t.defaultStartTime,defaultEndDate:t.defaultEndDate,defaultEndTime:t.defaultEndTime,minDate:t.minDate,maxDate:t.maxDate,minTime:t.minTime,maxTime:t.maxTime,timeStep:60},on:{confirm:function(e){arguments[0]=e=t.$handleEvent(e),t.handleDateTimeConfirm.apply(void 0,arguments)}}}):t._e()],1)},n=[]},f171:function(t,e,a){var i=a("c86c");e=i(!1),e.push([t.i,'@charset "UTF-8";\n/**\n * 下方引入的为Tuniao UI的集成样式文件,为scss预处理器,其中包含了一些"tn-"开头的自定义变量\n * 使用的时候,请将下面的一行复制到您的uniapp项目根目录的uni.scss中即可\n * Tuniao UI自定义的css类名和scss变量,均以"tn-"开头,不会造成冲突,请放心使用 \n */.date-time-container[data-v-8d703c7c]{box-sizing:border-box;padding-bottom:calc(%?120?% + constant(safe-area-inset-bottom));padding-bottom:calc(%?120?% + env(safe-area-inset-bottom))}.date-time-container .pickup-return-info[data-v-8d703c7c]{display:flex;justify-content:space-between;align-items:center;padding:%?30?%;padding-top:calc(%?30?% + constant(safe-area-inset-top));padding-top:calc(%?30?% + env(safe-area-inset-top));background-color:#fff;margin-bottom:%?20?%}.date-time-container .pickup-return-info .pickup-info[data-v-8d703c7c],\n.date-time-container .pickup-return-info .return-info[data-v-8d703c7c]{display:flex;flex-direction:column;flex:1;max-width:40%}.date-time-container .pickup-return-info .pickup-info .title[data-v-8d703c7c],\n.date-time-container .pickup-return-info .return-info .title[data-v-8d703c7c]{font-size:%?26?%;color:#666;margin-bottom:%?12?%}.date-time-container .pickup-return-info .pickup-info .date[data-v-8d703c7c],\n.date-time-container .pickup-return-info .pickup-info .week-time[data-v-8d703c7c],\n.date-time-container .pickup-return-info .return-info .date[data-v-8d703c7c],\n.date-time-container .pickup-return-info .return-info .week-time[data-v-8d703c7c]{min-height:1em}.date-time-container .pickup-return-info .pickup-info[data-v-8d703c7c]{text-align:left}.date-time-container .pickup-return-info .pickup-info .date[data-v-8d703c7c],\n.date-time-container .pickup-return-info .pickup-info .week-time[data-v-8d703c7c]{text-align:left}.date-time-container .pickup-return-info .return-info[data-v-8d703c7c]{text-align:right}.date-time-container .pickup-return-info .return-info .date[data-v-8d703c7c],\n.date-time-container .pickup-return-info .return-info .week-time[data-v-8d703c7c]{text-align:right}.date-time-container .pickup-return-info .duration[data-v-8d703c7c]{display:flex;align-items:center;justify-content:center;font-size:%?24?%;color:#666;flex:0 0 auto;min-width:%?120?%;text-align:center;background-color:#fff;padding:%?10?% %?20?%;border-radius:%?30?%;box-shadow:0 %?2?% %?8?% rgba(0,0,0,.05)}.date-time-container .calendar-section[data-v-8d703c7c]{padding:%?20?%;background-color:#f8f8f8;width:100%;box-sizing:border-box}.date-time-container .calendar-section .calendar-header[data-v-8d703c7c]{display:flex;justify-content:center;align-items:center;margin-bottom:%?20?%}.date-time-container .calendar-section .calendar-header .month-switcher[data-v-8d703c7c]{padding:0 %?20?%;color:#666;cursor:pointer}.date-time-container .calendar-section .calendar-header .month-switcher[data-v-8d703c7c]:active{opacity:.7}.date-time-container .calendar-section .calendar-header .current-month[data-v-8d703c7c]{font-size:%?32?%;font-weight:700;padding:0 %?40?%}.date-time-container .calendar-section .weekday-header[data-v-8d703c7c]{display:grid;grid-template-columns:repeat(7,1fr);width:100%;padding:%?20?% 0;box-sizing:border-box}.date-time-container .calendar-section .weekday-header uni-text[data-v-8d703c7c]{text-align:center;font-size:%?28?%;color:#666}.date-time-container .calendar-section .calendar-grid[data-v-8d703c7c]{display:grid;grid-template-columns:repeat(7,1fr);gap:0;padding:%?20?% 0;box-sizing:border-box;width:100%}.date-time-container .calendar-section .calendar-grid .calendar-day[data-v-8d703c7c]{position:relative;width:100%;height:0;padding-bottom:100%;font-size:%?28?%;color:#333;box-sizing:border-box}.date-time-container .calendar-section .calendar-grid .calendar-day.empty[data-v-8d703c7c]{background:none}.date-time-container .calendar-section .calendar-grid .calendar-day.disabled[data-v-8d703c7c]{color:#ccc}.date-time-container .calendar-section .calendar-grid .calendar-day.today .day-content[data-v-8d703c7c]{color:#8bc34a;font-weight:700}.date-time-container .calendar-section .calendar-grid .calendar-day.start-date .day-content[data-v-8d703c7c]{background-color:#8bc34a;color:#fff;border-radius:%?8?% 0 0 %?8?%;margin-right:-1px}.date-time-container .calendar-section .calendar-grid .calendar-day.start-date.end-date .day-content[data-v-8d703c7c]{border-radius:%?8?%}.date-time-container .calendar-section .calendar-grid .calendar-day.end-date .day-content[data-v-8d703c7c]{background-color:#8bc34a!important;color:#fff!important;border-radius:0 %?8?% %?8?% 0;margin-left:-1px}.date-time-container .calendar-section .calendar-grid .calendar-day.start-date.end-date .day-content[data-v-8d703c7c]{margin:0;border-radius:%?8?%}.date-time-container .calendar-section .calendar-grid .calendar-day.in-range .day-content[data-v-8d703c7c]{background-color:rgba(139,195,74,.1);color:#8bc34a}.date-time-container .calendar-section .calendar-grid .calendar-day .day-content[data-v-8d703c7c]{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;justify-content:center;align-items:center;transition:all .3s ease}.date-time-container .calendar-section .calendar-grid .calendar-day .date-content[data-v-8d703c7c]{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}.date-time-container .calendar-section .calendar-grid .calendar-day .date-content uni-text[data-v-8d703c7c]{line-height:1.2}.date-time-container .calendar-section .calendar-grid .calendar-day .date-content uni-text[data-v-8d703c7c]:first-child{margin-bottom:%?4?%}.date-time-container .calendar-section .calendar-grid .calendar-day .date-content uni-text.date-tag[data-v-8d703c7c]{font-size:%?20?%;color:inherit;white-space:nowrap}.date-time-container .time-picker-section[data-v-8d703c7c]{padding:%?20?% %?30?%}.date-time-container .time-picker-section .time-columns[data-v-8d703c7c]{display:flex;justify-content:space-between}.date-time-container .time-picker-section .time-columns .time-column[data-v-8d703c7c]{flex:1}.date-time-container .time-picker-section .time-columns .time-column .time-title[data-v-8d703c7c]{font-size:%?28?%;color:#333;margin-bottom:%?20?%;display:block;text-align:center}.date-time-container .time-picker-section .time-columns .time-column .time-picker[data-v-8d703c7c]{height:%?200?%}.date-time-container .time-picker-section .time-columns .time-column .time-picker .time-item[data-v-8d703c7c]{height:%?80?%;line-height:%?80?%;font-size:%?28?%;display:flex;align-items:center;justify-content:center}.date-time-container .bottom-buttons[data-v-8d703c7c]{position:fixed;bottom:0;left:0;right:0;z-index:100;display:flex;padding:%?20?% %?30?%;background-color:#fff;box-shadow:0 %?-2?% %?10?% rgba(0,0,0,.05);width:100%;box-sizing:border-box;\n /* 统一处理安全区域 */padding-bottom:calc(%?20?% + constant(safe-area-inset-bottom));padding-bottom:calc(%?20?% + env(safe-area-inset-bottom))}.date-time-container .bottom-buttons uni-button[data-v-8d703c7c]{flex:1;margin:0 %?10?%;height:%?80?%;line-height:%?80?%;font-size:%?28?%;border-radius:%?8?%;transition:opacity .2s ease}.date-time-container .bottom-buttons uni-button[data-v-8d703c7c]:active{opacity:.8}@media screen and (max-height:667px){.date-time-container .bottom-buttons uni-button[data-v-8d703c7c]{height:%?70?%;line-height:%?70?%;font-size:%?26?%}}.date-time-container .bottom-buttons .reset-btn[data-v-8d703c7c]{background-color:#fff;border:%?2?% solid #ddd;color:#333}.date-time-container .bottom-buttons .confirm-btn[data-v-8d703c7c]{background-color:#8bc34a;color:#fff}@media screen and (max-width:375px){.date-time-container .pickup-return-info[data-v-8d703c7c]{padding:%?20?%;padding-top:calc(%?20?% + constant(safe-area-inset-top));padding-top:calc(%?20?% + env(safe-area-inset-top))}.date-time-container .pickup-return-info .pickup-info .title[data-v-8d703c7c],\n .date-time-container .pickup-return-info .return-info .title[data-v-8d703c7c]{font-size:%?24?%}.date-time-container .pickup-return-info .pickup-info .date[data-v-8d703c7c],\n .date-time-container .pickup-return-info .return-info .date[data-v-8d703c7c]{font-size:%?30?%}.date-time-container .pickup-return-info .pickup-info .week-time[data-v-8d703c7c],\n .date-time-container .pickup-return-info .return-info .week-time[data-v-8d703c7c]{font-size:%?22?%}.date-time-container .pickup-return-info .duration[data-v-8d703c7c]{font-size:%?22?%;min-width:%?100?%;padding:%?8?% %?16?%}.date-time-container .calendar-section .calendar-day[data-v-8d703c7c]{font-size:%?26?%}}\n/* H5端特殊样式 */.h5-container .time-picker-section .time-picker[data-v-8d703c7c]{\n /* H5特有的样式 */}\n/* 小程序端特殊样式 */\n/* App端特殊样式 */',""]),t.exports=e},f1a9:function(t,e,a){"use strict";var i=a("c1d8"),n=a.n(i);n.a},f298:function(t,e,a){"use strict";var i=a("497b"),n=a("9e70"),r=a("862c"),c=RangeError;t.exports=function(t){var e=n(r(this)),a="",s=i(t);if(s<0||s===1/0)throw new c("Wrong number of repetitions");for(;s>0;(s>>>=1)&&(e+=e))1&s&&(a+=e);return a}}}]);