fix: 优化 vc-live-editing 注入逻辑(后续可能要开个配置项让用户选择版本)

This commit is contained in:
力皓 2021-02-01 10:57:49 +08:00
parent b8f1a3678a
commit 386d120ab7
2 changed files with 13 additions and 4 deletions

View File

@ -22,20 +22,28 @@ export interface EditingTarget {
event: MouseEvent; event: MouseEvent;
} }
const saveHandlers: SaveHandler[] = []; let saveHandlers: SaveHandler[] = [];
function addLiveEditingSaveHandler(handler: SaveHandler) { function addLiveEditingSaveHandler(handler: SaveHandler) {
saveHandlers.push(handler); saveHandlers.push(handler);
} }
function clearLiveEditingSaveHandler() {
saveHandlers = [];
}
const specificRules: SpecificRule[] = []; let specificRules: SpecificRule[] = [];
function addLiveEditingSpecificRule(rule: SpecificRule) { function addLiveEditingSpecificRule(rule: SpecificRule) {
specificRules.push(rule); specificRules.push(rule);
} }
function clearLiveEditingSpecificRule() {
specificRules = [];
}
export class LiveEditing { export class LiveEditing {
static addLiveEditingSpecificRule = addLiveEditingSpecificRule; static addLiveEditingSpecificRule = addLiveEditingSpecificRule;
static clearLiveEditingSpecificRule = clearLiveEditingSpecificRule;
static addLiveEditingSaveHandler = addLiveEditingSaveHandler; static addLiveEditingSaveHandler = addLiveEditingSaveHandler;
static clearLiveEditingSaveHandler = clearLiveEditingSaveHandler;
@obx.ref private _editing: Prop | null = null; @obx.ref private _editing: Prop | null = null;

View File

@ -1,5 +1,3 @@
import { isJSBlock, isJSExpression, isJSSlot } from '@ali/lowcode-types';
import { isPlainObject, hasOwnProperty, cloneDeep, isI18NObject, isUseI18NSetter, convertToI18NObject, isString } from '@ali/lowcode-utils';
import { editor, designer, designerCabin } from '@ali/lowcode-engine'; import { editor, designer, designerCabin } from '@ali/lowcode-engine';
import bus from './bus'; import bus from './bus';
import { VE_EVENTS } from './base/const'; import { VE_EVENTS } from './base/const';
@ -20,6 +18,9 @@ import {
const { LiveEditing, TransformStage } = designerCabin; const { LiveEditing, TransformStage } = designerCabin;
// 清理引擎自带的规则和保存函数,会影响 vc i18n 的保存
LiveEditing.clearLiveEditingSpecificRule();
LiveEditing.clearLiveEditingSaveHandler();
LiveEditing.addLiveEditingSpecificRule(liveEditingRule); LiveEditing.addLiveEditingSpecificRule(liveEditingRule);
LiveEditing.addLiveEditingSaveHandler(liveEditingSaveHander); LiveEditing.addLiveEditingSaveHandler(liveEditingSaveHander);