mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2026-01-12 17:08:14 +00:00
fix: 处理 schema id 重复的问题
This commit is contained in:
parent
6e1eac0fc5
commit
d2316bec65
@ -1,6 +1,6 @@
|
||||
{
|
||||
"lerna": "2.11.0",
|
||||
"version": "independent",
|
||||
"version": "1.0.9",
|
||||
"npmClient": "tyarn",
|
||||
"registry": "http://registry.npm.alibaba-inc.com",
|
||||
"useWorkspaces": true,
|
||||
|
||||
@ -15,6 +15,7 @@
|
||||
"lint": "eslint --ext .ts,.tsx,.js,.jsx ./ --quiet",
|
||||
"lint:fix": "eslint --ext .ts,.tsx,.js,.jsx ./ --quiet --fix",
|
||||
"pub": "lerna publish --force-publish --cd-version prepatch",
|
||||
"pubbeta": "lerna publish --force-publish --cd-version prerelease --npm-tag beta",
|
||||
"setup": "./scripts/setup.sh",
|
||||
"start": "./scripts/start.sh",
|
||||
"start:server": "./scripts/start-server.sh",
|
||||
|
||||
@ -38,6 +38,8 @@ export default class DragResizeEngine {
|
||||
|
||||
private dragResizing = false;
|
||||
|
||||
private designer: Designer;
|
||||
|
||||
constructor(designer: Designer) {
|
||||
this.designer = designer;
|
||||
this.emitter = new EventEmitter();
|
||||
|
||||
@ -160,11 +160,11 @@ export class DocumentModel {
|
||||
/**
|
||||
* 生成唯一id
|
||||
*/
|
||||
nextId() {
|
||||
let id;
|
||||
do {
|
||||
id = `node_${ (this.id.slice(-10) + (++this.seqId).toString(36)).toLocaleLowerCase()}`;
|
||||
} while (this.nodesMap.get(id));
|
||||
nextId(possibleId: string | undefined) {
|
||||
let id = possibleId;
|
||||
while (!id || this.nodesMap.get(id)) {
|
||||
id = `node_${(this.id.slice(-10) + (++this.seqId).toString(36)).toLocaleLowerCase()}`;
|
||||
}
|
||||
|
||||
return id;
|
||||
}
|
||||
|
||||
@ -156,7 +156,7 @@ export class Node<Schema extends NodeSchema = NodeSchema> {
|
||||
|
||||
constructor(readonly document: DocumentModel, nodeSchema: Schema) {
|
||||
const { componentName, id, children, props, ...extras } = nodeSchema;
|
||||
this.id = id || document.nextId();
|
||||
this.id = document.nextId(id);
|
||||
this.componentName = componentName;
|
||||
if (this.componentName === 'Leaf') {
|
||||
this.props = new Props(this, {
|
||||
|
||||
@ -123,7 +123,7 @@ class Layout extends Component<{ rendererContainer: SimulatorRendererContainer }
|
||||
}
|
||||
|
||||
@observer
|
||||
class Renderer extends Component<{
|
||||
class Renderer extends Component<{
|
||||
rendererContainer: SimulatorRendererContainer;
|
||||
documentInstance: DocumentInstance }
|
||||
> {
|
||||
@ -132,10 +132,9 @@ class Renderer extends Component<{
|
||||
}
|
||||
|
||||
render() {
|
||||
const { documentInstance } = this.props;
|
||||
const { documentInstance, rendererContainer: renderer } = this.props;
|
||||
const { container } = documentInstance;
|
||||
const { designMode, device } = container;
|
||||
const { rendererContainer: renderer } = this.props;
|
||||
return (
|
||||
<LowCodeRenderer
|
||||
schema={documentInstance.schema}
|
||||
@ -190,7 +189,7 @@ class Renderer extends Component<{
|
||||
return createElement(
|
||||
getDeviceView(Component, device, designMode),
|
||||
viewProps,
|
||||
children,
|
||||
leaf?.isContainer() ? (children == null ? [] : Array.isArray(children) ? children : [children]) : null,
|
||||
);
|
||||
}}
|
||||
onCompGetRef={(schema: any, ref: ReactInstance | null) => {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user