diff --git a/packages/editor-preset-vision/src/deep-value-parser.ts b/packages/editor-preset-vision/src/deep-value-parser.ts index 528b0fa29..17a309807 100644 --- a/packages/editor-preset-vision/src/deep-value-parser.ts +++ b/packages/editor-preset-vision/src/deep-value-parser.ts @@ -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, diff --git a/packages/editor-preset-vision/src/editor.ts b/packages/editor-preset-vision/src/editor.ts index a5802d698..3f6e29075 100644 --- a/packages/editor-preset-vision/src/editor.ts +++ b/packages/editor-preset-vision/src/editor.ts @@ -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', diff --git a/packages/rax-render/src/engine/pageEngine.jsx b/packages/rax-render/src/engine/pageEngine.jsx index 8f833d814..adb9059d5 100644 --- a/packages/rax-render/src/engine/pageEngine.jsx +++ b/packages/rax-render/src/engine/pageEngine.jsx @@ -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) { diff --git a/packages/react-renderer/package.json b/packages/react-renderer/package.json index e73419af9..086eb1e69 100644 --- a/packages/react-renderer/package.json +++ b/packages/react-renderer/package.json @@ -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", diff --git a/packages/react-renderer/src/utils/dataHelper.js b/packages/react-renderer/src/utils/dataHelper.js index e620cbb52..6cb8b09f0 100644 --- a/packages/react-renderer/src/utils/dataHelper.js +++ b/packages/react-renderer/src/utils/dataHelper.js @@ -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); diff --git a/packages/react-simulator-renderer/src/renderer-view.tsx b/packages/react-simulator-renderer/src/renderer-view.tsx index 283f07bdc..81ae155c4 100644 --- a/packages/react-simulator-renderer/src/renderer-view.tsx +++ b/packages/react-simulator-renderer/src/renderer-view.tsx @@ -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 (