123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- /**
- * LunarFullCalendar 公共 js
- *
- * @version 1.0.0
- * @author sunjianlei
- *
- * */
- import { getRefPromise } from '@/utils/JEditableTableUtil'
- /* 日历的视图类型 */
- const calendarViewType = {
- month: 'month', // 月视图
- basicWeek: 'basicWeek', // 基础周视图
- basicDay: 'basicDay',// 基础天视图
- agendaWeek: 'agendaWeek', // 议程周视图
- agendaDay: 'agendaDay', // 议程天视图
- }
- /* 定义默认视图 */
- const defaultView = calendarViewType.month
- /* 定义日历默认配置 */
- const defaultSettings = {
- locale: 'zh-cn',
- // 按钮文字
- buttonText: {
- today: '今天',
- month: '月',
- week: '周',
- day: '日'
- },
- // 头部排列方式
- header: {
- left: 'prev,next, today',
- center: 'title',
- right: 'hide, custom, month,agendaWeek,agendaDay'
- },
- //点击今天日列表图
- eventLimitClick: 'day',
- // 隐藏超出的事件
- eventLimit: true,
- // 设置每周开始日期为周日
- firstDay: 0,
- // 默认显示视图
- defaultView,
- timeFormat: 'H:mm',
- axisFormat: 'H:mm',
- // agenda视图下是否显示all-day
- allDaySlot: true,
- // agenda视图下all-day的显示文本
- allDayText: '全天',
- // 时区默认本地的
- timezone: 'local',
- // 周视图和日视同的左侧时间显示
- slotLabelFormat: 'HH:mm',
- // 设置第二天阈值
- nextDayThreshold: '00:00:00',
- }
- /** 提供了一些增强方法 */
- const CalendarMixins = {
- data() {
- return {
- calenderCurrentViewType: defaultView
- }
- },
- methods: {
- getCalendarConfigEventHandler() {
- return {
- // 处理 view changed 事件
- viewRender: (view, element) => {
- let { type } = view
- let lastViewType = this.calenderCurrentViewType
- this.calenderCurrentViewType = type
- if (typeof this.handleViewRender === 'function') {
- this.handleViewRender(type, view, element)
- }
- if (lastViewType !== this.calenderCurrentViewType && typeof this.handleViewChanged === 'function') {
- this.handleViewChanged(type, view, element)
- }
- },
- }
- },
- /** 获取 LunarFullCalendar 实例,ref = baseCalendar */
- getCalendar(fn) {
- return getRefPromise(this, 'baseCalendar').then(fn)
- },
- calendarEmit(name, data) {
- this.getCalendar(ref => ref.$emit(name, data))
- },
- /** 强制重新加载所有的事件(日程)*/
- calendarReloadEvents() {
- this.calendarEmit('reload-events')
- }
- }
- }
- export { defaultSettings, calendarViewType, CalendarMixins }
|