123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- import plugins from './plugins/index'
- import { getCalendarConfig } from './utils/index'
- /**
- * 渲染日历
- */
- export function renderCalendar(calendarData, calendarConfig) {
- return new Promise(resolve => {
- const Component = this
- if (Component.firstRender === void 0) {
- Component.firstRender = true
- } else {
- Component.firstRender = false
- }
- const exitData = Component.data.calendar || {}
- for (let plugin of plugins.installed) {
- const [, p] = plugin
- if (typeof p.beforeRender === 'function') {
- const {
- calendarData: newData,
- calendarConfig: newConfig
- } = p.beforeRender(
- { ...exitData, ...calendarData },
- calendarConfig || getCalendarConfig(Component),
- Component
- )
- calendarData = newData
- calendarConfig = newConfig
- }
- }
- Component.setData(
- {
- config: calendarConfig,
- calendar: calendarData
- },
- () => {
- const rst = {
- calendar: calendarData,
- config: calendarConfig,
- firstRender: Component.firstRender
- }
- resolve(rst)
- if (Component.firstRender) {
- Component.triggerEvent('afterCalendarRender', rst)
- Component.firstRender = false
- }
- }
- )
- })
- }
|