Blame view

examples/routers/split.vue 1.55 KB
8979c734   zhigang.li   add split components
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
  <template>
    <div class="split-pane-page-wrapper">
      <Split v-model="offset" @on-moving="handleMoving">
        <div slot="left" class="pane left-pane">
          <Split v-model="offsetVertical" mode="vertical" @on-moving="handleMoving">
            <div slot="top" class="pane top-pane"></div>
            <div slot="bottom" class="pane bottom-pane"></div>
            <div slot="trigger" class="custom-trigger">
              <Icon class="trigger-icon" :size="22" type="android-more-vertical" color="#000000"/>
            </div>
          </Split>
        </div>
        <div slot="right" class="pane right-pane"></div>
      </Split>
    </div>
  </template>
  
  <script>
  export default {
    name: 'split_pane_page',
    data () {
      return {
        offset: 0.6,
        offsetVertical: '250px'
      }
    },
    methods: {
      handleMoving (e) {
        console.log(e.atMin, e.atMax)
      }
    }
  }
  </script>
  
  <style lang="less">
  .center-middle{
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
  }
  .split-pane-page-wrapper{
    height: 600px;
    .pane{
      width: 100%;
      height: 100%;
      &.left-pane{
        background: sandybrown;
      }
      &.right-pane{
        background: palevioletred;
      }
      &.top-pane{
        background: sandybrown;
      }
      &.bottom-pane{
        background: palevioletred;
      }
    }
    .custom-trigger{
      width: 20px;
      height: 20px;
      border-radius: 50%;
      background: #fff;
      position: absolute;
      .center-middle;
      box-shadow: 0 0 6px 0 rgba(28, 36, 56, 0.4);
      cursor: row-resize;
      i.trigger-icon{
        .center-middle;
      }
    }
  }
  </style>