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

vue使日历组件点击时间渲染到时间输入框

首先,你需要在 Vue 中创建一个日历组件,该组件应该能够显示一个月的日历并允许用户选择日期。然后,当用户点击一个日期时,你需要将所选日期的值传递给父组件。最后,你可以在父组件中创建一个时间输入框,当用户点击日历中的日期时,在时间输入框中自动填充所选日期的值。

下面是一个简单的示例代码:

<!-- 在父组件模板中创建一个时间输入框 -->
<template><div><label>选择日期:</label><input type="text" v-model="selectedDate"><my-calendar @date-selected="updateSelectedDate"></my-calendar></div>
</template><script>
import MyCalendar from './MyCalendar.vue'export default {components: {MyCalendar},data() {return {selectedDate: ''}},methods: {updateSelectedDate(date) {this.selectedDate = date}}
}
</script>

<!-- 在子组件中编写日历组件 -->
<template><div class="calendar"><div>{{ month }} {{ year }}</div><div><button @click="prev"><</button><button @click="next">></button></div><table><thead><tr><th v-for="day in daysOfWeek">{{ day }}</th></tr></thead><tbody><tr v-for="week in weeks"><td v-for="day in week"@click="selectDate(day)":class="{ 'selected': isSelected(day) }">{{ day }}</td></tr></tbody></table></div>
</template><script>
export default {data() {return {today: new Date(),selectedDate: null,daysOfWeek: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],monthNames: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']}},computed: {weeks() {let weeks = []let week = []let firstDayOfMonth = new Date(this.year, this.month, 1)let lastDayOfMonth = new Date(this.year, this.month + 1, 0)let dayOfWeek = firstDayOfMonth.getDay()let daysInMonth = lastDayOfMonth.getDate()for (let i = 1; i <= daysInMonth; i++) {let date = new Date(this.year, this.month, i)week.push(i)if (dayOfWeek === 6 || i === daysInMonth) {weeks.push(week)week = []}dayOfWeek = (dayOfWeek + 1) % 7}return weeks},month() {return this.today.getMonth()},year() {return this.today.getFullYear()}},methods: {prev() {this.today = new Date(this.year, this.month - 1, 1)},next() {this.today = new Date(this.year, this.month + 1, 1)},selectDate(day) {this.selectedDate = new Date(this.year, this.month, day)this.$emit('date-selected', this.selectedDate)},isSelected(day) {return this.selectedDate && this.selectedDate.getDate() === day}}
}
</script>

在上面的代码中,子组件是一个日历组件,它可以显示一个月的日历。当用户点击一个日期时,使用 selectDate 方法来设置 selectedDate 值,并通过 $emit 方法将所选日期传递给父组件。在父组件中,我们创建了一个时间输入框,并使用 selectedDate 的值来更新它的 v-model 值。

这样,当用户点击日历中的日期时,所选日期的值就会自动渲染到时间输入框中。

http://www.lryc.cn/news/209085.html

相关文章:

  • TensorFlow学习:使用官方模型和自己的训练数据进行图片分类
  • MATLAB算法实战应用案例精讲-【图像处理】相机标定
  • python画气泡标尺图
  • Java并发编程指南:如何正确使用信号量和线程池熔断机制
  • 大彩串口屏读写文件问题
  • php之 角色的权限管理(RBAC)详解
  • asp.net乡村旅游管理系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio
  • 【linux】文件系统+软硬连接+动静态库
  • 力扣每日一题73:矩阵置零
  • vscode C++项目相对路径的问题
  • 视频转换器WinX HD Video Converter mac中文特点介绍
  • 数据隐私保护的方法有哪些?
  • 【Linux】解决缓存锁问题:无法获得锁 /var/lib/dpkg/lock-frontend
  • 嵌入式软件开发工程师应该关注芯片数据手册中的哪些信息
  • 基于数字电路交通灯信号灯控制系统设计-单片机设计
  • Spring Boot 配置邮件发送服务
  • 【Spring】快速入门Spring Web MVC
  • python---continue关键字对for...else结构的影响
  • 小结笔记:多位管理大师关于管理的要素的论述
  • sql---慢查询和语句耗时
  • ChinaSoft 论坛巡礼 | 智慧化 IDE 论坛
  • 数字孪生智慧工厂三维可视化系统解决方案,打造新一代智慧工厂
  • 并查集学习心得
  • 自动驾驶之—LaneAF学习相关总结
  • 软考系统架构之案例篇(Redis相关概念)
  • 黑客入门指南,学习黑客必须掌握的技术
  • 定档11月2日,YashanDB 2023年度发布会完整议程公布
  • composer安装thinkphp6报错
  • 此页面不能正确地重定向
  • 【Apache Flink】实现有状态函数