tag add prop: name

when use v-for to render Tag, you can use ‘name’ prop to close tag
This commit is contained in:
梁灏 2017-03-21 15:41:22 +08:00
parent 19d4135239
commit ec4117cb43
3 changed files with 16 additions and 49 deletions

View file

@ -1,60 +1,20 @@
<template> <template>
<div> <div>
<Tag>标签一</Tag> <Tag v-for="item in count" :key="item" :name="item" @on-close="close" closable>标签{{ item + 1 }}</Tag>
<Tag>标签二</Tag> <Button icon="ios-plus-empty" type="dashed" size="small" @click="count += 1">添加标签</Button>
<Tag closable>标签三</Tag>
<Tag closable color="blue">标签一</Tag>
<Tag closable color="green">标签二</Tag>
<Tag closable color="red">标签三</Tag>
<Tag closable color="yellow">标签四</Tag>
<br><br>
<Tag type="dot">标签一</Tag>
<Tag type="dot" closable>标签一</Tag>
<Tag type="dot" color="blue">标签一</Tag>
<Tag type="dot" color="blue" closable>标签一</Tag>
<Tag type="dot" color="green">标签一</Tag>
<Tag type="dot" color="green" closable>标签一</Tag>
<Tag type="dot" color="red">标签一</Tag>
<Tag type="dot" color="red" closable>标签一</Tag>
<Tag type="dot" color="yellow">标签一</Tag>
<Tag type="dot" color="yellow" closable>标签一</Tag>
<br><br>
<Tag type="border">标签一</Tag>
<Tag type="border" closable>标签一</Tag>
<Tag type="border" color="blue">标签一</Tag>
<Tag type="border" color="blue" closable>标签一</Tag>
<Tag type="border" color="green">标签一</Tag>
<Tag type="border" color="green" closable>标签一</Tag>
<Tag type="border" color="red">标签一</Tag>
<Tag type="border" color="red" closable>标签一</Tag>
<Tag type="border" color="yellow">标签一</Tag>
<Tag type="border" color="yellow" closable>标签一</Tag>
<Button type="primary" @click="modal1 = true">显示对话框</Button>
<br><br>
<Tag v-if="ccc" closable @on-close="clickTagClose">标签一</Tag>
</div> </div>
</template> </template>
<script> <script>
export default { export default {
data () { data () {
return { return {
modal1: false, count: 3
loading: true,
ccc: true
} }
}, },
methods: { methods: {
ok () { close (e, name) {
setTimeout(() => { console.log(e);
this.modal1 = false; console.log(name);
}, 2000);
},
clickTag() {
console.log('click tag');
},
clickTagClose() {
this.ccc = false;
console.log('click tag close-icon');
} }
} }
} }

View file

@ -58,7 +58,7 @@
if (this.padding !== defaultPadding) { if (this.padding !== defaultPadding) {
return { return {
padding: `${this.padding}px` padding: `${this.padding}px`
} };
} else { } else {
return ''; return '';
} }

View file

@ -28,6 +28,9 @@
validator (value) { validator (value) {
return oneOf(value, ['border', 'dot']); return oneOf(value, ['border', 'dot']);
} }
},
name: {
type: [String, Number]
} }
}, },
computed: { computed: {
@ -52,8 +55,12 @@
} }
}, },
methods: { methods: {
close (e) { close (event) {
this.$emit('on-close', e); if (this.name === undefined) {
this.$emit('on-close', event);
} else {
this.$emit('on-close', event, this.name);
}
} }
} }
}; };