diff --git a/packages/vision-preset/src/env.ts b/packages/vision-preset/src/env.ts index bd5ab894a..8c7eae39b 100644 --- a/packages/vision-preset/src/env.ts +++ b/packages/vision-preset/src/env.ts @@ -1,13 +1,13 @@ import { EventEmitter } from 'events'; import { ALI_SCHEMA_VERSION } from './base/const'; +import { obx } from '@ali/lowcode-editor-core'; interface ILiteralObject { [key: string]: any; } export class Env { - - public envs: ILiteralObject; + @obx.val envs: ILiteralObject = {}; private emitter: EventEmitter; private featureMap: ILiteralObject; @@ -15,23 +15,22 @@ export class Env { constructor() { this.emitter = new EventEmitter(); this.emitter.setMaxListeners(0); - this.envs = {}; this.featureMap = {}; } - public get(name: string): any { + get(name: string): any { return this.getEnv(name); } - public getEnv(name: string): any { + getEnv(name: string): any { return this.envs[name]; } - public set(name: string, value: any) { + set(name: string, value: any) { return this.setEnv(name, value); } - public setEnv(name: string, value: any) { + setEnv(name: string, value: any) { const orig = this.envs[name]; if (JSON.stringify(orig) === JSON.stringify(value)) { return; @@ -40,47 +39,47 @@ export class Env { this.emitter.emit('envchange', this.envs, name, value); } - public setEnvMap(envs: ILiteralObject): void { + setEnvMap(envs: ILiteralObject): void { this.envs = Object.assign(this.envs, envs); this.emitter.emit('envchange', this.envs); } - public getLocale(): string { + getLocale(): string { return this.getEnv('locale') || 'zh_CN'; } - public setLocale(locale: string) { + setLocale(locale: string) { this.setEnv('locale', locale); } - public setExpertMode(flag: string) { + setExpertMode(flag: string) { this.setEnv('expertMode', !!flag); } - public isExpertMode() { + isExpertMode() { return !!this.getEnv('expertMode'); } - public getSupportFeatures() { + getSupportFeatures() { return Object.assign({}, this.featureMap); } - public setSupportFeatures(features: ILiteralObject) { + setSupportFeatures(features: ILiteralObject) { this.featureMap = Object.assign({}, this.featureMap, features); } - public supports(name = 'supports') { + supports(name = 'supports') { return !!this.featureMap[name]; } - public onEnvChange(func: (envs: ILiteralObject, name: string, value: any) => any) { + onEnvChange(func: (envs: ILiteralObject, name: string, value: any) => any) { this.emitter.on('envchange', func); return () => { this.emitter.removeListener('envchange', func); }; } - public getAliSchemaVersion() { + getAliSchemaVersion() { return ALI_SCHEMA_VERSION; } } diff --git a/packages/vision-preset/src/i18n-reducer.ts b/packages/vision-preset/src/i18n-reducer.ts index 693ee0cae..a1a153932 100644 --- a/packages/vision-preset/src/i18n-reducer.ts +++ b/packages/vision-preset/src/i18n-reducer.ts @@ -1,5 +1,5 @@ -const I18nUtil = require('@ali/ve-i18n-util'); import Env from './env'; +const I18nUtil = require('@ali/ve-i18n-util'); interface I18nObject { type?: string; @@ -9,7 +9,9 @@ interface I18nObject { } export function i18nReducer(obj?: any): any { - if (!obj) { return obj; } + if (!obj) { + return obj; + } if (Array.isArray(obj)) { return obj.map((item) => i18nReducer(item)); } @@ -18,6 +20,7 @@ export function i18nReducer(obj?: any): any { // FIXME! use editor.get let locale = Env.getLocale(); if (obj.key) { + // FIXME: 此处需要升级I18nUtil,改成响应式 return I18nUtil.get(obj.key, locale); } if (locale !== 'zh_CN' && locale !== 'zh_TW' && !obj[locale]) {