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

基于uni-app的 年-月-日 时 时间日期范围控件

一个使用 uni-app 开发的日期时间选择器组件,它包含了一个遮罩层(pickerMask)和一个日期时间选择器弹窗(picker-box)。这个组件允许用户选择一个时间范围,包括年、月、日和小时。

以下是代码的主要功能和特点:

模板分析

  • 使用 <view> 标签构建组件的布局。
  • pickerMask 是一个遮罩层,用于在点击时关闭选择器。
  • picker-box 是包含实际选择功能的弹窗。
  • operate-box 包含选择器的操作按钮,如“开始时间”、“结束时间”和“确定”。
  • picker-view<picker-view> 组件,用于实现滚动选择功能。

脚本分析

Props
  • timeType: 控制选择器显示的时间类型(年、年月、年月日、年月日时)。
  • visable: 控制选择器的显示和隐藏。
  • defaultDate: 组件初始化时的默认日期。
  • minYear: 允许选择的最小年份。
  • timeLimit: 是否限制选择的时间不能超过当前时间。
  • deferYear: 如果 timeLimitfalse,则限制最大年份为当前年份加上这个值。
  • themeColor: 主题颜色,用于高亮显示。
  • startTextendText: 分别为“开始时间”和“结束时间”的文本。
数据
  • indicatorStyle: 选择器指示器的样式。
  • touchIndex: 用于标记当前触摸的是开始时间还是结束时间。
  • yearmonthdayhour: 分别代表当前的年、月、日、小时。
  • yearsmonthsdayshoursList: 分别存储年、月、日、小时的数组。
  • pickerValue: <picker-view> 的当前值。
  • resultDate: 存储用户选择的日期时间结果。
方法
  • returnHandle(): 阻止事件冒泡。
  • setDate(): 设置默认日期。
  • setPicker(date): 根据日期设置选择器的值。
  • touchSelect(val): 触摸选择开始时间或结束时间。
  • getDateTime(date): 获取并格式化日期时间。
  • pickerChange(e): <picker-view> 值变化时的处理函数。
  • maskClick(): 遮罩层点击事件,关闭选择器。
  • pickerConfirm(): 确定按钮点击事件,触发确认选择的日期时间。

样式分析

  • 使用 SCSS 编写的 scoped 样式,用于美化组件的外观。
  • pickerMask: 遮罩层的样式。
  • picker-box: 选择器弹窗的样式。
  • operate-box: 操作按钮区域的样式。
  • picker-view: <picker-view> 的样式。

使用方法

这个组件可以通过设置不同的 props 来定制不同的日期时间选择需求。例如,如果你想让用户选择一个日期范围,你可以设置 timeType2,并处理 confirm 事件来获取用户选择的日期。

注意事项

  • 组件的 defaultDate 属性用于双向绑定,即初始化组件时提供默认值,并在用户选择新的时间后更新。
  • timeLimit 属性可以用来限制用户选择的时间不能超过当前时间。
  • 组件提供了 confirm 事件,用于在用户点击确定后获取选择的日期时间。

这个组件提供了一个灵活的方式来选择日期和时间,适用于多种场景。你可以根据具体需求调整和扩展这个组件的功能。

代码如下

<template><view :class="{'pickerMask':visable}" @click="maskClick" @touchmove.stop.prevent="returnHandle"><vi

相关文章:

  • k8s牛客面经篇
  • 【Spring框架全系列】SpringBoot_3种配置文件_yml语法_多环境开发配置(详细)
  • Linux【工具 03】Telnet服务安装使用(安全性较差 非特殊情况尽量不要使用)
  • 24.面向对象六大原则
  • 【python深度学习】——tensor内部存储结构|内存优化与as_strided|内存紧凑化contiguous
  • 面试题:说说浏览器的缓存机制
  • WebSocket 断网重连、心跳检测功能封装
  • 极简网络用户手册(1)
  • 【代码随想录算法训练营第37期 第二十八天 | LeetCode93.复原IP地址、78.子集、90.子集II】
  • 算法简单笔记3
  • C语言:(动态内存管理)
  • 攻防世界maze做法(迷宫题)
  • appium元素定位工具_uiautomatorviewer.bat
  • WiFi模块ESP32手机远程控制方法
  • docker学习--最详细的docker run 各子命令解释与应用
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • 2018一半小结一波
  • codis proxy处理流程
  • Facebook AccountKit 接入的坑点
  • Fastjson的基本使用方法大全
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • oldjun 检测网站的经验
  • PV统计优化设计
  • Python学习之路16-使用API
  • WePY 在小程序性能调优上做出的探究
  • 给新手的新浪微博 SDK 集成教程【一】
  • 工作手记之html2canvas使用概述
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 前端面试题总结
  • 区块链分支循环
  • 使用putty远程连接linux
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 移动端唤起键盘时取消position:fixed定位
  • 智能合约开发环境搭建及Hello World合约
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • (2024,Flag-DiT,文本引导的多模态生成,SR,统一的标记化,RoPE、RMSNorm 和流匹配)Lumina-T2X
  • (C++)八皇后问题
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (二)hibernate配置管理
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (回溯) LeetCode 46. 全排列
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (力扣)循环队列的实现与详解(C语言)
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (十三)Flink SQL
  • (学习日记)2024.01.09
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • .NET 5种线程安全集合
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法
  • .NET Core跨平台微服务学习资源