用vue-full-calendar实现酒店预定管理展示

news/2024/10/18 10:15:59/

文章目录

  • 前言
  • 一、关于vue-full-calendar
  • 二、使用步骤
    • 1. 引入库
    • 2. 使用库
    • 3. 开始编码
    • 4. 实际效果图展示
    • 5. 点击弹窗展示
    • 6. 弹窗展示效果图
  • 总结


前言

近些天有位做酒店业务朋友问到我,有没有前端比较好用的预定日历查看插件,实际上我也没有研究过,毕竟我的专长还是后端,不过迫与多年好友关系,帮他研究了一把,现在前端发展的真的是非常快,今天分享一款比较好用的预定日历展示插件vue-full-calendar,并给出主要的使用演示。
在这里插入图片描述
大概实现的思路是,展示完整的月预定日历,并且实现点击每一个预定,弹窗展示一下具体的预定信息。


一、关于vue-full-calendar

vue-full-calendar是一个非常强大的日历工具,官方的介绍请 点击这里。

二、使用步骤

1. 引入库

npm install --save vue-full-calendar

2. 使用库

在需要引入的vue文件中,script标签头部放入如下代码。

import { FullCalendar } from 'vue-full-calendar'
import "fullcalendar/dist/fullcalendar.css";

引入组件,将FullCalendar放入components里面。

components: {...FullCalendar
},

3. 开始编码

配置Calendar组件到网页

<div class="fullCalendarCont"><full-calendar:config="config":events="events"ref="calendar"></full-calendar>
</div>

配置config,将如下代码放置到data()里面。其中events这里是写死的数据,实际过程中,应该由api接口返回的数据组装而成。

events: [{id: 1,title: '2位成人,1位儿童',start: '2022-05-13',end: '2022-05-14',},{id: 2,title: '2位成人,1位儿童',start: '2022-05-15',end: '2022-05-16',},
],
calendarData: [],
config: {header: {left:'title',center: '',right:  'today prev,next month'},// 自定义按钮文字buttonText: {month: '月',today:'今天'},//日历切换时间范围validRange: { start: '2020-03-01',end: '2028-07-01'},locale: 'zh-cn', //中文allDaySlot: false, // 是否显示allDaydefaultView: 'month', // 显示默认视图showNonCurrentDates: false, //是否在本月中显示其他月//事件eventMouseover: this.eventMouseover, // 事件悬停eventClick: this.eventClick, // 事件点击dayClick: this.dayClick // 天点击
}

4. 实际效果图展示

在这里插入图片描述

5. 点击弹窗展示

这里主要利用到config里面的配置eventClick: this.eventClick。要实现eventClick这方法。先放一个弹窗组件到页面。

<el-dialogtitle="预定信息":visible.sync="orderDialogVisible"width="30%"><span v-html="calendarOrderInfo" style="line-height: 25px;"></span><span slot="footer" class="dialog-footer"><el-button @click="orderDialogVisible = false">确 认</el-button></span>
</el-dialog>

接下来实现eventClick方法。其中event.id就是预定的id,和events数据中的id对应,通过数据匹配拿到这个id对应的订单信息,就可以展示在dialog里面了。

eventClick (event, jsEvent, pos) {let item = {};this.calendarData.forEach(element => {if(element.id == event.id) {item = element}})let payStatus = item.ps == 'bg-success' ? '成功' : '未清'this.calendarOrderInfo = ""this.calendarOrderInfo += `入住时间:		    ${item.startsAt}<br/>退房时间:${item.ea}<br/>预定平台:${item.pf}<br/>订单编号:${item.os}<br/>客人姓名:${item.un}<br/>入住人数:${item.gt}<br/>订单金额:${item.amount}<br/>邮箱:${item.ue}<br/>联系电话:${item.um}<br/>收款状态:${ps}<br/>收款方式:${item.pm}<br/>订单备注:${item.r}<br/>`this.orderDialogVisible = true
},

6. 弹窗展示效果图

在这里插入图片描述


总结

以上就是今天要讲的内容,用vue-full-calendar实现酒店预定管理展示。您也可以通过链接 https://www.npmjs.com/package/vue-full-calendar获取最新的插件版本哟。如有疑问,欢迎评论区留言讨论。


http://www.ppmy.cn/news/129018.html

相关文章

伪彩色图像(RGB彩色空间)

%f为一幅焊缝图像 f imread(hanfeng.tif); g ice(image,f); 第一幅图像为变化前&#xff1b;第二幅为变化后的图像。 图&#xff08;一&#xff09; 图&#xff08;二&#xff09;

什么是伪彩色

什么是伪彩色 伪彩色(pseudo-color)图像的每个像素值实际上是一个索引值或代码&#xff0c;该代码值作为色彩查找表CLUT(Color Look-Up Table)中某一项的入口地址&#xff0c;根据该地址可查找出包含实际R、G、B的强度值。 这种用查找映射的方法产生的色彩称为伪彩色。用这种方…

HP LaserJet Pro CP1525n 彩色打印机使用随机光盘安装驱动程序的方法

在安装打印机驱动程序前&#xff0c;不要连接打印机 USB 连接线。 运行打印机驱动程序&#xff1a; 下载驱动 安装&#xff0c;打开下载的驱动&#xff0c;双击 在“请查看以下协议。”窗口中&#xff0c;勾选“我已查看并接受安装协议。”项&#xff0c;然后点击“下一步”…

理光UV打印机彩色压不出墨的问题

问题&#xff1a;一台理光UV打印机彩色压不出墨&#xff0c;二级墨盒墨水倒流空气瓶。 检查&#xff1a;发现负压表被调乱&#xff0c;按彩色压墨开关时&#xff0c;检查各部件工作正常&#xff08;花了大量时间&#xff09;&#xff0c;但压不出墨&#xff0c;白色压墨正常。 …

epson彩色打印机加墨水_epson彩色喷墨打印机只打印黑色,彩色墨盒不用,怎么实现?...

爱普生彩色喷墨打印机单色打印的设计小技巧 用过爱普生彩色喷墨打印机的用户可能都会遇到这么一种情况&#xff1a;由于其彩色喷墨系列打印机的黑色墨与彩色墨为两个相互之间完全独立的墨盒&#xff0c;其中任何一个墨盒无墨时&#xff0c; 或者之一有问题&#xff0c;坏掉什么…

富士施乐S2110显示J-4请更换感光鼓后无法进行HFSI计数器初始化的另类操作

故障现象: 开机后显示错误J-4,按键盘无任何反应; 按 “全部清除”键或“停止”键显示下图内容: 故障解决: 更换全新原装感光鼓(硒鼓、鼓组件)、正巧又提示墨粉量低,于是又更换全新原装粉筒,更换完成后重新开机依然提示J-4,那么就剩下HFSI计数器初始化的问题了,我…

真彩色、假彩色和伪彩色的区别

伪彩色图像 同灰度图像一样,也是单波段的图像&#xff0c;但是这个单波段图像是有颜色的&#xff0c;不再是灰度图那样的&#xff0c;而是它的每一个灰度值都对应颜色空间中的某一种颜色。它可以是彩色的图像&#xff0c;但是需要时刻谨记的是该图像只是单通道的。我个人理解伪…

富士施乐3065扫描教程_富士施乐怎么设置扫描到PC

展开全部 1、将复印机的IP输入在IE的地址栏里,32313133353236313431303231363533e59b9ee7ad9431333365666232用户名是11111,密码是x-admin,进去以后找到协议下的9100项,将端口号码改为139.保存。改完之后再将打印机的端口改成上面的IP192.168.1.1,改成复印机的IP,不然的话…