Merge branch 'release/0.9.2' into 'release/0.9.2'

fix: 🐛 修复主设置面板下 stagebox 的样式问题



See merge request !918548
This commit is contained in:
荣彬 2020-08-03 18:11:31 +08:00
commit 63c760e2ca
4 changed files with 18 additions and 11 deletions

View File

@ -1,9 +1,13 @@
@import "~@ali/ve-less-variables/index.less"; @import "~@ali/ve-less-variables/index.less";
.skeleton-stagebox { .skeleton-stagebox {
overflow: hidden; overflow-x: hidden;
position: relative; overflow-y: auto;
min-height: 50px; position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
.skeleton-stagebox-stage { .skeleton-stagebox-stage {
height: auto; height: auto;
overflow: hidden; overflow: hidden;

View File

@ -72,6 +72,8 @@ export default class StageBox extends Component<StageBoxProps> {
if (target === 'stageback') { if (target === 'stageback') {
this.stageChain.stageBack(); this.stageChain.stageBack();
} else if (target === 'stageexit') {
this.stageChain.stageBackToRoot();
} else { } else {
const { skeleton } = this.props; const { skeleton } = this.props;
this.stageChain.stagePush(skeleton.getStage(target)); this.stageChain.stagePush(skeleton.getStage(target));

View File

@ -30,12 +30,13 @@ export default class StageChain {
* *
*/ */
stageBackToRoot() { stageBackToRoot() {
while (!this.stage.isRoot) { let rootStage = this.stage.getPrevious();
const stage = this.stage.getPrevious(); while (rootStage && !rootStage.isRoot) {
if (!stage) return; rootStage = rootStage.getPrevious();
stage.setReferRight(this.stage);
this.stage = stage;
} }
if (!rootStage) return;
rootStage.setReferRight(this.stage);
this.stage = rootStage;
this.emitter.emit('stagechange'); this.emitter.emit('stagechange');
} }

View File

@ -71,10 +71,10 @@ export default class Stage extends Component<StageProps> {
); );
const stageBacker = stage?.hasBack() ? ( const stageBacker = stage?.hasBack() ? (
<div className="skeleton-stagebox-stagebacker" data-stage-target="stageback"> <div className="skeleton-stagebox-stagebacker">
<Icons name="arrow" className="skeleton-stagebox-stage-arrow" size="medium" /> <Icons name="arrow" className="skeleton-stagebox-stage-arrow" size="medium" data-stage-target="stageback" />
<span className="skeleton-stagebox-stage-title">{stage.title}</span> <span className="skeleton-stagebox-stage-title">{stage.title}</span>
<Icons name="exit" className="skeleton-stagebox-stage-exit" size="medium" /> <Icons name="exit" className="skeleton-stagebox-stage-exit" size="medium" data-stage-target="stageexit" />
</div> </div>
) : null; ) : null;