Feat::调整时间选择器

This commit is contained in:
linxi
2025-10-24 10:19:16 +08:00
parent d1bbea6e9b
commit f73d7587f7
2 changed files with 67 additions and 15 deletions
+47 -7
View File
@@ -112,6 +112,7 @@
</view>
<view
class="gift-wrap"
v-if="orderInfo.giftCardInfo > 0"
>
<view class="v12-justify-between v12-align-center">
<view class="v12-font-28 v12-font-bold v12-align-center">
@@ -140,28 +141,42 @@
<button class="btn v12-primary-border v12-primary-text modify-time" @click="modifyStayTime">修改入住时间</button>
<button class="btn v12-primary-border v12-primary-text refund" @click="applyRefund">申请退款</button>
</view>
<view class="v12-align-center" v-if="orderInfo._status && ['1','2'].includes(orderInfo._status._type)">
<view class="v12-align-center" v-if="!orderInfo._status && ['1','2'].includes(orderInfo._status._type)">
<button class="btn v12-dark-border v12-dark-text modify-time" @click="showPhoneDialog('phone')">联系商家</button>
</view>
</view>
<Calendar
<!-- <Calendar
ref="calendar"
:minDay="orderInfo.minBookingDays"
@dateSelected="handleDateSelected">
</Calendar>
</Calendar> -->
<DateRangePicker
ref="dateRangePicker"
v-model="dateRange"
:show="showDatePicker"
:minBookingDays="orderInfo.minBookingDays"
:travelGroupProductId="orderInfo.travelGroupOrderInfo.travelGroupProduct.id"
@update:show="showDatePicker = false"
@input="handleDateSelected"
>
</DateRangePicker>
</view>
</template>
<script>
import { fetchSojoumOrderDetail,sojoumOrderCheckInTime, sojoumOrderCalendar } from "@/api/sojoumOrder";
import Calendar from "../components/Calendar.vue";
import DateRangePicker from '@/components/DateRangePicker/DateRangePicker.vue'
export default {
components: {
Calendar
Calendar,
DateRangePicker
},
data() {
return {
webUrl: this.$VUE_APP_RESOURCES_URL,
dateRange: [null, null],
showDatePicker: false,
key: '',
popContent: '',
title: '',
@@ -180,6 +195,31 @@ export default {
this.getSojoumOrderDetail();
},
methods: {
handleDateRangeChange(dates) {
// if (dates && dates.length === 2) {
// [this.form.checkInDate, this.form.checkOutDate] = dates
// }
const params = {
orderId: this.key,
orderStartDate: dates[0],
orderEndDate: dates[1]
}
uni.showLoading({
title: '加载中...',
mask: true,
})
sojoumOrderCheckInTime(params).then(res => {
if (res.status === 200) {
uni.showToast({
title: '入住时间修改成功',
icon: 'success'
})
this.getSojoumOrderDetail();
}
}).finally(() => {
uni.hideLoading();
})
},
getDaysCount() {
// 根据开始日期和结束日期计算天数
const startDate = new Date(this.orderInfo.travelGroupOrderInfo.orderStartDate);
@@ -191,8 +231,8 @@ export default {
handleDateSelected(dateRange) {
const params = {
orderId: this.key,
orderStartDate: dateRange.startDate,
orderEndDate: dateRange.endDate
orderStartDate: dateRange[0],
orderEndDate: dateRange[1]
}
uni.showLoading({
title: '加载中...',
@@ -316,7 +356,7 @@ export default {
},
modifyStayTime() {
// 这里可以添加修改入住时间的逻辑,比如打开日期选择器
this.getMonthDay();
this.showDatePicker = true;
},
applyRefund() {
// 这里可以添加申请退款的逻辑,比如跳转到退款页面