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