mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2026-01-20 15:38:32 +00:00
feat: 在 editor-preset-vision 中对 legao schema 进行向前兼容
This commit is contained in:
parent
ab66fd4ca5
commit
786791713a
@ -10,7 +10,6 @@ import { VE_EVENTS } from './base/const';
|
|||||||
|
|
||||||
import DesignerPlugin from '@ali/lowcode-plugin-designer';
|
import DesignerPlugin from '@ali/lowcode-plugin-designer';
|
||||||
import { Skeleton, SettingsPrimaryPane } from '@ali/lowcode-editor-skeleton';
|
import { Skeleton, SettingsPrimaryPane } from '@ali/lowcode-editor-skeleton';
|
||||||
|
|
||||||
import { deepValueParser } from './deep-value-parser';
|
import { deepValueParser } from './deep-value-parser';
|
||||||
import { liveEditingRule, liveEditingSaveHander } from './vc-live-editing';
|
import { liveEditingRule, liveEditingSaveHander } from './vc-live-editing';
|
||||||
|
|
||||||
@ -73,7 +72,7 @@ function upgradePropsReducer(props: any) {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
const newProps: any = {};
|
const newProps: any = {};
|
||||||
Object.keys(props).forEach(key => {
|
Object.keys(props).forEach((key) => {
|
||||||
if (/^__slot__/.test(key) && props[key] === true) {
|
if (/^__slot__/.test(key) && props[key] === true) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -94,7 +93,7 @@ designer.addPropsReducer((props, node) => {
|
|||||||
};
|
};
|
||||||
if (newProps.fieldId) {
|
if (newProps.fieldId) {
|
||||||
const fieldIds: any = [];
|
const fieldIds: any = [];
|
||||||
Object.keys(nodeCache).forEach(nodeId => {
|
Object.keys(nodeCache).forEach((nodeId) => {
|
||||||
const fieldId = nodeCache[nodeId].getPropValue('fieldId');
|
const fieldId = nodeCache[nodeId].getPropValue('fieldId');
|
||||||
if (fieldId) {
|
if (fieldId) {
|
||||||
fieldIds.push(fieldId);
|
fieldIds.push(fieldId);
|
||||||
@ -142,7 +141,7 @@ designer.addPropsReducer((props: any, node: Node) => {
|
|||||||
return {
|
return {
|
||||||
...props,
|
...props,
|
||||||
lifeCycles: {},
|
lifeCycles: {},
|
||||||
}
|
};
|
||||||
}
|
}
|
||||||
return props;
|
return props;
|
||||||
}, TransformStage.Render);
|
}, TransformStage.Render);
|
||||||
@ -197,7 +196,7 @@ function compatiableReducer(props: any) {
|
|||||||
type: 'variable',
|
type: 'variable',
|
||||||
value: val.mock,
|
value: val.mock,
|
||||||
variable: val.value,
|
variable: val.value,
|
||||||
}
|
};
|
||||||
}
|
}
|
||||||
newProps[key] = val;
|
newProps[key] = val;
|
||||||
});
|
});
|
||||||
@ -209,7 +208,7 @@ designer.addPropsReducer(compatiableReducer, TransformStage.Save);
|
|||||||
designer.addPropsReducer((props: any, node: Node) => {
|
designer.addPropsReducer((props: any, node: Node) => {
|
||||||
const lifeCycleNames = ['didMount', 'willUnmount'];
|
const lifeCycleNames = ['didMount', 'willUnmount'];
|
||||||
if (node.isRoot()) {
|
if (node.isRoot()) {
|
||||||
lifeCycleNames.forEach(key => {
|
lifeCycleNames.forEach((key) => {
|
||||||
if (props[key]) {
|
if (props[key]) {
|
||||||
const lifeCycles = node.props.getPropValue(getConvertedExtraKey('lifeCycles')) || {};
|
const lifeCycles = node.props.getPropValue(getConvertedExtraKey('lifeCycles')) || {};
|
||||||
lifeCycles[key] = props[key];
|
lifeCycles[key] = props[key];
|
||||||
@ -266,10 +265,27 @@ function appendStyleNode(props: any, styleProp: any, cssClass: string, cssId: st
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
designer.addPropsReducer(stylePropsReducer, TransformStage.Render);
|
designer.addPropsReducer(stylePropsReducer, TransformStage.Render);
|
||||||
|
|
||||||
// 国际化 & Expression 渲染时处理
|
// 国际化 & Expression 渲染时处理
|
||||||
designer.addPropsReducer(deepValueParser, TransformStage.Render);
|
designer.addPropsReducer(deepValueParser, TransformStage.Render);
|
||||||
|
|
||||||
|
designer.addPropsReducer((props: any, node: Node) => {
|
||||||
|
if (node.isRoot()) {
|
||||||
|
if (props.dataSource) {
|
||||||
|
const { online } = props.dataSource;
|
||||||
|
// if (online && online.length) {
|
||||||
|
// online.forEach((item: any) => {
|
||||||
|
// if (item.dataHandler && item.dataHandler.type && item.dataHandler.type === 'js') {
|
||||||
|
// item.dataHandler.type = 'JSFunction';
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
props.dataSource.list = online;
|
||||||
|
console.log(props);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return props;
|
||||||
|
}, TransformStage.Render);
|
||||||
|
|
||||||
skeleton.add({
|
skeleton.add({
|
||||||
area: 'mainArea',
|
area: 'mainArea',
|
||||||
name: 'designer',
|
name: 'designer',
|
||||||
|
|||||||
@ -22,7 +22,7 @@ export default class PageEngine extends BaseEngine {
|
|||||||
static contextType = AppContext;
|
static contextType = AppContext;
|
||||||
|
|
||||||
static getDerivedStateFromProps(props, state) {
|
static getDerivedStateFromProps(props, state) {
|
||||||
debugger;
|
// debugger;
|
||||||
debug('page.getDerivedStateFromProps');
|
debug('page.getDerivedStateFromProps');
|
||||||
const func = props.__schema.lifeCycles && props.__schema.lifeCycles.getDerivedStateFromProps;
|
const func = props.__schema.lifeCycles && props.__schema.lifeCycles.getDerivedStateFromProps;
|
||||||
if (func) {
|
if (func) {
|
||||||
|
|||||||
@ -39,7 +39,8 @@
|
|||||||
"react-is": "^16.10.1",
|
"react-is": "^16.10.1",
|
||||||
"serialize-javascript": "^1.7.0",
|
"serialize-javascript": "^1.7.0",
|
||||||
"socket.io-client": "^2.2.0",
|
"socket.io-client": "^2.2.0",
|
||||||
"whatwg-fetch": "^3.0.0"
|
"whatwg-fetch": "^3.0.0",
|
||||||
|
"@ali/ui-table": "^1.0.1-beta.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@alib/build-scripts": "^0.1.18",
|
"@alib/build-scripts": "^0.1.18",
|
||||||
|
|||||||
16
packages/react-renderer/src/utils/dataHelper.js
vendored
16
packages/react-renderer/src/utils/dataHelper.js
vendored
@ -1,3 +1,4 @@
|
|||||||
|
/* eslint-disable object-curly-newline */
|
||||||
import { transformArrayToMap, isJSFunction, transformStringToFunction, clone } from './index';
|
import { transformArrayToMap, isJSFunction, transformStringToFunction, clone } from './index';
|
||||||
import { jsonp, mtop, request, get, post, bzb } from './request';
|
import { jsonp, mtop, request, get, post, bzb } from './request';
|
||||||
import Debug from 'debug';
|
import Debug from 'debug';
|
||||||
@ -81,6 +82,7 @@ export default class DataHelper {
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
// 所有 datasource 的 datahandler
|
||||||
return this.asyncDataHandler(initSyncData).then((res) => {
|
return this.asyncDataHandler(initSyncData).then((res) => {
|
||||||
let dataHandler = this.config.dataHandler;
|
let dataHandler = this.config.dataHandler;
|
||||||
if (isJSFunction(dataHandler)) {
|
if (isJSFunction(dataHandler)) {
|
||||||
@ -187,6 +189,7 @@ export default class DataHelper {
|
|||||||
}
|
}
|
||||||
if (allReq.length === 0) resolve({});
|
if (allReq.length === 0) resolve({});
|
||||||
const res = {};
|
const res = {};
|
||||||
|
// todo:
|
||||||
Promise.all(
|
Promise.all(
|
||||||
allReq.map((item) => {
|
allReq.map((item) => {
|
||||||
return new Promise((resolve) => {
|
return new Promise((resolve) => {
|
||||||
@ -258,6 +261,7 @@ export default class DataHelper {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// dataHandler todo:
|
||||||
dataHandler(id, dataHandler, data, error) {
|
dataHandler(id, dataHandler, data, error) {
|
||||||
if (isJSFunction(dataHandler)) {
|
if (isJSFunction(dataHandler)) {
|
||||||
dataHandler = transformStringToFunction(dataHandler.value);
|
dataHandler = transformStringToFunction(dataHandler.value);
|
||||||
@ -272,7 +276,7 @@ export default class DataHelper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fetchOne(type, options) {
|
fetchOne(type, options) {
|
||||||
let { uri, method = 'GET', headers, params, ...otherProps } = options;
|
let { uri, url, method = 'GET', headers, params, ...otherProps } = options;
|
||||||
otherProps = otherProps || {};
|
otherProps = otherProps || {};
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case 'mtop':
|
case 'mtop':
|
||||||
@ -286,11 +290,19 @@ export default class DataHelper {
|
|||||||
headers,
|
headers,
|
||||||
...otherProps,
|
...otherProps,
|
||||||
});
|
});
|
||||||
|
// todo:
|
||||||
|
case 'legao':
|
||||||
|
if (method === 'JSONP') {
|
||||||
|
return jsonp(url, params, otherProps);
|
||||||
|
}
|
||||||
|
// return webTable(uri, params, otherProps);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
method = method.toUpperCase();
|
method = method.toUpperCase();
|
||||||
if (method === 'GET') {
|
if (method === 'GET') {
|
||||||
return get(uri, params, headers, otherProps);
|
return get(uri, params, headers, otherProps);
|
||||||
} else if (method === 'POST') {
|
}
|
||||||
|
if (method === 'POST') {
|
||||||
return post(uri, params, headers, otherProps);
|
return post(uri, params, headers, otherProps);
|
||||||
}
|
}
|
||||||
return request(uri, method, params, headers, otherProps);
|
return request(uri, method, params, headers, otherProps);
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
import LowCodeRenderer from '@ali/lowcode-react-renderer';
|
// import LowCodeRenderer from '@ali/lowcode-react-renderer';
|
||||||
|
import LowCodeRenderer from '../../react-renderer/src/index';
|
||||||
import { ReactInstance, Fragment, Component, createElement } from 'react';
|
import { ReactInstance, Fragment, Component, createElement } from 'react';
|
||||||
import { observer } from '@recore/obx-react';
|
import { observer } from '@recore/obx-react';
|
||||||
import { SimulatorRendererContainer, DocumentInstance } from './renderer';
|
import { SimulatorRendererContainer, DocumentInstance } from './renderer';
|
||||||
@ -126,7 +127,6 @@ class Renderer extends Component<{ documentInstance: DocumentInstance }> {
|
|||||||
const { documentInstance } = this.props;
|
const { documentInstance } = this.props;
|
||||||
const { container } = documentInstance;
|
const { container } = documentInstance;
|
||||||
const { designMode, device } = container;
|
const { designMode, device } = container;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<LowCodeRenderer
|
<LowCodeRenderer
|
||||||
schema={documentInstance.schema}
|
schema={documentInstance.schema}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user