Blame view

src/components/anchor/anchor-link.vue 1.07 KB
43513f70   zhigang.li   add anchor component
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
  <template>
  	<div :class="anchorLinkClasses">
          <a :class="linkTitleClasses" href="javascript:void(0)" :data-href="href" @click="goAnchor" :title="title">{{ title }}</a>
          <slot></slot>
      </div>
  </template>
  <script>
  import { findComponentUpward } from '../../utils/assist';
  export default {
      name: 'AnchorLink',
      props: {
          href: String,
          title: String
      },
      data () {
          return {
              prefix: 'ivu-anchor-link'
          };
      },
      computed: {
          anchorLinkClasses () {
              return [
                  this.prefix,
                  this.currentLink === this.href ? `${this.prefix}-active` : ''
              ];
          },
          linkTitleClasses () {
              return [
                  `${this.prefix}-title`
              ];
          },
          parentAnchor () {
              return findComponentUpward(this, 'Anchor');
          },
          currentLink () {
              return this.parentAnchor.currentLink;
          }
      },
      methods: {
          goAnchor () {
              this.parentAnchor.turnTo(this.href);
          }
      }
  };
  </script>