mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2026-01-13 01:21:58 +00:00
feat: 在 editor-preset-vision 中对 legao schema 进行向前兼容
This commit is contained in:
parent
ab66fd4ca5
commit
786791713a
@ -19,7 +19,7 @@ export function deepValueParser(obj?: any): any {
|
||||
}
|
||||
// 兼容 ListSetter 中的变量结构
|
||||
if (isVariable(obj)) {
|
||||
if (editor.get('designMode') === 'live'){
|
||||
if (editor.get('designMode') === 'live') {
|
||||
return {
|
||||
type: 'JSExpression',
|
||||
value: obj.variable,
|
||||
|
||||
@ -10,7 +10,6 @@ import { VE_EVENTS } from './base/const';
|
||||
|
||||
import DesignerPlugin from '@ali/lowcode-plugin-designer';
|
||||
import { Skeleton, SettingsPrimaryPane } from '@ali/lowcode-editor-skeleton';
|
||||
|
||||
import { deepValueParser } from './deep-value-parser';
|
||||
import { liveEditingRule, liveEditingSaveHander } from './vc-live-editing';
|
||||
|
||||
@ -73,7 +72,7 @@ function upgradePropsReducer(props: any) {
|
||||
};
|
||||
}
|
||||
const newProps: any = {};
|
||||
Object.keys(props).forEach(key => {
|
||||
Object.keys(props).forEach((key) => {
|
||||
if (/^__slot__/.test(key) && props[key] === true) {
|
||||
return;
|
||||
}
|
||||
@ -94,7 +93,7 @@ designer.addPropsReducer((props, node) => {
|
||||
};
|
||||
if (newProps.fieldId) {
|
||||
const fieldIds: any = [];
|
||||
Object.keys(nodeCache).forEach(nodeId => {
|
||||
Object.keys(nodeCache).forEach((nodeId) => {
|
||||
const fieldId = nodeCache[nodeId].getPropValue('fieldId');
|
||||
if (fieldId) {
|
||||
fieldIds.push(fieldId);
|
||||
@ -142,7 +141,7 @@ designer.addPropsReducer((props: any, node: Node) => {
|
||||
return {
|
||||
...props,
|
||||
lifeCycles: {},
|
||||
}
|
||||
};
|
||||
}
|
||||
return props;
|
||||
}, TransformStage.Render);
|
||||
@ -197,7 +196,7 @@ function compatiableReducer(props: any) {
|
||||
type: 'variable',
|
||||
value: val.mock,
|
||||
variable: val.value,
|
||||
}
|
||||
};
|
||||
}
|
||||
newProps[key] = val;
|
||||
});
|
||||
@ -209,7 +208,7 @@ designer.addPropsReducer(compatiableReducer, TransformStage.Save);
|
||||
designer.addPropsReducer((props: any, node: Node) => {
|
||||
const lifeCycleNames = ['didMount', 'willUnmount'];
|
||||
if (node.isRoot()) {
|
||||
lifeCycleNames.forEach(key => {
|
||||
lifeCycleNames.forEach((key) => {
|
||||
if (props[key]) {
|
||||
const lifeCycles = node.props.getPropValue(getConvertedExtraKey('lifeCycles')) || {};
|
||||
lifeCycles[key] = props[key];
|
||||
@ -266,10 +265,27 @@ function appendStyleNode(props: any, styleProp: any, cssClass: string, cssId: st
|
||||
}
|
||||
}
|
||||
designer.addPropsReducer(stylePropsReducer, TransformStage.Render);
|
||||
|
||||
// 国际化 & Expression 渲染时处理
|
||||
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({
|
||||
area: 'mainArea',
|
||||
name: 'designer',
|
||||
|
||||
@ -22,7 +22,7 @@ export default class PageEngine extends BaseEngine {
|
||||
static contextType = AppContext;
|
||||
|
||||
static getDerivedStateFromProps(props, state) {
|
||||
debugger;
|
||||
// debugger;
|
||||
debug('page.getDerivedStateFromProps');
|
||||
const func = props.__schema.lifeCycles && props.__schema.lifeCycles.getDerivedStateFromProps;
|
||||
if (func) {
|
||||
|
||||
@ -39,7 +39,8 @@
|
||||
"react-is": "^16.10.1",
|
||||
"serialize-javascript": "^1.7.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": {
|
||||
"@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 { jsonp, mtop, request, get, post, bzb } from './request';
|
||||
import Debug from 'debug';
|
||||
@ -81,6 +82,7 @@ export default class DataHelper {
|
||||
}
|
||||
return false;
|
||||
});
|
||||
// 所有 datasource 的 datahandler
|
||||
return this.asyncDataHandler(initSyncData).then((res) => {
|
||||
let dataHandler = this.config.dataHandler;
|
||||
if (isJSFunction(dataHandler)) {
|
||||
@ -187,6 +189,7 @@ export default class DataHelper {
|
||||
}
|
||||
if (allReq.length === 0) resolve({});
|
||||
const res = {};
|
||||
// todo:
|
||||
Promise.all(
|
||||
allReq.map((item) => {
|
||||
return new Promise((resolve) => {
|
||||
@ -258,6 +261,7 @@ export default class DataHelper {
|
||||
});
|
||||
}
|
||||
|
||||
// dataHandler todo:
|
||||
dataHandler(id, dataHandler, data, error) {
|
||||
if (isJSFunction(dataHandler)) {
|
||||
dataHandler = transformStringToFunction(dataHandler.value);
|
||||
@ -272,7 +276,7 @@ export default class DataHelper {
|
||||
}
|
||||
|
||||
fetchOne(type, options) {
|
||||
let { uri, method = 'GET', headers, params, ...otherProps } = options;
|
||||
let { uri, url, method = 'GET', headers, params, ...otherProps } = options;
|
||||
otherProps = otherProps || {};
|
||||
switch (type) {
|
||||
case 'mtop':
|
||||
@ -286,11 +290,19 @@ export default class DataHelper {
|
||||
headers,
|
||||
...otherProps,
|
||||
});
|
||||
// todo:
|
||||
case 'legao':
|
||||
if (method === 'JSONP') {
|
||||
return jsonp(url, params, otherProps);
|
||||
}
|
||||
// return webTable(uri, params, otherProps);
|
||||
break;
|
||||
default:
|
||||
method = method.toUpperCase();
|
||||
if (method === 'GET') {
|
||||
return get(uri, params, headers, otherProps);
|
||||
} else if (method === 'POST') {
|
||||
}
|
||||
if (method === 'POST') {
|
||||
return post(uri, 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 { observer } from '@recore/obx-react';
|
||||
import { SimulatorRendererContainer, DocumentInstance } from './renderer';
|
||||
@ -126,7 +127,6 @@ class Renderer extends Component<{ documentInstance: DocumentInstance }> {
|
||||
const { documentInstance } = this.props;
|
||||
const { container } = documentInstance;
|
||||
const { designMode, device } = container;
|
||||
|
||||
return (
|
||||
<LowCodeRenderer
|
||||
schema={documentInstance.schema}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user