import _ from 'lodash'; /** 图表全局配置 非echarts配置,自定义的一些全局配置 */ export const globalConfig = {}; let unsetPrimaryColor = true; /** * 注册全局配置的方法 项目中注册一次即可,在项目入口或者初始化完成之后进行注册 或者有切换全局配置需求时,重新注册覆盖 * * @param {any} config 配置对象 * @returns */ export const injectGlobalConfig = (config) => { if (!config) return; if (Object.prototype.toString.call(config) !== '[object Object]') throw new TypeError('illegal params, config must be an object!'); if (globalConfig.hasOwnProperty('primaryColor')) unsetPrimaryColor = false; globalConfig = _.merge(globalConfig, config); }; /** * 运行时校验全局配置 目的是保证有些必需的配置需要有,或者一些需要有默认值的配置项赋值 * * PrimaryColor 主题色,在运行时需要有默认值 */ export const runtimeValidate = () => { // primaryColor 主题色 if (!globalConfig.primaryColor || unsetPrimaryColor) { globalConfig.primaryColor = window.globalConfig?.variableTheme?.primaryColor ?? '#1685FF'; unsetPrimaryColor = true; } };