如果想用fullcalendar实现排班功能,或者日历、日程功能。那么只需要简单的几步:

这里先挂官网链接:

fullcalendar

fullcalendar官网下载链接

一、下载及简单配置

1、这里先明确你想要的是哪种形式式:fullcalendar 提供多种日历形式:

你们可以在官网首页的演示里面看到,在这里我主要讲一下我这里使用的两种实现:

(1)日历模式(只是用fullcalendar实现)

(2)时间轴模式(除了fullcalendar还用了官网的另一个插件叫schedule

在下载了fullcalendar之后将其引入你自己的项目,只需要进行很简单的配置就可以进行使用了。

这是需要运行插件的几个基本的配置,将其引入页面

此处需要注意的是jquery和moment的js必须在fullcalendar的js之前引入。如果你也想做时间轴模式的日历,并且已经下载了schedule的话,那么你需要在在页面中引入schedule的js和css

也就是说不但要引入fullcalendar的还要引入schedule的。

之后在页面定义一个div 这个div会被渲染成日历插件比如我建立一个div

那么这时候就可以在js中进行配置了

$('#calendar').fullCalendar({

defaultView:'month',

height:'auto',

header:false,

displayEventTime:true,

displayEventEnd:true,

weekMode:"liquid",

aspectRatio:2,

allDaySlot:false,

timeFormat:'HH:mm',

locale:'zh-cn',

})

这其中的一些配置根据自己的需求来定,具体官方文档

需要说明的是fullcalendar提供schedule的免费使用,不过在插件上会有水印。要想去掉水印可以在配置中加上这一句

schedulerLicenseKey: 'CC-Attribution-NonCommercial-NoDerivatives',

加在上面的配置里就可以。

这样运行之后你可以得到一个日历了

其中的defaultView是决定显示是月 还是年 或者是星期的。对于fullcalendar有以下几种取值:

month

basicWeek

basicDay

agendaWeek

agendaDay

listYear

listMonth

listWeek

listDay

如果你同时下载了schedule想要以小时来分割每日的时间那么你可以使用以下几种视图:

timelineDay

timelineWeek

timelineMonth

timelineYear

当然你也可以自定义视图 具体看文档自定义视图

这里我写一个例子

views: {

agendaFourDay: {

type:'timeline',

duration: { days:4},

buttonText:'4 day'},

},

这里我设置了一个4天的区间,表明在这种模式下,我的日历显示跨度为四天。然后设置defaultView:agendaFourDay,就好了。完整写就是这样。

$('#calendar').fullCalendar({

defaultView:'agendaFourDay',

height:'auto',

header:false,

displayEventTime:true,

displayEventEnd:true,

weekMode:"liquid",

aspectRatio:2,

allDaySlot:false,

timeFormat:'HH:mm',

locale:'zh-cn',

views: {

agendaFourDay: {

type:'timeline',

duration: { days:4},

buttonText:'4 day'},

},

})

除了一开始在配置中写好,fullcalendar提供方法可以在js中更改视图,这样就能自定义按钮来控制视图了

$('#calendar').fullCalendar("changeView","basicDay ");

这样就把视图类型更改为basicDay 了。

当然上述配置也可以在js中修改。体现在代码里就是

上面是一个例子 底下是格式。

$('#calendar').fullCalendar('option','height',"600")

$('#calendar').fullCalendar('option','属性',"属性值")

改代码把日历的高度定义为600px。

还有很多种方法 参看文档的(method)

以下就完成了插件的基本配置。

二、往插件里传数据

以下是我向日历里传数据的方法

functiondrawCalendar(data) {

$('#calendar').fullCalendar( 'removeEvents');var events=[];for(var i=0, len=data.length; i

var isallDay=true;if(timeDate["end"] !=null && timeDate["start"] != null){if(moment(timeDate["start"].replace(" ","T")).format("HH:mm") !== "00:00" || moment(timeDate["end"].replace(" ","T")).format("HH:mm") !== "00:00"){

isallDay= false;

}

}var item={

title : timeDate["title"],

start : timeDate["start"].replace(" ","T"),

className :"event-bar",

allDay : isallDay,

end : timeDate["end"]==null ? "" : timeDate["end"].replace(" ","T"),

backgroundColor : getCalendarColor(timeDate["user"]),

user : timeDate["user"],

startTime : timeDate["startTime"],

endTime : timeDate["endTime"]

};

events.push(item);

}

$('#calendar').fullCalendar( 'addEventSource', events );

}

其中

$('#calendar').fullCalendar( 'removeEvents');

是用来先移除原来控件中的事件的。

event是事件数组,事件就是图里面一条一条的,把item(下面的属性各项,有设置事件条的颜色的,也有设置开始结束时间的,与英文意思相同这里不多做解释,有不懂得可以在评论中问我)

var item={

title : timeDate["title"],

start : timeDate["start"].replace(" ","T"),

className :"event-bar",

allDay : isallDay,

end : timeDate["end"]==null ? "" : timeDate["end"].replace(" ","T"),

backgroundColor : getCalendarColor(timeDate["user"]),

user : timeDate["user"],

startTime : timeDate["startTime"],

endTime : timeDate["endTime"]

};

推入事件数组。

再用

$('#calendar').fullCalendar( 'addEventSource', events );

控件提供的方法把事件数组推入事件,就可以了在图上显示你的事件了。

补充:vue中的实现

工作日管理

data() {return{

defaultView:'dayGridMonth',

calendarPlugins: [dayGridPlugin, interactionPlugin, timeGridPlugin],

zhLocale,

events: [//event data...

{

title:'Event1',

start:'2019-08-26 15:00:23',

end:'2019-08-26 19:00:00',

startTime:'2019-08-26 15:00:23',

endTime:'2019-08-26 19:00:00',

allDay:false,

},

{

title:'Event2',

start:'2019-08-21',

end:'2019-08-25',

allDay:false,

user:'abc',

backgroundColor:'orange',

className:'event-bar',

startTime:'2019-08-21',

},

{

title:'Event3',

start:'2019-08-21',

end:'2019-08-25',

allDay:false,

user:'abc',

backgroundColor:'orange',

className:'event-bar',

startTime:'2019-08-21',

}

],

}

},

components: {

FullCalendar,

},

mounted() {

console.log(formatDate(new Date(), 'YYYY-MM-DD HH:mm:ss'))

},

methods: {

viewSkeletonRender(info) {this.defaultView =info.view.type

},

selectAllow() {if (this.defaultView === 'dayGridMonth') {return false}return true},

handleDateClick(arg) {

console.log(arg)//arg.dayEl.style.backgroundColor = 'red'

//arg.dayEl.style.backgroundColor = 'red'

console.log(this.$refs.fullCalendar.getApi().getEvents())

},

handleDateSelect(arg) {

console.log(arg)

},

handleEventClick(eventInfo) {

console.log(eventInfo.event)

},

}

}

