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

星期-时间范围选择器 滑动选择时间 最小粒度 vue3

星期-时间范围选择器

    • 功能介绍
    • 属性说明
    • 事件说明
    • 实现代码
    • 使用范例

根据业务需要,实现了一个可选择时间范围的周视图。用户可以通过鼠标拖动来选择时间段,并且可以通过快速选择组件来快速选择特定的时间范围。

在这里插入图片描述

功能介绍

  1. 时间范围选择:用户可以通过鼠标拖动来选择时间段。
  2. 快速选择:提供快速选择组件,用户可以通过点击快速选择特定的时间范围,如上午、下午、工作日、周末等。
  3. 自定义样式:可以通过selectionColor 属性自定义选中区域的颜色。
  4. 数据绑定:通过 modelValue属性与父组件进行数据绑定,实时更新选择的时间范围。

属性说明

modelValue:绑定的时间范围数据,类型为数组。
selectionColor:选中区域的颜色,类型为字符串,默认为 ‘rgba(5, 146, 245, 0.6)’。
showQuickSelect:是否显示快速选择组件,类型为布尔值,默认为 true。

事件说明

update:modelValue:当选择的时间范围发生变化时触发,返回更新后的时间范围数据。

实现代码

index.vue

<template><div class="zt-weektime"><div :class="{ 'zt-schedule-notransi': mode }" :style="[styleValue, { backgroundColor: selectionColor }]" class="zt-schedule"></div><table class="zt-weektime-table"><thead class="zt-weektime-head"><tr><td class="week-td" rowspan="8"></td><td v-for="t in theadArr" :key="t" :colspan="2">{{ t }}:00</td></tr><!--        <tr>--><!--          <td v-for="t in 48" :key="t" class="half-hour">--><!--            {{ t % 2 === 0 ? "00" : "30" }}--><!--          </td>--><!--        </tr>--></thead><tbody class="zt-weektime-body"><tr v-for="t in weekData" :key="t.row"><td>{{ t.value }}</td><tdv-for="n in t.child":key="`${n.row}-${n.col}`":class="['weektime-atom-item', { selected: isSelected(n) }]":data-time="n.col":data-week="n.row":style="{ '--selection-color': selectionColor }"@mousedown="cellDown(n)"@mouseenter="cellEnter(n)"@mouseup="cellUp(n)"></td></tr><tr><td class="zt-weektime-preview" colspan="49"><QuickSelect v-if="showQuickSelect" style="padding: 10px 0" @select="handleQuickSelect" /><!--            <div class="g-clearfix zt-weektime-con">--><!--              <span class="g-pull-left">{{ hasSelection ? "已选择时间段" : "可拖动鼠标选择时间段" }}</span>--><!--            </div>--><!--            <div v-if="hasSelection" class="zt-weektime-time">--><!--              <div v-for="(ranges, week) in formattedSelections" :key="week">--><!--                <p v-if="ranges.length">--><!--                  <span class="g-tip-text">{{ week }}:</span>--><!--                  <spa

http://www.mrgr.cn/news/69098.html

相关文章:

  • 【Qt实现虚拟键盘】
  • Liebherr利勃海尔 EDI 需求分析
  • tauri开发中,使用node将png图片转成苹果的icns图标格式,解决tauri icon生成的mac图标过大问题
  • P1197 星球大战(并查集+逆向思维)
  • Flutter开发者进阶:接入安卓原生页面
  • 商城小程序(源码+文档+部署+讲解)
  • 浅谈web性能测试
  • 智能问答系统流程详解:多轮对话与模型训练的技术要点及案例
  • Unet++改进11:添加MLCA||轻量级的混合本地信道注意机制
  • Linux可视化工具cockpit
  • tar | 打包 | 压缩 | 文件搜索 | 常用命令(二)
  • 浮点数转4字节数组在线转换工具
  • Python内置函数1详解案例
  • Python 基础语法 二维列表
  • Sigrity SPEED2000 Power Ground Noise Simulation模式如何进行电源阻抗仿真分析操作指导(一)-无电容
  • 【贪心】【哈希】个人练习-Leetcode-1296. Divide Array in Sets of K Consecutive Numbers
  • 国内AI工具复现GPTs效果详解
  • Rust项目中的Labels
  • 程序开发时单数复数及前缀的命名规范(目录名、文件名、函数名、变量名、数据库字段等)
  • ONLYOFFICE 8.2深度测评:集成PDF编辑、数据可视化与AI功能的强大办公套件
  • Chromium 中chrome.system.memory扩展接口定义c++
  • AWTK fscript 中的 日期时间 扩展函数
  • 2024年软件设计师中级(软考中级)详细笔记【12】软件系统分析与设计
  • mysql备份数据库及恢复
  • 【LeetCode】每日一题 2024_11_9 设计相邻元素求和服务(构造,哈希)
  • RHCE的学习(14)