Commit c06e99d09f9f36cdd40c198f1e5b0daa762722ee
1 parent
2d74744d
Support Breadcrumb
keep slot sepatator
Showing
7 changed files
with
59 additions
and
12 deletions
Show diff stats
README.md
| @@ -53,7 +53,7 @@ | @@ -53,7 +53,7 @@ | ||
| 53 | - [x] Tabs | 53 | - [x] Tabs |
| 54 | - [x] Dropdown | 54 | - [x] Dropdown |
| 55 | - [ ] Page | 55 | - [ ] Page |
| 56 | -- [ ] Breadcrumb | 56 | +- [x] Breadcrumb |
| 57 | - [x] Steps | 57 | - [x] Steps |
| 58 | - [ ] LoadingBar | 58 | - [ ] LoadingBar |
| 59 | - [x] Circle | 59 | - [x] Circle |
| @@ -76,7 +76,7 @@ | @@ -76,7 +76,7 @@ | ||
| 76 | 76 | ||
| 77 | ## Install | 77 | ## Install |
| 78 | 78 | ||
| 79 | -### Install vue-webpack project in the first place | 79 | +### Install vue-webpack project in the first place |
| 80 | 80 | ||
| 81 | Use [iview-project](https://github.com/iview/iview-project)(Recommended) Or [vue-cli](https://github.com/vuejs/vue-cli) | 81 | Use [iview-project](https://github.com/iview/iview-project)(Recommended) Or [vue-cli](https://github.com/vuejs/vue-cli) |
| 82 | 82 |
src/components/breadcrumb/breadcrumb-item.vue
| @@ -6,8 +6,10 @@ | @@ -6,8 +6,10 @@ | ||
| 6 | <span v-else :class="linkClasses"> | 6 | <span v-else :class="linkClasses"> |
| 7 | <slot></slot> | 7 | <slot></slot> |
| 8 | </span> | 8 | </span> |
| 9 | - <span :class="separatorClasses"> | ||
| 10 | - <slot name="separator">{{{ separator }}}</slot> | 9 | + <span :class="separatorClasses" v-html="separator" v-if="!showSeparator"> |
| 10 | + </span> | ||
| 11 | + <span :class="separatorClasses" v-else> | ||
| 12 | + <slot name="separator"></slot> | ||
| 11 | </span> | 13 | </span> |
| 12 | </span> | 14 | </span> |
| 13 | </template> | 15 | </template> |
| @@ -18,12 +20,17 @@ | @@ -18,12 +20,17 @@ | ||
| 18 | props: { | 20 | props: { |
| 19 | href: { | 21 | href: { |
| 20 | type: String | 22 | type: String |
| 21 | - }, | ||
| 22 | - separator: { | ||
| 23 | - type: String, | ||
| 24 | - default: '/' | ||
| 25 | } | 23 | } |
| 26 | }, | 24 | }, |
| 25 | + data () { | ||
| 26 | + return { | ||
| 27 | + separator: '', | ||
| 28 | + showSeparator: false | ||
| 29 | + } | ||
| 30 | + }, | ||
| 31 | + mounted () { | ||
| 32 | + this.showSeparator = this.$slots.separator !== undefined; | ||
| 33 | + }, | ||
| 27 | computed: { | 34 | computed: { |
| 28 | linkClasses () { | 35 | linkClasses () { |
| 29 | return `${prefixCls}-link`; | 36 | return `${prefixCls}-link`; |
src/components/breadcrumb/breadcrumb.vue
src/index.js
| @@ -5,7 +5,7 @@ import Affix from './components/affix'; | @@ -5,7 +5,7 @@ import Affix from './components/affix'; | ||
| 5 | import Alert from './components/alert'; | 5 | import Alert from './components/alert'; |
| 6 | // import BackTop from './components/back-top'; | 6 | // import BackTop from './components/back-top'; |
| 7 | import Badge from './components/badge'; | 7 | import Badge from './components/badge'; |
| 8 | -// import Breadcrumb from './components/breadcrumb'; | 8 | +import Breadcrumb from './components/breadcrumb'; |
| 9 | import Button from './components/button'; | 9 | import Button from './components/button'; |
| 10 | import Card from './components/card'; | 10 | import Card from './components/card'; |
| 11 | import Carousel from './components/carousel'; | 11 | import Carousel from './components/carousel'; |
| @@ -51,8 +51,8 @@ const iview = { | @@ -51,8 +51,8 @@ const iview = { | ||
| 51 | Alert, | 51 | Alert, |
| 52 | // BackTop, | 52 | // BackTop, |
| 53 | Badge, | 53 | Badge, |
| 54 | - // Breadcrumb, | ||
| 55 | - // BreadcrumbItem: Breadcrumb.Item, | 54 | + Breadcrumb, |
| 55 | + BreadcrumbItem: Breadcrumb.Item, | ||
| 56 | // iButton: Button, | 56 | // iButton: Button, |
| 57 | Button, | 57 | Button, |
| 58 | ButtonGroup: Button.Group, | 58 | ButtonGroup: Button.Group, |
test/app.vue
| @@ -39,6 +39,7 @@ li + li { border-left: solid 1px #bbb; padding-left: 10px; margin-left: 10px; } | @@ -39,6 +39,7 @@ li + li { border-left: solid 1px #bbb; padding-left: 10px; margin-left: 10px; } | ||
| 39 | <li><router-link to="/poptip">Poptip</router-link></li> | 39 | <li><router-link to="/poptip">Poptip</router-link></li> |
| 40 | <li><router-link to="/slider">Slider</router-link></li> | 40 | <li><router-link to="/slider">Slider</router-link></li> |
| 41 | <li><router-link to="/dropdown">Dropdown</router-link></li> | 41 | <li><router-link to="/dropdown">Dropdown</router-link></li> |
| 42 | + <li><router-link to="/breadcrumb">Breadcrumb</router-link></li> | ||
| 42 | </ul> | 43 | </ul> |
| 43 | </nav> | 44 | </nav> |
| 44 | <router-view></router-view> | 45 | <router-view></router-view> |
test/main.js
| @@ -120,6 +120,10 @@ const router = new VueRouter({ | @@ -120,6 +120,10 @@ const router = new VueRouter({ | ||
| 120 | { | 120 | { |
| 121 | path: '/dropdown', | 121 | path: '/dropdown', |
| 122 | component: require('./routers/dropdown.vue') | 122 | component: require('./routers/dropdown.vue') |
| 123 | + }, | ||
| 124 | + { | ||
| 125 | + path: '/breadcrumb', | ||
| 126 | + component: require('./routers/breadcrumb.vue') | ||
| 123 | } | 127 | } |
| 124 | ] | 128 | ] |
| 125 | }); | 129 | }); |
| 1 | +<style> | ||
| 2 | + .demo-breadcrumb-separator{ | ||
| 3 | + color: #ff5500; | ||
| 4 | + padding: 0 5px; | ||
| 5 | + } | ||
| 6 | +</style> | ||
| 7 | +<template> | ||
| 8 | +<div> | ||
| 9 | + <Breadcrumb separator="<b class='demo-breadcrumb-separator'>=></b>"> | ||
| 10 | + <Breadcrumb-item href="/">Home4</Breadcrumb-item> | ||
| 11 | + <Breadcrumb-item href="/components/breadcrumb">Components</Breadcrumb-item> | ||
| 12 | + <Breadcrumb-item>Breadcrumb</Breadcrumb-item> | ||
| 13 | + </Breadcrumb> | ||
| 14 | + <Breadcrumb separator=""> | ||
| 15 | + <Breadcrumb-item href="/"> | ||
| 16 | + <template>Home</template> | ||
| 17 | + <template slot="separator"> | ||
| 18 | + <b style="color: #ff5500;">-></b> | ||
| 19 | + </template> | ||
| 20 | + </Breadcrumb-item> | ||
| 21 | + <Breadcrumb-item href="/components/breadcrumb"> | ||
| 22 | + <template>Breadcrumb</template> | ||
| 23 | + <template slot="separator"> | ||
| 24 | + <b style="color: #ff5500;">-></b> | ||
| 25 | + </template> | ||
| 26 | + </Breadcrumb-item> | ||
| 27 | + <Breadcrumb-item>Breadcrumb</Breadcrumb-item> | ||
| 28 | + </Breadcrumb> | ||
| 29 | +</div> | ||
| 30 | +</template> | ||
| 31 | +<script> | ||
| 32 | + export default { | ||
| 33 | + | ||
| 34 | + } | ||
| 35 | +</script> | ||
| 0 | \ No newline at end of file | 36 | \ No newline at end of file |