Commit 9c529885557d9b3ad03f0513d2e7ef1958521e9f
1 parent
4258a559
Cell component add @on-click event
Showing
3 changed files
with
29 additions
and
8 deletions
Show diff stats
examples/routers/cell.vue
1 | <template> | 1 | <template> |
2 | <div style="margin: 100px;background: #f8f8f9;padding: 100px;"> | 2 | <div style="margin: 100px;background: #f8f8f9;padding: 100px;"> |
3 | <Card title="选项" :padding="0" shadow style="width: 300px;"> | 3 | <Card title="选项" :padding="0" shadow style="width: 300px;"> |
4 | - <CellGroup> | ||
5 | - <Cell title="标题一" label="附属内容" to="/button"></Cell> | ||
6 | - <Cell title="标题一" label="附属内容" extra="详细信息"></Cell> | ||
7 | - <Cell title="标题一" label="附属内容" extra="详细信息" to="/button"></Cell> | ||
8 | - <Cell title="标题一" label="附属内容" selected></Cell> | 4 | + <CellGroup @on-click="handleClick"> |
5 | + <Cell title="标题一" name="a1" label="附属内容" to="/button"></Cell> | ||
6 | + <Cell title="标题一" name="a2" label="附属内容" extra="详细信息"></Cell> | ||
7 | + <Cell title="标题一" name="a3" label="附属内容" extra="详细信息" to="/button"></Cell> | ||
8 | + <Cell title="标题一" name="a4" label="附属内容" selected></Cell> | ||
9 | <Cell title="标题二"> | 9 | <Cell title="标题二"> |
10 | <Icon type="trash-a" slot="icon"></Icon> | 10 | <Icon type="trash-a" slot="icon"></Icon> |
11 | </Cell> | 11 | </Cell> |
@@ -30,6 +30,11 @@ | @@ -30,6 +30,11 @@ | ||
30 | return { | 30 | return { |
31 | switch1: false | 31 | switch1: false |
32 | } | 32 | } |
33 | + }, | ||
34 | + methods: { | ||
35 | + handleClick (name) { | ||
36 | + console.log(name); | ||
37 | + } | ||
33 | } | 38 | } |
34 | } | 39 | } |
35 | </script> | 40 | </script> |
src/components/cell/cell-group.vue
@@ -5,6 +5,16 @@ | @@ -5,6 +5,16 @@ | ||
5 | </template> | 5 | </template> |
6 | <script> | 6 | <script> |
7 | export default { | 7 | export default { |
8 | - name: 'CellGroup' | 8 | + name: 'CellGroup', |
9 | + provide () { | ||
10 | + return { | ||
11 | + cellGroup: this | ||
12 | + } | ||
13 | + }, | ||
14 | + methods: { | ||
15 | + handleClick (name) { | ||
16 | + this.$emit('on-click', name); | ||
17 | + } | ||
18 | + } | ||
9 | } | 19 | } |
10 | </script> | 20 | </script> |
11 | \ No newline at end of file | 21 | \ No newline at end of file |
src/components/cell/cell.vue
1 | <template> | 1 | <template> |
2 | <div :class="classes"> | 2 | <div :class="classes"> |
3 | - <a v-if="to" :href="linkUrl" class="ivu-cell-link" @click.prevent="handleClick"> | 3 | + <a v-if="to" :href="linkUrl" class="ivu-cell-link" @click.prevent="handleClick" @click="handleClickItem"> |
4 | <CellItem :title="title" :label="label" :extra="extra"> | 4 | <CellItem :title="title" :label="label" :extra="extra"> |
5 | <slot name="icon" slot="icon"></slot> | 5 | <slot name="icon" slot="icon"></slot> |
6 | <slot slot="default"></slot> | 6 | <slot slot="default"></slot> |
@@ -8,7 +8,7 @@ | @@ -8,7 +8,7 @@ | ||
8 | <slot name="label" slot="label"></slot> | 8 | <slot name="label" slot="label"></slot> |
9 | </CellItem> | 9 | </CellItem> |
10 | </a> | 10 | </a> |
11 | - <div class="ivu-cell-link" v-else> | 11 | + <div class="ivu-cell-link" v-else @click="handleClickItem"> |
12 | <CellItem :title="title" :label="label" :extra="extra"> | 12 | <CellItem :title="title" :label="label" :extra="extra"> |
13 | <slot name="icon" slot="icon"></slot> | 13 | <slot name="icon" slot="icon"></slot> |
14 | <slot slot="default"></slot> | 14 | <slot slot="default"></slot> |
@@ -32,6 +32,7 @@ | @@ -32,6 +32,7 @@ | ||
32 | 32 | ||
33 | export default { | 33 | export default { |
34 | name: 'Cell', | 34 | name: 'Cell', |
35 | + inject: ['cellGroup'], | ||
35 | mixins: [ mixinsLink ], | 36 | mixins: [ mixinsLink ], |
36 | components: { CellItem, Icon }, | 37 | components: { CellItem, Icon }, |
37 | props: { | 38 | props: { |
@@ -83,5 +84,10 @@ | @@ -83,5 +84,10 @@ | ||
83 | ]; | 84 | ]; |
84 | }, | 85 | }, |
85 | }, | 86 | }, |
87 | + methods: { | ||
88 | + handleClickItem () { | ||
89 | + this.cellGroup.handleClick(this.name); | ||
90 | + } | ||
91 | + } | ||
86 | } | 92 | } |
87 | </script> | 93 | </script> |
88 | \ No newline at end of file | 94 | \ No newline at end of file |