uni-app 有没有类似于滴滴打车的时间预约组件

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

uni-app 有没有类似于滴滴打车的时间预约组件

1 回复

在uni-app中,虽然没有直接内置类似于滴滴打车那种复杂的时间预约组件,但你可以通过自定义组件的方式来实现类似的功能。以下是一个简单的示例代码,展示了如何实现一个基本的日期和时间选择组件,你可以基于此进行扩展以满足更复杂的需求。

首先,你可以使用<picker>组件来选择日期和时间。以下是一个基本的示例:

<template>
  <view class="container">
    <view class="picker-box">
      <picker mode="datetime" :value="dateValue" @change="bindDateChange">
        <view class="picker">{{dateValue}}</view>
      </picker>
    </view>
  </view>
</template>

<script>
export default {
  data() {
    return {
      dateValue: '' // 默认值为空字符串,你可以设置为默认的时间,例如 '2023-10-01 12:00'
    };
  },
  methods: {
    bindDateChange(e) {
      this.dateValue = e.detail.value;
      console.log('选中的时间:', this.dateValue);
      // 在这里你可以处理选中的时间,比如发送到服务器
    }
  },
  onLoad() {
    // 设置默认时间,如果需要的话
    const now = new Date();
    const year = now.getFullYear();
    const month = (now.getMonth() + 1).toString().padStart(2, '0');
    const day = now.getDate().toString().padStart(2, '0');
    const hours = now.getHours().toString().padStart(2, '0');
    const minutes = now.getMinutes().toString().padStart(2, '0');
    this.dateValue = `${year}-${month}-${day} ${hours}:${minutes}`;
  }
};
</script>

<style>
.container {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
}
.picker-box {
  width: 80%;
  margin: 0 auto;
}
.picker {
  padding: 20px;
  text-align: center;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 5px;
}
</style>

这个示例展示了如何使用<picker>组件来选择日期和时间,并在选择后更新数据。你可以进一步美化这个组件,或者添加更多的功能,比如设置时间范围、选择特定的时间间隔等。

为了实现更复杂的时间预约功能,你可能需要结合其他组件或库,比如使用<swiper>组件来实现时间段的滑动选择,或者使用第三方的时间选择器库。同时,你可能还需要在后端实现相应的逻辑来处理预约请求。

回到顶部