1 |
- (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["carRental-chooseDate"],{"087e":function(t,e,a){var i=a("a0c0");i.__esModule&&(i=i.default),"string"===typeof i&&(i=[[t.i,i,""]]),i.locals&&(t.exports=i.locals);var n=a("967d").default;n("2a0300a4",i,!0,{sourceMap:!1,shadowMode:!1})},"158f":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=[]},2507:function(t,e,a){"use strict";a.r(e);var i=a("9060"),n=a("a0ff");for(var r in n)["default"].indexOf(r)<0&&function(t){a.d(e,t,(function(){return n[t]}))}(r);var o=a("828b"),s=Object(o["a"])(n["default"],i["b"],i["c"],!1,null,null,null,!1,i["a"],void 0);e["default"]=s.exports},"4b24":function(t,e,a){"use strict";var i=a("087e"),n=a.n(i);n.a},"6b88":function(t,e,a){"use strict";a.r(e);var i=a("158f"),n=a("e1d3");for(var r in n)["default"].indexOf(r)<0&&function(t){a.d(e,t,(function(){return n[t]}))}(r);a("4b24");var o=a("828b"),s=Object(o["a"])(n["default"],i["b"],i["c"],!1,null,"eae78106",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)}})},9060: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",[a("start-end-date-time",{attrs:{defaultStartDate:t.defaultStartDate,defaultStartTime:t.defaultStartTime,defaultEndDate:t.defaultEndDate,defaultEndTime:t.defaultEndTime,minDate:t.minDate,maxDate:t.maxDate,timeStep:60},on:{confirm:function(e){arguments[0]=e=t.$handleEvent(e),t.handleDateTimeConfirm.apply(void 0,arguments)}}})],1)},n=[]},a0c0: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-eae78106]{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-eae78106]{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-eae78106],\n.date-time-container .pickup-return-info .return-info[data-v-eae78106]{display:flex;flex-direction:column;flex:1;max-width:40%}.date-time-container .pickup-return-info .pickup-info .title[data-v-eae78106],\n.date-time-container .pickup-return-info .return-info .title[data-v-eae78106]{font-size:%?26?%;color:#666;margin-bottom:%?12?%}.date-time-container .pickup-return-info .pickup-info .date[data-v-eae78106],\n.date-time-container .pickup-return-info .pickup-info .week-time[data-v-eae78106],\n.date-time-container .pickup-return-info .return-info .date[data-v-eae78106],\n.date-time-container .pickup-return-info .return-info .week-time[data-v-eae78106]{min-height:1em}.date-time-container .pickup-return-info .pickup-info[data-v-eae78106]{text-align:left}.date-time-container .pickup-return-info .pickup-info .date[data-v-eae78106],\n.date-time-container .pickup-return-info .pickup-info .week-time[data-v-eae78106]{text-align:left}.date-time-container .pickup-return-info .return-info[data-v-eae78106]{text-align:right}.date-time-container .pickup-return-info .return-info .date[data-v-eae78106],\n.date-time-container .pickup-return-info .return-info .week-time[data-v-eae78106]{text-align:right}.date-time-container .pickup-return-info .duration[data-v-eae78106]{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-eae78106]{padding:%?20?%;background-color:#f8f8f8;width:100%;box-sizing:border-box}.date-time-container .calendar-section .calendar-header[data-v-eae78106]{display:flex;justify-content:center;align-items:center;margin-bottom:%?20?%}.date-time-container .calendar-section .calendar-header .month-switcher[data-v-eae78106]{padding:0 %?20?%;color:#666;cursor:pointer}.date-time-container .calendar-section .calendar-header .month-switcher[data-v-eae78106]:active{opacity:.7}.date-time-container .calendar-section .calendar-header .current-month[data-v-eae78106]{font-size:%?32?%;font-weight:700;padding:0 %?40?%}.date-time-container .calendar-section .weekday-header[data-v-eae78106]{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-eae78106]{text-align:center;font-size:%?28?%;color:#666}.date-time-container .calendar-section .calendar-grid[data-v-eae78106]{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-eae78106]{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-eae78106]{background:none}.date-time-container .calendar-section .calendar-grid .calendar-day.disabled[data-v-eae78106]{color:#ccc}.date-time-container .calendar-section .calendar-grid .calendar-day.today .day-content[data-v-eae78106]{color:#8bc34a;font-weight:700}.date-time-container .calendar-section .calendar-grid .calendar-day.start-date .day-content[data-v-eae78106]{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-eae78106]{border-radius:%?8?%}.date-time-container .calendar-section .calendar-grid .calendar-day.end-date .day-content[data-v-eae78106]{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-eae78106]{margin:0;border-radius:%?8?%}.date-time-container .calendar-section .calendar-grid .calendar-day.in-range .day-content[data-v-eae78106]{background-color:rgba(139,195,74,.1);color:#8bc34a}.date-time-container .calendar-section .calendar-grid .calendar-day .day-content[data-v-eae78106]{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-eae78106]{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-eae78106]{line-height:1.2}.date-time-container .calendar-section .calendar-grid .calendar-day .date-content uni-text[data-v-eae78106]:first-child{margin-bottom:%?4?%}.date-time-container .calendar-section .calendar-grid .calendar-day .date-content uni-text.date-tag[data-v-eae78106]{font-size:%?20?%;color:inherit;white-space:nowrap}.date-time-container .time-picker-section[data-v-eae78106]{padding:%?20?% %?30?%}.date-time-container .time-picker-section .time-columns[data-v-eae78106]{display:flex;justify-content:space-between}.date-time-container .time-picker-section .time-columns .time-column[data-v-eae78106]{flex:1}.date-time-container .time-picker-section .time-columns .time-column .time-title[data-v-eae78106]{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-eae78106]{height:%?200?%}.date-time-container .time-picker-section .time-columns .time-column .time-picker .time-item[data-v-eae78106]{height:%?80?%;line-height:%?80?%;font-size:%?28?%;display:flex;align-items:center;justify-content:center}.date-time-container .bottom-buttons[data-v-eae78106]{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-eae78106]{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-eae78106]:active{opacity:.8}@media screen and (max-height:667px){.date-time-container .bottom-buttons uni-button[data-v-eae78106]{height:%?70?%;line-height:%?70?%;font-size:%?26?%}}.date-time-container .bottom-buttons .reset-btn[data-v-eae78106]{background-color:#fff;border:%?2?% solid #ddd;color:#333}.date-time-container .bottom-buttons .confirm-btn[data-v-eae78106]{background-color:#8bc34a;color:#fff}@media screen and (max-width:375px){.date-time-container .pickup-return-info[data-v-eae78106]{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-eae78106],\n .date-time-container .pickup-return-info .return-info .title[data-v-eae78106]{font-size:%?24?%}.date-time-container .pickup-return-info .pickup-info .date[data-v-eae78106],\n .date-time-container .pickup-return-info .return-info .date[data-v-eae78106]{font-size:%?30?%}.date-time-container .pickup-return-info .pickup-info .week-time[data-v-eae78106],\n .date-time-container .pickup-return-info .return-info .week-time[data-v-eae78106]{font-size:%?22?%}.date-time-container .pickup-return-info .duration[data-v-eae78106]{font-size:%?22?%;min-width:%?100?%;padding:%?8?% %?16?%}.date-time-container .calendar-section .calendar-day[data-v-eae78106]{font-size:%?26?%}}\n/* H5端特殊样式 */.h5-container .time-picker-section .time-picker[data-v-eae78106]{\n /* H5特有的样式 */}\n/* 小程序端特殊样式 */\n/* App端特殊样式 */',""]),t.exports=e},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},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:""}},onLoad:function(t){var e,a;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:"";var i=uni.getStorageSync("selectedDateTime");if(i)this.defaultStartDate=i.start.date,this.defaultStartTime=i.start.time,this.defaultEndDate=i.end.date,this.defaultEndTime=i.end.time;else{var n="",r="";this.minDate?(n=new Date(this.minDate),r=new Date(this.minDate)):(n=new Date,r=new Date),n.setDate(n.getDate()+1),r.setDate(r.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(n),this.defaultStartTime="09:00",this.defaultEndDate=o(r),this.defaultEndTime="09: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("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 r={MAX_RENTAL_DAYS:30,MIN_RENTAL_HOURS:1,DEFAULT_PICKUP_TIME:"09:00",DEFAULT_RETURN_TIME:"09:00",TIME_STEP:30},o={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"))}},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,minTime:"00:00",maxTime:"23:59",timeListCache:null,calendarDaysCache:{}}},created:function(){var t=this;this.platform="h5",this.debouncedChangeMonth=this.debounce((function(e){var a=t.currentMonth.split("-").map(Number),i=(0,n.default)(a,2),r=i[0],o=i[1],s=new Date(r,o-1+e,1),c=s.getFullYear(),d=s.getMonth()+1;t.currentMonth="".concat(c,"-").concat(String(d).padStart(2,"0")),t.generateCalendarDays()})),this.initializeComponent(),this.$nextTick((function(){t.updateCalendarDays()})),console.log("Theme color in created:",this.themeColor)},mounted:function(){console.log("Theme color in mounted:",this.themeColor),this.initializeComponent()},computed:{formatYearMonth:function(){var t=this.currentMonth.split("-"),e=(0,n.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),r=(0,n.default)(e,2),o=r[0],s=r[1];return!(o<a)&&!(o===a&&s<=i+30)}))}return this.timeList},availableReturnTimes:function(){var t,e,a,i=this;if(!this.startDate)return this.timeList;var r=new Date,o=new Date(r.getFullYear(),r.getMonth(),r.getDate());if((null===(t=this.endDate)||void 0===t?void 0:t.toDateString())===o.toDateString()){var s=r.getHours(),c=r.getMinutes(),d=this.pickupTime.split(":").map(Number),u=(0,n.default)(d,2),l=u[0],h=u[1];return this.timeList.filter((function(t){var e=t.split(":").map(Number),a=(0,n.default)(e,2),r=a[0],d=a[1];return!(r<s)&&(!(r===s&&d<=c+30)&&(i.startDate.toDateString()!==o.toDateString()||!(r<l||r===l&&d<=h)))}))}if((null===(e=this.startDate)||void 0===e?void 0:e.toDateString())===(null===(a=this.endDate)||void 0===a?void 0:a.toDateString())){var m=this.pickupTime.split(":").map(Number),f=(0,n.default)(m,2),p=f[0],v=f[1];return this.timeList.filter((function(t){var e=t.split(":").map(Number),a=(0,n.default)(e,2),i=a[0],r=a[1],o=60*i+r-(60*p+v);return o>=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,n.default)(a,2),r=i[0],o=i[1],s=this.returnTime.split(":").map(Number),c=(0,n.default)(s,2),d=c[0],u=c[1];t.setHours(r,o,0,0),e.setHours(d,u,0,0);var l=e.getTime()-t.getTime(),h=Math.ceil(l/36e5),m=Math.floor(h/24),f=h%24;return 0===m?"".concat(h,"小时"):0===f?"".concat(m,"天"):"".concat(m,"天").concat(f,"小时")}catch(p){return console.error("计算时长出错:",p),"-小时"}},timeListMemo:function(){if(this.timeListCache)return this.timeListCache;for(var t=[],e=0;e<24;e++)for(var a=0;a<60;a+=this.timeStep)t.push("".concat(e.toString().padStart(2,"0"),":").concat(a.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),o=0;o<n;o++)r[o]=arguments[o];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,n.default)(t,2),a=e[0],i=e[1],r=new Date(a,i-1,1),o=new Date(a,i,0),s=new Date;s.setHours(0,0,0,0);var c=this.parseDate(this.maxDate),d=this.parseDate(this.minDate);if(!c||!d)throw new Error("Invalid date range");for(var u=[],l=r.getDay(),h=o.getDate(),m=0;m<l;m++)u.push({date:"",disabled:!0});for(var f=1;f<=h;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>c,selected:v||D,isToday:this.isSameDay(p,s),isStartDate:v,isEndDate:D,inRange:g})}for(var T=l+h,b=7*Math.ceil(T/7)-T,k=0;k<b;k++)u.push({date:"",disabled:!0});return u}catch(y){return console.error("Calendar generation error:",y),[]}},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 r=this.availablePickupTimes[this.pickupTimeIndex[0]];r&&(this.pickupTime=r)}}else{var o=this.getDateFromDay(t),s=new Date,c=new Date(s.getFullYear(),s.getMonth(),s.getDate());if(o<this.startDate)if(this.startDate=o,this.endDate=null,o.toDateString()===c.toDateString())this.updateAvailableTimes();else{var d=this.availablePickupTimes[this.pickupTimeIndex[0]];d&&(this.pickupTime=d)}else if(this.endDate=o,this.endDate.toDateString()===this.startDate.toDateString()){var u=this.pickupTime.split(":").map(Number),l=(0,n.default)(u,2),h=l[0],m=l[1],f=this.timeList.filter((function(t){var e=t.split(":").map(Number),a=(0,n.default)(e,2),i=a[0],r=a[1],o=60*i+r-(60*h+m);return o>=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,n.default)(e,2),i=a[0],r=a[1];return new Date(i,r-1,t.date)},updateCalendarDays:function(){this.generateCalendarDays()},changeMonth:function(t){var e,a,i=this,r=this.currentMonth.split("-").map(Number),o=(0,n.default)(r,2),s=o[0],c=o[1],d=new Date(s,c-1+t,1),u=d.getFullYear(),l=d.getMonth()+1;this.currentMonth="".concat(u,"-").concat(String(l).padStart(2,"0"));var h="".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[h],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()],o=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:o,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 this.isIOS?"".concat(a,"/").concat(i,"/").concat(n," ").concat(e,":00"):"".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),o=Math.floor(n%864e5/36e5);return{days:r,hours:o,totalHours:24*r+o}},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<r.MIN_RENTAL_HOURS)||(this.showToast("租车时长不能少于".concat(r.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,n.default)(e,2),i=a[0],r=a[1];return isNaN(i)||isNaN(r)||i<0||i>23||r<0||r>59?null:"".concat(i.toString().padStart(2,"0"),":").concat(r.toString().padStart(2,"0"))},validateReturnTime:function(){if(this.pickupTime&&this.returnTime){var t=this.pickupTime.split(":").map(Number),e=(0,n.default)(t,2),a=e[0],i=e[1],r=this.returnTime.split(":").map(Number),o=(0,n.default)(r,2),s=o[0],c=o[1],d=60*a+i,u=60*s+c;if(u<=d+60){var l=d+60,h=Math.floor(l/60),m=l%60;this.returnTime="".concat(h.toString().padStart(2,"0"),":").concat(m.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=o},db04:function(t,e,a){"use strict";var i=a("bb80"),n=a("c435"),r=a("9e70"),o=a("f298"),s=a("862c"),c=i(o),d=i("".slice),u=Math.ceil,l=function(t){return function(e,a,i){var o,l,h=r(s(e)),m=n(a),f=h.length,p=void 0===i?" ":r(i);return m<=f||""===p?h:(o=m-f,l=c(p,u(o/p.length)),l.length>o&&(l=d(l,0,o)),t?h+l:l+h)}};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},f298:function(t,e,a){"use strict";var i=a("497b"),n=a("9e70"),r=a("862c"),o=RangeError;t.exports=function(t){var e=n(r(this)),a="",s=i(t);if(s<0||s===1/0)throw new o("Wrong number of repetitions");for(;s>0;(s>>>=1)&&(e+=e))1&s&&(a+=e);return a}}}]);
|