当前位置: 首页 > news >正文

uniapp+vue3预约时间和日期

picker组件

预约时间和日期,不能选择过去的日期时间

<view class="whiteBox paddingBottom"><view class="title">预约上门时间</view><picker mode="date" :value="nowDate" @change="bindDateChange" fields="day"style="border-bottom: 1rpx solid #E7E7E7;" :start="minDate"><view class="row"><view class="label">日期选择</view><view class="value">{{nowDate ? nowDate : '请选择'}}</view></view></picker><picker mode="time" :value="nowTime" @change="onTime" :start="minTime"><view class="row"><view class="label">时间选择</view><view class="value">{{nowTime ? nowTime : '请选择'}}</view></view></picker>
</view>
<script setup>import {ref,reactive,shallowRef} from 'vue'import {onLoad,onShow,onReachBottom} from '@dcloudio/uni-app'import i from '@/libs/common/index.js'import api from '@/request/api.js'import throttle from '@/libs/function/throttle.js'import config from '@/libs/config/index.js'import {userStore} from '@/store/userStore.js'import {commonStore} from '@/store/commonStore.js'const user = userStore()const common = commonStore()const nowDate = ref(getDate({format: true})); // 当前日期const nowTime = ref(getTime({format: true})); // 当前时间const minDate = ref(getDate({format: true})); // 最小可选日期const minTime = ref(getTime({format: true})); // 最小可选时间function getTime({format} = {format: false}) {const date = new Date();let hours = date.getHours().toString().padStart(2, '0');let minutes = date.getMinutes().toString().padStart(2, '0');return format ? `${hours}:${minutes}` : date;}function getDate({format} = {format: false}) {const d = new Date();const year = d.getFullYear();const month = String(d.getMonth() + 1).padStart(2, '0');const day = String(d.getDate()).padStart(2, '0');return format ? `${year}-${month}-${day}` : d;}function bindDateChange(e) {const selectedDate = new Date(e.detail.value);selectedDate.setHours(0, 0, 0, 0); // 将选择的日期设置为当天的开始时间const today = new Date();today.setHours(0, 0, 0, 0);if (selectedDate.getTime() === today.getTime()) {// 选择的是今天,设置时间选择器的起始时间为当前时间,并重置当前时间为当前时间const currentTime = getTime({format: true});minTime.value = currentTime;nowTime.value = currentTime;} else {// 选择的是未来日期,时间选择器不限制,设置为00:00,并重置当前时间为00:00minTime.value = '00:00';nowTime.value = '00:00';}nowDate.value = e.detail.value;}function onTime(e) {const selectedTime = e.detail.value;nowTime.value = selectedTime;}</script>
.whiteBox {background: #FFFFFF;box-shadow: 0rpx 5rpx 15rpx 10rpx rgba(80, 80, 80, 0.0322);border-radius: 16rpx;margin: 0 30rpx 30rpx;padding-bottom: 40rpx;.title {padding-top: 30rpx;padding-left: 30rpx;font-weight: bold;font-size: 30rpx;color: #3D3D3D;}.row {display: flex;justify-content: space-between;align-items: center;border-bottom: 1rpx solid #E4E4E4;margin: 0 30rpx;padding: 30rpx 0;.label {font-size: 28rpx;color: #606266;}.value {font-size: 28rpx;color: #3D3D3D;}}.row:last-child {border: none;}
}.paddingBottom {padding-bottom: 0;
}
http://www.dtcms.com/a/290899.html

相关文章:

  • registry-ui docker搭建私有仓库的一些问题笔记
  • 在React中做过哪些性能优化?
  • java每日精进 7.21【Uel表达式和流程设计】
  • 【Elasticsearch】IndexModule
  • 【沧海拾昧】微分先行PID与中间微分反馈控制
  • 工业网关的应用场景
  • 【正常配置了beast扩展,phpinfo信息也显示了,但是就是不运行】
  • 前端-DOM
  • pandas 的series和dataframe的用法,六个题目
  • 141、环形链表
  • 前后端分离项目进阶1---后端
  • 果园里的温柔之手:Deepoc具身智能如何重塑采摘机器人的“生命感知”
  • Python day20 - 特征降维之奇异值分解
  • 【设计模式C#】工厂方法模式(相比简单工厂模式更加具有灵活性和扩展性的工厂模式)
  • git_guide
  • prometheus主动服务发现机制
  • 在 React 中实现全局防复制hooks
  • Java 解析前端上传 ZIP 压缩包内 Excel 文件的完整实现方案
  • Neo4j 5.x版本的导出与导入数据库
  • 易语言+懒人精灵/按键中控群控教程(手机、主板机、模拟器通用)
  • CFD总压边界条件的理解与开发处理
  • DM8数据库Docker镜像部署最佳实践
  • 自学鸿蒙测试day01-插件安装推荐
  • Vue 3 响应式原理详细解读【一】—— Proxy 如何突破 defineProperty 的局限
  • 计算机发展史:晶体管时代的技术飞跃
  • Boost库智能指针boost::shared_ptr详解和常用场景使用错误示例以及解决方法
  • 软件测试 —— A / 入门
  • 数据结构 之 【排序】(直接插入排序、希尔排序)
  • 基于 Nginx 搭建 OpenLab 多场景 Web 网站:从基础配置到 HTTPS 加密全流程
  • Nginx IP授权页面实现步骤