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; } } ); }); }