1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > vue日程安排_使用Fullcalendar管理时间计划调度安排

vue日程安排_使用Fullcalendar管理时间计划调度安排

时间:2023-09-15 14:36:14

相关推荐

vue日程安排_使用Fullcalendar管理时间计划调度安排

原标题:使用Fullcalendar管理时间计划调度安排

Fullcalendar可以很好的管理日程安排事件,可以管理时间和任务调度,比如日常值班岗位安排、举办活动会议议程安排、项目行动安排、车间劳动岗位排班等等。今天我们来了解一下使用Fullcalendar(v4),完成一个基于时间的行动任务调度,先看演示DEMO。

准备

我们这个例子基于Vue2和Fullcalendar4,因此你先可以了解本站文章:在Vue框架下使用Fullcalendar,或者到官网:https://fullcalendar.io/了解有关Fullcalendar的更多详情。

我们在本例中用到了事件调度插件:timeline,因此先安装好相关插件:

npm install--save @fullcalendar/core

npm install--save @fullcalendar/resource-timeline

npm install--save @fullcalendar/timeline

使用

我们先新建timeline.vue组件文件,添加组件代码:

showNonCurrentDates= "false"

:schedulerLicenseKey= "licenseKey"

:slotLabelFormat= "slotLabelFormat"

:eventTimeFormat= "evnetTime"

:header= "header"

:aspectRatio= "aspectRatio"

:plugins= "calendarPlugins"

resourceAreaWidth= "20%"

resourceLabelText= "项目"

:resources= "resources"

:events= "calendarEvents"

/>

接着在 <> 先导入组件插件以及相关css文件。

< >

importFullCalendar from'@fullcalendar/vue'

importresourceTimelinePlugin from'@fullcalendar/resource-timeline';

import'@fullcalendar/core/main.css';

import'@fullcalendar/timeline/main.css'

import'@fullcalendar/resource-timeline/main.css'

exportdefault{

components: {

FullCalendar

},

data {

return{

licenseKey: 'GPL-My-Project-Is-Open-Source',

calendarPlugins: [

resourceTimelinePlugin

],

aspectRatio: 2.4,

header: {

left: 'prev',

center: 'title',

right: 'next'

},

evnetTime: {

hour: 'numeric',

minute: '2-digit',

hour12: false

},

slotLabelFormat: {

hour: 'numeric',

minute: '2-digit',

hour12: false

},

resources: [

{

id: 1,

eventColor: 'green',

title: '侦查组'

},

{

id: 2,

eventColor: '#369',

title: '抓捕组'

},

{

id: 3,

title: '警戒组'

},

{

id: 4,

eventColor: '#f60',

title: '机动组'

},

{

id: 5,

eventColor: '#e90',

title: '取证组'

},

{

id: 6,

eventColor: '#360',

title: '审查组'

}

],

calendarEvents: {

url: 'timeline.php'

}

}

},

mounted {

},

created {

},

methods: {

//

}

}

>

我们看DEMO,本例是展示一个警方的破案行动计划,在计划调度表中左侧是行动分组,右侧是每个分组对应的职责和在时间范围内要做的事情。

在 data 部分,通过 :resources 可以设置调度表左侧部分,内容是一个数组,我们也可以异步请求后台一个数据源,返回json格式数据即可。

events :事件数据。我们一般异步请求后台url,如 url: 'timeline.php' ,将返回json格式的数据源,Fullcalendar会直接将这些数据渲染到界面上。

后端timeline.php

我们后端使用PHP提供数据接口,本例只是演示,没有用到数据库。实际项目中,应该使用PHP或Python等后端语言操作数据库,为Fullcalendar提示数据源。

$data = [

'0'=> [

'resourceId'=> 1,

'title'=> '前期侦查',

'start'=> date( 'Y-m-d 00:30:00'),

'end'=> date( 'Y-m-d 09:00:00')

],

'1'=> [

'resourceId'=> 2,

'title'=> '雷霆抓捕行动',

'start'=> date( 'Y-m-d 06:00:00'),

'end'=> date( 'Y-m-d 10:00:00')

],

'2'=> [

'resourceId'=> 3,

'title'=> '负责区域警戒安防',

'start'=> date( 'Y-m-d 05:00:00'),

'end'=> date( 'Y-m-d 18:00:00')

],

'3'=> [

'resourceId'=> 4,

'title'=> '机动特别组,随时待命',

'start'=> date( 'Y-m-d 05:00:00'),

'end'=> date( 'Y-m-d 12:00:00')

],

'4'=> [

'resourceId'=> 5,

'title'=> '抓捕行动结束后现场取证',

'start'=> date( 'Y-m-d 10:00:00'),

'end'=> date( 'Y-m-d 18:00:00')

],

'5'=> [

'resourceId'=> 6,

'title'=> '提审嫌疑人',

'start'=> date( 'Y-m-d 15:00:00'),

'end'=> date( 'Y-m-d 23:00:00')

]

];

echojson_encode($data);

注意,在后端返回的数据列表中, resourceId 要和Fullcalendar的 resources 中的 id 值对应。

保存,运行项目你将可以看到Demo中的效果。其实我们在几个项目中已经应用到类似这样的时间任务调度,比如机场运营岗位排班,前端不用Fullcalendar也可以达到类似效果。返回搜狐,查看更多

责任编辑:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。