@import'~@fullcalendar/daygrid/main.css';

@import'~@fullcalendar/timegrid/main.css';

.work-day-manage {

padding:020px;

.calendar-wrap {

width: 1000px;

height: 2000px;

.fc {

}

}

}

js 排班插件_js jquery 实现 排班,轮班,日历,日程。使用fullcalendar 插件相关推荐

  1. js jquery 实现 排班,轮班,日历,日程。使用fullcalendar 插件

    如果想用fullcalendar实现排班功能,或者日历.日程功能.那么只需要简单的几步: 这里先挂官网链接: fullcalendar fullcalendar官网下载链接 一.下载及简单配置 1.这 ...

  2. js 排班插件_JS实现日程安排 日程安排插件

    代码: 员工周计划 body { margin: 0; padding: 0; font-size: 12px; color: #555; background-color: #fff; } .tab ...

  3. 排班源码,排班软件源码,排班系统源码,java,php,asp,asp.net,c#,python通用

    先上最后成品图: 可以按月按周进行排班 支持拖拉排班,效率十分高效 开工,准备物料: daypilot-all.min.js绿色版 我语言用的是php,因为是独立原生版本,代码看起来很简洁高效,开发起 ...

  4. 生成二维码的 jQuery 插件:jquery.qrcode.js

    jquery.qrcode.js 是一个纯浏览器 生成 QRcode 的 jQuery 插件,它使用非常简单,生成的 QRcode 无需下载图片,并且不依赖第三方服务,比如最近 Google 服务在国 ...

  5. Cadence Allegro 17.4学习记录开始05-制作封装插件2.54间距排针为例

    目录 Cadence Allegro 17.4学习记录开始05-制作封装插件2.54间距排针为例 一.分析封装图片 二.制作封装需要的焊盘 三.Allegro-Flash焊盘 四.制作封装 一:使用的 ...

  6. jQuery 表单验证插件,jQuery Validation Engine用法详解

    jQuery 表单验证插件,jQuery Validation Engine用法详解 功能强大的 jQuery 表单验证插件,适用于日常的 E-mail.电话号码.网址等验证及 Ajax 验证,除自身 ...

  7. html数字变换插件,轻量级jquery数字动画插件

    jquery.countup.js是一款轻量级jquery数字动画插件.该数字动画插件可以在页面滚动时,将指定的数字从0开始计数增加动画. 该数字动画插件可以控制动画的延迟时间和动画过渡时间.它依赖于 ...

  8. 20个强大的jQuery翻书插件【 jQuery flipbook】

    ​ 许多网站使用jQuery翻书插件来展示产品目录和销售广告册子.jQuery翻页书解决方案给访客提供了方便而有效的浏览一套东西的体验.如果做得好,就如同手头有一本印刷版的册子.通过翻页书插件,你可以 ...

  9. html登入弹框插件,基于jQuery的弹出框插件

    html如下: $(function() { $("#btn01").popwin({ element: "#box01", title: "请填写以 ...

最新文章

  1. 【OpenCV】使用过的函数汇总
  2. 树莓派~ubuntu开机自启动
  3. opencv-python图像处理之磨皮相机
  4. svn 面板缺少可选项_TortoiseSVN的设置
  5. 让jQuery Tools Scrollable控件在Mobile Web里面支持resize功能
  6. dataset.xsd的定义(vs2008)
  7. Master-Detail(主表明细),确认可以出货的SQL指令 -- Not Exists
  8. 风变编程python论文_如何看待风变编程的 Python 网课?
  9. 云小课|VMware备份上云学习专列来了,快加入吧~
  10. 【SpringCloud】Spring cloud Alibaba Sentinel 服务降级 (阿里版本Hystrix)
  11. Action+Service +Dao三层的功能划分
  12. 今天tiktok小社群更新 第5个项目行业案例
  13. alwayson高可用组_AlwaysOn可用性组–如何在集群实例和独立实例之间设置AG(第2部分)
  14. 企业实施ERP有哪些收益分析-要做到心中有数
  15. 骨牌覆盖问题 KxM
  16. win7无法连接WIFI,安装无线驱动 AR9485 WIFI Driver for Windows 7 (32-bit, 64-bit)
  17. Java学习之贷款案例
  18. Termux:api 使用及脚本分享
  19. 我的大数据之路 -- 猫眼电影再战
  20. c语言用标准体重判断是否,输入身高、体重、性别,判断是否是标准体重,男性标准=(身高-100)+-3,女性标准=(身高-110)+-3...

热门文章

  1. 一顿操作猛如虎,3000 行代码重构成 15 !
  2. 代谢组学助力研究“线粒体闪烁”,揭示细胞“返老还童”的新奥秘
  3. TDM与FDM的比较
  4. 折线图播放器组件 - elementui - ehcart
  5. 检测xposed框架实现
  6. filezilla定时上传_windows下定时利用bat脚本实现ftp上传和下载
  7. Android 自带工具生成图标
  8. 热点登陆打不开网页 服务器已关闭,手机登录路由器管理页面打不开怎么办?...
  9. e.g., malformed request syntax, invalid request message framing, or deceptive request routing)
  10. MATLAB 2019 快速入门教程(官方手册翻译)(1/4)