Skip to content

witSplit Panel Split Component ​

witSplit is a powerful panel split component used to split page content horizontally or vertically into two resizable panels. The component supports dynamically adjusting panel sizes by dragging the divider, suitable for applications with complex layouts such as code editors, data dashboards, file managers and other scenarios.

Usage Example ​

vue
<template>
  <div>
    <!-- Basic horizontal split -->
    <witSplit
      v-model="splitRatio"
      :min="100"
      mode="horizontal"
      @getPosition="handlePosition"
    >
      <template #left>
        <div class="panel-content">Left panel content</div>
      </template>
      <template #right>
        <div class="panel-content">Right panel content</div>
      </template>
    </witSplit>
    
    <!-- Vertical split -->
    <witSplit
      v-model="verticalRatio"
      :min="150"
      mode="vertical"
      type="line"
    >
      <template #top>
        <div class="panel-content">Top panel content</div>
      </template>
      <template #bottom>
        <div class="panel-content">Bottom panel content</div>
      </template>
    </witSplit>
    
    <!-- Custom initial position -->
    <witSplit
      v-model="customRatio"
      :initPosition="200"
      :min="50"
      mode="horizontal"
      type="block"
    >
      <template #left>
        <div class="panel-content">Left panel (initial width 200px)</div>
      </template>
      <template #right>
        <div class="panel-content">Right panel</div>
      </template>
    </witSplit>
  </div>
</template>

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

API ​

Property NameTypeDefault ValueDescription
modelValue[Number]0.5Split ratio, supports v-model two-way binding
mode[String]'horizontal'Split mode: 'horizontal' or 'vertical'
min[Number]50Minimum panel size (px)
initPosition[Number]0Initial position (px)
type[String]'line'Divider type: 'line' or 'block'

Slots ​

Slot NameDescription
left / topLeft/top panel content
right / bottomRight/bottom panel content

湘ICP备2024070110号