layout 布局

企业级中后台常见下面四种布局类型。

ha-layout 布局组件支持上述四种布局类型,通过 type 属性指定使用什么类型进行页面布局。

基本使用

type 属性支持四个值:

  • lr: 左右布局
  • tb: 上下布局
  • tlr: 最外层上下布局,下侧分为左右布局
  • ltb: 最外层左右布局,右侧再上下布局
左侧区域
正文区域
<template>
  <div>
    <el-radio-group v-model="layoutType">
      <el-radio-button label="lr">左-右 lr</el-radio-button>
      <el-radio-button label="tb">上-下 tb</el-radio-button>
      <el-radio-button label="tlr">上-左-右 tlr</el-radio-button>
      <el-radio-button label="ltb">左-上-下 ltb</el-radio-button>
    </el-radio-group>

    <ha-layout style="height: 400px;" :type="layoutType">
      <template #top>顶部区域</template>
      <template #left>左侧区域</template>
      <template #main>正文区域</template>
    </ha-layout>
  </div>
</template>

<script lang="ts" setup>
import { ref } from 'vue'

const layoutType = ref('lr')
</script>

<style scoped lang="scss">
.el-radio-group {
  margin-bottom: 20px;
}
:deep(.left) {
  background-color: #c1f0fa;
}
:deep(.right) {
  background-color: #e4dbff;
}
:deep(.top) {
  background-color: #e6ec9f;
}
:deep(.bottom) {
  background-color: #d1e7f8;
}
</style>
显示代码

该组件有三个插槽,分别对应 topleft, main。 其他属性见 Attributes 属性

组件 API

Attributes 属性

参数说明类型可选值默认值
type布局类型Stringlr - 左右布局 / tb - 上下布局 / tlr 上下布局(下侧分为左右布局) / ltb - 左右布局(右侧再上下布局)lr
top-height顶部高度String-48px
left-width左侧宽度String-200px
left-width-mini左侧收缩后宽度String-80px
is-expand左侧是否展开Booleantrue / falsetrue
is-show-tab-bar是否显示页签Booleantrue / falsefalse
tab-list页签列表TabItem 数组-[]

TabItem 页面页签Tab

参数说明类型可选值默认值
path路由路径String--
title名称String--

Methods 方法

方法名说明参数返回值

Events 事件

事件名说明参数返回值

Slots 插槽

插槽名说明参数
top顶部插槽(仅对typetb, ltb, tlr类型生效)
left左侧插槽(仅对 typelr, ltb, tlr类型生效)
main主体内容区域插槽,如果未设置改插槽,默认为 <router-view/>