Commit 345c6863bf79e995b25274ba03ff3523867703bc
1 parent
762c8ddf
update Breadcrumb
support router and replace
Showing
2 changed files
with
19 additions
and
5 deletions
Show diff stats
examples/routers/breadcrumb.vue
@@ -8,7 +8,7 @@ | @@ -8,7 +8,7 @@ | ||
8 | <div> | 8 | <div> |
9 | <Breadcrumb separator="<b class='demo-breadcrumb-separator'>=></b>"> | 9 | <Breadcrumb separator="<b class='demo-breadcrumb-separator'>=></b>"> |
10 | <Breadcrumb-item href="/">Home4</Breadcrumb-item> | 10 | <Breadcrumb-item href="/">Home4</Breadcrumb-item> |
11 | - <Breadcrumb-item href="/components/breadcrumb">Components</Breadcrumb-item> | 11 | + <Breadcrumb-item href="/checkbox" replace>Components</Breadcrumb-item> |
12 | <Breadcrumb-item>Breadcrumb</Breadcrumb-item> | 12 | <Breadcrumb-item>Breadcrumb</Breadcrumb-item> |
13 | </Breadcrumb> | 13 | </Breadcrumb> |
14 | <Breadcrumb separator=""> | 14 | <Breadcrumb separator=""> |
src/components/breadcrumb/breadcrumb-item.vue
1 | <template> | 1 | <template> |
2 | <span> | 2 | <span> |
3 | - <a v-if="href" :href="href" :class="linkClasses"> | 3 | + <a v-if="href" :class="linkClasses" @click="handleClick"> |
4 | <slot></slot> | 4 | <slot></slot> |
5 | </a> | 5 | </a> |
6 | <span v-else :class="linkClasses"> | 6 | <span v-else :class="linkClasses"> |
@@ -20,6 +20,10 @@ | @@ -20,6 +20,10 @@ | ||
20 | props: { | 20 | props: { |
21 | href: { | 21 | href: { |
22 | type: String | 22 | type: String |
23 | + }, | ||
24 | + replace: { | ||
25 | + type: Boolean, | ||
26 | + default: false | ||
23 | } | 27 | } |
24 | }, | 28 | }, |
25 | data () { | 29 | data () { |
@@ -28,9 +32,6 @@ | @@ -28,9 +32,6 @@ | ||
28 | showSeparator: false | 32 | showSeparator: false |
29 | }; | 33 | }; |
30 | }, | 34 | }, |
31 | - mounted () { | ||
32 | - this.showSeparator = this.$slots.separator !== undefined; | ||
33 | - }, | ||
34 | computed: { | 35 | computed: { |
35 | linkClasses () { | 36 | linkClasses () { |
36 | return `${prefixCls}-link`; | 37 | return `${prefixCls}-link`; |
@@ -38,6 +39,19 @@ | @@ -38,6 +39,19 @@ | ||
38 | separatorClasses () { | 39 | separatorClasses () { |
39 | return `${prefixCls}-separator`; | 40 | return `${prefixCls}-separator`; |
40 | } | 41 | } |
42 | + }, | ||
43 | + mounted () { | ||
44 | + this.showSeparator = this.$slots.separator !== undefined; | ||
45 | + }, | ||
46 | + methods: { | ||
47 | + handleClick () { | ||
48 | + const isRoute = this.$router; | ||
49 | + if (isRoute) { | ||
50 | + this.replace ? this.$router.replace(this.href) : this.$router.push(this.href); | ||
51 | + } else { | ||
52 | + window.location.href = this.href; | ||
53 | + } | ||
54 | + } | ||
41 | } | 55 | } |
42 | }; | 56 | }; |
43 | </script> | 57 | </script> |