uni-app 入住酒店带价格的日历插件

发布于 1周前 作者 htzhanglong 来自 Uni-App

uni-app 入住酒店带价格的日历插件

日历中可以选择入住时间及离开时间,并且时间下边还有价格的日历插件

1 回复

针对您提到的在uni-app中实现一个带有价格的酒店入住日历插件,以下是一个简化的代码案例,演示了如何使用uni-app的组件和API来实现这一功能。这个示例假定您已经有一个后端API可以提供特定日期的酒店价格数据。

首先,您需要创建一个自定义组件HotelCalendar.vue,该组件将显示日历并显示每个日期的价格。

<template>
  <view class="calendar-container">
    <view class="calendar-header">
      <!-- 日历头部,可能包含月份和年份选择 -->
    </view>
    <view class="calendar-body">
      <view v-for="(day, index) in days" :key="index" class="calendar-day">
        <view class="day-name">{{ day.name }}</view>
        <view class="day-price" v-if="day.price !== null">{{ day.price }} 元</view>
      </view>
    </view>
  </view>
</template>

<script>
export default {
  data() {
    return {
      currentMonth: new Date().getMonth(), // 当前月份
      currentYear: new Date().getFullYear(), // 当前年份
      days: [] // 当月的每一天,包括价格信息
    };
  },
  methods: {
    fetchPrices() {
      // 假设您有一个API可以返回特定日期的价格
      uni.request({
        url: 'https://your-api-endpoint.com/getHotelPrices',
        method: 'POST',
        data: {
          month: this.currentMonth,
          year: this.currentYear
        },
        success: (res) => {
          this.days = res.data.map(priceData => ({
            name: priceData.date,
            price: priceData.price
          }));
        }
      });
    },
    initCalendar() {
      // 初始化日历,生成当月的每一天(这里省略了具体实现,需要您自行完成)
      // ...
      this.fetchPrices();
    }
  },
  mounted() {
    this.initCalendar();
  }
};
</script>

<style scoped>
.calendar-container {
  /* 样式定义 */
}
.calendar-header {
  /* 头部样式 */
}
.calendar-body {
  display: flex;
  flex-wrap: wrap;
}
.calendar-day {
  width: 14.28%; /* 假设一周7天,所以每个格子占1/7宽度,这里为了演示用了近似值 */
  text-align: center;
}
.day-name, .day-price {
  /* 样式定义 */
}
</style>

请注意,上述代码是一个简化的示例,省略了日历生成的具体逻辑(如生成当月每一天的日期,处理跨月情况等)。您需要根据实际需求完善这部分逻辑。同时,fetchPrices方法中的API调用也需要根据您的后端API进行调整。这个组件可以在您的uni-app项目中作为页面的一部分来使用,展示带有价格的酒店入住日历。

回到顶部