diff --git a/packages/editor-skeleton/src/components/stage-box/index.less b/packages/editor-skeleton/src/components/stage-box/index.less index 156294182..bd24f2933 100644 --- a/packages/editor-skeleton/src/components/stage-box/index.less +++ b/packages/editor-skeleton/src/components/stage-box/index.less @@ -1,9 +1,13 @@ @import "~@ali/ve-less-variables/index.less"; .skeleton-stagebox { - overflow: hidden; - position: relative; - min-height: 50px; + overflow-x: hidden; + overflow-y: auto; + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; .skeleton-stagebox-stage { height: auto; overflow: hidden; diff --git a/packages/editor-skeleton/src/components/stage-box/stage-box.tsx b/packages/editor-skeleton/src/components/stage-box/stage-box.tsx index e1cea1082..5996eec31 100644 --- a/packages/editor-skeleton/src/components/stage-box/stage-box.tsx +++ b/packages/editor-skeleton/src/components/stage-box/stage-box.tsx @@ -72,6 +72,8 @@ export default class StageBox extends Component { if (target === 'stageback') { this.stageChain.stageBack(); + } else if (target === 'stageexit') { + this.stageChain.stageBackToRoot(); } else { const { skeleton } = this.props; this.stageChain.stagePush(skeleton.getStage(target)); diff --git a/packages/editor-skeleton/src/components/stage-box/stage-chain.ts b/packages/editor-skeleton/src/components/stage-box/stage-chain.ts index 4653e0fe7..b644de318 100644 --- a/packages/editor-skeleton/src/components/stage-box/stage-chain.ts +++ b/packages/editor-skeleton/src/components/stage-box/stage-chain.ts @@ -30,12 +30,13 @@ export default class StageChain { * 回到最开始 */ stageBackToRoot() { - while (!this.stage.isRoot) { - const stage = this.stage.getPrevious(); - if (!stage) return; - stage.setReferRight(this.stage); - this.stage = stage; + let rootStage = this.stage.getPrevious(); + while (rootStage && !rootStage.isRoot) { + rootStage = rootStage.getPrevious(); } + if (!rootStage) return; + rootStage.setReferRight(this.stage); + this.stage = rootStage; this.emitter.emit('stagechange'); } diff --git a/packages/editor-skeleton/src/components/stage-box/stage.tsx b/packages/editor-skeleton/src/components/stage-box/stage.tsx index 859dd77a7..9cf90830a 100644 --- a/packages/editor-skeleton/src/components/stage-box/stage.tsx +++ b/packages/editor-skeleton/src/components/stage-box/stage.tsx @@ -71,10 +71,10 @@ export default class Stage extends Component { ); const stageBacker = stage?.hasBack() ? ( -
- +
+ {stage.title} - +
) : null;