diff --git a/src/components/Calender/example.vue b/src/components/Calender/example.vue
index d120867..55eeb9d 100644
--- a/src/components/Calender/example.vue
+++ b/src/components/Calender/example.vue
@@ -27,6 +27,18 @@
+
+
+
+
+ 选择有价格的日期范围
+
+ {{ selectedRange.start }} 至 {{ selectedRange.end }}
+
+ 请选择价格区间(仅含有价夜晚)
+
+
+
@@ -35,11 +47,13 @@
单选日期:
{{ selectedDate }}
+ ¥{{ selectedDatePrice }}
日期范围:
{{ selectedRange.start }} 至 {{ selectedRange.end }}
(共{{ rangeDays }}天)
+ 总价:¥{{ selectedRangeTotal }}
@@ -62,6 +76,17 @@
@close="handleRangeCalendarClose"
@range-select="handleRangeSelect"
/>
+
+
+
@@ -72,11 +97,14 @@ import Calendar from './index.vue'
// 响应式数据
const calendarVisible = ref(false)
const rangeCalendarVisible = ref(false)
+const priceRangeCalendarVisible = ref(false)
const selectedDate = ref('')
+const selectedDatePrice = ref(null)
const selectedRange = ref({
start: '',
end: ''
})
+const selectedRangeTotal = ref(null)
// 模拟价格数据
const priceData = ref({
@@ -116,6 +144,11 @@ const openRangeCalendar = () => {
rangeCalendarVisible.value = true
}
+// 打开价格区间选择器(必须以价格为准)
+const openPriceRangeCalendar = () => {
+ priceRangeCalendarVisible.value = true
+}
+
// 处理单选日历关闭
const handleCalendarClose = () => {
calendarVisible.value = false
@@ -129,6 +162,7 @@ const handleRangeCalendarClose = () => {
// 处理日期选择
const handleDateSelect = (data) => {
selectedDate.value = data.date
+ selectedDatePrice.value = (data.price !== undefined && data.price !== null && data.price !== '-') ? data.price : null
calendarVisible.value = false
console.log('选择的日期:', data)
}
@@ -139,9 +173,37 @@ const handleRangeSelect = (data) => {
start: data.startDate,
end: data.endDate
}
+ if (data.dateRange && Array.isArray(data.dateRange)) {
+ const total = data.dateRange.reduce((sum, d) => {
+ const p = d.price
+ return sum + (typeof p === 'number' ? p : 0)
+ }, 0)
+ selectedRangeTotal.value = total || null
+ } else {
+ selectedRangeTotal.value = null
+ }
rangeCalendarVisible.value = false
console.log('选择的日期范围:', data)
}
+
+// 处理价格区间选择
+const handlePriceRangeSelect = (data) => {
+ selectedRange.value = {
+ start: data.startDate,
+ end: data.endDate
+ }
+ if (data.dateRange && Array.isArray(data.dateRange)) {
+ const total = data.dateRange.reduce((sum, d) => {
+ const p = d.price
+ return sum + (typeof p === 'number' ? p : 0)
+ }, 0)
+ selectedRangeTotal.value = total || null
+ } else {
+ selectedRangeTotal.value = null
+ }
+ priceRangeCalendarVisible.value = false
+ console.log('价格区间选择:', data)
+}