尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

vant移动端年月日区间选择弹窗

vant移动端年月日区间选择弹窗
📅 发布时间:2026/6/26 6:29:18

这是一个基于Vant组件库实现的日期范围选择器组件。

<template> <div @click="onCancel" class="range-date"> <van-popup v-model="showPopupvalue" @click.stop round position="bottom" :style="{ height: '60%' }"> <header class="header"> <div class="h-left" @click="onCancel">取消</div> <div class="h-center">{{ title }}</div> <div class="h-right" @click="onConfirm">确认</div> </header> <van-datetime-picker title="开始日期" v-model="startDate" :type="type" :min-date="minDate" :formatter="formatter" visible-item-count="4" @change="startChange" /> <van-datetime-picker title="结束日期" v-model="endDate" :type="type" :min-date="endMinDate" :formatter="formatter" visible-item-count="4" /> </van-popup> </div> </template> <script> import { fixTime } from '@/common/utils'; export default { name: 'Datetime', components: {}, props: { showPopup: { type: Boolean, default: false, }, title: { type: String, default: '', }, type: { type: String, default: 'date', }, }, data() { return { showPopupvalue: this.showPopup, minDate: new Date(2019, 0, 1), // maxDate: new Date(2021, 10, 1), // endMinDate: new Date(2019, 0, 1), endMinDate: new Date(), startDate: new Date(), endDate: new Date(), // endDate: new Date(new Date().getTime() + 24*60*60*1000), } }, watch: { showPopup(val) { this.showPopupvalue = val }, }, methods: { // 弹框处理函数 onConfirm() { this.showPopupvalue = false let value = [ fixTime(this.startDate, 'YYYY-MM-DD'), fixTime(this.endDate, 'YYYY-MM-DD'), ].join(' 至 ') this.$emit('onConfirm', { value: value, falg: false }) }, onCancel() { this.showPopupvalue = false this.$emit('onCancel', false) }, startChange() { let tmpDate = new Date(this.endDate) this.endMinDate = new Date(this.startDate) setTimeout(() => { if (new Date(tmpDate).getTime() > new Date(this.endMinDate).getTime()) { this.endDate = tmpDate } else { this.endDate = this.endMinDate } }, 0) }, // 时间日期 formatter(type, val) { if (type === 'year') { return `${val}年` } else if (type === 'month') { return `${val}月` } else if (type === 'day') { return `${val}日` } return val }, }, } </script> <style lang="less"> .range-date { .van-checkbox-group { display: flex; flex-direction: column; padding-top: 1rem; justify-content: center; min-height: 5rem; .van-checkbox { height: 0.88rem; justify-content: center; font-size: 0.3rem; } } .van-datetime-picker { margin-top: 1.3rem; &+.van-datetime-picker { margin-top: 0.68rem; } .van-picker__toolbar { height: 0.66rem; color: #36395c; font-size: 0.3rem; background-color: #f5f6fb; margin: 0 0.3rem; justify-content: center; button { display: none; } } } } </style> <style lang="less" scoped> .header { position: fixed; background-color: #fff; z-index: 99; left: 0; right: 0; margin: 0 auto; height: 0.88rem; padding: 0 0.3rem; border-radius: 0.24rem 0.24rem 0 0; display: flex; justify-content: space-between; align-items: center; .h-left, .h-right { font-size: 0.28rem; } .h-left { display: block; text-align: left; font-size: 32px; color: rgba(0, 0, 0, 0.9); } .h-right { display: block; text-align: right; font-size: 32px; color: rgb(43, 77, 255); } .h-center { font-size: 34px; font-weight: 600; } } </style>

相关新闻

  • 艺术涂料和普通涂料的区别?这篇说透了
  • DVWA命令注入漏洞实战:跨平台Payload构造与防御解析
  • 【计算机毕业设计】在线投票系统的设计与实现

最新新闻

  • 如何彻底告别网盘限速:9大平台直链下载加速终极指南
  • 每日热门skill:别手动做PPT了!这个OpenClaw Skill让我每天省出3小时,数据分析+PPT一键搞定
  • Gamdl:用命令行下载 Apple Music 的全部内容
  • 3大秘诀掌握DLSS版本管理:开源工具智能切换游戏超采样技术
  • 抖音评论数据自动化采集:如何用开源工具3分钟获取完整用户反馈
  • Blender 3MF插件终极指南:如何在Blender中轻松处理3D打印文件

日新闻

  • Qwen2.5-Turbo百万上下文实战指南:百炼平台长文本处理全解析
  • 怎么监控对标账号更新,2026年作者监控工作流,5款深度对比
  • EdgeRemover:专业级Windows Edge浏览器管理工具,彻底解决顽固软件卸载难题

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号