# PageSidebar 侧边栏

# 基础用法

Title Title Title Title
基础用法
<h-page-container>
  <h-page-header slot="pageHeader" :breadcrumb="breadcrumb" />
  <h-layout>
    <h-page-sidebar>
      <template slot="pageSidebarAction">
        <el-button type="iconButton" icon="h-icon-add" />
        <el-button type="iconButton" icon="h-icon-edit" />
      </template>
      <el-input
        slot="pageSidebarSearch"
        v-model="treeSearchKey"
        placeholder="Information"
        suffix-icon="h-icon-search"
        clearable
      />
      <el-tree
        ref="areaTree"
        :data="treeData"
        :props="defaultProps"
        node-key="id"
        default-icon="h-icon-folder"
        :default-expanded-keys="['0']"
        current-node-key="0"
      />
    </h-page-sidebar>
  </h-layout>
</h-page-container>

<script>
  export default {
    data() {
      return {
        breadcrumb: ['Title', 'Title', 'Title', 'Title'],
        treeData: [],
        defaultProps: {
          children: 'children',
          label: 'label',
          icon: 'icon'
        },
        treeSearchKey: ''
      }
    },
    created() {
      let treeD = [];
      for (let i = 0; i < 3; i++) {
        treeD.push({
          id: `${i}`,
          label: 'Title',
          children: []
        });
        for (let j = 0; j < 4; j++) {
          treeD[i].children.push({
            id: `${i}${j}`,
            label: 'Title'
          });
        }
      }
      this.treeData = treeD;
    }
  }
</script>

# 列表形式

Title Title Title Title
列表形式
<h-page-container>
  <h-page-header slot="pageHeader" :breadcrumb="breadcrumb" />
  <h-layout>
    <h-page-sidebar type="list">
      <ul>
        <li
          v-for="(item, index) in sidebar"
          :key="index"
          :class="{ active: item === activeSidebar }"
          @click="handleClick(item)"
        >
          <span>{{ item }}</span>
        </li>
      </ul>
    </h-page-sidebar>
  </h-layout>
</h-page-container>

<script>
  export default {
    data() {
      return {
        sidebar: [
          'Option1',
          'Option2',
          'Option3',
          'Option4',
          'Option5',
          'Option6',
          'Option7',
          'Option8'
        ],
        activeSidebar: 'Option1'
      }
    },
    methods: {
      handleClick(item) {
        this.activeSidebar = item;
      }
    }
  }
</script>

# API

# Attributes

参数 说明 类型 可选值 默认值
affix 是否开启图钉模式 Boolean - true
type 侧边栏类型 String 'default' / 'list' 'default'
offset-top 距离窗口顶部达到指定偏移量后触发,适用于头部固定的情况 Number - 0
width 侧边栏宽度 String - '240px'
inline-scroll 是否使用内置滚动条 Boolean - true

# Slot

name 说明
pageSidebarAction 侧边栏操作按钮插槽
pageSidebarSearch 侧边栏搜索插槽