From d5a98c090d1237c4d08e2675acf7b34990027317 Mon Sep 17 00:00:00 2001 From: "muyun.my" Date: Mon, 3 Aug 2020 17:59:16 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=F0=9F=90=9B=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E4=B8=BB=E8=AE=BE=E7=BD=AE=E9=9D=A2=E6=9D=BF=E4=B8=8B=20stageb?= =?UTF-8?q?ox=20=E7=9A=84=E6=A0=B7=E5=BC=8F=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/stage-box/index.less | 10 +++++++--- .../src/components/stage-box/stage-box.tsx | 2 ++ .../src/components/stage-box/stage-chain.ts | 11 ++++++----- .../src/components/stage-box/stage.tsx | 6 +++--- 4 files changed, 18 insertions(+), 11 deletions(-) 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;